<?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>210171</bug_id>
          
          <creation_ts>2020-04-07 19:42:36 -0700</creation_ts>
          <short_desc>Fix up code style for scroll animation</short_desc>
          <delta_ts>2020-04-09 22:23: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>Scrolling</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>204882</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="cathiechen">cathiechen</reporter>
          <assigned_to name="cathiechen">cathiechen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1638916</commentid>
    <comment_count>0</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-04-07 19:42:36 -0700</bug_when>
    <thetext>Fix up code style for scroll animation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638917</commentid>
    <comment_count>1</comment_count>
      <attachid>395766</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-04-07 19:53:10 -0700</bug_when>
    <thetext>Created attachment 395766
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640030</commentid>
    <comment_count>2</comment_count>
      <attachid>396045</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-04-09 21:47:22 -0700</bug_when>
    <thetext>Created attachment 396045
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640037</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-09 22:22:22 -0700</bug_when>
    <thetext>Committed r259846: &lt;https://trac.webkit.org/changeset/259846&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396045.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640040</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-09 22:23:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/61565161&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395766</attachid>
            <date>2020-04-07 19:53:10 -0700</date>
            <delta_ts>2020-04-09 21:47:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210171-20200408105309.patch</filename>
            <type>text/plain</type>
            <size>30795</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2IyYjU1ZDVmNmViNzRh
MjhhMmQ2NjBmNTBiYWJiMGM5NTVhMGI2NC4uYTdkZDgzMWNmMzQ0OWNhZTJjZTI5OWJiZGIwMjY5
MDYzMWFhYmNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIwLTA0LTA3ICBDYXRo
aWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBGaXggdXAgY29kZSBz
dHlsZSBmb3Igc2Nyb2xsIGFuaW1hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMTcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgMS4gVXNlIEFuaW1hdGVkU2Nyb2xsIGluc3RlYWQgb2YgYm9vbCB0
byBpbmRpY2F0ZSBhbmltYXRlZCBvciBub3QuCisgICAgICAgIDIuIFJlbW92ZSBwYXJhbWV0ZXIg
U2Nyb2xsUmVjdFRvVmlzaWJsZU9wdGlvbnMsIHRoZSBhdXRvc2Nyb2xsIHN0YXR1cyBpcyBhdmFp
bGFibGUgZnJvbSBFdmVudEhhbmRsZXIuCisgICAgICAgIDMuIEluIG9yZGVyIHRvIGtlZXAgY29u
c2lzdGVudCwgdXNlIFJlbmRlckxheWVyOjpzZXRTY3JvbGxQb3NpdGlvbiBpbnN0ZWFkIG9mIFJl
bmRlckxheWVyOjpzY3JvbGxUb1Bvc2l0aW9uLgorICAgICAgICA0LiBBZGQgQW5pbWF0ZWRTY3Jv
bGwgcGFyYW1ldGVyIHRvIFNjcm9sbFZpZXc6OnNldENvbnRlbnRzU2Nyb2xsUG9zaXRpb24sIHRo
ZW4gdGhlIHNjcm9sbCBhbmltYXRpb24KKyAgICAgICAgY2FuIGJlIGRlYWx0IGluIEZyYW1lVmll
dzo6c2V0U2Nyb2xsUG9zaXRpb24uCisgICAgICAgIDUuIEluIFNjcm9sbFZpZXc6OnNldFNjcm9s
bFBvc2l0aW9uLCB0aGUgc2Nyb2xsIGFuaW1hdGlvbiBzaG91bGQgYmUgY2FuY2xlZCBiZWZvcmUg
cmV0dXJuLgorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOiBVc2UgQW5pbWF0ZWRTY3JvbGwg
aW5zdGVhZCBvZiBib29sLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2Nyb2xsVG8pOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0U2Nyb2xsTGVmdCk6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjpzZXRTY3JvbGxUb3ApOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2Nyb2xsVG8gY29uc3QpOiBObyBuZWVk
IHRvIGNhbGwgc2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uIGhlcmUuCisgICAgICAgICogcGFn
ZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRTY3JvbGxQ
b3NpdGlvbik6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9TY3JvbGxUeXBlcy5oOiBBZGQgQW5pbWF0ZWRTY3JvbGwuCisgICAgICAgICogcGxhdGZvcm0v
U2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRDb250ZW50
c1Njcm9sbFBvc2l0aW9uKTogQWRkIHBhcmFtZXRlciBBbmltYXRlZFNjcm9sbC4KKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKTogQ2FuY2VsIHRoZSBzY3Jv
bGwgYW5pbWF0aW9uIGJlZm9yZSByZXR1cm4uCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmll
dy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94OjpzZXRTY3JvbGxMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJv
eDo6c2V0U2Nyb2xsVG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c2V0U2Nyb2xs
UG9zaXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OnNjcm9sbFRvWFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3Jv
bGxUb1lQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2V0U2Nyb2xs
UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zp
c2libGUpOiBSZW1vdmUgQXV0b3Njcm9sbFN0YXR1cy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjphdXRvc2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3Jv
bGxUb1Bvc2l0aW9uKTogRGVsZXRlZC4gVXNlIHNldFNjcm9sbFBvc2l0aW9uIGluc3RlYWQuCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckxpc3RCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6c2V0U2Ny
b2xsTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxUb3Ap
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94Lmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNldFNjcm9sbExlZnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxUb3ApOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKwogMjAyMC0wNC0w
NCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04g
KHIyNTkwOTUpOiBBU1NFUlRJT04gRkFJTEVEOiBtX3ZpZGVvRnVsbHNjcmVlbk1vZGUgIT0gVmlk
ZW9GdWxsc2NyZWVuTW9kZU5vbmUgc2VlbiB3aXRoIFRlc3RXZWJLaXRBUEkuV2ViS2l0TGVnYWN5
LkF1ZGlvU2Vzc2lvbkNhdGVnb3J5SU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggYzlkYmQ1
ZTUzYTNlNjIyMTRhZDhlNDdlODg0Y2I2MDczNTM1ODNmZi4uZDkwMjEzNDY2Y2RlZGMxOGNiZDEw
ZDc4NDNmMWQwOTE0Y2YwYzlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtOTUwLDcgKzk1
MCw3IEBAIHZvaWQgRWxlbWVudDo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRp
b25zLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKICAgICAgICAgY2xhbXBUb0ludGVnZXIoc2Ny
b2xsVG9PcHRpb25zLmxlZnQudmFsdWUoKSAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpv
b20oKSksCiAgICAgICAgIGNsYW1wVG9JbnRlZ2VyKHNjcm9sbFRvT3B0aW9ucy50b3AudmFsdWUo
KSAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSkKICAgICApOwotICAgIGJvb2wg
YW5pbWF0ZWQgPSB1c2VTbW9vdGhTY3JvbGxpbmcoc2Nyb2xsVG9PcHRpb25zLmJlaGF2aW9yLnZh
bHVlT3IoU2Nyb2xsQmVoYXZpb3I6OkF1dG8pLCB0aGlzKTsKKyAgICBBbmltYXRlZFNjcm9sbCBh
bmltYXRlZCA9IHVzZVNtb290aFNjcm9sbGluZyhzY3JvbGxUb09wdGlvbnMuYmVoYXZpb3IudmFs
dWVPcihTY3JvbGxCZWhhdmlvcjo6QXV0byksIHRoaXMpID8gQW5pbWF0ZWRTY3JvbGw6OlllcyA6
IEFuaW1hdGVkU2Nyb2xsOjpObzsKICAgICByZW5kZXJlci0+c2V0U2Nyb2xsUG9zaXRpb24oc2Ny
b2xsUG9zaXRpb24sIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgY2xhbXBpbmcsIGFuaW1hdGVk
KTsKIH0KIApAQCAtMTI5Myw3ICsxMjkzLDcgQEAgdm9pZCBFbGVtZW50OjpzZXRTY3JvbGxMZWZ0
KGludCBuZXdMZWZ0KQogICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0
aE5vbk51bGxWaWV3KCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRv
Y3VtZW50KCktPnNjcm9sbGluZ0VsZW1lbnQoKT8KICAgICAgICAgICAgIC8vIFNlZSBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5Ci0gICAgICAgICAgICBib29s
IGFuaW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpBdXRvLCBkb2N1
bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgIEFuaW1hdGVkU2Nyb2xsIGFu
aW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpBdXRvLCBkb2N1bWVu
dCgpLmRvY3VtZW50RWxlbWVudCgpKSA/IEFuaW1hdGVkU2Nyb2xsOjpZZXMgOiBBbmltYXRlZFNj
cm9sbDo6Tm87CiAgICAgICAgICAgICBJbnRQb2ludCBwb3NpdGlvbihzdGF0aWNfY2FzdDxpbnQ+
KG5ld0xlZnQgKiBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5mcmFtZVNjYWxlRmFj
dG9yKCkpLCBmcmFtZS0+dmlldygpLT5zY3JvbGxZKCkpOwogICAgICAgICAgICAgZnJhbWUtPnZp
ZXcoKS0+c2V0U2Nyb2xsUG9zaXRpb24ocG9zaXRpb24sIFNjcm9sbENsYW1waW5nOjpDbGFtcGVk
LCBhbmltYXRlZCk7CiAgICAgICAgIH0KQEAgLTEzMDIsNyArMTMwMiw3IEBAIHZvaWQgRWxlbWVu
dDo6c2V0U2Nyb2xsTGVmdChpbnQgbmV3TGVmdCkKIAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9
IHJlbmRlckJveCgpKSB7CiAgICAgICAgIGludCBjbGFtcGVkTGVmdCA9IGNsYW1wVG9JbnRlZ2Vy
KG5ld0xlZnQgKiByZW5kZXJlci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkpOwotICAgICAgICBi
b29sIGFuaW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpBdXRvLCB0
aGlzKTsKKyAgICAgICAgQW5pbWF0ZWRTY3JvbGwgYW5pbWF0ZWQgPSB1c2VTbW9vdGhTY3JvbGxp
bmcoU2Nyb2xsQmVoYXZpb3I6OkF1dG8sIHRoaXMpID8gQW5pbWF0ZWRTY3JvbGw6OlllcyA6IEFu
aW1hdGVkU2Nyb2xsOjpObzsKICAgICAgICAgcmVuZGVyZXItPnNldFNjcm9sbExlZnQoY2xhbXBl
ZExlZnQsIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQs
IGFuaW1hdGVkKTsKICAgICAgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gcmVuZGVyZXIt
PmxheWVyKCkpCiAgICAgICAgICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xsU2hvdWxkQ2xl
YXJMYXRjaGVkU3RhdGUodHJ1ZSk7CkBAIC0xMzE3LDcgKzEzMTcsNyBAQCB2b2lkIEVsZW1lbnQ6
OnNldFNjcm9sbFRvcChpbnQgbmV3VG9wKQogICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1
bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91
bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1lbnQoKT8KICAgICAgICAgICAgIC8v
IFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5Ci0gICAg
ICAgICAgICBib29sIGFuaW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9y
OjpBdXRvLCBkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgIEFuaW1h
dGVkU2Nyb2xsIGFuaW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpB
dXRvLCBkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKSA/IEFuaW1hdGVkU2Nyb2xsOjpZZXMg
OiBBbmltYXRlZFNjcm9sbDo6Tm87CiAgICAgICAgICAgICBJbnRQb2ludCBwb3NpdGlvbihmcmFt
ZS0+dmlldygpLT5zY3JvbGxYKCksIHN0YXRpY19jYXN0PGludD4obmV3VG9wICogZnJhbWUtPnBh
Z2Vab29tRmFjdG9yKCkgKiBmcmFtZS0+ZnJhbWVTY2FsZUZhY3RvcigpKSk7CiAgICAgICAgICAg
ICBmcmFtZS0+dmlldygpLT5zZXRTY3JvbGxQb3NpdGlvbihwb3NpdGlvbiwgU2Nyb2xsQ2xhbXBp
bmc6OkNsYW1wZWQsIGFuaW1hdGVkKTsKICAgICAgICAgfQpAQCAtMTMyNiw3ICsxMzI2LDcgQEAg
dm9pZCBFbGVtZW50OjpzZXRTY3JvbGxUb3AoaW50IG5ld1RvcCkKIAogICAgIGlmIChhdXRvKiBy
ZW5kZXJlciA9IHJlbmRlckJveCgpKSB7CiAgICAgICAgIGludCBjbGFtcGVkVG9wID0gY2xhbXBU
b0ludGVnZXIobmV3VG9wICogcmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKTsKLSAg
ICAgICAgYm9vbCBhbmltYXRlZCA9IHVzZVNtb290aFNjcm9sbGluZyhTY3JvbGxCZWhhdmlvcjo6
QXV0bywgdGhpcyk7CisgICAgICAgIEFuaW1hdGVkU2Nyb2xsIGFuaW1hdGVkID0gdXNlU21vb3Ro
U2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpBdXRvLCB0aGlzKSA/IEFuaW1hdGVkU2Nyb2xsOjpZ
ZXMgOiBBbmltYXRlZFNjcm9sbDo6Tm87CiAgICAgICAgIHJlbmRlcmVyLT5zZXRTY3JvbGxUb3Ao
Y2xhbXBlZFRvcCwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZzo6Q2xh
bXBlZCwgYW5pbWF0ZWQpOwogICAgICAgICBpZiAoYXV0byogc2Nyb2xsYWJsZUFyZWEgPSByZW5k
ZXJlci0+bGF5ZXIoKSkKICAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRTY3JvbGxTaG91
bGRDbGVhckxhdGNoZWRTdGF0ZSh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRl
eCBhN2IyMmE5NjI5MGI3YzcyYmMzMTA0Yzg5MWZhZTFhNTdiODI2YTBiLi4wOWFhYjZiMjNkN2Q3
ZTc1MGRkYWU4ZjQxMWQwZmVmZjg1Y2E3NmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CkBAIC0xNjg4LDEyICsxNjg4LDkgQEAgdm9pZCBET01XaW5kb3c6OnNjcm9sbFRvKGNvbnN0IFNj
cm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcKIAogICAgIC8v
IEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1lbnQoKT8KICAg
ICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTA1OQot
ICAgIGlmICh1c2VTbW9vdGhTY3JvbGxpbmcoc2Nyb2xsVG9PcHRpb25zLmJlaGF2aW9yLnZhbHVl
T3IoU2Nyb2xsQmVoYXZpb3I6OkF1dG8pLCBkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSkp
IHsKLSAgICAgICAgdmlldy0+c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGxheW91dFBvcywg
U2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBjbGFtcGluZyk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9CisgICAgQW5pbWF0ZWRTY3JvbGwgYW5pbWF0ZWQgPSB1c2VTbW9vdGhTY3JvbGxpbmcoc2Ny
b2xsVG9PcHRpb25zLmJlaGF2aW9yLnZhbHVlT3IoU2Nyb2xsQmVoYXZpb3I6OkF1dG8pLCBkb2N1
bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSkgPyBBbmltYXRlZFNjcm9sbDo6WWVzIDogQW5pbWF0
ZWRTY3JvbGw6Ok5vOwogCi0gICAgdmlldy0+c2V0Q29udGVudHNTY3JvbGxQb3NpdGlvbihsYXlv
dXRQb3MsIGNsYW1waW5nKTsKKyAgICB2aWV3LT5zZXRDb250ZW50c1Njcm9sbFBvc2l0aW9uKGxh
eW91dFBvcywgY2xhbXBpbmcsIGFuaW1hdGVkKTsKIH0KIAogYm9vbCBET01XaW5kb3c6OmFsbG93
ZWRUb0NoYW5nZVdpbmRvd0dlb21ldHJ5KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAppbmRleCBjNjhmNWQzOGM2ZTUxZTA0ODg4NzA5NGM1N2ViZmYwN2FhZjAxY2ViLi43NDQxZDBj
NDAyYzNkMzc4YTkzZWVlOGU4MTBkNWZjNTNlZGEyNDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCkBAIC0yMjc1LDcgKzIyNzUsNyBAQCB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsRWxlbWVu
dFRvUmVjdChjb25zdCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAg
IHNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50KGJvdW5kcy54KCkgLSBjZW50ZXJpbmdPZmZzZXRY
IC0gcmVjdC54KCksIGJvdW5kcy55KCkgLSBjZW50ZXJpbmdPZmZzZXRZIC0gcmVjdC55KCkpKTsK
IH0KIAotdm9pZCBGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0
aW9uJiBzY3JvbGxQb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcsIGJvb2wgYW5pbWF0
ZWQpCit2b2lkIEZyYW1lVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRp
b24mIHNjcm9sbFBvc2l0aW9uLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZywgQW5pbWF0ZWRTY3Jv
bGwgYW5pbWF0ZWQpCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8
ICJGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uICIgPDwgc2Nyb2xsUG9zaXRpb24gPDwgIiAs
IGNsZWFyaW5nIGFuY2hvciIpOwogCkBAIC0yMjg4LDcgKzIyODgsNyBAQCB2b2lkIEZyYW1lVmll
dzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9u
LCBTY3JvbGxDbAogICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZSgpLnBhZ2UoKTsKICAgICBpZiAocGFn
ZSAmJiBwYWdlLT5pc01vbml0b3JpbmdXaGVlbEV2ZW50cygpKQogICAgICAgICBzY3JvbGxBbmlt
YXRvcigpLnNldFdoZWVsRXZlbnRUZXN0TW9uaXRvcihwYWdlLT53aGVlbEV2ZW50VGVzdE1vbml0
b3IoKSk7Ci0gICAgaWYgKGFuaW1hdGVkKQorICAgIGlmIChhbmltYXRlZCA9PSBBbmltYXRlZFNj
cm9sbDo6WWVzKQogICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oc2Nyb2xsT2Zm
c2V0RnJvbVBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKSwgY3VycmVudFNjcm9sbFR5cGUoKSwgY2xh
bXBpbmcpOwogICAgIGVsc2UKICAgICAgICAgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24o
c2Nyb2xsUG9zaXRpb24sIGNsYW1waW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGJi
OTU3ODVjYzgxMjdhMzdmZjYxNTA2ZmY2ODE2MmY0ODE1N2RkZjQuLjA0YWU1OWE2MTBjYjE2Yzg0
MDlhYmM5ZDdlYjQyOTljNDRkZmM4NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMjI5
LDcgKzIyOSw3IEBAIHB1YmxpYzoKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRGaXhlZFZpc2libGVDb250ZW50UmVjdChjb25zdCBJbnRS
ZWN0JikgZmluYWw7CiAjZW5kaWYKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcm9sbFBv
c2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFt
cGluZzo6Q2xhbXBlZCwgYm9vbCBhbmltYXRlZCA9IGZhbHNlKSBmaW5hbDsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Ny
b2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgQW5pbWF0ZWRTY3JvbGwgPSBB
bmltYXRlZFNjcm9sbDo6Tm8pIGZpbmFsOwogICAgIHZvaWQgcmVzdG9yZVNjcm9sbGJhcigpOwog
ICAgIHZvaWQgc2NoZWR1bGVTY3JvbGxUb0ZvY3VzZWRFbGVtZW50KFNlbGVjdGlvblJldmVhbE1v
ZGUpOwogICAgIHZvaWQgc2Nyb2xsVG9Gb2N1c2VkRWxlbWVudEltbWVkaWF0ZWx5SWZOZWVkZWQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCmluZGV4IDVjNTJkNWJiZGUyODM0
NmZhN2M3M2I4OWQwNGRjNTY1MTE2ZTM3NDMuLmI5NzVmYjA0MzBiOGRlN2U5NTkxNTg5MjY3MDNi
MGY5MDI4NmFiOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5
cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApAQCAtNjAs
NiArNjAsMTEgQEAgZW51bSBjbGFzcyBTY3JvbGxCZWhhdmlvclN0YXR1cyA6IHVpbnQ4X3Qgewog
ICAgIEluTm9uTmF0aXZlQW5pbWF0aW9uLAogfTsKIAorZW51bSBjbGFzcyBBbmltYXRlZFNjcm9s
bCA6IHVpbnQ4X3QgeworICAgIE5vLAorICAgIFllcworfTsKKwogaW5saW5lIFNjcm9sbERpcmVj
dGlvbiBsb2dpY2FsVG9QaHlzaWNhbChTY3JvbGxMb2dpY2FsRGlyZWN0aW9uIGRpcmVjdGlvbiwg
Ym9vbCBpc1ZlcnRpY2FsLCBib29sIGlzRmxpcHBlZCkKIHsKICAgICBzd2l0Y2ggKGRpcmVjdGlv
bikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCAyZmQxNWY3YjMw
MTdiMWM3ZWU3YTIxYzg2MTg2NTRiOTUxMTA5MjI3Li5kODFkMjQ0NGMwNTZmM2FkZWMyMjlmOGNl
NmFhYWVkMTA4Y2U3OGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApA
QCAtMjA2LDEzICsyMDYsMTMgQEAgSW50UG9pbnQgU2Nyb2xsVmlldzo6Y29udGVudHNTY3JvbGxQ
b3NpdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIHNjcm9sbFBvc2l0aW9uKCk7CiB9CiAKLXZvaWQg
U2Nyb2xsVmlldzo6c2V0Q29udGVudHNTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgcG9z
aXRpb24sIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQordm9pZCBTY3JvbGxWaWV3OjpzZXRDb250
ZW50c1Njcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsQ2xhbXBp
bmcgY2xhbXBpbmcsIEFuaW1hdGVkU2Nyb2xsIGFuaW1hdGVkKQogewogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAgICAgaWYgKHBsYXRmb3JtV2lkZ2V0KCkpCiAgICAgICAgIHNldEFjdHVhbFNj
cm9sbFBvc2l0aW9uKHBvc2l0aW9uKTsKICNlbmRpZgotICAgIHNldFNjcm9sbFBvc2l0aW9uKHBv
c2l0aW9uLCBjbGFtcGluZyk7CisgICAgc2V0U2Nyb2xsUG9zaXRpb24ocG9zaXRpb24sIGNsYW1w
aW5nLCBhbmltYXRlZCk7CiB9CiAKIEZsb2F0UmVjdCBTY3JvbGxWaWV3OjpleHBvc2VkQ29udGVu
dFJlY3QoKSBjb25zdApAQCAtNTEzLDcgKzUxMyw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6Y29tcGxl
dGVVcGRhdGVzQWZ0ZXJTY3JvbGxUbyhjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkKICAgICB1
cGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyU2Nyb2xsaW5nKCk7CiB9CiAKLXZvaWQgU2Nyb2xs
Vmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0
aW9uLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZywgYm9vbC8qIGFuaW1hdGVkKi8pCit2b2lkIFNj
cm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQ
b3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcsIEFuaW1hdGVkU2Nyb2xsLyogYW5pbWF0
ZWQqLykKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9s
bFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uICIgPDwgc2Nyb2xsUG9zaXRpb24pOwogCkBAIC01MjUs
MTQgKzUyNSwxMyBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNj
cm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwgU2Nyb2xsQwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgU2Nyb2xsUG9zaXRpb24gbmV3U2Nyb2xsUG9zaXRpb24gPSAoIWRlbGVnYXRl
c1Njcm9sbGluZygpICYmIGNsYW1waW5nID09IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKSA/IGFk
anVzdFNjcm9sbFBvc2l0aW9uV2l0aGluUmFuZ2Uoc2Nyb2xsUG9zaXRpb24pIDogc2Nyb2xsUG9z
aXRpb247CisgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJl
aGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAgc2Nyb2xsQW5pbWF0
b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7CiAKKyAgICBTY3JvbGxQb3NpdGlvbiBuZXdTY3JvbGxQ
b3NpdGlvbiA9ICghZGVsZWdhdGVzU2Nyb2xsaW5nKCkgJiYgY2xhbXBpbmcgPT0gU2Nyb2xsQ2xh
bXBpbmc6OkNsYW1wZWQpID8gYWRqdXN0U2Nyb2xsUG9zaXRpb25XaXRoaW5SYW5nZShzY3JvbGxQ
b3NpdGlvbikgOiBzY3JvbGxQb3NpdGlvbjsKICAgICBpZiAoKCFkZWxlZ2F0ZXNTY3JvbGxpbmco
KSB8fCBjdXJyZW50U2Nyb2xsVHlwZSgpID09IFNjcm9sbFR5cGU6OlVzZXIpICYmIGN1cnJlbnRT
Y3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1h
dGlvbiAmJiBuZXdTY3JvbGxQb3NpdGlvbiA9PSB0aGlzLT5zY3JvbGxQb3NpdGlvbigpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0g
U2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uKQotICAgICAgICBzY3Jv
bGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsKLQogICAgIGlmICghcmVxdWVzdFNjcm9s
bFBvc2l0aW9uVXBkYXRlKG5ld1Njcm9sbFBvc2l0aW9uLCBjdXJyZW50U2Nyb2xsVHlwZSgpLCBj
bGFtcGluZykpCiAgICAgICAgIHVwZGF0ZVNjcm9sbGJhcnMobmV3U2Nyb2xsUG9zaXRpb24pOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKaW5kZXggYjY0YWEzYmEwNjZjOWNkYWQ5
MGExZmNiYTFhMTU0YjIwMzBiYjUxZS4uMDYwNDI0YzkyMTgxNDU0ZWYxMzc2MmRiMTJkYmUyZDJh
MjFmZTUxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaApAQCAtMjMxLDcgKzIz
MSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFNjcm9sbCBwb3NpdGlvbiB1c2VkIGJ5IHdlYi1leHBv
c2VkIGZlYXR1cmVzIChoYXMgbGVnYWN5IGlPUyBiZWhhdmlvcikuCiAgICAgV0VCQ09SRV9FWFBP
UlQgSW50UG9pbnQgY29udGVudHNTY3JvbGxQb3NpdGlvbigpIGNvbnN0OwotICAgIHZvaWQgc2V0
Q29udGVudHNTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYsIFNjcm9sbENsYW1waW5nID0g
U2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpOworICAgIHZvaWQgc2V0Q29udGVudHNTY3JvbGxQb3Np
dGlvbihjb25zdCBJbnRQb2ludCYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNs
YW1wZWQsIEFuaW1hdGVkU2Nyb2xsID0gQW5pbWF0ZWRTY3JvbGw6Ok5vKTsKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAgICAgaW50IGFjdHVhbFNjcm9sbFgoKSBjb25zdCB7IHJldHVybiB1
bm9ic2N1cmVkQ29udGVudFJlY3QoKS54KCk7IH0KQEAgLTI2MSw3ICsyNjEsNyBAQCBwdWJsaWM6
CiAgICAgU2Nyb2xsUG9zaXRpb24gY2FjaGVkU2Nyb2xsUG9zaXRpb24oKSBjb25zdCB7IHJldHVy
biBtX2NhY2hlZFNjcm9sbFBvc2l0aW9uOyB9CiAKICAgICAvLyBGdW5jdGlvbnMgZm9yIHNjcm9s
bGluZyB0aGUgdmlldy4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3Qg
U2Nyb2xsUG9zaXRpb24mLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVk
LCBib29sIGFuaW1hdGVkID0gZmFsc2UpOworICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxQb3Np
dGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBp
bmc6OkNsYW1wZWQsIEFuaW1hdGVkU2Nyb2xsID0gQW5pbWF0ZWRTY3JvbGw6Ok5vKTsKIAogICAg
IHZvaWQgc2Nyb2xsQnkoY29uc3QgSW50U2l6ZSYgcykgeyByZXR1cm4gc2V0U2Nyb2xsUG9zaXRp
b24oc2Nyb2xsUG9zaXRpb24oKSArIHMpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAKaW5kZXggNDBiYTFhZTIxNzYwMjU4MjQ3OGYyNjUwNzhhYWRmMjM1OTdhNzUwOS4u
OGIyODY0MjVjMGEzOTZlYTE1ODMyZjI5NzE4OGNkNGVmODdkZDQwZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTU4MSw3ICs1ODEsNyBAQCBzdGF0aWMgdm9pZCBz
ZXR1cFdoZWVsRXZlbnRNb25pdG9yKFJlbmRlckxheWVyJiBsYXllcikKICAgICBsYXllci5zY3Jv
bGxBbmltYXRvcigpLnNldFdoZWVsRXZlbnRUZXN0TW9uaXRvcihwYWdlLndoZWVsRXZlbnRUZXN0
TW9uaXRvcigpKTsKIH0KIAotdm9pZCBSZW5kZXJCb3g6OnNldFNjcm9sbExlZnQoaW50IG5ld0xl
ZnQsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcsIGJvb2wg
YW5pbWF0ZWQpCit2b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xsTGVmdChpbnQgbmV3TGVmdCwgU2Ny
b2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZywgQW5pbWF0ZWRTY3Jv
bGwgYW5pbWF0ZWQpCiB7CiAgICAgaWYgKCFoYXNPdmVyZmxvd0NsaXAoKSB8fCAhbGF5ZXIoKSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtNTg5LDcgKzU4OSw3IEBAIHZvaWQgUmVuZGVyQm94OjpzZXRT
Y3JvbGxMZWZ0KGludCBuZXdMZWZ0LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1w
aW5nCiAgICAgbGF5ZXIoKS0+c2Nyb2xsVG9YUG9zaXRpb24obmV3TGVmdCwgc2Nyb2xsVHlwZSwg
Y2xhbXBpbmcsIGFuaW1hdGVkKTsKIH0KIAotdm9pZCBSZW5kZXJCb3g6OnNldFNjcm9sbFRvcChp
bnQgbmV3VG9wLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5n
LCBib29sIGFuaW1hdGVkKQordm9pZCBSZW5kZXJCb3g6OnNldFNjcm9sbFRvcChpbnQgbmV3VG9w
LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nLCBBbmltYXRl
ZFNjcm9sbCBhbmltYXRlZCkKIHsKICAgICBpZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8ICFsYXll
cigpKQogICAgICAgICByZXR1cm47CkBAIC01OTcsMTIgKzU5NywxMiBAQCB2b2lkIFJlbmRlckJv
eDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xs
Q2xhbXBpbmcgYwogICAgIGxheWVyKCktPnNjcm9sbFRvWVBvc2l0aW9uKG5ld1RvcCwgc2Nyb2xs
VHlwZSwgY2xhbXBpbmcsIGFuaW1hdGVkKTsKIH0KIAotdm9pZCBSZW5kZXJCb3g6OnNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3Jv
bGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZywgYm9vbCBhbmltYXRlZCkKK3ZvaWQgUmVu
ZGVyQm94OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24s
IFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcsIEFuaW1hdGVk
U2Nyb2xsIGFuaW1hdGVkKQogewogICAgIGlmICghaGFzT3ZlcmZsb3dDbGlwKCkgfHwgIWxheWVy
KCkpCiAgICAgICAgIHJldHVybjsKICAgICBzZXR1cFdoZWVsRXZlbnRNb25pdG9yKCpsYXllcigp
KTsKLSAgICBsYXllcigpLT5zY3JvbGxUb1Bvc2l0aW9uKHBvc2l0aW9uLCBzY3JvbGxUeXBlLCBj
bGFtcGluZywgYW5pbWF0ZWQpOworICAgIGxheWVyKCktPnNldFNjcm9sbFBvc2l0aW9uKHBvc2l0
aW9uLCBzY3JvbGxUeXBlLCBjbGFtcGluZywgYW5pbWF0ZWQpOwogfQogCiB2b2lkIFJlbmRlckJv
eDo6YWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mIHJlY3RzLCBjb25zdCBMYXlvdXRQb2lu
dCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmgKaW5kZXggMjc1MjIwYjZiZTBkZGQzYjE1NjgwMzJiODA3MzEyNzZiNjZiMmZlMC4uODE0MzQ0
Zjc1YTlkNzFhMGRlOTFhNzdhMDBmZWY5NmViYzY4ZDhhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guaApAQCAtMjQ3LDkgKzI0Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGlu
dCBzY3JvbGxUb3AoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBzY3JvbGxXaWR0aCgpIGNvbnN0
OwogICAgIHZpcnR1YWwgaW50IHNjcm9sbEhlaWdodCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9p
ZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxD
bGFtcGluZzo6Q2xhbXBlZCwgYm9vbCBhbmltYXRlZCA9IGZhbHNlKTsKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxD
bGFtcGluZzo6Q2xhbXBlZCwgYm9vbCBhbmltYXRlZCA9IGZhbHNlKTsKLSAgICB2b2lkIHNldFNj
cm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xh
bXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgYm9vbCBhbmltYXRlZCA9IGZhbHNlKTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENs
YW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQsIEFuaW1hdGVkU2Nyb2xsID0gQW5pbWF0
ZWRTY3JvbGw6Ok5vKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xs
VHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgQW5pbWF0ZWRT
Y3JvbGwgPSBBbmltYXRlZFNjcm9sbDo6Tm8pOworICAgIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24o
Y29uc3QgU2Nyb2xsUG9zaXRpb24mLCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9s
bENsYW1waW5nOjpDbGFtcGVkLCBBbmltYXRlZFNjcm9sbCA9IEFuaW1hdGVkU2Nyb2xsOjpObyk7
CiAKICAgICBMYXlvdXRVbml0IG1hcmdpblRvcCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
bWFyZ2luQm94LnRvcCgpOyB9CiAgICAgTGF5b3V0VW5pdCBtYXJnaW5Cb3R0b20oKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX21hcmdpbkJveC5ib3R0b20oKTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggMjFmNTJiOTdkN2ZjZTQ2N2E3NDI4NmQ3NWM4
ZDE2YmU3MjcyOTU0Yy4uYmUyMzE3YTc4MjM0Y2MyNjJlYjMyMDA1MWY3MDg4MGViMzhlZWI5MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0yNjIxLDIxICsy
NjIxLDIxIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmFwcGx5UG9zdExheW91dFNjcm9sbFBvc2l0aW9u
SWZOZWVkZWQoKQogICAgIG1fcG9zdExheW91dFNjcm9sbFBvc2l0aW9uID0gV1RGOjpudWxsb3B0
OwogfQogCi12b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1hQb3NpdGlvbihpbnQgeCwgU2Nyb2xs
VHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZywgYm9vbCBhbmltYXRlZCkK
K3ZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxUeXBlIHNj
cm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nLCBBbmltYXRlZFNjcm9sbCBhbmltYXRl
ZCkKIHsKICAgICBTY3JvbGxQb3NpdGlvbiBwb3NpdGlvbih4LCBtX3Njcm9sbFBvc2l0aW9uLnko
KSk7Ci0gICAgc2Nyb2xsVG9Qb3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcs
IGFuaW1hdGVkKTsKKyAgICBzZXRTY3JvbGxQb3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlwZSwg
Y2xhbXBpbmcsIGFuaW1hdGVkKTsKIH0KIAotdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9ZUG9z
aXRpb24oaW50IHksIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBp
bmcsIGJvb2wgYW5pbWF0ZWQpCit2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1lQb3NpdGlvbihp
bnQgeSwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZywgQW5p
bWF0ZWRTY3JvbGwgYW5pbWF0ZWQpCiB7CiAgICAgU2Nyb2xsUG9zaXRpb24gcG9zaXRpb24obV9z
Y3JvbGxQb3NpdGlvbi54KCksIHkpOwotICAgIHNjcm9sbFRvUG9zaXRpb24ocG9zaXRpb24sIHNj
cm9sbFR5cGUsIGNsYW1waW5nLCBhbmltYXRlZCk7CisgICAgc2V0U2Nyb2xsUG9zaXRpb24ocG9z
aXRpb24sIHNjcm9sbFR5cGUsIGNsYW1waW5nLCBhbmltYXRlZCk7CiB9CiAKLXZvaWQgUmVuZGVy
TGF5ZXI6OnNjcm9sbFRvUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uLCBT
Y3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nLCBib29sIGFuaW1h
dGVkKQordm9pZCBSZW5kZXJMYXllcjo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9z
aXRpb24mIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNs
YW1waW5nLCBBbmltYXRlZFNjcm9sbCBhbmltYXRlZCkKIHsKLSAgICBpZiAoYW5pbWF0ZWQpCisg
ICAgaWYgKGFuaW1hdGVkID09IEFuaW1hdGVkU2Nyb2xsOjpZZXMpCiAgICAgICAgIHNjcm9sbFRv
T2Zmc2V0V2l0aEFuaW1hdGlvbihzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBz
Y3JvbGxUeXBlLCBjbGFtcGluZyk7CiAgICAgZWxzZQogICAgICAgICBzY3JvbGxUb09mZnNldChz
Y3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7
CkBAIC0yODM2LDEzICsyODM2LDE0IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OmFsbG93c0N1cnJlbnRT
Y3JvbGwoKSBjb25zdAogICAgIHJldHVybiBib3gtPmhhc0hvcml6b250YWxPdmVyZmxvdygpIHx8
IGJveC0+aGFzVmVydGljYWxPdmVyZmxvdygpOwogfQogCi12b2lkIFJlbmRlckxheWVyOjpzY3Jv
bGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNp
ZGVGaXhlZCwgY29uc3QgU2Nyb2xsUmVjdFRvVmlzaWJsZU9wdGlvbnMmIG9wdGlvbnMsIEF1dG9z
Y3JvbGxTdGF0dXMgYXV0b3Njcm9sbFN0YXR1cykKK3ZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJl
Y3RUb1Zpc2libGUoY29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkZUZp
eGVkLCBjb25zdCBTY3JvbGxSZWN0VG9WaXNpYmxlT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBM
T0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIkxheWVyICIgPDwgdGhpcyA8PCAi
IHNjcm9sbFJlY3RUb1Zpc2libGUgIiA8PCBhYnNvbHV0ZVJlY3QpOwogCiAgICAgTGF5b3V0UmVj
dCBuZXdSZWN0ID0gYWJzb2x1dGVSZWN0OwogICAgIEZyYW1lVmlldyYgZnJhbWVWaWV3ID0gcmVu
ZGVyZXIoKS52aWV3KCkuZnJhbWVWaWV3KCk7CiAgICAgYXV0byogcGFyZW50TGF5ZXIgPSBlbmNs
b3NpbmdDb250YWluaW5nQmxvY2tMYXllcigqdGhpcywgQ3Jvc3NGcmFtZUJvdW5kYXJpZXM6Ok5v
KTsKKyAgICBib29sIGF1dG9zY3JvbGxOb3RJblByb2dyZXNzID0gIXJlbmRlcmVyKCkuZnJhbWUo
KS5ldmVudEhhbmRsZXIoKS5hdXRvc2Nyb2xsSW5Qcm9ncmVzcygpOwogCiAgICAgaWYgKGFsbG93
c0N1cnJlbnRTY3JvbGwoKSkgewogICAgICAgICAvLyBEb24ndCBzY3JvbGwgdG8gcmV2ZWFsIGFu
IG92ZXJmbG93IGxheWVyIHRoYXQgaXMgcmVzdHJpY3RlZCBieSB0aGUgLXdlYmtpdC1saW5lLWNs
YW1wIHByb3BlcnR5LgpAQCAtMjg2MSw4ICsyODYyLDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNj
cm9sbFJlY3RUb1Zpc2libGUoY29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGlu
c2lkCiAgICAgICAgIFNjcm9sbE9mZnNldCBjbGFtcGVkU2Nyb2xsT2Zmc2V0ID0gY2xhbXBTY3Jv
bGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KCkgKyB0b0ludFNpemUocm91bmRlZEludFJlY3QocmV2ZWFs
UmVjdCkubG9jYXRpb24oKSkpOwogICAgICAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCAhPSBz
Y3JvbGxPZmZzZXQoKSB8fCBjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSAhPSBTY3JvbGxC
ZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pIHsKICAgICAgICAgICAgIFNjcm9sbE9mZnNl
dCBvbGRTY3JvbGxPZmZzZXQgPSBzY3JvbGxPZmZzZXQoKTsKLSAgICAgICAgICAgIGJvb2wgYW5p
bWF0ZWQgPSBhdXRvc2Nyb2xsU3RhdHVzID09IEF1dG9zY3JvbGxTdGF0dXM6Ok5vdEluUHJvZ3Jl
c3MgJiYgdXNlU21vb3RoU2Nyb2xsaW5nKG9wdGlvbnMuYmVoYXZpb3IsIGJveC0+ZWxlbWVudCgp
KTsKLSAgICAgICAgICAgIHNjcm9sbFRvUG9zaXRpb24oc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0
KGNsYW1wZWRTY3JvbGxPZmZzZXQpLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENs
YW1waW5nOjpDbGFtcGVkLCBhbmltYXRlZCk7CisgICAgICAgICAgICBBbmltYXRlZFNjcm9sbCBh
bmltYXRlZCA9IEFuaW1hdGVkU2Nyb2xsOjpObzsKKyAgICAgICAgICAgIGlmIChhdXRvc2Nyb2xs
Tm90SW5Qcm9ncmVzcyAmJiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0aW9ucy5iZWhhdmlvciwgYm94
LT5lbGVtZW50KCkpKQorICAgICAgICAgICAgICAgIGFuaW1hdGVkID0gQW5pbWF0ZWRTY3JvbGw6
OlllczsKKyAgICAgICAgICAgIHNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uRnJvbU9m
ZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBTY3Jv
bGxDbGFtcGluZzo6Q2xhbXBlZCwgYW5pbWF0ZWQpOwogICAgICAgICAgICAgSW50U2l6ZSBzY3Jv
bGxPZmZzZXREaWZmZXJlbmNlID0gY2xhbXBlZFNjcm9sbE9mZnNldCAtIG9sZFNjcm9sbE9mZnNl
dDsKICAgICAgICAgICAgIGxvY2FsRXhwb3NlUmVjdC5tb3ZlKC1zY3JvbGxPZmZzZXREaWZmZXJl
bmNlKTsKICAgICAgICAgICAgIG5ld1JlY3QgPSBMYXlvdXRSZWN0KGJveC0+bG9jYWxUb0Fic29s
dXRlUXVhZChGbG9hdFF1YWQoRmxvYXRSZWN0KGxvY2FsRXhwb3NlUmVjdCkpLCBVc2VUcmFuc2Zv
cm1zKS5ib3VuZGluZ0JveCgpKTsKQEAgLTI4ODgsNyArMjg5MSwxMSBAQCB2b2lkIFJlbmRlckxh
eWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwg
Ym9vbCBpbnNpZAogICAgICAgICAgICAgICAgIHNjcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRp
b24uY29uc3RyYWluZWRCZXR3ZWVuKEludFBvaW50KCksIEludFBvaW50KGZyYW1lVmlldy5jb250
ZW50c1NpemUoKSkpOwogICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGNv
bnRlbnREb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CiAgICAgICAgICAgICAgICAgLy8g
U2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwNTkKLSAgICAg
ICAgICAgICAgICBib29sIGFuaW1hdGVkID0gYXV0b3Njcm9sbFN0YXR1cyA9PSBBdXRvc2Nyb2xs
U3RhdHVzOjpOb3RJblByb2dyZXNzICYmIG93bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50KCkg
JiYgdXNlU21vb3RoU2Nyb2xsaW5nKG9wdGlvbnMuYmVoYXZpb3IsIG93bmVyRWxlbWVudC0+Y29u
dGVudERvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgICAgICBBbmlt
YXRlZFNjcm9sbCBhbmltYXRlZCA9IEFuaW1hdGVkU2Nyb2xsOjpObzsKKyAgICAgICAgICAgICAg
ICBpZiAoYXV0b3Njcm9sbE5vdEluUHJvZ3Jlc3MKKyAgICAgICAgICAgICAgICAgICAgJiYgb3du
ZXJFbGVtZW50LT5jb250ZW50RG9jdW1lbnQoKQorICAgICAgICAgICAgICAgICAgICAmJiB1c2VT
bW9vdGhTY3JvbGxpbmcob3B0aW9ucy5iZWhhdmlvciwgb3duZXJFbGVtZW50LT5jb250ZW50RG9j
dW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkpKQorICAgICAgICAgICAgICAgICAgICBhbmltYXRl
ZCA9IEFuaW1hdGVkU2Nyb2xsOjpZZXM7CiAgICAgICAgICAgICAgICAgZnJhbWVWaWV3LnNldFNj
cm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgYW5p
bWF0ZWQpOwogCiAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuc2hvdWxkQWxsb3dDcm9zc09y
aWdpblNjcm9sbGluZyA9PSBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpZZXMgfHwg
ZnJhbWVWaWV3LnNhZmVUb1Byb3BhZ2F0ZVNjcm9sbFRvUGFyZW50KCkpIHsKQEAgLTI5MzEsNyAr
MjkzOCw5IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3QgTGF5
b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkCiAgICAgICAgICAgICAgICAgU2Nyb2xs
T2Zmc2V0IGNsYW1wZWRTY3JvbGxQb3NpdGlvbiA9IHJvdW5kZWRJbnRQb2ludChyZXZlYWxSZWN0
LmxvY2F0aW9uKCkpLmNvbnN0cmFpbmVkQmV0d2VlbihtaW5TY3JvbGxQb3NpdGlvbiwgbWF4U2Ny
b2xsUG9zaXRpb24pOwogICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRv
Y3VtZW50KCktPnNjcm9sbGluZ0VsZW1lbnQoKT8KICAgICAgICAgICAgICAgICAvLyBTZWUgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTA1OQotICAgICAgICAgICAg
ICAgIGJvb2wgYW5pbWF0ZWQgPSBhdXRvc2Nyb2xsU3RhdHVzID09IEF1dG9zY3JvbGxTdGF0dXM6
Ok5vdEluUHJvZ3Jlc3MgJiYgdXNlU21vb3RoU2Nyb2xsaW5nKG9wdGlvbnMuYmVoYXZpb3IsIHJl
bmRlcmVyKCkuZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSk7CisgICAgICAgICAgICAgICAg
QW5pbWF0ZWRTY3JvbGwgYW5pbWF0ZWQgPSBBbmltYXRlZFNjcm9sbDo6Tm87CisgICAgICAgICAg
ICAgICAgaWYgKGF1dG9zY3JvbGxOb3RJblByb2dyZXNzICYmIHVzZVNtb290aFNjcm9sbGluZyhv
cHRpb25zLmJlaGF2aW9yLCByZW5kZXJlcigpLmRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkp
KQorICAgICAgICAgICAgICAgICAgICBhbmltYXRlZCA9IEFuaW1hdGVkU2Nyb2xsOjpZZXM7CiAg
ICAgICAgICAgICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKGNsYW1wZWRTY3JvbGxQ
b3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQsIGFuaW1hdGVkKTsKICAgICAgICAgICAg
IH0KIApAQCAtMzA3MSw3ICszMDgwLDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6Z2V0UmVj
dFRvRXhwb3NlKGNvbnN0IExheW91dFJlY3QmIHZpc2libGVSZWN0LCBjb25zdCBMYXkKIHZvaWQg
UmVuZGVyTGF5ZXI6OmF1dG9zY3JvbGwoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uSW5XaW5kb3cp
CiB7CiAgICAgSW50UG9pbnQgY3VycmVudERvY3VtZW50UG9zaXRpb24gPSByZW5kZXJlcigpLnZp
ZXcoKS5mcmFtZVZpZXcoKS53aW5kb3dUb0NvbnRlbnRzKHBvc2l0aW9uSW5XaW5kb3cpOwotICAg
IHNjcm9sbFJlY3RUb1Zpc2libGUoTGF5b3V0UmVjdChjdXJyZW50RG9jdW1lbnRQb3NpdGlvbiwg
TGF5b3V0U2l6ZSgxLCAxKSksIGZhbHNlLCB7IFNlbGVjdGlvblJldmVhbE1vZGU6OlJldmVhbCwg
U2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTY3JvbGxBbGlnbm1lbnQ6OmFs
aWduVG9FZGdlSWZOZWVkZWQsIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6OlllcyB9
LCBBdXRvc2Nyb2xsU3RhdHVzOjpJblByb2dyZXNzKTsKKyAgICBzY3JvbGxSZWN0VG9WaXNpYmxl
KExheW91dFJlY3QoY3VycmVudERvY3VtZW50UG9zaXRpb24sIExheW91dFNpemUoMSwgMSkpLCBm
YWxzZSwgeyBTZWxlY3Rpb25SZXZlYWxNb2RlOjpSZXZlYWwsIFNjcm9sbEFsaWdubWVudDo6YWxp
Z25Ub0VkZ2VJZk5lZWRlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBT
aG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpZZXMgfSk7CiB9CiAKIGJvb2wgUmVuZGVy
TGF5ZXI6OmNhblJlc2l6ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5oCmluZGV4IGQxMTM5M2UwN2RlYmFhY2I4NWJhMzEyNDkyZmNiMDRkY2RlNTdmYzEuLmQ3MDhk
MjZlZDE4NjA5YWZlNzkzZDJjOTNkNjYyOGQyZDkxYmQ4YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5oCkBAIC00NTAsOSArNDUwLDkgQEAgcHVibGljOgogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2Nyb2xsVG9PZmZzZXQoY29uc3QgU2Nyb2xsT2Zmc2V0JiwgU2Nyb2xs
VHlwZSA9IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxD
bGFtcGluZzo6Q2xhbXBlZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY3JvbGxUb09mZnNl
dFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5
cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBl
ZCk7CiAKLSAgICB2b2lkIHNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxUeXBlLCBTY3Jv
bGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkLCBib29sIGFuaW1hdGVkID0gZmFs
c2UpOwotICAgIHZvaWQgc2Nyb2xsVG9ZUG9zaXRpb24oaW50IHksIFNjcm9sbFR5cGUsIFNjcm9s
bENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQsIGJvb2wgYW5pbWF0ZWQgPSBmYWxz
ZSk7Ci0gICAgdm9pZCBzY3JvbGxUb1Bvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Ny
b2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgYm9vbCBh
bmltYXRlZCA9IGZhbHNlKTsKKyAgICB2b2lkIHNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3Jv
bGxUeXBlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkLCBBbmltYXRl
ZFNjcm9sbCA9IEFuaW1hdGVkU2Nyb2xsOjpObyk7CisgICAgdm9pZCBzY3JvbGxUb1lQb3NpdGlv
bihpbnQgeSwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xh
bXBlZCwgQW5pbWF0ZWRTY3JvbGwgPSBBbmltYXRlZFNjcm9sbDo6Tm8pOworICAgIHZvaWQgc2V0
U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBTY3JvbGxUeXBlLCBTY3JvbGxD
bGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkLCBBbmltYXRlZFNjcm9sbCA9IEFuaW1h
dGVkU2Nyb2xsOjpObyk7CiAKICAgICAvLyBUaGVzZSBhcmUgb25seSB1c2VkIGJ5IG1hcnF1ZWUu
CiAgICAgdm9pZCBzY3JvbGxUb1hPZmZzZXQoaW50IHgpIHsgc2Nyb2xsVG9PZmZzZXQoU2Nyb2xs
T2Zmc2V0KHgsIHNjcm9sbE9mZnNldCgpLnkoKSksIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywg
U2Nyb2xsQ2xhbXBpbmc6OlVuY2xhbXBlZCk7IH0KQEAgLTQ2Niw5ICs0NjYsOCBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIGF2YWlsYWJsZUNvbnRlbnRTaXplQ2hhbmdlZChBdmFpbGFibGVTaXplQ2hh
bmdlUmVhc29uKSBmaW5hbDsKIAotICAgIGVudW0gQXV0b3Njcm9sbFN0YXR1cyB7IE5vdEluUHJv
Z3Jlc3MsIEluUHJvZ3Jlc3MgfTsKICAgICAvLyAiYWJzb2x1dGVSZWN0IiBpcyBpbiBzY2FsZWQg
ZG9jdW1lbnQgY29vcmRpbmF0ZXMuCi0gICAgdm9pZCBzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0
IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZGVGaXhlZCwgY29uc3QgU2Nyb2xs
UmVjdFRvVmlzaWJsZU9wdGlvbnMmLCBBdXRvc2Nyb2xsU3RhdHVzID0gQXV0b3Njcm9sbFN0YXR1
czo6Tm90SW5Qcm9ncmVzcyk7CisgICAgdm9pZCBzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExh
eW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZGVGaXhlZCwgY29uc3QgU2Nyb2xsUmVj
dFRvVmlzaWJsZU9wdGlvbnMmKTsKIAogICAgIGJvb2wgc2Nyb2xsc092ZXJmbG93KCkgY29uc3Q7
CiAgICAgYm9vbCBoYXNTY3JvbGxhYmxlSG9yaXpvbnRhbE92ZXJmbG93KCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggNzc4ZGYzODIzYzBl
ZjAyMGY4ZDMyMmYyNWQzY2FhNmVkOThkYzI4NS4uNGFkYWUyMmYzNDNjYjdjMTZlNzE5MmMyNjQw
OWIxMjE5NDgyOTU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94
LmNwcApAQCAtNzQzLDcgKzc0Myw3IEBAIGludCBSZW5kZXJMaXN0Qm94OjpzY3JvbGxMZWZ0KCkg
Y29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxM
ZWZ0KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcsIGJvb2wpCit2b2lkIFJlbmRlckxp
c3RCb3g6OnNldFNjcm9sbExlZnQoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZywgQW5p
bWF0ZWRTY3JvbGwpCiB7CiB9CiAKQEAgLTc2MCw3ICs3NjAsNyBAQCBzdGF0aWMgdm9pZCBzZXR1
cFdoZWVsRXZlbnRUZXN0TW9uaXRvcihSZW5kZXJMaXN0Qm94JiByZW5kZXJlcikKICAgICByZW5k
ZXJlci5zY3JvbGxBbmltYXRvcigpLnNldFdoZWVsRXZlbnRUZXN0TW9uaXRvcihyZW5kZXJlci5w
YWdlKCkud2hlZWxFdmVudFRlc3RNb25pdG9yKCkpOwogfQogCi12b2lkIFJlbmRlckxpc3RCb3g6
OnNldFNjcm9sbFRvcChpbnQgbmV3VG9wLCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZywgYm9v
bCkKK3ZvaWQgUmVuZGVyTGlzdEJveDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5
cGUsIFNjcm9sbENsYW1waW5nLCBBbmltYXRlZFNjcm9sbCkKIHsKICAgICAvLyBEZXRlcm1pbmUg
YW4gaW5kZXggYW5kIHNjcm9sbCB0byBpdC4gICAgCiAgICAgaW50IGluZGV4ID0gbmV3VG9wIC8g
aXRlbUhlaWdodCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKaW5k
ZXggZjQ4NTgwYTRjNzVjNWJjODA3ZTdlOTc0N2YyZGIxZGU4N2VmY2JjNy4uYjRlMjZhOTQxOGE3
MThmMmNhOGRkMDg5ZGUyYjlkYjhlMThhNTYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5oCkBAIC0xMDYsOCArMTA2LDggQEAgcHJpdmF0ZToKICAgICBpbnQgc2Ny
b2xsVG9wKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgaW50IHNjcm9sbFdpZHRoKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgaW50IHNjcm9sbEhlaWdodCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQg
c2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nLCBib29sKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHNldFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1w
aW5nLCBib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNjcm9sbExlZnQoaW50LCBTY3JvbGxU
eXBlLCBTY3JvbGxDbGFtcGluZywgQW5pbWF0ZWRTY3JvbGwpIG92ZXJyaWRlOworICAgIHZvaWQg
c2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcsIEFuaW1hdGVkU2Ny
b2xsKSBvdmVycmlkZTsKIAogICAgIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVl
c3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29u
dGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rp
b24pIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCmluZGV4IDc0YTgwYjA2ODdkOWRiODgyNjBi
ZGEwNmZmYzY1Yjc4MTdmM2RjZmYuLjE2NjAyMTczMDk1NDNiYWJiNTZhZTY4ZWUyODFhNzMzZmU5
ZDc1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCkBAIC0zODAsMTMgKzM4MCwxMyBAQCBpbnQgUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzY3JvbGxUb3AoKSBjb25zdAogICAgIHJldHVybiBSZW5k
ZXJCbG9ja0Zsb3c6OnNjcm9sbFRvcCgpOwogfQogCi12b2lkIFJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZTo6c2V0U2Nyb2xsTGVmdChpbnQgbmV3TGVmdCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xh
bXBpbmcsIGJvb2wpCit2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xs
TGVmdChpbnQgbmV3TGVmdCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcsIEFuaW1hdGVkU2Ny
b2xsKQogewogICAgIGlmIChpbm5lclRleHRFbGVtZW50KCkpCiAgICAgICAgIGlubmVyVGV4dEVs
ZW1lbnQoKS0+c2V0U2Nyb2xsTGVmdChuZXdMZWZ0KTsKIH0KIAotdm9pZCBSZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmU6OnNldFNjcm9sbFRvcChpbnQgbmV3VG9wLCBTY3JvbGxUeXBlLCBTY3Jv
bGxDbGFtcGluZywgYm9vbCkKK3ZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRT
Y3JvbGxUb3AoaW50IG5ld1RvcCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcsIEFuaW1hdGVk
U2Nyb2xsKQogewogICAgIGlmIChpbm5lclRleHRFbGVtZW50KCkpCiAgICAgICAgIGlubmVyVGV4
dEVsZW1lbnQoKS0+c2V0U2Nyb2xsVG9wKG5ld1RvcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKaW5kZXggZmQ2MzMw
MTllZDA0MDRiY2I0MTFlZWU2NzEyM2Y4ZGU2OWMwMTg1NS4uMjVhMmM5NmQ1MGFlNzI3YjYwMTUz
OTY0ODk5ZTM3ODBjMzFjNzk5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApAQCAtNTcsOCArNTcsOCBAQCBwcml2
YXRlOgogICAgIGludCBzY3JvbGxUb3AoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQgc2Nyb2xs
V2lkdGgoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQgc2Nyb2xsSGVpZ2h0KCkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xh
bXBpbmcsIGJvb2wpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xs
VHlwZSwgU2Nyb2xsQ2xhbXBpbmcsIGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2Nyb2xs
TGVmdChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nLCBBbmltYXRlZFNjcm9sbCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBzZXRTY3JvbGxUb3AoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFt
cGluZywgQW5pbWF0ZWRTY3JvbGwpIG92ZXJyaWRlOwogICAgIGJvb2wgc2Nyb2xsKFNjcm9sbERp
cmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIgPSAxLCBFbGVtZW50
Kiogc3RvcEVsZW1lbnQgPSBudWxscHRyLCBSZW5kZXJCb3gqIHN0YXJ0Qm94ID0gbnVsbHB0ciwg
Y29uc3QgSW50UG9pbnQmIHdoZWVsRXZlbnRBYnNvbHV0ZVBvaW50ID0gSW50UG9pbnQoKSkgZmlu
YWw7CiAgICAgYm9vbCBsb2dpY2FsU2Nyb2xsKFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24sIFNjcm9s
bEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMSwgRWxlbWVudCoqIHN0b3BFbGVtZW50
ID0gMCkgZmluYWw7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396045</attachid>
            <date>2020-04-09 21:47:22 -0700</date>
            <delta_ts>2020-04-09 22:22:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210171-20200410124721.patch</filename>
            <type>text/plain</type>
            <size>30720</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5ODQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDcxZWM1YjA3MjY5Y2Qx
Nzc3Nzk1YTNiZDJkZDI3YTlhYWIzOGFjNy4uOTA4NTQ5MDBlZTQ1OGVhODI1M2U2MzBmOGU4N2Uz
MGE3Njc0YjJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIwLTA0LTA3ICBDYXRo
aWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBGaXggdXAgY29kZSBz
dHlsZSBmb3Igc2Nyb2xsIGFuaW1hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMTcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJh
c2VyLgorCisgICAgICAgIDEuIFVzZSBBbmltYXRlZFNjcm9sbCBpbnN0ZWFkIG9mIGJvb2wgdG8g
aW5kaWNhdGUgYW5pbWF0ZWQgb3Igbm90LgorICAgICAgICAyLiBSZW1vdmUgcGFyYW1ldGVyIFNj
cm9sbFJlY3RUb1Zpc2libGVPcHRpb25zLCB0aGUgYXV0b3Njcm9sbCBzdGF0dXMgaXMgYXZhaWxh
YmxlIGZyb20gRXZlbnRIYW5kbGVyLgorICAgICAgICAzLiBJbiBvcmRlciB0byBrZWVwIGNvbnNp
c3RlbnQsIHVzZSBSZW5kZXJMYXllcjo6c2V0U2Nyb2xsUG9zaXRpb24gaW5zdGVhZCBvZiBSZW5k
ZXJMYXllcjo6c2Nyb2xsVG9Qb3NpdGlvbi4KKyAgICAgICAgNC4gQWRkIEFuaW1hdGVkU2Nyb2xs
IHBhcmFtZXRlciB0byBTY3JvbGxWaWV3OjpzZXRDb250ZW50c1Njcm9sbFBvc2l0aW9uLCB0aGVu
IHRoZSBzY3JvbGwgYW5pbWF0aW9uCisgICAgICAgIGNhbiBiZSBkZWFsdCBpbiBGcmFtZVZpZXc6
OnNldFNjcm9sbFBvc2l0aW9uLgorICAgICAgICA1LiBJbiBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQ
b3NpdGlvbiwgdGhlIHNjcm9sbCBhbmltYXRpb24gc2hvdWxkIGJlIGNhbmNsZWQgYmVmb3JlIHJl
dHVybi4KKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDogVXNlIEFuaW1hdGVkU2Nyb2xsIGlu
c3RlYWQgb2YgYm9vbC4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9sbFRvKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFNjcm9sbExlZnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6c2V0U2Nyb2xsVG9wKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNjcm9sbFRvIGNvbnN0KTogTm8gbmVlZCB0
byBjYWxsIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbiBoZXJlLgorICAgICAgICAqIHBhZ2Uv
RnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0U2Nyb2xsUG9z
aXRpb24pOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICogcGxhdGZvcm0v
U2Nyb2xsVHlwZXMuaDogQWRkIEFuaW1hdGVkU2Nyb2xsLgorICAgICAgICAqIHBsYXRmb3JtL1Nj
cm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0Q29udGVudHNT
Y3JvbGxQb3NpdGlvbik6IEFkZCBwYXJhbWV0ZXIgQW5pbWF0ZWRTY3JvbGwuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbik6IENhbmNlbCB0aGUgc2Nyb2xs
IGFuaW1hdGlvbiBiZWZvcmUgcmV0dXJuLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJveDo6c2V0U2Nyb2xsTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6
OnNldFNjcm9sbFRvcCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNldFNjcm9sbFBv
c2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpz
Y3JvbGxUb1hQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xs
VG9ZUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNldFNjcm9sbFBv
c2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNp
YmxlKTogUmVtb3ZlIEF1dG9zY3JvbGxTdGF0dXMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllcjo6YXV0b3Njcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xs
VG9Qb3NpdGlvbik6IERlbGV0ZWQuIFVzZSBzZXRTY3JvbGxQb3NpdGlvbiBpbnN0ZWFkLgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMaXN0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnNldFNjcm9s
bExlZnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6c2V0U2Nyb2xsVG9wKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxMZWZ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xsVG9wKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisKIDIwMjAtMDQtMDgg
IERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gU2ltcGxp
ZnkgTlNBcnJheSwgTlNEaWN0aW9uYXJ5LCBhbmQgTlNOdW1iZXIgaWRpb21zIHRocm91Z2hvdXQg
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMjc4ZDk4N2QwOGE3ZWRiZDVkYmQzODk3
YTM0MmRmMjE5ZTM5YjVhOC4uYmMyMDQzNTQ4MTUyNTI4ODg0OWVjMTRjN2Q4NjFlNjBlMGZmOWU2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtOTUwLDcgKzk1MCw3IEBAIHZvaWQgRWxlbWVu
dDo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25zLCBTY3JvbGxDbGFtcGlu
ZyBjbGFtcGluZykKICAgICAgICAgY2xhbXBUb0ludGVnZXIoc2Nyb2xsVG9PcHRpb25zLmxlZnQu
dmFsdWUoKSAqIHJlbmRlcmVyLT5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSksCiAgICAgICAgIGNs
YW1wVG9JbnRlZ2VyKHNjcm9sbFRvT3B0aW9ucy50b3AudmFsdWUoKSAqIHJlbmRlcmVyLT5zdHls
ZSgpLmVmZmVjdGl2ZVpvb20oKSkKICAgICApOwotICAgIGJvb2wgYW5pbWF0ZWQgPSB1c2VTbW9v
dGhTY3JvbGxpbmcoc2Nyb2xsVG9PcHRpb25zLmJlaGF2aW9yLnZhbHVlT3IoU2Nyb2xsQmVoYXZp
b3I6OkF1dG8pLCB0aGlzKTsKKyAgICBBbmltYXRlZFNjcm9sbCBhbmltYXRlZCA9IHVzZVNtb290
aFNjcm9sbGluZyhzY3JvbGxUb09wdGlvbnMuYmVoYXZpb3IudmFsdWVPcihTY3JvbGxCZWhhdmlv
cjo6QXV0byksIHRoaXMpID8gQW5pbWF0ZWRTY3JvbGw6OlllcyA6IEFuaW1hdGVkU2Nyb2xsOjpO
bzsKICAgICByZW5kZXJlci0+c2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIFNjcm9s
bFR5cGU6OlByb2dyYW1tYXRpYywgY2xhbXBpbmcsIGFuaW1hdGVkKTsKIH0KIApAQCAtMTI5Myw3
ICsxMjkzLDcgQEAgdm9pZCBFbGVtZW50OjpzZXRTY3JvbGxMZWZ0KGludCBuZXdMZWZ0KQogICAg
ICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpIHsK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGlu
Z0VsZW1lbnQoKT8KICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA1MDU5Ci0gICAgICAgICAgICBib29sIGFuaW1hdGVkID0gdXNlU21v
b3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpBdXRvLCBkb2N1bWVudCgpLmRvY3VtZW50RWxl
bWVudCgpKTsKKyAgICAgICAgICAgIEFuaW1hdGVkU2Nyb2xsIGFuaW1hdGVkID0gdXNlU21vb3Ro
U2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpBdXRvLCBkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVu
dCgpKSA/IEFuaW1hdGVkU2Nyb2xsOjpZZXMgOiBBbmltYXRlZFNjcm9sbDo6Tm87CiAgICAgICAg
ICAgICBJbnRQb2ludCBwb3NpdGlvbihzdGF0aWNfY2FzdDxpbnQ+KG5ld0xlZnQgKiBmcmFtZS0+
cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpLCBmcmFtZS0+dmll
dygpLT5zY3JvbGxZKCkpOwogICAgICAgICAgICAgZnJhbWUtPnZpZXcoKS0+c2V0U2Nyb2xsUG9z
aXRpb24ocG9zaXRpb24sIFNjcm9sbENsYW1waW5nOjpDbGFtcGVkLCBhbmltYXRlZCk7CiAgICAg
ICAgIH0KQEAgLTEzMDIsNyArMTMwMiw3IEBAIHZvaWQgRWxlbWVudDo6c2V0U2Nyb2xsTGVmdChp
bnQgbmV3TGVmdCkKIAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IHJlbmRlckJveCgpKSB7CiAg
ICAgICAgIGludCBjbGFtcGVkTGVmdCA9IGNsYW1wVG9JbnRlZ2VyKG5ld0xlZnQgKiByZW5kZXJl
ci0+c3R5bGUoKS5lZmZlY3RpdmVab29tKCkpOwotICAgICAgICBib29sIGFuaW1hdGVkID0gdXNl
U21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpBdXRvLCB0aGlzKTsKKyAgICAgICAgQW5p
bWF0ZWRTY3JvbGwgYW5pbWF0ZWQgPSB1c2VTbW9vdGhTY3JvbGxpbmcoU2Nyb2xsQmVoYXZpb3I6
OkF1dG8sIHRoaXMpID8gQW5pbWF0ZWRTY3JvbGw6OlllcyA6IEFuaW1hdGVkU2Nyb2xsOjpObzsK
ICAgICAgICAgcmVuZGVyZXItPnNldFNjcm9sbExlZnQoY2xhbXBlZExlZnQsIFNjcm9sbFR5cGU6
OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQsIGFuaW1hdGVkKTsKICAgICAg
ICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gcmVuZGVyZXItPmxheWVyKCkpCiAgICAgICAg
ICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUodHJ1
ZSk7CkBAIC0xMzE3LDcgKzEzMTcsNyBAQCB2b2lkIEVsZW1lbnQ6OnNldFNjcm9sbFRvcChpbnQg
bmV3VG9wKQogICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5vbk51
bGxWaWV3KCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50
KCktPnNjcm9sbGluZ0VsZW1lbnQoKT8KICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5Ci0gICAgICAgICAgICBib29sIGFuaW1h
dGVkID0gdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpBdXRvLCBkb2N1bWVudCgp
LmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgIEFuaW1hdGVkU2Nyb2xsIGFuaW1hdGVk
ID0gdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yOjpBdXRvLCBkb2N1bWVudCgpLmRv
Y3VtZW50RWxlbWVudCgpKSA/IEFuaW1hdGVkU2Nyb2xsOjpZZXMgOiBBbmltYXRlZFNjcm9sbDo6
Tm87CiAgICAgICAgICAgICBJbnRQb2ludCBwb3NpdGlvbihmcmFtZS0+dmlldygpLT5zY3JvbGxY
KCksIHN0YXRpY19jYXN0PGludD4obmV3VG9wICogZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBm
cmFtZS0+ZnJhbWVTY2FsZUZhY3RvcigpKSk7CiAgICAgICAgICAgICBmcmFtZS0+dmlldygpLT5z
ZXRTY3JvbGxQb3NpdGlvbihwb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQsIGFuaW1h
dGVkKTsKICAgICAgICAgfQpAQCAtMTMyNiw3ICsxMzI2LDcgQEAgdm9pZCBFbGVtZW50OjpzZXRT
Y3JvbGxUb3AoaW50IG5ld1RvcCkKIAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IHJlbmRlckJv
eCgpKSB7CiAgICAgICAgIGludCBjbGFtcGVkVG9wID0gY2xhbXBUb0ludGVnZXIobmV3VG9wICog
cmVuZGVyZXItPnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKTsKLSAgICAgICAgYm9vbCBhbmltYXRl
ZCA9IHVzZVNtb290aFNjcm9sbGluZyhTY3JvbGxCZWhhdmlvcjo6QXV0bywgdGhpcyk7CisgICAg
ICAgIEFuaW1hdGVkU2Nyb2xsIGFuaW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJl
aGF2aW9yOjpBdXRvLCB0aGlzKSA/IEFuaW1hdGVkU2Nyb2xsOjpZZXMgOiBBbmltYXRlZFNjcm9s
bDo6Tm87CiAgICAgICAgIHJlbmRlcmVyLT5zZXRTY3JvbGxUb3AoY2xhbXBlZFRvcCwgU2Nyb2xs
VHlwZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgYW5pbWF0ZWQpOwog
ICAgICAgICBpZiAoYXV0byogc2Nyb2xsYWJsZUFyZWEgPSByZW5kZXJlci0+bGF5ZXIoKSkKICAg
ICAgICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRTY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0
ZSh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBhN2IyMmE5NjI5MGI3Yzcy
YmMzMTA0Yzg5MWZhZTFhNTdiODI2YTBiLi4wOWFhYjZiMjNkN2Q3ZTc1MGRkYWU4ZjQxMWQwZmVm
Zjg1Y2E3NmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xNjg4LDEyICsxNjg4
LDkgQEAgdm9pZCBET01XaW5kb3c6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0
aW9ucywgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcKIAogICAgIC8vIEZJWE1FOiBTaG91bGQgd2Ug
dXNlIGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1lbnQoKT8KICAgICAvLyBTZWUgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTA1OQotICAgIGlmICh1c2VTbW9vdGhT
Y3JvbGxpbmcoc2Nyb2xsVG9PcHRpb25zLmJlaGF2aW9yLnZhbHVlT3IoU2Nyb2xsQmVoYXZpb3I6
OkF1dG8pLCBkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSkpIHsKLSAgICAgICAgdmlldy0+
c2Nyb2xsVG9PZmZzZXRXaXRoQW5pbWF0aW9uKGxheW91dFBvcywgU2Nyb2xsVHlwZTo6UHJvZ3Jh
bW1hdGljLCBjbGFtcGluZyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgQW5pbWF0ZWRT
Y3JvbGwgYW5pbWF0ZWQgPSB1c2VTbW9vdGhTY3JvbGxpbmcoc2Nyb2xsVG9PcHRpb25zLmJlaGF2
aW9yLnZhbHVlT3IoU2Nyb2xsQmVoYXZpb3I6OkF1dG8pLCBkb2N1bWVudCgpLT5kb2N1bWVudEVs
ZW1lbnQoKSkgPyBBbmltYXRlZFNjcm9sbDo6WWVzIDogQW5pbWF0ZWRTY3JvbGw6Ok5vOwogCi0g
ICAgdmlldy0+c2V0Q29udGVudHNTY3JvbGxQb3NpdGlvbihsYXlvdXRQb3MsIGNsYW1waW5nKTsK
KyAgICB2aWV3LT5zZXRDb250ZW50c1Njcm9sbFBvc2l0aW9uKGxheW91dFBvcywgY2xhbXBpbmcs
IGFuaW1hdGVkKTsKIH0KIAogYm9vbCBET01XaW5kb3c6OmFsbG93ZWRUb0NoYW5nZVdpbmRvd0dl
b21ldHJ5KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA2MjAxMjRkNmJh
MWM0OWFjOWJiMWM1ZGIyN2M2ZWM4MWE1MWY0ZGI1Li5kNTQ2NGEzN2VjNTJkNDY2NzEzZGRkMDgz
YTJjYWEwNDAyYTBkMmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yMjgyLDcg
KzIyODIsNyBAQCB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsRWxlbWVudFRvUmVjdChjb25zdCBFbGVt
ZW50JiBlbGVtZW50LCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIHNldFNjcm9sbFBvc2l0aW9u
KEludFBvaW50KGJvdW5kcy54KCkgLSBjZW50ZXJpbmdPZmZzZXRYIC0gcmVjdC54KCksIGJvdW5k
cy55KCkgLSBjZW50ZXJpbmdPZmZzZXRZIC0gcmVjdC55KCkpKTsKIH0KIAotdm9pZCBGcmFtZVZp
ZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlv
biwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcsIGJvb2wgYW5pbWF0ZWQpCit2b2lkIEZyYW1lVmll
dzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9u
LCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZywgQW5pbWF0ZWRTY3JvbGwgYW5pbWF0ZWQpCiB7CiAg
ICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJGcmFtZVZpZXc6OnNldFNj
cm9sbFBvc2l0aW9uICIgPDwgc2Nyb2xsUG9zaXRpb24gPDwgIiAsIGNsZWFyaW5nIGFuY2hvciIp
OwogCkBAIC0yMjk1LDcgKzIyOTUsNyBAQCB2b2lkIEZyYW1lVmlldzo6c2V0U2Nyb2xsUG9zaXRp
b24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9uLCBTY3JvbGxDbAogICAgIFBh
Z2UqIHBhZ2UgPSBmcmFtZSgpLnBhZ2UoKTsKICAgICBpZiAocGFnZSAmJiBwYWdlLT5pc01vbml0
b3JpbmdXaGVlbEV2ZW50cygpKQogICAgICAgICBzY3JvbGxBbmltYXRvcigpLnNldFdoZWVsRXZl
bnRUZXN0TW9uaXRvcihwYWdlLT53aGVlbEV2ZW50VGVzdE1vbml0b3IoKSk7Ci0gICAgaWYgKGFu
aW1hdGVkKQorICAgIGlmIChhbmltYXRlZCA9PSBBbmltYXRlZFNjcm9sbDo6WWVzKQogICAgICAg
ICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHNj
cm9sbFBvc2l0aW9uKSwgY3VycmVudFNjcm9sbFR5cGUoKSwgY2xhbXBpbmcpOwogICAgIGVsc2UK
ICAgICAgICAgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIGNs
YW1waW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDg5ODQ1MzVlNzVlZDY0ZWZlZjY2
MGQzMzU3ZTdjYjVlNzIzZTZmZTIuLjBhMGQwYTIwM2FkZmYyYWUyYmU1NmQyNGQwYmJmNGUxMWQ3
ZjMyNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMjMwLDcgKzIzMCw3IEBAIHB1Ymxp
YzoKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRGaXhlZFZpc2libGVDb250ZW50UmVjdChjb25zdCBJbnRSZWN0JikgZmluYWw7CiAjZW5k
aWYKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9s
bFBvc2l0aW9uJiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgYm9v
bCBhbmltYXRlZCA9IGZhbHNlKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNj
cm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3Jv
bGxDbGFtcGluZzo6Q2xhbXBlZCwgQW5pbWF0ZWRTY3JvbGwgPSBBbmltYXRlZFNjcm9sbDo6Tm8p
IGZpbmFsOwogICAgIHZvaWQgcmVzdG9yZVNjcm9sbGJhcigpOwogICAgIHZvaWQgc2NoZWR1bGVT
Y3JvbGxUb0ZvY3VzZWRFbGVtZW50KFNlbGVjdGlvblJldmVhbE1vZGUpOwogICAgIHZvaWQgc2Ny
b2xsVG9Gb2N1c2VkRWxlbWVudEltbWVkaWF0ZWx5SWZOZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxUeXBlcy5oCmluZGV4IDVjNTJkNWJiZGUyODM0NmZhN2M3M2I4OWQwNGRjNTY1
MTE2ZTM3NDMuLmI5NzVmYjA0MzBiOGRlN2U5NTkxNTg5MjY3MDNiMGY5MDI4NmFiOTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaApAQCAtNjAsNiArNjAsMTEgQEAgZW51bSBj
bGFzcyBTY3JvbGxCZWhhdmlvclN0YXR1cyA6IHVpbnQ4X3QgewogICAgIEluTm9uTmF0aXZlQW5p
bWF0aW9uLAogfTsKIAorZW51bSBjbGFzcyBBbmltYXRlZFNjcm9sbCA6IHVpbnQ4X3QgeworICAg
IE5vLAorICAgIFllcworfTsKKwogaW5saW5lIFNjcm9sbERpcmVjdGlvbiBsb2dpY2FsVG9QaHlz
aWNhbChTY3JvbGxMb2dpY2FsRGlyZWN0aW9uIGRpcmVjdGlvbiwgYm9vbCBpc1ZlcnRpY2FsLCBi
b29sIGlzRmxpcHBlZCkKIHsKICAgICBzd2l0Y2ggKGRpcmVjdGlvbikgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCAzNjFmMDUzODkzZDYyYzk4MzI5ZmEyMmU2MGMy
NjM1NDk0OGUyOTdhLi4zYWVlM2Y5NDhmM2JmYTU2ZGYxYjU1NDMxYmQwNzRjYTEyYjU5OGEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtMjA3LDEzICsyMDcsMTMg
QEAgSW50UG9pbnQgU2Nyb2xsVmlldzo6Y29udGVudHNTY3JvbGxQb3NpdGlvbigpIGNvbnN0CiAg
ICAgcmV0dXJuIHNjcm9sbFBvc2l0aW9uKCk7CiB9CiAKLXZvaWQgU2Nyb2xsVmlldzo6c2V0Q29u
dGVudHNTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIFNjcm9sbENsYW1w
aW5nIGNsYW1waW5nKQordm9pZCBTY3JvbGxWaWV3OjpzZXRDb250ZW50c1Njcm9sbFBvc2l0aW9u
KGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcsIEFuaW1h
dGVkU2Nyb2xsIGFuaW1hdGVkKQogewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgaWYg
KHBsYXRmb3JtV2lkZ2V0KCkpCiAgICAgICAgIHNldEFjdHVhbFNjcm9sbFBvc2l0aW9uKHBvc2l0
aW9uKTsKICNlbmRpZgotICAgIHNldFNjcm9sbFBvc2l0aW9uKHBvc2l0aW9uLCBjbGFtcGluZyk7
CisgICAgc2V0U2Nyb2xsUG9zaXRpb24ocG9zaXRpb24sIGNsYW1waW5nLCBhbmltYXRlZCk7CiB9
CiAKIEZsb2F0UmVjdCBTY3JvbGxWaWV3OjpleHBvc2VkQ29udGVudFJlY3QoKSBjb25zdApAQCAt
NTE0LDcgKzUxNCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6Y29tcGxldGVVcGRhdGVzQWZ0ZXJTY3Jv
bGxUbyhjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkKICAgICB1cGRhdGVDb21wb3NpdGluZ0xh
eWVyc0FmdGVyU2Nyb2xsaW5nKCk7CiB9CiAKLXZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9z
aXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9uLCBTY3JvbGxDbGFtcGlu
ZyBjbGFtcGluZywgYm9vbC8qIGFuaW1hdGVkKi8pCit2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwgU2Nyb2xsQ2xh
bXBpbmcgY2xhbXBpbmcsIEFuaW1hdGVkU2Nyb2xsLyogYW5pbWF0ZWQqLykKIHsKICAgICBMT0df
V0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbFZpZXc6OnNldFNjcm9sbFBv
c2l0aW9uICIgPDwgc2Nyb2xsUG9zaXRpb24pOwogCkBAIC01MjYsMTQgKzUyNiwxMyBAQCB2b2lk
IFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3Jv
bGxQb3NpdGlvbiwgU2Nyb2xsQwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU2Nyb2xs
UG9zaXRpb24gbmV3U2Nyb2xsUG9zaXRpb24gPSAoIWRlbGVnYXRlc1Njcm9sbGluZygpICYmIGNs
YW1waW5nID09IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKSA/IGFkanVzdFNjcm9sbFBvc2l0aW9u
V2l0aGluUmFuZ2Uoc2Nyb2xsUG9zaXRpb24pIDogc2Nyb2xsUG9zaXRpb247CisgICAgaWYgKGN1
cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5v
bk5hdGl2ZUFuaW1hdGlvbikKKyAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5jZWxBbmltYXRp
b25zKCk7CiAKKyAgICBTY3JvbGxQb3NpdGlvbiBuZXdTY3JvbGxQb3NpdGlvbiA9ICghZGVsZWdh
dGVzU2Nyb2xsaW5nKCkgJiYgY2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpID8g
YWRqdXN0U2Nyb2xsUG9zaXRpb25XaXRoaW5SYW5nZShzY3JvbGxQb3NpdGlvbikgOiBzY3JvbGxQ
b3NpdGlvbjsKICAgICBpZiAoKCFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSB8fCBjdXJyZW50U2Nyb2xs
VHlwZSgpID09IFNjcm9sbFR5cGU6OlVzZXIpICYmIGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1
cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbiAmJiBuZXdTY3JvbGxQ
b3NpdGlvbiA9PSB0aGlzLT5zY3JvbGxQb3NpdGlvbigpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0
dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uKQotICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNl
bEFuaW1hdGlvbnMoKTsKLQogICAgIGlmICghcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKG5l
d1Njcm9sbFBvc2l0aW9uLCBjdXJyZW50U2Nyb2xsVHlwZSgpLCBjbGFtcGluZykpCiAgICAgICAg
IHVwZGF0ZVNjcm9sbGJhcnMobmV3U2Nyb2xsUG9zaXRpb24pOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxWaWV3LmgKaW5kZXggOGY1ZGY4ZWI5MmUxMzdlMmIzNmI4OTA4M2U1NDFhMmE3MWVm
MzBjNC4uZTJlZTYxM2U2MTY0MDhiNDZlY2IwZjIxY2ExNjU3NmI0YjkzNTg3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaApAQCAtMjMyLDcgKzIzMiw3IEBAIHB1YmxpYzoKIAog
ICAgIC8vIFNjcm9sbCBwb3NpdGlvbiB1c2VkIGJ5IHdlYi1leHBvc2VkIGZlYXR1cmVzIChoYXMg
bGVnYWN5IGlPUyBiZWhhdmlvcikuCiAgICAgV0VCQ09SRV9FWFBPUlQgSW50UG9pbnQgY29udGVu
dHNTY3JvbGxQb3NpdGlvbigpIGNvbnN0OwotICAgIHZvaWQgc2V0Q29udGVudHNTY3JvbGxQb3Np
dGlvbihjb25zdCBJbnRQb2ludCYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNs
YW1wZWQpOworICAgIHZvaWQgc2V0Q29udGVudHNTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2lu
dCYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQsIEFuaW1hdGVkU2Ny
b2xsID0gQW5pbWF0ZWRTY3JvbGw6Ok5vKTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAg
ICAgaW50IGFjdHVhbFNjcm9sbFgoKSBjb25zdCB7IHJldHVybiB1bm9ic2N1cmVkQ29udGVudFJl
Y3QoKS54KCk7IH0KQEAgLTI2Miw3ICsyNjIsNyBAQCBwdWJsaWM6CiAgICAgU2Nyb2xsUG9zaXRp
b24gY2FjaGVkU2Nyb2xsUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NhY2hlZFNjcm9sbFBv
c2l0aW9uOyB9CiAKICAgICAvLyBGdW5jdGlvbnMgZm9yIHNjcm9sbGluZyB0aGUgdmlldy4KLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBT
Y3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkLCBib29sIGFuaW1hdGVkID0g
ZmFsc2UpOworICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQ
b3NpdGlvbiYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQsIEFuaW1h
dGVkU2Nyb2xsID0gQW5pbWF0ZWRTY3JvbGw6Ok5vKTsKIAogICAgIHZvaWQgc2Nyb2xsQnkoY29u
c3QgSW50U2l6ZSYgcykgeyByZXR1cm4gc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24o
KSArIHMpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggNGYz
NzhkNzM1ZjhmYjJhZDZjZjk4NmY2ZTJhZDk5NjJhOGFiZGQ2NC4uYzg3ZmQwYTU3ZTdjZDYzYTJl
NWZkN2NhZjkzMDQyNDM2NWU1MzNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHAKQEAgLTU4MSw3ICs1ODEsNyBAQCBzdGF0aWMgdm9pZCBzZXR1cFdoZWVsRXZlbnRNb25p
dG9yKFJlbmRlckxheWVyJiBsYXllcikKICAgICBsYXllci5zY3JvbGxBbmltYXRvcigpLnNldFdo
ZWVsRXZlbnRUZXN0TW9uaXRvcihwYWdlLndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKIH0KIAot
dm9pZCBSZW5kZXJCb3g6OnNldFNjcm9sbExlZnQoaW50IG5ld0xlZnQsIFNjcm9sbFR5cGUgc2Ny
b2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcsIGJvb2wgYW5pbWF0ZWQpCit2b2lkIFJl
bmRlckJveDo6c2V0U2Nyb2xsTGVmdChpbnQgbmV3TGVmdCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBl
LCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZywgQW5pbWF0ZWRTY3JvbGwgYW5pbWF0ZWQpCiB7CiAg
ICAgaWYgKCFoYXNPdmVyZmxvd0NsaXAoKSB8fCAhbGF5ZXIoKSkKICAgICAgICAgcmV0dXJuOwpA
QCAtNTg5LDcgKzU4OSw3IEBAIHZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxMZWZ0KGludCBuZXdM
ZWZ0LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nCiAgICAgbGF5ZXIoKS0+
c2Nyb2xsVG9YUG9zaXRpb24obmV3TGVmdCwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcsIGFuaW1hdGVk
KTsKIH0KIAotdm9pZCBSZW5kZXJCb3g6OnNldFNjcm9sbFRvcChpbnQgbmV3VG9wLCBTY3JvbGxU
eXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nLCBib29sIGFuaW1hdGVkKQor
dm9pZCBSZW5kZXJCb3g6OnNldFNjcm9sbFRvcChpbnQgbmV3VG9wLCBTY3JvbGxUeXBlIHNjcm9s
bFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nLCBBbmltYXRlZFNjcm9sbCBhbmltYXRlZCkK
IHsKICAgICBpZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8ICFsYXllcigpKQogICAgICAgICByZXR1
cm47CkBAIC01OTcsMTIgKzU5NywxMiBAQCB2b2lkIFJlbmRlckJveDo6c2V0U2Nyb2xsVG9wKGlu
dCBuZXdUb3AsIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgYwogICAgIGxh
eWVyKCktPnNjcm9sbFRvWVBvc2l0aW9uKG5ld1RvcCwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcsIGFu
aW1hdGVkKTsKIH0KIAotdm9pZCBSZW5kZXJCb3g6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNj
cm9sbFBvc2l0aW9uJiBwb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFt
cGluZyBjbGFtcGluZywgYm9vbCBhbmltYXRlZCkKK3ZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxQ
b3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xs
VHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcsIEFuaW1hdGVkU2Nyb2xsIGFuaW1hdGVkKQog
ewogICAgIGlmICghaGFzT3ZlcmZsb3dDbGlwKCkgfHwgIWxheWVyKCkpCiAgICAgICAgIHJldHVy
bjsKICAgICBzZXR1cFdoZWVsRXZlbnRNb25pdG9yKCpsYXllcigpKTsKLSAgICBsYXllcigpLT5z
Y3JvbGxUb1Bvc2l0aW9uKHBvc2l0aW9uLCBzY3JvbGxUeXBlLCBjbGFtcGluZywgYW5pbWF0ZWQp
OworICAgIGxheWVyKCktPnNldFNjcm9sbFBvc2l0aW9uKHBvc2l0aW9uLCBzY3JvbGxUeXBlLCBj
bGFtcGluZywgYW5pbWF0ZWQpOwogfQogCiB2b2lkIFJlbmRlckJveDo6YWJzb2x1dGVSZWN0cyhW
ZWN0b3I8SW50UmVjdD4mIHJlY3RzLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZz
ZXQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggMjc1MjIwYjZi
ZTBkZGQzYjE1NjgwMzJiODA3MzEyNzZiNjZiMmZlMC4uODE0MzQ0Zjc1YTlkNzFhMGRlOTFhNzdh
MDBmZWY5NmViYzY4ZDhhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAt
MjQ3LDkgKzI0Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGludCBzY3JvbGxUb3AoKSBjb25z
dDsKICAgICB2aXJ0dWFsIGludCBzY3JvbGxXaWR0aCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50
IHNjcm9sbEhlaWdodCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxMZWZ0KGlu
dCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwg
Ym9vbCBhbmltYXRlZCA9IGZhbHNlKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsVG9wKGlu
dCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwg
Ym9vbCBhbmltYXRlZCA9IGZhbHNlKTsKLSAgICB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0
IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFt
cGluZzo6Q2xhbXBlZCwgYm9vbCBhbmltYXRlZCA9IGZhbHNlKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xh
bXBpbmc6OkNsYW1wZWQsIEFuaW1hdGVkU2Nyb2xsID0gQW5pbWF0ZWRTY3JvbGw6Ok5vKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBp
bmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgQW5pbWF0ZWRTY3JvbGwgPSBBbmltYXRlZFNj
cm9sbDo6Tm8pOworICAgIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRp
b24mLCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVk
LCBBbmltYXRlZFNjcm9sbCA9IEFuaW1hdGVkU2Nyb2xsOjpObyk7CiAKICAgICBMYXlvdXRVbml0
IG1hcmdpblRvcCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbWFyZ2luQm94LnRvcCgpOyB9
CiAgICAgTGF5b3V0VW5pdCBtYXJnaW5Cb3R0b20oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X21hcmdpbkJveC5ib3R0b20oKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAKaW5kZXggZjIzMzMxZjcxODgwNDRlMDA1YTZjNzVlNGM4MTFjMWVkYmE4OGU0MC4uNzkw
Y2FlZTk5ZTU0ODNlZDFlYjljN2QzYWZhODY0N2NhNjMzMDliNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0yNTkwLDIxICsyNTkwLDIxIEBAIHZvaWQgUmVu
ZGVyTGF5ZXI6OmFwcGx5UG9zdExheW91dFNjcm9sbFBvc2l0aW9uSWZOZWVkZWQoKQogICAgIG1f
cG9zdExheW91dFNjcm9sbFBvc2l0aW9uID0gV1RGOjpudWxsb3B0OwogfQogCi12b2lkIFJlbmRl
ckxheWVyOjpzY3JvbGxUb1hQb3NpdGlvbihpbnQgeCwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBT
Y3JvbGxDbGFtcGluZyBjbGFtcGluZywgYm9vbCBhbmltYXRlZCkKK3ZvaWQgUmVuZGVyTGF5ZXI6
OnNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENs
YW1waW5nIGNsYW1waW5nLCBBbmltYXRlZFNjcm9sbCBhbmltYXRlZCkKIHsKICAgICBTY3JvbGxQ
b3NpdGlvbiBwb3NpdGlvbih4LCBtX3Njcm9sbFBvc2l0aW9uLnkoKSk7Ci0gICAgc2Nyb2xsVG9Q
b3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcsIGFuaW1hdGVkKTsKKyAgICBz
ZXRTY3JvbGxQb3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcsIGFuaW1hdGVk
KTsKIH0KIAotdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9ZUG9zaXRpb24oaW50IHksIFNjcm9s
bFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcsIGJvb2wgYW5pbWF0ZWQp
Cit2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1lQb3NpdGlvbihpbnQgeSwgU2Nyb2xsVHlwZSBz
Y3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZywgQW5pbWF0ZWRTY3JvbGwgYW5pbWF0
ZWQpCiB7CiAgICAgU2Nyb2xsUG9zaXRpb24gcG9zaXRpb24obV9zY3JvbGxQb3NpdGlvbi54KCks
IHkpOwotICAgIHNjcm9sbFRvUG9zaXRpb24ocG9zaXRpb24sIHNjcm9sbFR5cGUsIGNsYW1waW5n
LCBhbmltYXRlZCk7CisgICAgc2V0U2Nyb2xsUG9zaXRpb24ocG9zaXRpb24sIHNjcm9sbFR5cGUs
IGNsYW1waW5nLCBhbmltYXRlZCk7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvUG9z
aXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5
cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nLCBib29sIGFuaW1hdGVkKQordm9pZCBSZW5kZXJM
YXllcjo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uLCBT
Y3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nLCBBbmltYXRlZFNj
cm9sbCBhbmltYXRlZCkKIHsKLSAgICBpZiAoYW5pbWF0ZWQpCisgICAgaWYgKGFuaW1hdGVkID09
IEFuaW1hdGVkU2Nyb2xsOjpZZXMpCiAgICAgICAgIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlv
bihzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBzY3JvbGxUeXBlLCBjbGFtcGlu
Zyk7CiAgICAgZWxzZQogICAgICAgICBzY3JvbGxUb09mZnNldChzY3JvbGxPZmZzZXRGcm9tUG9z
aXRpb24ocG9zaXRpb24pLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7CkBAIC0yODA1LDEzICsyODA1
LDE0IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OmFsbG93c0N1cnJlbnRTY3JvbGwoKSBjb25zdAogICAg
IHJldHVybiBib3gtPmhhc0hvcml6b250YWxPdmVyZmxvdygpIHx8IGJveC0+aGFzVmVydGljYWxP
dmVyZmxvdygpOwogfQogCi12b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNv
bnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZGVGaXhlZCwgY29uc3QgU2Ny
b2xsUmVjdFRvVmlzaWJsZU9wdGlvbnMmIG9wdGlvbnMsIEF1dG9zY3JvbGxTdGF0dXMgYXV0b3Nj
cm9sbFN0YXR1cykKK3ZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3Qg
TGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkZUZpeGVkLCBjb25zdCBTY3JvbGxS
ZWN0VG9WaXNpYmxlT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Ny
b2xsaW5nLCBzdHJlYW0gPDwgIkxheWVyICIgPDwgdGhpcyA8PCAiIHNjcm9sbFJlY3RUb1Zpc2li
bGUgIiA8PCBhYnNvbHV0ZVJlY3QpOwogCiAgICAgTGF5b3V0UmVjdCBuZXdSZWN0ID0gYWJzb2x1
dGVSZWN0OwogICAgIEZyYW1lVmlldyYgZnJhbWVWaWV3ID0gcmVuZGVyZXIoKS52aWV3KCkuZnJh
bWVWaWV3KCk7CiAgICAgYXV0byogcGFyZW50TGF5ZXIgPSBlbmNsb3NpbmdDb250YWluaW5nQmxv
Y2tMYXllcigqdGhpcywgQ3Jvc3NGcmFtZUJvdW5kYXJpZXM6Ok5vKTsKKyAgICBib29sIGF1dG9z
Y3JvbGxOb3RJblByb2dyZXNzID0gIXJlbmRlcmVyKCkuZnJhbWUoKS5ldmVudEhhbmRsZXIoKS5h
dXRvc2Nyb2xsSW5Qcm9ncmVzcygpOwogCiAgICAgaWYgKGFsbG93c0N1cnJlbnRTY3JvbGwoKSkg
ewogICAgICAgICAvLyBEb24ndCBzY3JvbGwgdG8gcmV2ZWFsIGFuIG92ZXJmbG93IGxheWVyIHRo
YXQgaXMgcmVzdHJpY3RlZCBieSB0aGUgLXdlYmtpdC1saW5lLWNsYW1wIHByb3BlcnR5LgpAQCAt
MjgzMCw4ICsyODMxLDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUo
Y29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkCiAgICAgICAgIFNjcm9s
bE9mZnNldCBjbGFtcGVkU2Nyb2xsT2Zmc2V0ID0gY2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zm
c2V0KCkgKyB0b0ludFNpemUocm91bmRlZEludFJlY3QocmV2ZWFsUmVjdCkubG9jYXRpb24oKSkp
OwogICAgICAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCAhPSBzY3JvbGxPZmZzZXQoKSB8fCBj
dXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSAhPSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90
SW5BbmltYXRpb24pIHsKICAgICAgICAgICAgIFNjcm9sbE9mZnNldCBvbGRTY3JvbGxPZmZzZXQg
PSBzY3JvbGxPZmZzZXQoKTsKLSAgICAgICAgICAgIGJvb2wgYW5pbWF0ZWQgPSBhdXRvc2Nyb2xs
U3RhdHVzID09IEF1dG9zY3JvbGxTdGF0dXM6Ok5vdEluUHJvZ3Jlc3MgJiYgdXNlU21vb3RoU2Ny
b2xsaW5nKG9wdGlvbnMuYmVoYXZpb3IsIGJveC0+ZWxlbWVudCgpKTsKLSAgICAgICAgICAgIHNj
cm9sbFRvUG9zaXRpb24oc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZz
ZXQpLCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nOjpDbGFtcGVkLCBh
bmltYXRlZCk7CisgICAgICAgICAgICBBbmltYXRlZFNjcm9sbCBhbmltYXRlZCA9IEFuaW1hdGVk
U2Nyb2xsOjpObzsKKyAgICAgICAgICAgIGlmIChhdXRvc2Nyb2xsTm90SW5Qcm9ncmVzcyAmJiB1
c2VTbW9vdGhTY3JvbGxpbmcob3B0aW9ucy5iZWhhdmlvciwgYm94LT5lbGVtZW50KCkpKQorICAg
ICAgICAgICAgICAgIGFuaW1hdGVkID0gQW5pbWF0ZWRTY3JvbGw6OlllczsKKyAgICAgICAgICAg
IHNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xs
T2Zmc2V0KSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZzo6Q2xhbXBl
ZCwgYW5pbWF0ZWQpOwogICAgICAgICAgICAgSW50U2l6ZSBzY3JvbGxPZmZzZXREaWZmZXJlbmNl
ID0gY2xhbXBlZFNjcm9sbE9mZnNldCAtIG9sZFNjcm9sbE9mZnNldDsKICAgICAgICAgICAgIGxv
Y2FsRXhwb3NlUmVjdC5tb3ZlKC1zY3JvbGxPZmZzZXREaWZmZXJlbmNlKTsKICAgICAgICAgICAg
IG5ld1JlY3QgPSBMYXlvdXRSZWN0KGJveC0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFF1YWQo
RmxvYXRSZWN0KGxvY2FsRXhwb3NlUmVjdCkpLCBVc2VUcmFuc2Zvcm1zKS5ib3VuZGluZ0JveCgp
KTsKQEAgLTI4NTcsNyArMjg2MCwxMSBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9W
aXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAgICAg
ICAgICAgICAgIHNjcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb24uY29uc3RyYWluZWRCZXR3
ZWVuKEludFBvaW50KCksIEludFBvaW50KGZyYW1lVmlldy5jb250ZW50c1NpemUoKSkpOwogICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGNvbnRlbnREb2N1bWVudCgpLT5z
Y3JvbGxpbmdFbGVtZW50KCk/CiAgICAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwNTkKLSAgICAgICAgICAgICAgICBib29sIGFu
aW1hdGVkID0gYXV0b3Njcm9sbFN0YXR1cyA9PSBBdXRvc2Nyb2xsU3RhdHVzOjpOb3RJblByb2dy
ZXNzICYmIG93bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50KCkgJiYgdXNlU21vb3RoU2Nyb2xs
aW5nKG9wdGlvbnMuYmVoYXZpb3IsIG93bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50KCktPmRv
Y3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgICAgICBBbmltYXRlZFNjcm9sbCBhbmltYXRl
ZCA9IEFuaW1hdGVkU2Nyb2xsOjpObzsKKyAgICAgICAgICAgICAgICBpZiAoYXV0b3Njcm9sbE5v
dEluUHJvZ3Jlc3MKKyAgICAgICAgICAgICAgICAgICAgJiYgb3duZXJFbGVtZW50LT5jb250ZW50
RG9jdW1lbnQoKQorICAgICAgICAgICAgICAgICAgICAmJiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0
aW9ucy5iZWhhdmlvciwgb3duZXJFbGVtZW50LT5jb250ZW50RG9jdW1lbnQoKS0+ZG9jdW1lbnRF
bGVtZW50KCkpKQorICAgICAgICAgICAgICAgICAgICBhbmltYXRlZCA9IEFuaW1hdGVkU2Nyb2xs
OjpZZXM7CiAgICAgICAgICAgICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uLCBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgYW5pbWF0ZWQpOwogCiAgICAgICAg
ICAgICAgICAgaWYgKG9wdGlvbnMuc2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZyA9PSBT
aG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpZZXMgfHwgZnJhbWVWaWV3LnNhZmVUb1By
b3BhZ2F0ZVNjcm9sbFRvUGFyZW50KCkpIHsKQEAgLTI5MDAsNyArMjkwNyw5IEBAIHZvaWQgUmVu
ZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVS
ZWN0LCBib29sIGluc2lkCiAgICAgICAgICAgICAgICAgU2Nyb2xsT2Zmc2V0IGNsYW1wZWRTY3Jv
bGxQb3NpdGlvbiA9IHJvdW5kZWRJbnRQb2ludChyZXZlYWxSZWN0LmxvY2F0aW9uKCkpLmNvbnN0
cmFpbmVkQmV0d2VlbihtaW5TY3JvbGxQb3NpdGlvbiwgbWF4U2Nyb2xsUG9zaXRpb24pOwogICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGlu
Z0VsZW1lbnQoKT8KICAgICAgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNTA1OQotICAgICAgICAgICAgICAgIGJvb2wgYW5pbWF0ZWQg
PSBhdXRvc2Nyb2xsU3RhdHVzID09IEF1dG9zY3JvbGxTdGF0dXM6Ok5vdEluUHJvZ3Jlc3MgJiYg
dXNlU21vb3RoU2Nyb2xsaW5nKG9wdGlvbnMuYmVoYXZpb3IsIHJlbmRlcmVyKCkuZG9jdW1lbnQo
KS5kb2N1bWVudEVsZW1lbnQoKSk7CisgICAgICAgICAgICAgICAgQW5pbWF0ZWRTY3JvbGwgYW5p
bWF0ZWQgPSBBbmltYXRlZFNjcm9sbDo6Tm87CisgICAgICAgICAgICAgICAgaWYgKGF1dG9zY3Jv
bGxOb3RJblByb2dyZXNzICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJlaGF2aW9yLCBy
ZW5kZXJlcigpLmRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkpKQorICAgICAgICAgICAgICAg
ICAgICBhbmltYXRlZCA9IEFuaW1hdGVkU2Nyb2xsOjpZZXM7CiAgICAgICAgICAgICAgICAgZnJh
bWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKGNsYW1wZWRTY3JvbGxQb3NpdGlvbiwgU2Nyb2xsQ2xh
bXBpbmc6OkNsYW1wZWQsIGFuaW1hdGVkKTsKICAgICAgICAgICAgIH0KIApAQCAtMzA0MCw3ICsz
MDQ5LDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6Z2V0UmVjdFRvRXhwb3NlKGNvbnN0IExh
eW91dFJlY3QmIHZpc2libGVSZWN0LCBjb25zdCBMYXkKIHZvaWQgUmVuZGVyTGF5ZXI6OmF1dG9z
Y3JvbGwoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uSW5XaW5kb3cpCiB7CiAgICAgSW50UG9pbnQg
Y3VycmVudERvY3VtZW50UG9zaXRpb24gPSByZW5kZXJlcigpLnZpZXcoKS5mcmFtZVZpZXcoKS53
aW5kb3dUb0NvbnRlbnRzKHBvc2l0aW9uSW5XaW5kb3cpOwotICAgIHNjcm9sbFJlY3RUb1Zpc2li
bGUoTGF5b3V0UmVjdChjdXJyZW50RG9jdW1lbnRQb3NpdGlvbiwgTGF5b3V0U2l6ZSgxLCAxKSks
IGZhbHNlLCB7IFNlbGVjdGlvblJldmVhbE1vZGU6OlJldmVhbCwgU2Nyb2xsQWxpZ25tZW50Ojph
bGlnblRvRWRnZUlmTmVlZGVkLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVkZWQs
IFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6OlllcyB9LCBBdXRvc2Nyb2xsU3RhdHVz
OjpJblByb2dyZXNzKTsKKyAgICBzY3JvbGxSZWN0VG9WaXNpYmxlKExheW91dFJlY3QoY3VycmVu
dERvY3VtZW50UG9zaXRpb24sIExheW91dFNpemUoMSwgMSkpLCBmYWxzZSwgeyBTZWxlY3Rpb25S
ZXZlYWxNb2RlOjpSZXZlYWwsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCwg
U2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTaG91bGRBbGxvd0Nyb3NzT3Jp
Z2luU2Nyb2xsaW5nOjpZZXMgfSk7CiB9CiAKIGJvb2wgUmVuZGVyTGF5ZXI6OmNhblJlc2l6ZSgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IGIwM2YxZTM5
NDEyM2ZiNDdiZWFjYmUwOTBhYTVmYzYwYWM0NzZhY2MuLjdlZjAyOTcwYWI5OGJlMTk1MDM0ZTYy
MGMwOTIzZmZjMDZlOGJmMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5o
CkBAIC00NTAsOSArNDUwLDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Ny
b2xsVG9PZmZzZXQoY29uc3QgU2Nyb2xsT2Zmc2V0JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6
OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29u
c3QgU2Nyb2xsT2Zmc2V0JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywg
U2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CiAKLSAgICB2b2lkIHNj
cm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9s
bENsYW1waW5nOjpDbGFtcGVkLCBib29sIGFuaW1hdGVkID0gZmFsc2UpOwotICAgIHZvaWQgc2Ny
b2xsVG9ZUG9zaXRpb24oaW50IHksIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xs
Q2xhbXBpbmc6OkNsYW1wZWQsIGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSk7Ci0gICAgdm9pZCBzY3Jv
bGxUb1Bvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xh
bXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgYm9vbCBhbmltYXRlZCA9IGZhbHNlKTsK
KyAgICB2b2lkIHNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFt
cGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkLCBBbmltYXRlZFNjcm9sbCA9IEFuaW1hdGVk
U2Nyb2xsOjpObyk7CisgICAgdm9pZCBzY3JvbGxUb1lQb3NpdGlvbihpbnQgeSwgU2Nyb2xsVHlw
ZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgQW5pbWF0ZWRTY3Jv
bGwgPSBBbmltYXRlZFNjcm9sbDo6Tm8pOworICAgIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29u
c3QgU2Nyb2xsUG9zaXRpb24mLCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENs
YW1waW5nOjpDbGFtcGVkLCBBbmltYXRlZFNjcm9sbCA9IEFuaW1hdGVkU2Nyb2xsOjpObyk7CiAK
ICAgICAvLyBUaGVzZSBhcmUgb25seSB1c2VkIGJ5IG1hcnF1ZWUuCiAgICAgdm9pZCBzY3JvbGxU
b1hPZmZzZXQoaW50IHgpIHsgc2Nyb2xsVG9PZmZzZXQoU2Nyb2xsT2Zmc2V0KHgsIHNjcm9sbE9m
ZnNldCgpLnkoKSksIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xhbXBpbmc6OlVu
Y2xhbXBlZCk7IH0KQEAgLTQ2Niw5ICs0NjYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGF2YWls
YWJsZUNvbnRlbnRTaXplQ2hhbmdlZChBdmFpbGFibGVTaXplQ2hhbmdlUmVhc29uKSBmaW5hbDsK
IAotICAgIGVudW0gQXV0b3Njcm9sbFN0YXR1cyB7IE5vdEluUHJvZ3Jlc3MsIEluUHJvZ3Jlc3Mg
fTsKICAgICAvLyAiYWJzb2x1dGVSZWN0IiBpcyBpbiBzY2FsZWQgZG9jdW1lbnQgY29vcmRpbmF0
ZXMuCi0gICAgdm9pZCBzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFic29s
dXRlUmVjdCwgYm9vbCBpbnNpZGVGaXhlZCwgY29uc3QgU2Nyb2xsUmVjdFRvVmlzaWJsZU9wdGlv
bnMmLCBBdXRvc2Nyb2xsU3RhdHVzID0gQXV0b3Njcm9sbFN0YXR1czo6Tm90SW5Qcm9ncmVzcyk7
CisgICAgdm9pZCBzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFic29sdXRl
UmVjdCwgYm9vbCBpbnNpZGVGaXhlZCwgY29uc3QgU2Nyb2xsUmVjdFRvVmlzaWJsZU9wdGlvbnMm
KTsKIAogICAgIGJvb2wgc2Nyb2xsc092ZXJmbG93KCkgY29uc3Q7CiAgICAgYm9vbCBoYXNTY3Jv
bGxhYmxlSG9yaXpvbnRhbE92ZXJmbG93KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggYjU3NDc3ZDJkY2FiMTRlYTMyNDNjYmQ2OGRkMTMx
ZGEzYzI3Yjc4NC4uMzQxZTg4MWQyYmNjYzE0Mzk3NDNjNzA5MDc4YTY5OWI2NWYzNDUyYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtNzQzLDcgKzc0
Myw3IEBAIGludCBSZW5kZXJMaXN0Qm94OjpzY3JvbGxMZWZ0KCkgY29uc3QKICAgICByZXR1cm4g
MDsKIH0KIAotdm9pZCBSZW5kZXJMaXN0Qm94OjpzZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlw
ZSwgU2Nyb2xsQ2xhbXBpbmcsIGJvb2wpCit2b2lkIFJlbmRlckxpc3RCb3g6OnNldFNjcm9sbExl
ZnQoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZywgQW5pbWF0ZWRTY3JvbGwpCiB7CiB9
CiAKQEAgLTc2MCw3ICs3NjAsNyBAQCBzdGF0aWMgdm9pZCBzZXR1cFdoZWVsRXZlbnRUZXN0TW9u
aXRvcihSZW5kZXJMaXN0Qm94JiByZW5kZXJlcikKICAgICByZW5kZXJlci5zY3JvbGxBbmltYXRv
cigpLnNldFdoZWVsRXZlbnRUZXN0TW9uaXRvcihyZW5kZXJlci5wYWdlKCkud2hlZWxFdmVudFRl
c3RNb25pdG9yKCkpOwogfQogCi12b2lkIFJlbmRlckxpc3RCb3g6OnNldFNjcm9sbFRvcChpbnQg
bmV3VG9wLCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZywgYm9vbCkKK3ZvaWQgUmVuZGVyTGlz
dEJveDo6c2V0U2Nyb2xsVG9wKGludCBuZXdUb3AsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5n
LCBBbmltYXRlZFNjcm9sbCkKIHsKICAgICAvLyBEZXRlcm1pbmUgYW4gaW5kZXggYW5kIHNjcm9s
bCB0byBpdC4gICAgCiAgICAgaW50IGluZGV4ID0gbmV3VG9wIC8gaXRlbUhlaWdodCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKaW5kZXggOGM1YThmYWYyMDU3NWJm
YWU2MzJjNGFjYjU4ZjBjNWY4NGQ0N2ZhMi4uNWYwMjYxYTMyMzU2Mjk0OTE0Mzk1ZTM3OWZjYTgy
MDc4MTAzNTVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCkBA
IC0xMDYsOCArMTA2LDggQEAgcHJpdmF0ZToKICAgICBpbnQgc2Nyb2xsVG9wKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgaW50IHNjcm9sbFdpZHRoKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgaW50IHNj
cm9sbEhlaWdodCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQs
IFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nLCBib29sKSBvdmVycmlkZTsKLSAgICB2b2lkIHNl
dFNjcm9sbFRvcChpbnQsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nLCBib29sKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHNldFNjcm9sbExlZnQoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGlu
ZywgQW5pbWF0ZWRTY3JvbGwpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwg
U2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcsIEFuaW1hdGVkU2Nyb2xsKSBvdmVycmlkZTsKIAog
ICAgIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0
JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlv
dXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIG92ZXJyaWRlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmUuY3BwCmluZGV4IDc0YTgwYjA2ODdkOWRiODgyNjBiZGEwNmZmYzY1Yjc4MTdmM2Rj
ZmYuLjE2NjAyMTczMDk1NDNiYWJiNTZhZTY4ZWUyODFhNzMzZmU5ZDc1ZTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmUuY3BwCkBAIC0zODAsMTMgKzM4MCwxMyBAQCBpbnQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lOjpzY3JvbGxUb3AoKSBjb25zdAogICAgIHJldHVybiBSZW5kZXJCbG9ja0Zsb3c6OnNjcm9s
bFRvcCgpOwogfQogCi12b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xs
TGVmdChpbnQgbmV3TGVmdCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcsIGJvb2wpCit2b2lk
IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2V0U2Nyb2xsTGVmdChpbnQgbmV3TGVmdCwg
U2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcsIEFuaW1hdGVkU2Nyb2xsKQogewogICAgIGlmIChp
bm5lclRleHRFbGVtZW50KCkpCiAgICAgICAgIGlubmVyVGV4dEVsZW1lbnQoKS0+c2V0U2Nyb2xs
TGVmdChuZXdMZWZ0KTsKIH0KIAotdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNl
dFNjcm9sbFRvcChpbnQgbmV3VG9wLCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZywgYm9vbCkK
K3ZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzZXRTY3JvbGxUb3AoaW50IG5ld1Rv
cCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcsIEFuaW1hdGVkU2Nyb2xsKQogewogICAgIGlm
IChpbm5lclRleHRFbGVtZW50KCkpCiAgICAgICAgIGlubmVyVGV4dEVsZW1lbnQoKS0+c2V0U2Ny
b2xsVG9wKG5ld1RvcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKaW5kZXggZmQ2MzMwMTllZDA0MDRiY2I0MTFlZWU2
NzEyM2Y4ZGU2OWMwMTg1NS4uMjVhMmM5NmQ1MGFlNzI3YjYwMTUzOTY0ODk5ZTM3ODBjMzFjNzk5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuaApAQCAtNTcsOCArNTcsOCBAQCBwcml2YXRlOgogICAgIGludCBzY3Jv
bGxUb3AoKSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQgc2Nyb2xsV2lkdGgoKSBjb25zdCBvdmVy
cmlkZTsKICAgICBpbnQgc2Nyb2xsSGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBz
ZXRTY3JvbGxMZWZ0KGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcsIGJvb2wpIG92ZXJy
aWRlOwotICAgIHZvaWQgc2V0U2Nyb2xsVG9wKGludCwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBp
bmcsIGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQsIFNjcm9sbFR5
cGUsIFNjcm9sbENsYW1waW5nLCBBbmltYXRlZFNjcm9sbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBz
ZXRTY3JvbGxUb3AoaW50LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZywgQW5pbWF0ZWRTY3Jv
bGwpIG92ZXJyaWRlOwogICAgIGJvb2wgc2Nyb2xsKFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3Jh
bnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIgPSAxLCBFbGVtZW50Kiogc3RvcEVsZW1lbnQgPSBu
dWxscHRyLCBSZW5kZXJCb3gqIHN0YXJ0Qm94ID0gbnVsbHB0ciwgY29uc3QgSW50UG9pbnQmIHdo
ZWVsRXZlbnRBYnNvbHV0ZVBvaW50ID0gSW50UG9pbnQoKSkgZmluYWw7CiAgICAgYm9vbCBsb2dp
Y2FsU2Nyb2xsKFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9h
dCBtdWx0aXBsaWVyID0gMSwgRWxlbWVudCoqIHN0b3BFbGVtZW50ID0gMCkgZmluYWw7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>