<?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>62208</bug_id>
          
          <creation_ts>2011-06-07 06:35:03 -0700</creation_ts>
          <short_desc>Change the argument of RenderTheme::adjustSliderThumbSize(): RenderObject* -&gt; RenderStyle*</short_desc>
          <delta_ts>2011-06-08 16:46:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>62207</dependson>
          <blocked>52920</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>416463</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-07 06:35:03 -0700</bug_when>
    <thetext>Change the argument of RenderTheme::adjustSliderThumbSize(): RenderObject* -&gt; RenderStyle*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417104</commentid>
    <comment_count>1</comment_count>
      <attachid>96384</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-07 23:16:33 -0700</bug_when>
    <thetext>Created attachment 96384
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417116</commentid>
    <comment_count>2</comment_count>
      <attachid>96388</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-07 23:32:34 -0700</bug_when>
    <thetext>Created attachment 96388
Patch 2

Fix GTK build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417126</commentid>
    <comment_count>3</comment_count>
      <attachid>96388</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-08 00:33:26 -0700</bug_when>
    <thetext>Comment on attachment 96388
Patch 2

Attachment 96388 did not pass cr-mac-ews (chromium):
Output: http://queues.webkit.org/results/8812207</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417192</commentid>
    <comment_count>4</comment_count>
      <attachid>96410</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-08 05:52:35 -0700</bug_when>
    <thetext>Created attachment 96410
Patch 3

Fix Chromium-Mac build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417686</commentid>
    <comment_count>5</comment_count>
      <attachid>96410</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-08 16:46:08 -0700</bug_when>
    <thetext>Comment on attachment 96410
Patch 3

Clearing flags on attachment: 96410

Committed r88405: &lt;http://trac.webkit.org/changeset/88405&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417687</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-08 16:46:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96384</attachid>
            <date>2011-06-07 23:16:33 -0700</date>
            <delta_ts>2011-06-07 23:32:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62208-20110608151631.patch</filename>
            <type>text/plain</type>
            <size>41148</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODgzMjUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3YWMxMmFjOGI3ZWY1Y2Vl
N2Y5NmY5MGY3YWJhNGM0MzgzZmIxNjFmLi45OWMyODRiOTliYjMyYjczZDVlOWViYmMxM2M0N2Ri
NWY5MjJkNDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzMgQEAKKzIwMTEtMDYtMDcgIEtlbnQg
VGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSB0aGUgYXJndW1lbnQgb2YgUmVuZGVyVGhlbWU6
OmFkanVzdFNsaWRlclRodW1iU2l6ZSgpOiBSZW5kZXJPYmplY3QqIC0+IFJlbmRlclN0eWxlKgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyMDgKKwor
ICAgICAgICBDaGFuZ2UgdGhlIGFyZ3VtZW50IHR5cGUgb2YgUmVuZGVyVGhlbWU6OmFkanVzdFNs
aWRlclRodW1iU2l6ZSgpIGFuZAorICAgICAgICBSZW5kZXJNZWRpYUNvbnRyb2xzOjphZGp1c3RN
ZWRpYVNsaWRlclRodW1iU2l6ZSgpIGZyb20gUmVuZGVyT2JqZWN0KiB0byBSZW5kZXJTdHlsZSou
CisgICAgICAgIAorICAgICAgICBBbHNvLCBlYWNoIG9mIGFkanVzdFNsaWRlclRodW1iU3R5bGUo
KSBvdmVycmlkZXMgY2FsbHMgUmVuZGVyVGhlbWU6OgorICAgICAgICBhZGp1c3RTbGlkZXJUaHVt
YlN0eWxlKCkgZm9yIGZ1dHVyZSBjaGFuZ2VzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGhp
cyBpcyBhIHJlZmFjdG9yaW5nIGFuZCBzaG91bGQgbm90IGNoYW5nZSBhbnkgYmVoYXZpb3IuCisK
KyAgICAgICAgKiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU2xpZGVyVGh1bWI6OmxheW91dCk6IFBhc3NpbmcgUmVuZGVyU3R5bGUq
IGFuZCByZW1vdmUgYSBGSVhNRSBjb21tZW50LgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9SZW5k
ZXJUaGVtZUVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6YWRqdXN0
U2xpZGVyVGh1bWJTdHlsZSk6IENhbGxzIFJlbmRlclRoZW1lOjphZGp1c3RTbGlkZXJUaHVtYlN0
eWxlKCkuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjphZGp1c3RTbGlkZXJUaHVtYlN0eWxlKTogZGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6YWRqdXN0TWVkaWFTbGlkZXJU
aHVtYlNpemUpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVHdGs6OmFkanVzdFNsaWRlclRodW1iU2l6ZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZUd0azo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9S
ZW5kZXJUaGVtZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OmFkanVz
dFNsaWRlclRodW1iU3R5bGUpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
UXQ6OmFkanVzdFNsaWRlclRodW1iU2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1l
ZGlhQ29udHJvbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWFDb250cm9sczo6
YWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJN
ZWRpYUNvbnRyb2xzLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHND
aHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21p
dW06OmFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNs
aWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OmxheW91dCk6IFBhc3Np
bmcgUmVuZGVyU3R5bGUqIGFuZCByZW1vdmUgYSBGSVhNRSBjb21tZW50LgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6
YWRqdXN0U2xpZGVyVGh1bWJTdHlsZSk6IEFkZCBhIGNvbW1lbnQuCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZTo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1
bUxpbnV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6
YWRqdXN0U2xpZGVyVGh1bWJTaXplKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bUxpbnV4Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1N
YWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmFkanVzdE1lZGlhU2xpZGVy
VGh1bWJTaXplKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OmFkanVzdFNs
aWRlclRodW1iU2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1T
a2lhLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6YWRqdXN0U2xpZGVyVGh1
bWJTaXplKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjph
ZGp1c3RTbGlkZXJUaHVtYlN0eWxlKTogQ2FsbHMgUmVuZGVyVGhlbWU6OmFkanVzdFNsaWRlclRo
dW1iU3R5bGUoKS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjphZGp1c3RTbGlk
ZXJUaHVtYlNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmFkanVzdE1l
ZGlhU2xpZGVyVGh1bWJTaXplKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVTYWZh
cmkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVTYWZhcmk6OmFkanVzdFNsaWRl
clRodW1iU3R5bGUpOiBDYWxscyBSZW5kZXJUaGVtZTo6YWRqdXN0U2xpZGVyVGh1bWJTdHlsZSgp
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVTYWZhcmk6OmFkanVzdFNsaWRlclRodW1i
U2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJpLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lV2luOjphZGp1c3RTbGlkZXJUaHVtYlNpemUpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUaGVtZVdpbi5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZVdpbkNFLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lV2luQ0U6OmFkanVzdFNsaWRlclRodW1i
U2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luQ0UuaDoKKwogMjAxMS0w
Ni0wNyAgSWFuIEhlbmRlcnNvbiAgPGlhbmhAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xp
ZGVyVGh1bWJFbGVtZW50LmNwcAppbmRleCA4YTA2Y2IzM2ZiNWNiZmNhMDBmZmM4YWU2ZGZlZjU0
ZDkxYzc0ZGJmLi5hNDllM2ViYzAwNDBmYjhlMjVkYjE5ZTZmOTQxZTljNmQ4M2VkYTc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAK
QEAgLTc1LDEwICs3NSw4IEBAIHZvaWQgUmVuZGVyU2xpZGVyVGh1bWI6OmxheW91dCgpCiAgICAg
ZWxzZSBpZiAocGFyZW50U3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNsaWRlclBh
cnQpCiAgICAgICAgIHN0eWxlKCktPnNldEFwcGVhcmFuY2UoTWVkaWFWb2x1bWVTbGlkZXJUaHVt
YlBhcnQpOwogCi0gICAgaWYgKHN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSkgewotICAgICAgICAv
LyBGSVhNRTogVGhpcyBzaG91bGQgcGFzcyB0aGUgc3R5bGUsIG5vdCB0aGUgcmVuZGVyZXIsIHRv
IHRoZSB0aGVtZS4KLSAgICAgICAgdGhlbWUoKS0+YWRqdXN0U2xpZGVyVGh1bWJTaXplKHRoaXMp
OwotICAgIH0KKyAgICBpZiAoc3R5bGUoKS0+aGFzQXBwZWFyYW5jZSgpKQorICAgICAgICB0aGVt
ZSgpLT5hZGp1c3RTbGlkZXJUaHVtYlNpemUoc3R5bGUoKSk7CiAgICAgUmVuZGVyQmxvY2s6Omxh
eW91dCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVu
ZGVyVGhlbWVFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1l
RWZsLmNwcAppbmRleCBmMTQ5ZTljMjAxMWQ0N2U4ZjQyMGQxMmNmZGEyMjI1ZTQyZjRkMjkzLi5j
OTBjMGU0YTM1N2QwZjE1ODI5OTRhNDQxZTIxOGIwOGJhNmVlN2JhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKQEAgLTgzNCw2ICs4MzQsNyBA
QCB2b2lkIFJlbmRlclRoZW1lRWZsOjphZGp1c3RTbGlkZXJUcmFja1N0eWxlKENTU1N0eWxlU2Vs
ZWN0b3IqIHNlbGVjdG9yLCBSZW5kZXJTdAogCiB2b2lkIFJlbmRlclRoZW1lRWZsOjphZGp1c3RT
bGlkZXJUaHVtYlN0eWxlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yLCBSZW5kZXJTdHlsZSog
c3R5bGUsIEVsZW1lbnQqIGVsZW1lbnQpIGNvbnN0CiB7CisgICAgUmVuZGVyVGhlbWU6OmFkanVz
dFNsaWRlclRodW1iU3R5bGUoc2VsZWN0b3IsIHN0eWxlLCBlbGVtZW50KTsKICAgICBhZGp1c3RT
bGlkZXJUcmFja1N0eWxlKHNlbGVjdG9yLCBzdHlsZSwgZWxlbWVudCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwCmluZGV4IGY2YWQ3YWY4
MjAxMGQ5OTJjNmUxYThmNzRkY2Q0NDg2YTk3ZGQ0ZjkuLjI3NGIwNDE1N2ZiMTlkMjQ1MmMwMWI3
NDY1NDhlMTUxZTQwZTJjZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9SZW5kZXJUaGVtZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Jl
bmRlclRoZW1lR3RrLmNwcApAQCAtMzk2LDggKzM5Niw5IEBAIHZvaWQgUmVuZGVyVGhlbWVHdGs6
OmFkanVzdFNsaWRlclRyYWNrU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiBz
dHlsCiAgICAgc3R5bGUtPnNldEJveFNoYWRvdyhudWxscHRyKTsKIH0KIAotdm9pZCBSZW5kZXJU
aGVtZUd0azo6YWRqdXN0U2xpZGVyVGh1bWJTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVy
U3R5bGUqIHN0eWxlLCBFbGVtZW50KikgY29uc3QKK3ZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVz
dFNsaWRlclRodW1iU3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxl
KiBzdHlsZSwgRWxlbWVudCogZWxlbWVudCkgY29uc3QKIHsKKyAgICBSZW5kZXJUaGVtZTo6YWRq
dXN0U2xpZGVyVGh1bWJTdGxlKHNlbGVjdG9yLCBzdHlsZSwgZWxlbWVudCk7CiAgICAgc3R5bGUt
PnNldEJveFNoYWRvdyhudWxscHRyKTsKIH0KIApAQCAtNDcyLDExICs0NzMsMTEgQEAgU3RyaW5n
IFJlbmRlclRoZW1lR3RrOjpleHRyYU1lZGlhQ29udHJvbHNTdHlsZVNoZWV0KCkKICAgICByZXR1
cm4gU3RyaW5nKG1lZGlhQ29udHJvbHNHdGtVc2VyQWdlbnRTdHlsZVNoZWV0LCBzaXplb2YobWVk
aWFDb250cm9sc0d0a1VzZXJBZ2VudFN0eWxlU2hlZXQpKTsKIH0KIAotdm9pZCBSZW5kZXJUaGVt
ZUd0azo6YWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KiByZW5kZXJPYmpl
Y3QpIGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6
ZShSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKHJlbmRlck9iamVjdC0+
c3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IE1lZGlhU2xpZGVyVGh1bWJQYXJ0KTsKLSAgICByZW5k
ZXJPYmplY3QtPnN0eWxlKCktPnNldFdpZHRoKExlbmd0aChtX21lZGlhU2xpZGVyVGh1bWJXaWR0
aCwgRml4ZWQpKTsKLSAgICByZW5kZXJPYmplY3QtPnN0eWxlKCktPnNldEhlaWdodChMZW5ndGgo
bV9tZWRpYVNsaWRlclRodW1iSGVpZ2h0LCBGaXhlZCkpOworICAgIEFTU0VSVChzdHlsZS0+YXBw
ZWFyYW5jZSgpID09IE1lZGlhU2xpZGVyVGh1bWJQYXJ0KTsKKyAgICBzdHlsZS0+c2V0V2lkdGgo
TGVuZ3RoKG1fbWVkaWFTbGlkZXJUaHVtYldpZHRoLCBGaXhlZCkpOworICAgIHN0eWxlLT5zZXRI
ZWlnaHQoTGVuZ3RoKG1fbWVkaWFTbGlkZXJUaHVtYkhlaWdodCwgRml4ZWQpKTsKIH0KIAogYm9v
bCBSZW5kZXJUaGVtZUd0azo6cGFpbnRNZWRpYUJ1dHRvbihSZW5kZXJPYmplY3QqIHJlbmRlck9i
amVjdCwgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0LCBjb25z
dCBjaGFyKiBpY29uTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9SZW5kZXJUaGVtZUd0ay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRo
ZW1lR3RrLmgKaW5kZXggNGU2MGZkZmJjN2UxMTc4MWVkNTkwMWY2NmYxZTgyYjE4YzkwYWFhMC4u
NmEyNGQ1OTE0YjQ4ZTI1YzVkMzZiNjdjNWNmYTNmYWIzZjNjOWZiNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmgKQEAgLTE0MiwxMiArMTQyLDEyIEBA
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRTbGlkZXJUaHVtYihSZW5kZXJPYmpl
Y3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lk
IGFkanVzdFNsaWRlclRodW1iU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwg
RWxlbWVudCopIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRodW1iU2l6
ZShSZW5kZXJPYmplY3QqIG9iamVjdCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGFkanVzdFNs
aWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSopIGNvbnN0OwogCiAjaWYgRU5BQkxFKFZJREVPKQog
ICAgIHZvaWQgaW5pdE1lZGlhQ29sb3JzKCk7CiAgICAgdm9pZCBpbml0TWVkaWFCdXR0b25zKCk7
Ci0gICAgdm9pZCBhZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShSZW5kZXJPYmplY3QqKSBjb25z
dDsKKyAgICB2b2lkIGFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKikgY29u
c3Q7CiAgICAgdmlydHVhbCBib29sIGhhc093bkRpc2FibGVkU3RhdGVIYW5kbGluZ0ZvcihDb250
cm9sUGFydCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBwYWludE1l
ZGlhRnVsbHNjcmVlbkJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0Jik7CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFQbGF5QnV0dG9uKFJlbmRl
ck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMi5jcHAKaW5kZXggYTNiM2I3MDFi
OGE1MTgxYmQ5OTQyOTExN2M4NmFiMDlmYjliZGQ4My4uNTA2NzVkMWU5NDBiMzhlZjY0NmNhOTAx
NjMzZWZkZDViOTc4YjI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1JlbmRlclRoZW1lR3RrMi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Jl
bmRlclRoZW1lR3RrMi5jcHAKQEAgLTUyNCwxMiArNTI0LDEyIEBAIGJvb2wgUmVuZGVyVGhlbWVH
dGs6OnBhaW50U2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5m
byYgaW5mCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1
c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KiBvKSBjb25zdAordm9pZCBSZW5kZXJUaGVt
ZUd0azo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKIHsK
LSAgICBDb250cm9sUGFydCBwYXJ0ID0gby0+c3R5bGUoKS0+YXBwZWFyYW5jZSgpOworICAgIENv
bnRyb2xQYXJ0IHBhcnQgPSBzdHlsZS0+YXBwZWFyYW5jZSgpOwogI2lmIEVOQUJMRShWSURFTykK
ICAgICBpZiAocGFydCA9PSBNZWRpYVNsaWRlclRodW1iUGFydCkgewotICAgICAgICBhZGp1c3RN
ZWRpYVNsaWRlclRodW1iU2l6ZShvKTsKKyAgICAgICAgYWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNp
emUoc3R5bGUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCkBAIC01NDIsMTMgKzU0
MiwxMyBAQCB2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVy
T2JqZWN0KiBvKSBjb25zdAogICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogCiAgICAg
aWYgKHBhcnQgPT0gU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCkgewotICAgICAgICBvLT5zdHls
ZSgpLT5zZXRXaWR0aChMZW5ndGgobGVuZ3RoLCBGaXhlZCkpOwotICAgICAgICBvLT5zdHlsZSgp
LT5zZXRIZWlnaHQoTGVuZ3RoKHdpZHRoLCBGaXhlZCkpOworICAgICAgICBzdHlsZS0+c2V0V2lk
dGgoTGVuZ3RoKGxlbmd0aCwgRml4ZWQpKTsKKyAgICAgICAgc3R5bGUtPnNldEhlaWdodChMZW5n
dGgod2lkdGgsIEZpeGVkKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgQVNTRVJUKHBh
cnQgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQgfHwgcGFydCA9PSBNZWRpYVZvbHVtZVNsaWRl
clRodW1iUGFydCk7Ci0gICAgby0+c3R5bGUoKS0+c2V0V2lkdGgoTGVuZ3RoKHdpZHRoLCBGaXhl
ZCkpOwotICAgIG8tPnN0eWxlKCktPnNldEhlaWdodChMZW5ndGgobGVuZ3RoLCBGaXhlZCkpOwor
ICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgod2lkdGgsIEZpeGVkKSk7CisgICAgc3R5bGUtPnNl
dEhlaWdodChMZW5ndGgobGVuZ3RoLCBGaXhlZCkpOwogfQogCiAjaWYgRU5BQkxFKFBST0dSRVNT
X1RBRykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVt
ZUd0azMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5j
cHAKaW5kZXggMWIyYjhjYzc4OGMzNjRjYmFkMzg1YmQyMTIyYWQ1ZGUzMDBhOWVhYS4uZDcwNDFm
NTJhODk5MzIwNGMzNjJjMmFhODI1NzUwYjMxNTVkOTUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHAKQEAgLTY2MywxMiArNjYzLDEyIEBA
IGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50U2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0KiByZW5k
ZXJPYmplY3QsIGNvbnN0IFBhaW50SW5mCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFJl
bmRlclRoZW1lR3RrOjphZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KiByZW5kZXJP
YmplY3QpIGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RTbGlkZXJUaHVtYlNpemUo
UmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdAogewotICAgIENvbnRyb2xQYXJ0IHBhcnQgPSByZW5k
ZXJPYmplY3QtPnN0eWxlKCktPmFwcGVhcmFuY2UoKTsKKyAgICBDb250cm9sUGFydCBwYXJ0ID0g
c3R5bGUtPmFwcGVhcmFuY2UoKTsKICNpZiBFTkFCTEUoVklERU8pCiAgICAgaWYgKHBhcnQgPT0g
TWVkaWFTbGlkZXJUaHVtYlBhcnQpIHsKLSAgICAgICAgYWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNp
emUocmVuZGVyT2JqZWN0KTsKKyAgICAgICAgYWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUoc3R5
bGUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCkBAIC02NzksMTMgKzY3OSwxMyBA
QCB2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0
KiByZW5kZXJPYmplY3QpIGNvbnN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
bGlkZXItbGVuZ3RoIiwgJnNsaWRlckxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTlVMTCk7CiAgICAgaWYgKHBhcnQgPT0gU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCkg
ewotICAgICAgICByZW5kZXJPYmplY3QtPnN0eWxlKCktPnNldFdpZHRoKExlbmd0aChzbGlkZXJM
ZW5ndGgsIEZpeGVkKSk7Ci0gICAgICAgIHJlbmRlck9iamVjdC0+c3R5bGUoKS0+c2V0SGVpZ2h0
KExlbmd0aChzbGlkZXJXaWR0aCwgRml4ZWQpKTsKKyAgICAgICAgc3R5bGUtPnNldFdpZHRoKExl
bmd0aChzbGlkZXJMZW5ndGgsIEZpeGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVu
Z3RoKHNsaWRlcldpZHRoLCBGaXhlZCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIEFT
U0VSVChwYXJ0ID09IFNsaWRlclRodW1iVmVydGljYWxQYXJ0IHx8IHBhcnQgPT0gTWVkaWFWb2x1
bWVTbGlkZXJUaHVtYlBhcnQpOwotICAgIHJlbmRlck9iamVjdC0+c3R5bGUoKS0+c2V0V2lkdGgo
TGVuZ3RoKHNsaWRlcldpZHRoLCBGaXhlZCkpOwotICAgIHJlbmRlck9iamVjdC0+c3R5bGUoKS0+
c2V0SGVpZ2h0KExlbmd0aChzbGlkZXJMZW5ndGgsIEZpeGVkKSk7CisgICAgc3R5bGUtPnNldFdp
ZHRoKExlbmd0aChzbGlkZXJXaWR0aCwgRml4ZWQpKTsKKyAgICBzdHlsZS0+c2V0SGVpZ2h0KExl
bmd0aChzbGlkZXJMZW5ndGgsIEZpeGVkKSk7CiB9CiAKICNpZiBFTkFCTEUoUFJPR1JFU1NfVEFH
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcAppbmRleCA0
ZDE5YWNkOWVmZjhhNDdlMGM0NTQ5OWZhNjViZDQyNzVkYzY4NDZjLi5kYTE5Mzk0YTE3ZDliZmFl
Yjc4NjYwMzEwNWUzNGI5YTAwZmIwZWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9SZW5kZXJUaGVtZVF0LmNwcApAQCAtOTYxLDggKzk2MSw5IEBAIGJvb2wgUmVuZGVyVGhlbWVR
dDo6cGFpbnRTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgcGks
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFJlbmRlclRoZW1lUXQ6OmFkanVzdFNsaWRl
clRodW1iU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVu
dCopIGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lUXQ6OmFkanVzdFNsaWRlclRodW1iU3R5bGUoQ1NT
U3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCogZWxl
bWVudCkgY29uc3QKIHsKKyAgICBSZW5kZXJUaGVtZTo6YWRqdXN0U2xpZGVyVGh1bWJTdHlsZShz
ZWxlY3Rvciwgc3R5bGUsIGVsZW1lbnQpOwogICAgIHN0eWxlLT5zZXRCb3hTaGFkb3cobnVsbHB0
cik7CiB9CiAKQEAgLTE0NjMsNyArMTQ2NCw3IEBAIGJvb2wgUmVuZGVyVGhlbWVRdDo6cGFpbnRN
ZWRpYVNsaWRlclRodW1iKFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBwYWluCiB9
CiAjZW5kaWYKIAotdm9pZCBSZW5kZXJUaGVtZVF0OjphZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVu
ZGVyT2JqZWN0KiBvKSBjb25zdAordm9pZCBSZW5kZXJUaGVtZVF0OjphZGp1c3RTbGlkZXJUaHVt
YlNpemUoUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdAogewogICAgIC8vIHRpbWVsaW5lVGh1bWJI
ZWlnaHQgc2hvdWxkIG1hdGNoIHRoZSBoZWlnaHQgcHJvcGVydHkgb2YgLXdlYmtpdC1tZWRpYS1j
b250cm9scy10aW1lbGluZSBpbiBtZWRpYUNvbnRyb2xzUXQuY3NzLgogICAgIGNvbnN0IGludCB0
aW1lbGluZVRodW1iSGVpZ2h0ID0gMTI7CkBAIC0xNDcxLDI1ICsxNDcyLDI1IEBAIHZvaWQgUmVu
ZGVyVGhlbWVRdDo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCogbykgY29uc3QK
ICAgICAvLyB2b2x1bWVUaHVtYldpZHRoIHNob3VsZCBtYXRjaCB0aGUgd2lkdGggcHJvcGVydHkg
b2YgLXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyIGluIG1lZGlhQ29udHJvbHNR
dC5jc3MuCiAgICAgY29uc3QgaW50IHZvbHVtZVRodW1iV2lkdGggPSAxMjsKICAgICBjb25zdCBp
bnQgdm9sdW1lVGh1bWJIZWlnaHQgPSB2b2x1bWVUaHVtYldpZHRoIC8gMzsKLSAgICBDb250cm9s
UGFydCBwYXJ0ID0gby0+c3R5bGUoKS0+YXBwZWFyYW5jZSgpOworICAgIENvbnRyb2xQYXJ0IHBh
cnQgPSBzdHlsZS0+YXBwZWFyYW5jZSgpOwogCiAgICAgaWYgKHBhcnQgPT0gTWVkaWFTbGlkZXJU
aHVtYlBhcnQpIHsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0V2lkdGgoTGVuZ3RoKHRpbWVsaW5l
VGh1bWJXaWR0aCwgRml4ZWQpKTsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0SGVpZ2h0KExlbmd0
aCh0aW1lbGluZVRodW1iSGVpZ2h0LCBGaXhlZCkpOworICAgICAgICBzdHlsZS0+c2V0V2lkdGgo
TGVuZ3RoKHRpbWVsaW5lVGh1bWJXaWR0aCwgRml4ZWQpKTsKKyAgICAgICAgc3R5bGUtPnNldEhl
aWdodChMZW5ndGgodGltZWxpbmVUaHVtYkhlaWdodCwgRml4ZWQpKTsKICAgICB9IGVsc2UgaWYg
KHBhcnQgPT0gTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQpIHsKLSAgICAgICAgby0+c3R5bGUo
KS0+c2V0SGVpZ2h0KExlbmd0aCh2b2x1bWVUaHVtYkhlaWdodCwgRml4ZWQpKTsKLSAgICAgICAg
by0+c3R5bGUoKS0+c2V0V2lkdGgoTGVuZ3RoKHZvbHVtZVRodW1iV2lkdGgsIEZpeGVkKSk7Cisg
ICAgICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKHZvbHVtZVRodW1iSGVpZ2h0LCBGaXhlZCkp
OworICAgICAgICBzdHlsZS0+c2V0V2lkdGgoTGVuZ3RoKHZvbHVtZVRodW1iV2lkdGgsIEZpeGVk
KSk7CiAgICAgfSBlbHNlIGlmIChwYXJ0ID09IFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQgfHwg
cGFydCA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkgewogICAgICAgICBRU3R5bGVPcHRpb25T
bGlkZXIgb3B0aW9uOwogICAgICAgICBpZiAocGFydCA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFy
dCkKICAgICAgICAgICAgIG9wdGlvbi5vcmllbnRhdGlvbiA9IFF0OjpWZXJ0aWNhbDsKIAotICAg
ICAgICBRU3R5bGUqIHN0eWxlID0gcVN0eWxlKCk7CisgICAgICAgIFFTdHlsZSogcXN0eWxlID0g
cVN0eWxlKCk7CiAKLSAgICAgICAgaW50IHdpZHRoID0gc3R5bGUtPnBpeGVsTWV0cmljKFFTdHls
ZTo6UE1fU2xpZGVyTGVuZ3RoLCAmb3B0aW9uKTsKLSAgICAgICAgaW50IGhlaWdodCA9IHN0eWxl
LT5waXhlbE1ldHJpYyhRU3R5bGU6OlBNX1NsaWRlclRoaWNrbmVzcywgJm9wdGlvbik7Ci0gICAg
ICAgIG8tPnN0eWxlKCktPnNldFdpZHRoKExlbmd0aCh3aWR0aCwgRml4ZWQpKTsKLSAgICAgICAg
by0+c3R5bGUoKS0+c2V0SGVpZ2h0KExlbmd0aChoZWlnaHQsIEZpeGVkKSk7CisgICAgICAgIGlu
dCB3aWR0aCA9IHFzdHlsZS0+cGl4ZWxNZXRyaWMoUVN0eWxlOjpQTV9TbGlkZXJMZW5ndGgsICZv
cHRpb24pOworICAgICAgICBpbnQgaGVpZ2h0ID0gcXN0eWxlLT5waXhlbE1ldHJpYyhRU3R5bGU6
OlBNX1NsaWRlclRoaWNrbmVzcywgJm9wdGlvbik7CisgICAgICAgIHN0eWxlLT5zZXRXaWR0aChM
ZW5ndGgod2lkdGgsIEZpeGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKGhl
aWdodCwgRml4ZWQpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZWRpYUNvbnRyb2xzLmNwcAppbmRleCA3NTcwZjI5OTMwOTI3ZDhmMDJlOTU2ZjM4
OWZhMjQ4NmRjY2Q4NWE0Li45MmFhMmFiZDAxNzI3ZTVjNjljNDM4OGRiZDU5MWQyZjQ5ZmVhY2Rh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9s
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMu
Y3BwCkBAIC04OCwxOSArODgsMTggQEAgc3RhdGljIEZsb2F0UmVjdCBnZXRVbnpvb21lZFJlY3RB
bmRBZGp1c3RDdXJyZW50Q29udGV4dChSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFAKIHN0YXRpYyBj
b25zdCBpbnQgbWVkaWFTbGlkZXJUaHVtYldpZHRoID0gMTM7CiBzdGF0aWMgY29uc3QgaW50IG1l
ZGlhU2xpZGVyVGh1bWJIZWlnaHQgPSAxNDsKIAotdm9pZCBSZW5kZXJNZWRpYUNvbnRyb2xzOjph
ZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShSZW5kZXJPYmplY3QqIG8pCit2b2lkIFJlbmRlck1l
ZGlhQ29udHJvbHM6OmFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKiBzdHls
ZSkKIHsKLSAgICBDb250cm9sUGFydCBwYXJ0ID0gby0+c3R5bGUoKS0+YXBwZWFyYW5jZSgpOwot
CisgICAgQ29udHJvbFBhcnQgcGFydCA9IHN0eWxlLT5hcHBlYXJhbmNlKCk7CiAgICAgaWYgKHBh
cnQgIT0gTWVkaWFTbGlkZXJUaHVtYlBhcnQgJiYgcGFydCAhPSBNZWRpYVZvbHVtZVNsaWRlclRo
dW1iUGFydCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQ0dTaXplIHNpemU7CiAgICAgd2tNZWFz
dXJlTWVkaWFVSVBhcnQocGFydCA9PSBNZWRpYVNsaWRlclRodW1iUGFydCA/IE1lZGlhU2xpZGVy
VGh1bWIgOiBNZWRpYVZvbHVtZVNsaWRlclRodW1iLCBXS01lZGlhQ29udHJvbGxlclRoZW1lUXVp
Y2tUaW1lLCAwLCAmc2l6ZSk7CiAKLSAgICBmbG9hdCB6b29tTGV2ZWwgPSBvLT5zdHlsZSgpLT5l
ZmZlY3RpdmVab29tKCk7Ci0gICAgby0+c3R5bGUoKS0+c2V0V2lkdGgoTGVuZ3RoKHN0YXRpY19j
YXN0PGludD4oc2l6ZS53aWR0aCAqIHpvb21MZXZlbCksIEZpeGVkKSk7Ci0gICAgby0+c3R5bGUo
KS0+c2V0SGVpZ2h0KExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KHNpemUuaGVpZ2h0ICogem9vbUxl
dmVsKSwgRml4ZWQpKTsKKyAgICBmbG9hdCB6b29tTGV2ZWwgPSBzdHlsZS0+ZWZmZWN0aXZlWm9v
bSgpOworICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgoc3RhdGljX2Nhc3Q8aW50PihzaXplLndp
ZHRoICogem9vbUxldmVsKSwgRml4ZWQpKTsKKyAgICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aChz
dGF0aWNfY2FzdDxpbnQ+KHNpemUuaGVpZ2h0ICogem9vbUxldmVsKSwgRml4ZWQpKTsKIH0KIAog
Ym9vbCBSZW5kZXJNZWRpYUNvbnRyb2xzOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KE1lZGlhQ29u
dHJvbEVsZW1lbnRUeXBlIHBhcnQsIFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBw
YWludEluZm8sIGNvbnN0IEludFJlY3QmIHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck1lZGlhQ29udHJvbHMuaAppbmRleCAzZDNiMDE3NjU0ZWY0MjkxOTVjZGY0YjQ5OGYx
ZWIxNDRjYjE4NzcwLi5mOWQzZjNkNzgyN2EzZDg3NWQyZmNmYjlkNjI3YWI3MzdiOTJjMzg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzLmgKQEAg
LTQwLDcgKzQwLDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHN0YXRpYyBi
b29sIHBhaW50TWVkaWFDb250cm9sc1BhcnQoTWVkaWFDb250cm9sRWxlbWVudFR5cGUsIFJlbmRl
ck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKLSAgICBzdGF0aWMg
dm9pZCBhZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0
aWMgdm9pZCBhZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSopOwogI2VuZGlm
CiAgICAgc3RhdGljIEludFBvaW50IHZvbHVtZVNsaWRlck9mZnNldEZyb21NdXRlQnV0dG9uKFJl
bmRlckJveCosIGNvbnN0IEludFNpemUmKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwCmluZGV4IDQwZWU5
YjBhYjhhM2E2OThhZGM0MDEyMTYxMWQ3YTYyNDBhMDQ0NTQuLmRlNWY1OTQ4M2EwYjA3YTE2N2U5
ODJhYWI0ZmQ1NjU0YWNlNmFjZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwCkBAIC0yODAsMjEgKzI4MCwy
MSBAQCBib29sIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6cGFpbnRNZWRpYUNvbnRyb2xz
UGFydChNZWRpYUNvbnRyb2xFbGVtZW50VHlwZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9p
ZCBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXpl
KFJlbmRlck9iamVjdCogb2JqZWN0KQordm9pZCBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06
OmFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKiBzdHlsZSkKIHsKICAgICBz
dGF0aWMgSW1hZ2UqIG1lZGlhU2xpZGVyVGh1bWIgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYVNs
aWRlclRodW1iIik7CiAgICAgc3RhdGljIEltYWdlKiBtZWRpYVZvbHVtZVNsaWRlclRodW1iID0g
cGxhdGZvcm1SZXNvdXJjZSgibWVkaWFWb2x1bWVTbGlkZXJUaHVtYiIpOwogCiAgICAgSW1hZ2Uq
IHRodW1iSW1hZ2UgPSAwOwotICAgIGlmIChvYmplY3QtPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9
PSBNZWRpYVNsaWRlclRodW1iUGFydCkKKyAgICBpZiAoc3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBN
ZWRpYVNsaWRlclRodW1iUGFydCkKICAgICAgICAgdGh1bWJJbWFnZSA9IG1lZGlhU2xpZGVyVGh1
bWI7Ci0gICAgZWxzZSBpZiAob2JqZWN0LT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFW
b2x1bWVTbGlkZXJUaHVtYlBhcnQpCisgICAgZWxzZSBpZiAoc3R5bGUtPmFwcGVhcmFuY2UoKSA9
PSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydCkKICAgICAgICAgdGh1bWJJbWFnZSA9IG1lZGlh
Vm9sdW1lU2xpZGVyVGh1bWI7CiAKLSAgICBmbG9hdCB6b29tTGV2ZWwgPSBvYmplY3QtPnN0eWxl
KCktPmVmZmVjdGl2ZVpvb20oKTsKKyAgICBmbG9hdCB6b29tTGV2ZWwgPSBzdHlsZS0+ZWZmZWN0
aXZlWm9vbSgpOwogICAgIGlmICh0aHVtYkltYWdlKSB7Ci0gICAgICAgIG9iamVjdC0+c3R5bGUo
KS0+c2V0V2lkdGgoTGVuZ3RoKHN0YXRpY19jYXN0PGludD4odGh1bWJJbWFnZS0+d2lkdGgoKSAq
IHpvb21MZXZlbCksIEZpeGVkKSk7Ci0gICAgICAgIG9iamVjdC0+c3R5bGUoKS0+c2V0SGVpZ2h0
KExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KHRodW1iSW1hZ2UtPmhlaWdodCgpICogem9vbUxldmVs
KSwgRml4ZWQpKTsKKyAgICAgICAgc3R5bGUtPnNldFdpZHRoKExlbmd0aChzdGF0aWNfY2FzdDxp
bnQ+KHRodW1iSW1hZ2UtPndpZHRoKCkgKiB6b29tTGV2ZWwpLCBGaXhlZCkpOworICAgICAgICBz
dHlsZS0+c2V0SGVpZ2h0KExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KHRodW1iSW1hZ2UtPmhlaWdo
dCgpICogem9vbUxldmVsKSwgRml4ZWQpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uaAppbmRleCA4
OTVhYzQzOWIwMmQ5OTE4YjM1MWI4NjIwZTAyM2NlOTExYjFkMDVhLi45YWY5Mzk2MGZmZWZjY2U5
OWFmMTI2NDM4NGVkMzM0MTZhMmQ5ZjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5oCkBAIC0zNyw3ICszNyw3IEBA
IGNsYXNzIEhUTUxNZWRpYUVsZW1lbnQ7CiBjbGFzcyBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21p
dW0gewogcHVibGljOgogICAgIHN0YXRpYyBib29sIHBhaW50TWVkaWFDb250cm9sc1BhcnQoTWVk
aWFDb250cm9sRWxlbWVudFR5cGUsIFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNv
bnN0IEludFJlY3QmKTsKLSAgICBzdGF0aWMgdm9pZCBhZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6
ZShSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBhZGp1c3RNZWRpYVNsaWRlclRodW1i
U2l6ZShSZW5kZXJTdHlsZSopOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAppbmRleCA1NDQ5YzQxMmJmMjQ5YzY3
MDAwOTk0MzYwMzMwZGFiZjdlNjE4NmQ3Li4yYjg0OTk5OGI3Y2FiMWNhMjc4Y2Y1ZjBhZWMzZDZi
OGI5OTNmNWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xp
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcApA
QCAtMTM2LDEwICsxMzYsOCBAQCB2b2lkIFJlbmRlclNsaWRlcjo6bGF5b3V0KCkKIAogICAgIGlm
ICh0aHVtYikgewogICAgICAgICAvLyBBbGxvdyB0aGUgdGhlbWUgdG8gc2V0IHRoZSBzaXplIG9m
IHRoZSB0aHVtYi4KLSAgICAgICAgaWYgKHRodW1iLT5zdHlsZSgpLT5oYXNBcHBlYXJhbmNlKCkp
IHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBwYXNzIHRoZSBzdHlsZSwgbm90
IHRoZSByZW5kZXJlciwgdG8gdGhlIHRoZW1lLgotICAgICAgICAgICAgdGhlbWUoKS0+YWRqdXN0
U2xpZGVyVGh1bWJTaXplKHRodW1iKTsKLSAgICAgICAgfQorICAgICAgICBpZiAodGh1bWItPnN0
eWxlKCktPmhhc0FwcGVhcmFuY2UoKSkKKyAgICAgICAgICAgIHRoZW1lKCktPmFkanVzdFNsaWRl
clRodW1iU2l6ZSh0aHVtYi0+c3R5bGUoKSk7CiAKICAgICAgICAgYmFzZVNpemUuZXhwYW5kKHRo
dW1iLT5zdHlsZSgpLT53aWR0aCgpLmNhbGNNaW5WYWx1ZSgwKSwgdGh1bWItPnN0eWxlKCktPmhl
aWdodCgpLmNhbGNNaW5WYWx1ZSgwKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZS5jcHAKaW5kZXggY2I2ZTQ4NDA3Nzk4OTYyMTY1NjAyODc5M2Y5YzBkMjhkMWQ2
ZjRmMy4uZWUyZDBiODhkMzJkMjczYjQ3ODM0ZDJiMmRiMGY2Yjg5YTI5MTk2ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCkBAIC05NjksOSArOTY5LDEwIEBAIHZv
aWQgUmVuZGVyVGhlbWU6OmFkanVzdFNsaWRlclRyYWNrU3R5bGUoQ1NTU3R5bGVTZWxlY3Rvcios
IFJlbmRlclN0eWxlKiwgRWxlbWVuCiAKIHZvaWQgUmVuZGVyVGhlbWU6OmFkanVzdFNsaWRlclRo
dW1iU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0
CiB7CisgICAgLy8gRklYTUU6IFNob3VsZCBjYWxsIGFkanVzdFNsaWRlclRodW1iU2l6ZSgpLgog
fQogCi12b2lkIFJlbmRlclRoZW1lOjphZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0
KikgY29uc3QKK3ZvaWQgUmVuZGVyVGhlbWU6OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJT
dHlsZSopIGNvbnN0CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgK
aW5kZXggYmY0ZmI0MmQ2MjBkYjJmY2QyZWI5M2JiNDJmZThiOTM0ZTI4ZGY0MC4uN2RmZTA1NjRh
NTZhYzczN2U0Y2YzOTEzNWNjMzlmMzAyMWMyNjc2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmgKQEAgLTE2MCw3ICsxNjAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGludCBtaW5pbXVtTWVudUxpc3RTaXplKFJlbmRlclN0eWxlKikgY29uc3QgeyByZXR1cm4gMDsg
fQogCi0gICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJPYmplY3Qq
KSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlclN0
eWxlKikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGludCBwb3B1cEludGVybmFsUGFkZGluZ0xlZnQo
UmVuZGVyU3R5bGUqKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBpbnQgcG9wdXBJ
bnRlcm5hbFBhZGRpbmdSaWdodChSZW5kZXJTdHlsZSopIGNvbnN0IHsgcmV0dXJuIDA7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGlu
dXguY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51
eC5jcHAKaW5kZXggYzNmMTVjODdhOWQ0MzQ4N2FlYzY5MzljZGYyMzMzNzhhOTk5ZDBiMi4uN2Fm
MTRjMmU4NDQ2OTUxZjE0ZTA0MTNjZTJmZDIzZTZhNWZiYmRjMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5jcHAKQEAgLTE0
MywxOCArMTQzLDE4IEBAIENvbG9yIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6cGxhdGZvcm1J
bmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0CiAgICAgcmV0dXJuIG1faW5h
Y3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3I7CiB9CiAKLXZvaWQgUmVuZGVyVGhlbWVDaHJv
bWl1bUxpbnV4OjphZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KiBvKSBjb25zdAor
dm9pZCBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5k
ZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7CiAgICAgSW50U2l6ZSBzaXplID0gUGxhdGZvcm1Ccmlk
Z2U6OmdldFRoZW1lUGFydFNpemUoUGxhdGZvcm1CcmlkZ2U6OlBhcnRTbGlkZXJUaHVtYik7CiAK
LSAgICBpZiAoby0+c3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IFNsaWRlclRodW1iSG9yaXpvbnRh
bFBhcnQpIHsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0V2lkdGgoTGVuZ3RoKHNpemUud2lkdGgo
KSwgRml4ZWQpKTsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0SGVpZ2h0KExlbmd0aChzaXplLmhl
aWdodCgpLCBGaXhlZCkpOwotICAgIH0gZWxzZSBpZiAoby0+c3R5bGUoKS0+YXBwZWFyYW5jZSgp
ID09IFNsaWRlclRodW1iVmVydGljYWxQYXJ0KSB7Ci0gICAgICAgIG8tPnN0eWxlKCktPnNldFdp
ZHRoKExlbmd0aChzaXplLmhlaWdodCgpLCBGaXhlZCkpOwotICAgICAgICBvLT5zdHlsZSgpLT5z
ZXRIZWlnaHQoTGVuZ3RoKHNpemUud2lkdGgoKSwgRml4ZWQpKTsKKyAgICBpZiAoc3R5bGUtPmFw
cGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0KSB7CisgICAgICAgIHN0eWxl
LT5zZXRXaWR0aChMZW5ndGgoc2l6ZS53aWR0aCgpLCBGaXhlZCkpOworICAgICAgICBzdHlsZS0+
c2V0SGVpZ2h0KExlbmd0aChzaXplLmhlaWdodCgpLCBGaXhlZCkpOworICAgIH0gZWxzZSBpZiAo
c3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkgeworICAgICAg
ICBzdHlsZS0+c2V0V2lkdGgoTGVuZ3RoKHNpemUuaGVpZ2h0KCksIEZpeGVkKSk7CisgICAgICAg
IHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKHNpemUud2lkdGgoKSwgRml4ZWQpKTsKICAgICB9IGVs
c2UKLSAgICAgICAgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OmFkanVzdFNsaWRlclRodW1iU2l6
ZShvKTsKKyAgICAgICAgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OmFkanVzdFNsaWRlclRodW1i
U2l6ZShzdHlsZSk7CiB9CiAKIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpzdXBwb3J0
c0NvbnRyb2xUaW50cygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmgKaW5kZXggOGYzZWI5ODJmM2NmNTFkZmM5MTk5MjBi
M2IwN2EzZmIxZmJkZjljOC4uMDk5MDAxZGZkNzI3MTliZTQzNDQ0NGQyZTcyZjIzZGEzNmJjMDQw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21p
dW1MaW51eC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9t
aXVtTGludXguaApAQCAtNTQsNyArNTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBj
b25zdDsKICAgICAgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKCkgY29uc3Q7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRl
clRodW1iU2l6ZShSZW5kZXJPYmplY3QqKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGFk
anVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSopIGNvbnN0OwogCiAgICAgICAgIHN0YXRp
YyB2b2lkIHNldENhcmV0QmxpbmtJbnRlcnZhbChkb3VibGUgaW50ZXJ2YWwpOwogICAgICAgICB2
aXJ0dWFsIGRvdWJsZSBjYXJldEJsaW5rSW50ZXJ2YWxJbnRlcm5hbCgpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmgKaW5kZXgg
ODRiNGRiZDYzZjg0YzkxOTBmNTAxN2U0YmY2YTNiNmU5YmZiNGUwNC4uMzQ4NTNjMDZiMzI1NTVk
NmM3ZmYwODk3ODk2MTMxYzAzMzEyNGU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oCkBAIC0zMyw3ICszMyw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJUaGVtZT4gY3JlYXRlKCk7CiBwcm90ZWN0ZWQ6
CiAjaWYgRU5BQkxFKFZJREVPKQotICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RNZWRpYVNsaWRlclRo
dW1iU2l6ZShSZW5kZXJPYmplY3QqKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0TWVk
aWFTbGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wg
cGFpbnRNZWRpYVBsYXlCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29u
c3QgSW50UmVjdCYpOwogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhTXV0ZUJ1dHRvbihSZW5k
ZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgdmlydHVh
bCBib29sIHBhaW50TWVkaWFTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludElu
Zm8mLCBjb25zdCBJbnRSZWN0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCmluZGV4IDYwNjc5N2E2YjI0MDQ1NTY4NGM5Yjg4MTUz
M2U5YWExYzdlMGRjYTIuLmUzNGZiOTA2Nzc2NGM4NjljMzE3NDU2Y2JlMDcwN2NhZTI2M2QxNWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
TWFjLm1tCkBAIC0xMjIsOSArMTIyLDkgQEAgdm9pZCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjp1
cGRhdGVBY3RpdmVTdGF0ZShOU0NlbGwqIGNlbGwsIGNvbnN0IFJlbmRlck9iamVjdCoKIAogI2lm
IEVOQUJMRShWSURFTykKIAotdm9pZCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjphZGp1c3RNZWRp
YVNsaWRlclRodW1iU2l6ZShSZW5kZXJPYmplY3QqIG8pIGNvbnN0Cit2b2lkIFJlbmRlclRoZW1l
Q2hyb21pdW1NYWM6OmFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKFJlbmRlck9TdHlsZSogc3R5
bGUpIGNvbnN0CiB7Ci0gICAgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjphZGp1c3RNZWRp
YVNsaWRlclRodW1iU2l6ZShvKTsKKyAgICBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmFk
anVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKHN0eWxlKTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZUNo
cm9taXVtTWFjOjpwYWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29u
c3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcAppbmRl
eCBjYWZjMzRkMzEyZTEyOTFlNzc2YzllOWMzZDIxMDRhYmU0OGQ5ZGViLi5lMmJjZmYyZGI4NmM1
NTdkYzAwNWI4Yzg5Y2YwYjBiNDk1ZWFmYWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAKQEAgLTQwNywxMiArNDA3LDEy
IEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJU
cmFjayhSZW5kZXJPYmplY3QqIG9iamVjdCwKICNlbmRpZgogfQogCi12b2lkIFJlbmRlclRoZW1l
Q2hyb21pdW1Ta2lhOjphZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KiBvYmplY3Qp
IGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjphZGp1c3RTbGlkZXJUaHVtYlNp
emUoUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdAogewogI2lmIEVOQUJMRShWSURFTykKLSAgICBS
ZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKG9i
amVjdCk7CisgICAgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjphZGp1c3RNZWRpYVNsaWRl
clRodW1iU2l6ZShzdHlsZSk7CiAjZWxzZQotICAgIFVOVVNFRF9QQVJBTShvYmplY3QpOworICAg
IFVOVVNFRF9QQVJBTShzdHlsZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuaAppbmRleCAyZmFmMDY0NGVjMjcz
ZGYyMWY3M2ZlMmY4Y2Y4NWEwNmYwZTg1YWExLi4wYzk5OGIzMjY1NDFmZGFjNDliODJlY2I0NTRm
OTA4ZTk5ODNkYWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVDaHJvbWl1bVNraWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVDaHJvbWl1bVNraWEuaApAQCAtOTEsNyArOTEsNyBAQCBjbGFzcyBSZW5kZXJUaGVtZUNo
cm9taXVtU2tpYSA6IHB1YmxpYyBSZW5kZXJUaGVtZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBw
YWludE1lZGlhQ29udHJvbHNCYWNrZ3JvdW5kKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5m
byYsIGNvbnN0IEludFJlY3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFTbGlk
ZXJUcmFjayhSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhVm9sdW1lU2xpZGVyVHJhY2soUmVuZGVy
T2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwotICAgICAgICB2aXJ0
dWFsIHZvaWQgYWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCopIGNvbnN0OworICAg
ICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKikgY29u
c3Q7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhU2xpZGVyVGh1bWIoUmVuZGVyT2Jq
ZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgICAgICB2aXJ0dWFs
IGJvb2wgcGFpbnRNZWRpYVZvbHVtZVNsaWRlclRodW1iKFJlbmRlck9iamVjdCosIGNvbnN0IFBh
aW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIHBhaW50TWVk
aWFQbGF5QnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJl
Y3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNo
cm9taXVtV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9t
aXVtV2luLmNwcAppbmRleCA1M2VjOWNiZWMzODMzOWYxZWM4M2EyMzgxODA2MjQxZTA3ZDM4OGRj
Li5mMjg5NjM3ODUzYzgzMWMyNGQ4ZTc1YmE3ZjZiYTg2NGYzMWQ2ZDExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uY3BwCkBAIC0z
OTcsMTkgKzM5NywxOSBAQCBDb2xvciBSZW5kZXJUaGVtZUNocm9taXVtV2luOjpzeXN0ZW1Db2xv
cihpbnQgY3NzVmFsdWVJZCkgY29uc3QKICAgICByZXR1cm4gQ29sb3IoR2V0UlZhbHVlKGNvbG9y
KSwgR2V0R1ZhbHVlKGNvbG9yKSwgR2V0QlZhbHVlKGNvbG9yKSk7CiB9CiAKLXZvaWQgUmVuZGVy
VGhlbWVDaHJvbWl1bVdpbjo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCogbykg
Y29uc3QKK3ZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6YWRqdXN0U2xpZGVyVGh1bWJTaXpl
KFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKIHsKICAgICAvLyBUaGVzZSBzaXplcyBtYXRjaCB3
aGF0IFdpblhQIGRyYXdzIGZvciB2YXJpb3VzIG1lbnVzLgogICAgIGNvbnN0IGludCBzbGlkZXJU
aHVtYkFsb25nQXhpcyA9IDExOwogICAgIGNvbnN0IGludCBzbGlkZXJUaHVtYkFjcm9zc0F4aXMg
PSAyMTsKLSAgICBpZiAoby0+c3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IFNsaWRlclRodW1iSG9y
aXpvbnRhbFBhcnQpIHsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0V2lkdGgoTGVuZ3RoKHNsaWRl
clRodW1iQWxvbmdBeGlzLCBGaXhlZCkpOwotICAgICAgICBvLT5zdHlsZSgpLT5zZXRIZWlnaHQo
TGVuZ3RoKHNsaWRlclRodW1iQWNyb3NzQXhpcywgRml4ZWQpKTsKLSAgICB9IGVsc2UgaWYgKG8t
PnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkgewotICAg
ICAgICBvLT5zdHlsZSgpLT5zZXRXaWR0aChMZW5ndGgoc2xpZGVyVGh1bWJBY3Jvc3NBeGlzLCBG
aXhlZCkpOwotICAgICAgICBvLT5zdHlsZSgpLT5zZXRIZWlnaHQoTGVuZ3RoKHNsaWRlclRodW1i
QWxvbmdBeGlzLCBGaXhlZCkpOworICAgIGlmIChzdHlsZS0+YXBwZWFyYW5jZSgpID09IFNsaWRl
clRodW1iSG9yaXpvbnRhbFBhcnQpIHsKKyAgICAgICAgc3R5bGUtPnNldFdpZHRoKExlbmd0aChz
bGlkZXJUaHVtYkFsb25nQXhpcywgRml4ZWQpKTsKKyAgICAgICAgc3R5bGUtPnNldEhlaWdodChM
ZW5ndGgoc2xpZGVyVGh1bWJBY3Jvc3NBeGlzLCBGaXhlZCkpOworICAgIH0gZWxzZSBpZiAoc3R5
bGUtPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkgeworICAgICAgICBz
dHlsZS0+c2V0V2lkdGgoTGVuZ3RoKHNsaWRlclRodW1iQWNyb3NzQXhpcywgRml4ZWQpKTsKKyAg
ICAgICAgc3R5bGUtPnNldEhlaWdodChMZW5ndGgoc2xpZGVyVGh1bWJBbG9uZ0F4aXMsIEZpeGVk
KSk7CiAgICAgfSBlbHNlCi0gICAgICAgIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjphZGp1c3RT
bGlkZXJUaHVtYlNpemUobyk7CisgICAgICAgIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjphZGp1
c3RTbGlkZXJUaHVtYlNpemUoc3R5bGUpOwogfQogCiBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1X
aW46OnBhaW50Q2hlY2tib3goUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIGksIGNv
bnN0IEludFJlY3QmIHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVDaHJvbWl1bVdpbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lQ2hyb21pdW1XaW4uaAppbmRleCA2NjFiNjIzOWRmNTRjYmE4MDIzNTU4YmFiYWVmYWZjZWQ4
ODMyNGE3Li5jNDdhNjc5MTBkODA3OGE2ZWJiN2FhNTczMmZmMzQxYTk1ZTVlZTQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmgKQEAg
LTYxLDcgKzYxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQg
c3lzdGVtRm9udChpbnQgcHJvcElkLCBGb250RGVzY3JpcHRpb24mKSBjb25zdDsKICAgICAgICAg
dmlydHVhbCBDb2xvciBzeXN0ZW1Db2xvcihpbnQgY3NzVmFsdWVJZCkgY29uc3Q7CiAKLSAgICAg
ICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJPYmplY3QqKSBjb25z
dDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHls
ZSopIGNvbnN0OwogCiAgICAgICAgIC8vIFZhcmlvdXMgcGFpbnQgZnVuY3Rpb25zLgogICAgICAg
ICB2aXJ0dWFsIGJvb2wgcGFpbnRDaGVja2JveChSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludElu
Zm8mLCBjb25zdCBJbnRSZWN0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZU1hYy5oCmluZGV4IDhhMTdhY2Y4MzNjYjA3ZDVmYThiNjFkMmFhYTRjNmMyYTcxODU0YWEuLmI5
MjNiM2UyZjk2NzY1YjE4N2RmMGRmYjRjMzU4NTJjMGY2MjNmYWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgaW50IG1pbmltdW1NZW51TGlzdFNpemUoUmVuZGVyU3R5bGUqKSBjb25zdDsK
IAotICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0Kikg
Y29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHls
ZSopIGNvbnN0OwogICAgIAogICAgIHZpcnR1YWwgaW50IHBvcHVwSW50ZXJuYWxQYWRkaW5nTGVm
dChSZW5kZXJTdHlsZSopIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IHBvcHVwSW50ZXJuYWxQYWRk
aW5nUmlnaHQoUmVuZGVyU3R5bGUqKSBjb25zdDsKQEAgLTE3MCw3ICsxNzAsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgdmlydHVhbCBib29sIGhhc093bkRpc2FibGVkU3RhdGVIYW5kbGluZ0ZvcihDb250
cm9sUGFydCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHVzZXNNZWRpYUNvbnRyb2xTdGF0dXNE
aXNwbGF5KCk7CiAgICAgdmlydHVhbCBib29sIHVzZXNNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXIo
KSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUoUmVu
ZGVyT2JqZWN0KikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGFkanVzdE1lZGlhU2xpZGVyVGh1
bWJTaXplKFJlbmRlclN0eWxlKikgY29uc3Q7CiAgICAgdmlydHVhbCBJbnRQb2ludCB2b2x1bWVT
bGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbihSZW5kZXJCb3gqLCBjb25zdCBJbnRTaXplJikgY29u
c3Q7CiAjZW5kaWYKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5tbQppbmRleCBkMGZjOWViNjIxMWUyNWU1MjllNTQ5NTEwNTMxNzYxMzQwYmQ4ZTU2Li4xZDIy
Nzc3MmNjN2Y1ZWM3MjBlNzgwZTYyZTY5MDM4NTFkOThjNTM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC0xMjg5LDggKzEyODksOSBAQCBib29sIFJl
bmRlclRoZW1lTWFjOjpwYWludFNsaWRlclRyYWNrKFJlbmRlck9iamVjdCogbywgY29uc3QgUGFp
bnRJbmZvJiBwYWludEluZgogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBSZW5kZXJUaGVt
ZU1hYzo6YWRqdXN0U2xpZGVyVGh1bWJTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5
bGUqIHN0eWxlLCBFbGVtZW50KikgY29uc3QKK3ZvaWQgUmVuZGVyVGhlbWVNYWM6OmFkanVzdFNs
aWRlclRodW1iU3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxlKiBz
dHlsZSwgRWxlbWVudCogZWxlbWVudCkgY29uc3QKIHsKKyAgICBSZW5kZXJUaGVtZTo6YWRqdXN0
U2xpZGVyVGh1bWJTdHlsZShzZWxlY3Rvciwgc3R5bGUsIGVsZW1lbnQpOwogICAgIHN0eWxlLT5z
ZXRCb3hTaGFkb3cobnVsbHB0cik7CiB9CiAKQEAgLTE2NDMsNDAgKzE2NDQsNDAgQEAgY29uc3Qg
aW50IHNsaWRlclRodW1iSGVpZ2h0ID0gMTU7CiBjb25zdCBpbnQgbWVkaWFTbGlkZXJUaHVtYldp
ZHRoID0gMTM7CiBjb25zdCBpbnQgbWVkaWFTbGlkZXJUaHVtYkhlaWdodCA9IDE0OwogCi12b2lk
IFJlbmRlclRoZW1lTWFjOjphZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KiBvKSBj
b25zdAordm9pZCBSZW5kZXJUaGVtZU1hYzo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlclN0
eWxlKiBzdHlsZSkgY29uc3QKIHsKLSAgICBmbG9hdCB6b29tTGV2ZWwgPSBvLT5zdHlsZSgpLT5l
ZmZlY3RpdmVab29tKCk7Ci0gICAgaWYgKG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBTbGlk
ZXJUaHVtYkhvcml6b250YWxQYXJ0IHx8IG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBTbGlk
ZXJUaHVtYlZlcnRpY2FsUGFydCkgewotICAgICAgICBvLT5zdHlsZSgpLT5zZXRXaWR0aChMZW5n
dGgoc3RhdGljX2Nhc3Q8aW50PihzbGlkZXJUaHVtYldpZHRoICogem9vbUxldmVsKSwgRml4ZWQp
KTsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0SGVpZ2h0KExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+
KHNsaWRlclRodW1iSGVpZ2h0ICogem9vbUxldmVsKSwgRml4ZWQpKTsKKyAgICBmbG9hdCB6b29t
TGV2ZWwgPSBzdHlsZS0+ZWZmZWN0aXZlWm9vbSgpOworICAgIGlmIChzdHlsZS0+YXBwZWFyYW5j
ZSgpID09IFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQgfHwgc3R5bGUtPmFwcGVhcmFuY2UoKSA9
PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkgeworICAgICAgICBzdHlsZS0+c2V0V2lkdGgoTGVu
Z3RoKHN0YXRpY19jYXN0PGludD4oc2xpZGVyVGh1bWJXaWR0aCAqIHpvb21MZXZlbCksIEZpeGVk
KSk7CisgICAgICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKHN0YXRpY19jYXN0PGludD4oc2xp
ZGVyVGh1bWJIZWlnaHQgKiB6b29tTGV2ZWwpLCBGaXhlZCkpOwogICAgIH0gCiAKICNpZiBFTkFC
TEUoVklERU8pCi0gICAgYWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUobyk7CisgICAgYWRqdXN0
TWVkaWFTbGlkZXJUaHVtYlNpemUoc3R5bGUpOwogI2VuZGlmCiB9CiAKICNpZiBFTkFCTEUoVklE
RU8pCiAKLXZvaWQgUmVuZGVyVGhlbWVNYWM6OmFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKFJl
bmRlck9iamVjdCogbykgY29uc3QKK3ZvaWQgUmVuZGVyVGhlbWVNYWM6OmFkanVzdE1lZGlhU2xp
ZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKIHsKLSAgICBDb250cm9sUGFy
dCBwYXJ0ID0gby0+c3R5bGUoKS0+YXBwZWFyYW5jZSgpOworICAgIENvbnRyb2xQYXJ0IHBhcnQg
PSBzdHlsZS0+YXBwZWFyYW5jZSgpOwogCiAgICAgaWYgKHBhcnQgPT0gTWVkaWFTbGlkZXJUaHVt
YlBhcnQgfHwgcGFydCA9PSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydCkgewogICAgICAgICBp
bnQgd2lkdGggPSBtZWRpYVNsaWRlclRodW1iV2lkdGg7CiAgICAgICAgIGludCBoZWlnaHQgPSBt
ZWRpYVNsaWRlclRodW1iSGVpZ2h0OwogICAgICAgICAKICAgICAgICAgaWYgKG1lZGlhQ29udHJv
bGxlclRoZW1lKCkgPT0gTWVkaWFDb250cm9sbGVyVGhlbWVRdWlja1RpbWUpIHsKLSAgICAgICAg
ICAgIENHU2l6ZSAgc2l6ZTsKKyAgICAgICAgICAgIENHU2l6ZSBzaXplOwogICAgICAgICAgICAg
CiAgICAgICAgICAgICB3a01lYXN1cmVNZWRpYVVJUGFydChwYXJ0ID09IE1lZGlhU2xpZGVyVGh1
bWJQYXJ0ID8gTWVkaWFTbGlkZXJUaHVtYiA6IE1lZGlhVm9sdW1lU2xpZGVyVGh1bWIsIE1lZGlh
Q29udHJvbGxlclRoZW1lUXVpY2tUaW1lLCBOVUxMLCAmc2l6ZSk7CiAgICAgICAgICAgICB3aWR0
aCA9IHNpemUud2lkdGg7CiAgICAgICAgICAgICBoZWlnaHQgPSBzaXplLmhlaWdodDsKICAgICAg
ICAgfQogCi0gICAgICAgIGZsb2F0IHpvb21MZXZlbCA9IG8tPnN0eWxlKCktPmVmZmVjdGl2ZVpv
b20oKTsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0V2lkdGgoTGVuZ3RoKHN0YXRpY19jYXN0PGlu
dD4od2lkdGggKiB6b29tTGV2ZWwpLCBGaXhlZCkpOwotICAgICAgICBvLT5zdHlsZSgpLT5zZXRI
ZWlnaHQoTGVuZ3RoKHN0YXRpY19jYXN0PGludD4oaGVpZ2h0ICogem9vbUxldmVsKSwgRml4ZWQp
KTsKKyAgICAgICAgZmxvYXQgem9vbUxldmVsID0gc3R5bGUtPmVmZmVjdGl2ZVpvb20oKTsKKyAg
ICAgICAgc3R5bGUtPnNldFdpZHRoKExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KHdpZHRoICogem9v
bUxldmVsKSwgRml4ZWQpKTsKKyAgICAgICAgc3R5bGUtPnNldEhlaWdodChMZW5ndGgoc3RhdGlj
X2Nhc3Q8aW50PihoZWlnaHQgKiB6b29tTGV2ZWwpLCBGaXhlZCkpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJpLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVNhZmFyaS5jcHAKaW5kZXggMWE4
OTM0NTUyZWNiMjVjNmUxZjFiY2IwMTBkMWU5ZTEyZjZhMzQzZi4uZWU1ZTY4YTk2N2RhZjdmOTZk
NWE5NWJkYzgxNTc4ODBjYWIxMDQxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lU2FmYXJpLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVTYWZhcmkuY3BwCkBAIC05OTAsNiArOTkwLDcgQEAgYm9vbCBSZW5kZXJUaGVt
ZVNhZmFyaTo6cGFpbnRTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5m
byYgcGFpbnQKIAogdm9pZCBSZW5kZXJUaGVtZVNhZmFyaTo6YWRqdXN0U2xpZGVyVGh1bWJTdHls
ZShDU1NTdHlsZVNlbGVjdG9yKiBzZWxlY3RvciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50
KiBlKSBjb25zdCAKIHsgCisgICAgUmVuZGVyVGhlbWU6OmFkanVzdFNsaWRlclRodW1iU3R5bGUo
c2VsZWN0b3IsIHN0eWxlLCBlKTsKICAgICBzdHlsZS0+c2V0Qm94U2hhZG93KG51bGxwdHIpOyAK
IH0gCiAKQEAgLTEwMTQsMTUgKzEwMTUsMTUgQEAgYm9vbCBSZW5kZXJUaGVtZVNhZmFyaTo6cGFp
bnRTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbnQKIGNv
bnN0IGludCBzbGlkZXJUaHVtYldpZHRoID0gMTU7CiBjb25zdCBpbnQgc2xpZGVyVGh1bWJIZWln
aHQgPSAxNTsKIAotdm9pZCBSZW5kZXJUaGVtZVNhZmFyaTo6YWRqdXN0U2xpZGVyVGh1bWJTaXpl
KFJlbmRlck9iamVjdCogbykgY29uc3QKK3ZvaWQgUmVuZGVyVGhlbWVTYWZhcmk6OmFkanVzdFNs
aWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7Ci0gICAgaWYgKG8tPnN0
eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0IHx8IG8tPnN0
eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkgewotICAgICAg
ICBvLT5zdHlsZSgpLT5zZXRXaWR0aChMZW5ndGgoc2xpZGVyVGh1bWJXaWR0aCwgRml4ZWQpKTsK
LSAgICAgICAgby0+c3R5bGUoKS0+c2V0SGVpZ2h0KExlbmd0aChzbGlkZXJUaHVtYkhlaWdodCwg
Rml4ZWQpKTsKKyAgICBpZiAoc3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYkhvcml6
b250YWxQYXJ0IHx8IHN0eWxlLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBh
cnQpIHsKKyAgICAgICAgc3R5bGUtPnNldFdpZHRoKExlbmd0aChzbGlkZXJUaHVtYldpZHRoLCBG
aXhlZCkpOworICAgICAgICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aChzbGlkZXJUaHVtYkhlaWdo
dCwgRml4ZWQpKTsKICAgICB9IAogI2lmIEVOQUJMRShWSURFTykKLSAgICBlbHNlIGlmIChvLT5z
dHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFTbGlkZXJUaHVtYlBhcnQpIAotICAgICAgICBS
ZW5kZXJNZWRpYUNvbnRyb2xzOjphZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShvKTsKKyAgICBl
bHNlIGlmIChzdHlsZS0+YXBwZWFyYW5jZSgpID09IE1lZGlhU2xpZGVyVGh1bWJQYXJ0KSAKKyAg
ICAgICAgUmVuZGVyTWVkaWFDb250cm9sczo6YWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUoc3R5
bGUpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZVNhZmFyaS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
U2FmYXJpLmgKaW5kZXggYjkxZTI4ZTZlZjVjYWZiZWNlZWUyZDAxNWYyMzA3Mjg1NTVkNmMyNC4u
NjYwMDRmMDQ0MGRkMGZkOTdjNWEyZjliODNmNTBkOTBmYTkyZjM2YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJpLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJpLmgKQEAgLTc2LDcgKzc2LDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCBpbnQgbWluaW11bU1lbnVMaXN0U2l6ZShSZW5kZXJTdHlsZSop
IGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJP
YmplY3QqKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xpZGVyVGh1bWJTaXplKFJl
bmRlclN0eWxlKikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRodW1iU3R5
bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0OyAKICAg
ICAKICAgICB2aXJ0dWFsIGludCBwb3B1cEludGVybmFsUGFkZGluZ0xlZnQoUmVuZGVyU3R5bGUq
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCmlu
ZGV4IDE1ZjY0YzVlNGM2NGI2MGNhMjVkODY1Y2FkNGIyYmFkM2EwOTgyZWUuLjY4YzhhZDExNjM3
NTNkODYzMjlhZWJkOWY2MTM5ZDYzNGFiZWM2ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lV2luLmNwcApAQCAtODMzLDE5ICs4MzMsMTkgQEAgYm9vbCBSZW5kZXJU
aGVtZVdpbjo6cGFpbnRTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5m
byYgaSwgY29uc3QKIGNvbnN0IGludCBzbGlkZXJUaHVtYldpZHRoID0gNzsKIGNvbnN0IGludCBz
bGlkZXJUaHVtYkhlaWdodCA9IDE1OwogCi12b2lkIFJlbmRlclRoZW1lV2luOjphZGp1c3RTbGlk
ZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KiBvKSBjb25zdAordm9pZCBSZW5kZXJUaGVtZVdpbjo6
YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKIHsKLSAgICBD
b250cm9sUGFydCBwYXJ0ID0gby0+c3R5bGUoKS0+YXBwZWFyYW5jZSgpOworICAgIENvbnRyb2xQ
YXJ0IHBhcnQgPSBzdHlsZS0+YXBwZWFyYW5jZSgpOwogICAgIGlmIChwYXJ0ID09IFNsaWRlclRo
dW1iVmVydGljYWxQYXJ0KSB7Ci0gICAgICAgIG8tPnN0eWxlKCktPnNldFdpZHRoKExlbmd0aChz
bGlkZXJUaHVtYkhlaWdodCwgRml4ZWQpKTsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0SGVpZ2h0
KExlbmd0aChzbGlkZXJUaHVtYldpZHRoLCBGaXhlZCkpOworICAgICAgICBzdHlsZS0+c2V0V2lk
dGgoTGVuZ3RoKHNsaWRlclRodW1iSGVpZ2h0LCBGaXhlZCkpOworICAgICAgICBzdHlsZS0+c2V0
SGVpZ2h0KExlbmd0aChzbGlkZXJUaHVtYldpZHRoLCBGaXhlZCkpOwogICAgIH0gZWxzZSBpZiAo
cGFydCA9PSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0KSB7Ci0gICAgICAgIG8tPnN0eWxlKCkt
PnNldFdpZHRoKExlbmd0aChzbGlkZXJUaHVtYldpZHRoLCBGaXhlZCkpOwotICAgICAgICBvLT5z
dHlsZSgpLT5zZXRIZWlnaHQoTGVuZ3RoKHNsaWRlclRodW1iSGVpZ2h0LCBGaXhlZCkpOworICAg
ICAgICBzdHlsZS0+c2V0V2lkdGgoTGVuZ3RoKHNsaWRlclRodW1iV2lkdGgsIEZpeGVkKSk7Cisg
ICAgICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKHNsaWRlclRodW1iSGVpZ2h0LCBGaXhlZCkp
OwogICAgIH0KICNpZiBFTkFCTEUoVklERU8pCiAgICAgZWxzZSBpZiAocGFydCA9PSBNZWRpYVNs
aWRlclRodW1iUGFydCB8fCBwYXJ0ID09IE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0KSAKLSAg
ICAgICAgUmVuZGVyTWVkaWFDb250cm9sczo6YWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUobyk7
CisgICAgICAgIFJlbmRlck1lZGlhQ29udHJvbHM6OmFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXpl
KHN0eWxlKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVXaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZVdpbi5oCmluZGV4IDdlOGE0OTE1MjgyZWRmNzE5OWU5MDVlNjE2YjAzNWY0ZWVjNzNhYmQuLjM3
M2I0Nzk0ZDc3MDRiOWNjOWQ4MDhkNWMxNjQxNzBkZGY3NTRmMWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5oCkBAIC05Myw3ICs5Myw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgYm9vbCBwYWludFNsaWRlclRyYWNrKFJlbmRlck9iamVjdCogbywgY29uc3Qg
UGFpbnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByKTsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRT
bGlkZXJUaHVtYihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgaSwgY29uc3QgSW50
UmVjdCYgcik7Ci0gICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJP
YmplY3QqKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xpZGVyVGh1bWJTaXplKFJl
bmRlclN0eWxlKikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgcG9wdXBPcHRpb25TdXBwb3J0
c1RleHRJbmRlbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbkNFLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbkNFLmNwcAppbmRleCBhNTZhYjNlYTQ3YTViZjI4MzIw
NmVhYmQzYzEyZWJlODk1MDRhNzI2Li5hYmM3MjE2ZGI0ZmE4MWExNzlhNDhmNmYwYzA2NDJjZGIz
ZWZlN2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVX
aW5DRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luQ0Uu
Y3BwCkBAIC0zMzEsMTQgKzMzMSwxNCBAQCBDb2xvciBSZW5kZXJUaGVtZVdpbkNFOjpzeXN0ZW1D
b2xvcihpbnQgY3NzVmFsdWVJZCkgY29uc3QKIGNvbnN0IGludCBzbGlkZXJUaHVtYldpZHRoID0g
NzsKIGNvbnN0IGludCBzbGlkZXJUaHVtYkhlaWdodCA9IDE1OwogCi12b2lkIFJlbmRlclRoZW1l
V2luQ0U6OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJPYmplY3QqIG8pIGNvbnN0Ci17Ci0g
ICAgaWYgKG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFy
dCkgewotICAgICAgICBvLT5zdHlsZSgpLT5zZXRXaWR0aChMZW5ndGgoc2xpZGVyVGh1bWJIZWln
aHQsIEZpeGVkKSk7Ci0gICAgICAgIG8tPnN0eWxlKCktPnNldEhlaWdodChMZW5ndGgoc2xpZGVy
VGh1bWJXaWR0aCwgRml4ZWQpKTsKLSAgICB9IGVsc2UgaWYgKG8tPnN0eWxlKCktPmFwcGVhcmFu
Y2UoKSA9PSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0KSB7Ci0gICAgICAgIG8tPnN0eWxlKCkt
PnNldFdpZHRoKExlbmd0aChzbGlkZXJUaHVtYldpZHRoLCBGaXhlZCkpOwotICAgICAgICBvLT5z
dHlsZSgpLT5zZXRIZWlnaHQoTGVuZ3RoKHNsaWRlclRodW1iSGVpZ2h0LCBGaXhlZCkpOwordm9p
ZCBSZW5kZXJUaGVtZVdpbkNFOjphZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUqIHN0
eWxlKSBjb25zdAoreworICAgIGlmIChzdHlsZS0+YXBwZWFyYW5jZSgpID09IFNsaWRlclRodW1i
VmVydGljYWxQYXJ0KSB7CisgICAgICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgoc2xpZGVyVGh1
bWJIZWlnaHQsIEZpeGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKHNsaWRl
clRodW1iV2lkdGgsIEZpeGVkKSk7CisgICAgfSBlbHNlIGlmIChzdHlsZS0+YXBwZWFyYW5jZSgp
ID09IFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQpIHsKKyAgICAgICAgc3R5bGUtPnNldFdpZHRo
KExlbmd0aChzbGlkZXJUaHVtYldpZHRoLCBGaXhlZCkpOworICAgICAgICBzdHlsZS0+c2V0SGVp
Z2h0KExlbmd0aChzbGlkZXJUaHVtYkhlaWdodCwgRml4ZWQpKTsKICAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbkNFLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW5DRS5oCmluZGV4IDE0YTViMTI4MzI2
NmMwMDM2ZTdhZWQzZDE1Y2JkMDBmYmMyYjc2ODMuLmE3ZGY0ODk2N2ZhZWM2M2ZlOTgyYjcwYWJi
NzA5YTk4ZmZhYWMzZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZVdpbkNFLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
V2luQ0UuaApAQCAtODksNyArODksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAg
dmlydHVhbCBib29sIHBhaW50U2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWlu
dEluZm8mIGksIGNvbnN0IEludFJlY3QmIHIpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRT
bGlkZXJUaHVtYihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgaSwgY29uc3QgSW50
UmVjdCYgcik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVu
ZGVyT2JqZWN0KikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUaHVt
YlNpemUoUmVuZGVyU3R5bGUqKSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgcG9wdXBP
cHRpb25TdXBwb3J0c1RleHRJbmRlbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96388</attachid>
            <date>2011-06-07 23:32:34 -0700</date>
            <delta_ts>2011-06-08 05:52:27 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-62208-20110608153232.patch</filename>
            <type>text/plain</type>
            <size>41149</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODgzMjUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3YWMxMmFjOGI3ZWY1Y2Vl
N2Y5NmY5MGY3YWJhNGM0MzgzZmIxNjFmLi45OWMyODRiOTliYjMyYjczZDVlOWViYmMxM2M0N2Ri
NWY5MjJkNDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzMgQEAKKzIwMTEtMDYtMDcgIEtlbnQg
VGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSB0aGUgYXJndW1lbnQgb2YgUmVuZGVyVGhlbWU6
OmFkanVzdFNsaWRlclRodW1iU2l6ZSgpOiBSZW5kZXJPYmplY3QqIC0+IFJlbmRlclN0eWxlKgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyMDgKKwor
ICAgICAgICBDaGFuZ2UgdGhlIGFyZ3VtZW50IHR5cGUgb2YgUmVuZGVyVGhlbWU6OmFkanVzdFNs
aWRlclRodW1iU2l6ZSgpIGFuZAorICAgICAgICBSZW5kZXJNZWRpYUNvbnRyb2xzOjphZGp1c3RN
ZWRpYVNsaWRlclRodW1iU2l6ZSgpIGZyb20gUmVuZGVyT2JqZWN0KiB0byBSZW5kZXJTdHlsZSou
CisgICAgICAgIAorICAgICAgICBBbHNvLCBlYWNoIG9mIGFkanVzdFNsaWRlclRodW1iU3R5bGUo
KSBvdmVycmlkZXMgY2FsbHMgUmVuZGVyVGhlbWU6OgorICAgICAgICBhZGp1c3RTbGlkZXJUaHVt
YlN0eWxlKCkgZm9yIGZ1dHVyZSBjaGFuZ2VzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGhp
cyBpcyBhIHJlZmFjdG9yaW5nIGFuZCBzaG91bGQgbm90IGNoYW5nZSBhbnkgYmVoYXZpb3IuCisK
KyAgICAgICAgKiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU2xpZGVyVGh1bWI6OmxheW91dCk6IFBhc3NpbmcgUmVuZGVyU3R5bGUq
IGFuZCByZW1vdmUgYSBGSVhNRSBjb21tZW50LgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9SZW5k
ZXJUaGVtZUVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6YWRqdXN0
U2xpZGVyVGh1bWJTdHlsZSk6IENhbGxzIFJlbmRlclRoZW1lOjphZGp1c3RTbGlkZXJUaHVtYlN0
eWxlKCkuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjphZGp1c3RTbGlkZXJUaHVtYlN0eWxlKTogZGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6YWRqdXN0TWVkaWFTbGlkZXJU
aHVtYlNpemUpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVHdGs6OmFkanVzdFNsaWRlclRodW1iU2l6ZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZUd0azo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9S
ZW5kZXJUaGVtZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OmFkanVz
dFNsaWRlclRodW1iU3R5bGUpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
UXQ6OmFkanVzdFNsaWRlclRodW1iU2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1l
ZGlhQ29udHJvbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWFDb250cm9sczo6
YWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJN
ZWRpYUNvbnRyb2xzLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHND
aHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21p
dW06OmFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNs
aWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OmxheW91dCk6IFBhc3Np
bmcgUmVuZGVyU3R5bGUqIGFuZCByZW1vdmUgYSBGSVhNRSBjb21tZW50LgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6
YWRqdXN0U2xpZGVyVGh1bWJTdHlsZSk6IEFkZCBhIGNvbW1lbnQuCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZTo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1
bUxpbnV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6
YWRqdXN0U2xpZGVyVGh1bWJTaXplKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bUxpbnV4Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1N
YWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmFkanVzdE1lZGlhU2xpZGVy
VGh1bWJTaXplKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OmFkanVzdFNs
aWRlclRodW1iU2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1T
a2lhLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6YWRqdXN0U2xpZGVyVGh1
bWJTaXplKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjph
ZGp1c3RTbGlkZXJUaHVtYlN0eWxlKTogQ2FsbHMgUmVuZGVyVGhlbWU6OmFkanVzdFNsaWRlclRo
dW1iU3R5bGUoKS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjphZGp1c3RTbGlk
ZXJUaHVtYlNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmFkanVzdE1l
ZGlhU2xpZGVyVGh1bWJTaXplKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVTYWZh
cmkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVTYWZhcmk6OmFkanVzdFNsaWRl
clRodW1iU3R5bGUpOiBDYWxscyBSZW5kZXJUaGVtZTo6YWRqdXN0U2xpZGVyVGh1bWJTdHlsZSgp
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVTYWZhcmk6OmFkanVzdFNsaWRlclRodW1i
U2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJpLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lV2luOjphZGp1c3RTbGlkZXJUaHVtYlNpemUpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUaGVtZVdpbi5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZVdpbkNFLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lV2luQ0U6OmFkanVzdFNsaWRlclRodW1i
U2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luQ0UuaDoKKwogMjAxMS0w
Ni0wNyAgSWFuIEhlbmRlcnNvbiAgPGlhbmhAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xp
ZGVyVGh1bWJFbGVtZW50LmNwcAppbmRleCA4YTA2Y2IzM2ZiNWNiZmNhMDBmZmM4YWU2ZGZlZjU0
ZDkxYzc0ZGJmLi5hNDllM2ViYzAwNDBmYjhlMjVkYjE5ZTZmOTQxZTljNmQ4M2VkYTc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAK
QEAgLTc1LDEwICs3NSw4IEBAIHZvaWQgUmVuZGVyU2xpZGVyVGh1bWI6OmxheW91dCgpCiAgICAg
ZWxzZSBpZiAocGFyZW50U3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNsaWRlclBh
cnQpCiAgICAgICAgIHN0eWxlKCktPnNldEFwcGVhcmFuY2UoTWVkaWFWb2x1bWVTbGlkZXJUaHVt
YlBhcnQpOwogCi0gICAgaWYgKHN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSkgewotICAgICAgICAv
LyBGSVhNRTogVGhpcyBzaG91bGQgcGFzcyB0aGUgc3R5bGUsIG5vdCB0aGUgcmVuZGVyZXIsIHRv
IHRoZSB0aGVtZS4KLSAgICAgICAgdGhlbWUoKS0+YWRqdXN0U2xpZGVyVGh1bWJTaXplKHRoaXMp
OwotICAgIH0KKyAgICBpZiAoc3R5bGUoKS0+aGFzQXBwZWFyYW5jZSgpKQorICAgICAgICB0aGVt
ZSgpLT5hZGp1c3RTbGlkZXJUaHVtYlNpemUoc3R5bGUoKSk7CiAgICAgUmVuZGVyQmxvY2s6Omxh
eW91dCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVu
ZGVyVGhlbWVFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1l
RWZsLmNwcAppbmRleCBmMTQ5ZTljMjAxMWQ0N2U4ZjQyMGQxMmNmZGEyMjI1ZTQyZjRkMjkzLi5j
OTBjMGU0YTM1N2QwZjE1ODI5OTRhNDQxZTIxOGIwOGJhNmVlN2JhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKQEAgLTgzNCw2ICs4MzQsNyBA
QCB2b2lkIFJlbmRlclRoZW1lRWZsOjphZGp1c3RTbGlkZXJUcmFja1N0eWxlKENTU1N0eWxlU2Vs
ZWN0b3IqIHNlbGVjdG9yLCBSZW5kZXJTdAogCiB2b2lkIFJlbmRlclRoZW1lRWZsOjphZGp1c3RT
bGlkZXJUaHVtYlN0eWxlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yLCBSZW5kZXJTdHlsZSog
c3R5bGUsIEVsZW1lbnQqIGVsZW1lbnQpIGNvbnN0CiB7CisgICAgUmVuZGVyVGhlbWU6OmFkanVz
dFNsaWRlclRodW1iU3R5bGUoc2VsZWN0b3IsIHN0eWxlLCBlbGVtZW50KTsKICAgICBhZGp1c3RT
bGlkZXJUcmFja1N0eWxlKHNlbGVjdG9yLCBzdHlsZSwgZWxlbWVudCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwCmluZGV4IGY2YWQ3YWY4
MjAxMGQ5OTJjNmUxYThmNzRkY2Q0NDg2YTk3ZGQ0ZjkuLjE0Njg2MmJhNWVlYTU0Njg5ODU0NmEz
NzdjNjI1ZTY0MjA5YjZhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9SZW5kZXJUaGVtZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Jl
bmRlclRoZW1lR3RrLmNwcApAQCAtMzk2LDggKzM5Niw5IEBAIHZvaWQgUmVuZGVyVGhlbWVHdGs6
OmFkanVzdFNsaWRlclRyYWNrU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiBz
dHlsCiAgICAgc3R5bGUtPnNldEJveFNoYWRvdyhudWxscHRyKTsKIH0KIAotdm9pZCBSZW5kZXJU
aGVtZUd0azo6YWRqdXN0U2xpZGVyVGh1bWJTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVy
U3R5bGUqIHN0eWxlLCBFbGVtZW50KikgY29uc3QKK3ZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVz
dFNsaWRlclRodW1iU3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxl
KiBzdHlsZSwgRWxlbWVudCogZWxlbWVudCkgY29uc3QKIHsKKyAgICBSZW5kZXJUaGVtZTo6YWRq
dXN0U2xpZGVyVGh1bWJTdHlsZShzZWxlY3Rvciwgc3R5bGUsIGVsZW1lbnQpOwogICAgIHN0eWxl
LT5zZXRCb3hTaGFkb3cobnVsbHB0cik7CiB9CiAKQEAgLTQ3MiwxMSArNDczLDExIEBAIFN0cmlu
ZyBSZW5kZXJUaGVtZUd0azo6ZXh0cmFNZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpCiAgICAgcmV0
dXJuIFN0cmluZyhtZWRpYUNvbnRyb2xzR3RrVXNlckFnZW50U3R5bGVTaGVldCwgc2l6ZW9mKG1l
ZGlhQ29udHJvbHNHdGtVc2VyQWdlbnRTdHlsZVNoZWV0KSk7CiB9CiAKLXZvaWQgUmVuZGVyVGhl
bWVHdGs6OmFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCogcmVuZGVyT2Jq
ZWN0KSBjb25zdAordm9pZCBSZW5kZXJUaGVtZUd0azo6YWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNp
emUoUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdAogewotICAgIEFTU0VSVChyZW5kZXJPYmplY3Qt
PnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVNsaWRlclRodW1iUGFydCk7Ci0gICAgcmVu
ZGVyT2JqZWN0LT5zdHlsZSgpLT5zZXRXaWR0aChMZW5ndGgobV9tZWRpYVNsaWRlclRodW1iV2lk
dGgsIEZpeGVkKSk7Ci0gICAgcmVuZGVyT2JqZWN0LT5zdHlsZSgpLT5zZXRIZWlnaHQoTGVuZ3Ro
KG1fbWVkaWFTbGlkZXJUaHVtYkhlaWdodCwgRml4ZWQpKTsKKyAgICBBU1NFUlQoc3R5bGUtPmFw
cGVhcmFuY2UoKSA9PSBNZWRpYVNsaWRlclRodW1iUGFydCk7CisgICAgc3R5bGUtPnNldFdpZHRo
KExlbmd0aChtX21lZGlhU2xpZGVyVGh1bWJXaWR0aCwgRml4ZWQpKTsKKyAgICBzdHlsZS0+c2V0
SGVpZ2h0KExlbmd0aChtX21lZGlhU2xpZGVyVGh1bWJIZWlnaHQsIEZpeGVkKSk7CiB9CiAKIGJv
b2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50TWVkaWFCdXR0b24oUmVuZGVyT2JqZWN0KiByZW5kZXJP
YmplY3QsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCwgY29u
c3QgY2hhciogaWNvbk5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUmVuZGVyVGhlbWVHdGsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJU
aGVtZUd0ay5oCmluZGV4IDRlNjBmZGZiYzdlMTE3ODFlZDU5MDFmNjZmMWU4MmIxOGM5MGFhYTAu
LjZhMjRkNTkxNGI0OGUyNWM1ZDM2YjY3YzVjZmEzZmFiM2YzYzlmYjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oCkBAIC0xNDIsMTIgKzE0MiwxMiBA
QCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHBhaW50U2xpZGVyVGh1bWIoUmVuZGVyT2Jq
ZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZpcnR1YWwgdm9p
ZCBhZGp1c3RTbGlkZXJUaHVtYlN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSos
IEVsZW1lbnQqKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUaHVtYlNp
emUoUmVuZGVyT2JqZWN0KiBvYmplY3QpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RT
bGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUqKSBjb25zdDsKIAogI2lmIEVOQUJMRShWSURFTykK
ICAgICB2b2lkIGluaXRNZWRpYUNvbG9ycygpOwogICAgIHZvaWQgaW5pdE1lZGlhQnV0dG9ucygp
OwotICAgIHZvaWQgYWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KikgY29u
c3Q7CisgICAgdm9pZCBhZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSopIGNv
bnN0OwogICAgIHZpcnR1YWwgYm9vbCBoYXNPd25EaXNhYmxlZFN0YXRlSGFuZGxpbmdGb3IoQ29u
dHJvbFBhcnQpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRN
ZWRpYUZ1bGxzY3JlZW5CdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29u
c3QgSW50UmVjdCYpOwogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhUGxheUJ1dHRvbihSZW5k
ZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azIuY3BwCmluZGV4IGEzYjNiNzAx
YjhhNTE4MWJkOTk0MjkxMTdjODZhYjA5ZmI5YmRkODMuLjUwNjc1ZDFlOTQwYjM4ZWY2NDZjYTkw
MTYzM2VmZGQ1Yjk3OGIyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9SZW5kZXJUaGVtZUd0azIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9S
ZW5kZXJUaGVtZUd0azIuY3BwCkBAIC01MjQsMTIgKzUyNCwxMiBAQCBib29sIFJlbmRlclRoZW1l
R3RrOjpwYWludFNsaWRlclRodW1iKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludElu
Zm8mIGluZgogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBSZW5kZXJUaGVtZUd0azo6YWRq
dXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCogbykgY29uc3QKK3ZvaWQgUmVuZGVyVGhl
bWVHdGs6OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7
Ci0gICAgQ29udHJvbFBhcnQgcGFydCA9IG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKTsKKyAgICBD
b250cm9sUGFydCBwYXJ0ID0gc3R5bGUtPmFwcGVhcmFuY2UoKTsKICNpZiBFTkFCTEUoVklERU8p
CiAgICAgaWYgKHBhcnQgPT0gTWVkaWFTbGlkZXJUaHVtYlBhcnQpIHsKLSAgICAgICAgYWRqdXN0
TWVkaWFTbGlkZXJUaHVtYlNpemUobyk7CisgICAgICAgIGFkanVzdE1lZGlhU2xpZGVyVGh1bWJT
aXplKHN0eWxlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgpAQCAtNTQyLDEzICs1
NDIsMTMgQEAgdm9pZCBSZW5kZXJUaGVtZUd0azo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRl
ck9iamVjdCogbykgY29uc3QKICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKIAogICAg
IGlmIChwYXJ0ID09IFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQpIHsKLSAgICAgICAgby0+c3R5
bGUoKS0+c2V0V2lkdGgoTGVuZ3RoKGxlbmd0aCwgRml4ZWQpKTsKLSAgICAgICAgby0+c3R5bGUo
KS0+c2V0SGVpZ2h0KExlbmd0aCh3aWR0aCwgRml4ZWQpKTsKKyAgICAgICAgc3R5bGUtPnNldFdp
ZHRoKExlbmd0aChsZW5ndGgsIEZpeGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVu
Z3RoKHdpZHRoLCBGaXhlZCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIEFTU0VSVChw
YXJ0ID09IFNsaWRlclRodW1iVmVydGljYWxQYXJ0IHx8IHBhcnQgPT0gTWVkaWFWb2x1bWVTbGlk
ZXJUaHVtYlBhcnQpOwotICAgIG8tPnN0eWxlKCktPnNldFdpZHRoKExlbmd0aCh3aWR0aCwgRml4
ZWQpKTsKLSAgICBvLT5zdHlsZSgpLT5zZXRIZWlnaHQoTGVuZ3RoKGxlbmd0aCwgRml4ZWQpKTsK
KyAgICBzdHlsZS0+c2V0V2lkdGgoTGVuZ3RoKHdpZHRoLCBGaXhlZCkpOworICAgIHN0eWxlLT5z
ZXRIZWlnaHQoTGVuZ3RoKGxlbmd0aCwgRml4ZWQpKTsKIH0KIAogI2lmIEVOQUJMRShQUk9HUkVT
U19UQUcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhl
bWVHdGszLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMu
Y3BwCmluZGV4IDFiMmI4Y2M3ODhjMzY0Y2JhZDM4NWJkMjEyMmFkNWRlMzAwYTllYWEuLmQ3MDQx
ZjUyYTg5OTMyMDRjMzYyYzJhYTgyNTc1MGIzMTU1ZDk1MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwCkBAIC02NjMsMTIgKzY2MywxMiBA
QCBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludFNsaWRlclRodW1iKFJlbmRlck9iamVjdCogcmVu
ZGVyT2JqZWN0LCBjb25zdCBQYWludEluZgogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBS
ZW5kZXJUaGVtZUd0azo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCogcmVuZGVy
T2JqZWN0KSBjb25zdAordm9pZCBSZW5kZXJUaGVtZUd0azo6YWRqdXN0U2xpZGVyVGh1bWJTaXpl
KFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKIHsKLSAgICBDb250cm9sUGFydCBwYXJ0ID0gcmVu
ZGVyT2JqZWN0LT5zdHlsZSgpLT5hcHBlYXJhbmNlKCk7CisgICAgQ29udHJvbFBhcnQgcGFydCA9
IHN0eWxlLT5hcHBlYXJhbmNlKCk7CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGlmIChwYXJ0ID09
IE1lZGlhU2xpZGVyVGh1bWJQYXJ0KSB7Ci0gICAgICAgIGFkanVzdE1lZGlhU2xpZGVyVGh1bWJT
aXplKHJlbmRlck9iamVjdCk7CisgICAgICAgIGFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKHN0
eWxlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgpAQCAtNjc5LDEzICs2NzksMTMg
QEAgdm9pZCBSZW5kZXJUaGVtZUd0azo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVj
dCogcmVuZGVyT2JqZWN0KSBjb25zdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
c2xpZGVyLWxlbmd0aCIsICZzbGlkZXJMZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE5VTEwpOwogICAgIGlmIChwYXJ0ID09IFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQp
IHsKLSAgICAgICAgcmVuZGVyT2JqZWN0LT5zdHlsZSgpLT5zZXRXaWR0aChMZW5ndGgoc2xpZGVy
TGVuZ3RoLCBGaXhlZCkpOwotICAgICAgICByZW5kZXJPYmplY3QtPnN0eWxlKCktPnNldEhlaWdo
dChMZW5ndGgoc2xpZGVyV2lkdGgsIEZpeGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRXaWR0aChM
ZW5ndGgoc2xpZGVyTGVuZ3RoLCBGaXhlZCkpOworICAgICAgICBzdHlsZS0+c2V0SGVpZ2h0KExl
bmd0aChzbGlkZXJXaWR0aCwgRml4ZWQpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBB
U1NFUlQocGFydCA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCB8fCBwYXJ0ID09IE1lZGlhVm9s
dW1lU2xpZGVyVGh1bWJQYXJ0KTsKLSAgICByZW5kZXJPYmplY3QtPnN0eWxlKCktPnNldFdpZHRo
KExlbmd0aChzbGlkZXJXaWR0aCwgRml4ZWQpKTsKLSAgICByZW5kZXJPYmplY3QtPnN0eWxlKCkt
PnNldEhlaWdodChMZW5ndGgoc2xpZGVyTGVuZ3RoLCBGaXhlZCkpOworICAgIHN0eWxlLT5zZXRX
aWR0aChMZW5ndGgoc2xpZGVyV2lkdGgsIEZpeGVkKSk7CisgICAgc3R5bGUtPnNldEhlaWdodChM
ZW5ndGgoc2xpZGVyTGVuZ3RoLCBGaXhlZCkpOwogfQogCiAjaWYgRU5BQkxFKFBST0dSRVNTX1RB
RykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAKaW5kZXgg
NGQxOWFjZDllZmY4YTQ3ZTBjNDU0OTlmYTY1YmQ0Mjc1ZGM2ODQ2Yy4uZGExOTM5NGExN2Q5YmZh
ZWI3ODY2MDMxMDVlMzRiOWEwMGZiMGViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cXQvUmVuZGVyVGhlbWVRdC5jcHAKQEAgLTk2MSw4ICs5NjEsOSBAQCBib29sIFJlbmRlclRoZW1l
UXQ6OnBhaW50U2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIHBp
LAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBSZW5kZXJUaGVtZVF0OjphZGp1c3RTbGlk
ZXJUaHVtYlN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1l
bnQqKSBjb25zdAordm9pZCBSZW5kZXJUaGVtZVF0OjphZGp1c3RTbGlkZXJUaHVtYlN0eWxlKENT
U1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqIGVs
ZW1lbnQpIGNvbnN0CiB7CisgICAgUmVuZGVyVGhlbWU6OmFkanVzdFNsaWRlclRodW1iU3R5bGUo
c2VsZWN0b3IsIHN0eWxlLCBlbGVtZW50KTsKICAgICBzdHlsZS0+c2V0Qm94U2hhZG93KG51bGxw
dHIpOwogfQogCkBAIC0xNDYzLDcgKzE0NjQsNyBAQCBib29sIFJlbmRlclRoZW1lUXQ6OnBhaW50
TWVkaWFTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbgog
fQogI2VuZGlmCiAKLXZvaWQgUmVuZGVyVGhlbWVRdDo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJl
bmRlck9iamVjdCogbykgY29uc3QKK3ZvaWQgUmVuZGVyVGhlbWVRdDo6YWRqdXN0U2xpZGVyVGh1
bWJTaXplKFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKIHsKICAgICAvLyB0aW1lbGluZVRodW1i
SGVpZ2h0IHNob3VsZCBtYXRjaCB0aGUgaGVpZ2h0IHByb3BlcnR5IG9mIC13ZWJraXQtbWVkaWEt
Y29udHJvbHMtdGltZWxpbmUgaW4gbWVkaWFDb250cm9sc1F0LmNzcy4KICAgICBjb25zdCBpbnQg
dGltZWxpbmVUaHVtYkhlaWdodCA9IDEyOwpAQCAtMTQ3MSwyNSArMTQ3MiwyNSBAQCB2b2lkIFJl
bmRlclRoZW1lUXQ6OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJPYmplY3QqIG8pIGNvbnN0
CiAgICAgLy8gdm9sdW1lVGh1bWJXaWR0aCBzaG91bGQgbWF0Y2ggdGhlIHdpZHRoIHByb3BlcnR5
IG9mIC13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlciBpbiBtZWRpYUNvbnRyb2xz
UXQuY3NzLgogICAgIGNvbnN0IGludCB2b2x1bWVUaHVtYldpZHRoID0gMTI7CiAgICAgY29uc3Qg
aW50IHZvbHVtZVRodW1iSGVpZ2h0ID0gdm9sdW1lVGh1bWJXaWR0aCAvIDM7Ci0gICAgQ29udHJv
bFBhcnQgcGFydCA9IG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKTsKKyAgICBDb250cm9sUGFydCBw
YXJ0ID0gc3R5bGUtPmFwcGVhcmFuY2UoKTsKIAogICAgIGlmIChwYXJ0ID09IE1lZGlhU2xpZGVy
VGh1bWJQYXJ0KSB7Ci0gICAgICAgIG8tPnN0eWxlKCktPnNldFdpZHRoKExlbmd0aCh0aW1lbGlu
ZVRodW1iV2lkdGgsIEZpeGVkKSk7Ci0gICAgICAgIG8tPnN0eWxlKCktPnNldEhlaWdodChMZW5n
dGgodGltZWxpbmVUaHVtYkhlaWdodCwgRml4ZWQpKTsKKyAgICAgICAgc3R5bGUtPnNldFdpZHRo
KExlbmd0aCh0aW1lbGluZVRodW1iV2lkdGgsIEZpeGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRI
ZWlnaHQoTGVuZ3RoKHRpbWVsaW5lVGh1bWJIZWlnaHQsIEZpeGVkKSk7CiAgICAgfSBlbHNlIGlm
IChwYXJ0ID09IE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0KSB7Ci0gICAgICAgIG8tPnN0eWxl
KCktPnNldEhlaWdodChMZW5ndGgodm9sdW1lVGh1bWJIZWlnaHQsIEZpeGVkKSk7Ci0gICAgICAg
IG8tPnN0eWxlKCktPnNldFdpZHRoKExlbmd0aCh2b2x1bWVUaHVtYldpZHRoLCBGaXhlZCkpOwor
ICAgICAgICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aCh2b2x1bWVUaHVtYkhlaWdodCwgRml4ZWQp
KTsKKyAgICAgICAgc3R5bGUtPnNldFdpZHRoKExlbmd0aCh2b2x1bWVUaHVtYldpZHRoLCBGaXhl
ZCkpOwogICAgIH0gZWxzZSBpZiAocGFydCA9PSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0IHx8
IHBhcnQgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQpIHsKICAgICAgICAgUVN0eWxlT3B0aW9u
U2xpZGVyIG9wdGlvbjsKICAgICAgICAgaWYgKHBhcnQgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBh
cnQpCiAgICAgICAgICAgICBvcHRpb24ub3JpZW50YXRpb24gPSBRdDo6VmVydGljYWw7CiAKLSAg
ICAgICAgUVN0eWxlKiBzdHlsZSA9IHFTdHlsZSgpOworICAgICAgICBRU3R5bGUqIHFzdHlsZSA9
IHFTdHlsZSgpOwogCi0gICAgICAgIGludCB3aWR0aCA9IHN0eWxlLT5waXhlbE1ldHJpYyhRU3R5
bGU6OlBNX1NsaWRlckxlbmd0aCwgJm9wdGlvbik7Ci0gICAgICAgIGludCBoZWlnaHQgPSBzdHls
ZS0+cGl4ZWxNZXRyaWMoUVN0eWxlOjpQTV9TbGlkZXJUaGlja25lc3MsICZvcHRpb24pOwotICAg
ICAgICBvLT5zdHlsZSgpLT5zZXRXaWR0aChMZW5ndGgod2lkdGgsIEZpeGVkKSk7Ci0gICAgICAg
IG8tPnN0eWxlKCktPnNldEhlaWdodChMZW5ndGgoaGVpZ2h0LCBGaXhlZCkpOworICAgICAgICBp
bnQgd2lkdGggPSBxc3R5bGUtPnBpeGVsTWV0cmljKFFTdHlsZTo6UE1fU2xpZGVyTGVuZ3RoLCAm
b3B0aW9uKTsKKyAgICAgICAgaW50IGhlaWdodCA9IHFzdHlsZS0+cGl4ZWxNZXRyaWMoUVN0eWxl
OjpQTV9TbGlkZXJUaGlja25lc3MsICZvcHRpb24pOworICAgICAgICBzdHlsZS0+c2V0V2lkdGgo
TGVuZ3RoKHdpZHRoLCBGaXhlZCkpOworICAgICAgICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aCho
ZWlnaHQsIEZpeGVkKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVkaWFDb250cm9scy5jcHAKaW5kZXggNzU3MGYyOTkzMDkyN2Q4ZjAyZTk1NmYz
ODlmYTI0ODZkY2NkODVhNC4uOTJhYTJhYmQwMTcyN2U1YzY5YzQzODhkYmQ1OTFkMmY0OWZlYWNk
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJv
bHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xz
LmNwcApAQCAtODgsMTkgKzg4LDE4IEBAIHN0YXRpYyBGbG9hdFJlY3QgZ2V0VW56b29tZWRSZWN0
QW5kQWRqdXN0Q3VycmVudENvbnRleHQoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQCiBzdGF0aWMg
Y29uc3QgaW50IG1lZGlhU2xpZGVyVGh1bWJXaWR0aCA9IDEzOwogc3RhdGljIGNvbnN0IGludCBt
ZWRpYVNsaWRlclRodW1iSGVpZ2h0ID0gMTQ7CiAKLXZvaWQgUmVuZGVyTWVkaWFDb250cm9sczo6
YWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KiBvKQordm9pZCBSZW5kZXJN
ZWRpYUNvbnRyb2xzOjphZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSogc3R5
bGUpCiB7Ci0gICAgQ29udHJvbFBhcnQgcGFydCA9IG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKTsK
LQorICAgIENvbnRyb2xQYXJ0IHBhcnQgPSBzdHlsZS0+YXBwZWFyYW5jZSgpOwogICAgIGlmIChw
YXJ0ICE9IE1lZGlhU2xpZGVyVGh1bWJQYXJ0ICYmIHBhcnQgIT0gTWVkaWFWb2x1bWVTbGlkZXJU
aHVtYlBhcnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIENHU2l6ZSBzaXplOwogICAgIHdrTWVh
c3VyZU1lZGlhVUlQYXJ0KHBhcnQgPT0gTWVkaWFTbGlkZXJUaHVtYlBhcnQgPyBNZWRpYVNsaWRl
clRodW1iIDogTWVkaWFWb2x1bWVTbGlkZXJUaHVtYiwgV0tNZWRpYUNvbnRyb2xsZXJUaGVtZVF1
aWNrVGltZSwgMCwgJnNpemUpOwogCi0gICAgZmxvYXQgem9vbUxldmVsID0gby0+c3R5bGUoKS0+
ZWZmZWN0aXZlWm9vbSgpOwotICAgIG8tPnN0eWxlKCktPnNldFdpZHRoKExlbmd0aChzdGF0aWNf
Y2FzdDxpbnQ+KHNpemUud2lkdGggKiB6b29tTGV2ZWwpLCBGaXhlZCkpOwotICAgIG8tPnN0eWxl
KCktPnNldEhlaWdodChMZW5ndGgoc3RhdGljX2Nhc3Q8aW50PihzaXplLmhlaWdodCAqIHpvb21M
ZXZlbCksIEZpeGVkKSk7CisgICAgZmxvYXQgem9vbUxldmVsID0gc3R5bGUtPmVmZmVjdGl2ZVpv
b20oKTsKKyAgICBzdHlsZS0+c2V0V2lkdGgoTGVuZ3RoKHN0YXRpY19jYXN0PGludD4oc2l6ZS53
aWR0aCAqIHpvb21MZXZlbCksIEZpeGVkKSk7CisgICAgc3R5bGUtPnNldEhlaWdodChMZW5ndGgo
c3RhdGljX2Nhc3Q8aW50PihzaXplLmhlaWdodCAqIHpvb21MZXZlbCksIEZpeGVkKSk7CiB9CiAK
IGJvb2wgUmVuZGVyTWVkaWFDb250cm9sczo6cGFpbnRNZWRpYUNvbnRyb2xzUGFydChNZWRpYUNv
bnRyb2xFbGVtZW50VHlwZSBwYXJ0LCBSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZWRpYUNvbnRyb2xzLmgKaW5kZXggM2QzYjAxNzY1NGVmNDI5MTk1Y2RmNGI0OThm
MWViMTQ0Y2IxODc3MC4uZjlkM2YzZDc4MjdhM2Q4NzVkMmZjZmI5ZDYyN2FiNzM3YjkyYzM4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5oCkBA
IC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKFdJTikKICAgICBzdGF0aWMg
Ym9vbCBwYWludE1lZGlhQ29udHJvbHNQYXJ0KE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlLCBSZW5k
ZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7Ci0gICAgc3RhdGlj
IHZvaWQgYWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0Kik7CisgICAgc3Rh
dGljIHZvaWQgYWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUqKTsKICNlbmRp
ZgogICAgIHN0YXRpYyBJbnRQb2ludCB2b2x1bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbihS
ZW5kZXJCb3gqLCBjb25zdCBJbnRTaXplJik7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmNwcAppbmRleCA0MGVl
OWIwYWI4YTNhNjk4YWRjNDAxMjE2MTFkN2E2MjQwYTA0NDU0Li5kZTVmNTk0ODNhMGIwN2ExNjdl
OTgyYWFiNGZkNTY1NGFjZTZhY2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmNwcApAQCAtMjgwLDIxICsyODAs
MjEgQEAgYm9vbCBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OnBhaW50TWVkaWFDb250cm9s
c1BhcnQoTWVkaWFDb250cm9sRWxlbWVudFR5cGUKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZv
aWQgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjphZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6
ZShSZW5kZXJPYmplY3QqIG9iamVjdCkKK3ZvaWQgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVt
OjphZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSogc3R5bGUpCiB7CiAgICAg
c3RhdGljIEltYWdlKiBtZWRpYVNsaWRlclRodW1iID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFT
bGlkZXJUaHVtYiIpOwogICAgIHN0YXRpYyBJbWFnZSogbWVkaWFWb2x1bWVTbGlkZXJUaHVtYiA9
IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhVm9sdW1lU2xpZGVyVGh1bWIiKTsKIAogICAgIEltYWdl
KiB0aHVtYkltYWdlID0gMDsKLSAgICBpZiAob2JqZWN0LT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkg
PT0gTWVkaWFTbGlkZXJUaHVtYlBhcnQpCisgICAgaWYgKHN0eWxlLT5hcHBlYXJhbmNlKCkgPT0g
TWVkaWFTbGlkZXJUaHVtYlBhcnQpCiAgICAgICAgIHRodW1iSW1hZ2UgPSBtZWRpYVNsaWRlclRo
dW1iOwotICAgIGVsc2UgaWYgKG9iamVjdC0+c3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IE1lZGlh
Vm9sdW1lU2xpZGVyVGh1bWJQYXJ0KQorICAgIGVsc2UgaWYgKHN0eWxlLT5hcHBlYXJhbmNlKCkg
PT0gTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQpCiAgICAgICAgIHRodW1iSW1hZ2UgPSBtZWRp
YVZvbHVtZVNsaWRlclRodW1iOwogCi0gICAgZmxvYXQgem9vbUxldmVsID0gb2JqZWN0LT5zdHls
ZSgpLT5lZmZlY3RpdmVab29tKCk7CisgICAgZmxvYXQgem9vbUxldmVsID0gc3R5bGUtPmVmZmVj
dGl2ZVpvb20oKTsKICAgICBpZiAodGh1bWJJbWFnZSkgewotICAgICAgICBvYmplY3QtPnN0eWxl
KCktPnNldFdpZHRoKExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KHRodW1iSW1hZ2UtPndpZHRoKCkg
KiB6b29tTGV2ZWwpLCBGaXhlZCkpOwotICAgICAgICBvYmplY3QtPnN0eWxlKCktPnNldEhlaWdo
dChMZW5ndGgoc3RhdGljX2Nhc3Q8aW50Pih0aHVtYkltYWdlLT5oZWlnaHQoKSAqIHpvb21MZXZl
bCksIEZpeGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgoc3RhdGljX2Nhc3Q8
aW50Pih0aHVtYkltYWdlLT53aWR0aCgpICogem9vbUxldmVsKSwgRml4ZWQpKTsKKyAgICAgICAg
c3R5bGUtPnNldEhlaWdodChMZW5ndGgoc3RhdGljX2Nhc3Q8aW50Pih0aHVtYkltYWdlLT5oZWln
aHQoKSAqIHpvb21MZXZlbCksIEZpeGVkKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmgKaW5kZXgg
ODk1YWM0MzliMDJkOTkxOGIzNTFiODYyMGUwMjNjZTkxMWIxZDA1YS4uOWFmOTM5NjBmZmVmY2Nl
OTlhZjEyNjQzODRlZDMzNDE2YTJkOWY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uaApAQCAtMzcsNyArMzcsNyBA
QCBjbGFzcyBIVE1MTWVkaWFFbGVtZW50OwogY2xhc3MgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9t
aXVtIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBwYWludE1lZGlhQ29udHJvbHNQYXJ0KE1l
ZGlhQ29udHJvbEVsZW1lbnRUeXBlLCBSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBj
b25zdCBJbnRSZWN0Jik7Ci0gICAgc3RhdGljIHZvaWQgYWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNp
emUoUmVuZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgYWRqdXN0TWVkaWFTbGlkZXJUaHVt
YlNpemUoUmVuZGVyU3R5bGUqKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKaW5kZXggNTQ0OWM0MTJiZjI0OWM2
NzAwMDk5NDM2MDMzMGRhYmY3ZTYxODZkNy4uMmI4NDk5OThiN2NhYjFjYTI3OGNmNWYwYWVjM2Q2
YjhiOTkzZjVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNs
aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAK
QEAgLTEzNiwxMCArMTM2LDggQEAgdm9pZCBSZW5kZXJTbGlkZXI6OmxheW91dCgpCiAKICAgICBp
ZiAodGh1bWIpIHsKICAgICAgICAgLy8gQWxsb3cgdGhlIHRoZW1lIHRvIHNldCB0aGUgc2l6ZSBv
ZiB0aGUgdGh1bWIuCi0gICAgICAgIGlmICh0aHVtYi0+c3R5bGUoKS0+aGFzQXBwZWFyYW5jZSgp
KSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcGFzcyB0aGUgc3R5bGUsIG5v
dCB0aGUgcmVuZGVyZXIsIHRvIHRoZSB0aGVtZS4KLSAgICAgICAgICAgIHRoZW1lKCktPmFkanVz
dFNsaWRlclRodW1iU2l6ZSh0aHVtYik7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHRodW1iLT5z
dHlsZSgpLT5oYXNBcHBlYXJhbmNlKCkpCisgICAgICAgICAgICB0aGVtZSgpLT5hZGp1c3RTbGlk
ZXJUaHVtYlNpemUodGh1bWItPnN0eWxlKCkpOwogCiAgICAgICAgIGJhc2VTaXplLmV4cGFuZCh0
aHVtYi0+c3R5bGUoKS0+d2lkdGgoKS5jYWxjTWluVmFsdWUoMCksIHRodW1iLT5zdHlsZSgpLT5o
ZWlnaHQoKS5jYWxjTWluVmFsdWUoMCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWUuY3BwCmluZGV4IGNiNmU0ODQwNzc5ODk2MjE2NTYwMjg3OTNmOWMwZDI4ZDFk
NmY0ZjMuLmVlMmQwYjg4ZDMyZDI3M2I0NzgzNGQyYjJkYjBmNmI4OWEyOTE5NmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAtOTY5LDkgKzk2OSwxMCBAQCB2
b2lkIFJlbmRlclRoZW1lOjphZGp1c3RTbGlkZXJUcmFja1N0eWxlKENTU1N0eWxlU2VsZWN0b3Iq
LCBSZW5kZXJTdHlsZSosIEVsZW1lbgogCiB2b2lkIFJlbmRlclRoZW1lOjphZGp1c3RTbGlkZXJU
aHVtYlN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25z
dAogeworICAgIC8vIEZJWE1FOiBTaG91bGQgY2FsbCBhZGp1c3RTbGlkZXJUaHVtYlNpemUoKS4K
IH0KIAotdm9pZCBSZW5kZXJUaGVtZTo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVj
dCopIGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lOjphZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVy
U3R5bGUqKSBjb25zdAogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5o
CmluZGV4IGJmNGZiNDJkNjIwZGIyZmNkMmViOTNiYjQyZmU4YjkzNGUyOGRmNDAuLjdkZmUwNTY0
YTU2YWM3MzdlNGNmMzkxMzVjYzM5ZjMwMjFjMjY3NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5oCkBAIC0xNjAsNyArMTYwLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCBpbnQgbWluaW11bU1lbnVMaXN0U2l6ZShSZW5kZXJTdHlsZSopIGNvbnN0IHsgcmV0dXJuIDA7
IH0KIAotICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0
KikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJT
dHlsZSopIGNvbnN0OwogCiAgICAgdmlydHVhbCBpbnQgcG9wdXBJbnRlcm5hbFBhZGRpbmdMZWZ0
KFJlbmRlclN0eWxlKikgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgaW50IHBvcHVw
SW50ZXJuYWxQYWRkaW5nUmlnaHQoUmVuZGVyU3R5bGUqKSBjb25zdCB7IHJldHVybiAwOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxp
bnV4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGlu
dXguY3BwCmluZGV4IGMzZjE1Yzg3YTlkNDM0ODdhZWM2OTM5Y2RmMjMzMzc4YTk5OWQwYjIuLjdh
ZjE0YzJlODQ0Njk1MWYxNGUwNDEzY2UyZmQyM2U2YTVmYmJkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguY3BwCkBAIC0x
NDMsMTggKzE0MywxOCBAQCBDb2xvciBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnBsYXRmb3Jt
SW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAogICAgIHJldHVybiBtX2lu
YWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yOwogfQogCi12b2lkIFJlbmRlclRoZW1lQ2hy
b21pdW1MaW51eDo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCogbykgY29uc3QK
K3ZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjphZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVu
ZGVyU3R5bGUqIHN0eWxlKSBjb25zdAogewogICAgIEludFNpemUgc2l6ZSA9IFBsYXRmb3JtQnJp
ZGdlOjpnZXRUaGVtZVBhcnRTaXplKFBsYXRmb3JtQnJpZGdlOjpQYXJ0U2xpZGVyVGh1bWIpOwog
Ci0gICAgaWYgKG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYkhvcml6b250
YWxQYXJ0KSB7Ci0gICAgICAgIG8tPnN0eWxlKCktPnNldFdpZHRoKExlbmd0aChzaXplLndpZHRo
KCksIEZpeGVkKSk7Ci0gICAgICAgIG8tPnN0eWxlKCktPnNldEhlaWdodChMZW5ndGgoc2l6ZS5o
ZWlnaHQoKSwgRml4ZWQpKTsKLSAgICB9IGVsc2UgaWYgKG8tPnN0eWxlKCktPmFwcGVhcmFuY2Uo
KSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkgewotICAgICAgICBvLT5zdHlsZSgpLT5zZXRX
aWR0aChMZW5ndGgoc2l6ZS5oZWlnaHQoKSwgRml4ZWQpKTsKLSAgICAgICAgby0+c3R5bGUoKS0+
c2V0SGVpZ2h0KExlbmd0aChzaXplLndpZHRoKCksIEZpeGVkKSk7CisgICAgaWYgKHN0eWxlLT5h
cHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCkgeworICAgICAgICBzdHls
ZS0+c2V0V2lkdGgoTGVuZ3RoKHNpemUud2lkdGgoKSwgRml4ZWQpKTsKKyAgICAgICAgc3R5bGUt
PnNldEhlaWdodChMZW5ndGgoc2l6ZS5oZWlnaHQoKSwgRml4ZWQpKTsKKyAgICB9IGVsc2UgaWYg
KHN0eWxlLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQpIHsKKyAgICAg
ICAgc3R5bGUtPnNldFdpZHRoKExlbmd0aChzaXplLmhlaWdodCgpLCBGaXhlZCkpOworICAgICAg
ICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aChzaXplLndpZHRoKCksIEZpeGVkKSk7CiAgICAgfSBl
bHNlCi0gICAgICAgIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjphZGp1c3RTbGlkZXJUaHVtYlNp
emUobyk7CisgICAgICAgIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjphZGp1c3RTbGlkZXJUaHVt
YlNpemUoc3R5bGUpOwogfQogCiBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6c3VwcG9y
dHNDb250cm9sVGludHMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oCmluZGV4IDhmM2ViOTgyZjNjZjUxZGZjOTE5OTIw
YjNiMDdhM2ZiMWZiZGY5YzguLjA5OTAwMWRmZDcyNzE5YmU0MzQ0NDRkMmU3MmYyM2RhMzZiYzA0
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9t
aXVtTGludXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJv
bWl1bUxpbnV4LmgKQEAgLTU0LDcgKzU0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkg
Y29uc3Q7CiAgICAgICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZv
cmVncm91bmRDb2xvcigpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlk
ZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgdm9pZCBh
ZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUqKSBjb25zdDsKIAogICAgICAgICBzdGF0
aWMgdm9pZCBzZXRDYXJldEJsaW5rSW50ZXJ2YWwoZG91YmxlIGludGVydmFsKTsKICAgICAgICAg
dmlydHVhbCBkb3VibGUgY2FyZXRCbGlua0ludGVydmFsSW50ZXJuYWwoKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oCmluZGV4
IDg0YjRkYmQ2M2Y4NGM5MTkwZjUwMTdlNGJmNmEzYjZlOWJmYjRlMDQuLjM0ODUzYzA2YjMyNTU1
ZDZjN2ZmMDg5Nzg5NjEzMWMwMzMxMjRlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaApAQCAtMzMsNyArMzMsNyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVuZGVyVGhlbWU+IGNyZWF0ZSgpOwogcHJvdGVjdGVk
OgogI2lmIEVOQUJMRShWSURFTykKLSAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0TWVkaWFTbGlkZXJU
aHVtYlNpemUoUmVuZGVyT2JqZWN0KikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGFkanVzdE1l
ZGlhU2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKikgY29uc3Q7CiAgICAgdmlydHVhbCBib29s
IHBhaW50TWVkaWFQbGF5QnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNv
bnN0IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYU11dGVCdXR0b24oUmVu
ZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZpcnR1
YWwgYm9vbCBwYWludE1lZGlhU2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJ
bmZvJiwgY29uc3QgSW50UmVjdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbQppbmRleCA2MDY3OTdhNmIyNDA0NTU2ODRjOWI4ODE1
MzNlOWFhMWM3ZTBkY2EyLi5lMzRmYjkwNjc3NjRjODY5YzMxNzQ1NmNiZTA3MDdjYWUyNjNkMTVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1
bU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1
bU1hYy5tbQpAQCAtMTIyLDkgKzEyMiw5IEBAIHZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6
dXBkYXRlQWN0aXZlU3RhdGUoTlNDZWxsKiBjZWxsLCBjb25zdCBSZW5kZXJPYmplY3QqCiAKICNp
ZiBFTkFCTEUoVklERU8pCiAKLXZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6YWRqdXN0TWVk
aWFTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KiBvKSBjb25zdAordm9pZCBSZW5kZXJUaGVt
ZUNocm9taXVtTWFjOjphZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShSZW5kZXJPU3R5bGUqIHN0
eWxlKSBjb25zdAogewotICAgIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6YWRqdXN0TWVk
aWFTbGlkZXJUaHVtYlNpemUobyk7CisgICAgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjph
ZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShzdHlsZSk7CiB9CiAKIGJvb2wgUmVuZGVyVGhlbWVD
aHJvbWl1bU1hYzo6cGFpbnRNZWRpYVBsYXlCdXR0b24oUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNv
bnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAKaW5k
ZXggY2FmYzM0ZDMxMmUxMjkxZTc3NmM5ZTljM2QyMTA0YWJlNDhkOWRlYi4uZTJiY2ZmMmRiODZj
NTU3ZGMwMDViOGM4OWNmMGIwYjQ5NWVhZmFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwCkBAIC00MDcsMTIgKzQwNywx
MiBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjpwYWludE1lZGlhVm9sdW1lU2xpZGVy
VHJhY2soUmVuZGVyT2JqZWN0KiBvYmplY3QsCiAjZW5kaWYKIH0KIAotdm9pZCBSZW5kZXJUaGVt
ZUNocm9taXVtU2tpYTo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCogb2JqZWN0
KSBjb25zdAordm9pZCBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6YWRqdXN0U2xpZGVyVGh1bWJT
aXplKFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKIHsKICNpZiBFTkFCTEUoVklERU8pCi0gICAg
UmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjphZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShv
YmplY3QpOworICAgIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6YWRqdXN0TWVkaWFTbGlk
ZXJUaHVtYlNpemUoc3R5bGUpOwogI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0ob2JqZWN0KTsKKyAg
ICBVTlVTRURfUEFSQU0oc3R5bGUpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmgKaW5kZXggMmZhZjA2NDRlYzI3
M2RmMjFmNzNmZTJmOGNmODVhMDZmMGU4NWFhMS4uMGM5OThiMzI2NTQxZmRhYzQ5YjgyZWNiNDU0
ZjkwOGU5OTgzZGFiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ2hyb21pdW1Ta2lhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ2hyb21pdW1Ta2lhLmgKQEAgLTkxLDcgKzkxLDcgQEAgY2xhc3MgUmVuZGVyVGhlbWVD
aHJvbWl1bVNraWEgOiBwdWJsaWMgUmVuZGVyVGhlbWUgewogICAgICAgICB2aXJ0dWFsIGJvb2wg
cGFpbnRNZWRpYUNvbnRyb2xzQmFja2dyb3VuZChSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludElu
Zm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhU2xp
ZGVyVHJhY2soUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYp
OwogICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVZvbHVtZVNsaWRlclRyYWNrKFJlbmRl
ck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKLSAgICAgICAgdmly
dHVhbCB2b2lkIGFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJPYmplY3QqKSBjb25zdDsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSopIGNv
bnN0OwogICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVNsaWRlclRodW1iKFJlbmRlck9i
amVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICAgICAgdmlydHVh
bCBib29sIHBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqLCBjb25zdCBQ
YWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludE1l
ZGlhUGxheUJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRS
ZWN0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJv
bWl1bVdpbi5jcHAKaW5kZXggNTNlYzljYmVjMzgzMzlmMWVjODNhMjM4MTgwNjI0MWUwN2QzODhk
Yy4uZjI4OTYzNzg1M2M4MzFjMjRkOGU3NWJhN2Y2YmE4NjRmMzFkNmQxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcApAQCAt
Mzk3LDE5ICszOTcsMTkgQEAgQ29sb3IgUmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6c3lzdGVtQ29s
b3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0CiAgICAgcmV0dXJuIENvbG9yKEdldFJWYWx1ZShjb2xv
ciksIEdldEdWYWx1ZShjb2xvciksIEdldEJWYWx1ZShjb2xvcikpOwogfQogCi12b2lkIFJlbmRl
clRoZW1lQ2hyb21pdW1XaW46OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJPYmplY3QqIG8p
IGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1XaW46OmFkanVzdFNsaWRlclRodW1iU2l6
ZShSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7CiAgICAgLy8gVGhlc2Ugc2l6ZXMgbWF0Y2gg
d2hhdCBXaW5YUCBkcmF3cyBmb3IgdmFyaW91cyBtZW51cy4KICAgICBjb25zdCBpbnQgc2xpZGVy
VGh1bWJBbG9uZ0F4aXMgPSAxMTsKICAgICBjb25zdCBpbnQgc2xpZGVyVGh1bWJBY3Jvc3NBeGlz
ID0gMjE7Ci0gICAgaWYgKG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYkhv
cml6b250YWxQYXJ0KSB7Ci0gICAgICAgIG8tPnN0eWxlKCktPnNldFdpZHRoKExlbmd0aChzbGlk
ZXJUaHVtYkFsb25nQXhpcywgRml4ZWQpKTsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0SGVpZ2h0
KExlbmd0aChzbGlkZXJUaHVtYkFjcm9zc0F4aXMsIEZpeGVkKSk7Ci0gICAgfSBlbHNlIGlmIChv
LT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQpIHsKLSAg
ICAgICAgby0+c3R5bGUoKS0+c2V0V2lkdGgoTGVuZ3RoKHNsaWRlclRodW1iQWNyb3NzQXhpcywg
Rml4ZWQpKTsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0SGVpZ2h0KExlbmd0aChzbGlkZXJUaHVt
YkFsb25nQXhpcywgRml4ZWQpKTsKKyAgICBpZiAoc3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBTbGlk
ZXJUaHVtYkhvcml6b250YWxQYXJ0KSB7CisgICAgICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgo
c2xpZGVyVGh1bWJBbG9uZ0F4aXMsIEZpeGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRIZWlnaHQo
TGVuZ3RoKHNsaWRlclRodW1iQWNyb3NzQXhpcywgRml4ZWQpKTsKKyAgICB9IGVsc2UgaWYgKHN0
eWxlLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQpIHsKKyAgICAgICAg
c3R5bGUtPnNldFdpZHRoKExlbmd0aChzbGlkZXJUaHVtYkFjcm9zc0F4aXMsIEZpeGVkKSk7Cisg
ICAgICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKHNsaWRlclRodW1iQWxvbmdBeGlzLCBGaXhl
ZCkpOwogICAgIH0gZWxzZQotICAgICAgICBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6YWRqdXN0
U2xpZGVyVGh1bWJTaXplKG8pOworICAgICAgICBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6YWRq
dXN0U2xpZGVyVGh1bWJTaXplKHN0eWxlKTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZUNocm9taXVt
V2luOjpwYWludENoZWNrYm94KFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBpLCBj
b25zdCBJbnRSZWN0JiByKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQ2hyb21pdW1XaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUNocm9taXVtV2luLmgKaW5kZXggNjYxYjYyMzlkZjU0Y2JhODAyMzU1OGJhYmFlZmFmY2Vk
ODgzMjRhNy4uYzQ3YTY3OTEwZDgwNzhhNmViYjdhYTU3MzJmZjM0MWE5NWU1ZWU0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5oCkBA
IC02MSw3ICs2MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lk
IHN5c3RlbUZvbnQoaW50IHByb3BJZCwgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7CiAgICAgICAg
IHZpcnR1YWwgQ29sb3Igc3lzdGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0OwogCi0gICAg
ICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KikgY29u
c3Q7CisgICAgICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5
bGUqKSBjb25zdDsKIAogICAgICAgICAvLyBWYXJpb3VzIHBhaW50IGZ1bmN0aW9ucy4KICAgICAg
ICAgdmlydHVhbCBib29sIHBhaW50Q2hlY2tib3goUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJ
bmZvJiwgY29uc3QgSW50UmVjdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMuaAppbmRleCA4YTE3YWNmODMzY2IwN2Q1ZmE4YjYxZDJhYWE0YzZjMmE3MTg1NGFhLi5i
OTIzYjNlMmY5Njc2NWIxODdkZjBkZmI0YzM1ODUyYzBmNjIzZmFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaApAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIGludCBtaW5pbXVtTWVudUxpc3RTaXplKFJlbmRlclN0eWxlKikgY29uc3Q7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCop
IGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5
bGUqKSBjb25zdDsKICAgICAKICAgICB2aXJ0dWFsIGludCBwb3B1cEludGVybmFsUGFkZGluZ0xl
ZnQoUmVuZGVyU3R5bGUqKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBwb3B1cEludGVybmFsUGFk
ZGluZ1JpZ2h0KFJlbmRlclN0eWxlKikgY29uc3Q7CkBAIC0xNzAsNyArMTcwLDcgQEAgcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgYm9vbCBoYXNPd25EaXNhYmxlZFN0YXRlSGFuZGxpbmdGb3IoQ29u
dHJvbFBhcnQpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCB1c2VzTWVkaWFDb250cm9sU3RhdHVz
RGlzcGxheSgpOwogICAgIHZpcnR1YWwgYm9vbCB1c2VzTWVkaWFDb250cm9sVm9sdW1lU2xpZGVy
KCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKFJl
bmRlck9iamVjdCopIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RNZWRpYVNsaWRlclRo
dW1iU2l6ZShSZW5kZXJTdHlsZSopIGNvbnN0OwogICAgIHZpcnR1YWwgSW50UG9pbnQgdm9sdW1l
U2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24oUmVuZGVyQm94KiwgY29uc3QgSW50U2l6ZSYpIGNv
bnN0OwogI2VuZGlmCiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW0KaW5kZXggZDBmYzllYjYyMTFlMjVlNTI5ZTU0OTUxMDUzMTc2MTM0MGJkOGU1Ni4uMWQy
Mjc3NzJjYzdmNWVjNzIwZTc4MGU2MmU2OTAzODUxZDk4YzUzNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtMTI4OSw4ICsxMjg5LDkgQEAgYm9vbCBS
ZW5kZXJUaGVtZU1hYzo6cGFpbnRTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBh
aW50SW5mbyYgcGFpbnRJbmYKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUmVuZGVyVGhl
bWVNYWM6OmFkanVzdFNsaWRlclRodW1iU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0
eWxlKiBzdHlsZSwgRWxlbWVudCopIGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lTWFjOjphZGp1c3RT
bGlkZXJUaHVtYlN0eWxlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yLCBSZW5kZXJTdHlsZSog
c3R5bGUsIEVsZW1lbnQqIGVsZW1lbnQpIGNvbnN0CiB7CisgICAgUmVuZGVyVGhlbWU6OmFkanVz
dFNsaWRlclRodW1iU3R5bGUoc2VsZWN0b3IsIHN0eWxlLCBlbGVtZW50KTsKICAgICBzdHlsZS0+
c2V0Qm94U2hhZG93KG51bGxwdHIpOwogfQogCkBAIC0xNjQzLDQwICsxNjQ0LDQwIEBAIGNvbnN0
IGludCBzbGlkZXJUaHVtYkhlaWdodCA9IDE1OwogY29uc3QgaW50IG1lZGlhU2xpZGVyVGh1bWJX
aWR0aCA9IDEzOwogY29uc3QgaW50IG1lZGlhU2xpZGVyVGh1bWJIZWlnaHQgPSAxNDsKIAotdm9p
ZCBSZW5kZXJUaGVtZU1hYzo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCogbykg
Y29uc3QKK3ZvaWQgUmVuZGVyVGhlbWVNYWM6OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJT
dHlsZSogc3R5bGUpIGNvbnN0CiB7Ci0gICAgZmxvYXQgem9vbUxldmVsID0gby0+c3R5bGUoKS0+
ZWZmZWN0aXZlWm9vbSgpOwotICAgIGlmIChvLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xp
ZGVyVGh1bWJIb3Jpem9udGFsUGFydCB8fCBvLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xp
ZGVyVGh1bWJWZXJ0aWNhbFBhcnQpIHsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0V2lkdGgoTGVu
Z3RoKHN0YXRpY19jYXN0PGludD4oc2xpZGVyVGh1bWJXaWR0aCAqIHpvb21MZXZlbCksIEZpeGVk
KSk7Ci0gICAgICAgIG8tPnN0eWxlKCktPnNldEhlaWdodChMZW5ndGgoc3RhdGljX2Nhc3Q8aW50
PihzbGlkZXJUaHVtYkhlaWdodCAqIHpvb21MZXZlbCksIEZpeGVkKSk7CisgICAgZmxvYXQgem9v
bUxldmVsID0gc3R5bGUtPmVmZmVjdGl2ZVpvb20oKTsKKyAgICBpZiAoc3R5bGUtPmFwcGVhcmFu
Y2UoKSA9PSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0IHx8IHN0eWxlLT5hcHBlYXJhbmNlKCkg
PT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQpIHsKKyAgICAgICAgc3R5bGUtPnNldFdpZHRoKExl
bmd0aChzdGF0aWNfY2FzdDxpbnQ+KHNsaWRlclRodW1iV2lkdGggKiB6b29tTGV2ZWwpLCBGaXhl
ZCkpOworICAgICAgICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KHNs
aWRlclRodW1iSGVpZ2h0ICogem9vbUxldmVsKSwgRml4ZWQpKTsKICAgICB9IAogCiAjaWYgRU5B
QkxFKFZJREVPKQotICAgIGFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKG8pOworICAgIGFkanVz
dE1lZGlhU2xpZGVyVGh1bWJTaXplKHN0eWxlKTsKICNlbmRpZgogfQogCiAjaWYgRU5BQkxFKFZJ
REVPKQogCi12b2lkIFJlbmRlclRoZW1lTWFjOjphZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShS
ZW5kZXJPYmplY3QqIG8pIGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lTWFjOjphZGp1c3RNZWRpYVNs
aWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7Ci0gICAgQ29udHJvbFBh
cnQgcGFydCA9IG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKTsKKyAgICBDb250cm9sUGFydCBwYXJ0
ID0gc3R5bGUtPmFwcGVhcmFuY2UoKTsKIAogICAgIGlmIChwYXJ0ID09IE1lZGlhU2xpZGVyVGh1
bWJQYXJ0IHx8IHBhcnQgPT0gTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQpIHsKICAgICAgICAg
aW50IHdpZHRoID0gbWVkaWFTbGlkZXJUaHVtYldpZHRoOwogICAgICAgICBpbnQgaGVpZ2h0ID0g
bWVkaWFTbGlkZXJUaHVtYkhlaWdodDsKICAgICAgICAgCiAgICAgICAgIGlmIChtZWRpYUNvbnRy
b2xsZXJUaGVtZSgpID09IE1lZGlhQ29udHJvbGxlclRoZW1lUXVpY2tUaW1lKSB7Ci0gICAgICAg
ICAgICBDR1NpemUgIHNpemU7CisgICAgICAgICAgICBDR1NpemUgc2l6ZTsKICAgICAgICAgICAg
IAogICAgICAgICAgICAgd2tNZWFzdXJlTWVkaWFVSVBhcnQocGFydCA9PSBNZWRpYVNsaWRlclRo
dW1iUGFydCA/IE1lZGlhU2xpZGVyVGh1bWIgOiBNZWRpYVZvbHVtZVNsaWRlclRodW1iLCBNZWRp
YUNvbnRyb2xsZXJUaGVtZVF1aWNrVGltZSwgTlVMTCwgJnNpemUpOwogICAgICAgICAgICAgd2lk
dGggPSBzaXplLndpZHRoOwogICAgICAgICAgICAgaGVpZ2h0ID0gc2l6ZS5oZWlnaHQ7CiAgICAg
ICAgIH0KIAotICAgICAgICBmbG9hdCB6b29tTGV2ZWwgPSBvLT5zdHlsZSgpLT5lZmZlY3RpdmVa
b29tKCk7Ci0gICAgICAgIG8tPnN0eWxlKCktPnNldFdpZHRoKExlbmd0aChzdGF0aWNfY2FzdDxp
bnQ+KHdpZHRoICogem9vbUxldmVsKSwgRml4ZWQpKTsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0
SGVpZ2h0KExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KGhlaWdodCAqIHpvb21MZXZlbCksIEZpeGVk
KSk7CisgICAgICAgIGZsb2F0IHpvb21MZXZlbCA9IHN0eWxlLT5lZmZlY3RpdmVab29tKCk7Cisg
ICAgICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgoc3RhdGljX2Nhc3Q8aW50Pih3aWR0aCAqIHpv
b21MZXZlbCksIEZpeGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKHN0YXRp
Y19jYXN0PGludD4oaGVpZ2h0ICogem9vbUxldmVsKSwgRml4ZWQpKTsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVNhZmFyaS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVTYWZhcmkuY3BwCmluZGV4IDFh
ODkzNDU1MmVjYjI1YzZlMWYxYmNiMDEwZDFlOWUxMmY2YTM0M2YuLmVlNWU2OGE5NjdkYWY3Zjk2
ZDVhOTViZGM4MTU3ODgwY2FiMTA0MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZVNhZmFyaS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lU2FmYXJpLmNwcApAQCAtOTkwLDYgKzk5MCw3IEBAIGJvb2wgUmVuZGVyVGhl
bWVTYWZhcmk6OnBhaW50U2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludElu
Zm8mIHBhaW50CiAKIHZvaWQgUmVuZGVyVGhlbWVTYWZhcmk6OmFkanVzdFNsaWRlclRodW1iU3R5
bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVu
dCogZSkgY29uc3QgCiB7IAorICAgIFJlbmRlclRoZW1lOjphZGp1c3RTbGlkZXJUaHVtYlN0eWxl
KHNlbGVjdG9yLCBzdHlsZSwgZSk7CiAgICAgc3R5bGUtPnNldEJveFNoYWRvdyhudWxscHRyKTsg
CiB9IAogCkBAIC0xMDE0LDE1ICsxMDE1LDE1IEBAIGJvb2wgUmVuZGVyVGhlbWVTYWZhcmk6OnBh
aW50U2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIHBhaW50CiBj
b25zdCBpbnQgc2xpZGVyVGh1bWJXaWR0aCA9IDE1OwogY29uc3QgaW50IHNsaWRlclRodW1iSGVp
Z2h0ID0gMTU7CiAKLXZvaWQgUmVuZGVyVGhlbWVTYWZhcmk6OmFkanVzdFNsaWRlclRodW1iU2l6
ZShSZW5kZXJPYmplY3QqIG8pIGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lU2FmYXJpOjphZGp1c3RT
bGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdAogewotICAgIGlmIChvLT5z
dHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCB8fCBvLT5z
dHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQpIHsKLSAgICAg
ICAgby0+c3R5bGUoKS0+c2V0V2lkdGgoTGVuZ3RoKHNsaWRlclRodW1iV2lkdGgsIEZpeGVkKSk7
Ci0gICAgICAgIG8tPnN0eWxlKCktPnNldEhlaWdodChMZW5ndGgoc2xpZGVyVGh1bWJIZWlnaHQs
IEZpeGVkKSk7CisgICAgaWYgKHN0eWxlLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJIb3Jp
em9udGFsUGFydCB8fCBzdHlsZS0+YXBwZWFyYW5jZSgpID09IFNsaWRlclRodW1iVmVydGljYWxQ
YXJ0KSB7CisgICAgICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgoc2xpZGVyVGh1bWJXaWR0aCwg
Rml4ZWQpKTsKKyAgICAgICAgc3R5bGUtPnNldEhlaWdodChMZW5ndGgoc2xpZGVyVGh1bWJIZWln
aHQsIEZpeGVkKSk7CiAgICAgfSAKICNpZiBFTkFCTEUoVklERU8pCi0gICAgZWxzZSBpZiAoby0+
c3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IE1lZGlhU2xpZGVyVGh1bWJQYXJ0KSAKLSAgICAgICAg
UmVuZGVyTWVkaWFDb250cm9sczo6YWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUobyk7CisgICAg
ZWxzZSBpZiAoc3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVNsaWRlclRodW1iUGFydCkgCisg
ICAgICAgIFJlbmRlck1lZGlhQ29udHJvbHM6OmFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKHN0
eWxlKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVTYWZhcmkuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZVNhZmFyaS5oCmluZGV4IGI5MWUyOGU2ZWY1Y2FmYmVjZWVlMmQwMTVmMjMwNzI4NTU1ZDZjMjQu
LjY2MDA0ZjA0NDBkZDBmZDk3YzVhMmY5YjgzZjUwZDkwZmE5MmYzNmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVNhZmFyaS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVNhZmFyaS5oCkBAIC03Niw3ICs3Niw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgaW50IG1pbmltdW1NZW51TGlzdFNpemUoUmVuZGVyU3R5bGUq
KSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVy
T2JqZWN0KikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRodW1iU2l6ZShS
ZW5kZXJTdHlsZSopIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUaHVtYlN0
eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdDsgCiAg
ICAgCiAgICAgdmlydHVhbCBpbnQgcG9wdXBJbnRlcm5hbFBhZGRpbmdMZWZ0KFJlbmRlclN0eWxl
KikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcApp
bmRleCAxNWY2NGM1ZTRjNjRiNjBjYTI1ZDg2NWNhZDRiMmJhZDNhMDk4MmVlLi42OGM4YWQxMTYz
NzUzZDg2MzI5YWViZDlmNjEzOWQ2MzRhYmVjNmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZVdpbi5jcHAKQEAgLTgzMywxOSArODMzLDE5IEBAIGJvb2wgUmVuZGVy
VGhlbWVXaW46OnBhaW50U2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludElu
Zm8mIGksIGNvbnN0CiBjb25zdCBpbnQgc2xpZGVyVGh1bWJXaWR0aCA9IDc7CiBjb25zdCBpbnQg
c2xpZGVyVGh1bWJIZWlnaHQgPSAxNTsKIAotdm9pZCBSZW5kZXJUaGVtZVdpbjo6YWRqdXN0U2xp
ZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCogbykgY29uc3QKK3ZvaWQgUmVuZGVyVGhlbWVXaW46
OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7Ci0gICAg
Q29udHJvbFBhcnQgcGFydCA9IG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKTsKKyAgICBDb250cm9s
UGFydCBwYXJ0ID0gc3R5bGUtPmFwcGVhcmFuY2UoKTsKICAgICBpZiAocGFydCA9PSBTbGlkZXJU
aHVtYlZlcnRpY2FsUGFydCkgewotICAgICAgICBvLT5zdHlsZSgpLT5zZXRXaWR0aChMZW5ndGgo
c2xpZGVyVGh1bWJIZWlnaHQsIEZpeGVkKSk7Ci0gICAgICAgIG8tPnN0eWxlKCktPnNldEhlaWdo
dChMZW5ndGgoc2xpZGVyVGh1bWJXaWR0aCwgRml4ZWQpKTsKKyAgICAgICAgc3R5bGUtPnNldFdp
ZHRoKExlbmd0aChzbGlkZXJUaHVtYkhlaWdodCwgRml4ZWQpKTsKKyAgICAgICAgc3R5bGUtPnNl
dEhlaWdodChMZW5ndGgoc2xpZGVyVGh1bWJXaWR0aCwgRml4ZWQpKTsKICAgICB9IGVsc2UgaWYg
KHBhcnQgPT0gU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCkgewotICAgICAgICBvLT5zdHlsZSgp
LT5zZXRXaWR0aChMZW5ndGgoc2xpZGVyVGh1bWJXaWR0aCwgRml4ZWQpKTsKLSAgICAgICAgby0+
c3R5bGUoKS0+c2V0SGVpZ2h0KExlbmd0aChzbGlkZXJUaHVtYkhlaWdodCwgRml4ZWQpKTsKKyAg
ICAgICAgc3R5bGUtPnNldFdpZHRoKExlbmd0aChzbGlkZXJUaHVtYldpZHRoLCBGaXhlZCkpOwor
ICAgICAgICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aChzbGlkZXJUaHVtYkhlaWdodCwgRml4ZWQp
KTsKICAgICB9CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGVsc2UgaWYgKHBhcnQgPT0gTWVkaWFT
bGlkZXJUaHVtYlBhcnQgfHwgcGFydCA9PSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydCkgCi0g
ICAgICAgIFJlbmRlck1lZGlhQ29udHJvbHM6OmFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKG8p
OworICAgICAgICBSZW5kZXJNZWRpYUNvbnRyb2xzOjphZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6
ZShzdHlsZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lV2luLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVXaW4uaAppbmRleCA3ZThhNDkxNTI4MmVkZjcxOTllOTA1ZTYxNmIwMzVmNGVlYzczYWJkLi4z
NzNiNDc5NGQ3NzA0YjljYzlkODA4ZDVjMTY0MTcwZGRmNzU0ZjFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uaApAQCAtOTMsNyArOTMsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqIG8sIGNvbnN0
IFBhaW50SW5mbyYgaSwgY29uc3QgSW50UmVjdCYgcik7CiAgICAgdmlydHVhbCBib29sIHBhaW50
U2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIGksIGNvbnN0IElu
dFJlY3QmIHIpOwotICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVy
T2JqZWN0KikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRodW1iU2l6ZShS
ZW5kZXJTdHlsZSopIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIHBvcHVwT3B0aW9uU3VwcG9y
dHNUZXh0SW5kZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW5DRS5jcHAKaW5kZXggYTU2YWIzZWE0N2E1YmYyODMy
MDZlYWJkM2MxMmViZTg5NTA0YTcyNi4uYWJjNzIxNmRiNGZhODFhMTc5YTQ4ZjZmMGMwNjQyY2Ri
M2VmZTdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
V2luQ0UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbkNF
LmNwcApAQCAtMzMxLDE0ICszMzEsMTQgQEAgQ29sb3IgUmVuZGVyVGhlbWVXaW5DRTo6c3lzdGVt
Q29sb3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0CiBjb25zdCBpbnQgc2xpZGVyVGh1bWJXaWR0aCA9
IDc7CiBjb25zdCBpbnQgc2xpZGVyVGh1bWJIZWlnaHQgPSAxNTsKIAotdm9pZCBSZW5kZXJUaGVt
ZVdpbkNFOjphZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KiBvKSBjb25zdAotewot
ICAgIGlmIChvLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBh
cnQpIHsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0V2lkdGgoTGVuZ3RoKHNsaWRlclRodW1iSGVp
Z2h0LCBGaXhlZCkpOwotICAgICAgICBvLT5zdHlsZSgpLT5zZXRIZWlnaHQoTGVuZ3RoKHNsaWRl
clRodW1iV2lkdGgsIEZpeGVkKSk7Ci0gICAgfSBlbHNlIGlmIChvLT5zdHlsZSgpLT5hcHBlYXJh
bmNlKCkgPT0gU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCkgewotICAgICAgICBvLT5zdHlsZSgp
LT5zZXRXaWR0aChMZW5ndGgoc2xpZGVyVGh1bWJXaWR0aCwgRml4ZWQpKTsKLSAgICAgICAgby0+
c3R5bGUoKS0+c2V0SGVpZ2h0KExlbmd0aChzbGlkZXJUaHVtYkhlaWdodCwgRml4ZWQpKTsKK3Zv
aWQgUmVuZGVyVGhlbWVXaW5DRTo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKiBz
dHlsZSkgY29uc3QKK3sKKyAgICBpZiAoc3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVt
YlZlcnRpY2FsUGFydCkgeworICAgICAgICBzdHlsZS0+c2V0V2lkdGgoTGVuZ3RoKHNsaWRlclRo
dW1iSGVpZ2h0LCBGaXhlZCkpOworICAgICAgICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aChzbGlk
ZXJUaHVtYldpZHRoLCBGaXhlZCkpOworICAgIH0gZWxzZSBpZiAoc3R5bGUtPmFwcGVhcmFuY2Uo
KSA9PSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0KSB7CisgICAgICAgIHN0eWxlLT5zZXRXaWR0
aChMZW5ndGgoc2xpZGVyVGh1bWJXaWR0aCwgRml4ZWQpKTsKKyAgICAgICAgc3R5bGUtPnNldEhl
aWdodChMZW5ndGgoc2xpZGVyVGh1bWJIZWlnaHQsIEZpeGVkKSk7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW5DRS5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luQ0UuaAppbmRleCAxNGE1YjEyODMy
NjZjMDAzNmU3YWVkM2QxNWNiZDAwZmJjMmI3NjgzLi5hN2RmNDg5NjdmYWVjNjNmZTk4MmI3MGFi
YjcwOWE5OGZmYWFjM2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVXaW5DRS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZVdpbkNFLmgKQEAgLTg5LDcgKzg5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAg
IHZpcnR1YWwgYm9vbCBwYWludFNsaWRlclRyYWNrKFJlbmRlck9iamVjdCogbywgY29uc3QgUGFp
bnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByKTsKICAgICAgICAgdmlydHVhbCBib29sIHBhaW50
U2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIGksIGNvbnN0IElu
dFJlY3QmIHIpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xpZGVyVGh1bWJTaXplKFJl
bmRlck9iamVjdCopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xpZGVyVGh1
bWJTaXplKFJlbmRlclN0eWxlKikgY29uc3Q7CiAKICAgICAgICAgdmlydHVhbCBib29sIHBvcHVw
T3B0aW9uU3VwcG9ydHNUZXh0SW5kZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96410</attachid>
            <date>2011-06-08 05:52:35 -0700</date>
            <delta_ts>2011-06-08 16:46:08 -0700</delta_ts>
            <desc>Patch 3</desc>
            <filename>bug-62208-20110608215232.patch</filename>
            <type>text/plain</type>
            <size>41125</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODgzMzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiNjEzMzg0MzA0MTVjMTU0
MTRlOTI2NTkzMzQyYTUzM2E5M2MyMDNhLi45MGE5YWQ0ZGVhNGM0OTUyNDY5NWE4YTAxZDdlYjY4
NzMxMDZjNWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzMgQEAKKzIwMTEtMDYtMDggIEtlbnQg
VGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSB0aGUgYXJndW1lbnQgb2YgUmVuZGVyVGhlbWU6
OmFkanVzdFNsaWRlclRodW1iU2l6ZSgpOiBSZW5kZXJPYmplY3QqIC0+IFJlbmRlclN0eWxlKgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyMDgKKwor
ICAgICAgICBDaGFuZ2UgdGhlIGFyZ3VtZW50IHR5cGUgb2YgUmVuZGVyVGhlbWU6OmFkanVzdFNs
aWRlclRodW1iU2l6ZSgpIGFuZAorICAgICAgICBSZW5kZXJNZWRpYUNvbnRyb2xzOjphZGp1c3RN
ZWRpYVNsaWRlclRodW1iU2l6ZSgpIGZyb20gUmVuZGVyT2JqZWN0KiB0byBSZW5kZXJTdHlsZSou
CisKKyAgICAgICAgQWxzbywgZWFjaCBvZiBhZGp1c3RTbGlkZXJUaHVtYlN0eWxlKCkgb3ZlcnJp
ZGVzIGNhbGxzIFJlbmRlclRoZW1lOjoKKyAgICAgICAgYWRqdXN0U2xpZGVyVGh1bWJTdHlsZSgp
IGZvciBmdXR1cmUgY2hhbmdlcy4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFRoaXMgaXMgYSBy
ZWZhY3RvcmluZyBhbmQgc2hvdWxkIG5vdCBjaGFuZ2UgYW55IGJlaGF2aW9yLgorCisgICAgICAg
ICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNsaWRlclRodW1iOjpsYXlvdXQpOiBQYXNzaW5nIFJlbmRlclN0eWxlKiBhbmQgcmVt
b3ZlIGEgRklYTUUgY29tbWVudC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVF
ZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVFZmw6OmFkanVzdFNsaWRlclRo
dW1iU3R5bGUpOiBDYWxscyBSZW5kZXJUaGVtZTo6YWRqdXN0U2xpZGVyVGh1bWJTdHlsZSgpLgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZUd0azo6YWRqdXN0U2xpZGVyVGh1bWJTdHlsZSk6IGRpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OmFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXpl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lR3RrOjphZGp1c3RTbGlkZXJUaHVtYlNpemUpOgorICAgICAgICAqIHBsYXRmb3JtL2d0
ay9SZW5kZXJUaGVtZUd0azMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6
OmFkanVzdFNsaWRlclRodW1iU2l6ZSk6CisgICAgICAgICogcGxhdGZvcm0vcXQvUmVuZGVyVGhl
bWVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVF0OjphZGp1c3RTbGlkZXJU
aHVtYlN0eWxlKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVF0OjphZGp1
c3RTbGlkZXJUaHVtYlNpemUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRy
b2xzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhQ29udHJvbHM6OmFkanVzdE1l
ZGlhU2xpZGVyVGh1bWJTaXplKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250
cm9scy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjphZGp1
c3RNZWRpYVNsaWRlclRodW1iU2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlh
Q29udHJvbHNDaHJvbWl1bS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjpsYXlvdXQpOiBQYXNzaW5nIFJlbmRl
clN0eWxlKiBhbmQgcmVtb3ZlIGEgRklYTUUgY29tbWVudC4KKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OmFkanVzdFNs
aWRlclRodW1iU3R5bGUpOiBBZGQgYSBjb21tZW50LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWU6OmFkanVzdFNsaWRlclRodW1iU2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRoZW1lLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OmFkanVzdFNs
aWRlclRodW1iU2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1M
aW51eC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW06CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFjOjphZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjphZGp1c3RTbGlkZXJUaHVt
YlNpemUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1XaW46OmFkanVzdFNsaWRlclRodW1iU2l6ZSk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6YWRqdXN0U2xp
ZGVyVGh1bWJTdHlsZSk6IENhbGxzIFJlbmRlclRoZW1lOjphZGp1c3RTbGlkZXJUaHVtYlN0eWxl
KCkuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6YWRqdXN0U2xpZGVyVGh1bWJT
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjphZGp1c3RNZWRpYVNsaWRl
clRodW1iU2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJpLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lU2FmYXJpOjphZGp1c3RTbGlkZXJUaHVtYlN0
eWxlKTogQ2FsbHMgUmVuZGVyVGhlbWU6OmFkanVzdFNsaWRlclRodW1iU3R5bGUoKS4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lU2FmYXJpOjphZGp1c3RTbGlkZXJUaHVtYlNpemUpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZVNhZmFyaS5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUaGVtZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVdp
bjo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVXaW4uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW5DRS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVdpbkNFOjphZGp1c3RTbGlkZXJUaHVtYlNpemUpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZVdpbkNFLmg6CisKIDIwMTEtMDYtMDggIE1h
cmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhlIGJ1aWxkLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKaW5k
ZXggOGEwNmNiMzNmYjVjYmZjYTAwZmZjOGFlNmRmZWY1NGQ5MWM3NGRiZi4uYTQ5ZTNlYmMwMDQw
ZmI4ZTI1ZGIxOWU2Zjk0MWU5YzZkODNlZGE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCkBAIC03NSwxMCArNzUsOCBAQCB2b2lk
IFJlbmRlclNsaWRlclRodW1iOjpsYXlvdXQoKQogICAgIGVsc2UgaWYgKHBhcmVudFN0eWxlLT5h
cHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1bWVTbGlkZXJQYXJ0KQogICAgICAgICBzdHlsZSgpLT5z
ZXRBcHBlYXJhbmNlKE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0KTsKIAotICAgIGlmIChzdHls
ZSgpLT5oYXNBcHBlYXJhbmNlKCkpIHsKLSAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHBh
c3MgdGhlIHN0eWxlLCBub3QgdGhlIHJlbmRlcmVyLCB0byB0aGUgdGhlbWUuCi0gICAgICAgIHRo
ZW1lKCktPmFkanVzdFNsaWRlclRodW1iU2l6ZSh0aGlzKTsKLSAgICB9CisgICAgaWYgKHN0eWxl
KCktPmhhc0FwcGVhcmFuY2UoKSkKKyAgICAgICAgdGhlbWUoKS0+YWRqdXN0U2xpZGVyVGh1bWJT
aXplKHN0eWxlKCkpOwogICAgIFJlbmRlckJsb2NrOjpsYXlvdXQoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKaW5kZXggZjE0OWU5YzIw
MTFkNDdlOGY0MjBkMTJjZmRhMjIyNWU0MmY0ZDI5My4uYzkwYzBlNGEzNTdkMGYxNTgyOTk0YTQ0
MWUyMThiMDhiYTZlZTdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L1JlbmRlclRoZW1lRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVu
ZGVyVGhlbWVFZmwuY3BwCkBAIC04MzQsNiArODM0LDcgQEAgdm9pZCBSZW5kZXJUaGVtZUVmbDo6
YWRqdXN0U2xpZGVyVHJhY2tTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiBzZWxlY3RvciwgUmVuZGVy
U3QKIAogdm9pZCBSZW5kZXJUaGVtZUVmbDo6YWRqdXN0U2xpZGVyVGh1bWJTdHlsZShDU1NTdHls
ZVNlbGVjdG9yKiBzZWxlY3RvciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50KiBlbGVtZW50
KSBjb25zdAogeworICAgIFJlbmRlclRoZW1lOjphZGp1c3RTbGlkZXJUaHVtYlN0eWxlKHNlbGVj
dG9yLCBzdHlsZSwgZWxlbWVudCk7CiAgICAgYWRqdXN0U2xpZGVyVHJhY2tTdHlsZShzZWxlY3Rv
ciwgc3R5bGUsIGVsZW1lbnQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1JlbmRlclRoZW1lR3RrLmNwcAppbmRleCBmNmFkN2FmODIwMTBkOTkyYzZlMWE4Zjc0ZGNkNDQ4
NmE5N2RkNGY5Li4xNDY4NjJiYTVlZWE1NDY4OTg1NDZhMzc3YzYyNWU2NDIwOWI2YWQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAKQEAgLTM5
Niw4ICszOTYsOSBAQCB2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RTbGlkZXJUcmFja1N0eWxl
KENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSogc3R5bAogICAgIHN0eWxlLT5zZXRCb3hT
aGFkb3cobnVsbHB0cik7CiB9CiAKLXZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdFNsaWRlclRo
dW1iU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCop
IGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RTbGlkZXJUaHVtYlN0eWxlKENTU1N0
eWxlU2VsZWN0b3IqIHNlbGVjdG9yLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqIGVsZW1l
bnQpIGNvbnN0CiB7CisgICAgUmVuZGVyVGhlbWU6OmFkanVzdFNsaWRlclRodW1iU3R5bGUoc2Vs
ZWN0b3IsIHN0eWxlLCBlbGVtZW50KTsKICAgICBzdHlsZS0+c2V0Qm94U2hhZG93KG51bGxwdHIp
OwogfQogCkBAIC00NzIsMTEgKzQ3MywxMSBAQCBTdHJpbmcgUmVuZGVyVGhlbWVHdGs6OmV4dHJh
TWVkaWFDb250cm9sc1N0eWxlU2hlZXQoKQogICAgIHJldHVybiBTdHJpbmcobWVkaWFDb250cm9s
c0d0a1VzZXJBZ2VudFN0eWxlU2hlZXQsIHNpemVvZihtZWRpYUNvbnRyb2xzR3RrVXNlckFnZW50
U3R5bGVTaGVldCkpOwogfQogCi12b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RNZWRpYVNsaWRl
clRodW1iU2l6ZShSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCkgY29uc3QKK3ZvaWQgUmVuZGVy
VGhlbWVHdGs6OmFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKiBzdHlsZSkg
Y29uc3QKIHsKLSAgICBBU1NFUlQocmVuZGVyT2JqZWN0LT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkg
PT0gTWVkaWFTbGlkZXJUaHVtYlBhcnQpOwotICAgIHJlbmRlck9iamVjdC0+c3R5bGUoKS0+c2V0
V2lkdGgoTGVuZ3RoKG1fbWVkaWFTbGlkZXJUaHVtYldpZHRoLCBGaXhlZCkpOwotICAgIHJlbmRl
ck9iamVjdC0+c3R5bGUoKS0+c2V0SGVpZ2h0KExlbmd0aChtX21lZGlhU2xpZGVyVGh1bWJIZWln
aHQsIEZpeGVkKSk7CisgICAgQVNTRVJUKHN0eWxlLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFTbGlk
ZXJUaHVtYlBhcnQpOworICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgobV9tZWRpYVNsaWRlclRo
dW1iV2lkdGgsIEZpeGVkKSk7CisgICAgc3R5bGUtPnNldEhlaWdodChMZW5ndGgobV9tZWRpYVNs
aWRlclRodW1iSGVpZ2h0LCBGaXhlZCkpOwogfQogCiBib29sIFJlbmRlclRoZW1lR3RrOjpwYWlu
dE1lZGlhQnV0dG9uKFJlbmRlck9iamVjdCogcmVuZGVyT2JqZWN0LCBHcmFwaGljc0NvbnRleHQq
IGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IGNoYXIqIGljb25OYW1lKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaAppbmRleCA0ZTYwZmRm
YmM3ZTExNzgxZWQ1OTAxZjY2ZjFlODJiMThjOTBhYWEwLi42YTI0ZDU5MTRiNDhlMjVjNWQzNmI2
N2M1Y2ZhM2ZhYjNmM2M5ZmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUmVuZGVyVGhlbWVHdGsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVu
ZGVyVGhlbWVHdGsuaApAQCAtMTQyLDEyICsxNDIsMTIgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1
YWwgYm9vbCBwYWludFNsaWRlclRodW1iKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYs
IGNvbnN0IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xpZGVyVGh1bWJTdHls
ZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Q7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCogb2JqZWN0
KSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlclN0
eWxlKikgY29uc3Q7CiAKICNpZiBFTkFCTEUoVklERU8pCiAgICAgdm9pZCBpbml0TWVkaWFDb2xv
cnMoKTsKICAgICB2b2lkIGluaXRNZWRpYUJ1dHRvbnMoKTsKLSAgICB2b2lkIGFkanVzdE1lZGlh
U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCopIGNvbnN0OworICAgIHZvaWQgYWRqdXN0TWVk
aWFTbGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wg
aGFzT3duRGlzYWJsZWRTdGF0ZUhhbmRsaW5nRm9yKENvbnRyb2xQYXJ0KSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFGdWxsc2NyZWVuQnV0dG9uKFJl
bmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICB2aXJ0
dWFsIGJvb2wgcGFpbnRNZWRpYVBsYXlCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJ
bmZvJiwgY29uc3QgSW50UmVjdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1JlbmRlclRoZW1lR3RrMi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
UmVuZGVyVGhlbWVHdGsyLmNwcAppbmRleCBhM2IzYjcwMWI4YTUxODFiZDk5NDI5MTE3Yzg2YWIw
OWZiOWJkZDgzLi41MDY3NWQxZTk0MGIzOGVmNjQ2Y2E5MDE2MzNlZmRkNWI5NzhiMjU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsyLmNwcApAQCAt
NTI0LDEyICs1MjQsMTIgQEAgYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRTbGlkZXJUaHVtYihS
ZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBpbmYKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLXZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5k
ZXJPYmplY3QqIG8pIGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RTbGlkZXJUaHVt
YlNpemUoUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdAogewotICAgIENvbnRyb2xQYXJ0IHBhcnQg
PSBvLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCk7CisgICAgQ29udHJvbFBhcnQgcGFydCA9IHN0eWxl
LT5hcHBlYXJhbmNlKCk7CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGlmIChwYXJ0ID09IE1lZGlh
U2xpZGVyVGh1bWJQYXJ0KSB7Ci0gICAgICAgIGFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKG8p
OworICAgICAgICBhZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShzdHlsZSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAjZW5kaWYKQEAgLTU0MiwxMyArNTQyLDEzIEBAIHZvaWQgUmVuZGVyVGhl
bWVHdGs6OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJPYmplY3QqIG8pIGNvbnN0CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CiAKICAgICBpZiAocGFydCA9PSBTbGlkZXJUaHVt
Ykhvcml6b250YWxQYXJ0KSB7Ci0gICAgICAgIG8tPnN0eWxlKCktPnNldFdpZHRoKExlbmd0aChs
ZW5ndGgsIEZpeGVkKSk7Ci0gICAgICAgIG8tPnN0eWxlKCktPnNldEhlaWdodChMZW5ndGgod2lk
dGgsIEZpeGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgobGVuZ3RoLCBGaXhl
ZCkpOworICAgICAgICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aCh3aWR0aCwgRml4ZWQpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICBBU1NFUlQocGFydCA9PSBTbGlkZXJUaHVtYlZlcnRp
Y2FsUGFydCB8fCBwYXJ0ID09IE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0KTsKLSAgICBvLT5z
dHlsZSgpLT5zZXRXaWR0aChMZW5ndGgod2lkdGgsIEZpeGVkKSk7Ci0gICAgby0+c3R5bGUoKS0+
c2V0SGVpZ2h0KExlbmd0aChsZW5ndGgsIEZpeGVkKSk7CisgICAgc3R5bGUtPnNldFdpZHRoKExl
bmd0aCh3aWR0aCwgRml4ZWQpKTsKKyAgICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aChsZW5ndGgs
IEZpeGVkKSk7CiB9CiAKICNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGszLmNwcAppbmRleCAxYjJiOGNjNzg4YzM2
NGNiYWQzODViZDIxMjJhZDVkZTMwMGE5ZWFhLi5kNzA0MWY1MmE4OTkzMjA0YzM2MmMyYWE4MjU3
NTBiMzE1NWQ5NTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVu
ZGVyVGhlbWVHdGszLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVy
VGhlbWVHdGszLmNwcApAQCAtNjYzLDEyICs2NjMsMTIgQEAgYm9vbCBSZW5kZXJUaGVtZUd0azo6
cGFpbnRTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCwgY29uc3QgUGFpbnRJ
bmYKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdFNs
aWRlclRodW1iU2l6ZShSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCkgY29uc3QKK3ZvaWQgUmVu
ZGVyVGhlbWVHdGs6OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSogc3R5bGUpIGNv
bnN0CiB7Ci0gICAgQ29udHJvbFBhcnQgcGFydCA9IHJlbmRlck9iamVjdC0+c3R5bGUoKS0+YXBw
ZWFyYW5jZSgpOworICAgIENvbnRyb2xQYXJ0IHBhcnQgPSBzdHlsZS0+YXBwZWFyYW5jZSgpOwog
I2lmIEVOQUJMRShWSURFTykKICAgICBpZiAocGFydCA9PSBNZWRpYVNsaWRlclRodW1iUGFydCkg
ewotICAgICAgICBhZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShyZW5kZXJPYmplY3QpOworICAg
ICAgICBhZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShzdHlsZSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAjZW5kaWYKQEAgLTY3OSwxMyArNjc5LDEzIEBAIHZvaWQgUmVuZGVyVGhlbWVHdGs6
OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCkgY29uc3QK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNsaWRlci1sZW5ndGgiLCAmc2xpZGVy
TGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKICAgICBpZiAo
cGFydCA9PSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0KSB7Ci0gICAgICAgIHJlbmRlck9iamVj
dC0+c3R5bGUoKS0+c2V0V2lkdGgoTGVuZ3RoKHNsaWRlckxlbmd0aCwgRml4ZWQpKTsKLSAgICAg
ICAgcmVuZGVyT2JqZWN0LT5zdHlsZSgpLT5zZXRIZWlnaHQoTGVuZ3RoKHNsaWRlcldpZHRoLCBG
aXhlZCkpOworICAgICAgICBzdHlsZS0+c2V0V2lkdGgoTGVuZ3RoKHNsaWRlckxlbmd0aCwgRml4
ZWQpKTsKKyAgICAgICAgc3R5bGUtPnNldEhlaWdodChMZW5ndGgoc2xpZGVyV2lkdGgsIEZpeGVk
KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgQVNTRVJUKHBhcnQgPT0gU2xpZGVyVGh1
bWJWZXJ0aWNhbFBhcnQgfHwgcGFydCA9PSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydCk7Ci0g
ICAgcmVuZGVyT2JqZWN0LT5zdHlsZSgpLT5zZXRXaWR0aChMZW5ndGgoc2xpZGVyV2lkdGgsIEZp
eGVkKSk7Ci0gICAgcmVuZGVyT2JqZWN0LT5zdHlsZSgpLT5zZXRIZWlnaHQoTGVuZ3RoKHNsaWRl
ckxlbmd0aCwgRml4ZWQpKTsKKyAgICBzdHlsZS0+c2V0V2lkdGgoTGVuZ3RoKHNsaWRlcldpZHRo
LCBGaXhlZCkpOworICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKHNsaWRlckxlbmd0aCwgRml4
ZWQpKTsKIH0KIAogI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCmluZGV4IDRkMTlhY2Q5ZWZmOGE0N2UwYzQ1NDk5
ZmE2NWJkNDI3NWRjNjg0NmMuLmRhMTkzOTRhMTdkOWJmYWViNzg2NjAzMTA1ZTM0YjlhMDBmYjBl
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCkBA
IC05NjEsOCArOTYxLDkgQEAgYm9vbCBSZW5kZXJUaGVtZVF0OjpwYWludFNsaWRlclRodW1iKFJl
bmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBwaSwKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLXZvaWQgUmVuZGVyVGhlbWVRdDo6YWRqdXN0U2xpZGVyVGh1bWJTdHlsZShDU1NTdHlsZVNl
bGVjdG9yKiwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50KikgY29uc3QKK3ZvaWQgUmVuZGVy
VGhlbWVRdDo6YWRqdXN0U2xpZGVyVGh1bWJTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiBzZWxlY3Rv
ciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50KiBlbGVtZW50KSBjb25zdAogeworICAgIFJl
bmRlclRoZW1lOjphZGp1c3RTbGlkZXJUaHVtYlN0eWxlKHNlbGVjdG9yLCBzdHlsZSwgZWxlbWVu
dCk7CiAgICAgc3R5bGUtPnNldEJveFNoYWRvdyhudWxscHRyKTsKIH0KIApAQCAtMTQ2Myw3ICsx
NDY0LDcgQEAgYm9vbCBSZW5kZXJUaGVtZVF0OjpwYWludE1lZGlhU2xpZGVyVGh1bWIoUmVuZGVy
T2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIHBhaW4KIH0KICNlbmRpZgogCi12b2lkIFJlbmRl
clRoZW1lUXQ6OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJPYmplY3QqIG8pIGNvbnN0Cit2
b2lkIFJlbmRlclRoZW1lUXQ6OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSogc3R5
bGUpIGNvbnN0CiB7CiAgICAgLy8gdGltZWxpbmVUaHVtYkhlaWdodCBzaG91bGQgbWF0Y2ggdGhl
IGhlaWdodCBwcm9wZXJ0eSBvZiAtd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lIGluIG1l
ZGlhQ29udHJvbHNRdC5jc3MuCiAgICAgY29uc3QgaW50IHRpbWVsaW5lVGh1bWJIZWlnaHQgPSAx
MjsKQEAgLTE0NzEsMjUgKzE0NzIsMjUgQEAgdm9pZCBSZW5kZXJUaGVtZVF0OjphZGp1c3RTbGlk
ZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KiBvKSBjb25zdAogICAgIC8vIHZvbHVtZVRodW1iV2lk
dGggc2hvdWxkIG1hdGNoIHRoZSB3aWR0aCBwcm9wZXJ0eSBvZiAtd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXZvbHVtZS1zbGlkZXIgaW4gbWVkaWFDb250cm9sc1F0LmNzcy4KICAgICBjb25zdCBpbnQg
dm9sdW1lVGh1bWJXaWR0aCA9IDEyOwogICAgIGNvbnN0IGludCB2b2x1bWVUaHVtYkhlaWdodCA9
IHZvbHVtZVRodW1iV2lkdGggLyAzOwotICAgIENvbnRyb2xQYXJ0IHBhcnQgPSBvLT5zdHlsZSgp
LT5hcHBlYXJhbmNlKCk7CisgICAgQ29udHJvbFBhcnQgcGFydCA9IHN0eWxlLT5hcHBlYXJhbmNl
KCk7CiAKICAgICBpZiAocGFydCA9PSBNZWRpYVNsaWRlclRodW1iUGFydCkgewotICAgICAgICBv
LT5zdHlsZSgpLT5zZXRXaWR0aChMZW5ndGgodGltZWxpbmVUaHVtYldpZHRoLCBGaXhlZCkpOwot
ICAgICAgICBvLT5zdHlsZSgpLT5zZXRIZWlnaHQoTGVuZ3RoKHRpbWVsaW5lVGh1bWJIZWlnaHQs
IEZpeGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgodGltZWxpbmVUaHVtYldp
ZHRoLCBGaXhlZCkpOworICAgICAgICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aCh0aW1lbGluZVRo
dW1iSGVpZ2h0LCBGaXhlZCkpOwogICAgIH0gZWxzZSBpZiAocGFydCA9PSBNZWRpYVZvbHVtZVNs
aWRlclRodW1iUGFydCkgewotICAgICAgICBvLT5zdHlsZSgpLT5zZXRIZWlnaHQoTGVuZ3RoKHZv
bHVtZVRodW1iSGVpZ2h0LCBGaXhlZCkpOwotICAgICAgICBvLT5zdHlsZSgpLT5zZXRXaWR0aChM
ZW5ndGgodm9sdW1lVGh1bWJXaWR0aCwgRml4ZWQpKTsKKyAgICAgICAgc3R5bGUtPnNldEhlaWdo
dChMZW5ndGgodm9sdW1lVGh1bWJIZWlnaHQsIEZpeGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRX
aWR0aChMZW5ndGgodm9sdW1lVGh1bWJXaWR0aCwgRml4ZWQpKTsKICAgICB9IGVsc2UgaWYgKHBh
cnQgPT0gU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCB8fCBwYXJ0ID09IFNsaWRlclRodW1iVmVy
dGljYWxQYXJ0KSB7CiAgICAgICAgIFFTdHlsZU9wdGlvblNsaWRlciBvcHRpb247CiAgICAgICAg
IGlmIChwYXJ0ID09IFNsaWRlclRodW1iVmVydGljYWxQYXJ0KQogICAgICAgICAgICAgb3B0aW9u
Lm9yaWVudGF0aW9uID0gUXQ6OlZlcnRpY2FsOwogCi0gICAgICAgIFFTdHlsZSogc3R5bGUgPSBx
U3R5bGUoKTsKKyAgICAgICAgUVN0eWxlKiBxc3R5bGUgPSBxU3R5bGUoKTsKIAotICAgICAgICBp
bnQgd2lkdGggPSBzdHlsZS0+cGl4ZWxNZXRyaWMoUVN0eWxlOjpQTV9TbGlkZXJMZW5ndGgsICZv
cHRpb24pOwotICAgICAgICBpbnQgaGVpZ2h0ID0gc3R5bGUtPnBpeGVsTWV0cmljKFFTdHlsZTo6
UE1fU2xpZGVyVGhpY2tuZXNzLCAmb3B0aW9uKTsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0V2lk
dGgoTGVuZ3RoKHdpZHRoLCBGaXhlZCkpOwotICAgICAgICBvLT5zdHlsZSgpLT5zZXRIZWlnaHQo
TGVuZ3RoKGhlaWdodCwgRml4ZWQpKTsKKyAgICAgICAgaW50IHdpZHRoID0gcXN0eWxlLT5waXhl
bE1ldHJpYyhRU3R5bGU6OlBNX1NsaWRlckxlbmd0aCwgJm9wdGlvbik7CisgICAgICAgIGludCBo
ZWlnaHQgPSBxc3R5bGUtPnBpeGVsTWV0cmljKFFTdHlsZTo6UE1fU2xpZGVyVGhpY2tuZXNzLCAm
b3B0aW9uKTsKKyAgICAgICAgc3R5bGUtPnNldFdpZHRoKExlbmd0aCh3aWR0aCwgRml4ZWQpKTsK
KyAgICAgICAgc3R5bGUtPnNldEhlaWdodChMZW5ndGgoaGVpZ2h0LCBGaXhlZCkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29u
dHJvbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMu
Y3BwCmluZGV4IDc1NzBmMjk5MzA5MjdkOGYwMmU5NTZmMzg5ZmEyNDg2ZGNjZDg1YTQuLjkyYWEy
YWJkMDE3MjdlNWM2OWM0Mzg4ZGJkNTkxZDJmNDlmZWFjZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5jcHAKQEAgLTg4LDE5ICs4OCwxOCBA
QCBzdGF0aWMgRmxvYXRSZWN0IGdldFVuem9vbWVkUmVjdEFuZEFkanVzdEN1cnJlbnRDb250ZXh0
KFJlbmRlck9iamVjdCogbywgY29uc3QgUAogc3RhdGljIGNvbnN0IGludCBtZWRpYVNsaWRlclRo
dW1iV2lkdGggPSAxMzsKIHN0YXRpYyBjb25zdCBpbnQgbWVkaWFTbGlkZXJUaHVtYkhlaWdodCA9
IDE0OwogCi12b2lkIFJlbmRlck1lZGlhQ29udHJvbHM6OmFkanVzdE1lZGlhU2xpZGVyVGh1bWJT
aXplKFJlbmRlck9iamVjdCogbykKK3ZvaWQgUmVuZGVyTWVkaWFDb250cm9sczo6YWRqdXN0TWVk
aWFTbGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUqIHN0eWxlKQogewotICAgIENvbnRyb2xQYXJ0
IHBhcnQgPSBvLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCk7Ci0KKyAgICBDb250cm9sUGFydCBwYXJ0
ID0gc3R5bGUtPmFwcGVhcmFuY2UoKTsKICAgICBpZiAocGFydCAhPSBNZWRpYVNsaWRlclRodW1i
UGFydCAmJiBwYXJ0ICE9IE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0KQogICAgICAgICByZXR1
cm47CiAKICAgICBDR1NpemUgc2l6ZTsKICAgICB3a01lYXN1cmVNZWRpYVVJUGFydChwYXJ0ID09
IE1lZGlhU2xpZGVyVGh1bWJQYXJ0ID8gTWVkaWFTbGlkZXJUaHVtYiA6IE1lZGlhVm9sdW1lU2xp
ZGVyVGh1bWIsIFdLTWVkaWFDb250cm9sbGVyVGhlbWVRdWlja1RpbWUsIDAsICZzaXplKTsKIAot
ICAgIGZsb2F0IHpvb21MZXZlbCA9IG8tPnN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKTsKLSAgICBv
LT5zdHlsZSgpLT5zZXRXaWR0aChMZW5ndGgoc3RhdGljX2Nhc3Q8aW50PihzaXplLndpZHRoICog
em9vbUxldmVsKSwgRml4ZWQpKTsKLSAgICBvLT5zdHlsZSgpLT5zZXRIZWlnaHQoTGVuZ3RoKHN0
YXRpY19jYXN0PGludD4oc2l6ZS5oZWlnaHQgKiB6b29tTGV2ZWwpLCBGaXhlZCkpOworICAgIGZs
b2F0IHpvb21MZXZlbCA9IHN0eWxlLT5lZmZlY3RpdmVab29tKCk7CisgICAgc3R5bGUtPnNldFdp
ZHRoKExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KHNpemUud2lkdGggKiB6b29tTGV2ZWwpLCBGaXhl
ZCkpOworICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKHN0YXRpY19jYXN0PGludD4oc2l6ZS5o
ZWlnaHQgKiB6b29tTGV2ZWwpLCBGaXhlZCkpOwogfQogCiBib29sIFJlbmRlck1lZGlhQ29udHJv
bHM6OnBhaW50TWVkaWFDb250cm9sc1BhcnQoTWVkaWFDb250cm9sRWxlbWVudFR5cGUgcGFydCwg
UmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVj
dCYgcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNv
bnRyb2xzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5o
CmluZGV4IDNkM2IwMTc2NTRlZjQyOTE5NWNkZjRiNDk4ZjFlYjE0NGNiMTg3NzAuLmY5ZDNmM2Q3
ODI3YTNkODc1ZDJmY2ZiOWQ2MjdhYjczN2I5MmMzODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6
CiAKICNpZiBQTEFURk9STShXSU4pCiAgICAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYUNvbnRyb2xz
UGFydChNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSwgUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJ
bmZvJiwgY29uc3QgSW50UmVjdCYpOwotICAgIHN0YXRpYyB2b2lkIGFkanVzdE1lZGlhU2xpZGVy
VGh1bWJTaXplKFJlbmRlck9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGFkanVzdE1lZGlhU2xp
ZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKik7CiAjZW5kaWYKICAgICBzdGF0aWMgSW50UG9pbnQg
dm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24oUmVuZGVyQm94KiwgY29uc3QgSW50U2l6
ZSYpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRp
YUNvbnRyb2xzQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
ZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKaW5kZXggNDBlZTliMGFiOGEzYTY5OGFkYzQwMTIxNjEx
ZDdhNjI0MGEwNDQ1NC4uZGU1ZjU5NDgzYTBiMDdhMTY3ZTk4MmFhYjRmZDU2NTRhY2U2YWNmMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHND
aHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29u
dHJvbHNDaHJvbWl1bS5jcHAKQEAgLTI4MCwyMSArMjgwLDIxIEBAIGJvb2wgUmVuZGVyTWVkaWFD
b250cm9sc0Nocm9taXVtOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KE1lZGlhQ29udHJvbEVsZW1l
bnRUeXBlCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFJlbmRlck1lZGlhQ29udHJvbHND
aHJvbWl1bTo6YWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KiBvYmplY3Qp
Cit2b2lkIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6YWRqdXN0TWVkaWFTbGlkZXJUaHVt
YlNpemUoUmVuZGVyU3R5bGUqIHN0eWxlKQogewogICAgIHN0YXRpYyBJbWFnZSogbWVkaWFTbGlk
ZXJUaHVtYiA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhU2xpZGVyVGh1bWIiKTsKICAgICBzdGF0
aWMgSW1hZ2UqIG1lZGlhVm9sdW1lU2xpZGVyVGh1bWIgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRp
YVZvbHVtZVNsaWRlclRodW1iIik7CiAKICAgICBJbWFnZSogdGh1bWJJbWFnZSA9IDA7Ci0gICAg
aWYgKG9iamVjdC0+c3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IE1lZGlhU2xpZGVyVGh1bWJQYXJ0
KQorICAgIGlmIChzdHlsZS0+YXBwZWFyYW5jZSgpID09IE1lZGlhU2xpZGVyVGh1bWJQYXJ0KQog
ICAgICAgICB0aHVtYkltYWdlID0gbWVkaWFTbGlkZXJUaHVtYjsKLSAgICBlbHNlIGlmIChvYmpl
Y3QtPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydCkK
KyAgICBlbHNlIGlmIChzdHlsZS0+YXBwZWFyYW5jZSgpID09IE1lZGlhVm9sdW1lU2xpZGVyVGh1
bWJQYXJ0KQogICAgICAgICB0aHVtYkltYWdlID0gbWVkaWFWb2x1bWVTbGlkZXJUaHVtYjsKIAot
ICAgIGZsb2F0IHpvb21MZXZlbCA9IG9iamVjdC0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpOwor
ICAgIGZsb2F0IHpvb21MZXZlbCA9IHN0eWxlLT5lZmZlY3RpdmVab29tKCk7CiAgICAgaWYgKHRo
dW1iSW1hZ2UpIHsKLSAgICAgICAgb2JqZWN0LT5zdHlsZSgpLT5zZXRXaWR0aChMZW5ndGgoc3Rh
dGljX2Nhc3Q8aW50Pih0aHVtYkltYWdlLT53aWR0aCgpICogem9vbUxldmVsKSwgRml4ZWQpKTsK
LSAgICAgICAgb2JqZWN0LT5zdHlsZSgpLT5zZXRIZWlnaHQoTGVuZ3RoKHN0YXRpY19jYXN0PGlu
dD4odGh1bWJJbWFnZS0+aGVpZ2h0KCkgKiB6b29tTGV2ZWwpLCBGaXhlZCkpOworICAgICAgICBz
dHlsZS0+c2V0V2lkdGgoTGVuZ3RoKHN0YXRpY19jYXN0PGludD4odGh1bWJJbWFnZS0+d2lkdGgo
KSAqIHpvb21MZXZlbCksIEZpeGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3Ro
KHN0YXRpY19jYXN0PGludD4odGh1bWJJbWFnZS0+aGVpZ2h0KCkgKiB6b29tTGV2ZWwpLCBGaXhl
ZCkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5oCmluZGV4IDg5NWFjNDM5YjAyZDk5MThiMzUxYjg2
MjBlMDIzY2U5MTFiMWQwNWEuLjlhZjkzOTYwZmZlZmNjZTk5YWYxMjY0Mzg0ZWQzMzQxNmEyZDlm
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRy
b2xzQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFD
b250cm9sc0Nocm9taXVtLmgKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgSFRNTE1lZGlhRWxlbWVu
dDsKIGNsYXNzIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bSB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIGJvb2wgcGFpbnRNZWRpYUNvbnRyb2xzUGFydChNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSwg
UmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwotICAgIHN0
YXRpYyB2b2lkIGFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCopOworICAg
IHN0YXRpYyB2b2lkIGFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKik7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTbGlkZXIuY3BwCmluZGV4IDU0NDljNDEyYmYyNDljNjcwMDA5OTQzNjAzMzBkYWJmN2U2MTg2
ZDcuLjJiODQ5OTk4YjdjYWIxY2EyNzhjZjVmMGFlYzNkNmI4Yjk5M2Y1ZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCkBAIC0xMzYsMTAgKzEzNiw4IEBAIHZv
aWQgUmVuZGVyU2xpZGVyOjpsYXlvdXQoKQogCiAgICAgaWYgKHRodW1iKSB7CiAgICAgICAgIC8v
IEFsbG93IHRoZSB0aGVtZSB0byBzZXQgdGhlIHNpemUgb2YgdGhlIHRodW1iLgotICAgICAgICBp
ZiAodGh1bWItPnN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSkgewotICAgICAgICAgICAgLy8gRklY
TUU6IFRoaXMgc2hvdWxkIHBhc3MgdGhlIHN0eWxlLCBub3QgdGhlIHJlbmRlcmVyLCB0byB0aGUg
dGhlbWUuCi0gICAgICAgICAgICB0aGVtZSgpLT5hZGp1c3RTbGlkZXJUaHVtYlNpemUodGh1bWIp
OwotICAgICAgICB9CisgICAgICAgIGlmICh0aHVtYi0+c3R5bGUoKS0+aGFzQXBwZWFyYW5jZSgp
KQorICAgICAgICAgICAgdGhlbWUoKS0+YWRqdXN0U2xpZGVyVGh1bWJTaXplKHRodW1iLT5zdHls
ZSgpKTsKIAogICAgICAgICBiYXNlU2l6ZS5leHBhbmQodGh1bWItPnN0eWxlKCktPndpZHRoKCku
Y2FsY01pblZhbHVlKDApLCB0aHVtYi0+c3R5bGUoKS0+aGVpZ2h0KCkuY2FsY01pblZhbHVlKDAp
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCBj
YjZlNDg0MDc3OTg5NjIxNjU2MDI4NzkzZjljMGQyOGQxZDZmNGYzLi5lZTJkMGI4OGQzMmQyNzNi
NDc4MzRkMmIyZGIwZjZiODlhMjkxOTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZS5jcHAKQEAgLTk2OSw5ICs5NjksMTAgQEAgdm9pZCBSZW5kZXJUaGVtZTo6YWRqdXN0
U2xpZGVyVHJhY2tTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW4K
IAogdm9pZCBSZW5kZXJUaGVtZTo6YWRqdXN0U2xpZGVyVGh1bWJTdHlsZShDU1NTdHlsZVNlbGVj
dG9yKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3QKIHsKKyAgICAvLyBGSVhNRTogU2hv
dWxkIGNhbGwgYWRqdXN0U2xpZGVyVGh1bWJTaXplKCkuCiB9CiAKLXZvaWQgUmVuZGVyVGhlbWU6
OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJPYmplY3QqKSBjb25zdAordm9pZCBSZW5kZXJU
aGVtZTo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKikgY29uc3QKIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAppbmRleCBiZjRmYjQyZDYyMGRiMmZj
ZDJlYjkzYmI0MmZlOGI5MzRlMjhkZjQwLi43ZGZlMDU2NGE1NmFjNzM3ZTRjZjM5MTM1Y2MzOWYz
MDIxYzI2NzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApAQCAtMTYw
LDcgKzE2MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgaW50IG1pbmltdW1NZW51TGlzdFNp
emUoUmVuZGVyU3R5bGUqKSBjb25zdCB7IHJldHVybiAwOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQg
YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCopIGNvbnN0OworICAgIHZpcnR1YWwg
dm9pZCBhZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUqKSBjb25zdDsKIAogICAgIHZp
cnR1YWwgaW50IHBvcHVwSW50ZXJuYWxQYWRkaW5nTGVmdChSZW5kZXJTdHlsZSopIGNvbnN0IHsg
cmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIGludCBwb3B1cEludGVybmFsUGFkZGluZ1JpZ2h0KFJl
bmRlclN0eWxlKikgY29uc3QgeyByZXR1cm4gMDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcAppbmRleCBjM2YxNWM4N2E5
ZDQzNDg3YWVjNjkzOWNkZjIzMzM3OGE5OTlkMGIyLi43YWYxNGMyZTg0NDY5NTFmMTRlMDQxM2Nl
MmZkMjNlNmE1ZmJiZGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcApAQCAtMTQzLDE4ICsxNDMsMTggQEAgQ29sb3Ig
UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdy
b3VuZENvbG9yKCkgY29uc3QKICAgICByZXR1cm4gbV9pbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcjsKIH0KIAotdm9pZCBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OmFkanVzdFNsaWRl
clRodW1iU2l6ZShSZW5kZXJPYmplY3QqIG8pIGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lQ2hyb21p
dW1MaW51eDo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QK
IHsKICAgICBJbnRTaXplIHNpemUgPSBQbGF0Zm9ybUJyaWRnZTo6Z2V0VGhlbWVQYXJ0U2l6ZShQ
bGF0Zm9ybUJyaWRnZTo6UGFydFNsaWRlclRodW1iKTsKIAotICAgIGlmIChvLT5zdHlsZSgpLT5h
cHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCkgewotICAgICAgICBvLT5z
dHlsZSgpLT5zZXRXaWR0aChMZW5ndGgoc2l6ZS53aWR0aCgpLCBGaXhlZCkpOwotICAgICAgICBv
LT5zdHlsZSgpLT5zZXRIZWlnaHQoTGVuZ3RoKHNpemUuaGVpZ2h0KCksIEZpeGVkKSk7Ci0gICAg
fSBlbHNlIGlmIChvLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJWZXJ0aWNh
bFBhcnQpIHsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0V2lkdGgoTGVuZ3RoKHNpemUuaGVpZ2h0
KCksIEZpeGVkKSk7Ci0gICAgICAgIG8tPnN0eWxlKCktPnNldEhlaWdodChMZW5ndGgoc2l6ZS53
aWR0aCgpLCBGaXhlZCkpOworICAgIGlmIChzdHlsZS0+YXBwZWFyYW5jZSgpID09IFNsaWRlclRo
dW1iSG9yaXpvbnRhbFBhcnQpIHsKKyAgICAgICAgc3R5bGUtPnNldFdpZHRoKExlbmd0aChzaXpl
LndpZHRoKCksIEZpeGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKHNpemUu
aGVpZ2h0KCksIEZpeGVkKSk7CisgICAgfSBlbHNlIGlmIChzdHlsZS0+YXBwZWFyYW5jZSgpID09
IFNsaWRlclRodW1iVmVydGljYWxQYXJ0KSB7CisgICAgICAgIHN0eWxlLT5zZXRXaWR0aChMZW5n
dGgoc2l6ZS5oZWlnaHQoKSwgRml4ZWQpKTsKKyAgICAgICAgc3R5bGUtPnNldEhlaWdodChMZW5n
dGgoc2l6ZS53aWR0aCgpLCBGaXhlZCkpOwogICAgIH0gZWxzZQotICAgICAgICBSZW5kZXJUaGVt
ZUNocm9taXVtU2tpYTo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKG8pOworICAgICAgICBSZW5kZXJU
aGVtZUNocm9taXVtU2tpYTo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKHN0eWxlKTsKIH0KIAogYm9v
bCBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnN1cHBvcnRzQ29udHJvbFRpbnRzKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
TGludXguaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGlu
dXguaAppbmRleCA4ZjNlYjk4MmYzY2Y1MWRmYzkxOTkyMGIzYjA3YTNmYjFmYmRmOWM4Li4wOTkw
MDFkZmQ3MjcxOWJlNDM0NDQ0ZDJlNzJmMjNkYTM2YmMwNDA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oCkBAIC01NCw3ICs1
NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9y
bUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0OwogICAgICAgICB2aXJ0dWFs
IENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsK
IAotICAgICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVj
dCopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xpZGVyVGh1bWJTaXplKFJl
bmRlclN0eWxlKikgY29uc3Q7CiAKICAgICAgICAgc3RhdGljIHZvaWQgc2V0Q2FyZXRCbGlua0lu
dGVydmFsKGRvdWJsZSBpbnRlcnZhbCk7CiAgICAgICAgIHZpcnR1YWwgZG91YmxlIGNhcmV0Qmxp
bmtJbnRlcnZhbEludGVybmFsKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaAppbmRleCA4NGI0ZGJkNjNmODRjOTE5MGY1MDE3
ZTRiZjZhM2I2ZTliZmI0ZTA0Li4zNDg1M2MwNmIzMjU1NWQ2YzdmZjA4OTc4OTYxMzFjMDMzMTI0
ZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJv
bWl1bU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9t
aXVtTWFjLmgKQEAgLTMzLDcgKzMzLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFJlbmRlclRoZW1lPiBjcmVhdGUoKTsKIHByb3RlY3RlZDoKICNpZiBFTkFCTEUoVklERU8pCi0g
ICAgdmlydHVhbCB2b2lkIGFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCop
IGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShSZW5k
ZXJTdHlsZSopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhUGxheUJ1dHRvbihS
ZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgdmly
dHVhbCBib29sIHBhaW50TWVkaWFNdXRlQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50
SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVNsaWRl
clRyYWNrKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMu
bW0KaW5kZXggNjA2Nzk3YTZiMjQwNDU1Njg0YzliODgxNTMzZTlhYTFjN2UwZGNhMi4uY2NjYjdk
MzI2MWU3YmM4ZGEwYmE2M2RmMDAzNzZmYWM2OWUyOTZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW0KQEAgLTEyMiw5ICsxMjIs
OSBAQCB2b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnVwZGF0ZUFjdGl2ZVN0YXRlKE5TQ2Vs
bCogY2VsbCwgY29uc3QgUmVuZGVyT2JqZWN0KgogCiAjaWYgRU5BQkxFKFZJREVPKQogCi12b2lk
IFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKFJlbmRl
ck9iamVjdCogbykgY29uc3QKK3ZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6YWRqdXN0TWVk
aWFTbGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdAogewotICAgIFJlbmRl
ck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6YWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUobyk7Cisg
ICAgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjphZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6
ZShzdHlsZSk7CiB9CiAKIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6cGFpbnRNZWRpYVBs
YXlCdXR0b24oUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBJbnRSZWN0JiByZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAKaW5kZXggY2FmYzM0ZDMxMmUxMjkxZTc3NmM5
ZTljM2QyMTA0YWJlNDhkOWRlYi4uZTJiY2ZmMmRiODZjNTU3ZGMwMDViOGM4OWNmMGIwYjQ5NWVh
ZmFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1Ta2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bVNraWEuY3BwCkBAIC00MDcsMTIgKzQwNywxMiBAQCBib29sIFJlbmRlclRoZW1lQ2hy
b21pdW1Ta2lhOjpwYWludE1lZGlhVm9sdW1lU2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiBvYmpl
Y3QsCiAjZW5kaWYKIH0KIAotdm9pZCBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6YWRqdXN0U2xp
ZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCogb2JqZWN0KSBjb25zdAordm9pZCBSZW5kZXJUaGVt
ZUNocm9taXVtU2tpYTo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKiBzdHlsZSkg
Y29uc3QKIHsKICNpZiBFTkFCTEUoVklERU8pCi0gICAgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9t
aXVtOjphZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShvYmplY3QpOworICAgIFJlbmRlck1lZGlh
Q29udHJvbHNDaHJvbWl1bTo6YWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUoc3R5bGUpOwogI2Vs
c2UKLSAgICBVTlVTRURfUEFSQU0ob2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0oc3R5bGUpOwog
I2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUNocm9taXVtU2tpYS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q2hyb21pdW1Ta2lhLmgKaW5kZXggMmZhZjA2NDRlYzI3M2RmMjFmNzNmZTJmOGNmODVhMDZmMGU4
NWFhMS4uMGM5OThiMzI2NTQxZmRhYzQ5YjgyZWNiNDU0ZjkwOGU5OTgzZGFiYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmgKQEAg
LTkxLDcgKzkxLDcgQEAgY2xhc3MgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEgOiBwdWJsaWMgUmVu
ZGVyVGhlbWUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYUNvbnRyb2xzQmFja2dy
b3VuZChSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhU2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0Kiwg
Y29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wg
cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRyYWNrKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5m
byYsIGNvbnN0IEludFJlY3QmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRo
dW1iU2l6ZShSZW5kZXJPYmplY3QqKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGFkanVz
dFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSopIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGJv
b2wgcGFpbnRNZWRpYVNsaWRlclRodW1iKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYs
IGNvbnN0IEludFJlY3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFWb2x1bWVT
bGlkZXJUaHVtYihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0
Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmpl
Y3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5jcHAKaW5kZXggNTNlYzlj
YmVjMzgzMzlmMWVjODNhMjM4MTgwNjI0MWUwN2QzODhkYy4uZjI4OTYzNzg1M2M4MzFjMjRkOGU3
NWJhN2Y2YmE4NjRmMzFkNmQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcApAQCAtMzk3LDE5ICszOTcsMTkgQEAgQ29sb3Ig
UmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6c3lzdGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0
CiAgICAgcmV0dXJuIENvbG9yKEdldFJWYWx1ZShjb2xvciksIEdldEdWYWx1ZShjb2xvciksIEdl
dEJWYWx1ZShjb2xvcikpOwogfQogCi12b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1XaW46OmFkanVz
dFNsaWRlclRodW1iU2l6ZShSZW5kZXJPYmplY3QqIG8pIGNvbnN0Cit2b2lkIFJlbmRlclRoZW1l
Q2hyb21pdW1XaW46OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSogc3R5bGUpIGNv
bnN0CiB7CiAgICAgLy8gVGhlc2Ugc2l6ZXMgbWF0Y2ggd2hhdCBXaW5YUCBkcmF3cyBmb3IgdmFy
aW91cyBtZW51cy4KICAgICBjb25zdCBpbnQgc2xpZGVyVGh1bWJBbG9uZ0F4aXMgPSAxMTsKICAg
ICBjb25zdCBpbnQgc2xpZGVyVGh1bWJBY3Jvc3NBeGlzID0gMjE7Ci0gICAgaWYgKG8tPnN0eWxl
KCktPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0KSB7Ci0gICAgICAg
IG8tPnN0eWxlKCktPnNldFdpZHRoKExlbmd0aChzbGlkZXJUaHVtYkFsb25nQXhpcywgRml4ZWQp
KTsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0SGVpZ2h0KExlbmd0aChzbGlkZXJUaHVtYkFjcm9z
c0F4aXMsIEZpeGVkKSk7Ci0gICAgfSBlbHNlIGlmIChvLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkg
PT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQpIHsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0V2lk
dGgoTGVuZ3RoKHNsaWRlclRodW1iQWNyb3NzQXhpcywgRml4ZWQpKTsKLSAgICAgICAgby0+c3R5
bGUoKS0+c2V0SGVpZ2h0KExlbmd0aChzbGlkZXJUaHVtYkFsb25nQXhpcywgRml4ZWQpKTsKKyAg
ICBpZiAoc3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0KSB7
CisgICAgICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgoc2xpZGVyVGh1bWJBbG9uZ0F4aXMsIEZp
eGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKHNsaWRlclRodW1iQWNyb3Nz
QXhpcywgRml4ZWQpKTsKKyAgICB9IGVsc2UgaWYgKHN0eWxlLT5hcHBlYXJhbmNlKCkgPT0gU2xp
ZGVyVGh1bWJWZXJ0aWNhbFBhcnQpIHsKKyAgICAgICAgc3R5bGUtPnNldFdpZHRoKExlbmd0aChz
bGlkZXJUaHVtYkFjcm9zc0F4aXMsIEZpeGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRIZWlnaHQo
TGVuZ3RoKHNsaWRlclRodW1iQWxvbmdBeGlzLCBGaXhlZCkpOwogICAgIH0gZWxzZQotICAgICAg
ICBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKG8pOworICAg
ICAgICBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKHN0eWxl
KTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtV2luOjpwYWludENoZWNrYm94KFJlbmRl
ck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmgKaW5kZXgg
NjYxYjYyMzlkZjU0Y2JhODAyMzU1OGJhYmFlZmFmY2VkODgzMjRhNy4uYzQ3YTY3OTEwZDgwNzhh
NmViYjdhYTU3MzJmZjM0MWE5NWU1ZWU0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5oCkBAIC02MSw3ICs2MSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHN5c3RlbUZvbnQoaW50IHByb3BJZCwg
Rm9udERlc2NyaXB0aW9uJikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgQ29sb3Igc3lzdGVtQ29s
b3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RT
bGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCBhZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUqKSBjb25zdDsKIAogICAgICAgICAv
LyBWYXJpb3VzIHBhaW50IGZ1bmN0aW9ucy4KICAgICAgICAgdmlydHVhbCBib29sIHBhaW50Q2hl
Y2tib3goUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAppbmRleCA4YTE3YWNmODMz
Y2IwN2Q1ZmE4YjYxZDJhYWE0YzZjMmE3MTg1NGFhLi5iOTIzYjNlMmY5Njc2NWIxODdkZjBkZmI0
YzM1ODUyYzBmNjIzZmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMuaApAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGludCBtaW5pbXVt
TWVudUxpc3RTaXplKFJlbmRlclN0eWxlKikgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRq
dXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCopIGNvbnN0OworICAgIHZpcnR1YWwgdm9p
ZCBhZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUqKSBjb25zdDsKICAgICAKICAgICB2
aXJ0dWFsIGludCBwb3B1cEludGVybmFsUGFkZGluZ0xlZnQoUmVuZGVyU3R5bGUqKSBjb25zdDsK
ICAgICB2aXJ0dWFsIGludCBwb3B1cEludGVybmFsUGFkZGluZ1JpZ2h0KFJlbmRlclN0eWxlKikg
Y29uc3Q7CkBAIC0xNzAsNyArMTcwLDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBo
YXNPd25EaXNhYmxlZFN0YXRlSGFuZGxpbmdGb3IoQ29udHJvbFBhcnQpIGNvbnN0OwogICAgIHZp
cnR1YWwgYm9vbCB1c2VzTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheSgpOwogICAgIHZpcnR1YWwg
Ym9vbCB1c2VzTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2
b2lkIGFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCopIGNvbnN0OworICAg
IHZpcnR1YWwgdm9pZCBhZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSopIGNv
bnN0OwogICAgIHZpcnR1YWwgSW50UG9pbnQgdm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0
b24oUmVuZGVyQm94KiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0OwogI2VuZGlmCiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggZDBmYzllYjYyMTFl
MjVlNTI5ZTU0OTUxMDUzMTc2MTM0MGJkOGU1Ni4uMWQyMjc3NzJjYzdmNWVjNzIwZTc4MGU2MmU2
OTAzODUxZDk4YzUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5tbQpAQCAtMTI4OSw4ICsxMjg5LDkgQEAgYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRTbGlk
ZXJUcmFjayhSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmYKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUmVuZGVyVGhlbWVNYWM6OmFkanVzdFNsaWRlclRodW1i
U3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCopIGNv
bnN0Cit2b2lkIFJlbmRlclRoZW1lTWFjOjphZGp1c3RTbGlkZXJUaHVtYlN0eWxlKENTU1N0eWxl
U2VsZWN0b3IqIHNlbGVjdG9yLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqIGVsZW1lbnQp
IGNvbnN0CiB7CisgICAgUmVuZGVyVGhlbWU6OmFkanVzdFNsaWRlclRodW1iU3R5bGUoc2VsZWN0
b3IsIHN0eWxlLCBlbGVtZW50KTsKICAgICBzdHlsZS0+c2V0Qm94U2hhZG93KG51bGxwdHIpOwog
fQogCkBAIC0xNjQzLDQwICsxNjQ0LDQwIEBAIGNvbnN0IGludCBzbGlkZXJUaHVtYkhlaWdodCA9
IDE1OwogY29uc3QgaW50IG1lZGlhU2xpZGVyVGh1bWJXaWR0aCA9IDEzOwogY29uc3QgaW50IG1l
ZGlhU2xpZGVyVGh1bWJIZWlnaHQgPSAxNDsKIAotdm9pZCBSZW5kZXJUaGVtZU1hYzo6YWRqdXN0
U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCogbykgY29uc3QKK3ZvaWQgUmVuZGVyVGhlbWVN
YWM6OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7Ci0g
ICAgZmxvYXQgem9vbUxldmVsID0gby0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpOwotICAgIGlm
IChvLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCB8
fCBvLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQpIHsK
LSAgICAgICAgby0+c3R5bGUoKS0+c2V0V2lkdGgoTGVuZ3RoKHN0YXRpY19jYXN0PGludD4oc2xp
ZGVyVGh1bWJXaWR0aCAqIHpvb21MZXZlbCksIEZpeGVkKSk7Ci0gICAgICAgIG8tPnN0eWxlKCkt
PnNldEhlaWdodChMZW5ndGgoc3RhdGljX2Nhc3Q8aW50PihzbGlkZXJUaHVtYkhlaWdodCAqIHpv
b21MZXZlbCksIEZpeGVkKSk7CisgICAgZmxvYXQgem9vbUxldmVsID0gc3R5bGUtPmVmZmVjdGl2
ZVpvb20oKTsKKyAgICBpZiAoc3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYkhvcml6
b250YWxQYXJ0IHx8IHN0eWxlLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBh
cnQpIHsKKyAgICAgICAgc3R5bGUtPnNldFdpZHRoKExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KHNs
aWRlclRodW1iV2lkdGggKiB6b29tTGV2ZWwpLCBGaXhlZCkpOworICAgICAgICBzdHlsZS0+c2V0
SGVpZ2h0KExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KHNsaWRlclRodW1iSGVpZ2h0ICogem9vbUxl
dmVsKSwgRml4ZWQpKTsKICAgICB9IAogCiAjaWYgRU5BQkxFKFZJREVPKQotICAgIGFkanVzdE1l
ZGlhU2xpZGVyVGh1bWJTaXplKG8pOworICAgIGFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKHN0
eWxlKTsKICNlbmRpZgogfQogCiAjaWYgRU5BQkxFKFZJREVPKQogCi12b2lkIFJlbmRlclRoZW1l
TWFjOjphZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShSZW5kZXJPYmplY3QqIG8pIGNvbnN0Cit2
b2lkIFJlbmRlclRoZW1lTWFjOjphZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHls
ZSogc3R5bGUpIGNvbnN0CiB7Ci0gICAgQ29udHJvbFBhcnQgcGFydCA9IG8tPnN0eWxlKCktPmFw
cGVhcmFuY2UoKTsKKyAgICBDb250cm9sUGFydCBwYXJ0ID0gc3R5bGUtPmFwcGVhcmFuY2UoKTsK
IAogICAgIGlmIChwYXJ0ID09IE1lZGlhU2xpZGVyVGh1bWJQYXJ0IHx8IHBhcnQgPT0gTWVkaWFW
b2x1bWVTbGlkZXJUaHVtYlBhcnQpIHsKICAgICAgICAgaW50IHdpZHRoID0gbWVkaWFTbGlkZXJU
aHVtYldpZHRoOwogICAgICAgICBpbnQgaGVpZ2h0ID0gbWVkaWFTbGlkZXJUaHVtYkhlaWdodDsK
ICAgICAgICAgCiAgICAgICAgIGlmIChtZWRpYUNvbnRyb2xsZXJUaGVtZSgpID09IE1lZGlhQ29u
dHJvbGxlclRoZW1lUXVpY2tUaW1lKSB7Ci0gICAgICAgICAgICBDR1NpemUgIHNpemU7CisgICAg
ICAgICAgICBDR1NpemUgc2l6ZTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgd2tNZWFzdXJl
TWVkaWFVSVBhcnQocGFydCA9PSBNZWRpYVNsaWRlclRodW1iUGFydCA/IE1lZGlhU2xpZGVyVGh1
bWIgOiBNZWRpYVZvbHVtZVNsaWRlclRodW1iLCBNZWRpYUNvbnRyb2xsZXJUaGVtZVF1aWNrVGlt
ZSwgTlVMTCwgJnNpemUpOwogICAgICAgICAgICAgd2lkdGggPSBzaXplLndpZHRoOwogICAgICAg
ICAgICAgaGVpZ2h0ID0gc2l6ZS5oZWlnaHQ7CiAgICAgICAgIH0KIAotICAgICAgICBmbG9hdCB6
b29tTGV2ZWwgPSBvLT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCk7Ci0gICAgICAgIG8tPnN0eWxl
KCktPnNldFdpZHRoKExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KHdpZHRoICogem9vbUxldmVsKSwg
Rml4ZWQpKTsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0SGVpZ2h0KExlbmd0aChzdGF0aWNfY2Fz
dDxpbnQ+KGhlaWdodCAqIHpvb21MZXZlbCksIEZpeGVkKSk7CisgICAgICAgIGZsb2F0IHpvb21M
ZXZlbCA9IHN0eWxlLT5lZmZlY3RpdmVab29tKCk7CisgICAgICAgIHN0eWxlLT5zZXRXaWR0aChM
ZW5ndGgoc3RhdGljX2Nhc3Q8aW50Pih3aWR0aCAqIHpvb21MZXZlbCksIEZpeGVkKSk7CisgICAg
ICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKHN0YXRpY19jYXN0PGludD4oaGVpZ2h0ICogem9v
bUxldmVsKSwgRml4ZWQpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZVNhZmFyaS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVTYWZhcmkuY3BwCmluZGV4IDFhODkzNDU1MmVjYjI1YzZlMWYxYmNiMDEw
ZDFlOWUxMmY2YTM0M2YuLmVlNWU2OGE5NjdkYWY3Zjk2ZDVhOTViZGM4MTU3ODgwY2FiMTA0MTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVNhZmFyaS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJpLmNwcApA
QCAtOTkwLDYgKzk5MCw3IEBAIGJvb2wgUmVuZGVyVGhlbWVTYWZhcmk6OnBhaW50U2xpZGVyVHJh
Y2soUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIHBhaW50CiAKIHZvaWQgUmVuZGVy
VGhlbWVTYWZhcmk6OmFkanVzdFNsaWRlclRodW1iU3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2Vs
ZWN0b3IsIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCogZSkgY29uc3QgCiB7IAorICAgIFJl
bmRlclRoZW1lOjphZGp1c3RTbGlkZXJUaHVtYlN0eWxlKHNlbGVjdG9yLCBzdHlsZSwgZSk7CiAg
ICAgc3R5bGUtPnNldEJveFNoYWRvdyhudWxscHRyKTsgCiB9IAogCkBAIC0xMDE0LDE1ICsxMDE1
LDE1IEBAIGJvb2wgUmVuZGVyVGhlbWVTYWZhcmk6OnBhaW50U2xpZGVyVGh1bWIoUmVuZGVyT2Jq
ZWN0KiBvLCBjb25zdCBQYWludEluZm8mIHBhaW50CiBjb25zdCBpbnQgc2xpZGVyVGh1bWJXaWR0
aCA9IDE1OwogY29uc3QgaW50IHNsaWRlclRodW1iSGVpZ2h0ID0gMTU7CiAKLXZvaWQgUmVuZGVy
VGhlbWVTYWZhcmk6OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJPYmplY3QqIG8pIGNvbnN0
Cit2b2lkIFJlbmRlclRoZW1lU2FmYXJpOjphZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5
bGUqIHN0eWxlKSBjb25zdAogewotICAgIGlmIChvLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0g
U2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCB8fCBvLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0g
U2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQpIHsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0V2lkdGgo
TGVuZ3RoKHNsaWRlclRodW1iV2lkdGgsIEZpeGVkKSk7Ci0gICAgICAgIG8tPnN0eWxlKCktPnNl
dEhlaWdodChMZW5ndGgoc2xpZGVyVGh1bWJIZWlnaHQsIEZpeGVkKSk7CisgICAgaWYgKHN0eWxl
LT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCB8fCBzdHlsZS0+YXBw
ZWFyYW5jZSgpID09IFNsaWRlclRodW1iVmVydGljYWxQYXJ0KSB7CisgICAgICAgIHN0eWxlLT5z
ZXRXaWR0aChMZW5ndGgoc2xpZGVyVGh1bWJXaWR0aCwgRml4ZWQpKTsKKyAgICAgICAgc3R5bGUt
PnNldEhlaWdodChMZW5ndGgoc2xpZGVyVGh1bWJIZWlnaHQsIEZpeGVkKSk7CiAgICAgfSAKICNp
ZiBFTkFCTEUoVklERU8pCi0gICAgZWxzZSBpZiAoby0+c3R5bGUoKS0+YXBwZWFyYW5jZSgpID09
IE1lZGlhU2xpZGVyVGh1bWJQYXJ0KSAKLSAgICAgICAgUmVuZGVyTWVkaWFDb250cm9sczo6YWRq
dXN0TWVkaWFTbGlkZXJUaHVtYlNpemUobyk7CisgICAgZWxzZSBpZiAoc3R5bGUtPmFwcGVhcmFu
Y2UoKSA9PSBNZWRpYVNsaWRlclRodW1iUGFydCkgCisgICAgICAgIFJlbmRlck1lZGlhQ29udHJv
bHM6OmFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKHN0eWxlKTsKICNlbmRpZgogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVTYWZhcmkuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVNhZmFyaS5oCmluZGV4IGI5MWUyOGU2
ZWY1Y2FmYmVjZWVlMmQwMTVmMjMwNzI4NTU1ZDZjMjQuLjY2MDA0ZjA0NDBkZDBmZDk3YzVhMmY5
YjgzZjUwZDkwZmE5MmYzNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZVNhZmFyaS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZVNhZmFyaS5oCkBAIC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgaW50
IG1pbmltdW1NZW51TGlzdFNpemUoUmVuZGVyU3R5bGUqKSBjb25zdDsKIAotICAgIHZpcnR1YWwg
dm9pZCBhZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KikgY29uc3Q7CisgICAgdmly
dHVhbCB2b2lkIGFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSopIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUaHVtYlN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBS
ZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdDsgCiAgICAgCiAgICAgdmlydHVhbCBpbnQgcG9w
dXBJbnRlcm5hbFBhZGRpbmdMZWZ0KFJlbmRlclN0eWxlKikgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmNwcAppbmRleCAxNWY2NGM1ZTRjNjRiNjBjYTI1
ZDg2NWNhZDRiMmJhZDNhMDk4MmVlLi42OGM4YWQxMTYzNzUzZDg2MzI5YWViZDlmNjEzOWQ2MzRh
YmVjNmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVX
aW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbi5jcHAK
QEAgLTgzMywxOSArODMzLDE5IEBAIGJvb2wgUmVuZGVyVGhlbWVXaW46OnBhaW50U2xpZGVyVGh1
bWIoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIGksIGNvbnN0CiBjb25zdCBpbnQg
c2xpZGVyVGh1bWJXaWR0aCA9IDc7CiBjb25zdCBpbnQgc2xpZGVyVGh1bWJIZWlnaHQgPSAxNTsK
IAotdm9pZCBSZW5kZXJUaGVtZVdpbjo6YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVj
dCogbykgY29uc3QKK3ZvaWQgUmVuZGVyVGhlbWVXaW46OmFkanVzdFNsaWRlclRodW1iU2l6ZShS
ZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7Ci0gICAgQ29udHJvbFBhcnQgcGFydCA9IG8tPnN0
eWxlKCktPmFwcGVhcmFuY2UoKTsKKyAgICBDb250cm9sUGFydCBwYXJ0ID0gc3R5bGUtPmFwcGVh
cmFuY2UoKTsKICAgICBpZiAocGFydCA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkgewotICAg
ICAgICBvLT5zdHlsZSgpLT5zZXRXaWR0aChMZW5ndGgoc2xpZGVyVGh1bWJIZWlnaHQsIEZpeGVk
KSk7Ci0gICAgICAgIG8tPnN0eWxlKCktPnNldEhlaWdodChMZW5ndGgoc2xpZGVyVGh1bWJXaWR0
aCwgRml4ZWQpKTsKKyAgICAgICAgc3R5bGUtPnNldFdpZHRoKExlbmd0aChzbGlkZXJUaHVtYkhl
aWdodCwgRml4ZWQpKTsKKyAgICAgICAgc3R5bGUtPnNldEhlaWdodChMZW5ndGgoc2xpZGVyVGh1
bWJXaWR0aCwgRml4ZWQpKTsKICAgICB9IGVsc2UgaWYgKHBhcnQgPT0gU2xpZGVyVGh1bWJIb3Jp
em9udGFsUGFydCkgewotICAgICAgICBvLT5zdHlsZSgpLT5zZXRXaWR0aChMZW5ndGgoc2xpZGVy
VGh1bWJXaWR0aCwgRml4ZWQpKTsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0SGVpZ2h0KExlbmd0
aChzbGlkZXJUaHVtYkhlaWdodCwgRml4ZWQpKTsKKyAgICAgICAgc3R5bGUtPnNldFdpZHRoKExl
bmd0aChzbGlkZXJUaHVtYldpZHRoLCBGaXhlZCkpOworICAgICAgICBzdHlsZS0+c2V0SGVpZ2h0
KExlbmd0aChzbGlkZXJUaHVtYkhlaWdodCwgRml4ZWQpKTsKICAgICB9CiAjaWYgRU5BQkxFKFZJ
REVPKQogICAgIGVsc2UgaWYgKHBhcnQgPT0gTWVkaWFTbGlkZXJUaHVtYlBhcnQgfHwgcGFydCA9
PSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydCkgCi0gICAgICAgIFJlbmRlck1lZGlhQ29udHJv
bHM6OmFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKG8pOworICAgICAgICBSZW5kZXJNZWRpYUNv
bnRyb2xzOjphZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShzdHlsZSk7CiAjZW5kaWYKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uaAppbmRleCA3ZThhNDkxNTI4
MmVkZjcxOTllOTA1ZTYxNmIwMzVmNGVlYzczYWJkLi4zNzNiNDc5NGQ3NzA0YjljYzlkODA4ZDVj
MTY0MTcwZGRmNzU0ZjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVXaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVX
aW4uaApAQCAtOTMsNyArOTMsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRT
bGlkZXJUcmFjayhSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgaSwgY29uc3QgSW50
UmVjdCYgcik7CiAgICAgdmlydHVhbCBib29sIHBhaW50U2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0
KiBvLCBjb25zdCBQYWludEluZm8mIGksIGNvbnN0IEludFJlY3QmIHIpOwotICAgIHZpcnR1YWwg
dm9pZCBhZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KikgY29uc3Q7CisgICAgdmly
dHVhbCB2b2lkIGFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSopIGNvbnN0OwogCiAg
ICAgdmlydHVhbCBib29sIHBvcHVwT3B0aW9uU3VwcG9ydHNUZXh0SW5kZW50KCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVX
aW5DRS5jcHAKaW5kZXggYTU2YWIzZWE0N2E1YmYyODMyMDZlYWJkM2MxMmViZTg5NTA0YTcyNi4u
YWJjNzIxNmRiNGZhODFhMTc5YTQ4ZjZmMGMwNjQyY2RiM2VmZTdjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luQ0UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbkNFLmNwcApAQCAtMzMxLDE0ICszMzEsMTQg
QEAgQ29sb3IgUmVuZGVyVGhlbWVXaW5DRTo6c3lzdGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQpIGNv
bnN0CiBjb25zdCBpbnQgc2xpZGVyVGh1bWJXaWR0aCA9IDc7CiBjb25zdCBpbnQgc2xpZGVyVGh1
bWJIZWlnaHQgPSAxNTsKIAotdm9pZCBSZW5kZXJUaGVtZVdpbkNFOjphZGp1c3RTbGlkZXJUaHVt
YlNpemUoUmVuZGVyT2JqZWN0KiBvKSBjb25zdAotewotICAgIGlmIChvLT5zdHlsZSgpLT5hcHBl
YXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQpIHsKLSAgICAgICAgby0+c3R5bGUo
KS0+c2V0V2lkdGgoTGVuZ3RoKHNsaWRlclRodW1iSGVpZ2h0LCBGaXhlZCkpOwotICAgICAgICBv
LT5zdHlsZSgpLT5zZXRIZWlnaHQoTGVuZ3RoKHNsaWRlclRodW1iV2lkdGgsIEZpeGVkKSk7Ci0g
ICAgfSBlbHNlIGlmIChvLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJIb3Jp
em9udGFsUGFydCkgewotICAgICAgICBvLT5zdHlsZSgpLT5zZXRXaWR0aChMZW5ndGgoc2xpZGVy
VGh1bWJXaWR0aCwgRml4ZWQpKTsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0SGVpZ2h0KExlbmd0
aChzbGlkZXJUaHVtYkhlaWdodCwgRml4ZWQpKTsKK3ZvaWQgUmVuZGVyVGhlbWVXaW5DRTo6YWRq
dXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKK3sKKyAgICBpZiAo
c3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkgeworICAgICAg
ICBzdHlsZS0+c2V0V2lkdGgoTGVuZ3RoKHNsaWRlclRodW1iSGVpZ2h0LCBGaXhlZCkpOworICAg
ICAgICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aChzbGlkZXJUaHVtYldpZHRoLCBGaXhlZCkpOwor
ICAgIH0gZWxzZSBpZiAoc3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYkhvcml6b250
YWxQYXJ0KSB7CisgICAgICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgoc2xpZGVyVGh1bWJXaWR0
aCwgRml4ZWQpKTsKKyAgICAgICAgc3R5bGUtPnNldEhlaWdodChMZW5ndGgoc2xpZGVyVGh1bWJI
ZWlnaHQsIEZpeGVkKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW5DRS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lV2luQ0UuaAppbmRleCAxNGE1YjEyODMyNjZjMDAzNmU3YWVkM2QxNWNiZDAwZmJj
MmI3NjgzLi5hN2RmNDg5NjdmYWVjNjNmZTk4MmI3MGFiYjcwOWE5OGZmYWFjM2ZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW5DRS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbkNFLmgKQEAgLTg5LDcgKzg5LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludFNsaWRl
clRyYWNrKFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0
JiByKTsKICAgICAgICAgdmlydHVhbCBib29sIHBhaW50U2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0
KiBvLCBjb25zdCBQYWludEluZm8mIGksIGNvbnN0IEludFJlY3QmIHIpOwotICAgICAgICB2aXJ0
dWFsIHZvaWQgYWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlck9iamVjdCopIGNvbnN0OworICAg
ICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKikgY29u
c3Q7CiAKICAgICAgICAgdmlydHVhbCBib29sIHBvcHVwT3B0aW9uU3VwcG9ydHNUZXh0SW5kZW50
KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>