<?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>157772</bug_id>
          
          <creation_ts>2016-05-16 16:49:53 -0700</creation_ts>
          <short_desc>Modernize CSS Parser</short_desc>
          <delta_ts>2022-04-14 23:43:38 -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>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1193617</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-05-16 16:49:53 -0700</bug_when>
    <thetext>Modernize CSS Parser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193619</commentid>
    <comment_count>1</comment_count>
      <attachid>279069</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-05-16 16:55:05 -0700</bug_when>
    <thetext>Created attachment 279069
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193761</commentid>
    <comment_count>2</comment_count>
      <attachid>279069</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-16 23:35:55 -0700</bug_when>
    <thetext>Comment on attachment 279069
Patch

Clearing flags on attachment: 279069

Committed r201000: &lt;http://trac.webkit.org/changeset/201000&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193762</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-16 23:35:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861740</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2022-04-14 23:43:38 -0700</bug_when>
    <thetext>*** Bug 147974 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279069</attachid>
            <date>2016-05-16 16:55:05 -0700</date>
            <delta_ts>2016-05-16 23:35:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157772-20160516165601.patch</filename>
            <type>text/plain</type>
            <size>23545</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMDk4MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYzIEBACisyMDE2LTA1LTE2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW9kZXJuaXpl
IENTUyBQYXJzZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1Nzc3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cy4gIFRoaXMgcGF0Y2gganVzdCByZXBsYWNlcyBQYXNzUmVmUHRyIHdp
dGggUmVmUHRyJiYuCisKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VEZWNsYXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXI6OlNvdXJjZVNpemU6OlNvdXJjZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpjcmVhdGVTdHlsZVByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyOjphZGRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFs
aWRQcmltaXRpdmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjphZGRFeHBhbmRlZFBy
b3BlcnR5Rm9yVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhcmlh
YmxlRGVwZW5kZW50VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VDb2x1bW5zU2hvcnRoYW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VHcmlkSXRlbVBvc2l0aW9uU2hv
cnRoYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VHcmlkQXJlYVNob3J0
aGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlSW5zZXRSb3VuZGVkQ29y
bmVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZUluc2V0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1BhcnNlQ29udGV4dDo6Y29tbWl0TGVuZ3RoKToK
KyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1BhcnNlQ29udGV4dDo6Y29tbWl0Q29sb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6Qm9yZGVySW1hZ2VQYXJzZUNvbnRleHQ6OnJlcXVpcmVXaWR0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpCb3JkZXJJbWFnZVBhcnNlQ29udGV4dDo6cmVxdWlyZU91dHNldCk6
CisgICAgICAgIChXZWJDb3JlOjpCb3JkZXJJbWFnZVBhcnNlQ29udGV4dDo6Y29tbWl0SW1hZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6Qm9yZGVySW1hZ2VQYXJzZUNvbnRleHQ6OmNvbW1pdEltYWdl
U2xpY2UpOgorICAgICAgICAoV2ViQ29yZTo6Qm9yZGVySW1hZ2VQYXJzZUNvbnRleHQ6OmNvbW1p
dEZvcndhcmRTbGFzaE9wZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkJvcmRlckltYWdlUGFy
c2VDb250ZXh0Ojpjb21taXRCb3JkZXJXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpCb3JkZXJJ
bWFnZVBhcnNlQ29udGV4dDo6Y29tbWl0Qm9yZGVyT3V0c2V0KToKKyAgICAgICAgKFdlYkNvcmU6
OkJvcmRlckltYWdlUGFyc2VDb250ZXh0Ojpjb21taXRSZXBlYXQpOgorICAgICAgICAoV2ViQ29y
ZTo6Qm9yZGVySW1hZ2VQYXJzZUNvbnRleHQ6OmNvbW1pdFdlYktpdEJvcmRlckltYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkJvcmRlckltYWdlUGFyc2VDb250ZXh0Ojpjb21taXRCb3JkZXJJbWFn
ZSk6CisgICAgICAgIChXZWJDb3JlOjpCb3JkZXJJbWFnZVBhcnNlQ29udGV4dDo6Y29tbWl0Qm9y
ZGVySW1hZ2VQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpCb3JkZXJJbWFnZVNsaWNlUGFy
c2VDb250ZXh0Ojpjb21taXRGaWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkJvcmRlckltYWdlU2xp
Y2VQYXJzZUNvbnRleHQ6OmNvbW1pdEJvcmRlckltYWdlU2xpY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6Qm9yZGVySW1hZ2VRdWFkUGFyc2VDb250ZXh0Ojpjb21taXROdW1iZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Qm9yZGVySW1hZ2VRdWFkUGFyc2VDb250ZXh0OjpzZXRBbGxvd0ZpbmFsQ29tbWl0
KToKKyAgICAgICAgKFdlYkNvcmU6OkJvcmRlckltYWdlUXVhZFBhcnNlQ29udGV4dDo6c2V0VG9w
KToKKyAgICAgICAgKFdlYkNvcmU6OkJvcmRlckltYWdlUXVhZFBhcnNlQ29udGV4dDo6Y29tbWl0
Qm9yZGVySW1hZ2VRdWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VDb3Vu
dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlRGVwcmVjYXRlZEdyYWRpZW50UG9pbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZURlcHJlY2F0ZWRHcmFkaWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjp2YWx1ZUZyb21TaWRlS2V5d29yZCk6CisgICAgICAgIChXZWJDb3Jl
OjpwYXJzZUdyYWRpZW50Q29sb3JPcktleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyOjpwYXJzZVBlcnNwZWN0aXZlT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNl
cjo6YWRkVGV4dERlY29yYXRpb25Qcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXI6OnBhcnNlVGV4dERlY29yYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpy
ZWFsTGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRlSW1wb3J0UnVsZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZU1lZGlhUnVsZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OnByb2Nlc3NBbmRBZGROZXdSdWxlVG9Tb3VyY2VUcmVlSWZO
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjphZGROZXdSdWxlVG9Tb3VyY2VU
cmVlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
YXJzZXI6Omhhc1Byb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpyZXNl
dFByb3BlcnR5UmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjppc0V4dHJhY3Rp
bmdTb3VyY2VEYXRhKToKKwogMjAxNi0wNS0xNiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgTW9kZXJuIElEQjogR2l2ZSBlYWNoIFVuaXF1ZUlEQkRhdGFiYXNl
IGl0cyBvd24gdGFzayBxdWV1ZXMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2Vy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAkocmV2
aXNpb24gMjAwOTc3KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE0ODksNyArMTQ4OSw3IEBAIFJlZjxJbW11dGFibGVTdHlsZVByb3BlcnRp
ZXM+IENTU1BhcnNlcjoKIH0KIAogCi1ib29sIENTU1BhcnNlcjo6cGFyc2VEZWNsYXJhdGlvbihN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzKiBkZWNsYXJhdGlvbiwgY29uc3QgU3RyaW5nJiBzdHJpbmcs
IFBhc3NSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IHBycFJ1bGVTb3VyY2VEYXRhLCBTdHlsZVNo
ZWV0Q29udGVudHMqIGNvbnRleHRTdHlsZVNoZWV0KQorYm9vbCBDU1NQYXJzZXI6OnBhcnNlRGVj
bGFyYXRpb24oTXV0YWJsZVN0eWxlUHJvcGVydGllcyogZGVjbGFyYXRpb24sIGNvbnN0IFN0cmlu
ZyYgc3RyaW5nLCBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+JiYgcHJwUnVsZVNvdXJjZURhdGEs
IFN0eWxlU2hlZXRDb250ZW50cyogY29udGV4dFN0eWxlU2hlZXQpCiB7CiAgICAgLy8gTGVuZ3Ro
IG9mIHRoZSAiQC13ZWJraXQtZGVjbHN7IiBwcmVmaXguCiAgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIHByZWZpeExlbmd0aCA9IDE1OwpAQCAtMTU3Myw3ICsxNTczLDcgQEAgQ1NTUGFyc2VyOjpT
b3VyY2VTaXplOjpTb3VyY2VTaXplKENTU1BhcgogewogfQogCi1DU1NQYXJzZXI6OlNvdXJjZVNp
emU6OlNvdXJjZVNpemUoc3RkOjp1bmlxdWVfcHRyPE1lZGlhUXVlcnlFeHA+JiYgb3JpZ0V4cCwg
UmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSkKK0NTU1BhcnNlcjo6U291cmNlU2l6ZTo6U291cmNlU2l6
ZShzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFRdWVyeUV4cD4mJiBvcmlnRXhwLCBSZWZQdHI8Q1NTVmFs
dWU+JiYgdmFsdWUpCiAgICAgOiBleHByZXNzaW9uKFdURk1vdmUob3JpZ0V4cCkpCiAgICAgLCBs
ZW5ndGgodmFsdWUpCiB7CkBAIC0xNjM5LDcgKzE2MzksNyBAQCBSZWY8SW1tdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzPiBDU1NQYXJzZXI6CiAgICAgcmV0dXJuIEltbXV0YWJsZVN0eWxlUHJvcGVydGll
czo6Y3JlYXRlKHJlc3VsdHMuZGF0YSgpLCByZXN1bHRzLnNpemUoKSwgbV9jb250ZXh0Lm1vZGUp
OwogfQogCi12b2lkIENTU1BhcnNlcjo6YWRkUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wSWQs
IFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlLCBib29sIGltcG9ydGFudCwgYm9vbCBpbXBsaWNp
dCkKK3ZvaWQgQ1NTUGFyc2VyOjphZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgUmVm
UHRyPENTU1ZhbHVlPiYmIHZhbHVlLCBib29sIGltcG9ydGFudCwgYm9vbCBpbXBsaWNpdCkKIHsK
ICAgICAvLyBUaGlzIHByb3BlcnR5IGRvZXNuJ3QgYmVsb25nIHRvIGEgc2hvcnRoYW5kIG9yIGlz
IGEgQ1NTIHZhcmlhYmxlICh3aGljaCB3aWxsIGJlIHJlc29sdmVkIGxhdGVyKS4KICAgICBpZiAo
IW1fY3VycmVudFNob3J0aGFuZCkgewpAQCAtMTg3NywxMiArMTg3NywxMiBAQCBpbmxpbmUgUmVm
UHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBDU1NQYXJzCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
LXZvaWQgQ1NTUGFyc2VyOjphZGRFeHBhbmRlZFByb3BlcnR5Rm9yVmFsdWUoQ1NTUHJvcGVydHlJ
RCBwcm9wSWQsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHBycFZhbHVlLCBib29sIGltcG9ydGFudCkK
K3ZvaWQgQ1NTUGFyc2VyOjphZGRFeHBhbmRlZFByb3BlcnR5Rm9yVmFsdWUoQ1NTUHJvcGVydHlJ
RCBwcm9wSWQsIFJlZlB0cjxDU1NWYWx1ZT4mJiBwcnBWYWx1ZSwgYm9vbCBpbXBvcnRhbnQpCiB7
CiAgICAgY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYgc2hvcnRoYW5kID0gc2hvcnRoYW5k
Rm9yUHJvcGVydHkocHJvcElkKTsKICAgICB1bnNpZ25lZCBzaG9ydGhhbmRMZW5ndGggPSBzaG9y
dGhhbmQubGVuZ3RoKCk7CiAgICAgaWYgKCFzaG9ydGhhbmRMZW5ndGgpIHsKLSAgICAgICAgYWRk
UHJvcGVydHkocHJvcElkLCBwcnBWYWx1ZSwgaW1wb3J0YW50KTsKKyAgICAgICAgYWRkUHJvcGVy
dHkocHJvcElkLCBXVEZNb3ZlKHBycFZhbHVlKSwgaW1wb3J0YW50KTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtMTg5MCw3ICsxODkwLDcgQEAgdm9pZCBDU1NQYXJzZXI6OmFkZEV4cGFu
ZGVkUHJvcGVydHlGb3JWYQogICAgIFNob3J0aGFuZFNjb3BlIHNjb3BlKHRoaXMsIHByb3BJZCk7
CiAgICAgY29uc3QgQ1NTUHJvcGVydHlJRCogbG9uZ2hhbmRzID0gc2hvcnRoYW5kLnByb3BlcnRp
ZXMoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2hvcnRoYW5kTGVuZ3RoOyArK2kp
Ci0gICAgICAgIGFkZFByb3BlcnR5KGxvbmdoYW5kc1tpXSwgdmFsdWUsIGltcG9ydGFudCk7Cisg
ICAgICAgIGFkZFByb3BlcnR5KGxvbmdoYW5kc1tpXSwgV1RGTW92ZSh2YWx1ZSksIGltcG9ydGFu
dCk7CiB9CiAKIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZVZhcmlhYmxlRGVwZW5k
ZW50VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wSUQsIGNvbnN0IENTU1ZhcmlhYmxlRGVwZW5kZW50
VmFsdWUmIGRlcGVuZGVudFZhbHVlLCBjb25zdCBDdXN0b21Qcm9wZXJ0eVZhbHVlTWFwJiBjdXN0
b21Qcm9wZXJ0aWVzKQpAQCAtMjAyMyw3ICsyMDIzLDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNl
VmFsdWUoQ1NTUHJvcGVydHlJRAogICAgICAgICAgICAgb3ZlcmZsb3dYVmFsdWUgPSBjc3NWYWx1
ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIG92ZXJmbG93WFZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0aWVzLmxhc3QoKS52
YWx1ZSgpOwotICAgICAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eU92ZXJmbG93WCwgb3ZlcmZs
b3dYVmFsdWUucmVsZWFzZSgpLCBpbXBvcnRhbnQpOworICAgICAgICBhZGRQcm9wZXJ0eShDU1NQ
cm9wZXJ0eU92ZXJmbG93WCwgV1RGTW92ZShvdmVyZmxvd1hWYWx1ZSksIGltcG9ydGFudCk7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMjQ1Miw3ICsyNDUyLDcgQEAgYm9vbCBD
U1NQYXJzZXI6OnBhcnNlVmFsdWUoQ1NTUHJvcGVydHlJRAogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRNYXNrQm94SW1hZ2U6IHsKICAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiByZXN1bHQ7CiAg
ICAgICAgIGlmIChwYXJzZUJvcmRlckltYWdlKHByb3BJZCwgcmVzdWx0KSkgewotICAgICAgICAg
ICAgYWRkUHJvcGVydHkocHJvcElkLCByZXN1bHQsIGltcG9ydGFudCk7CisgICAgICAgICAgICBh
ZGRQcm9wZXJ0eShwcm9wSWQsIFdURk1vdmUocmVzdWx0KSwgaW1wb3J0YW50KTsKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwpAQCAtMjQ2MSw3ICsy
NDYxLDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoQ1NTUHJvcGVydHlJRAogICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrQm94SW1hZ2VPdXRzZXQ6IHsKICAgICAgICAgUmVmUHRy
PENTU1ByaW1pdGl2ZVZhbHVlPiByZXN1bHQ7CiAgICAgICAgIGlmIChwYXJzZUJvcmRlckltYWdl
T3V0c2V0KHJlc3VsdCkpIHsKLSAgICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BJZCwgcmVzdWx0
LCBpbXBvcnRhbnQpOworICAgICAgICAgICAgYWRkUHJvcGVydHkocHJvcElkLCBXVEZNb3ZlKHJl
c3VsdCksIGltcG9ydGFudCk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQog
ICAgICAgICBicmVhazsKQEAgLTI0NzAsNyArMjQ3MCw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJz
ZVZhbHVlKENTU1Byb3BlcnR5SUQKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza0JveElt
YWdlUmVwZWF0OiB7CiAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZT4gcmVzdWx0OwogICAgICAgICBp
ZiAocGFyc2VCb3JkZXJJbWFnZVJlcGVhdChyZXN1bHQpKSB7Ci0gICAgICAgICAgICBhZGRQcm9w
ZXJ0eShwcm9wSWQsIHJlc3VsdCwgaW1wb3J0YW50KTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5
KHByb3BJZCwgV1RGTW92ZShyZXN1bHQpLCBpbXBvcnRhbnQpOwogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CkBAIC0yNDc5LDcgKzI0NzksNyBAQCBi
b29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlECiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdE1hc2tCb3hJbWFnZVNsaWNlOiB7CiAgICAgICAgIFJlZlB0cjxDU1NCb3JkZXJJ
bWFnZVNsaWNlVmFsdWU+IHJlc3VsdDsKICAgICAgICAgaWYgKHBhcnNlQm9yZGVySW1hZ2VTbGlj
ZShwcm9wSWQsIHJlc3VsdCkpIHsKLSAgICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BJZCwgcmVz
dWx0LCBpbXBvcnRhbnQpOworICAgICAgICAgICAgYWRkUHJvcGVydHkocHJvcElkLCBXVEZNb3Zl
KHJlc3VsdCksIGltcG9ydGFudCk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
fQogICAgICAgICBicmVhazsKQEAgLTI0ODgsNyArMjQ4OCw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpw
YXJzZVZhbHVlKENTU1Byb3BlcnR5SUQKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza0Jv
eEltYWdlV2lkdGg6IHsKICAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiByZXN1bHQ7
CiAgICAgICAgIGlmIChwYXJzZUJvcmRlckltYWdlV2lkdGgocmVzdWx0KSkgewotICAgICAgICAg
ICAgYWRkUHJvcGVydHkocHJvcElkLCByZXN1bHQsIGltcG9ydGFudCk7CisgICAgICAgICAgICBh
ZGRQcm9wZXJ0eShwcm9wSWQsIFdURk1vdmUocmVzdWx0KSwgaW1wb3J0YW50KTsKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwpAQCAtMjU5NCw3ICsy
NTk0LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoQ1NTUHJvcGVydHlJRAogICAgICAg
ICAgICAgUmVmUHRyPENTU1ZhbHVlPiBjdXJyVmFsdWU7CiAgICAgICAgICAgICBpZiAoIXBhcnNl
RmlsdGVyKCptX3ZhbHVlTGlzdCwgY3VyclZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgICAgICBhZGRQcm9wZXJ0eShwcm9wSWQsIGN1cnJWYWx1ZSwgaW1wb3J0
YW50KTsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BJZCwgV1RGTW92ZShjdXJyVmFsdWUp
LCBpbXBvcnRhbnQpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAg
ICAgYnJlYWs7CkBAIC0zOTA3LDE0ICszOTA3LDE0IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUNv
bHVtbnNTaG9ydGhhbmQoYm8KIAogICAgIC8vIEFueSB1bmFzc2lnbmVkIHByb3BlcnR5IGF0IHRo
aXMgcG9pbnQgd2lsbCBiZWNvbWUgaW1wbGljaXQgJ2F1dG8nLgogICAgIGlmIChjb2x1bW5XaWR0
aCkKLSAgICAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlDb2x1bW5XaWR0aCwgY29sdW1uV2lk
dGgsIGltcG9ydGFudCk7CisgICAgICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5Q29sdW1uV2lk
dGgsIFdURk1vdmUoY29sdW1uV2lkdGgpLCBpbXBvcnRhbnQpOwogICAgIGVsc2UgewogICAgICAg
ICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eUNvbHVtbldpZHRoLCBDU1NWYWx1ZVBvb2w6OnNpbmds
ZXRvbigpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pLCBpbXBvcnRhbnQsICFo
YXNQZW5kaW5nRXhwbGljaXRBdXRvIC8qIGltcGxpY2l0ICovKTsKICAgICAgICAgaGFzUGVuZGlu
Z0V4cGxpY2l0QXV0byA9IGZhbHNlOwogICAgIH0KIAogICAgIGlmIChjb2x1bW5Db3VudCkKLSAg
ICAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlDb2x1bW5Db3VudCwgY29sdW1uQ291bnQsIGlt
cG9ydGFudCk7CisgICAgICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5Q29sdW1uQ291bnQsIFdU
Rk1vdmUoY29sdW1uQ291bnQpLCBpbXBvcnRhbnQpOwogICAgIGVsc2UKICAgICAgICAgYWRkUHJv
cGVydHkoQ1NTUHJvcGVydHlDb2x1bW5Db3VudCwgQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5j
cmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVBdXRvKSwgaW1wb3J0YW50LCAhaGFzUGVuZGlu
Z0V4cGxpY2l0QXV0byAvKiBpbXBsaWNpdCAqLyk7CiAKQEAgLTU1NDUsOCArNTU0NSw4IEBAIGJv
b2wgQ1NTUGFyc2VyOjpwYXJzZUdyaWRJdGVtUG9zaXRpb25TaG8KICAgICB9IGVsc2UKICAgICAg
ICAgZW5kVmFsdWUgPSBncmlkTWlzc2luZ0dyaWRQb3NpdGlvblZhbHVlKCpzdGFydFZhbHVlKTsK
IAotICAgIGFkZFByb3BlcnR5KHNob3J0aGFuZC5wcm9wZXJ0aWVzKClbMF0sIHN0YXJ0VmFsdWUs
IGltcG9ydGFudCk7Ci0gICAgYWRkUHJvcGVydHkoc2hvcnRoYW5kLnByb3BlcnRpZXMoKVsxXSwg
ZW5kVmFsdWUsIGltcG9ydGFudCk7CisgICAgYWRkUHJvcGVydHkoc2hvcnRoYW5kLnByb3BlcnRp
ZXMoKVswXSwgV1RGTW92ZShzdGFydFZhbHVlKSwgaW1wb3J0YW50KTsKKyAgICBhZGRQcm9wZXJ0
eShzaG9ydGhhbmQucHJvcGVydGllcygpWzFdLCBXVEZNb3ZlKGVuZFZhbHVlKSwgaW1wb3J0YW50
KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNTgxMywxMCArNTgxMywxMCBAQCBib29sIENT
U1BhcnNlcjo6cGFyc2VHcmlkQXJlYVNob3J0aGFuZChiCiAgICAgaWYgKCFjb2x1bW5FbmRWYWx1
ZSkKICAgICAgICAgY29sdW1uRW5kVmFsdWUgPSBncmlkTWlzc2luZ0dyaWRQb3NpdGlvblZhbHVl
KCpjb2x1bW5TdGFydFZhbHVlKTsKIAotICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5R3JpZFJv
d1N0YXJ0LCByb3dTdGFydFZhbHVlLCBpbXBvcnRhbnQpOwotICAgIGFkZFByb3BlcnR5KENTU1By
b3BlcnR5R3JpZENvbHVtblN0YXJ0LCBjb2x1bW5TdGFydFZhbHVlLCBpbXBvcnRhbnQpOwotICAg
IGFkZFByb3BlcnR5KENTU1Byb3BlcnR5R3JpZFJvd0VuZCwgcm93RW5kVmFsdWUsIGltcG9ydGFu
dCk7Ci0gICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlHcmlkQ29sdW1uRW5kLCBjb2x1bW5FbmRW
YWx1ZSwgaW1wb3J0YW50KTsKKyAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eUdyaWRSb3dTdGFy
dCwgV1RGTW92ZShyb3dTdGFydFZhbHVlKSwgaW1wb3J0YW50KTsKKyAgICBhZGRQcm9wZXJ0eShD
U1NQcm9wZXJ0eUdyaWRDb2x1bW5TdGFydCwgV1RGTW92ZShjb2x1bW5TdGFydFZhbHVlKSwgaW1w
b3J0YW50KTsKKyAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eUdyaWRSb3dFbmQsIFdURk1vdmUo
cm93RW5kVmFsdWUpLCBpbXBvcnRhbnQpOworICAgIGFkZFByb3BlcnR5KENTU1Byb3BlcnR5R3Jp
ZENvbHVtbkVuZCwgV1RGTW92ZShjb2x1bW5FbmRWYWx1ZSksIGltcG9ydGFudCk7CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKQEAgLTY1MDQsNyArNjUwNCw3IEBAIHN0YXRpYyB2b2lkIGNvbXBsZXRl
Qm9yZGVyUmFkaWkoUmVmUHRyPEMKIAogLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHJlZmFjdG9y
ZWQgd2l0aCBDU1NQYXJzZXI6OnBhcnNlQm9yZGVyUmFkaXVzLgogLy8gQ1NTUGFyc2VyOjpwYXJz
ZUJvcmRlclJhZGl1cyBjb250YWlucyBzdXBwb3J0IGZvciBzb21lIGxlZ2FjeSByYWRpdXMgY29u
c3RydWN0aW9uLgotUmVmUHRyPENTU0Jhc2ljU2hhcGU+IENTU1BhcnNlcjo6cGFyc2VJbnNldFJv
dW5kZWRDb3JuZXJzKFBhc3NSZWZQdHI8Q1NTQmFzaWNTaGFwZUluc2V0PiBzaGFwZSwgQ1NTUGFy
c2VyVmFsdWVMaXN0JiBhcmdzKQorUmVmUHRyPENTU0Jhc2ljU2hhcGU+IENTU1BhcnNlcjo6cGFy
c2VJbnNldFJvdW5kZWRDb3JuZXJzKFJlZlB0cjxDU1NCYXNpY1NoYXBlSW5zZXQ+JiYgc2hhcGUs
IENTU1BhcnNlclZhbHVlTGlzdCYgYXJncykKIHsKICAgICBDU1NQYXJzZXJWYWx1ZSogYXJndW1l
bnQgPSBhcmdzLm5leHQoKTsKIApAQCAtNjYxMiw3ICs2NjEyLDcgQEAgUmVmUHRyPENTU0Jhc2lj
U2hhcGU+IENTU1BhcnNlcjo6cGFyc2VCYQogICAgIH0KIAogICAgIGlmIChoYXNSb3VuZGVkSW5z
ZXQpCi0gICAgICAgIHJldHVybiBwYXJzZUluc2V0Um91bmRlZENvcm5lcnMoc2hhcGUsIGFyZ3Mp
OworICAgICAgICByZXR1cm4gcGFyc2VJbnNldFJvdW5kZWRDb3JuZXJzKFdURk1vdmUoc2hhcGUp
LCBhcmdzKTsKICAgICByZXR1cm4gc2hhcGU7CiB9CiAKQEAgLTc5NTEsNyArNzk1MSw3IEBAIHN0
cnVjdCBTaGFkb3dQYXJzZUNvbnRleHQgewogICAgICAgICB9CiAgICAgfQogCi0gICAgdm9pZCBj
b21taXRDb2xvcihQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiB2YWwpCisgICAgdm9pZCBj
b21taXRDb2xvcihSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+JiYgdmFsKQogICAgIHsKICAgICAg
ICAgY29sb3IgPSB2YWw7CiAgICAgICAgIGFsbG93Q29sb3IgPSBmYWxzZTsKQEAgLTgxNzksNyAr
ODE3OSw3IEBAIHN0cnVjdCBCb3JkZXJJbWFnZVBhcnNlQ29udGV4dCB7CiAgICAgYm9vbCByZXF1
aXJlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3JlcXVpcmVXaWR0aDsgfQogICAgIGJvb2wgcmVx
dWlyZU91dHNldCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWlyZU91dHNldDsgfQogCi0gICAgdm9p
ZCBjb21taXRJbWFnZShQYXNzUmVmUHRyPENTU1ZhbHVlPiBpbWFnZSkKKyAgICB2b2lkIGNvbW1p
dEltYWdlKFJlZlB0cjxDU1NWYWx1ZT4mJiBpbWFnZSkKICAgICB7CiAgICAgICAgIG1faW1hZ2Ug
PSBpbWFnZTsKICAgICAgICAgbV9jYW5BZHZhbmNlID0gdHJ1ZTsKQEAgLTgxODgsNyArODE4OCw3
IEBAIHN0cnVjdCBCb3JkZXJJbWFnZVBhcnNlQ29udGV4dCB7CiAgICAgICAgIG1fYWxsb3dJbWFn
ZVNsaWNlID0gIW1faW1hZ2VTbGljZTsKICAgICAgICAgbV9hbGxvd1JlcGVhdCA9ICFtX3JlcGVh
dDsKICAgICB9Ci0gICAgdm9pZCBjb21taXRJbWFnZVNsaWNlKFBhc3NSZWZQdHI8Q1NTQm9yZGVy
SW1hZ2VTbGljZVZhbHVlPiBzbGljZSkKKyAgICB2b2lkIGNvbW1pdEltYWdlU2xpY2UoUmVmUHRy
PENTU0JvcmRlckltYWdlU2xpY2VWYWx1ZT4mJiBzbGljZSkKICAgICB7CiAgICAgICAgIG1faW1h
Z2VTbGljZSA9IHNsaWNlOwogICAgICAgICBtX2NhbkFkdmFuY2UgPSB0cnVlOwpAQCAtODIwOSw3
ICs4MjA5LDcgQEAgc3RydWN0IEJvcmRlckltYWdlUGFyc2VDb250ZXh0IHsKICAgICAgICAgICAg
IG1fcmVxdWlyZVdpZHRoID0gZmFsc2U7CiAgICAgICAgIH0KICAgICB9Ci0gICAgdm9pZCBjb21t
aXRCb3JkZXJXaWR0aChQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBzbGljZSkKKyAgICB2
b2lkIGNvbW1pdEJvcmRlcldpZHRoKFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4mJiBzbGljZSkK
ICAgICB7CiAgICAgICAgIG1fYm9yZGVyU2xpY2UgPSBzbGljZTsKICAgICAgICAgbV9jYW5BZHZh
bmNlID0gdHJ1ZTsKQEAgLTgyMTgsNyArODIxOCw3IEBAIHN0cnVjdCBCb3JkZXJJbWFnZVBhcnNl
Q29udGV4dCB7CiAgICAgICAgIG1fYWxsb3dJbWFnZSA9ICFtX2ltYWdlOwogICAgICAgICBtX2Fs
bG93UmVwZWF0ID0gIW1fcmVwZWF0OwogICAgIH0KLSAgICB2b2lkIGNvbW1pdEJvcmRlck91dHNl
dChQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBvdXRzZXQpCisgICAgdm9pZCBjb21taXRC
b3JkZXJPdXRzZXQoUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiYmIG91dHNldCkKICAgICB7CiAg
ICAgICAgIG1fb3V0c2V0ID0gb3V0c2V0OwogICAgICAgICBtX2NhbkFkdmFuY2UgPSB0cnVlOwpA
QCAtODIyNyw3ICs4MjI3LDcgQEAgc3RydWN0IEJvcmRlckltYWdlUGFyc2VDb250ZXh0IHsKICAg
ICAgICAgbV9hbGxvd0ltYWdlID0gIW1faW1hZ2U7CiAgICAgICAgIG1fYWxsb3dSZXBlYXQgPSAh
bV9yZXBlYXQ7CiAgICAgfQotICAgIHZvaWQgY29tbWl0UmVwZWF0KFBhc3NSZWZQdHI8Q1NTVmFs
dWU+IHJlcGVhdCkKKyAgICB2b2lkIGNvbW1pdFJlcGVhdChSZWZQdHI8Q1NTVmFsdWU+JiYgcmVw
ZWF0KQogICAgIHsKICAgICAgICAgbV9yZXBlYXQgPSByZXBlYXQ7CiAgICAgICAgIG1fY2FuQWR2
YW5jZSA9IHRydWU7CkBAIC04MjM3LDI0ICs4MjM3LDI0IEBAIHN0cnVjdCBCb3JkZXJJbWFnZVBh
cnNlQ29udGV4dCB7CiAgICAgICAgIG1fYWxsb3dJbWFnZSA9ICFtX2ltYWdlOwogICAgIH0KIAot
ICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGNvbW1pdFdlYktpdEJvcmRlckltYWdlKCkKKyAgICBS
ZWZQdHI8Q1NTVmFsdWU+IGNvbW1pdFdlYktpdEJvcmRlckltYWdlKCkKICAgICB7CiAgICAgICAg
IHJldHVybiBjcmVhdGVCb3JkZXJJbWFnZVZhbHVlKG1faW1hZ2UsIG1faW1hZ2VTbGljZSwgbV9i
b3JkZXJTbGljZSwgbV9vdXRzZXQsIG1fcmVwZWF0KTsKICAgICB9CiAKICAgICB2b2lkIGNvbW1p
dEJvcmRlckltYWdlKENTU1BhcnNlciYgcGFyc2VyLCBib29sIGltcG9ydGFudCkKICAgICB7Ci0g
ICAgICAgIGNvbW1pdEJvcmRlckltYWdlUHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJJbWFnZVNv
dXJjZSwgcGFyc2VyLCBtX2ltYWdlLCBpbXBvcnRhbnQpOworICAgICAgICBjb21taXRCb3JkZXJJ
bWFnZVByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVySW1hZ2VTb3VyY2UsIHBhcnNlciwgV1RGTW92
ZShtX2ltYWdlKSwgaW1wb3J0YW50KTsKICAgICAgICAgY29tbWl0Qm9yZGVySW1hZ2VQcm9wZXJ0
eShDU1NQcm9wZXJ0eUJvcmRlckltYWdlU2xpY2UsIHBhcnNlciwgbV9pbWFnZVNsaWNlLCBpbXBv
cnRhbnQpOwogICAgICAgICBjb21taXRCb3JkZXJJbWFnZVByb3BlcnR5KENTU1Byb3BlcnR5Qm9y
ZGVySW1hZ2VXaWR0aCwgcGFyc2VyLCBtX2JvcmRlclNsaWNlLCBpbXBvcnRhbnQpOwogICAgICAg
ICBjb21taXRCb3JkZXJJbWFnZVByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVySW1hZ2VPdXRzZXQs
IHBhcnNlciwgbV9vdXRzZXQsIGltcG9ydGFudCk7Ci0gICAgICAgIGNvbW1pdEJvcmRlckltYWdl
UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJJbWFnZVJlcGVhdCwgcGFyc2VyLCBtX3JlcGVhdCwg
aW1wb3J0YW50KTsKKyAgICAgICAgY29tbWl0Qm9yZGVySW1hZ2VQcm9wZXJ0eShDU1NQcm9wZXJ0
eUJvcmRlckltYWdlUmVwZWF0LCBwYXJzZXIsIFdURk1vdmUobV9yZXBlYXQpLCBpbXBvcnRhbnQp
OwogICAgIH0KIAotICAgIHZvaWQgY29tbWl0Qm9yZGVySW1hZ2VQcm9wZXJ0eShDU1NQcm9wZXJ0
eUlEIHByb3BJZCwgQ1NTUGFyc2VyJiBwYXJzZXIsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHZhbHVl
LCBib29sIGltcG9ydGFudCkKKyAgICB2b2lkIGNvbW1pdEJvcmRlckltYWdlUHJvcGVydHkoQ1NT
UHJvcGVydHlJRCBwcm9wSWQsIENTU1BhcnNlciYgcGFyc2VyLCBSZWZQdHI8Q1NTVmFsdWU+JiYg
dmFsdWUsIGJvb2wgaW1wb3J0YW50KQogICAgIHsKICAgICAgICAgaWYgKHZhbHVlKQotICAgICAg
ICAgICAgcGFyc2VyLmFkZFByb3BlcnR5KHByb3BJZCwgdmFsdWUsIGltcG9ydGFudCk7CisgICAg
ICAgICAgICBwYXJzZXIuYWRkUHJvcGVydHkocHJvcElkLCBXVEZNb3ZlKHZhbHVlKSwgaW1wb3J0
YW50KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcGFyc2VyLmFkZFByb3BlcnR5KHByb3BJ
ZCwgQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVJbXBsaWNpdEluaXRpYWxWYWx1ZSgp
LCBpbXBvcnRhbnQsIHRydWUpOwogICAgIH0KQEAgLTg0MjMsNyArODQyMyw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgY29tbWl0RmlsbCgpIHsgbV9maWxsID0gdHJ1ZTsgbV9hbGxvd0ZpbGwgPSBm
YWxzZTsgbV9hbGxvd051bWJlciA9ICFtX3RvcDsgfQogCi0gICAgUGFzc1JlZlB0cjxDU1NCb3Jk
ZXJJbWFnZVNsaWNlVmFsdWU+IGNvbW1pdEJvcmRlckltYWdlU2xpY2UoKQorICAgIFJlZjxDU1NC
b3JkZXJJbWFnZVNsaWNlVmFsdWU+IGNvbW1pdEJvcmRlckltYWdlU2xpY2UoKQogICAgIHsKICAg
ICAgICAgLy8gV2UgbmVlZCB0byBjbG9uZSBhbmQgcmVwZWF0IHZhbHVlcyBmb3IgYW55IG9taXNz
aW9ucy4KICAgICAgICAgQVNTRVJUKG1fdG9wKTsKQEAgLTg1MzksOSArODUzOSw5IEBAIHB1Ymxp
YzoKICAgICB9CiAKICAgICB2b2lkIHNldEFsbG93RmluYWxDb21taXQoKSB7IG1fYWxsb3dGaW5h
bENvbW1pdCA9IHRydWU7IH0KLSAgICB2b2lkIHNldFRvcChQYXNzUmVmUHRyPENTU1ByaW1pdGl2
ZVZhbHVlPiB2YWwpIHsgbV90b3AgPSB2YWw7IH0KKyAgICB2b2lkIHNldFRvcChSZWZQdHI8Q1NT
UHJpbWl0aXZlVmFsdWU+JiYgdmFsKSB7IG1fdG9wID0gdmFsOyB9CiAKLSAgICBQYXNzUmVmUHRy
PENTU1ByaW1pdGl2ZVZhbHVlPiBjb21taXRCb3JkZXJJbWFnZVF1YWQoKQorICAgIFJlZjxDU1NQ
cmltaXRpdmVWYWx1ZT4gY29tbWl0Qm9yZGVySW1hZ2VRdWFkKCkKICAgICB7CiAgICAgICAgIC8v
IFdlIG5lZWQgdG8gY2xvbmUgYW5kIHJlcGVhdCB2YWx1ZXMgZm9yIGFueSBvbWlzc2lvbnMuCiAg
ICAgICAgIEFTU0VSVChtX3RvcCk7CkBAIC04NzUzLDcgKzg3NTMsNyBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VDb3VudGVyKENTU1Byb3BlcnR5CiB9CiAKIC8vIFRoaXMgc2hvdWxkIGdvIGF3YXkg
b25jZSB3ZSBkcm9wIHN1cHBvcnQgZm9yIC13ZWJraXQtZ3JhZGllbnQKLXN0YXRpYyBQYXNzUmVm
UHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZURlcHJlY2F0ZWRHcmFkaWVudFBvaW50KENTU1Bh
cnNlclZhbHVlJiB2YWx1ZSwgYm9vbCBob3Jpem9udGFsKQorc3RhdGljIFJlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4gcGFyc2VEZXByZWNhdGVkR3JhZGllbnRQb2ludChDU1NQYXJzZXJWYWx1ZSYg
dmFsdWUsIGJvb2wgaG9yaXpvbnRhbCkKIHsKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IHJlc3VsdDsKICAgICBpZiAodmFsdWUudW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lE
RU5UKSB7CkBAIC04OTcxLDcgKzg5NzEsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VEZXByZWNh
dGVkR3JhZGllbnQoCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBQYXNzUmVmUHRyPENT
U1ByaW1pdGl2ZVZhbHVlPiB2YWx1ZUZyb21TaWRlS2V5d29yZChDU1NQYXJzZXJWYWx1ZSYgdmFs
dWUsIGJvb2wmIGlzSG9yaXpvbnRhbCkKK3N0YXRpYyBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IHZhbHVlRnJvbVNpZGVLZXl3b3JkKENTU1BhcnNlclZhbHVlJiB2YWx1ZSwgYm9vbCYgaXNIb3Jp
em9udGFsKQogewogICAgIGlmICh2YWx1ZS51bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
SURFTlQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtODk5MSw3ICs4OTkxLDcgQEAgc3Rh
dGljIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHZhbAogICAgIHJldHVybiBDU1NWYWx1
ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZSh2YWx1ZS5pZCk7CiB9CiAK
LXN0YXRpYyBQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZUdyYWRpZW50Q29sb3JP
cktleXdvcmQoQ1NTUGFyc2VyJiBwYXJzZXIsIENTU1BhcnNlclZhbHVlJiB2YWx1ZSkKK3N0YXRp
YyBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHBhcnNlR3JhZGllbnRDb2xvck9yS2V5d29yZChD
U1NQYXJzZXImIHBhcnNlciwgQ1NTUGFyc2VyVmFsdWUmIHZhbHVlKQogewogICAgIENTU1ZhbHVl
SUQgaWQgPSB2YWx1ZS5pZDsKICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVXZWJraXRUZXh0IHx8IENT
U1BhcnNlcjo6aXNWYWxpZFN5c3RlbUNvbG9yVmFsdWUoaWQpIHx8IGlkID09IENTU1ZhbHVlTWVu
dSB8fCBpZCA9PSBDU1NWYWx1ZUN1cnJlbnRjb2xvcikKQEAgLTEwMzk4LDcgKzEwMzk4LDcgQEAg
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlUGVyc3BlY3RpdmVPcmlnaW4oQwogICAgIHJldHVybiB2YWx1
ZTsKIH0KIAotdm9pZCBDU1NQYXJzZXI6OmFkZFRleHREZWNvcmF0aW9uUHJvcGVydHkoQ1NTUHJv
cGVydHlJRCBwcm9wSWQsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlLCBib29sIGltcG9ydGFu
dCkKK3ZvaWQgQ1NTUGFyc2VyOjphZGRUZXh0RGVjb3JhdGlvblByb3BlcnR5KENTU1Byb3BlcnR5
SUQgcHJvcElkLCBSZWZQdHI8Q1NTVmFsdWU+JiYgdmFsdWUsIGJvb2wgaW1wb3J0YW50KQogewog
ICAgIC8vIFRoZSB0ZXh0LWRlY29yYXRpb24tbGluZSBwcm9wZXJ0eSB0YWtlcyBwcmlvcml0eSBv
dmVyIHRleHQtZGVjb3JhdGlvbiwgdW5sZXNzIHRoZSBsYXR0ZXIgaGFzIGltcG9ydGFudCBwcmlv
cml0eSBzZXQuCiAgICAgaWYgKHByb3BJZCA9PSBDU1NQcm9wZXJ0eVRleHREZWNvcmF0aW9uICYm
ICFpbXBvcnRhbnQgJiYgIWluU2hvcnRoYW5kKCkpIHsKQEAgLTEwNDA3LDcgKzEwNDA3LDcgQEAg
dm9pZCBDU1NQYXJzZXI6OmFkZFRleHREZWNvcmF0aW9uUHJvcGVydAogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogICAgIH0KLSAgICBhZGRQcm9wZXJ0eShwcm9wSWQsIHZhbHVl
LCBpbXBvcnRhbnQpOworICAgIGFkZFByb3BlcnR5KHByb3BJZCwgV1RGTW92ZSh2YWx1ZSksIGlt
cG9ydGFudCk7CiB9CiAKIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVRleHREZWNvcmF0aW9uKENTU1By
b3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKQEAgLTEyODU2LDcgKzEyODU2LDcgQEAg
cmVzdGFydEFmdGVyQ29tbWVudDoKICAgICByZXR1cm4gdG9rZW4oKTsKIH0KIAotUmVmUHRyPFN0
eWxlUnVsZUJhc2U+IENTU1BhcnNlcjo6Y3JlYXRlSW1wb3J0UnVsZShjb25zdCBDU1NQYXJzZXJT
dHJpbmcmIHVybCwgUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5U2V0PiBtZWRpYSkKK1JlZlB0cjxTdHls
ZVJ1bGVCYXNlPiBDU1NQYXJzZXI6OmNyZWF0ZUltcG9ydFJ1bGUoY29uc3QgQ1NTUGFyc2VyU3Ry
aW5nJiB1cmwsIFJlZlB0cjxNZWRpYVF1ZXJ5U2V0PiYmIG1lZGlhKQogewogICAgIGlmICghbWVk
aWEgfHwgIW1fYWxsb3dJbXBvcnRSdWxlcykgewogICAgICAgICBwb3BSdWxlRGF0YSgpOwpAQCAt
MTI4NjcsNyArMTI4NjcsNyBAQCBSZWZQdHI8U3R5bGVSdWxlQmFzZT4gQ1NTUGFyc2VyOjpjcmVh
dGVJCiAgICAgcmV0dXJuIHJ1bGU7CiB9CiAKLVJlZlB0cjxTdHlsZVJ1bGVCYXNlPiBDU1NQYXJz
ZXI6OmNyZWF0ZU1lZGlhUnVsZShQYXNzUmVmUHRyPE1lZGlhUXVlcnlTZXQ+IG1lZGlhLCBSdWxl
TGlzdCogcnVsZXMpCitSZWZQdHI8U3R5bGVSdWxlQmFzZT4gQ1NTUGFyc2VyOjpjcmVhdGVNZWRp
YVJ1bGUoUmVmUHRyPE1lZGlhUXVlcnlTZXQ+JiYgbWVkaWEsIFJ1bGVMaXN0KiBydWxlcykKIHsK
ICAgICBtX2FsbG93SW1wb3J0UnVsZXMgPSBtX2FsbG93TmFtZXNwYWNlRGVjbGFyYXRpb25zID0g
ZmFsc2U7CiAgICAgUmVmUHRyPFN0eWxlUnVsZU1lZGlhPiBydWxlOwpAQCAtMTI5NTIsNyArMTI5
NTIsNyBAQCB2b2lkIENTU1BhcnNlcjo6cHJvY2Vzc0FuZEFkZE5ld1J1bGVUb1NvCiAgICAgYWRk
TmV3UnVsZVRvU291cmNlVHJlZShydWxlLnJlbGVhc2UoKSk7CiB9CiAKLXZvaWQgQ1NTUGFyc2Vy
OjphZGROZXdSdWxlVG9Tb3VyY2VUcmVlKFBhc3NSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IHJ1
bGUpCit2b2lkIENTU1BhcnNlcjo6YWRkTmV3UnVsZVRvU291cmNlVHJlZShSZWZQdHI8Q1NTUnVs
ZVNvdXJjZURhdGE+JiYgcnVsZSkKIHsKICAgICAvLyBQcmVjb25kaXRpb246IChpc0V4dHJhY3Rp
bmdTb3VyY2VEYXRhKCkpLgogICAgIGlmICghbV9ydWxlU291cmNlRGF0YVJlc3VsdCkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmgJKHJldmlzaW9uIDIwMDk3NykKKysrIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDE0ICsxMjYsMTQgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBwYXJzZUZvbnRGYWNlVmFsdWUo
Y29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJz
ZVZhbGlkUHJpbWl0aXZlKENTU1ZhbHVlSUQgaWRlbnQsIFZhbHVlV2l0aENhbGN1bGF0aW9uJik7
CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIHBhcnNlRGVjbGFyYXRpb24oTXV0YWJsZVN0eWxl
UHJvcGVydGllcyosIGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+
LCBTdHlsZVNoZWV0Q29udGVudHMqIGNvbnRleHRTdHlsZVNoZWV0KTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBib29sIHBhcnNlRGVjbGFyYXRpb24oTXV0YWJsZVN0eWxlUHJvcGVydGllcyosIGNvbnN0
IFN0cmluZyYsIFJlZlB0cjxDU1NSdWxlU291cmNlRGF0YT4mJiwgU3R5bGVTaGVldENvbnRlbnRz
KiBjb250ZXh0U3R5bGVTaGVldCk7CiAgICAgc3RhdGljIFJlZjxJbW11dGFibGVTdHlsZVByb3Bl
cnRpZXM+IHBhcnNlSW5saW5lU3R5bGVEZWNsYXJhdGlvbihjb25zdCBTdHJpbmcmLCBFbGVtZW50
Kik7CiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUXVlcnk+IHBhcnNlTWVkaWFRdWVyeShjb25z
dCBTdHJpbmcmKTsKIAotICAgIHZvaWQgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlJRCwgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4sIGJvb2wgaW1wb3J0YW50LCBib29sIGltcGxpY2l0ID0gZmFsc2UpOwor
ICAgIHZvaWQgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlJRCwgUmVmUHRyPENTU1ZhbHVlPiYmLCBi
b29sIGltcG9ydGFudCwgYm9vbCBpbXBsaWNpdCA9IGZhbHNlKTsKICAgICB2b2lkIHJvbGxiYWNr
TGFzdFByb3BlcnRpZXMoaW50IG51bSk7CiAgICAgYm9vbCBoYXNQcm9wZXJ0aWVzKCkgY29uc3Qg
eyByZXR1cm4gIW1fcGFyc2VkUHJvcGVydGllcy5pc0VtcHR5KCk7IH0KLSAgICB2b2lkIGFkZEV4
cGFuZGVkUHJvcGVydHlGb3JWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgUGFzc1JlZlB0cjxD
U1NWYWx1ZT4sIGJvb2wpOworICAgIHZvaWQgYWRkRXhwYW5kZWRQcm9wZXJ0eUZvclZhbHVlKENT
U1Byb3BlcnR5SUQgcHJvcElkLCBSZWZQdHI8Q1NTVmFsdWU+JiYsIGJvb2wpOwogCiAgICAgYm9v
bCBwYXJzZVZhbHVlKENTU1Byb3BlcnR5SUQsIGJvb2wgaW1wb3J0YW50KTsKICAgICBib29sIHBh
cnNlU2hvcnRoYW5kKENTU1Byb3BlcnR5SUQsIGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQm
LCBib29sIGltcG9ydGFudCk7CkBAIC0xNTMsNyArMTUzLDcgQEAgcHVibGljOgogICAgICAgICBS
ZWZQdHI8Q1NTVmFsdWU+IGxlbmd0aDsKIAogICAgICAgICBTb3VyY2VTaXplKFNvdXJjZVNpemUm
Jik7Ci0gICAgICAgIFNvdXJjZVNpemUoc3RkOjp1bmlxdWVfcHRyPE1lZGlhUXVlcnlFeHA+JiYs
IFJlZlB0cjxDU1NWYWx1ZT4pOworICAgICAgICBTb3VyY2VTaXplKHN0ZDo6dW5pcXVlX3B0cjxN
ZWRpYVF1ZXJ5RXhwPiYmLCBSZWZQdHI8Q1NTVmFsdWU+JiYpOwogICAgIH07CiAgICAgVmVjdG9y
PFNvdXJjZVNpemU+IHBhcnNlU2l6ZXNBdHRyaWJ1dGUoU3RyaW5nVmlldyk7CiAgICAgU291cmNl
U2l6ZSBzb3VyY2VTaXplKHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVF1ZXJ5RXhwPiYmLCBDU1NQYXJz
ZXJWYWx1ZSYpOwpAQCAtMzMwLDcgKzMzMCw3IEBAIHB1YmxpYzoKICAgICBib29sIHBhcnNlVGV4
dEVtcGhhc2lzU3R5bGUoYm9vbCBpbXBvcnRhbnQpOwogICAgIGJvb2wgcGFyc2VUZXh0RW1waGFz
aXNQb3NpdGlvbihib29sIGltcG9ydGFudCk7CiAKLSAgICB2b2lkIGFkZFRleHREZWNvcmF0aW9u
UHJvcGVydHkoQ1NTUHJvcGVydHlJRCwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4sIGJvb2wgaW1wb3J0
YW50KTsKKyAgICB2b2lkIGFkZFRleHREZWNvcmF0aW9uUHJvcGVydHkoQ1NTUHJvcGVydHlJRCwg
UmVmUHRyPENTU1ZhbHVlPiYmLCBib29sIGltcG9ydGFudCk7CiAgICAgYm9vbCBwYXJzZVRleHRE
ZWNvcmF0aW9uKENTU1Byb3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCk7CiAgICAgYm9v
bCBwYXJzZVRleHREZWNvcmF0aW9uU2tpcChib29sIGltcG9ydGFudCk7CiAgICAgYm9vbCBwYXJz
ZVRleHRVbmRlcmxpbmVQb3NpdGlvbihib29sIGltcG9ydGFudCk7CkBAIC0zNTksMTIgKzM1OSwx
MiBAQCBwdWJsaWM6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8
Q1NTUGFyc2VyU2VsZWN0b3I+Pj4gY3JlYXRlU2VsZWN0b3JWZWN0b3IoKTsKICAgICB2b2lkIHJl
Y3ljbGVTZWxlY3RvclZlY3RvcihzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0
cjxDU1NQYXJzZXJTZWxlY3Rvcj4+Pik7CiAKLSAgICBSZWZQdHI8U3R5bGVSdWxlQmFzZT4gY3Jl
YXRlSW1wb3J0UnVsZShjb25zdCBDU1NQYXJzZXJTdHJpbmcmLCBQYXNzUmVmUHRyPE1lZGlhUXVl
cnlTZXQ+KTsKKyAgICBSZWZQdHI8U3R5bGVSdWxlQmFzZT4gY3JlYXRlSW1wb3J0UnVsZShjb25z
dCBDU1NQYXJzZXJTdHJpbmcmLCBSZWZQdHI8TWVkaWFRdWVyeVNldD4mJik7CiAgICAgUmVmUHRy
PFN0eWxlS2V5ZnJhbWU+IGNyZWF0ZUtleWZyYW1lKENTU1BhcnNlclZhbHVlTGlzdCYpOwogICAg
IFJlZlB0cjxTdHlsZVJ1bGVLZXlmcmFtZXM+IGNyZWF0ZUtleWZyYW1lc1J1bGUoY29uc3QgU3Ry
aW5nJiwgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxSZWZQdHI8U3R5bGVLZXlmcmFtZT4+Pik7CiAK
ICAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+IFJ1bGVMaXN0OwotICAg
IFJlZlB0cjxTdHlsZVJ1bGVCYXNlPiBjcmVhdGVNZWRpYVJ1bGUoUGFzc1JlZlB0cjxNZWRpYVF1
ZXJ5U2V0PiwgUnVsZUxpc3QqKTsKKyAgICBSZWZQdHI8U3R5bGVSdWxlQmFzZT4gY3JlYXRlTWVk
aWFSdWxlKFJlZlB0cjxNZWRpYVF1ZXJ5U2V0PiYmLCBSdWxlTGlzdCopOwogICAgIFJlZlB0cjxT
dHlsZVJ1bGVCYXNlPiBjcmVhdGVFbXB0eU1lZGlhUnVsZShSdWxlTGlzdCopOwogICAgIFJlZlB0
cjxTdHlsZVJ1bGVCYXNlPiBjcmVhdGVTdHlsZVJ1bGUoVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxD
U1NQYXJzZXJTZWxlY3Rvcj4+KiBzZWxlY3RvcnMpOwogICAgIFJlZlB0cjxTdHlsZVJ1bGVCYXNl
PiBjcmVhdGVGb250RmFjZVJ1bGUoKTsKQEAgLTQ0Niw3ICs0NDYsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBtYXJrUHJvcGVydHlTdGFydCgpOwogICAgIHZvaWQgbWFya1Byb3BlcnR5RW5kKGJvb2wg
aXNJbXBvcnRhbnRGb3VuZCwgYm9vbCBpc1Byb3BlcnR5UGFyc2VkKTsKICAgICB2b2lkIHByb2Nl
c3NBbmRBZGROZXdSdWxlVG9Tb3VyY2VUcmVlSWZOZWVkZWQoKTsKLSAgICB2b2lkIGFkZE5ld1J1
bGVUb1NvdXJjZVRyZWUoUGFzc1JlZlB0cjxDU1NSdWxlU291cmNlRGF0YT4pOworICAgIHZvaWQg
YWRkTmV3UnVsZVRvU291cmNlVHJlZShSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+JiYpOwogICAg
IFJlZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gcG9wUnVsZURhdGEoKTsKICAgICB2b2lkIHJlc2V0
UHJvcGVydHlSYW5nZSgpIHsgbV9wcm9wZXJ0eVJhbmdlLnN0YXJ0ID0gbV9wcm9wZXJ0eVJhbmdl
LmVuZCA9IFVJTlRfTUFYOyB9CiAgICAgYm9vbCBpc0V4dHJhY3RpbmdTb3VyY2VEYXRhKCkgY29u
c3QgeyByZXR1cm4gISFtX2N1cnJlbnRSdWxlRGF0YVN0YWNrOyB9CkBAIC01NzAsNyArNTcwLDcg
QEAgcHJpdmF0ZToKICAgICBQYXJzZVJlc3VsdCBwYXJzZVZhbHVlKE11dGFibGVTdHlsZVByb3Bl
cnRpZXMqLCBDU1NQcm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmLCBib29sIGltcG9ydGFudCwgU3R5
bGVTaGVldENvbnRlbnRzKiBjb250ZXh0U3R5bGVTaGVldCk7CiAgICAgUmVmPEltbXV0YWJsZVN0
eWxlUHJvcGVydGllcz4gcGFyc2VEZWNsYXJhdGlvbihjb25zdCBTdHJpbmcmLCBTdHlsZVNoZWV0
Q29udGVudHMqIGNvbnRleHRTdHlsZVNoZWV0KTsKIAotICAgIFJlZlB0cjxDU1NCYXNpY1NoYXBl
PiBwYXJzZUluc2V0Um91bmRlZENvcm5lcnMoUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlSW5zZXQ+
LCBDU1NQYXJzZXJWYWx1ZUxpc3QmKTsKKyAgICBSZWZQdHI8Q1NTQmFzaWNTaGFwZT4gcGFyc2VJ
bnNldFJvdW5kZWRDb3JuZXJzKFJlZlB0cjxDU1NCYXNpY1NoYXBlSW5zZXQ+JiYsIENTU1BhcnNl
clZhbHVlTGlzdCYpOwogCiAgICAgZW51bSBTaXplUGFyYW1ldGVyVHlwZSB7CiAgICAgICAgIE5v
bmUsCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>