<?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>65003</bug_id>
          
          <creation_ts>2011-07-21 18:18:13 -0700</creation_ts>
          <short_desc>Remove the immediate repaint codepath and support, it doesn&apos;t do anything</short_desc>
          <delta_ts>2013-03-01 16:19:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>hyatt</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>440776</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-07-21 18:18:13 -0700</bug_when>
    <thetext>Remove the immediate repaint codepath and support, it doesn&apos;t do anything</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>440793</commentid>
    <comment_count>1</comment_count>
      <attachid>101687</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-07-21 19:20:57 -0700</bug_when>
    <thetext>Created attachment 101687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>440814</commentid>
    <comment_count>2</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-07-21 20:17:21 -0700</bug_when>
    <thetext>This code appears to work perfectly well in WebKit1 in OS X Lion. I tested activating a link with the keyboard and activating a button with a keyboard, and in both cases the element painted in its active state, then after a short delay, repainted the inactive state.

I think the patch will break this behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>440821</commentid>
    <comment_count>3</comment_count>
      <attachid>101687</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-21 20:58:37 -0700</bug_when>
    <thetext>Comment on attachment 101687
Patch

Attachment 101687 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9199971</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>440835</commentid>
    <comment_count>4</comment_count>
      <attachid>101687</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-21 22:09:25 -0700</bug_when>
    <thetext>Comment on attachment 101687
Patch

Attachment 101687 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9193968</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>440851</commentid>
    <comment_count>5</comment_count>
      <attachid>101687</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-07-21 23:09:11 -0700</bug_when>
    <thetext>Comment on attachment 101687
Patch

review- based on the build failures and Dan’s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845597</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-01 16:19:47 -0800</bug_when>
    <thetext>Wow.  Do we know if there is another way to get this behavior for Mac?  If James is correct, this 80k patch of code is only to support Mac WK1. :)  If we have to keep it for Mac, that&apos;s fine (and we can do bug 87054 instead, but if it&apos;s possible to get this behavior some other way, that seems best.

I guess bug 87054 is the expedient solution since it&apos;s unlikely that James is the right person to change Mac WK1 here.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101687</attachid>
            <date>2011-07-21 19:20:57 -0700</date>
            <delta_ts>2011-07-21 23:09:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65003-20110721192055.patch</filename>
            <type>text/plain</type>
            <size>86079</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTEzMjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMTA3YmQyNTVmOTgzMDEw
ZDJkZGU4MWJmYzBkNmY3MzY1OTAxZTU3Li40ZWI0Yjk5YTk3MTJhYjdiOGRiZDYyM2U5MjRjMjg1
NmJjOTRkOTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODggQEAKKzIwMTEtMDctMjEgIEphbWVz
IFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmUgdGhlIGlt
bWVkaWF0ZSByZXBhaW50IGNvZGVwYXRoIGFuZCBzdXBwb3J0LCBpdCBkb2Vzbid0IGRvIGFueXRo
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTAw
MworCisgICAgICAgIFRoZSBpbnZhbGlkYXRpb24gZnVuY3Rpb25zIGluIFdlYkNvcmUgKHJlcGFp
bnQoKSwgaW52YWxpZGF0ZVdpbmRvdygpLCBpbnZhbGlkYXRlQ29udGVudHMoKSwgZXRjKSB1c2Vk
IHRvIHRha2UgYQorICAgICAgICBmbGFnIGNhbGxlZCBlaXRoZXIgJ2ltbWVkaWF0ZScgb3IgJ25v
dycgaW5kaWNhdGluZyB0aGF0IHRoZSBjYWxsZWUgc2hvdWxkIHN5bmNocm9ub3VzbHkgcGFpbnQu
ICBUaGlzIHdhcyB1c2VkIHRvCisgICAgICAgIGltcGxlbWVudCBhIHNpbXBsZSB2ZXJzaW9uIG9m
IGFuaW1hdGlvbnMgZm9yIHN5bnRoZXRpYyBjbGlja3Mgb24gYnV0dG9ucyAoc2VlIENvbnRhaW5l
ck5vZGU6OnNldEFjdGl2ZSkuCisKKyAgICAgICAgVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCB3
aGVuIHRoZSBjb21wb3NpdG9yIGlzIGFjdGl2ZSwgaW4gV2ViS2l0MiwgQ2hyb21pdW0sIGFuZCBt
b3N0IG90aGVyIHBvcnRzLiAgV2ViS2l0MSBvbgorICAgICAgICBtYWMgaGFzIGNvZGUgdG8gc3Vw
cG9ydCB0aGlzIHBhcmFtZXRlciwgYnV0IHRoZSBlZmZlY3Qgc2V0QWN0aXZlKCkgdHJpZXMgdG8g
YWNoaWV2ZSBkb2Vzbid0IHdvcmsuICBJdCB3b3VsZCBiZQorICAgICAgICBiZXR0ZXIgdG8gaW1w
bGVtZW50IHRoaXMgYmVoYXZpb3IgYXMgYSBub3JtYWwgYW5pbWF0aW9uIGluc3RlYWQgb2Ygc3lu
Y2hyb25vdXNseSByZXBhaW50aW5nIGFuZCB1c2xlZXAoKWluZy4KKworICAgICAgICBSZWZhY3Rv
cmluZyBhbmQgcmVtb3ZpbmcgZGVhZCBjb2RlLCBzbyBubyBuZXcgdGVzdHMuCisKKyAgICAgICAg
KiBkb20vQ29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2Rl
OjpzZXRBY3RpdmUpOgorICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmg6CisgICAgICAgICog
ZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudERpc3BhdGNo
ZXI6OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2spOgorICAgICAgICAqIGRvbS9FdmVudERpc3BhdGNo
ZXIuaDoKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpk
aXNwYXRjaFNpbXVsYXRlZENsaWNrKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZTo6c2V0QWN0aXZlKToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpyZWNvbXB1dGVDYXJl
dFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FyZXRCYXNlOjppbnZhbGlkYXRlQ2FyZXRSZWN0
KToKKyAgICAgICAgKiBodG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QmFzZUJ1dHRvbklucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KToKKyAgICAgICAg
KiBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFz
ZUNoZWNrYWJsZUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KToKKyAgICAgICAgKiBodG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVt
ZW50OjpzZXRBY3RpdmUpOgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKiBodG1sL0hU
TUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpjbGljayk6Cisg
ICAgICAgICogaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxMYWJlbEVsZW1lbnQ6OnNldEFjdGl2ZSk6CisgICAgICAgICogaHRtbC9IVE1MTGFiZWxFbGVt
ZW50Lmg6CisgICAgICAgICogaHRtbC9SYWRpb0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSYWRpb0lucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KToKKyAgICAgICAgKiBsb2Fk
ZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6
aW52YWxpZGF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6
aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hy
b21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKToKKyAgICAgICAgKiBw
YWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmludmFsaWRhdGVXaW5k
b3cpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5k
b3cpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93
U2Nyb2xsKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21l
Q2xpZW50Lmg6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjppbnZhbGlkYXRlUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OnNjcm9sbENvbnRlbnRzRmFzdFBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3
OjpyZXBhaW50Q29udGVudFJlY3RhbmdsZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OmRvRGVmZXJyZWRSZXBhaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNob3Vs
ZFVwZGF0ZSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9Ib3N0V2luZG93Lmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzY3JvbGxDb250ZW50cyk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxWaWV3OjpzY3JvbGxDb250ZW50c1Nsb3dQYXRoKToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbFZpZXc6OndoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZp
ZXcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hbmRyb2lkL1Njcm9sbFZpZXdBbmRyb2lkLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3JtUmVwYWludENvbnRlbnRSZWN0
YW5nbGUpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0ZyYW1lbGVzc1Njcm9sbFZpZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVsZXNzU2Nyb2xsVmlldzo6aW52YWxpZGF0ZVJl
Y3QpOgorICAgICAgICAqIHBsYXRmb3JtL3d4L1Njcm9sbFZpZXdXeC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9ybVJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlck9iamVjdDo6cmVwYWludFVzaW5nQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlck9iamVjdDo6cmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnJl
cGFpbnRSZWN0YW5nbGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJWaWV3OjpyZXBhaW50Vmlld1JlY3RhbmdsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJW
aWV3OjpyZXBhaW50UmVjdGFuZ2xlSW5WaWV3QW5kQ29tcG9zaXRlZExheWVycyk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VDaHJvbWVDbGllbnQ6OmludmFsaWRh
dGVDb250ZW50c0FuZFdpbmRvdyk6CisKIDIwMTEtMDctMTkgIEFkYW0gUm9iZW4gIDxhcm9iZW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBzb21lIHVudXNlZCBjb2RlIGluIEZvcm1EYXRh
U3RyZWFtQ0ZOZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2Rl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCA2YmE1YWNl
N2ZlNTdmMjMzOGU1Y2QzZTZlMWM1YTI4ZjVkYTY4OTk4Li42YWRkZDE2YTE5NTJjOTdlMTJlNTc1
YTU0YWEzZjQ5MzQwNGU1MWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFp
bmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBA
IC05OTEsNyArOTkxLDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpzZXRGb2N1cyhib29sIHJlY2Vp
dmVkKQogICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKIH0KIAotdm9pZCBDb250YWluZXJOb2Rl
OjpzZXRBY3RpdmUoYm9vbCBkb3duLCBib29sIHBhdXNlKQordm9pZCBDb250YWluZXJOb2RlOjpz
ZXRBY3RpdmUoYm9vbCBkb3duKQogewogICAgIGlmIChkb3duID09IGFjdGl2ZSgpKSByZXR1cm47
CiAKQEAgLTEwMDAsMzcgKzEwMDAsMTAgQEAgdm9pZCBDb250YWluZXJOb2RlOjpzZXRBY3RpdmUo
Ym9vbCBkb3duLCBib29sIHBhdXNlKQogICAgIC8vIG5vdGUgdGhhdCB3ZSBuZWVkIHRvIHJlY2Fs
YyB0aGUgc3R5bGUKICAgICAvLyBGSVhNRTogTW92ZSB0byBFbGVtZW50CiAgICAgaWYgKHJlbmRl
cmVyKCkpIHsKLSAgICAgICAgYm9vbCByZWFjdHNUb1ByZXNzID0gcmVuZGVyZXIoKS0+c3R5bGUo
KS0+YWZmZWN0ZWRCeUFjdGl2ZVJ1bGVzKCk7Ci0gICAgICAgIGlmIChyZWFjdHNUb1ByZXNzKQor
ICAgICAgICBpZiAocmVuZGVyZXIoKS0+c3R5bGUoKS0+YWZmZWN0ZWRCeUFjdGl2ZVJ1bGVzKCkp
CiAgICAgICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7Ci0gICAgICAgIGlmIChyZW5kZXJl
cigpICYmIHJlbmRlcmVyKCktPnN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSkgewotICAgICAgICAg
ICAgaWYgKHJlbmRlcmVyKCktPnRoZW1lKCktPnN0YXRlQ2hhbmdlZChyZW5kZXJlcigpLCBQcmVz
c2VkU3RhdGUpKQotICAgICAgICAgICAgICAgIHJlYWN0c1RvUHJlc3MgPSB0cnVlOwotICAgICAg
ICB9Ci0gICAgICAgIGlmIChyZWFjdHNUb1ByZXNzICYmIHBhdXNlKSB7Ci0gICAgICAgICAgICAv
LyBUaGUgZGVsYXkgaGVyZSBpcyBzdWJ0bGUuICBJdCByZWxpZXMgb24gYW4gYXNzdW1wdGlvbiwg
bmFtZWx5IHRoYXQgdGhlIGFtb3VudCBvZiB0aW1lIGl0IHRha2VzCi0gICAgICAgICAgICAvLyB0
byByZXBhaW50IHRoZSAiZG93biIgc3RhdGUgb2YgdGhlIGNvbnRyb2wgaXMgYWJvdXQgdGhlIHNh
bWUgdGltZSBhcyBpdCB3b3VsZCB0YWtlIHRvIHJlcGFpbnQgdGhlCi0gICAgICAgICAgICAvLyAi
dXAiIHN0YXRlLiAgT25jZSB5b3UgYXNzdW1lIHRoaXMsIHlvdSBjYW4ganVzdCBkZWxheSBmb3Ig
MTAwbXMgLSB0aGF0IHRpbWUgKGFzc3VtaW5nIHRoYXQgYWZ0ZXIgeW91Ci0gICAgICAgICAgICAv
LyBsZWF2ZSB0aGlzIG1ldGhvZCwgaXQgd2lsbCBiZSBhYm91dCB0aGF0IGxvbmcgYmVmb3JlIHRo
ZSBmbHVzaCBvZiB0aGUgdXAgc3RhdGUgaGFwcGVucyBhZ2FpbikuCi0jaWZkZWYgSEFWRV9GVU5D
X1VTTEVFUAotICAgICAgICAgICAgZG91YmxlIHN0YXJ0VGltZSA9IGN1cnJlbnRUaW1lKCk7Ci0j
ZW5kaWYKLQotICAgICAgICAgICAgLy8gRW5zdXJlIHRoZXJlIGFyZSBubyBwZW5kaW5nIGNoYW5n
ZXMKLSAgICAgICAgICAgIERvY3VtZW50Ojp1cGRhdGVTdHlsZUZvckFsbERvY3VtZW50cygpOwot
ICAgICAgICAgICAgLy8gRG8gYW4gaW1tZWRpYXRlIHJlcGFpbnQuCi0gICAgICAgICAgICBpZiAo
cmVuZGVyZXIoKSkKLSAgICAgICAgICAgICAgICByZW5kZXJlcigpLT5yZXBhaW50KHRydWUpOwot
ICAgICAgICAgICAgCi0gICAgICAgICAgICAvLyBGSVhNRTogRmluZCBhIHN1YnN0aXR1dGUgZm9y
IHVzbGVlcCBmb3IgV2luMzIuCi0gICAgICAgICAgICAvLyBCZXR0ZXIgeWV0LCBjb21lIHVwIHdp
dGggYSB3YXkgb2YgZG9pbmcgdGhpcyB0aGF0IGRvZXNuJ3QgdXNlIHRoaXMgc29ydCBvZiB0aGlu
ZyBhdCBhbGwuICAgICAgICAgICAgCi0jaWZkZWYgSEFWRV9GVU5DX1VTTEVFUAotICAgICAgICAg
ICAgLy8gTm93IHBhdXNlIGZvciBhIHNtYWxsIGFtb3VudCBvZiB0aW1lICgxLzEwdGggb2YgYSBz
ZWNvbmQgZnJvbSBiZWZvcmUgd2UgcmVwYWludGVkIGluIHRoZSBwcmVzc2VkIHN0YXRlKQotICAg
ICAgICAgICAgZG91YmxlIHJlbWFpbmluZ1RpbWUgPSAwLjEgLSAoY3VycmVudFRpbWUoKSAtIHN0
YXJ0VGltZSk7Ci0gICAgICAgICAgICBpZiAocmVtYWluaW5nVGltZSA+IDApCi0gICAgICAgICAg
ICAgICAgdXNsZWVwKHN0YXRpY19jYXN0PHVzZWNvbmRzX3Q+KHJlbWFpbmluZ1RpbWUgKiAxMDAw
MDAwLjApKTsKLSNlbmRpZgotICAgICAgICB9CisgICAgICAgIGlmIChyZW5kZXJlcigpICYmIHJl
bmRlcmVyKCktPnN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSkKKyAgICAgICAgICAgIHJlbmRlcmVy
KCktPnRoZW1lKCktPnN0YXRlQ2hhbmdlZChyZW5kZXJlcigpLCBQcmVzc2VkU3RhdGUpOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKaW5kZXggMmU1ODY4ODE5NzRlZTkz
ZmUxNGViMTQ0YTkwMWFlOWMyMzFiMzM5MC4uNDUwOGJiZDkxYjA4MjA5NDhkYWNmYjNiMjVkYjgx
OTAyNzQ4ZWQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCkBAIC02Miw3ICs2Miw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZSgpOwogICAgIHZpcnR1YWwg
SW50UmVjdCBnZXRSZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJvb2wg
PSB0cnVlKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wgYWN0aXZlID0gdHJ1ZSwg
Ym9vbCBwYXVzZSA9IGZhbHNlKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wgPSB0
cnVlKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SG92ZXJlZChib29sID0gdHJ1ZSk7CiAgICAgdW5z
aWduZWQgY2hpbGROb2RlQ291bnQoKSBjb25zdDsKICAgICBOb2RlKiBjaGlsZE5vZGUodW5zaWdu
ZWQgaW5kZXgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlz
cGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAppbmRl
eCBkZTM3NGQ2ZjNiOGFiNWYyZDU2ZmU4NmY4NzA2ZDAxNzlkODE4OTJhLi44MTkyNjA4ODE2YTRh
ZjkyMTYwMzUzYzZjNjYwY2Q1MjdhMDExYjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNw
YXRjaGVyLmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0
Y2hTY29wZWRFdmVudChOb2RlKiBub2RlLCBQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAgICBT
Y29wZWRFdmVudFF1ZXVlOjppbnN0YW5jZSgpLT5lbnF1ZXVlRXZlbnQoZXZlbnQpOwogfQogCi12
b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTaW11bGF0ZWRDbGljayhOb2RlKiBub2RlLCBQ
YXNzUmVmUHRyPEV2ZW50PiB1bmRlcmx5aW5nRXZlbnQsIGJvb2wgc2VuZE1vdXNlRXZlbnRzLCBi
b29sIHNob3dQcmVzc2VkTG9vaykKK3ZvaWQgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFNpbXVs
YXRlZENsaWNrKE5vZGUqIG5vZGUsIFBhc3NSZWZQdHI8RXZlbnQ+IHVuZGVybHlpbmdFdmVudCwg
Ym9vbCBzZW5kTW91c2VFdmVudHMpCiB7CiAgICAgaWYgKG5vZGUtPmRpc2FibGVkKCkpCiAgICAg
ICAgIHJldHVybjsKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlz
cGF0Y2hTaW11bGF0ZWRDbGljayhOb2RlKiBub2RlLCBQYXNzUmVmUHRyPEV2ZW50PiB1bmRlcgog
ICAgIC8vIHNlbmQgbW91c2Vkb3duIGFuZCBtb3VzZXVwIGJlZm9yZSB0aGUgY2xpY2ssIGlmIHJl
cXVlc3RlZAogICAgIGlmIChzZW5kTW91c2VFdmVudHMpCiAgICAgICAgIGRpc3BhdGNoZXIuZGlz
cGF0Y2hFdmVudChTaW11bGF0ZWRNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm1vdXNl
ZG93bkV2ZW50LCBub2RlLT5kb2N1bWVudCgpLT5kZWZhdWx0VmlldygpLCB1bmRlcmx5aW5nRXZl
bnQpKTsKLSAgICBub2RlLT5zZXRBY3RpdmUodHJ1ZSwgc2hvd1ByZXNzZWRMb29rKTsKKyAgICBu
b2RlLT5zZXRBY3RpdmUodHJ1ZSk7CiAgICAgaWYgKHNlbmRNb3VzZUV2ZW50cykKICAgICAgICAg
ZGlzcGF0Y2hlci5kaXNwYXRjaEV2ZW50KFNpbXVsYXRlZE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkubW91c2V1cEV2ZW50LCBub2RlLT5kb2N1bWVudCgpLT5kZWZhdWx0VmlldygpLCB1
bmRlcmx5aW5nRXZlbnQpKTsKICAgICBub2RlLT5zZXRBY3RpdmUoZmFsc2UpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50RGlzcGF0Y2hlci5oCmluZGV4IDFlNTFmOThhNDNhYjZkZTQxYWMyMmRhYTRiOGRj
YzllNmZhYzQ1YTguLjM1NWY0MDYwNjJkNzU5MGM2NjA0ZDg3YTc5OTA1ZTZjYjBmYzhiN2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBib29sIGRpc3BhdGNoRXZlbnQoTm9kZSosIGNvbnN0IEV2ZW50RGlzcGF0
Y2hNZWRpYXRvciYpOwogICAgIHN0YXRpYyB2b2lkIGRpc3BhdGNoU2NvcGVkRXZlbnQoTm9kZSos
IFBhc3NSZWZQdHI8RXZlbnQ+KTsKIAotICAgIHN0YXRpYyB2b2lkIGRpc3BhdGNoU2ltdWxhdGVk
Q2xpY2soTm9kZSosIFBhc3NSZWZQdHI8RXZlbnQ+IHVuZGVybHlpbmdFdmVudCwgYm9vbCBzZW5k
TW91c2VFdmVudHMsIGJvb2wgc2hvd1ByZXNzZWRMb29rKTsKKyAgICBzdGF0aWMgdm9pZCBkaXNw
YXRjaFNpbXVsYXRlZENsaWNrKE5vZGUqLCBQYXNzUmVmUHRyPEV2ZW50PiB1bmRlcmx5aW5nRXZl
bnQsIGJvb2wgc2VuZE1vdXNlRXZlbnRzKTsKIAogICAgIGJvb2wgZGlzcGF0Y2hFdmVudChQYXNz
UmVmUHRyPEV2ZW50Pik7CiAgICAgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gYWRqdXN0UmVsYXRl
ZFRhcmdldChFdmVudCosIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApp
bmRleCAyZjMwYmI3OGMyODYwMmEzYTdlYzkxNTMxNzYyMmUyYzNiMjQ2M2EzLi4zNDk3YmJmNDRl
MmM1NjQ2OTE4N2M4MmFjNzUwMzIwYmY3ZWMyZTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yNzQ0
LDkgKzI3NDQsOSBAQCBib29sIE5vZGU6OmRpc3BhdGNoTW91c2VFdmVudChjb25zdCBQbGF0Zm9y
bU1vdXNlRXZlbnQmIGV2ZW50LCBjb25zdCBBdG9taWNTdHJpbgogICAgIHJldHVybiBFdmVudERp
c3BhdGNoZXI6OmRpc3BhdGNoRXZlbnQodGhpcywgTW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3Io
TW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50VHlwZSwgZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwg
ZXZlbnQsIGRldGFpbCwgcmVsYXRlZFRhcmdldCkpKTsKIH0KIAotdm9pZCBOb2RlOjpkaXNwYXRj
aFNpbXVsYXRlZENsaWNrKFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBib29sIHNlbmRNb3VzZUV2
ZW50cywgYm9vbCBzaG93UHJlc3NlZExvb2spCit2b2lkIE5vZGU6OmRpc3BhdGNoU2ltdWxhdGVk
Q2xpY2soUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQsIGJvb2wgc2VuZE1vdXNlRXZlbnRzKQogewot
ICAgIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTaW11bGF0ZWRDbGljayh0aGlzLCBldmVudCwg
c2VuZE1vdXNlRXZlbnRzLCBzaG93UHJlc3NlZExvb2spOworICAgIEV2ZW50RGlzcGF0Y2hlcjo6
ZGlzcGF0Y2hTaW11bGF0ZWRDbGljayh0aGlzLCBldmVudCwgc2VuZE1vdXNlRXZlbnRzKTsKIH0K
IAogYm9vbCBOb2RlOjpkaXNwYXRjaFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGYxZDM3OTVlNTBkZjhkNGJiOGU4NDRlMjA0YmVhNWI5
MDM4ZjIxYzEuLmMwMzcwYzQwZGFiYzVlYjVhZmQ2OWViMTY1ZTcxZjBjNjU4Mjk3MjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuaApAQCAtMzIzLDcgKzMyMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxhenlBdHRhY2go
U2hvdWxkU2V0QXR0YWNoZWQgPSBTZXRBdHRhY2hlZCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0
Rm9jdXMoYm9vbCA9IHRydWUpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCBmID0g
dHJ1ZSwgYm9vbCAvKnBhdXNlKi8gPSBmYWxzZSkgeyBzZXRGbGFnKGYsIElzQWN0aXZlRmxhZyk7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wgZiA9IHRydWUpIHsgc2V0RmxhZyhm
LCBJc0FjdGl2ZUZsYWcpOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEhvdmVyZWQoYm9vbCBmID0g
dHJ1ZSkgeyBzZXRGbGFnKGYsIElzSG92ZXJlZEZsYWcpOyB9CiAKICAgICB2aXJ0dWFsIHNob3J0
IHRhYkluZGV4KCkgY29uc3Q7CkBAIC01NTQsNyArNTU0LDcgQEAgcHVibGljOgogICAgIGJvb2wg
ZGlzcGF0Y2hLZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmKTsKICAgICBib29s
IGRpc3BhdGNoV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKICAgICBib29s
IGRpc3BhdGNoTW91c2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZW50VHlwZSwgaW50IGNsaWNrQ291bnQgPSAwLCBOb2RlKiByZWxhdGVkVGFy
Z2V0ID0gMCk7Ci0gICAgdm9pZCBkaXNwYXRjaFNpbXVsYXRlZENsaWNrKFBhc3NSZWZQdHI8RXZl
bnQ+IHVuZGVybHlpbmdFdmVudCwgYm9vbCBzZW5kTW91c2VFdmVudHMgPSBmYWxzZSwgYm9vbCBz
aG93UHJlc3NlZExvb2sgPSB0cnVlKTsKKyAgICB2b2lkIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2so
UGFzc1JlZlB0cjxFdmVudD4gdW5kZXJseWluZ0V2ZW50LCBib29sIHNlbmRNb3VzZUV2ZW50cyA9
IGZhbHNlKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZvY3VzRXZlbnQoKTsKICAgICB2
aXJ0dWFsIHZvaWQgd2lsbEJsdXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVj
dGlvbi5jcHAKaW5kZXggZDliZWI2NGY4MWM0NDk4YTBiNTY1MTY5YWM3Y2NjZGMwNDc5MTJiZS4u
ZDQ4M2M2MTkyOGViZGExODkxN2MzMjFiZjczYmNkZjNkMDY2Njk3ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTExOTAsOSArMTE5MCw5IEBAIGJvb2wg
RnJhbWVTZWxlY3Rpb246OnJlY29tcHV0ZUNhcmV0UmVjdCgpCiAjaWYgRU5BQkxFKFRFWFRfQ0FS
RVQpICAgIAogICAgIGlmIChSZW5kZXJWaWV3KiB2aWV3ID0gdG9SZW5kZXJWaWV3KG1fZnJhbWUt
PmRvY3VtZW50KCktPnJlbmRlcmVyKCkpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBtYWtlIGNhcmV0
IHJlcGFpbnRpbmcgY29udGFpbmVyLWF3YXJlLgotICAgICAgICB2aWV3LT5yZXBhaW50UmVjdGFu
Z2xlSW5WaWV3QW5kQ29tcG9zaXRlZExheWVycyhvbGRBYnNvbHV0ZUNhcmV0UmVwYWludEJvdW5k
cywgZmFsc2UpOworICAgICAgICB2aWV3LT5yZXBhaW50UmVjdGFuZ2xlSW5WaWV3QW5kQ29tcG9z
aXRlZExheWVycyhvbGRBYnNvbHV0ZUNhcmV0UmVwYWludEJvdW5kcyk7CiAgICAgICAgIGlmIChz
aG91bGRSZXBhaW50Q2FyZXQodmlldywgaXNDb250ZW50RWRpdGFibGUoKSkpCi0gICAgICAgICAg
ICB2aWV3LT5yZXBhaW50UmVjdGFuZ2xlSW5WaWV3QW5kQ29tcG9zaXRlZExheWVycyhtX2Fic29s
dXRlQ2FyZXRSZXBhaW50Qm91bmRzLCBmYWxzZSk7CisgICAgICAgICAgICB2aWV3LT5yZXBhaW50
UmVjdGFuZ2xlSW5WaWV3QW5kQ29tcG9zaXRlZExheWVycyhtX2Fic29sdXRlQ2FyZXRSZXBhaW50
Qm91bmRzKTsKICAgICB9CiAjZW5kaWYKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEyMzIsNyArMTIz
Miw3IEBAIHZvaWQgQ2FyZXRCYXNlOjppbnZhbGlkYXRlQ2FyZXRSZWN0KE5vZGUqIG5vZGUsIGJv
b2wgY2FyZXRSZWN0Q2hhbmdlZCkKICAgICBpZiAoIWNhcmV0UmVjdENoYW5nZWQpIHsKICAgICAg
ICAgUmVuZGVyVmlldyogdmlldyA9IHRvUmVuZGVyVmlldyhub2RlLT5kb2N1bWVudCgpLT5yZW5k
ZXJlcigpKTsKICAgICAgICAgaWYgKHZpZXcgJiYgc2hvdWxkUmVwYWludENhcmV0KHZpZXcsIG5v
ZGUtPmlzQ29udGVudEVkaXRhYmxlKCkpKQotICAgICAgICAgICAgdmlldy0+cmVwYWludFJlY3Rh
bmdsZUluVmlld0FuZENvbXBvc2l0ZWRMYXllcnMoY2FyZXRSZXBhaW50UmVjdChub2RlKSwgZmFs
c2UpOworICAgICAgICAgICAgdmlldy0+cmVwYWludFJlY3RhbmdsZUluVmlld0FuZENvbXBvc2l0
ZWRMYXllcnMoY2FyZXRSZXBhaW50UmVjdChub2RlKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmNwcAppbmRleCA5M2ZlODczYjk3YmJhYmM0
YjYzMzNjYzIyOGU2YWY3OWY2OTcxMDA5Li5hMjZhYWU5Mjg1YjdiMGQ3MThiMzVkMjQ1NmE0ZjBj
NDkxNDY5NzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5j
cHAKQEAgLTQ4LDcgKzQ4LDcgQEAgdm9pZCBCYXNlQnV0dG9uSW5wdXRUeXBlOjpoYW5kbGVLZXlk
b3duRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CiAgICAgY29uc3QgU3RyaW5nJiBrZXkg
PSBldmVudC0+a2V5SWRlbnRpZmllcigpOwogICAgIGlmIChrZXkgPT0gIlUrMDAyMCIpIHsKLSAg
ICAgICAgZWxlbWVudCgpLT5zZXRBY3RpdmUodHJ1ZSwgdHJ1ZSk7CisgICAgICAgIGVsZW1lbnQo
KS0+c2V0QWN0aXZlKHRydWUpOwogICAgICAgICAvLyBObyBzZXREZWZhdWx0SGFuZGxlZCgpLCBi
ZWNhdXNlIElFIGRpc3BhdGNoZXMgYSBrZXlwcmVzcyBpbiB0aGlzIGNhc2UKICAgICAgICAgLy8g
YW5kIHRoZSBjYWxsZXIgd2lsbCBvbmx5IGRpc3BhdGNoIGEga2V5cHJlc3MgaWYgd2UgZG9uJ3Qg
Y2FsbCBzZXREZWZhdWx0SGFuZGxlZCgpLgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwCmluZGV4IGIxOTg3MTgxZTY2ODkyNmUxODBjZmNh
ZDkyZGRjNmNhZDRjNDZkZTYuLjBkNThiMmJjMGVmMDQ0MjIwZmY1YTBjMTdlMWQ2MTVjNzIzMTU4
MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNw
cApAQCAtNjMsNyArNjMsNyBAQCB2b2lkIEJhc2VDaGVja2FibGVJbnB1dFR5cGU6OmhhbmRsZUtl
eWRvd25FdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKIHsKICAgICBjb25zdCBTdHJpbmcmIGtl
eSA9IGV2ZW50LT5rZXlJZGVudGlmaWVyKCk7CiAgICAgaWYgKGtleSA9PSAiVSswMDIwIikgewot
ICAgICAgICBlbGVtZW50KCktPnNldEFjdGl2ZSh0cnVlLCB0cnVlKTsKKyAgICAgICAgZWxlbWVu
dCgpLT5zZXRBY3RpdmUodHJ1ZSk7CiAgICAgICAgIC8vIE5vIHNldERlZmF1bHRIYW5kbGVkKCks
IGJlY2F1c2UgSUUgZGlzcGF0Y2hlcyBhIGtleXByZXNzIGluIHRoaXMgY2FzZQogICAgICAgICAv
LyBhbmQgdGhlIGNhbGxlciB3aWxsIG9ubHkgZGlzcGF0Y2ggYSBrZXlwcmVzcyBpZiB3ZSBkb24n
dCBjYWxsIHNldERlZmF1bHRIYW5kbGVkKCkuCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBbmNob3JFbGVtZW50LmNwcAppbmRleCBkNjUxNWU0ZjcyYzgwYmY5OTJiNTY3MWY1MDJmZWJk
MmE2OWFiZGRlLi4yNjhmNDc5YjhhMzUwZTM2MjVmZjA3MTExY2M1NzFiN2IwNWY3ZjQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAtMTcyLDcgKzE3Miw3
IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2
ZW50KQogICAgIEhUTUxFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIAot
dm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6c2V0QWN0aXZlKGJvb2wgZG93biwgYm9vbCBwYXVzZSkK
K3ZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OnNldEFjdGl2ZShib29sIGRvd24pCiB7CiAgICAgaWYg
KHJlbmRlcmVySXNFZGl0YWJsZSgpKSB7CiAgICAgICAgIEVkaXRhYmxlTGlua0JlaGF2aW9yIGVk
aXRhYmxlTGlua0JlaGF2aW9yID0gRWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yOwpAQCAtMjAx
LDcgKzIwMSw3IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OnNldEFjdGl2ZShib29sIGRvd24s
IGJvb2wgcGF1c2UpCiAKICAgICB9CiAgICAgCi0gICAgQ29udGFpbmVyTm9kZTo6c2V0QWN0aXZl
KGRvd24sIHBhdXNlKTsKKyAgICBDb250YWluZXJOb2RlOjpzZXRBY3RpdmUoZG93bik7CiB9CiAK
IHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSog
YXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAppbmRleCA2MDdkMWY1
YTUxYTI0NjJkN2Q0Y2FlZDk4OGM1OTFlZjBiMzJjOTE5Li5iMzM3MDM5NzFlM2M0Y2YzZjA0Yjdk
M2M1YTNmMjE1YWJkN2FlYTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
bmNob3JFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5oCkBAIC0xMDUsNyArMTA1LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNNb3Vz
ZUZvY3VzYWJsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxl
KEtleWJvYXJkRXZlbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFu
ZGxlcihFdmVudCopOwotICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCBhY3RpdmUgPSB0
cnVlLCBib29sIHBhdXNlID0gZmFsc2UpOworICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9v
bCA9IHRydWUpOwogICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBmdWxsQWN0
aW9uKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKikgY29uc3Q7
CiAgICAgdmlydHVhbCBib29sIGNhblN0YXJ0U2VsZWN0aW9uKCkgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCmluZGV4IDY4Njc5MGRkOWUxZTAzMGRmMzUw
MTA3ZjRiN2E0MTJmN2EyMTI2NmYuLmNiODU0NmRjOTMzMWYyNWNiZmRmNDFhNmVmYzNlZWMxZmVi
NmFlZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCkBAIC0x
MTAsNyArMTEwLDcgQEAgdm9pZCBIVE1MQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxl
cihFdmVudCogZXZlbnQpCiAKICAgICBpZiAoZXZlbnQtPmlzS2V5Ym9hcmRFdmVudCgpKSB7CiAg
ICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQgJiYg
c3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2ZW50KS0+a2V5SWRlbnRpZmllcigpID09ICJV
KzAwMjAiKSB7Ci0gICAgICAgICAgICBzZXRBY3RpdmUodHJ1ZSwgdHJ1ZSk7CisgICAgICAgICAg
ICBzZXRBY3RpdmUodHJ1ZSk7CiAgICAgICAgICAgICAvLyBObyBzZXREZWZhdWx0SGFuZGxlZCgp
IC0gSUUgZGlzcGF0Y2hlcyBhIGtleXByZXNzIGluIHRoaXMgY2FzZS4KICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCAzM2Vl
ZjRkMWE3OGQwZGEyOTQ1NGE2ODUwNmUwMTExMWYxMjI0ZjJlLi42ZjFmNTMxNmY4ZWZmN2IzYmFi
NDI0MjlhMWQ5MTc0ZTg0YmJkZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApA
QCAtNzQwLDcgKzc0MCw3IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnNldFNwZWxsY2hlY2soYm9vbCBl
bmFibGUpCiAKIHZvaWQgSFRNTEVsZW1lbnQ6OmNsaWNrKCkKIHsKLSAgICBkaXNwYXRjaFNpbXVs
YXRlZENsaWNrKDAsIGZhbHNlLCBmYWxzZSk7CisgICAgZGlzcGF0Y2hTaW11bGF0ZWRDbGljaygw
LCBmYWxzZSk7CiB9CiAKIC8vIGFjY2Vzc0tleUFjdGlvbiBpcyB1c2VkIGJ5IHRoZSBhY2Nlc3Np
YmlsaXR5IHN1cHBvcnQgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TGFiZWxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5j
cHAKaW5kZXggZjIzNjFmMDNhYTg4MWQ2ZmExNTNlOTI2Mjk5ZGQ1NzlmNWMxNWU3Ni4uMGFjMDBj
NGU0MGRjOWRjMmU5ODBhYmU3MzlhZDMwMTgyNjNlMDM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxMYWJlbEVsZW1lbnQuY3BwCkBAIC04NCwxNyArODQsMTcgQEAgSFRNTEZvcm1Db250cm9s
RWxlbWVudCogSFRNTExhYmVsRWxlbWVudDo6Y29udHJvbCgpCiAgICAgcmV0dXJuIG5vZGVBc0xh
YmVsYWJsZUZvcm1Db250cm9sKHRyZWVTY29wZSgpLT5nZXRFbGVtZW50QnlJZChjb250cm9sSWQp
KTsKIH0KIAotdm9pZCBIVE1MTGFiZWxFbGVtZW50OjpzZXRBY3RpdmUoYm9vbCBkb3duLCBib29s
IHBhdXNlKQordm9pZCBIVE1MTGFiZWxFbGVtZW50OjpzZXRBY3RpdmUoYm9vbCBkb3duKQogewog
ICAgIGlmIChkb3duID09IGFjdGl2ZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBVcGRh
dGUgb3VyIHN0YXR1cyBmaXJzdC4KLSAgICBIVE1MRWxlbWVudDo6c2V0QWN0aXZlKGRvd24sIHBh
dXNlKTsKKyAgICBIVE1MRWxlbWVudDo6c2V0QWN0aXZlKGRvd24pOwogCiAgICAgLy8gQWxzbyB1
cGRhdGUgb3VyIGNvcnJlc3BvbmRpbmcgY29udHJvbC4KICAgICBpZiAoSFRNTEVsZW1lbnQqIGVs
ZW1lbnQgPSBjb250cm9sKCkpCi0gICAgICAgIGVsZW1lbnQtPnNldEFjdGl2ZShkb3duLCBwYXVz
ZSk7CisgICAgICAgIGVsZW1lbnQtPnNldEFjdGl2ZShkb3duKTsKIH0KIAogdm9pZCBIVE1MTGFi
ZWxFbGVtZW50OjpzZXRIb3ZlcmVkKGJvb2wgb3ZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFi
ZWxFbGVtZW50LmgKaW5kZXggMmIwOWUxNzA3ZTlmN2YxODhlZjJhYjAzYWY1NmM4OWU4YTc3NWY4
Ni4uYjVlMTEyNTNjMTJkZTA3MDM3YmYxZTE2NDU4NjMwMTFlZDU0ZDU0NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKQEAgLTQzLDcgKzQzLDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZFRvQW55RWxlbWVudCk7CiAK
ICAgICAvLyBPdmVycmlkZGVuIHRvIHVwZGF0ZSB0aGUgaG92ZXIvYWN0aXZlIHN0YXRlIG9mIHRo
ZSBjb3JyZXNwb25kaW5nIGNvbnRyb2wuCi0gICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29s
ID0gdHJ1ZSwgYm9vbCBwYXVzZSA9IGZhbHNlKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZl
KGJvb2wgPSB0cnVlKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SG92ZXJlZChib29sID0gdHJ1ZSk7
CiAKICAgICAvLyBPdmVycmlkZGVuIHRvIGVpdGhlciBjbGljaygpIG9yIGZvY3VzKCkgdGhlIGNv
cnJlc3BvbmRpbmcgY29udHJvbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFk
aW9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5jcHAK
aW5kZXggN2U2OTUxN2EzNTMyOTQ3YWY5MWQ0YjU0MDYyYThiMTc4YmY4MDdhZi4uNTEwOWNkNThl
ZjJhZDM1MTQyNzYzN2Y1ODkwMTg3NTE2NjExMTBhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9SYWRpb0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRp
b0lucHV0VHlwZS5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBSYWRpb0lucHV0VHlwZTo6aGFu
ZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGlmIChpbnB1dEVsZW1lbnQtPmlzUmFkaW9CdXR0b24oKSAmJiBpbnB1dEVsZW1l
bnQtPm5hbWUoKSA9PSBlbGVtZW50KCktPm5hbWUoKSAmJiBpbnB1dEVsZW1lbnQtPmlzRm9jdXNh
YmxlKCkpIHsKICAgICAgICAgICAgIGRvY3VtZW50LT5zZXRGb2N1c2VkTm9kZShpbnB1dEVsZW1l
bnQpOwotICAgICAgICAgICAgaW5wdXRFbGVtZW50LT5kaXNwYXRjaFNpbXVsYXRlZENsaWNrKGV2
ZW50LCBmYWxzZSwgZmFsc2UpOworICAgICAgICAgICAgaW5wdXRFbGVtZW50LT5kaXNwYXRjaFNp
bXVsYXRlZENsaWNrKGV2ZW50LCBmYWxzZSk7CiAgICAgICAgICAgICBldmVudC0+c2V0RGVmYXVs
dEhhbmRsZWQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDc4NWIxMmNjZGM3NzQ5MTdjY2EzYTVhODRmOTUzY2Vi
NzFmMmVhOWUuLjU1MzA4MWZhOTk4ZjQyZGU3ZWU1YTlmNjc3YjZhNzMwMTljZmI0ZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE1Niw5ICsxNTYsOSBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBjb25zdCB7IHJldHVy
biBJbnRSZWN0KCk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0
IEludFJlY3QmLCBib29sKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRz
QW5kV2luZG93KGNvbnN0IEludFJlY3QmLCBib29sKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgaW52
YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiwgYm9vbCkge307Cisg
ICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3QgSW50UmVjdCYp
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNv
bnN0IEludFJlY3QmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUm
LCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpIHsgfQogI2lmIEVOQUJMRShUSUxFRF9C
QUNLSU5HX1NUT1JFKQogICAgIHZpcnR1YWwgdm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQo
Y29uc3QgSW50UG9pbnQmKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCA0ODRjYTgxM2Y2
OWQ2ZmIwMDBkMzc0Y2IwZDEzOWVkNjhlYTgwYTE3Li5hNWU0YjNlMjZjNGVjOGZlODc4ZDhkMmQz
MjM1MDU1ZWUxY2VkMTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC02OSwxOSArNjksMTkg
QEAgQ2hyb21lOjp+Q2hyb21lKCkKICAgICBtX2NsaWVudC0+Y2hyb21lRGVzdHJveWVkKCk7CiB9
CiAKLXZvaWQgQ2hyb21lOjppbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJl
Y3QsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBDaHJvbWU6OmludmFsaWRhdGVXaW5kb3coY29uc3Qg
SW50UmVjdCYgdXBkYXRlUmVjdCkKIHsKLSAgICBtX2NsaWVudC0+aW52YWxpZGF0ZVdpbmRvdyh1
cGRhdGVSZWN0LCBpbW1lZGlhdGUpOworICAgIG1fY2xpZW50LT5pbnZhbGlkYXRlV2luZG93KHVw
ZGF0ZVJlY3QpOwogfQogCi12b2lkIENocm9tZTo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93
KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBDaHJvbWU6
OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KQog
ewotICAgIG1fY2xpZW50LT5pbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3codXBkYXRlUmVjdCwg
aW1tZWRpYXRlKTsKKyAgICBtX2NsaWVudC0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KHVw
ZGF0ZVJlY3QpOwogfQogCi12b2lkIENocm9tZTo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Nj
cm9sbChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgQ2hy
b21lOjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmIHVwZGF0
ZVJlY3QpCiB7Ci0gICAgbV9jbGllbnQtPmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwo
dXBkYXRlUmVjdCwgaW1tZWRpYXRlKTsKKyAgICBtX2NsaWVudC0+aW52YWxpZGF0ZUNvbnRlbnRz
Rm9yU2xvd1Njcm9sbCh1cGRhdGVSZWN0KTsKIH0KIAogdm9pZCBDaHJvbWU6OnNjcm9sbChjb25z
dCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25z
dCBJbnRSZWN0JiBjbGlwUmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCmluZGV4IDEyYjlmNTQ2N2NkYjhj
ZGIxMDcwNGFkZWRjNzBjOGU2N2MxMWQ3YzEuLmE0MWRkZmJjOGI1NDFlYWQwZTU3Yzk4ZGU2YmJi
NTdmYzExOGY4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaApAQCAtNjYsOSArNjYsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgLy8gSG9zdFdpbmRvdyBtZXRob2RzLgogCi0gICAgICAg
IHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3QmLCBib29sKTsKLSAg
ICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRS
ZWN0JiwgYm9vbCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JT
bG93U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGlu
dmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgaW52
YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJlY3QmKTsKKyAgICAgICAgdmlydHVh
bCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYpOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0
JiwgY29uc3QgSW50UmVjdCYpOwogI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFBvaW50
JiBzY3JvbGxQb2ludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBkNWU2ZDdi
NjNkMWE1MGE4MmY0ZjJmZDk5ZDc4YzM2ZjJlYmE0ZjhhLi5mMGJjZTYxODkzN2E2Mjg4MGZjMzEz
NDYyMjhlMGQxZGFmMjMwOTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTE0
NCw5ICsxNDQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgSW50UmVj
dCB3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0ID0gMDsKIAogICAgICAgICAvLyBNZXRob2RzIHVz
ZWQgYnkgSG9zdFdpbmRvdy4KLSAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVXaW5kb3co
Y29uc3QgSW50UmVjdCYsIGJvb2wpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRh
dGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiwgYm9vbCkgPSAwOwotICAgICAgICB2
aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0
JiwgYm9vbCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVdpbmRvdyhjb25z
dCBJbnRSZWN0JikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRz
QW5kV2luZG93KGNvbnN0IEludFJlY3QmKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZh
bGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBjb25z
dCBJbnRSZWN0JikgPSAwOwogI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFBvaW50Jikg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDdjOTUzODA1MzNiM2MyYTQ5YjI0
NmE5NzU5Y2M0NDU2NGRmMjg4MjguLjBmMWJhOGExMTUzYjE5YjRlNTEzNzA2ZDMxNzI2YWI0ODQ2
MjU4NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTM2NSw3ICszNjUsNyBAQCB2
b2lkIEZyYW1lVmlldzo6aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAg
ICBpZiAoIXBhcmVudCgpKSB7CiAgICAgICAgIGlmIChob3N0V2luZG93KCkpCi0gICAgICAgICAg
ICBob3N0V2luZG93KCktPmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhyZWN0LCBmYWxzZSAv
KmltbWVkaWF0ZSovKTsKKyAgICAgICAgICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRl
bnRzQW5kV2luZG93KHJlY3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMzMwLDcg
KzEzMzAsNyBAQCBib29sIEZyYW1lVmlldzo6c2Nyb2xsQ29udGVudHNGYXN0UGF0aChjb25zdCBJ
bnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdAogICAgICAgICAgICAgdXBkYXRlUmVj
dC51bml0ZShzY3JvbGxlZFJlY3QpOwogICAgICAgICAgICAgaWYgKGNsaXBzUmVwYWludHMoKSkK
ICAgICAgICAgICAgICAgICB1cGRhdGVSZWN0LmludGVyc2VjdChyZWN0VG9TY3JvbGwpOwotICAg
ICAgICAgICAgaG9zdFdpbmRvdygpLT5pbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3codXBkYXRl
UmVjdCwgZmFsc2UpOworICAgICAgICAgICAgaG9zdFdpbmRvdygpLT5pbnZhbGlkYXRlQ29udGVu
dHNBbmRXaW5kb3codXBkYXRlUmVjdCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQpAQCAtMTU0OSwxMiArMTU0OSwxMiBAQCBIb3N0V2luZG93KiBGcmFtZVZpZXc6Omhv
c3RXaW5kb3coKSBjb25zdAogCiBjb25zdCB1bnNpZ25lZCBjUmVwYWludFJlY3RVbmlvblRocmVz
aG9sZCA9IDI1OwogCi12b2lkIEZyYW1lVmlldzo6cmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29u
c3QgSW50UmVjdCYgciwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIEZyYW1lVmlldzo6cmVwYWludENv
bnRlbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYgcikKIHsKICAgICBBU1NFUlQoIW1fZnJhbWUt
Pm93bmVyRWxlbWVudCgpKTsKIAogICAgIGRvdWJsZSBkZWxheSA9IG1fZGVmZXJyaW5nUmVwYWlu
dHMgPyAwIDogYWRqdXN0ZWREZWZlcnJlZFJlcGFpbnREZWxheSgpOwotICAgIGlmICgobV9kZWZl
cnJpbmdSZXBhaW50cyB8fCBtX2RlZmVycmVkUmVwYWludFRpbWVyLmlzQWN0aXZlKCkgfHwgZGVs
YXkpICYmICFpbW1lZGlhdGUpIHsKKyAgICBpZiAobV9kZWZlcnJpbmdSZXBhaW50cyB8fCBtX2Rl
ZmVycmVkUmVwYWludFRpbWVyLmlzQWN0aXZlKCkgfHwgZGVsYXkpIHsKICAgICAgICAgSW50UmVj
dCBwYWludFJlY3QgPSByOwogICAgICAgICBpZiAoY2xpcHNSZXBhaW50cygpICYmICFwYWludHNF
bnRpcmVDb250ZW50cygpKQogICAgICAgICAgICAgcGFpbnRSZWN0LmludGVyc2VjdCh2aXNpYmxl
Q29udGVudFJlY3QoKSk7CkBAIC0xNTc4LDcgKzE1NzgsNyBAQCB2b2lkIEZyYW1lVmlldzo6cmVw
YWludENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYgciwgYm9vbCBpbW1lZGlhdGUpCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgaWYgKCFzaG91bGRVcGRhdGUoaW1tZWRp
YXRlKSkKKyAgICBpZiAoIXNob3VsZFVwZGF0ZSgpKQogICAgICAgICByZXR1cm47CiAKICNpZiBF
TkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKQEAgLTE1ODcsNyArMTU4Nyw3IEBAIHZvaWQgRnJh
bWVWaWV3OjpyZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRSZWN0JiByLCBib29sIGlt
bWVkaWF0ZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgotICAgIFNjcm9sbFZpZXc6
OnJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKHIsIGltbWVkaWF0ZSk7CisgICAgU2Nyb2xsVmlldzo6
cmVwYWludENvbnRlbnRSZWN0YW5nbGUocik7CiB9CiAKIHZvaWQgRnJhbWVWaWV3Ojpjb250ZW50
c1Jlc2l6ZWQoKQpAQCAtMTY3OCw3ICsxNjc4LDcgQEAgdm9pZCBGcmFtZVZpZXc6OmRvRGVmZXJy
ZWRSZXBhaW50cygpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogI2VuZGlmCi0g
ICAgICAgIFNjcm9sbFZpZXc6OnJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKG1fcmVwYWludFJlY3Rz
W2ldLCBmYWxzZSk7CisgICAgICAgIFNjcm9sbFZpZXc6OnJlcGFpbnRDb250ZW50UmVjdGFuZ2xl
KG1fcmVwYWludFJlY3RzW2ldKTsKICAgICB9CiAgICAgbV9yZXBhaW50UmVjdHMuY2xlYXIoKTsK
ICAgICBtX3JlcGFpbnRDb3VudCA9IDA7CkBAIC0xOTE3LDkgKzE5MTcsOSBAQCB2b2lkIEZyYW1l
Vmlldzo6c2V0U2hvdWxkVXBkYXRlV2hpbGVPZmZzY3JlZW4oYm9vbCBzaG91bGRVcGRhdGVXaGls
ZU9mZnNjcmVlbikKICAgICBtX3Nob3VsZFVwZGF0ZVdoaWxlT2Zmc2NyZWVuID0gc2hvdWxkVXBk
YXRlV2hpbGVPZmZzY3JlZW47CiB9CiAKLWJvb2wgRnJhbWVWaWV3OjpzaG91bGRVcGRhdGUoYm9v
bCBpbW1lZGlhdGVSZXF1ZXN0ZWQpIGNvbnN0Citib29sIEZyYW1lVmlldzo6c2hvdWxkVXBkYXRl
KCkgY29uc3QKIHsKLSAgICBpZiAoIWltbWVkaWF0ZVJlcXVlc3RlZCAmJiBpc09mZnNjcmVlbigp
ICYmICFzaG91bGRVcGRhdGVXaGlsZU9mZnNjcmVlbigpKQorICAgIGlmIChpc09mZnNjcmVlbigp
ICYmICFzaG91bGRVcGRhdGVXaGlsZU9mZnNjcmVlbigpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBmODI4MzE5
NDk2MDE4MDMzYThjZDgwNmIyOWViMDJlM2I0OTFkZjE1Li5lOGQwZDIyNTA2NDEzZTQ3NDllNWEw
YWI1Mjg3MTMyYWNlN2YyNWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTE1Myw3ICsx
NTMsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIHNob3VsZFVwZGF0ZVdoaWxlT2Zmc2NyZWVuKCkg
Y29uc3Q7CiAgICAgdm9pZCBzZXRTaG91bGRVcGRhdGVXaGlsZU9mZnNjcmVlbihib29sKTsKLSAg
ICBib29sIHNob3VsZFVwZGF0ZShib29sID0gZmFsc2UpIGNvbnN0OworICAgIGJvb2wgc2hvdWxk
VXBkYXRlKCkgY29uc3Q7CiAKICAgICB2b2lkIGFkanVzdFZpZXdTaXplKCk7CiAgICAgCkBAIC0z
MTIsNyArMzEyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGVyZm9ybVBvc3RMYXlvdXRUYXNr
cygpOwogCi0gICAgdmlydHVhbCB2b2lkIHJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IElu
dFJlY3QmLCBib29sIGltbWVkaWF0ZSk7CisgICAgdmlydHVhbCB2b2lkIHJlcGFpbnRDb250ZW50
UmVjdGFuZ2xlKGNvbnN0IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNSZXNp
emVkKCk7CiAgICAgdmlydHVhbCB2b2lkIHZpc2libGVDb250ZW50c1Jlc2l6ZWQoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oCmluZGV4IDFiOGI5MzIwYzQ5ZTE2YTIyZDE0ZjFl
NjIxNTUxYWU2YzMyOGViYmMuLmU2OTdhYzczODI1NmY5NTU2NGEzYWNiYTE5MDA0MTdmOWU4MDUy
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93LmgKQEAgLTM4LDE3ICszOCwxNyBA
QCBwdWJsaWM6CiAgICAgSG9zdFdpbmRvdygpIHsgfQogICAgIHZpcnR1YWwgfkhvc3RXaW5kb3co
KSB7IH0KIAotICAgIC8vIFJlcXVlc3RzIHRoZSBob3N0IGludmFsaWRhdGUgdGhlIHdpbmRvdywg
bm90IHRoZSBjb250ZW50cy4gIElmIGltbWVkaWF0ZSBpcyB0cnVlIGRvIHNvIHN5bmNocm9ub3Vz
bHksIG90aGVyd2lzZSBhc3luYy4KLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVdpbmRvdyhj
b25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkgPSAwOworICAgIC8vIFJl
cXVlc3RzIHRoZSBob3N0IGludmFsaWRhdGUgdGhlIHdpbmRvdywgbm90IHRoZSBjb250ZW50cy4K
KyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVdpbmRvdyhjb25zdCBJbnRSZWN0JiB1cGRhdGVS
ZWN0KSA9IDA7CiAKLSAgICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBpbnZhbGlkYXRlIHRoZSBjb250
ZW50cyBhbmQgdGhlIHdpbmRvdy4gIElmIGltbWVkaWF0ZSBpcyB0cnVlIGRvIHNvIHN5bmNocm9u
b3VzbHksIG90aGVyd2lzZSBhc3luYy4KLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRl
bnRzQW5kV2luZG93KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKSA9
IDA7CisgICAgLy8gUmVxdWVzdHMgdGhlIGhvc3QgaW52YWxpZGF0ZSB0aGUgY29udGVudHMgYW5k
IHRoZSB3aW5kb3cuCisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRv
dyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KSA9IDA7CiAKICAgICAvLyBSZXF1ZXN0cyB0aGUg
aG9zdCBzY3JvbGwgYmFja2luZ3N0b3JlIGJ5IHRoZSBzcGVjaWZpZWQgZGVsdGEsIHJlY3QgdG8g
c2Nyb2xsLCBhbmQgY2xpcCByZWN0LgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50
U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50
UmVjdCYgY2xpcFJlY3QpID0gMDsKIAogICAgIC8vIFJlcXVlc3RzIHRoZSBob3N0IGludmFsaWRh
dGUgdGhlIGNvbnRlbnRzLCBub3QgdGhlIHdpbmRvdy4gIFRoaXMgaXMgdGhlIHNsb3cgcGF0aCBm
b3Igc2Nyb2xsaW5nLgotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93
U2Nyb2xsKGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50
UmVjdCYgdXBkYXRlUmVjdCkgPSAwOwogCiAjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUp
CiAgICAgLy8gUmVxdWVzdHMgdGhlIGhvc3QgdG8gZG8gdGhlIGFjdHVhbCBzY3JvbGxpbmcuIFRo
aXMgaXMgb25seSB1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGggYSB0aWxlZCBiYWNraW5nIHN0b3Jl
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCBmNGQwNjM0YWQzYzE1
NTNhYzhjOWZkYmVlYzQyNWQ4ODcyYzEwODlhLi4zNjNjODZjNzBkYzMwMmVhY2M1MTFkZmY4MjU3
ZWQ3ZmQyYjNmMzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAt
NjE4LDcgKzYxOCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6c2Nyb2xsQ29udGVudHMoY29uc3QgSW50
U2l6ZSYgc2Nyb2xsRGVsdGEpCiAgICAgdXBkYXRlUmVjdC5pbnRlcnNlY3Qoc2Nyb2xsVmlld1Jl
Y3QpOwogCiAgICAgLy8gSW52YWxpZGF0ZSB0aGUgd2luZG93IChub3QgdGhlIGJhY2tpbmcgc3Rv
cmUpLgotICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZVdpbmRvdyh1cGRhdGVSZWN0LCBmYWxz
ZSAvKmltbWVkaWF0ZSovKTsKKyAgICBob3N0V2luZG93KCktPmludmFsaWRhdGVXaW5kb3codXBk
YXRlUmVjdCk7CiAKICAgICBpZiAobV9kcmF3UGFuU2Nyb2xsSWNvbikgewogICAgICAgICAvLyBG
SVhNRTogdGhlIHBhbiBpY29uIGlzIGJyb2tlbiB3aGVuIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5n
IGlzIG9uLCBzaW5jZSBpdCB3aWxsIGRyYXcgdW5kZXIgdGhlIGNvbXBvc2l0aW5nIGxheWVycy4K
QEAgLTYyNyw3ICs2MjcsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnNjcm9sbENvbnRlbnRzKGNvbnN0
IEludFNpemUmIHNjcm9sbERlbHRhKQogICAgICAgICBJbnRQb2ludCBwYW5JY29uRGlydHlTcXVh
cmVMb2NhdGlvbiA9IEludFBvaW50KG1fcGFuU2Nyb2xsSWNvblBvaW50LngoKSAtIChwYW5JY29u
RGlydHlTcXVhcmVTaXplTGVuZ3RoIC8gMiksIG1fcGFuU2Nyb2xsSWNvblBvaW50LnkoKSAtIChw
YW5JY29uRGlydHlTcXVhcmVTaXplTGVuZ3RoIC8gMikpOwogICAgICAgICBJbnRSZWN0IHBhblNj
cm9sbEljb25EaXJ0eVJlY3QgPSBJbnRSZWN0KHBhbkljb25EaXJ0eVNxdWFyZUxvY2F0aW9uICwg
SW50U2l6ZShwYW5JY29uRGlydHlTcXVhcmVTaXplTGVuZ3RoLCBwYW5JY29uRGlydHlTcXVhcmVT
aXplTGVuZ3RoKSk7CiAgICAgICAgIHBhblNjcm9sbEljb25EaXJ0eVJlY3QuaW50ZXJzZWN0KGNs
aXBSZWN0KTsKLSAgICAgICAgaG9zdFdpbmRvdygpLT5pbnZhbGlkYXRlQ29udGVudHNBbmRXaW5k
b3cocGFuU2Nyb2xsSWNvbkRpcnR5UmVjdCwgZmFsc2UgLyppbW1lZGlhdGUqLyk7CisgICAgICAg
IGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KHBhblNjcm9sbEljb25E
aXJ0eVJlY3QpOwogICAgIH0KIAogICAgIGlmIChjYW5CbGl0T25TY3JvbGwoKSkgeyAvLyBUaGUg
bWFpbiBmcmFtZSBjYW4ganVzdCBibGl0IHRoZSBXZWJWaWV3IHdpbmRvdwpAQCAtNjQ1LDE1ICs2
NDUsMTUgQEAgdm9pZCBTY3JvbGxWaWV3OjpzY3JvbGxDb250ZW50cyhjb25zdCBJbnRTaXplJiBz
Y3JvbGxEZWx0YSkKICAgICBJbnRSZWN0IHZlcnRpY2FsT3ZlcmhhbmdSZWN0OwogICAgIGNhbGN1
bGF0ZU92ZXJoYW5nQXJlYXNGb3JQYWludGluZyhob3Jpem9udGFsT3ZlcmhhbmdSZWN0LCB2ZXJ0
aWNhbE92ZXJoYW5nUmVjdCk7CiAgICAgaWYgKCFob3Jpem9udGFsT3ZlcmhhbmdSZWN0LmlzRW1w
dHkoKSkKLSAgICAgICAgaG9zdFdpbmRvdygpLT5pbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3co
aG9yaXpvbnRhbE92ZXJoYW5nUmVjdCwgZmFsc2UgLyppbW1lZGlhdGUqLyk7CisgICAgICAgIGhv
c3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGhvcml6b250YWxPdmVyaGFu
Z1JlY3QpOwogICAgIGlmICghdmVydGljYWxPdmVyaGFuZ1JlY3QuaXNFbXB0eSgpKQotICAgICAg
ICBob3N0V2luZG93KCktPmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyh2ZXJ0aWNhbE92ZXJo
YW5nUmVjdCwgZmFsc2UgLyppbW1lZGlhdGUqLyk7CisgICAgICAgIGhvc3RXaW5kb3coKS0+aW52
YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KHZlcnRpY2FsT3ZlcmhhbmdSZWN0KTsKIAogICAgIC8v
IFRoaXMgY2FsbCB3aWxsIG1vdmUgY2hpbGRyZW4gd2l0aCBuYXRpdmUgd2lkZ2V0cyAocGx1Z2lu
cykgYW5kIGludmFsaWRhdGUgdGhlbSBhcyB3ZWxsLgogICAgIGZyYW1lUmVjdHNDaGFuZ2VkKCk7
CiAKICAgICAvLyBOb3cgYmxpdCB0aGUgYmFja2luZ3N0b3JlIGludG8gdGhlIHdpbmRvdyB3aGlj
aCBzaG91bGQgYmUgdmVyeSBmYXN0LgotICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZVdpbmRv
dyhJbnRSZWN0KCksIHRydWUpOworICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZVdpbmRvdyhJ
bnRSZWN0KCkpOwogfQogCiBib29sIFNjcm9sbFZpZXc6OnNjcm9sbENvbnRlbnRzRmFzdFBhdGgo
Y29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwg
Y29uc3QgSW50UmVjdCYgY2xpcFJlY3QpCkBAIC02NjQsNyArNjY0LDcgQEAgYm9vbCBTY3JvbGxW
aWV3OjpzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBj
b25zdCBJbnRSZWMKIAogdm9pZCBTY3JvbGxWaWV3OjpzY3JvbGxDb250ZW50c1Nsb3dQYXRoKGNv
bnN0IEludFJlY3QmIHVwZGF0ZVJlY3QpCiB7Ci0gICAgaG9zdFdpbmRvdygpLT5pbnZhbGlkYXRl
Q29udGVudHNGb3JTbG93U2Nyb2xsKHVwZGF0ZVJlY3QsIGZhbHNlKTsKKyAgICBob3N0V2luZG93
KCktPmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwodXBkYXRlUmVjdCk7CiB9CiAKIElu
dFBvaW50IFNjcm9sbFZpZXc6OndpbmRvd1RvQ29udGVudHMoY29uc3QgSW50UG9pbnQmIHdpbmRv
d1BvaW50KSBjb25zdApAQCAtODg0LDcgKzg4NCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6cG9zaXRp
b25TY3JvbGxiYXJMYXllcnMoKQogI2VuZGlmCiB9CiAKLXZvaWQgU2Nyb2xsVmlldzo6cmVwYWlu
dENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYgcmVjdCwgYm9vbCBub3cpCit2b2lkIFNj
cm9sbFZpZXc6OnJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IEludFJlY3QmIHJlY3QpCiB7
CiAgICAgSW50UmVjdCBwYWludFJlY3QgPSByZWN0OwogICAgIGlmIChjbGlwc1JlcGFpbnRzKCkg
JiYgIXBhaW50c0VudGlyZUNvbnRlbnRzKCkpCkBAIC04OTQsMTIgKzg5NCwxMiBAQCB2b2lkIFNj
cm9sbFZpZXc6OnJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IEludFJlY3QmIHJlY3QsIGJv
b2wgbm93KQogCiAgICAgaWYgKHBsYXRmb3JtV2lkZ2V0KCkpIHsKICAgICAgICAgbm90aWZ5UGFn
ZVRoYXRDb250ZW50QXJlYVdpbGxQYWludCgpOwotICAgICAgICBwbGF0Zm9ybVJlcGFpbnRDb250
ZW50UmVjdGFuZ2xlKHBhaW50UmVjdCwgbm93KTsKKyAgICAgICAgcGxhdGZvcm1SZXBhaW50Q29u
dGVudFJlY3RhbmdsZShwYWludFJlY3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAg
aWYgKGhvc3RXaW5kb3coKSkKLSAgICAgICAgaG9zdFdpbmRvdygpLT5pbnZhbGlkYXRlQ29udGVu
dHNBbmRXaW5kb3coY29udGVudHNUb1dpbmRvdyhwYWludFJlY3QpLCBub3cgLyppbW1lZGlhdGUq
Lyk7CisgICAgICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNv
bnRlbnRzVG9XaW5kb3cocGFpbnRSZWN0KSk7CiB9CiAKIEludFJlY3QgU2Nyb2xsVmlldzo6c2Ny
b2xsQ29ybmVyUmVjdCgpIGNvbnN0CkBAIC0xMjE3LDcgKzEyMTcsNyBAQCB2b2lkIFNjcm9sbFZp
ZXc6OmFkZFBhblNjcm9sbEljb24oY29uc3QgSW50UG9pbnQmIGljb25Qb3NpdGlvbikKICAgICAg
ICAgcmV0dXJuOwogICAgIG1fZHJhd1BhblNjcm9sbEljb24gPSB0cnVlOyAgICAKICAgICBtX3Bh
blNjcm9sbEljb25Qb2ludCA9IEludFBvaW50KGljb25Qb3NpdGlvbi54KCkgLSBwYW5JY29uU2l6
ZUxlbmd0aCAvIDIgLCBpY29uUG9zaXRpb24ueSgpIC0gcGFuSWNvblNpemVMZW5ndGggLyAyKSA7
Ci0gICAgaG9zdFdpbmRvdygpLT5pbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coSW50UmVjdCht
X3BhblNjcm9sbEljb25Qb2ludCwgSW50U2l6ZShwYW5JY29uU2l6ZUxlbmd0aCwgcGFuSWNvblNp
emVMZW5ndGgpKSwgdHJ1ZSAvKmltbWVkaWF0ZSovKTsKKyAgICBob3N0V2luZG93KCktPmludmFs
aWRhdGVDb250ZW50c0FuZFdpbmRvdyhJbnRSZWN0KG1fcGFuU2Nyb2xsSWNvblBvaW50LCBJbnRT
aXplKHBhbkljb25TaXplTGVuZ3RoLCBwYW5JY29uU2l6ZUxlbmd0aCkpKTsKIH0KIAogdm9pZCBT
Y3JvbGxWaWV3OjpyZW1vdmVQYW5TY3JvbGxJY29uKCkKQEAgLTEyMjUsNyArMTIyNSw3IEBAIHZv
aWQgU2Nyb2xsVmlldzo6cmVtb3ZlUGFuU2Nyb2xsSWNvbigpCiAgICAgaWYgKCFob3N0V2luZG93
KCkpCiAgICAgICAgIHJldHVybjsKICAgICBtX2RyYXdQYW5TY3JvbGxJY29uID0gZmFsc2U7IAot
ICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KEludFJlY3QobV9w
YW5TY3JvbGxJY29uUG9pbnQsIEludFNpemUocGFuSWNvblNpemVMZW5ndGgsIHBhbkljb25TaXpl
TGVuZ3RoKSksIHRydWUgLyppbW1lZGlhdGUqLyk7CisgICAgaG9zdFdpbmRvdygpLT5pbnZhbGlk
YXRlQ29udGVudHNBbmRXaW5kb3coSW50UmVjdChtX3BhblNjcm9sbEljb25Qb2ludCwgSW50U2l6
ZShwYW5JY29uU2l6ZUxlbmd0aCwgcGFuSWNvblNpemVMZW5ndGgpKSk7CiB9CiAKIHZvaWQgU2Ny
b2xsVmlldzo6c2V0U2Nyb2xsT3JpZ2luKGNvbnN0IEludFBvaW50JiBvcmlnaW4sIGJvb2wgdXBk
YXRlUG9zaXRpb25BdEFsbCwgYm9vbCB1cGRhdGVQb3NpdGlvblN5bmNocm9ub3VzbHkpCkBAIC0x
MzM1LDcgKzEzMzUsNyBAQCBib29sIFNjcm9sbFZpZXc6OnBsYXRmb3JtU2Nyb2xsKFNjcm9sbERp
cmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQg
U2Nyb2xsVmlldzo6cGxhdGZvcm1SZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRSZWN0
JiwgYm9vbCAvKm5vdyovKQordm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVJlcGFpbnRDb250ZW50
UmVjdGFuZ2xlKGNvbnN0IEludFJlY3QmKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmgKaW5kZXggMTdiYjhlYjgxODVmMDA5NGM3YTRkZTUwMzZhNjE0NDU0ZmJlODVhZC4u
M2MyZmUzNjBiNTJjMjJiNTEzOTNiNTA4YWFlOTBhYzIwZjdlMDRkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbFZpZXcuaApAQCAtMjg3LDcgKzI4Nyw3IEBAIHB1YmxpYzoKIHByb3RlY3Rl
ZDoKICAgICBTY3JvbGxWaWV3KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVwYWludENvbnRlbnRS
ZWN0YW5nbGUoY29uc3QgSW50UmVjdCYsIGJvb2wgbm93ID0gZmFsc2UpOworICAgIHZpcnR1YWwg
dm9pZCByZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRSZWN0Jik7CiAgICAgdmlydHVh
bCB2b2lkIHBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYgZGFt
YWdlUmVjdCkgPSAwOwogCiAgICAgdm9pZCBjYWxjdWxhdGVPdmVyaGFuZ0FyZWFzRm9yUGFpbnRp
bmcoSW50UmVjdCYgaG9yaXpvbnRhbE92ZXJoYW5nUmVjdCwgSW50UmVjdCYgdmVydGljYWxPdmVy
aGFuZ1JlY3QpOwpAQCAtMzg3LDcgKzM4Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9y
bVNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50Jik7CiAgICAgYm9vbCBwbGF0Zm9ybVNj
cm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5KTsKICAgICB2b2lkIHBsYXRm
b3JtU2V0U2Nyb2xsYmFyc1N1cHByZXNzZWQoYm9vbCByZXBhaW50T25VbnN1cHByZXNzKTsKLSAg
ICB2b2lkIHBsYXRmb3JtUmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYsIGJv
b2wgbm93KTsKKyAgICB2b2lkIHBsYXRmb3JtUmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29uc3Qg
SW50UmVjdCYpOwogICAgIGJvb2wgcGxhdGZvcm1Jc09mZnNjcmVlbigpIGNvbnN0OwogICAgCiAg
ICAgdm9pZCBwbGF0Zm9ybVNldFNjcm9sbE9yaWdpbihjb25zdCBJbnRQb2ludCYsIGJvb2wgdXBk
YXRlUG9zaXRpb25BdEFsbCwgYm9vbCB1cGRhdGVQb3NpdGlvblN5bmNocm9ub3VzbHkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9TY3JvbGxWaWV3QW5kcm9p
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL1Njcm9sbFZpZXdBbmRyb2lk
LmNwcAppbmRleCA1ZDRkYTE4YjVjYTg3YWU1YTFkZGNkMmVkMTU1YmMwYjA2NDc5MGQyLi4zN2I5
ZDJjYjE1YjQ5OTRhZGExM2E4ZWY4MWY0MjE5YTA2NjVmZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL1Njcm9sbFZpZXdBbmRyb2lkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL1Njcm9sbFZpZXdBbmRyb2lkLmNwcApAQCAtOTEs
NyArOTEsNyBAQCBib29sIFNjcm9sbFZpZXc6OnBsYXRmb3JtUHJvaGliaXRzU2Nyb2xsaW5nKCkK
ICAgICByZXR1cm4gIWFuZHJvaWQ6OldlYkZyYW1lOjpnZXRXZWJGcmFtZSh2aWV3LT5mcmFtZSgp
KS0+dXNlckluaXRpYXRlZENsaWNrKCk7CiB9CiAKLXZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1S
ZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRSZWN0ICZyZWN0LCBib29sIG5vdykKK3Zv
aWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1SZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRS
ZWN0ICZyZWN0KQogewogICAgIGFuZHJvaWQ6OldlYlZpZXdDb3JlOjpnZXRXZWJWaWV3Q29yZSh0
aGlzKS0+Y29udGVudEludmFsaWRhdGUocmVjdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9GcmFtZWxlc3NTY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0ZyYW1lbGVzc1Njcm9sbFZpZXcuY3BwCmluZGV4IDY2
ZjZmMjk3NzY3NzZlNzllNWU1ZDk0MzYzY2E2NmVjMGEwM2NjZjkuLjM4MzNhNTg2OGExNWUwNDlh
M2RjYWVjMTc4MTE5NzgzZDNhZmRmMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL0ZyYW1lbGVzc1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL0ZyYW1lbGVzc1Njcm9sbFZpZXcuY3BwCkBAIC02Niw3ICs2Niw3
IEBAIFNjcm9sbGFibGVBcmVhKiBGcmFtZWxlc3NTY3JvbGxWaWV3OjplbmNsb3NpbmdTY3JvbGxh
YmxlQXJlYSgpIGNvbnN0CiB2b2lkIEZyYW1lbGVzc1Njcm9sbFZpZXc6OmludmFsaWRhdGVSZWN0
KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKEhvc3RXaW5kb3cqIGggPSBob3N0V2lu
ZG93KCkpCi0gICAgICAgIGgtPmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhyZWN0LCBmYWxz
ZSAvKmltbWVkaWF0ZSovKTsKKyAgICAgICAgaC0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93
KHJlY3QpOwogfQogCiBIb3N0V2luZG93KiBGcmFtZWxlc3NTY3JvbGxWaWV3Ojpob3N0V2luZG93
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3d4L1Njcm9sbFZp
ZXdXeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93eC9TY3JvbGxWaWV3V3guY3BwCmlu
ZGV4IDM1ZDYyYjI1MjRjZGM1MTVkYzllMTVjMjA3NTA0ODUxYzlhNzI3MGQuLjQxNjhmMjRjZTYx
MjM3YzJmNjQ5ZGQ4M2Y3MDI3NTZlM2Q4ZDUyNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3d4L1Njcm9sbFZpZXdXeC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3gvU2Nyb2xsVmlld1d4LmNwcApAQCAtMTM2LDE3ICsxMzYsMTQgQEAgdm9pZCBTY3JvbGxW
aWV3OjpzZXRQbGF0Zm9ybVdpZGdldCh3eFdpbmRvdyogd2luKQogICAgIG1fZGF0YS0+YmluZEV2
ZW50cyh3aW4pOwogfQogCi12b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtUmVwYWludENvbnRlbnRS
ZWN0YW5nbGUoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBub3cpCit2b2lkIFNjcm9s
bFZpZXc6OnBsYXRmb3JtUmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYgdXBk
YXRlUmVjdCkKIHsKICAgICAvLyB3ZSBuZWVkIHRvIGNvbnZlcnQgY29vcmRpbmF0ZXMgdG8gc2Ny
b2xsZWQgcG9zaXRpb24KICAgICB3eFJlY3QgY29udGVudHNSZWN0ID0gdXBkYXRlUmVjdDsKICAg
ICBjb250ZW50c1JlY3QuT2Zmc2V0KC1zY3JvbGxYKCksIC1zY3JvbGxZKCkpOwogICAgIHd4V2lu
ZG93KiB3aW4gPSBwbGF0Zm9ybVdpZGdldCgpOwotICAgIGlmICh3aW4pIHsKKyAgICBpZiAod2lu
KQogICAgICAgICB3aW4tPlJlZnJlc2hSZWN0KGNvbnRlbnRzUmVjdCwgdHJ1ZSk7Ci0gICAgICAg
IGlmIChub3cpCi0gICAgICAgICAgICB3aW4tPlVwZGF0ZSgpOwotICAgIH0KIH0KIAogSW50UmVj
dCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVZpc2libGVDb250ZW50UmVjdChib29sIGluY2x1ZGVTY3Jv
bGxiYXJzKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApp
bmRleCA3YThlZGY1YmZlMjlkYzE0MDFhMzJjY2M5NzhkZGE1NWRkZTU0NTYwLi5iYjc0YWJlNzEy
MmRkODE1Nzk4YTgyOWMwNzQ4NjY4ZDhjMTg2YzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMTE2NCwxMCArMTE2NCwxMCBAQCBSZW5kZXJCb3hNb2Rl
bE9iamVjdCogUmVuZGVyT2JqZWN0Ojpjb250YWluZXJGb3JSZXBhaW50KCkgY29uc3QKICAgICBy
ZXR1cm4gMDsKIH0KIAotdm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRVc2luZ0NvbnRhaW5lcihS
ZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgY29uc3QgTGF5b3V0UmVjdCYg
ciwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIFJlbmRlck9iamVjdDo6cmVwYWludFVzaW5nQ29udGFp
bmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBMYXlvdXRS
ZWN0JiByKQogewogICAgIGlmICghcmVwYWludENvbnRhaW5lcikgewotICAgICAgICB2aWV3KCkt
PnJlcGFpbnRWaWV3UmVjdGFuZ2xlKHIsIGltbWVkaWF0ZSk7CisgICAgICAgIHZpZXcoKS0+cmVw
YWludFZpZXdSZWN0YW5nbGUocik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTExODAs
NyArMTE4MCw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50VXNpbmdDb250YWluZXIoUmVu
ZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsCiAgICAgICAgICAgICBMYXlvdXRS
ZWN0IHJlcGFpbnRSZWN0YW5nbGUgPSByOwogICAgICAgICAgICAgaWYgKHZpZXdIYXNDb21wb3Np
dGVkTGF5ZXIgJiYgIHYtPmxheWVyKCktPnRyYW5zZm9ybSgpKQogICAgICAgICAgICAgICAgIHJl
cGFpbnRSZWN0YW5nbGUgPSB2LT5sYXllcigpLT50cmFuc2Zvcm0oKS0+bWFwUmVjdChyKTsKLSAg
ICAgICAgICAgIHYtPnJlcGFpbnRWaWV3UmVjdGFuZ2xlKHJlcGFpbnRSZWN0YW5nbGUsIGltbWVk
aWF0ZSk7CisgICAgICAgICAgICB2LT5yZXBhaW50Vmlld1JlY3RhbmdsZShyZXBhaW50UmVjdGFu
Z2xlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTExOTEsMTEg
KzExOTEsMTEgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRVc2luZ0NvbnRhaW5lcihSZW5k
ZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwKICAgICB9CiAjZWxzZQogICAgIGlm
IChyZXBhaW50Q29udGFpbmVyLT5pc1JlbmRlclZpZXcoKSkKLSAgICAgICAgdG9SZW5kZXJWaWV3
KHJlcGFpbnRDb250YWluZXIpLT5yZXBhaW50Vmlld1JlY3RhbmdsZShyLCBpbW1lZGlhdGUpOwor
ICAgICAgICB0b1JlbmRlclZpZXcocmVwYWludENvbnRhaW5lciktPnJlcGFpbnRWaWV3UmVjdGFu
Z2xlKHIpOwogI2VuZGlmCiB9CiAKLXZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50KGJvb2wgaW1t
ZWRpYXRlKQordm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnQoKQogewogICAgIC8vIERvbid0IHJl
cGFpbnQgaWYgd2UncmUgdW5yb290ZWQgKG5vdGUgdGhhdCB2aWV3KCkgc3RpbGwgcmV0dXJucyB0
aGUgdmlldyB3aGVuIHVucm9vdGVkKQogICAgIFJlbmRlclZpZXcqIHZpZXc7CkBAIC0xMjA2LDEw
ICsxMjA2LDEwIEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50KGJvb2wgaW1tZWRpYXRlKQog
ICAgICAgICByZXR1cm47IC8vIERvbid0IHJlcGFpbnQgaWYgd2UncmUgcHJpbnRpbmcuCiAKICAg
ICBSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciA9IGNvbnRhaW5lckZvclJl
cGFpbnQoKTsKLSAgICByZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5lciA/IHJl
cGFpbnRDb250YWluZXIgOiB2aWV3LCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChyZXBh
aW50Q29udGFpbmVyKSwgaW1tZWRpYXRlKTsKKyAgICByZXBhaW50VXNpbmdDb250YWluZXIocmVw
YWludENvbnRhaW5lciA/IHJlcGFpbnRDb250YWluZXIgOiB2aWV3LCBjbGlwcGVkT3ZlcmZsb3dS
ZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyKSk7CiB9CiAKLXZvaWQgUmVuZGVyT2JqZWN0
OjpyZXBhaW50UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3QmIHIsIGJvb2wgaW1tZWRpYXRlKQor
dm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRSZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYgcikK
IHsKICAgICAvLyBEb24ndCByZXBhaW50IGlmIHdlJ3JlIHVucm9vdGVkIChub3RlIHRoYXQgdmll
dygpIHN0aWxsIHJldHVybnMgdGhlIHZpZXcgd2hlbiB1bnJvb3RlZCkKICAgICBSZW5kZXJWaWV3
KiB2aWV3OwpAQCAtMTIyNyw3ICsxMjI3LDcgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRS
ZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYgciwgYm9vbCBpbW1lZGlhdGUpCiAKICAgICBSZW5k
ZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciA9IGNvbnRhaW5lckZvclJlcGFpbnQo
KTsKICAgICBjb21wdXRlUmVjdEZvclJlcGFpbnQocmVwYWludENvbnRhaW5lciwgZGlydHlSZWN0
KTsKLSAgICByZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5lciA/IHJlcGFpbnRD
b250YWluZXIgOiB2aWV3LCBkaXJ0eVJlY3QsIGltbWVkaWF0ZSk7CisgICAgcmVwYWludFVzaW5n
Q29udGFpbmVyKHJlcGFpbnRDb250YWluZXIgPyByZXBhaW50Q29udGFpbmVyIDogdmlldywgZGly
dHlSZWN0KTsKIH0KIAogYm9vbCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRBZnRlckxheW91dElmTmVl
ZGVkKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBMYXlvdXRS
ZWN0JiBvbGRCb3VuZHMsIGNvbnN0IExheW91dFJlY3QmIG9sZE91dGxpbmVCb3gsIGNvbnN0IExh
eW91dFJlY3QqIG5ld0JvdW5kc1B0ciwgY29uc3QgTGF5b3V0UmVjdCogbmV3T3V0bGluZUJveFJl
Y3RQdHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggOTc3ZTg3
MGI4ZmI3Y2RmMmM3YmM1NDMzODM4OGE1MTdiNzliODE5Mi4uYjljNmFkYzU1NjQ5ZDRmNGUyMjkz
YWVhNGYwY2Q1MWRiZjI5ZTIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuaApAQCAtNjI4LDE0ICs2MjgsMTQgQEAgcHVibGljOgogICAgIFJlbmRlckJveE1vZGVsT2Jq
ZWN0KiBjb250YWluZXJGb3JSZXBhaW50KCkgY29uc3Q7CiAgICAgLy8gQWN0dWFsbHkgZG8gdGhl
IHJlcGFpbnQgb2YgcmVjdCByIGZvciB0aGlzIG9iamVjdCB3aGljaCBoYXMgYmVlbiBjb21wdXRl
ZCBpbiB0aGUgY29vcmRpbmF0ZSBzcGFjZQogICAgIC8vIG9mIHJlcGFpbnRDb250YWluZXIuIElm
IHJlcGFpbnRDb250YWluZXIgaXMgMCwgcmVwYWludCB2aWEgdGhlIHZpZXcuCi0gICAgdm9pZCBy
ZXBhaW50VXNpbmdDb250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIGNvbnN0IExheW91dFJlY3QmLCBib29sIGltbWVkaWF0ZSA9IGZhbHNlKTsKKyAgICB2b2lk
IHJlcGFpbnRVc2luZ0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgY29uc3QgTGF5b3V0UmVjdCYpOwogICAgIAogICAgIC8vIFJlcGFpbnQgdGhlIGVudGly
ZSBvYmplY3QuICBDYWxsZWQgd2hlbiwgZS5nLiwgdGhlIGNvbG9yIG9mIGEgYm9yZGVyIGNoYW5n
ZXMsIG9yIHdoZW4gYSBib3JkZXIKICAgICAvLyBzdHlsZSBjaGFuZ2VzLgotICAgIHZvaWQgcmVw
YWludChib29sIGltbWVkaWF0ZSA9IGZhbHNlKTsKKyAgICB2b2lkIHJlcGFpbnQoKTsKIAogICAg
IC8vIFJlcGFpbnQgYSBzcGVjaWZpYyBzdWJyZWN0YW5nbGUgd2l0aGluIGEgZ2l2ZW4gb2JqZWN0
LiAgVGhlIHJlY3QgfHJ8IGlzIGluIHRoZSBvYmplY3QncyBjb29yZGluYXRlIHNwYWNlLgotICAg
IHZvaWQgcmVwYWludFJlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiwgYm9vbCBpbW1lZGlhdGUg
PSBmYWxzZSk7CisgICAgdm9pZCByZXBhaW50UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3QmKTsK
IAogICAgIC8vIFJlcGFpbnQgb25seSBpZiBvdXIgb2xkIGJvdW5kcyBhbmQgbmV3IGJvdW5kcyBh
cmUgZGlmZmVyZW50LiBUaGUgY2FsbGVyIG1heSBwYXNzIGluIG5ld0JvdW5kcyBhbmQgbmV3T3V0
bGluZUJveCBpZiB0aGV5IGFyZSBrbm93bi4KICAgICBib29sIHJlcGFpbnRBZnRlckxheW91dElm
TmVlZGVkKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBMYXlv
dXRSZWN0JiBvbGRCb3VuZHMsIGNvbnN0IExheW91dFJlY3QmIG9sZE91dGxpbmVCb3gsIGNvbnN0
IExheW91dFJlY3QqIG5ld0JvdW5kc1B0ciA9IDAsIGNvbnN0IExheW91dFJlY3QqIG5ld091dGxp
bmVCb3hQdHIgPSAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRl
eCBkY2E3M2M3YmU2YjBhOGYxY2ExYTljZDBlODQyMDM0MzIzNjY3OTk0Li42MzZlOWEzMTVlNzY5
ZGQ2OTA0MWNjNTEwNTg2YzM1MTk2ZWU0NmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuY3BwCkBAIC0yNjIsNyArMjYyLDcgQEAgUmVuZGVyQmxvY2sqIFJlbmRlclZpZXc6
OmNvbnRhaW5pbmdCbG9jaygpIGNvbnN0CiAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8UmVuZGVyVmll
dyo+KHRoaXMpOwogfQogCi12b2lkIFJlbmRlclZpZXc6OnJlcGFpbnRWaWV3UmVjdGFuZ2xlKGNv
bnN0IEludFJlY3QmIHVyLCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgUmVuZGVyVmlldzo6cmVwYWlu
dFZpZXdSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYgdXIpCiB7CiAgICAgaWYgKCFzaG91bGRSZXBh
aW50KHVyKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjcxLDcgKzI3MSw3IEBAIHZvaWQgUmVuZGVy
Vmlldzo6cmVwYWludFZpZXdSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYgdXIsIGJvb2wgaW1tZWRp
YXRlKQogICAgIC8vIG9yIGV2ZW4gaW52aXNpYmxlLgogICAgIEVsZW1lbnQqIGVsdCA9IGRvY3Vt
ZW50KCktPm93bmVyRWxlbWVudCgpOwogICAgIGlmICghZWx0KQotICAgICAgICBtX2ZyYW1lVmll
dy0+cmVwYWludENvbnRlbnRSZWN0YW5nbGUodXIsIGltbWVkaWF0ZSk7CisgICAgICAgIG1fZnJh
bWVWaWV3LT5yZXBhaW50Q29udGVudFJlY3RhbmdsZSh1cik7CiAgICAgZWxzZSBpZiAoUmVuZGVy
Qm94KiBvYmogPSBlbHQtPnJlbmRlckJveCgpKSB7CiAgICAgICAgIEludFJlY3QgdnIgPSB2aWV3
UmVjdCgpOwogICAgICAgICBJbnRSZWN0IHIgPSBpbnRlcnNlY3Rpb24odXIsIHZyKTsKQEAgLTI4
MywxNiArMjgzLDE2IEBAIHZvaWQgUmVuZGVyVmlldzo6cmVwYWludFZpZXdSZWN0YW5nbGUoY29u
c3QgSW50UmVjdCYgdXIsIGJvb2wgaW1tZWRpYXRlKQogICAgICAgICAvLyBGSVhNRTogSGFyZGNv
ZGVkIG9mZnNldHMgaGVyZSBhcmUgbm90IGdvb2QuCiAgICAgICAgIHIubW92ZShvYmotPmJvcmRl
ckxlZnQoKSArIG9iai0+cGFkZGluZ0xlZnQoKSwKICAgICAgICAgICAgICAgIG9iai0+Ym9yZGVy
VG9wKCkgKyBvYmotPnBhZGRpbmdUb3AoKSk7Ci0gICAgICAgIG9iai0+cmVwYWludFJlY3Rhbmds
ZShyLCBpbW1lZGlhdGUpOworICAgICAgICBvYmotPnJlcGFpbnRSZWN0YW5nbGUocik7CiAgICAg
fQogfQogCi12b2lkIFJlbmRlclZpZXc6OnJlcGFpbnRSZWN0YW5nbGVJblZpZXdBbmRDb21wb3Np
dGVkTGF5ZXJzKGNvbnN0IEludFJlY3QmIHVyLCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgUmVuZGVy
Vmlldzo6cmVwYWludFJlY3RhbmdsZUluVmlld0FuZENvbXBvc2l0ZWRMYXllcnMoY29uc3QgSW50
UmVjdCYgdXIpCiB7CiAgICAgaWYgKCFzaG91bGRSZXBhaW50KHVyKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgcmVwYWludFZpZXdSZWN0YW5nbGUodXIsIGltbWVkaWF0ZSk7CisgICAgcmVwYWlu
dFZpZXdSZWN0YW5nbGUodXIpOwogICAgIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICBpZiAoY29tcG9zaXRvcigpLT5pbkNvbXBvc2l0aW5nTW9kZSgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKaW5kZXggMGEzYWQwZWFiY2QyZWQ2OWY4YmI0NWE2ZjQ2
NzJmYjM5NDMyN2RlMC4uNjFlNjI0MTc2YmU2NTdlNjc1OGI3ZjY3YTE5NjJjM2Q1MjRkMDhmMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCkBAIC02NCwxMCArNjQsMTAgQEAg
cHVibGljOgogICAgIEZyYW1lVmlldyogZnJhbWVWaWV3KCkgY29uc3QgeyByZXR1cm4gbV9mcmFt
ZVZpZXc7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoUmVuZGVy
Qm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEludFJlY3QmLCBib29sIGZpeGVkID0g
ZmFsc2UpOwotICAgIHZpcnR1YWwgdm9pZCByZXBhaW50Vmlld1JlY3RhbmdsZShjb25zdCBJbnRS
ZWN0JiwgYm9vbCBpbW1lZGlhdGUgPSBmYWxzZSk7CisgICAgdmlydHVhbCB2b2lkIHJlcGFpbnRW
aWV3UmVjdGFuZ2xlKGNvbnN0IEludFJlY3QmKTsKICAgICAvLyBSZXBhaW50IHRoZSB2aWV3LCBh
bmQgYWxsIGNvbXBvc2l0ZWQgbGF5ZXJzIHRoYXQgaW50ZXJzZWN0IHRoZSBnaXZlbiBhYnNvbHV0
ZSByZWN0YW5nbGUuCiAgICAgLy8gRklYTUU6IGlkZWFsbHkgd2UnZCBuZXZlciBoYXZlIHRvIGRv
IHRoaXMsIGlmIGFsbCByZXBhaW50cyBhcmUgY29udGFpbmVyLXJlbGF0aXZlLgotICAgIHZpcnR1
YWwgdm9pZCByZXBhaW50UmVjdGFuZ2xlSW5WaWV3QW5kQ29tcG9zaXRlZExheWVycyhjb25zdCBJ
bnRSZWN0JiwgYm9vbCBpbW1lZGlhdGUgPSBmYWxzZSk7CisgICAgdmlydHVhbCB2b2lkIHJlcGFp
bnRSZWN0YW5nbGVJblZpZXdBbmRDb21wb3NpdGVkTGF5ZXJzKGNvbnN0IEludFJlY3QmKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwog
ICAgIHZpcnR1YWwgdm9pZCBwYWludEJveERlY29yYXRpb25zKFBhaW50SW5mbyYsIGNvbnN0IElu
dFBvaW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAppbmRleCAy
OTFhMWM3MmE4MzJmNDIwZTI0NjdmYTFlOGNlMTc3MmI3ODJhZmM2Li45NjBjZTZhYzU3MmIyOGIx
ZGQ2YmMwMTNiOWNjODRmM2M5N2I4NjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9T
VkdJbWFnZS5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgbV9pbWFnZSA9
IDA7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRv
dyhjb25zdCBJbnRSZWN0JiByLCBib29sKQorICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29u
dGVudHNBbmRXaW5kb3coY29uc3QgSW50UmVjdCYgcikKICAgICB7CiAgICAgICAgIGlmIChtX2lt
YWdlICYmIG1faW1hZ2UtPmltYWdlT2JzZXJ2ZXIoKSkKICAgICAgICAgICAgIG1faW1hZ2UtPmlt
YWdlT2JzZXJ2ZXIoKS0+Y2hhbmdlZEluUmVjdChtX2ltYWdlLCByKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggMWQ1ODgwN2FiMGViZDgwOTExM2E4NmExNTllZGMzMDNkOTBmNWE3Yy4u
Mjc0YmZiNzY4NzE2ZGZhYjAxYzlkNzk5YzNlNDM4YWI5MjY1NmQ3YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMS0wNy0yMSAgSmFtZXMgUm9iaW5zb24g
IDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSB0aGUgaW1tZWRpYXRlIHJl
cGFpbnQgY29kZXBhdGggYW5kIHN1cHBvcnQsIGl0IGRvZXNuJ3QgZG8gYW55dGhpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1MDAzCisKKyAgICAg
ICAgRGVsZXRpbmcgb2Jzb2xldGUgcGFyYW1ldGVycy4KKworICAgICAgICAqIHNyYy9DaHJvbWVD
bGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6aW52YWxp
ZGF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmludmFsaWRh
dGVDb250ZW50c0FuZFdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6
OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwpOgorICAgICAgICAqIHNyYy9DaHJvbWVD
bGllbnRJbXBsLmg6CisgICAgICAgICogc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBsOjppbnZhbGlkYXRlQ29udGVudHMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVJbXBsOjppbnZhbGlkYXRlV2luZG93KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUG9wdXBNZW51SW1wbDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KToK
KyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51SW1wbDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9y
U2xvd1Njcm9sbCk6CisgICAgICAgICogc3JjL1dlYlBvcHVwTWVudUltcGwuaDoKKwogMjAxMS0w
Ny0xOSAgRG9taW5pYyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KIAogICAgICAgICBB
ZGRzIHNvbWUgbWV0aG9kcyB0byByZXRyaWV2ZSBhY2Nlc3NpYmxlIGluZm9ybWF0aW9uIGZyb20g
dGFibGVzIGFuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21l
Q2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmNwcAppbmRleCBhM2U5YjBmZDkzYmI4YzBlNjM2YTliNmIzMWEzYjE1YTY3ODVjZjhmLi5m
OWZkZDM4NTk1Yjg0YWI2MzdiOTcxMTk0MzY2YTg1MGEwYjc5NDIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNTE0LDEyICs1MTQs
MTIgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpyZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25z
dCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgU3RyaW4KIH0KICNlbmRpZgogCi12b2lkIENocm9tZUNs
aWVudEltcGw6OmludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wpCit2b2lkIENo
cm9tZUNsaWVudEltcGw6OmludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYpCiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRJbXBsOjppbnZhbGlkYXRl
Q29udGVudHNBbmRXaW5kb3coY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCAvKmltbWVk
aWF0ZSovKQordm9pZCBDaHJvbWVDbGllbnRJbXBsOjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5k
b3coY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkKIHsKICAgICBpZiAodXBkYXRlUmVjdC5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTUzNCwxMCArNTM0LDEwIEBAIHZvaWQgQ2hyb21l
Q2xpZW50SW1wbDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJlY3QmIHVw
ZGF0ZVJlY3QsIGJvCiAjZW5kaWYKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRJbXBsOjppbnZhbGlk
YXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wg
aW1tZWRpYXRlKQordm9pZCBDaHJvbWVDbGllbnRJbXBsOjppbnZhbGlkYXRlQ29udGVudHNGb3JT
bG93U2Nyb2xsKGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QpCiB7CiAgICAgbV93ZWJWaWV3LT5o
aWRlUG9wdXBzKCk7Ci0gICAgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KHVwZGF0ZVJlY3Qs
IGltbWVkaWF0ZSk7CisgICAgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KHVwZGF0ZVJlY3Qp
OwogfQogCiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCmluZGV4IDUyMzRlNDM2Nzk0NTA1
ZmYxZWY5NDIzZjUyNjA3MTVkODk3MmYyMTkuLjM2YjAzYWEyNTU1MDFhYmNiMWY4Njg4MmFiMGZj
MTc3ZWU3YTJmYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmgKQEAgLTEwNiw5ICsxMDYsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFJFR0lTVEVS
X1BST1RPQ09MX0hBTkRMRVIpCiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyUHJvdG9jb2xIYW5k
bGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIGNvbnN0IFN0
cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKICNlbmRpZgotICAgIHZpcnR1YWwgdm9p
ZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKTsKLSAgICB2
aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmLCBib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xv
d1Njcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lk
IGludmFsaWRhdGVXaW5kb3coY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOworICAgIHZpcnR1YWwg
dm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3QgV2ViQ29yZTo6SW50UmVjdCYp
OworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKTsKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUp
CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCk7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5jcHAKaW5kZXggNzdkNWI4
MjZiNDM5YWNlZjE4YTc4MTk2MTk3MGNiYWI3OGYwZjVjMy4uYjExYzgyZjg2MTE3M2U1ODY3ZGFl
NDYzYzcyYTEwYzIxZDU1ZjA3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViUG9wdXBNZW51SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViUG9wdXBNZW51SW1wbC5jcHAKQEAgLTMwMCwxNyArMzAwLDE3IEBAIHZvaWQgV2ViUG9wdXBN
ZW51SW1wbDo6c2V0VGV4dERpcmVjdGlvbihXZWJUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikKIC8v
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIFdlYkNvcmU6Okhvc3RXaW5kb3cKIAotdm9pZCBXZWJQ
b3B1cE1lbnVJbXBsOjppbnZhbGlkYXRlQ29udGVudHMoY29uc3QgSW50UmVjdCYsIGJvb2wpCit2
b2lkIFdlYlBvcHVwTWVudUltcGw6OmludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JikK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYlBvcHVwTWVudUltcGw6Omlu
dmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wpCit2b2lkIFdlYlBvcHVwTWVudUlt
cGw6OmludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KIAotdm9pZCBXZWJQb3B1cE1lbnVJbXBsOjppbnZhbGlkYXRlQ29udGVudHNBbmRX
aW5kb3coY29uc3QgSW50UmVjdCYgcGFpbnRSZWN0LCBib29sIC8qaW1tZWRpYXRlKi8pCit2b2lk
IFdlYlBvcHVwTWVudUltcGw6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRS
ZWN0JiBwYWludFJlY3QpCiB7CiAgICAgaWYgKHBhaW50UmVjdC5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybjsKQEAgLTMxOCw5ICszMTgsOSBAQCB2b2lkIFdlYlBvcHVwTWVudUltcGw6OmludmFs
aWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiBwYWludFJlY3QsIGJvbwogICAg
ICAgICBtX2NsaWVudC0+ZGlkSW52YWxpZGF0ZVJlY3QocGFpbnRSZWN0KTsKIH0KIAotdm9pZCBX
ZWJQb3B1cE1lbnVJbXBsOjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IElu
dFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBXZWJQb3B1cE1lbnVJbXBs
OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmIHVwZGF0ZVJl
Y3QpCiB7Ci0gICAgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KHVwZGF0ZVJlY3QsIGltbWVk
aWF0ZSk7CisgICAgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KHVwZGF0ZVJlY3QpOwogfQog
CiB2b2lkIFdlYlBvcHVwTWVudUltcGw6OnNjaGVkdWxlQW5pbWF0aW9uKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuaAppbmRleCA4MGU0NjVlOTU5NWZh
NDU1Mjk4MTNjOGZlOTRlMjExZDI3OTlkNzg1Li5mOGI4YjgzYzJhYmY4NDM1YjY4M2JiMjczOTdm
MWY3MGRlM2JjMjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQ
b3B1cE1lbnVJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBN
ZW51SW1wbC5oCkBAIC0xMDksMTAgKzEwOSwxMCBAQCBwdWJsaWM6CiAgICAgfldlYlBvcHVwTWVu
dUltcGwoKTsKIAogICAgIC8vIFdlYkNvcmU6Okhvc3RXaW5kb3cgbWV0aG9kczoKLSAgICB2aXJ0
dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29s
KTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVdpbmRvdyhjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiwgYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRv
dyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIGludmFs
aWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wp
OworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHMoY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYpOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNv
bnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdmlydHVh
bCB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCk7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbCgKICAg
ICAgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIHNjcm9sbFJlY3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZmYxYjYyYjJiOWIzYWI1
YTUxODJkZjNiMDY0ZWZiNWVlYzg1OGQ0ZS4uZDY5ZmU0ZDlkMDk2MTFkZjY3ZGU5ODY0ZWNjYWFk
NmEyNWFkMmFmMCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTA3LTIx
ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3Zl
IHRoZSBpbW1lZGlhdGUgcmVwYWludCBjb2RlcGF0aCBhbmQgc3VwcG9ydCwgaXQgZG9lc24ndCBk
byBhbnl0aGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjUwMDMKKworICAgICAgICBEZWxldGluZyBvYnNvbGV0ZSBwYXJhbWV0ZXJzLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyk6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3Jv
bGwpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oOgorCiAyMDEx
LTA3LTE5ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAg
ICAgW0VGTF0gQWRkIGV3a19uZXR3b3JrLmNwcHxoIGZpbGVzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKaW5kZXggNzE1NzZm
N2FmNzIzYWY2OTU5ZDY2MjFjYzE4ZGY1YTQxMjBjZGI5My4uZDVmMDg3MWMxYWUyYzQyZDRlMWVm
MTI1MGYwNmI0ZmQxZWZhYjEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCkBAIC00NzMsMTcgKzQ3MywxNyBAQCB2b2lk
IENocm9tZUNsaWVudEVmbDo6Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJh
bWUqLCBHZW9sb2NhdGlvbiopCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBDaHJv
bWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0
LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjppbnZhbGlkYXRlQ29udGVu
dHMoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQogCi12b2lkIENocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZVdpbmRvdyhjb25zdCBJbnRSZWN0
JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjppbnZh
bGlkYXRlV2luZG93KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50c0Fu
ZFdpbmRvdyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQg
Q2hyb21lQ2xpZW50RWZsOjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3QgSW50UmVj
dCYgdXBkYXRlUmVjdCkKIHsKICAgICBpZiAodXBkYXRlUmVjdC5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybjsKQEAgLTQ5Nyw5ICs0OTcsOSBAQCB2b2lkIENocm9tZUNsaWVudEVmbDo6aW52YWxp
ZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvbwogICAg
IGV3a192aWV3X3JlcGFpbnQobV92aWV3LCB4LCB5LCB3LCBoKTsKIH0KIAotdm9pZCBDaHJvbWVD
bGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYg
dXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIENocm9tZUNsaWVudEVmbDo6aW52YWxp
ZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KQogewot
ICAgIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyh1cGRhdGVSZWN0LCBpbW1lZGlhdGUpOwor
ICAgIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyh1cGRhdGVSZWN0KTsKIH0KIAogdm9pZCBD
aHJvbWVDbGllbnRFZmw6OnNjcm9sbChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3Qg
SW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oIGIv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKaW5kZXgg
MWU3OWNhZmNkOTdjOGE4MWQ3NzU1OTk0MzNiY2VkZGQyZGRlMjA4Yy4uMTljZjQwOTI1NmZkMzk4
ZDc2YTdiNDUyYmY4MDExNTE4OWViMTRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKQEAgLTE0NSwxMCArMTQ1LDEwIEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dEZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2Vs
R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopOwogCi0g
ICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7
Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wp
OwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3QgSW50
UmVjdCYsIGJvb2wpOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93
U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0
ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVdp
bmRvdyhjb25zdCBJbnRSZWN0Jik7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50
c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0Jik7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVD
b250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGwoY29uc3QgSW50U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0Jik7CiAg
ICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFt
ZShGcmFtZSopOwogICAgIHZpcnR1YWwgdm9pZCBpY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0
cmluZywgMHU+JiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4
IGFkNTczZjFlM2VlMTVkMWQ3YTJjYmM3OWUzOWRiYzlhNjk1M2RkYTkuLjcyOTBjODEyMDc2NGIw
YjM4NzIwNTg0OGU2MGEzNDA3OTk4NTYzMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAxMS0wNy0yMSAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJlbW92ZSB0aGUgaW1tZWRpYXRlIHJlcGFpbnQgY29kZXBhdGggYW5kIHN1cHBv
cnQsIGl0IGRvZXNuJ3QgZG8gYW55dGhpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY1MDAzCisKKyAgICAgICAgRGVsZXRpbmcgb2Jzb2xldGUgcGFy
YW1ldGVycy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZVdpbmRvdyk6CisgICAg
ICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KToK
KyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93
U2Nyb2xsKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKKwog
MjAxMS0wNy0xMSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KIAogICAg
ICAgICBbR1RLXSBHb29nbGUgQ2FsZW5kYXIgdGhpbmtzIHdlJ3JlIG1vYmlsZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBi
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5k
ZXggNzFmNDQ4YmRlYzY0ODQ3YWJlMDE1N2U3YTMwMjcwZjdjYTc5NWRlZC4uNzcwYjBhZmJjYWFh
NTQ0YWI0YTAxZGRmNWJkYzU2NmQ4NGYyMTllMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCkBAIC0zODMsMzQgKzM4Mywy
MiBAQCB2b2lkIENocm9tZUNsaWVudDo6cmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIoY29uc3QgU3Ry
aW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYgogfSAKICNlbmRpZiAKIAotdm9pZCBDaHJvbWVD
bGllbnQ6OmludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wgaW1tZWRpYXRlKQot
ewotICAgIC8vIElmIHdlJ3ZlIGludmFsaWRhdGVkIHJlZ2lvbnMgZm9yIHNjcm9sbGluZywgZm9y
Y2UgR0RLIHRvIHByb2Nlc3MgdGhvc2UgaW52YWxpZGF0aW9ucwotICAgIC8vIG5vdy4gVGhpcyB3
aWxsIGFsc28gY2F1c2UgY2hpbGQgd2luZG93cyB0byBtb3ZlIHJpZ2h0IGF3YXkuIFRoaXMgcHJl
dmVudHMgcmVkcmF3Ci0gICAgLy8gYXJ0aWZhY3RzIHdpdGggY2hpbGQgd2luZG93cyAoZS5nLiBG
bGFzaCBwbHVnaW4gaW5zdGFuY2VzKS4KLSAgICBpZiAoaW1tZWRpYXRlICYmIG1fcGVuZGluZ1Nj
cm9sbEludmFsaWRhdGlvbnMpIHsKLSAgICAgICAgbV9wZW5kaW5nU2Nyb2xsSW52YWxpZGF0aW9u
cyA9IGZhbHNlOwotICAgICAgICBpZiAoR2RrV2luZG93KiB3aW5kb3cgPSBndGtfd2lkZ2V0X2dl
dF93aW5kb3coR1RLX1dJREdFVChtX3dlYlZpZXcpKSkKLSAgICAgICAgICAgIGdka193aW5kb3df
cHJvY2Vzc191cGRhdGVzKHdpbmRvdywgVFJVRSk7Ci0gICAgfQordm9pZCBDaHJvbWVDbGllbnQ6
OmludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYpCit7CiB9CiAKLXZvaWQgQ2hyb21lQ2xp
ZW50OjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3QgSW50UmVjdCYgdXBkYXRlUmVj
dCwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIENocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRz
QW5kV2luZG93KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QpCiB7CiAgICAgR2RrUmVjdGFuZ2xl
IHJlY3QgPSB1cGRhdGVSZWN0OwogICAgIEdka1dpbmRvdyogd2luZG93ID0gZ3RrX3dpZGdldF9n
ZXRfd2luZG93KEdUS19XSURHRVQobV93ZWJWaWV3KSk7CiAKLSAgICBpZiAod2luZG93ICYmICF1
cGRhdGVSZWN0LmlzRW1wdHkoKSkgeworICAgIGlmICh3aW5kb3cgJiYgIXVwZGF0ZVJlY3QuaXNF
bXB0eSgpKQogICAgICAgICBnZGtfd2luZG93X2ludmFsaWRhdGVfcmVjdCh3aW5kb3csICZyZWN0
LCBGQUxTRSk7Ci0gICAgICAgIC8vIFdlIGRvbid0IGN1cnJlbnRseSBkbyBpbW1lZGlhdGUgdXBk
YXRlcyBzaW5jZSB0aGV5IGRlbGF5IG90aGVyIFVJIGVsZW1lbnRzLgotICAgICAgICAvL2lmIChp
bW1lZGlhdGUpCi0gICAgICAgIC8vICAgIGdka193aW5kb3dfcHJvY2Vzc191cGRhdGVzKHdpbmRv
dywgRkFMU0UpOwotICAgIH0KIH0KIAotdm9pZCBDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250
ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlh
dGUpCit2b2lkIENocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChj
b25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KQogewotICAgIGludmFsaWRhdGVDb250ZW50c0FuZFdp
bmRvdyh1cGRhdGVSZWN0LCBpbW1lZGlhdGUpOworICAgIGludmFsaWRhdGVDb250ZW50c0FuZFdp
bmRvdyh1cGRhdGVSZWN0KTsKICAgICBtX2FkanVzdG1lbnRXYXRjaGVyLnVwZGF0ZUFkanVzdG1l
bnRzRnJvbVNjcm9sbGJhcnNMYXRlcigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCmluZGV4IDc1NGJhOTUzZDY3M2UxYjU1
NmY5MDM2YzFlNDEyMGI1NDE3YjJkZjEuLmQxYjAyN2NjZTk0ZTk5OWI3NWJhNTZjMGM1YTI1ZmE2
MDM5YTczODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5oCkBAIC05OSw5ICs5OSw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogI2lm
IEVOQUJMRShSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAKICAgICAgICAgdmlydHVhbCB2b2lk
IHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKGNvbnN0IFdURjo6U3RyaW5nJiwgY29uc3QgV1RGOjpT
dHJpbmcmLCBjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0IFdURjo6U3RyaW5nJik7IAogI2VuZGlm
IAotICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVdpbmRvdyhjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiwgYm9vbCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNB
bmRXaW5kb3coY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpOwotICAgICAgICB2aXJ0dWFs
IHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiwgYm9vbCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250
ZW50c0FuZFdpbmRvdyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CisgICAgICAgIHZpcnR1YWwg
dm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiBzY3JvbGxEZWx0YSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCk7CiAKICAgICAgICAgdmlydHVhbCBXZWJDb3Jl
OjpJbnRQb2ludCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2hhaWt1L0NoYW5nZUxvZwppbmRleCA3YmE3MWEwNjQwOTgwYmJlMzM0NDA3ZTU2NjY5Y2E5
Yjk3MmNkMmYyLi4yNDEyN2U1MGExNjNmMzY3OGMzMjk4NjM4ZDAwOTJmMmIzNjA2NzIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2hhaWt1L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTA3LTIxICBKYW1lcyBSb2Jp
bnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBpbW1lZGlh
dGUgcmVwYWludCBjb2RlcGF0aCBhbmQgc3VwcG9ydCwgaXQgZG9lc24ndCBkbyBhbnl0aGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUwMDMKKwor
ICAgICAgICBEZWxldGluZyBvYnNvbGV0ZSBwYXJhbWV0ZXJzLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21l
Q2xpZW50SGFpa3U6OmludmFsaWRhdGVXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21l
Q2xpZW50SGFpa3U6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyk6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbCk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaDoKKwogMjAxMS0w
Ny0xNSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T046IE1vdXNlIGN1cnNvciBkb2VzbuKAmXQgaGlkZSB3aGVuIGZ1bGwgc2NyZWVuIHZpZGVvIEhV
RCBoaWRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRIYWlrdS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEhhaWt1LmNwcAppbmRleCA4MWU1YTgwYjgxMjRkZDlmM2IyMWRiOTU1OGZk
OTdlMWY2NzMzNDc3Li4yYjNlZjZhN2M2MGE5MGYwZGFjZmFlZTk4ZjZmZjZjMGU0NjE3MDQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEhhaWt1LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEhhaWt1LmNwcApAQCAtMjY0LDE3ICsyNjQsMTcgQEAgSW50UmVjdCBDaHJvbWVDbGll
bnRIYWlrdTo6d2luZG93UmVzaXplclJlY3QoKSBjb25zdAogICAgIHJldHVybiBJbnRSZWN0KCk7
CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50SGFpa3U6OmludmFsaWRhdGVXaW5kb3coY29uc3QgSW50
UmVjdCYsIGJvb2wpCit2b2lkIENocm9tZUNsaWVudEhhaWt1OjppbnZhbGlkYXRlV2luZG93KGNv
bnN0IEludFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21l
Q2xpZW50SGFpa3U6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0Jiwg
Ym9vbCkKK3ZvaWQgQ2hyb21lQ2xpZW50SGFpa3U6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRv
dyhjb25zdCBJbnRSZWN0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENo
cm9tZUNsaWVudEhhaWt1OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IElu
dFJlY3QmLCBib29sKQordm9pZCBDaHJvbWVDbGllbnRIYWlrdTo6aW52YWxpZGF0ZUNvbnRlbnRz
Rm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRIYWlrdS5oIGIvU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRIYWlrdS5oCmluZGV4IGE4OGI4MjU1MGNlMGY3YjViN2QxOGU2MjYzNjg2MDk5YzJlNzUz
MTYuLmQyMWUxNGM2YWYxZjBiYTgxNTJiYzk3YzJjYjgzMTk4N2NiMzBiNzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1
LmgKQEAgLTEwNSw5ICsxMDUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1
YWwgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKTsKICAgICAgICAgdmly
dHVhbCBJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3Q7CiAKLSAgICAgICAgdmlydHVh
bCB2b2lkIGludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wpOwotICAgICAgICB2
aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJlY3QmLCBi
b29sKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3Jv
bGwoY29uc3QgSW50UmVjdCYsIGJvb2wpOworICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0
ZVdpbmRvdyhjb25zdCBJbnRSZWN0Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
Q29udGVudHNBbmRXaW5kb3coY29uc3QgSW50UmVjdCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQg
aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0Jik7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IElu
dFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpOwogCiAgICAgICAg
IHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgSW50UG9pbnQmKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCBmNmE0ODg2ZjliNWY5ODA2MDM5YTM1MzdhM2NhYWI1YzU4NGY0
YjcyLi42MTgyMGI1NWNmNmMwOTJhMmI5NTUzMWZiYWVkMWExMGJjOTIzN2JkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDctMjEgIEphbWVzIFJvYmluc29uICA8amFt
ZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmUgdGhlIGltbWVkaWF0ZSByZXBhaW50
IGNvZGVwYXRoIGFuZCBzdXBwb3J0LCBpdCBkb2Vzbid0IGRvIGFueXRoaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTAwMworCisgICAgICAgIERl
bGV0aW5nIG9ic29sZXRlIHBhcmFtZXRlcnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVXaW5kb3cpOgorICAg
ICAgICAoV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3cpOgorICAg
ICAgICAoV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKToK
KwogMjAxMS0wNy0xOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAg
U29sYXIgV2FsayBhcHAtc3BlY2lmaWMgaGFjayBhY2NpZGVudGFsbHkgc3RyaXBzIHN0eWxlc2hl
ZXRzIGZyb20gdGhlIGRvY3VtZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBjZGM4MDQ5MTE4YjExNDhjZjIyMzUzNTg0
M2IyYTA5ZDM3NWQyMmFlLi4yN2MzZTA1MjBmMTMzOGViODJmZTU1MzhmNTBlNDZkNDgwMDk2ZjQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaApAQCAtOTAsOSArOTAsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFdlYkNvcmU6
OkludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCBp
bnZhbGlkYXRlV2luZG93KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKTsKLSAgICB2aXJ0
dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmLCBib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Nj
cm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIGlu
dmFsaWRhdGVXaW5kb3coY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOworICAgIHZpcnR1YWwgdm9p
ZCBpbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwor
ICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0VG9TY3Jv
bGwsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KTsKIAogICAgIHZpcnR1YWwgV2Vi
Q29yZTo6SW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5tbQppbmRleCA0MzhhYjU4Y2I0NmE3OWI3OTkxZGMzMjhlZjkxOTdmNjJiMmEyNjVh
Li45YjA3YTc1OTUzYzc5ODc1ZTUyNzhkZmNmMThiMmZlMGNiYzkwNWFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC01
NjMsMzAgKzU2MywyMSBAQCBJbnRSZWN0IFdlYkNocm9tZUNsaWVudDo6d2luZG93UmVzaXplclJl
Y3QoKSBjb25zdAogICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KFttX3dlYlZpZXcgY29udmVy
dFJlY3Q6cmVjdCBmcm9tVmlldzpuaWxdKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6Omlu
dmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYpCiB7Ci0gICAgaWYg
KGltbWVkaWF0ZSkgewotICAgICAgICBbW21fd2ViVmlldyB3aW5kb3ddIGRpc3BsYXlJZk5lZWRl
ZF07Ci0gICAgICAgIFtbbV93ZWJWaWV3IHdpbmRvd10gZmx1c2hXaW5kb3dJZk5lZWRlZF07Ci0g
ICAgfQogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2lu
ZG93KGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiByZWN0KQog
ewogICAgIGlmIChbbV93ZWJWaWV3IF91c2VzRG9jdW1lbnRWaWV3c10pCiAgICAgICAgIHJldHVy
bjsKIAogICAgIFttX3dlYlZpZXcgc2V0TmVlZHNEaXNwbGF5SW5SZWN0OnJlY3RdOwotCi0gICAg
aWYgKGltbWVkaWF0ZSkgewotICAgICAgICBbW21fd2ViVmlldyB3aW5kb3ddIGRpc3BsYXlJZk5l
ZWRlZF07Ci0gICAgICAgIFtbbV93ZWJWaWV3IHdpbmRvd10gZmx1c2hXaW5kb3dJZk5lZWRlZF07
Ci0gICAgfQogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9y
U2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiByZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJl
Y3QmIHJlY3QpCiB7Ci0gICAgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KHJlY3QsIGltbWVk
aWF0ZSk7CisgICAgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KHJlY3QpOwogfQogCiB2b2lk
IFdlYkNocm9tZUNsaWVudDo6c2Nyb2xsKGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0Jiwg
Y29uc3QgSW50UmVjdCYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDAwNTljZDA2ZDAzNTA2ZWU4MjU1ODI0
ZTlhNTAwZjQyMzQyNTJkMWUuLjE2M2ZkNzMwNWQzYTFkNGI1Y2I0OTBmODcwM2Y0YTEzNDJiODc5
NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDctMjEgIEphbWVzIFJv
Ymluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmUgdGhlIGltbWVk
aWF0ZSByZXBhaW50IGNvZGVwYXRoIGFuZCBzdXBwb3J0LCBpdCBkb2Vzbid0IGRvIGFueXRoaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTAwMwor
CisgICAgICAgIERlbGV0aW5nIG9ic29sZXRlIHBhcmFtZXRlcnMuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnRRdDo6aW52YWxpZGF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGll
bnRRdDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudFF0OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgorCiAyMDExLTA3LTE5ICBDYWlvIE1h
cmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CiAK
ICAgICAgICAgW1F0XSBGaXggbGVhayBvZiBRV2ViUGFnZSBpbiBlcnJvclBhZ2VFeHRlbnNpb24g
dGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRRdC5jcHAKaW5kZXggNWUzNjdhZGQyNWJmZjNlOGU3ZDg0NjYxMWM5Njg5MTU2ZDU0MzU5YS4u
ZTM3NjVhYjdiMTM5NTkzM2E2ZjcwYjNkZWU4NDZjZDMxZDBmNmM4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKQEAgLTQwOSw3
ICs0MDksNyBAQCBJbnRSZWN0IENocm9tZUNsaWVudFF0Ojp3aW5kb3dSZXNpemVyUmVjdCgpIGNv
bnN0CiAjZW5kaWYKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRRdDo6aW52YWxpZGF0ZVdpbmRvdyhj
b25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBib29sKQordm9pZCBDaHJvbWVDbGllbnRRdDo6aW52
YWxpZGF0ZVdpbmRvdyhjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0KQogewogI2lmIEVOQUJMRShU
SUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGlmIChwbGF0Zm9ybVBhZ2VDbGllbnQoKSkgewpAQCAt
NDIzLDcgKzQyMyw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OmludmFsaWRhdGVXaW5kb3coY29u
c3QgSW50UmVjdCYgd2luZG93UmVjdCwgYm9vbCkKICNlbmRpZgogfQogCi12b2lkIENocm9tZUNs
aWVudFF0OjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3QgSW50UmVjdCYgd2luZG93
UmVjdCwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIENocm9tZUNsaWVudFF0OjppbnZhbGlkYXRlQ29u
dGVudHNBbmRXaW5kb3coY29uc3QgSW50UmVjdCYgd2luZG93UmVjdCkKIHsKICAgICAvLyBObyBk
b3VibGUgYnVmZmVyLCBzbyBvbmx5IHVwZGF0ZSB0aGUgUVdpZGdldCBpZiBjb250ZW50IGNoYW5n
ZWQuCiAgICAgaWYgKHBsYXRmb3JtUGFnZUNsaWVudCgpKSB7CkBAIC00MzMsMTQgKzQzMywxMSBA
QCB2b2lkIENocm9tZUNsaWVudFF0OjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3Qg
SW50UmVjdCYgd2luZG93UmVjdCwgYm9vbAogICAgICAgICAgICAgcGxhdGZvcm1QYWdlQ2xpZW50
KCktPnVwZGF0ZShyZWN0KTsKICAgICB9CiAgICAgUU1ldGFPYmplY3Q6Omludm9rZU1ldGhvZCht
X3dlYlBhZ2UsICJyZXBhaW50UmVxdWVzdGVkIiwgUXQ6OlF1ZXVlZENvbm5lY3Rpb24sIFFfQVJH
KFFSZWN0LCB3aW5kb3dSZWN0KSk7Ci0KLSAgICAvLyBGSVhNRTogVGhlcmUgaXMgbm8gImltbWVk
aWF0ZSIgc3VwcG9ydCBmb3Igd2luZG93IHBhaW50aW5nLiAgVGhpcyBzaG91bGQgYmUgZG9uZSBh
bHdheXMgd2hlbmV2ZXIgdGhlIGZsYWcKLSAgICAvLyBpcyBzZXQuCiB9CiAKLXZvaWQgQ2hyb21l
Q2xpZW50UXQ6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYg
d2luZG93UmVjdCwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIENocm9tZUNsaWVudFF0OjppbnZhbGlk
YXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmIHdpbmRvd1JlY3QpCiB7Ci0g
ICAgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KHdpbmRvd1JlY3QsIGltbWVkaWF0ZSk7Cisg
ICAgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KHdpbmRvd1JlY3QpOwogfQogCiB2b2lkIENo
cm9tZUNsaWVudFF0OjpzY3JvbGwoY29uc3QgSW50U2l6ZSYgZGVsdGEsIGNvbnN0IEludFJlY3Qm
IHNjcm9sbFZpZXdSZWN0LCBjb25zdCBJbnRSZWN0JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAppbmRleCBkYjM2ZjZlOWRmNmUzOWViNDNi
NzQyMTA2NDg1MDAyMGU1OGY0Yzk4Li42ZTYzNjJiY2JjNzdjMTgwNzZlYjFmMzUwNWQwNjU4MWI1
MDY5MTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRRdC5oCkBAIC0xMTYsOSArMTE2LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgS2V5Ym9h
cmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKTsKICAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93UmVz
aXplclJlY3QoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNv
bnN0IEludFJlY3QmLCBib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRz
QW5kV2luZG93KGNvbnN0IEludFJlY3QmLCBib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxp
ZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiwgYm9vbCk7CisgICAgdmly
dHVhbCB2b2lkIGludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYpOworICAgIHZpcnR1YWwg
dm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3QgSW50UmVjdCYpOworICAgIHZp
cnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3Qm
KTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBj
b25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KTsKICNp
ZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICB2aXJ0dWFsIHZvaWQgZGVsZWdhdGVk
U2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFBvaW50JiBzY3JvbGxQb2ludCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKaW5kZXggNGYyNmFmZjZmMzZmZDNhZTA3NDgyN2JhOGRhZDcxNjVjYzZiYTIxZi4uOGI3NzA0
MTI0MmU5ZDZiM2Q1ODExZDUzYjE3ZTk4YTVlZTNjMjMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDExLTA3LTIxICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBpbW1lZGlhdGUgcmVwYWludCBjb2RlcGF0aCBh
bmQgc3VwcG9ydCwgaXQgZG9lc24ndCBkbyBhbnl0aGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUwMDMKKworICAgICAgICBEZWxldGluZyBvYnNv
bGV0ZSBwYXJhbWV0ZXJzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZVdpbmRvdyk6Cisg
ICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyk6Cisg
ICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwp
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAq
IFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6cmVwYWludCk6CisKIDIwMTEtMDctMTgg
IERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDc0MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggOWQzNGRjNjlkNzNj
MzI5NGY4MTE2ZDQ3NDM4MmVlNTE1NjFiMWQxMi4uMGMwNWE1OTA1ZTU1ODQyODkyOTFjZGYwYjJi
YTM0M2ZjMzc1MDQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC00NjYsMjIgKzQ2NiwyMiBAQCBJbnRSZWN0IFdl
YkNocm9tZUNsaWVudDo6d2luZG93UmVzaXplclJlY3QoKSBjb25zdAogICAgIHJldHVybiBJbnRS
ZWN0KCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlV2luZG93KGNvbnN0
IEludFJlY3QmIHdpbmRvd1JlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYgd2luZG93UmVjdCkKIHsKICAgICBB
U1NFUlQoY29yZShtX3dlYlZpZXctPnRvcExldmVsRnJhbWUoKSkpOwotICAgIG1fd2ViVmlldy0+
cmVwYWludCh3aW5kb3dSZWN0LCBmYWxzZSAvKmNvbnRlbnRDaGFuZ2VkKi8sIGltbWVkaWF0ZSwg
ZmFsc2UgLypyZXBhaW50Q29udGVudE9ubHkqLyk7CisgICAgbV93ZWJWaWV3LT5yZXBhaW50KHdp
bmRvd1JlY3QsIGZhbHNlIC8qY29udGVudENoYW5nZWQqLywgZmFsc2UgLypyZXBhaW50Q29udGVu
dE9ubHkqLyk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNB
bmRXaW5kb3coY29uc3QgSW50UmVjdCYgd2luZG93UmVjdCwgYm9vbCBpbW1lZGlhdGUpCit2b2lk
IFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJl
Y3QmIHdpbmRvd1JlY3QpCiB7CiAgICAgQVNTRVJUKGNvcmUobV93ZWJWaWV3LT50b3BMZXZlbEZy
YW1lKCkpKTsKLSAgICBtX3dlYlZpZXctPnJlcGFpbnQod2luZG93UmVjdCwgdHJ1ZSAvKmNvbnRl
bnRDaGFuZ2VkKi8sIGltbWVkaWF0ZSAvKmltbWVkaWF0ZSovLCBmYWxzZSAvKnJlcGFpbnRDb250
ZW50T25seSovKTsKKyAgICBtX3dlYlZpZXctPnJlcGFpbnQod2luZG93UmVjdCwgdHJ1ZSAvKmNv
bnRlbnRDaGFuZ2VkKi8sIGZhbHNlIC8qcmVwYWludENvbnRlbnRPbmx5Ki8pOwogfQogCi12b2lk
IFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJ
bnRSZWN0JiB3aW5kb3dSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmIHdpbmRvd1Jl
Y3QpCiB7CiAgICAgQVNTRVJUKGNvcmUobV93ZWJWaWV3LT50b3BMZXZlbEZyYW1lKCkpKTsKLSAg
ICBtX3dlYlZpZXctPnJlcGFpbnQod2luZG93UmVjdCwgdHJ1ZSAvKmNvbnRlbnRDaGFuZ2VkKi8s
IGltbWVkaWF0ZSwgdHJ1ZSAvKnJlcGFpbnRDb250ZW50T25seSovKTsKKyAgICBtX3dlYlZpZXct
PnJlcGFpbnQod2luZG93UmVjdCwgdHJ1ZSAvKmNvbnRlbnRDaGFuZ2VkKi8sIHRydWUgLypyZXBh
aW50Q29udGVudE9ubHkqLyk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzY3JvbGwoY29u
c3QgSW50U2l6ZSYgZGVsdGEsIGNvbnN0IEludFJlY3QmIHNjcm9sbFZpZXdSZWN0LCBjb25zdCBJ
bnRSZWN0JiBjbGlwUmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNjhhMDk1YmE3YWE3N2Q2Mjg3MjI2NjgwZTMzNmY0
NDczNGZmZWQwNC4uNjU5YTMzZjI5NmFiNjdhODg3OGQwYTBmNDU0YmRhOTMyODc5M2ExOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKQEAgLTk2LDkgKzk2LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6S2V5Ym9h
cmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qg
d2luZG93UmVzaXplclJlY3QoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
V2luZG93KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQg
aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29s
KTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVX
aW5kb3coY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlk
YXRlQ29udGVudHNBbmRXaW5kb3coY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOworICAgIHZpcnR1
YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFNpemUm
IHNjcm9sbERlbHRhLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KTsKIAogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50
UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHApIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJWaWV3LmNwcAppbmRleCBmYTc1ODc0YmRjNDM2OGUwN2VkZGRkN2Y1ZjRiZmQ3YTk1
ZjYzZGRmLi5kMmU4MTBiODEzZGM0MzYxMWQyM2MzZGEzY2U1M2QxNmJlNzBmZDgzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJWaWV3LmNwcApAQCAtNzM4LDExICs3MzgsMTEgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBXZWJWaWV3OjpjbG9zZSgpCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKLXZvaWQgV2ViVmll
dzo6cmVwYWludChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB3aW5kb3dSZWN0LCBib29sIGNvbnRl
bnRDaGFuZ2VkLCBib29sIGltbWVkaWF0ZSwgYm9vbCByZXBhaW50Q29udGVudE9ubHkpCit2b2lk
IFdlYlZpZXc6OnJlcGFpbnQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgd2luZG93UmVjdCwgYm9v
bCBjb250ZW50Q2hhbmdlZCwgYm9vbCByZXBhaW50Q29udGVudE9ubHkpCiB7CiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmco
KSkgewotICAgICAgICAvLyBUaGUgY29udGVudENoYW5nZWQsIGltbWVkaWF0ZSwgYW5kIHJlcGFp
bnRDb250ZW50T25seSBwYXJhbWV0ZXJzIGFyZSBhbGwgYmFzZWQgb24gYSBub24tCisgICAgICAg
IC8vIFRoZSBjb250ZW50Q2hhbmdlZCBhbmQgcmVwYWludENvbnRlbnRPbmx5IHBhcmFtZXRlcnMg
YXJlIGJhc2VkIG9uIGEgbm9uLQogICAgICAgICAvLyBjb21wb3NpdGluZyBwYWludGluZy9zY3Jv
bGxpbmcgbW9kZWwuCiAgICAgICAgIGFkZFRvRGlydHlSZWdpb24od2luZG93UmVjdCk7CiAgICAg
ICAgIHJldHVybjsKQEAgLTc1NSwxMiArNzU1LDYgQEAgdm9pZCBXZWJWaWV3OjpyZXBhaW50KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd1JlY3QsIGJvb2wgY29udGVudENoYW5nZWQsIGIK
ICAgICB9CiAgICAgaWYgKGNvbnRlbnRDaGFuZ2VkKQogICAgICAgICBhZGRUb0RpcnR5UmVnaW9u
KHdpbmRvd1JlY3QpOwotICAgIGlmIChpbW1lZGlhdGUpIHsKLSAgICAgICAgaWYgKHJlcGFpbnRD
b250ZW50T25seSkKLSAgICAgICAgICAgIHVwZGF0ZUJhY2tpbmdTdG9yZShjb3JlKHRvcExldmVs
RnJhbWUoKSktPnZpZXcoKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIDo6VXBkYXRlV2lu
ZG93KG1fdmlld1dpbmRvdyk7Ci0gICAgfQogfQogCiB2b2lkIFdlYlZpZXc6OmRlbGV0ZUJhY2tp
bmdTdG9yZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDUwZTMxZTQzNDNmZGE4MjI0NGY2MTll
YzBjYzVmZjU0NzAwMWY5ZDMuLmNkOTNjZDk5MzZmYmJhZTEyYzk2MjQ0YzMxZTVkMDA2ZGQwYmRi
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDctMjEgIEph
bWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmUgdGhl
IGltbWVkaWF0ZSByZXBhaW50IGNvZGVwYXRoIGFuZCBzdXBwb3J0LCBpdCBkb2Vzbid0IGRvIGFu
eXRoaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NTAwMworCisgICAgICAgIERlbGV0aW5nIG9ic29sZXRlIHBhcmFtZXRlcnMuCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkNocm9tZUNsaWVudFdpbkNFOjppbnZhbGlkYXRlV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6
Q2hyb21lQ2xpZW50V2luQ0U6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyk6CisgICAgICAg
IChXZWJLaXQ6OkNocm9tZUNsaWVudFdpbkNFOjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Ny
b2xsKToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50V2luQ0U6OnNjcm9sbCk6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaDoKKwogMjAxMS0wNy0xNSAg
RGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046IE1v
dXNlIGN1cnNvciBkb2VzbuKAmXQgaGlkZSB3aGVuIGZ1bGwgc2NyZWVuIHZpZGVvIEhVRCBoaWRl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFdpbkNFLmNwcAppbmRleCBmZjI2MmFjY2EwMjNhNjlmMTExMGQxMDdkZDgxZmViNTU0
YzhmYmVmLi4xNmU5YmQ5NzMxMGVkN2JlOGMzZGYyNzAyMGE2NzIwZjhkZDRjMTQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNF
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFdpbkNFLmNwcApAQCAtMjMxLDI4ICsyMzEsMjUgQEAgSW50UmVjdCBDaHJvbWVDbGllbnRXaW5D
RTo6d2luZG93UmVzaXplclJlY3QoKSBjb25zdAogICAgIHJldHVybiBJbnRSZWN0KCk7CiB9CiAK
LXZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OmludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYs
IGJvb2wpCit2b2lkIENocm9tZUNsaWVudFdpbkNFOjppbnZhbGlkYXRlV2luZG93KGNvbnN0IElu
dFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50
V2luQ0U6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiB1cGRhdGVS
ZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OmludmFsaWRhdGVD
b250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KQogewogICAgIFJFQ1Qg
cmVjdCA9IHVwZGF0ZVJlY3Q7CiAgICAgSW52YWxpZGF0ZVJlY3QobV93ZWJWaWV3LT53aW5kb3dI
YW5kbGUoKSwgJnJlY3QsIEZBTFNFKTsKLQotICAgIGlmIChpbW1lZGlhdGUpCi0gICAgICAgIFVw
ZGF0ZVdpbmRvdyhtX3dlYlZpZXctPndpbmRvd0hhbmRsZSgpKTsKIH0KIAotdm9pZCBDaHJvbWVD
bGllbnRXaW5DRTo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0
JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6Omlu
dmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkK
IHsKLSAgICBpbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3codXBkYXRlUmVjdCwgaW1tZWRpYXRl
KTsKKyAgICBpbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3codXBkYXRlUmVjdCk7CiB9CiAKIHZv
aWQgQ2hyb21lQ2xpZW50V2luQ0U6OnNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVj
dCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JikKIHsKLSAgICBpbnZhbGlkYXRlQ29udGVu
dHNBbmRXaW5kb3cocmVjdFRvU2Nyb2xsLCBmYWxzZSk7CisgICAgaW52YWxpZGF0ZUNvbnRlbnRz
QW5kV2luZG93KHJlY3RUb1Njcm9sbCk7CiB9CiAKIEludFJlY3QgQ2hyb21lQ2xpZW50V2luQ0U6
OndpbmRvd1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmggYi9T
b3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKaW5k
ZXggOGQzNWVjMDk1NjQyN2M2NTIwYjMzMDRjYjNiMTA3YjFkYjcyOTNlOS4uMTFlZDVjYTA1NDQ1
YzQzOGQ2MzY3YWNlZjlkNTNkNzM4MDJhOGQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaApAQCAtOTUsOSArOTUs
OSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJS
ZWN0KCkgY29uc3Q7CiAKICAgICAvLyBNZXRob2RzIHVzZWQgYnkgSG9zdFdpbmRvdy4KLSAgICB2
aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVdpbmRvdyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9v
bCk7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250
ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpOworICAgIHZp
cnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Nj
cm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRv
V2luZG93KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJD
b3JlOjpJbnRSZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC93eC9DaGFuZ2VMb2cKaW5kZXggYzU3NjRlMjgxMTYyZDM4MGVjMGRhY2FiNmM5YzdiZGViYTRj
ZDJhZi4uMGUxMjI1NTQyZGRjYTJkYzYzZDU3MDFmODY1NjU4MTQyNjE0YTljNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93eC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0wNy0yMSAgSmFtZXMgUm9iaW5zb24gIDxqYW1l
c3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSB0aGUgaW1tZWRpYXRlIHJlcGFpbnQg
Y29kZXBhdGggYW5kIHN1cHBvcnQsIGl0IGRvZXNuJ3QgZG8gYW55dGhpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1MDAzCisKKyAgICAgICAgRGVs
ZXRpbmcgb2Jzb2xldGUgcGFyYW1ldGVycy4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hy
b21lQ2xpZW50V3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OmludmFs
aWRhdGVXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OmludmFsaWRh
dGVDb250ZW50c0ZvclNsb3dTY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50
V3g6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyk6CisgICAgICAgICogV2ViS2l0U3VwcG9y
dC9DaHJvbWVDbGllbnRXeC5oOgorCiAyMDExLTA3LTE1ICBEYW4gQmVybnN0ZWluICA8bWl0ekBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTjogTW91c2UgY3Vyc29yIGRvZXNu4oCZdCBo
aWRlIHdoZW4gZnVsbCBzY3JlZW4gdmlkZW8gSFVEIGhpZGVzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwIGIvU291cmNlL1dlYktp
dC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcAppbmRleCA3OTk2OTUxOGI0MmNk
MzExZDlmMjQxMTg2MWZhYWU1Y2VmNmU2YzVjLi5mN2UyZmMyNmQxZTgxZTAyN2I5OTU3ODY5MGQy
NmU0NWQ3ZmMwMGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQv
Q2hyb21lQ2xpZW50V3guY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5jcHAKQEAgLTM0NiwyNyArMzQ2LDIxIEBAIEludFJlY3QgQ2hyb21lQ2xp
ZW50V3g6OndpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QKICAgICByZXR1cm4gSW50UmVjdCgpOwog
fQogCi12b2lkIENocm9tZUNsaWVudFd4OjppbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3Qm
IHJlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBDaHJvbWVDbGllbnRXeDo6aW52YWxpZGF0ZVdp
bmRvdyhjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIGlmIChpbW1lZGlhdGUpCi0gICAgICAg
IG1fd2ViVmlldy0+VXBkYXRlKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50V3g6OmludmFsaWRh
dGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYgcmVjdCwgYm9vbCBpbW1lZGlh
dGUpCit2b2lkIENocm9tZUNsaWVudFd4OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xs
KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93
KHJlY3QsIGltbWVkaWF0ZSk7CisgICAgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KHJlY3Qp
OwogfQogCi12b2lkIENocm9tZUNsaWVudFd4OjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3co
Y29uc3QgSW50UmVjdCYgcmVjdCwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIENocm9tZUNsaWVudFd4
OjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAg
ICBpZiAoIW1fd2ViVmlldykKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV93ZWJWaWV3LT5SZWZy
ZXNoUmVjdChyZWN0KTsKLQotICAgIGlmIChpbW1lZGlhdGUpIHsKLSAgICAgICAgbV93ZWJWaWV3
LT5VcGRhdGUoKTsKLSAgICB9CiB9CiAKIEludFJlY3QgQ2hyb21lQ2xpZW50V3g6OndpbmRvd1Rv
U2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaCBiL1NvdXJjZS9XZWJLaXQvd3gv
V2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCmluZGV4IGI1ZDRjMTA5M2ZiN2JhMDA0MDRl
ZWNiYmRmNTMzZjNkODgzM2E2NDIuLjVlMzc5ZDM2NDgxMGQzMTY2MzQ5MzNiMzE4YWMxNzY1NjBi
NzcyYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVD
bGllbnRXeC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGll
bnRXeC5oCkBAIC0xMDUsOSArMTA1LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzY3Jv
bGxCYWNraW5nU3RvcmUoaW50IGR4LCBpbnQgZHksIGNvbnN0IEludFJlY3QmIHNjcm9sbFZpZXdS
ZWN0LCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJh
Y2tpbmdTdG9yZSgpOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNv
bnN0IEludFJlY3QmLCBib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRz
QW5kV2luZG93KGNvbnN0IEludFJlY3QmLCBib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxp
ZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiwgYm9vbCk7CisgICAgdmly
dHVhbCB2b2lkIGludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYpOworICAgIHZpcnR1YWwg
dm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3QgSW50UmVjdCYpOworICAgIHZp
cnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3Qm
KTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBj
b25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KTsKIAog
ICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgSW50UG9pbnQmKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCAyNTg4OTI2MWFlNzZjYTEwMzc1ZmFiYWFjM2M2MjI5MTlkM2VkMmJi
Li45MmExODUwMzIyMTIwMzJhZjFlMzA2YWRiOTFmMzM1NjQzMjc1Yzc0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTEtMDctMjEgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZW1vdmUgdGhlIGltbWVkaWF0ZSByZXBhaW50IGNvZGVwYXRo
IGFuZCBzdXBwb3J0LCBpdCBkb2Vzbid0IGRvIGFueXRoaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTAwMworCisgICAgICAgIERlbGV0aW5nIG9i
c29sZXRlIHBhcmFtZXRlcnMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6
aW52YWxpZGF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6aW52
YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorCiAyMDExLTA3LTE5ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEJ1aWxkIGZpeCBhZnRlciBy
OTEzMDcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMTQ3NjRmMzU2Zjc5ZGJjMWEyMzM5
ZDQwMGYyZTI5MWRhZWM3MjAxYi4uODM3MzE3YWY3NGVlNjA5MjdjYzE4NzY4MjBmYTQzOGE0MjAy
MDY2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMzY5LDEyICszNjksMTIgQEAgSW50
UmVjdCBXZWJDaHJvbWVDbGllbnQ6OndpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QKICAgICByZXR1
cm4gbV9wYWdlLT53aW5kb3dSZXNpemVyUmVjdCgpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVu
dDo6aW52YWxpZGF0ZVdpbmRvdyhjb25zdCBJbnRSZWN0JiwgYm9vbCkKK3ZvaWQgV2ViQ2hyb21l
Q2xpZW50OjppbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3QmKQogewogICAgIC8vIERvIG5v
dGhpbmcgaGVyZSwgdGhlcmUncyBubyBjb25jZXB0IG9mIGludmFsaWRhdGluZyB0aGUgd2luZG93
IGluIHRoZSB3ZWIgcHJvY2Vzcy4KIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRh
dGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBib29sKQordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiBy
ZWN0KQogewogICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSBtX3BhZ2UtPmNvcmVQYWdlKCkt
Pm1haW5GcmFtZSgpLT5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChkb2N1bWVudC0+cHJpbnRp
bmcoKSkKQEAgLTM4NCw3ICszODQsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0
ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wpCiAgICAgbV9wYWdl
LT5kcmF3aW5nQXJlYSgpLT5zZXROZWVkc0Rpc3BsYXkocmVjdCk7CiB9CiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3Qm
IHJlY3QsIGJvb2wpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9y
U2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIGlmIChEb2N1bWVudCogZG9j
dW1lbnQgPSBtX3BhZ2UtPmNvcmVQYWdlKCktPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpKSB7CiAg
ICAgICAgIGlmIChkb2N1bWVudC0+cHJpbnRpbmcoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4
IDYzOGM2YTMyN2UyMWE5MmE5MGRmNmMxM2UwYzM5NTViN2UzMDlmMDAuLmQ4NzNmZDQ0YWViZmY4
NDM5NDIzN2ZkMDI0NTVhOWNhYTg0ZjYyMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTEw
LDkgKzExMCw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHdpbmRv
d1Jlc2l6ZXJSZWN0KCkgY29uc3Q7CiAgICAgCiAgICAgLy8gTWV0aG9kcyB1c2VkIGJ5IEhvc3RX
aW5kb3cuCi0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVXaW5kb3coY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYsIGJvb2wpOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRX
aW5kb3coY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpOwotICAgIHZpcnR1YWwgdm9pZCBp
bnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBi
b29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVdpbmRvdyhjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0Jik7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhj
b25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250
ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZpcnR1YWwg
dm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0LCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlw
UmVjdCk7CiAjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdmlydHVhbCB2b2lk
IGRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xs
T2Zmc2V0KTsK
</data>
<flag name="review"
          id="96679"
          type_id="1"
          status="-"
          setter="darin"
    />
    <flag name="commit-queue"
          id="96693"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>