<?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>102295</bug_id>
          
          <creation_ts>2012-11-14 16:07:05 -0800</creation_ts>
          <short_desc>Convert m_selectorVector back to a stack allocated m_reusableSelectorVector</short_desc>
          <delta_ts>2012-11-14 16:48:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>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="Tony Chang">tony</reporter>
          <assigned_to name="Tony Chang">tony</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>shanestephens</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>767410</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-14 16:07:05 -0800</bug_when>
    <thetext>Convert m_selectorVector back to a stack allocated m_reusableSelectorVector</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767413</commentid>
    <comment_count>1</comment_count>
      <attachid>174278</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-14 16:08:12 -0800</bug_when>
    <thetext>Created attachment 174278
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767427</commentid>
    <comment_count>2</comment_count>
      <attachid>174278</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-11-14 16:21:36 -0800</bug_when>
    <thetext>Comment on attachment 174278
Patch

LGTM, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767461</commentid>
    <comment_count>3</comment_count>
      <attachid>174278</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 16:48:38 -0800</bug_when>
    <thetext>Comment on attachment 174278
Patch

Clearing flags on attachment: 174278

Committed r134693: &lt;http://trac.webkit.org/changeset/134693&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767462</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 16:48:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174278</attachid>
            <date>2012-11-14 16:08:12 -0800</date>
            <delta_ts>2012-11-14 16:48:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102295-20121114160611.patch</filename>
            <type>text/plain</type>
            <size>31446</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzhjMTcyOTU5NThjMTU1
MjEwYjM5Y2MyMmJmOTJhYjY4Yzg0NjMxNC4uYjQ0MTZhZDRlM2Q2ODJlYWNmZDMwOTI5OTVhZDZj
NjEzNjgyOGYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTExLTE0ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29udmVydCBtX3NlbGVjdG9y
VmVjdG9yIGJhY2sgdG8gYSBzdGFjayBhbGxvY2F0ZWQgbV9yZXVzYWJsZVNlbGVjdG9yVmVjdG9y
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIyOTUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXZlcnQg
cjEyNTI1MiBiZWNhdXNlIHdlJ3JlIG5vdCBnb2luZyB0byBnbyBmb3J3YXJkIHdpdGggaW1wbGVt
ZW50aW5nIENTUyBoaWVyYXJjaGllcyBhdCB0aGlzIHRpbWUuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIGJlY2F1c2UgdGhlcmUgc2hvdWxkIGJlIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAg
ICAgICAqIGNzcy9DU1NHcmFtbWFyLnkuaW46CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OkNTU1BhcnNlcik6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
OjpwYXJzZUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VEZWNsYXJh
dGlvbik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbHRlclByb3Bl
cnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVTdHlsZVByb3BlcnR5
U2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6YWRkUHJvcGVydHkpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpyb2xsYmFja0xhc3RQcm9wZXJ0aWVzKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1BhcnNlcjo6Y2xlYXJQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1BhcnNlcjo6cGFyc2U0VmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6
cGFyc2VGbG93VGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6YWRkVGV4dERl
Y29yYXRpb25Qcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZUZs
b2F0aW5nU2VsZWN0b3JWZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpzaW5r
RmxvYXRpbmdTZWxlY3RvclZlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNy
ZWF0ZVN0eWxlUnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZUZvbnRG
YWNlUnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZVBhZ2VSdWxlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6c2V0UmV1c2FibGVSZWdpb25TZWxlY3RvclZl
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnN0YXJ0RGVjbGFyYXRpb25zRm9y
TWFyZ2luQm94KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6ZW5kRGVjbGFyYXRpb25z
Rm9yTWFyZ2luQm94KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6ZGVsZXRlRm9udEZh
Y2VPbmx5VmFsdWVzKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXI6Omhhc1Byb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyOjpyZXVzYWJsZVNlbGVjdG9yVmVjdG9yKToKKyAgICAgICAgKENTU1BhcnNlcik6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnJldXNhYmxlUmVnaW9uU2VsZWN0b3JWZWN0b3IpOgor
ICAgICAgICAqIGNzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyU2VsZWN0b3I6OmFkb3B0U2VsZWN0b3JWZWN0b3IpOgorICAgICAgICAqIGNzcy9DU1NQ
YXJzZXJWYWx1ZXMuaDoKKyAgICAgICAgKENTU1BhcnNlclNlbGVjdG9yKToKKyAgICAgICAgKiBj
c3MvQ1NTU2VsZWN0b3JMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yTGlz
dDo6YWRvcHRTZWxlY3RvclZlY3Rvcik6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yTGlzdC5o
OgorICAgICAgICAoQ1NTU2VsZWN0b3JMaXN0KToKKyAgICAgICAgKiBjc3MvU1ZHQ1NTUGFyc2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VTVkdWYWx1ZSk6CisgICAg
ICAgICogY3NzL1N0eWxlUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVSZWdp
b246OlN0eWxlUnVsZVJlZ2lvbik6CisgICAgICAgICogY3NzL1N0eWxlUnVsZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSdWxlOjpwYXJzZXJBZG9wdFNlbGVjdG9yVmVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUnVsZVBhZ2U6OnBhcnNlckFkb3B0U2VsZWN0b3JWZWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlUmVnaW9uOjpjcmVhdGUpOgorICAgICAgICAoU3R5
bGVSdWxlUmVnaW9uKToKKwogMjAxMi0xMS0xNCAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxs
YXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbUXRdIFVzZSBhIG5vZGUgaW1hZ2UgaWYgdGhlcmUg
aXMgbm8gZHJhZyBpbWFnZSBzZXQgZm9yIERyYWcmRHJvcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFy
LnkuaW4KaW5kZXggOWVlZGNjMzk0ODVjNTRmYzNkMTcwY2RlODFiODlmZTdjOTE5MWE0Zi4uMjFi
MDE2MTM1YmE1OGU0ZTIwNGVmNzY5YTE5N2YwYjg3MTRiNmU5NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
R3JhbW1hci55LmluCkBAIC0zNiw3ICszNiw3IEBACiAgICAgU3R5bGVSdWxlQmFzZSogcnVsZTsK
ICAgICBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+ID4qIHJ1bGVMaXN0OwogICAgIENTU1Bh
cnNlclNlbGVjdG9yKiBzZWxlY3RvcjsKLSAgICBDU1NTZWxlY3RvclZlY3Rvciogc2VsZWN0b3JM
aXN0OworICAgIFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+ID4qIHNlbGVjdG9yTGlz
dDsKICAgICBDU1NTZWxlY3Rvcjo6TWFyZ2luQm94VHlwZSBtYXJnaW5Cb3g7CiAgICAgQ1NTU2Vs
ZWN0b3I6OlJlbGF0aW9uIHJlbGF0aW9uOwogICAgIE1lZGlhUXVlcnlTZXQqIG1lZGlhTGlzdDsK
QEAgLTMyNCw5ICszMjQsOSBAQCB3ZWJraXRfdmFsdWU6CiAgICAgV0VCS0lUX1ZBTFVFX1NZTSAn
eycgbWF5YmVfc3BhY2UgZXhwciAnfScgewogICAgICAgICBpZiAoJDQpIHsKICAgICAgICAgICAg
IHBhcnNlci0+bV92YWx1ZUxpc3QgPSBwYXJzZXItPnNpbmtGbG9hdGluZ1ZhbHVlTGlzdCgkNCk7
Ci0gICAgICAgICAgICBpbnQgb2xkUGFyc2VkUHJvcGVydGllcyA9IHBhcnNlci0+bV9wYXJzZWRQ
cm9wZXJ0aWVzLT5zaXplKCk7CisgICAgICAgICAgICBpbnQgb2xkUGFyc2VkUHJvcGVydGllcyA9
IHBhcnNlci0+bV9wYXJzZWRQcm9wZXJ0aWVzLnNpemUoKTsKICAgICAgICAgICAgIGlmICghcGFy
c2VyLT5wYXJzZVZhbHVlKHBhcnNlci0+bV9pZCwgcGFyc2VyLT5tX2ltcG9ydGFudCkpCi0gICAg
ICAgICAgICAgICAgcGFyc2VyLT5yb2xsYmFja0xhc3RQcm9wZXJ0aWVzKHBhcnNlci0+bV9wYXJz
ZWRQcm9wZXJ0aWVzLT5zaXplKCkgLSBvbGRQYXJzZWRQcm9wZXJ0aWVzKTsKKyAgICAgICAgICAg
ICAgICBwYXJzZXItPnJvbGxiYWNrTGFzdFByb3BlcnRpZXMocGFyc2VyLT5tX3BhcnNlZFByb3Bl
cnRpZXMuc2l6ZSgpIC0gb2xkUGFyc2VkUHJvcGVydGllcyk7CiAgICAgICAgICAgICBwYXJzZXIt
Pm1fdmFsdWVMaXN0ID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KQEAgLTEwMzgsNyArMTAz
OCw3IEBAIHJ1bGVzZXQ6CiBzZWxlY3Rvcl9saXN0OgogICAgIHNlbGVjdG9yICVwcmVjIFVOSU1Q
T1JUQU5UX1RPSyB7CiAgICAgICAgIGlmICgkMSkgewotICAgICAgICAgICAgJCQgPSBwYXJzZXIt
PnNlbGVjdG9yVmVjdG9yKCk7CisgICAgICAgICAgICAkJCA9IHBhcnNlci0+cmV1c2FibGVTZWxl
Y3RvclZlY3RvcigpOwogICAgICAgICAgICAgJCQtPnNocmluaygwKTsKICAgICAgICAgICAgICQk
LT5hcHBlbmQocGFyc2VyLT5zaW5rRmxvYXRpbmdTZWxlY3RvcigkMSkpOwogICAgICAgICAgICAg
cGFyc2VyLT51cGRhdGVMYXN0U2VsZWN0b3JMaW5lQW5kUG9zaXRpb24oKTsKQEAgLTEzNzUsNyAr
MTM3NSw3IEBAIHBzZXVkbzoKICAgICAgICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVGbG9hdGlu
Z1NlbGVjdG9yKCk7CiAgICAgICAgICAgICAkJC0+c2V0TWF0Y2goQ1NTU2VsZWN0b3I6OlBzZXVk
b0NsYXNzKTsKIAotICAgICAgICAgICAgQ1NTU2VsZWN0b3JWZWN0b3Igc2VsZWN0b3JWZWN0b3I7
CisgICAgICAgICAgICBWZWN0b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiA+IHNlbGVjdG9y
VmVjdG9yOwogICAgICAgICAgICAgc2VsZWN0b3JWZWN0b3IuYXBwZW5kKHBhcnNlci0+c2lua0Zs
b2F0aW5nU2VsZWN0b3IoJDQpKTsKICAgICAgICAgICAgICQkLT5hZG9wdFNlbGVjdG9yVmVjdG9y
KHNlbGVjdG9yVmVjdG9yKTsKIApAQCAtMTQ2MSwxMCArMTQ2MSwxMCBAQCBkZWNsYXJhdGlvbjoK
ICAgICAgICAgYm9vbCBpc1Byb3BlcnR5UGFyc2VkID0gZmFsc2U7CiAgICAgICAgIGlmICgkMSAm
JiAkNCkgewogICAgICAgICAgICAgcGFyc2VyLT5tX3ZhbHVlTGlzdCA9IHBhcnNlci0+c2lua0Zs
b2F0aW5nVmFsdWVMaXN0KCQ0KTsKLSAgICAgICAgICAgIGludCBvbGRQYXJzZWRQcm9wZXJ0aWVz
ID0gcGFyc2VyLT5tX3BhcnNlZFByb3BlcnRpZXMtPnNpemUoKTsKKyAgICAgICAgICAgIGludCBv
bGRQYXJzZWRQcm9wZXJ0aWVzID0gcGFyc2VyLT5tX3BhcnNlZFByb3BlcnRpZXMuc2l6ZSgpOwog
ICAgICAgICAgICAgJCQgPSBwYXJzZXItPnBhcnNlVmFsdWUoc3RhdGljX2Nhc3Q8Q1NTUHJvcGVy
dHlJRD4oJDEpLCAkNSk7CiAgICAgICAgICAgICBpZiAoISQkKQotICAgICAgICAgICAgICAgIHBh
cnNlci0+cm9sbGJhY2tMYXN0UHJvcGVydGllcyhwYXJzZXItPm1fcGFyc2VkUHJvcGVydGllcy0+
c2l6ZSgpIC0gb2xkUGFyc2VkUHJvcGVydGllcyk7CisgICAgICAgICAgICAgICAgcGFyc2VyLT5y
b2xsYmFja0xhc3RQcm9wZXJ0aWVzKHBhcnNlci0+bV9wYXJzZWRQcm9wZXJ0aWVzLnNpemUoKSAt
IG9sZFBhcnNlZFByb3BlcnRpZXMpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
IGlzUHJvcGVydHlQYXJzZWQgPSB0cnVlOwogICAgICAgICAgICAgcGFyc2VyLT5tX3ZhbHVlTGlz
dCA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGMxMjliZDliMDVmNGE4
YjM1MTI0NDA0OGZhNjFhMTQwMmY1N2ViOWQuLjA2ZWY1NDM4NWE3ZWRlNzRjZWFiYTZiMDc4MTJi
YmE1ZmE4MjEyMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0yNDgsNyArMjQ4LDYg
QEAgQ1NTUGFyc2VyOjpDU1NQYXJzZXIoY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCkK
ICAgICAsIG1faW1wb3J0YW50KGZhbHNlKQogICAgICwgbV9pZChDU1NQcm9wZXJ0eUludmFsaWQp
CiAgICAgLCBtX3N0eWxlU2hlZXQoMCkKLSAgICAsIG1fcGFyc2VkUHJvcGVydGllcyhhZG9wdFB0
cihuZXcgUGFyc2VkUHJvcGVydHlWZWN0b3IpKQogICAgICwgbV9zZWxlY3Rvckxpc3RGb3JQYXJz
ZVNlbGVjdG9yKDApCiAgICAgLCBtX251bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3go
SU5WQUxJRF9OVU1fUEFSU0VEX1BST1BFUlRJRVMpCiAgICAgLCBtX2luUGFyc2VTaG9ydGhhbmQo
MCkKQEAgLTI3Myw3ICsyNzIsNiBAQCBDU1NQYXJzZXI6OkNTU1BhcnNlcihjb25zdCBDU1NQYXJz
ZXJDb250ZXh0JiBjb250ZXh0KQogI2lmIEVOQUJMRShDU1NfREVWSUNFX0FEQVBUQVRJT04pCiAg
ICAgLCBtX2luVmlld3BvcnQoZmFsc2UpCiAjZW5kaWYKLSAgICAsIG1fc2VsZWN0b3JWZWN0b3Io
YWRvcHRQdHIobmV3IENTU1NlbGVjdG9yVmVjdG9yKSkKIHsKICNpZiBZWURFQlVHID4gMAogICAg
IGNzc3l5ZGVidWcgPSAxOwpAQCAtMTIzMSw5ICsxMjI5LDkgQEAgYm9vbCBDU1NQYXJzZXI6OnBh
cnNlVmFsdWUoU3R5bGVQcm9wZXJ0eVNldCogZGVjbGFyYXRpb24sIENTU1Byb3BlcnR5SUQgcHJv
cGVydHkKICAgICBib29sIG9rID0gZmFsc2U7CiAgICAgaWYgKG1faGFzRm9udEZhY2VPbmx5VmFs
dWVzKQogICAgICAgICBkZWxldGVGb250RmFjZU9ubHlWYWx1ZXMoKTsKLSAgICBpZiAoIW1fcGFy
c2VkUHJvcGVydGllcy0+aXNFbXB0eSgpKSB7CisgICAgaWYgKCFtX3BhcnNlZFByb3BlcnRpZXMu
aXNFbXB0eSgpKSB7CiAgICAgICAgIG9rID0gdHJ1ZTsKLSAgICAgICAgZGVjbGFyYXRpb24tPmFk
ZFBhcnNlZFByb3BlcnRpZXMoKm1fcGFyc2VkUHJvcGVydGllcyk7CisgICAgICAgIGRlY2xhcmF0
aW9uLT5hZGRQYXJzZWRQcm9wZXJ0aWVzKG1fcGFyc2VkUHJvcGVydGllcyk7CiAgICAgICAgIGNs
ZWFyUHJvcGVydGllcygpOwogICAgIH0KIApAQCAtMTI1NCw3ICsxMjUyLDcgQEAgYm9vbCBDU1NQ
YXJzZXI6OnBhcnNlQ29sb3IoUkdCQTMyJiBjb2xvciwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGJv
b2wgc3RyaWN0KQogICAgIGlmICghcGFyc2VyLnBhcnNlQ29sb3Ioc3RyaW5nKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgQ1NTVmFsdWUqIHZhbHVlID0gcGFyc2VyLm1fcGFyc2VkUHJv
cGVydGllcy0+Zmlyc3QoKS52YWx1ZSgpOworICAgIENTU1ZhbHVlKiB2YWx1ZSA9IHBhcnNlci5t
X3BhcnNlZFByb3BlcnRpZXMuZmlyc3QoKS52YWx1ZSgpOwogICAgIGlmICghdmFsdWUtPmlzUHJp
bWl0aXZlVmFsdWUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xMjcyLDcgKzEyNzAs
NyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VDb2xvcihjb25zdCBTdHJpbmcmIHN0cmluZykKICAg
ICBjc3N5eXBhcnNlKHRoaXMpOwogICAgIG1fcnVsZSA9IDA7CiAKLSAgICByZXR1cm4gIW1fcGFy
c2VkUHJvcGVydGllcy0+aXNFbXB0eSgpICYmIG1fcGFyc2VkUHJvcGVydGllcy0+Zmlyc3QoKS5p
ZCgpID09IENTU1Byb3BlcnR5Q29sb3I7CisgICAgcmV0dXJuICFtX3BhcnNlZFByb3BlcnRpZXMu
aXNFbXB0eSgpICYmIG1fcGFyc2VkUHJvcGVydGllcy5maXJzdCgpLmlkKCkgPT0gQ1NTUHJvcGVy
dHlDb2xvcjsKIH0KIAogYm9vbCBDU1NQYXJzZXI6OnBhcnNlU3lzdGVtQ29sb3IoUkdCQTMyJiBj
b2xvciwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIERvY3VtZW50KiBkb2N1bWVudCkKQEAgLTEzNDUs
OSArMTM0Myw5IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZURlY2xhcmF0aW9uKFN0eWxlUHJvcGVy
dHlTZXQqIGRlY2xhcmF0aW9uLCBjb25zdCBTdHJpbmcmIHN0CiAgICAgYm9vbCBvayA9IGZhbHNl
OwogICAgIGlmIChtX2hhc0ZvbnRGYWNlT25seVZhbHVlcykKICAgICAgICAgZGVsZXRlRm9udEZh
Y2VPbmx5VmFsdWVzKCk7Ci0gICAgaWYgKCFtX3BhcnNlZFByb3BlcnRpZXMtPmlzRW1wdHkoKSkg
eworICAgIGlmICghbV9wYXJzZWRQcm9wZXJ0aWVzLmlzRW1wdHkoKSkgewogICAgICAgICBvayA9
IHRydWU7Ci0gICAgICAgIGRlY2xhcmF0aW9uLT5hZGRQYXJzZWRQcm9wZXJ0aWVzKCptX3BhcnNl
ZFByb3BlcnRpZXMpOworICAgICAgICBkZWNsYXJhdGlvbi0+YWRkUGFyc2VkUHJvcGVydGllcyht
X3BhcnNlZFByb3BlcnRpZXMpOwogICAgICAgICBjbGVhclByb3BlcnRpZXMoKTsKICAgICB9CiAK
QEAgLTEzODQsMTQgKzEzODIsMTQgQEAgUGFzc093blB0cjxNZWRpYVF1ZXJ5PiBDU1NQYXJzZXI6
OnBhcnNlTWVkaWFRdWVyeShjb25zdCBTdHJpbmcmIHN0cmluZykKIH0KIAogI2lmIEVOQUJMRShD
U1NfVkFSSUFCTEVTKQotc3RhdGljIGlubGluZSB2b2lkIGZpbHRlclByb3BlcnRpZXMoYm9vbCBp
bXBvcnRhbnQsIGNvbnN0IENTU1BhcnNlcjo6UGFyc2VkUHJvcGVydHlWZWN0b3IqIGlucHV0LCBW
ZWN0b3I8Q1NTUHJvcGVydHksIDI1Nj4mIG91dHB1dCwgc2l6ZV90JiB1bnVzZWRFbnRyaWVzLCBC
aXRBcnJheTxudW1DU1NQcm9wZXJ0aWVzPiYgc2VlblByb3BlcnRpZXMsIEhhc2hTZXQ8QXRvbWlj
U3RyaW5nPiYgc2VlblZhcmlhYmxlcykKK3N0YXRpYyBpbmxpbmUgdm9pZCBmaWx0ZXJQcm9wZXJ0
aWVzKGJvb2wgaW1wb3J0YW50LCBjb25zdCBDU1NQYXJzZXI6OlBhcnNlZFByb3BlcnR5VmVjdG9y
JiBpbnB1dCwgVmVjdG9yPENTU1Byb3BlcnR5LCAyNTY+JiBvdXRwdXQsIHNpemVfdCYgdW51c2Vk
RW50cmllcywgQml0QXJyYXk8bnVtQ1NTUHJvcGVydGllcz4mIHNlZW5Qcm9wZXJ0aWVzLCBIYXNo
U2V0PEF0b21pY1N0cmluZz4mIHNlZW5WYXJpYWJsZXMpCiAjZWxzZQotc3RhdGljIGlubGluZSB2
b2lkIGZpbHRlclByb3BlcnRpZXMoYm9vbCBpbXBvcnRhbnQsIGNvbnN0IENTU1BhcnNlcjo6UGFy
c2VkUHJvcGVydHlWZWN0b3IqIGlucHV0LCBWZWN0b3I8Q1NTUHJvcGVydHksIDI1Nj4mIG91dHB1
dCwgc2l6ZV90JiB1bnVzZWRFbnRyaWVzLCBCaXRBcnJheTxudW1DU1NQcm9wZXJ0aWVzPiYgc2Vl
blByb3BlcnRpZXMpCitzdGF0aWMgaW5saW5lIHZvaWQgZmlsdGVyUHJvcGVydGllcyhib29sIGlt
cG9ydGFudCwgY29uc3QgQ1NTUGFyc2VyOjpQYXJzZWRQcm9wZXJ0eVZlY3RvciYgaW5wdXQsIFZl
Y3RvcjxDU1NQcm9wZXJ0eSwgMjU2PiYgb3V0cHV0LCBzaXplX3QmIHVudXNlZEVudHJpZXMsIEJp
dEFycmF5PG51bUNTU1Byb3BlcnRpZXM+JiBzZWVuUHJvcGVydGllcykKICNlbmRpZgogewogICAg
IC8vIEFkZCBwcm9wZXJ0aWVzIGluIHJldmVyc2Ugb3JkZXIgc28gdGhhdCBoaWdoZXN0IHByaW9y
aXR5IGRlZmluaXRpb25zIGFyZSByZWFjaGVkIGZpcnN0LiBEdXBsaWNhdGUgZGVmaW5pdGlvbnMg
Y2FuIHRoZW4gYmUgaWdub3JlZCB3aGVuIGZvdW5kLgotICAgIGZvciAoaW50IGkgPSBpbnB1dC0+
c2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKLSAgICAgICAgY29uc3QgQ1NTUHJvcGVydHkmIHBy
b3BlcnR5ID0gaW5wdXQtPmF0KGkpOworICAgIGZvciAoaW50IGkgPSBpbnB1dC5zaXplKCkgLSAx
OyBpID49IDA7IC0taSkgeworICAgICAgICBjb25zdCBDU1NQcm9wZXJ0eSYgcHJvcGVydHkgPSBp
bnB1dFtpXTsKICAgICAgICAgaWYgKHByb3BlcnR5LmlzSW1wb3J0YW50KCkgIT0gaW1wb3J0YW50
KQogICAgICAgICAgICAgY29udGludWU7CiAjaWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCkBAIC0x
NDE1LDE3ICsxNDEzLDE3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBmaWx0ZXJQcm9wZXJ0aWVzKGJv
b2wgaW1wb3J0YW50LCBjb25zdCBDU1NQYXJzZXI6OlBhcnNlZFByb3BlCiBQYXNzUmVmUHRyPFN0
eWxlUHJvcGVydHlTZXQ+IENTU1BhcnNlcjo6Y3JlYXRlU3R5bGVQcm9wZXJ0eVNldCgpCiB7CiAg
ICAgQml0QXJyYXk8bnVtQ1NTUHJvcGVydGllcz4gc2VlblByb3BlcnRpZXM7Ci0gICAgc2l6ZV90
IHVudXNlZEVudHJpZXMgPSBtX3BhcnNlZFByb3BlcnRpZXMtPnNpemUoKTsKKyAgICBzaXplX3Qg
dW51c2VkRW50cmllcyA9IG1fcGFyc2VkUHJvcGVydGllcy5zaXplKCk7CiAgICAgVmVjdG9yPENT
U1Byb3BlcnR5LCAyNTY+IHJlc3VsdHModW51c2VkRW50cmllcyk7CiAKICAgICAvLyBJbXBvcnRh
bnQgcHJvcGVydGllcyBoYXZlIGhpZ2hlciBwcmlvcml0eSwgc28gYWRkIHRoZW0gZmlyc3QuIER1
cGxpY2F0ZSBkZWZpbml0aW9ucyBjYW4gdGhlbiBiZSBpZ25vcmVkIHdoZW4gZm91bmQuCiAjaWYg
RU5BQkxFKENTU19WQVJJQUJMRVMpCiAgICAgSGFzaFNldDxBdG9taWNTdHJpbmc+IHNlZW5WYXJp
YWJsZXM7Ci0gICAgZmlsdGVyUHJvcGVydGllcyh0cnVlLCBtX3BhcnNlZFByb3BlcnRpZXMuZ2V0
KCksIHJlc3VsdHMsIHVudXNlZEVudHJpZXMsIHNlZW5Qcm9wZXJ0aWVzLCBzZWVuVmFyaWFibGVz
KTsKLSAgICBmaWx0ZXJQcm9wZXJ0aWVzKGZhbHNlLCBtX3BhcnNlZFByb3BlcnRpZXMuZ2V0KCks
IHJlc3VsdHMsIHVudXNlZEVudHJpZXMsIHNlZW5Qcm9wZXJ0aWVzLCBzZWVuVmFyaWFibGVzKTsK
KyAgICBmaWx0ZXJQcm9wZXJ0aWVzKHRydWUsIG1fcGFyc2VkUHJvcGVydGllcywgcmVzdWx0cywg
dW51c2VkRW50cmllcywgc2VlblByb3BlcnRpZXMsIHNlZW5WYXJpYWJsZXMpOworICAgIGZpbHRl
clByb3BlcnRpZXMoZmFsc2UsIG1fcGFyc2VkUHJvcGVydGllcywgcmVzdWx0cywgdW51c2VkRW50
cmllcywgc2VlblByb3BlcnRpZXMsIHNlZW5WYXJpYWJsZXMpOwogI2Vsc2UKLSAgICBmaWx0ZXJQ
cm9wZXJ0aWVzKHRydWUsIG1fcGFyc2VkUHJvcGVydGllcy5nZXQoKSwgcmVzdWx0cywgdW51c2Vk
RW50cmllcywgc2VlblByb3BlcnRpZXMpOwotICAgIGZpbHRlclByb3BlcnRpZXMoZmFsc2UsIG1f
cGFyc2VkUHJvcGVydGllcy5nZXQoKSwgcmVzdWx0cywgdW51c2VkRW50cmllcywgc2VlblByb3Bl
cnRpZXMpOworICAgIGZpbHRlclByb3BlcnRpZXModHJ1ZSwgbV9wYXJzZWRQcm9wZXJ0aWVzLCBy
ZXN1bHRzLCB1bnVzZWRFbnRyaWVzLCBzZWVuUHJvcGVydGllcyk7CisgICAgZmlsdGVyUHJvcGVy
dGllcyhmYWxzZSwgbV9wYXJzZWRQcm9wZXJ0aWVzLCByZXN1bHRzLCB1bnVzZWRFbnRyaWVzLCBz
ZWVuUHJvcGVydGllcyk7CiAjZW5kaWYKICAgICBpZiAodW51c2VkRW50cmllcykKICAgICAgICAg
cmVzdWx0cy5yZW1vdmUoMCwgdW51c2VkRW50cmllcyk7CkBAIC0xNDM1LDE5ICsxNDMzLDE5IEBA
IFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gQ1NTUGFyc2VyOjpjcmVhdGVTdHlsZVByb3Bl
cnR5U2V0KCkKIAogdm9pZCBDU1NQYXJzZXI6OmFkZFByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJv
cElkLCBQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQsIGJvb2wgaW1w
bGljaXQpCiB7Ci0gICAgbV9wYXJzZWRQcm9wZXJ0aWVzLT5hcHBlbmQoQ1NTUHJvcGVydHkocHJv
cElkLCB2YWx1ZSwgaW1wb3J0YW50LCBtX2N1cnJlbnRTaG9ydGhhbmQsIG1faW1wbGljaXRTaG9y
dGhhbmQgfHwgaW1wbGljaXQpKTsKKyAgICBtX3BhcnNlZFByb3BlcnRpZXMuYXBwZW5kKENTU1By
b3BlcnR5KHByb3BJZCwgdmFsdWUsIGltcG9ydGFudCwgbV9jdXJyZW50U2hvcnRoYW5kLCBtX2lt
cGxpY2l0U2hvcnRoYW5kIHx8IGltcGxpY2l0KSk7CiB9CiAKIHZvaWQgQ1NTUGFyc2VyOjpyb2xs
YmFja0xhc3RQcm9wZXJ0aWVzKGludCBudW0pCiB7CiAgICAgQVNTRVJUKG51bSA+PSAwKTsKLSAg
ICBBU1NFUlQobV9wYXJzZWRQcm9wZXJ0aWVzLT5zaXplKCkgPj0gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KG51bSkpOwotICAgIG1fcGFyc2VkUHJvcGVydGllcy0+c2hyaW5rKG1fcGFyc2VkUHJvcGVy
dGllcy0+c2l6ZSgpIC0gbnVtKTsKKyAgICBBU1NFUlQobV9wYXJzZWRQcm9wZXJ0aWVzLnNpemUo
KSA+PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obnVtKSk7CisgICAgbV9wYXJzZWRQcm9wZXJ0aWVz
LnNocmluayhtX3BhcnNlZFByb3BlcnRpZXMuc2l6ZSgpIC0gbnVtKTsKIH0KIAogdm9pZCBDU1NQ
YXJzZXI6OmNsZWFyUHJvcGVydGllcygpCiB7Ci0gICAgbV9wYXJzZWRQcm9wZXJ0aWVzLT5jbGVh
cigpOworICAgIG1fcGFyc2VkUHJvcGVydGllcy5jbGVhcigpOwogICAgIG1fbnVtUGFyc2VkUHJv
cGVydGllc0JlZm9yZU1hcmdpbkJveCA9IElOVkFMSURfTlVNX1BBUlNFRF9QUk9QRVJUSUVTOwog
ICAgIG1faGFzRm9udEZhY2VPbmx5VmFsdWVzID0gZmFsc2U7CiB9CkBAIC0xNzgxLDcgKzE3Nzks
NyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9v
bCBpbXBvcnRhbnQpCiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZVdlYmtpdFBhZ2VkWCB8fCBp
ZCA9PSBDU1NWYWx1ZVdlYmtpdFBhZ2VkWSkKICAgICAgICAgICAgIG92ZXJmbG93WFZhbHVlID0g
Y3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQXV0byk7CiAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIG92ZXJmbG93WFZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0aWVz
LT5sYXN0KCkudmFsdWUoKTsKKyAgICAgICAgICAgIG92ZXJmbG93WFZhbHVlID0gbV9wYXJzZWRQ
cm9wZXJ0aWVzLmxhc3QoKS52YWx1ZSgpOwogICAgICAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0
eU92ZXJmbG93WCwgb3ZlcmZsb3dYVmFsdWUucmVsZWFzZSgpLCBpbXBvcnRhbnQpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0xODA0LDcgKzE4MDIsNyBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAg
ICAgICAgICBTaG9ydGhhbmRTY29wZSBzY29wZSh0aGlzLCBDU1NQcm9wZXJ0eUJvcmRlclNwYWNp
bmcpOwogICAgICAgICAgICAgaWYgKCFwYXJzZVZhbHVlKENTU1Byb3BlcnR5V2Via2l0Qm9yZGVy
SG9yaXpvbnRhbFNwYWNpbmcsIGltcG9ydGFudCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICAgICAgQ1NTVmFsdWUqIHZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0aWVzLT5s
YXN0KCkudmFsdWUoKTsKKyAgICAgICAgICAgIENTU1ZhbHVlKiB2YWx1ZSA9IG1fcGFyc2VkUHJv
cGVydGllcy5sYXN0KCkudmFsdWUoKTsKICAgICAgICAgICAgIGFkZFByb3BlcnR5KENTU1Byb3Bl
cnR5V2Via2l0Qm9yZGVyVmVydGljYWxTcGFjaW5nLCB2YWx1ZSwgaW1wb3J0YW50KTsKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CkBAIC0yNDUzLDcgKzI0NTEsNyBAQCBib29s
IENTU1BhcnNlcjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRh
bnQpCiAgICAgICAgICAgICBTaG9ydGhhbmRTY29wZSBzY29wZSh0aGlzLCBDU1NQcm9wZXJ0eVdl
YmtpdE1hcmdpbkNvbGxhcHNlKTsKICAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZSh3ZWJraXRN
YXJnaW5Db2xsYXBzZVNob3J0aGFuZCgpLnByb3BlcnRpZXMoKVswXSwgaW1wb3J0YW50KSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBDU1NWYWx1ZSogdmFsdWUg
PSBtX3BhcnNlZFByb3BlcnRpZXMtPmxhc3QoKS52YWx1ZSgpOworICAgICAgICAgICAgQ1NTVmFs
dWUqIHZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0aWVzLmxhc3QoKS52YWx1ZSgpOwogICAgICAgICAg
ICAgYWRkUHJvcGVydHkod2Via2l0TWFyZ2luQ29sbGFwc2VTaG9ydGhhbmQoKS5wcm9wZXJ0aWVz
KClbMV0sIHZhbHVlLCBpbXBvcnRhbnQpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KQEAgLTMyOTUsNyArMzI5Myw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZTRWYWx1ZXMo
Q1NTUHJvcGVydHlJRCBwcm9wSWQsIGNvbnN0IENTU1Byb3BlcnR5SUQgKnByb3BlcnRpCiAgICAg
ICAgIGNhc2UgMTogewogICAgICAgICAgICAgaWYgKCFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMF0s
IGltcG9ydGFudCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAg
Q1NTVmFsdWUqIHZhbHVlID0gbV9wYXJzZWRQcm9wZXJ0aWVzLT5sYXN0KCkudmFsdWUoKTsKKyAg
ICAgICAgICAgIENTU1ZhbHVlKiB2YWx1ZSA9IG1fcGFyc2VkUHJvcGVydGllcy5sYXN0KCkudmFs
dWUoKTsKICAgICAgICAgICAgIEltcGxpY2l0U2NvcGUgaW1wbGljaXRTY29wZSh0aGlzLCBQcm9w
ZXJ0eUltcGxpY2l0KTsKICAgICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BlcnRpZXNbMV0sIHZh
bHVlLCBpbXBvcnRhbnQpOwogICAgICAgICAgICAgYWRkUHJvcGVydHkocHJvcGVydGllc1syXSwg
dmFsdWUsIGltcG9ydGFudCk7CkBAIC0zMzA1LDE3ICszMzAzLDE3IEBAIGJvb2wgQ1NTUGFyc2Vy
OjpwYXJzZTRWYWx1ZXMoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGNvbnN0IENTU1Byb3BlcnR5SUQg
KnByb3BlcnRpCiAgICAgICAgIGNhc2UgMjogewogICAgICAgICAgICAgaWYgKCFwYXJzZVZhbHVl
KHByb3BlcnRpZXNbMF0sIGltcG9ydGFudCkgfHwgIXBhcnNlVmFsdWUocHJvcGVydGllc1sxXSwg
aW1wb3J0YW50KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBD
U1NWYWx1ZSogdmFsdWUgPSBtX3BhcnNlZFByb3BlcnRpZXMtPmF0KG1fcGFyc2VkUHJvcGVydGll
cy0+c2l6ZSgpIC0gMikudmFsdWUoKTsKKyAgICAgICAgICAgIENTU1ZhbHVlKiB2YWx1ZSA9IG1f
cGFyc2VkUHJvcGVydGllc1ttX3BhcnNlZFByb3BlcnRpZXMuc2l6ZSgpIC0gMl0udmFsdWUoKTsK
ICAgICAgICAgICAgIEltcGxpY2l0U2NvcGUgaW1wbGljaXRTY29wZSh0aGlzLCBQcm9wZXJ0eUlt
cGxpY2l0KTsKICAgICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BlcnRpZXNbMl0sIHZhbHVlLCBp
bXBvcnRhbnQpOwotICAgICAgICAgICAgdmFsdWUgPSBtX3BhcnNlZFByb3BlcnRpZXMtPmF0KG1f
cGFyc2VkUHJvcGVydGllcy0+c2l6ZSgpIC0gMikudmFsdWUoKTsKKyAgICAgICAgICAgIHZhbHVl
ID0gbV9wYXJzZWRQcm9wZXJ0aWVzW21fcGFyc2VkUHJvcGVydGllcy5zaXplKCkgLSAyXS52YWx1
ZSgpOwogICAgICAgICAgICAgYWRkUHJvcGVydHkocHJvcGVydGllc1szXSwgdmFsdWUsIGltcG9y
dGFudCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIDM6IHsK
ICAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZShwcm9wZXJ0aWVzWzBdLCBpbXBvcnRhbnQpIHx8
ICFwYXJzZVZhbHVlKHByb3BlcnRpZXNbMV0sIGltcG9ydGFudCkgfHwgIXBhcnNlVmFsdWUocHJv
cGVydGllc1syXSwgaW1wb3J0YW50KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgICAgICBDU1NWYWx1ZSogdmFsdWUgPSBtX3BhcnNlZFByb3BlcnRpZXMtPmF0KG1fcGFy
c2VkUHJvcGVydGllcy0+c2l6ZSgpIC0gMikudmFsdWUoKTsKKyAgICAgICAgICAgIENTU1ZhbHVl
KiB2YWx1ZSA9IG1fcGFyc2VkUHJvcGVydGllc1ttX3BhcnNlZFByb3BlcnRpZXMuc2l6ZSgpIC0g
Ml0udmFsdWUoKTsKICAgICAgICAgICAgIEltcGxpY2l0U2NvcGUgaW1wbGljaXRTY29wZSh0aGlz
LCBQcm9wZXJ0eUltcGxpY2l0KTsKICAgICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BlcnRpZXNb
M10sIHZhbHVlLCBpbXBvcnRhbnQpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC04MDc1LDcgKzgw
NzMsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VGbG93VGhyZWFkKGNvbnN0IFN0cmluZyYgZmxv
d05hbWUpCiAKICAgICBtX3J1bGUgPSAwOwogCi0gICAgcmV0dXJuICgobV9wYXJzZWRQcm9wZXJ0
aWVzLT5zaXplKCkgPT0gMSkgJiYgKG1fcGFyc2VkUHJvcGVydGllcy0+Zmlyc3QoKS5pZCgpID09
IENTU1Byb3BlcnR5V2Via2l0Rmxvd0ludG8pKTsKKyAgICByZXR1cm4gKChtX3BhcnNlZFByb3Bl
cnRpZXMuc2l6ZSgpID09IDEpICYmIChtX3BhcnNlZFByb3BlcnRpZXMuZmlyc3QoKS5pZCgpID09
IENTU1Byb3BlcnR5V2Via2l0Rmxvd0ludG8pKTsKIH0KIAogLy8gbm9uZSB8IDxpZGVudD4KQEAg
LTgyMjYsOCArODIyNCw4IEBAIHZvaWQgQ1NTUGFyc2VyOjphZGRUZXh0RGVjb3JhdGlvblByb3Bl
cnR5KENTU1Byb3BlcnR5SUQgcHJvcElkLCBQYXNzUmVmUHRyPENTU1ZhCiAjaWYgRU5BQkxFKENT
UzNfVEVYVCkKICAgICAvLyBUaGUgdGV4dC1kZWNvcmF0aW9uLWxpbmUgcHJvcGVydHkgdGFrZXMg
cHJpb3JpdHkgb3ZlciB0ZXh0LWRlY29yYXRpb24sIHVubGVzcyB0aGUgbGF0dGVyIGhhcyBpbXBv
cnRhbnQgcHJpb3JpdHkgc2V0LgogICAgIGlmIChwcm9wSWQgPT0gQ1NTUHJvcGVydHlUZXh0RGVj
b3JhdGlvbiAmJiAhaW1wb3J0YW50ICYmIG1fY3VycmVudFNob3J0aGFuZCA9PSBDU1NQcm9wZXJ0
eUludmFsaWQpIHsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fcGFyc2VkUHJv
cGVydGllcy0+c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgIGlmIChtX3BhcnNlZFByb3BlcnRp
ZXMtPmF0KGkpLmlkKCkgPT0gQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbkxpbmUpCisg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3BhcnNlZFByb3BlcnRpZXMuc2l6ZSgp
OyArK2kpIHsKKyAgICAgICAgICAgIGlmIChtX3BhcnNlZFByb3BlcnRpZXNbaV0uaWQoKSA9PSBD
U1NQcm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uTGluZSkKICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KICAgICB9CkBAIC05OTc1LDE0ICs5OTczLDE0IEBAIFBhc3NPd25QdHI8
Q1NTUGFyc2VyU2VsZWN0b3I+IENTU1BhcnNlcjo6c2lua0Zsb2F0aW5nU2VsZWN0b3IoQ1NTUGFy
c2VyU2VsZWN0b3IqCiAgICAgcmV0dXJuIGFkb3B0UHRyKHNlbGVjdG9yKTsKIH0KIAotQ1NTU2Vs
ZWN0b3JWZWN0b3IqIENTU1BhcnNlcjo6Y3JlYXRlRmxvYXRpbmdTZWxlY3RvclZlY3RvcigpCitW
ZWN0b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiA+KiBDU1NQYXJzZXI6OmNyZWF0ZUZsb2F0
aW5nU2VsZWN0b3JWZWN0b3IoKQogewotICAgIENTU1NlbGVjdG9yVmVjdG9yKiBzZWxlY3RvclZl
Y3RvciA9IG5ldyBDU1NTZWxlY3RvclZlY3RvcjsKKyAgICBWZWN0b3I8T3duUHRyPENTU1BhcnNl
clNlbGVjdG9yPiA+KiBzZWxlY3RvclZlY3RvciA9IG5ldyBWZWN0b3I8T3duUHRyPENTU1BhcnNl
clNlbGVjdG9yPiA+OwogICAgIG1fZmxvYXRpbmdTZWxlY3RvclZlY3RvcnMuYWRkKHNlbGVjdG9y
VmVjdG9yKTsKICAgICByZXR1cm4gc2VsZWN0b3JWZWN0b3I7CiB9CiAKLVBhc3NPd25QdHI8Q1NT
U2VsZWN0b3JWZWN0b3IgPiBDU1NQYXJzZXI6OnNpbmtGbG9hdGluZ1NlbGVjdG9yVmVjdG9yKENT
U1NlbGVjdG9yVmVjdG9yKiBzZWxlY3RvclZlY3RvcikKK1Bhc3NPd25QdHI8VmVjdG9yPE93blB0
cjxDU1NQYXJzZXJTZWxlY3Rvcj4gPiA+IENTU1BhcnNlcjo6c2lua0Zsb2F0aW5nU2VsZWN0b3JW
ZWN0b3IoVmVjdG9yPE93blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gPiogc2VsZWN0b3JWZWN0b3Ip
CiB7CiAgICAgaWYgKHNlbGVjdG9yVmVjdG9yKSB7CiAgICAgICAgIEFTU0VSVChtX2Zsb2F0aW5n
U2VsZWN0b3JWZWN0b3JzLmNvbnRhaW5zKHNlbGVjdG9yVmVjdG9yKSk7CkBAIC0xMDE3OCw3ICsx
MDE3Niw3IEBAIFN0eWxlUnVsZUtleWZyYW1lcyogQ1NTUGFyc2VyOjpjcmVhdGVLZXlmcmFtZXNS
dWxlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc093blB0CiAgICAgcmV0dXJuIHJ1bGVQdHI7CiB9
CiAKLVN0eWxlUnVsZUJhc2UqIENTU1BhcnNlcjo6Y3JlYXRlU3R5bGVSdWxlKENTU1NlbGVjdG9y
VmVjdG9yKiBzZWxlY3RvcnMpCitTdHlsZVJ1bGVCYXNlKiBDU1NQYXJzZXI6OmNyZWF0ZVN0eWxl
UnVsZShWZWN0b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiA+KiBzZWxlY3RvcnMpCiB7CiAg
ICAgU3R5bGVSdWxlKiByZXN1bHQgPSAwOwogICAgIGlmIChzZWxlY3RvcnMpIHsKQEAgLTEwMjAw
LDggKzEwMTk4LDggQEAgU3R5bGVSdWxlQmFzZSogQ1NTUGFyc2VyOjpjcmVhdGVTdHlsZVJ1bGUo
Q1NTU2VsZWN0b3JWZWN0b3IqIHNlbGVjdG9ycykKIFN0eWxlUnVsZUJhc2UqIENTU1BhcnNlcjo6
Y3JlYXRlRm9udEZhY2VSdWxlKCkKIHsKICAgICBtX2FsbG93SW1wb3J0UnVsZXMgPSBtX2FsbG93
TmFtZXNwYWNlRGVjbGFyYXRpb25zID0gZmFsc2U7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IG1fcGFyc2VkUHJvcGVydGllcy0+c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgQ1NTUHJvcGVy
dHkmIHByb3BlcnR5ID0gbV9wYXJzZWRQcm9wZXJ0aWVzLT5hdChpKTsKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbV9wYXJzZWRQcm9wZXJ0aWVzLnNpemUoKTsgKytpKSB7CisgICAgICAg
IENTU1Byb3BlcnR5JiBwcm9wZXJ0eSA9IG1fcGFyc2VkUHJvcGVydGllc1tpXTsKICAgICAgICAg
aWYgKHByb3BlcnR5LmlkKCkgPT0gQ1NTUHJvcGVydHlGb250VmFyaWFudCAmJiBwcm9wZXJ0eS52
YWx1ZSgpLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCiAgICAgICAgICAgICBwcm9wZXJ0eS53cmFwVmFs
dWVJbkNvbW1hU2VwYXJhdGVkTGlzdCgpOwogICAgICAgICBlbHNlIGlmIChwcm9wZXJ0eS5pZCgp
ID09IENTU1Byb3BlcnR5Rm9udEZhbWlseSAmJiAoIXByb3BlcnR5LnZhbHVlKCktPmlzVmFsdWVM
aXN0KCkgfHwgc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4ocHJvcGVydHkudmFsdWUoKSktPmxl
bmd0aCgpICE9IDEpKSB7CkBAIC0xMDMxMSw3ICsxMDMwOSw3IEBAIFN0eWxlUnVsZUJhc2UqIENT
U1BhcnNlcjo6Y3JlYXRlUGFnZVJ1bGUoUGFzc093blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gcGFn
ZVNlbGVjCiAgICAgU3R5bGVSdWxlUGFnZSogcGFnZVJ1bGUgPSAwOwogICAgIGlmIChwYWdlU2Vs
ZWN0b3IpIHsKICAgICAgICAgUmVmUHRyPFN0eWxlUnVsZVBhZ2U+IHJ1bGUgPSBTdHlsZVJ1bGVQ
YWdlOjpjcmVhdGUoKTsKLSAgICAgICAgQ1NTU2VsZWN0b3JWZWN0b3Igc2VsZWN0b3JWZWN0b3I7
CisgICAgICAgIFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+ID4gc2VsZWN0b3JWZWN0
b3I7CiAgICAgICAgIHNlbGVjdG9yVmVjdG9yLmFwcGVuZChwYWdlU2VsZWN0b3IpOwogICAgICAg
ICBydWxlLT5wYXJzZXJBZG9wdFNlbGVjdG9yVmVjdG9yKHNlbGVjdG9yVmVjdG9yKTsKICAgICAg
ICAgcnVsZS0+c2V0UHJvcGVydGllcyhjcmVhdGVTdHlsZVByb3BlcnR5U2V0KCkpOwpAQCAtMTAz
MjQsNyArMTAzMjIsNyBAQCBTdHlsZVJ1bGVCYXNlKiBDU1NQYXJzZXI6OmNyZWF0ZVBhZ2VSdWxl
KFBhc3NPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IHBhZ2VTZWxlYwogICAgIHJldHVybiBwYWdl
UnVsZTsKIH0KIAotdm9pZCBDU1NQYXJzZXI6OnNldFJldXNhYmxlUmVnaW9uU2VsZWN0b3JWZWN0
b3IoQ1NTU2VsZWN0b3JWZWN0b3IqIHNlbGVjdG9ycykKK3ZvaWQgQ1NTUGFyc2VyOjpzZXRSZXVz
YWJsZVJlZ2lvblNlbGVjdG9yVmVjdG9yKFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+
ID4qIHNlbGVjdG9ycykKIHsKICAgICBpZiAoc2VsZWN0b3JzKQogICAgICAgICBtX3JldXNhYmxl
UmVnaW9uU2VsZWN0b3JWZWN0b3Iuc3dhcCgqc2VsZWN0b3JzKTsKQEAgLTEwMzYyLDIyICsxMDM2
MCwyMiBAQCBTdHlsZVJ1bGVCYXNlKiBDU1NQYXJzZXI6OmNyZWF0ZU1hcmdpbkF0UnVsZShDU1NT
ZWxlY3Rvcjo6TWFyZ2luQm94VHlwZSAvKiBtYXJnaQogCiB2b2lkIENTU1BhcnNlcjo6c3RhcnRE
ZWNsYXJhdGlvbnNGb3JNYXJnaW5Cb3goKQogewotICAgIG1fbnVtUGFyc2VkUHJvcGVydGllc0Jl
Zm9yZU1hcmdpbkJveCA9IG1fcGFyc2VkUHJvcGVydGllcy0+c2l6ZSgpOworICAgIG1fbnVtUGFy
c2VkUHJvcGVydGllc0JlZm9yZU1hcmdpbkJveCA9IG1fcGFyc2VkUHJvcGVydGllcy5zaXplKCk7
CiB9CiAKIHZvaWQgQ1NTUGFyc2VyOjplbmREZWNsYXJhdGlvbnNGb3JNYXJnaW5Cb3goKQogewot
ICAgIHJvbGxiYWNrTGFzdFByb3BlcnRpZXMobV9wYXJzZWRQcm9wZXJ0aWVzLT5zaXplKCkgLSBt
X251bVBhcnNlZFByb3BlcnRpZXNCZWZvcmVNYXJnaW5Cb3gpOworICAgIHJvbGxiYWNrTGFzdFBy
b3BlcnRpZXMobV9wYXJzZWRQcm9wZXJ0aWVzLnNpemUoKSAtIG1fbnVtUGFyc2VkUHJvcGVydGll
c0JlZm9yZU1hcmdpbkJveCk7CiAgICAgbV9udW1QYXJzZWRQcm9wZXJ0aWVzQmVmb3JlTWFyZ2lu
Qm94ID0gSU5WQUxJRF9OVU1fUEFSU0VEX1BST1BFUlRJRVM7CiB9CiAKIHZvaWQgQ1NTUGFyc2Vy
OjpkZWxldGVGb250RmFjZU9ubHlWYWx1ZXMoKQogewogICAgIEFTU0VSVChtX2hhc0ZvbnRGYWNl
T25seVZhbHVlcyk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fcGFyc2VkUHJvcGVy
dGllcy0+c2l6ZSgpOykgewotICAgICAgICBDU1NQcm9wZXJ0eSYgcHJvcGVydHkgPSBtX3BhcnNl
ZFByb3BlcnRpZXMtPmF0KGkpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3BhcnNl
ZFByb3BlcnRpZXMuc2l6ZSgpOykgeworICAgICAgICBDU1NQcm9wZXJ0eSYgcHJvcGVydHkgPSBt
X3BhcnNlZFByb3BlcnRpZXNbaV07CiAgICAgICAgIGlmIChwcm9wZXJ0eS5pZCgpID09IENTU1By
b3BlcnR5Rm9udFZhcmlhbnQgJiYgcHJvcGVydHkudmFsdWUoKS0+aXNWYWx1ZUxpc3QoKSkgewot
ICAgICAgICAgICAgbV9wYXJzZWRQcm9wZXJ0aWVzLT5yZW1vdmUoaSk7CisgICAgICAgICAgICBt
X3BhcnNlZFByb3BlcnRpZXMucmVtb3ZlKGkpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIH0KICAgICAgICAgKytpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDY4NGI2MTM2NzJl
ZjRhZmEwYjQyNWMwODEyZWQwMWYwMWUzNThjMmQuLjUxODFmOWVjZDg3MDIxNGFiYzc4NTA0ZjYx
MWZjM2ZmYzYxZjZlYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTkxLDcgKzkxLDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0eUlELCBQYXNzUmVmUHRy
PENTU1ZhbHVlPiwgYm9vbCBpbXBvcnRhbnQsIGJvb2wgaW1wbGljaXQgPSBmYWxzZSk7CiAgICAg
dm9pZCByb2xsYmFja0xhc3RQcm9wZXJ0aWVzKGludCBudW0pOwotICAgIGJvb2wgaGFzUHJvcGVy
dGllcygpIGNvbnN0IHsgcmV0dXJuICFtX3BhcnNlZFByb3BlcnRpZXMtPmlzRW1wdHkoKTsgfQor
ICAgIGJvb2wgaGFzUHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJuICFtX3BhcnNlZFByb3BlcnRp
ZXMuaXNFbXB0eSgpOyB9CiAKICAgICBib29sIHBhcnNlVmFsdWUoQ1NTUHJvcGVydHlJRCwgYm9v
bCBpbXBvcnRhbnQpOwogICAgIGJvb2wgcGFyc2VTaG9ydGhhbmQoQ1NTUHJvcGVydHlJRCwgY29u
c3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYsIGJvb2wgaW1wb3J0YW50KTsKQEAgLTI1Nyw4ICsy
NTcsOCBAQCBwdWJsaWM6CiAgICAgQ1NTUGFyc2VyU2VsZWN0b3IqIGNyZWF0ZUZsb2F0aW5nU2Vs
ZWN0b3IoKTsKICAgICBQYXNzT3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiBzaW5rRmxvYXRpbmdT
ZWxlY3RvcihDU1NQYXJzZXJTZWxlY3RvciopOwogCi0gICAgQ1NTU2VsZWN0b3JWZWN0b3IqIGNy
ZWF0ZUZsb2F0aW5nU2VsZWN0b3JWZWN0b3IoKTsKLSAgICBQYXNzT3duUHRyPENTU1NlbGVjdG9y
VmVjdG9yPiBzaW5rRmxvYXRpbmdTZWxlY3RvclZlY3RvcihDU1NTZWxlY3RvclZlY3RvciopOwor
ICAgIFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+ID4qIGNyZWF0ZUZsb2F0aW5nU2Vs
ZWN0b3JWZWN0b3IoKTsKKyAgICBQYXNzT3duUHRyPFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2Vs
ZWN0b3I+ID4gPiBzaW5rRmxvYXRpbmdTZWxlY3RvclZlY3RvcihWZWN0b3I8T3duUHRyPENTU1Bh
cnNlclNlbGVjdG9yPiA+Kik7CiAKICAgICBDU1NQYXJzZXJWYWx1ZUxpc3QqIGNyZWF0ZUZsb2F0
aW5nVmFsdWVMaXN0KCk7CiAgICAgUGFzc093blB0cjxDU1NQYXJzZXJWYWx1ZUxpc3Q+IHNpbmtG
bG9hdGluZ1ZhbHVlTGlzdChDU1NQYXJzZXJWYWx1ZUxpc3QqKTsKQEAgLTI3NiwxMCArMjc2LDEw
IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4gPiBS
dWxlTGlzdDsKICAgICBTdHlsZVJ1bGVCYXNlKiBjcmVhdGVNZWRpYVJ1bGUoTWVkaWFRdWVyeVNl
dCosIFJ1bGVMaXN0Kik7CiAgICAgUnVsZUxpc3QqIGNyZWF0ZVJ1bGVMaXN0KCk7Ci0gICAgU3R5
bGVSdWxlQmFzZSogY3JlYXRlU3R5bGVSdWxlKENTU1NlbGVjdG9yVmVjdG9yKiBzZWxlY3RvcnMp
OworICAgIFN0eWxlUnVsZUJhc2UqIGNyZWF0ZVN0eWxlUnVsZShWZWN0b3I8T3duUHRyPENTU1Bh
cnNlclNlbGVjdG9yPiA+KiBzZWxlY3RvcnMpOwogICAgIFN0eWxlUnVsZUJhc2UqIGNyZWF0ZUZv
bnRGYWNlUnVsZSgpOwogICAgIFN0eWxlUnVsZUJhc2UqIGNyZWF0ZVBhZ2VSdWxlKFBhc3NPd25Q
dHI8Q1NTUGFyc2VyU2VsZWN0b3I+IHBhZ2VTZWxlY3Rvcik7Ci0gICAgU3R5bGVSdWxlQmFzZSog
Y3JlYXRlUmVnaW9uUnVsZShDU1NTZWxlY3RvclZlY3RvciogcmVnaW9uU2VsZWN0b3IsIFJ1bGVM
aXN0KiBydWxlcyk7CisgICAgU3R5bGVSdWxlQmFzZSogY3JlYXRlUmVnaW9uUnVsZShWZWN0b3I8
T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiA+KiByZWdpb25TZWxlY3RvciwgUnVsZUxpc3QqIHJ1
bGVzKTsKICAgICBTdHlsZVJ1bGVCYXNlKiBjcmVhdGVNYXJnaW5BdFJ1bGUoQ1NTU2VsZWN0b3I6
Ok1hcmdpbkJveFR5cGUpOwogI2lmIEVOQUJMRShTSEFET1dfRE9NKQogICAgIFN0eWxlUnVsZUJh
c2UqIGNyZWF0ZUhvc3RSdWxlKFJ1bGVMaXN0KiBydWxlcyk7CkBAIC0zMDUsMTAgKzMwNSwxMCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGludmFsaWRCbG9ja0hpdCgpOwogCi0gICAgQ1NTU2VsZWN0
b3JWZWN0b3IqIHNlbGVjdG9yVmVjdG9yKCkgeyByZXR1cm4gbV9zZWxlY3RvclZlY3Rvci5nZXQo
KTsgfQorICAgIFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+ID4qIHJldXNhYmxlU2Vs
ZWN0b3JWZWN0b3IoKSB7IHJldHVybiAmbV9yZXVzYWJsZVNlbGVjdG9yVmVjdG9yOyB9CiAKLSAg
ICB2b2lkIHNldFJldXNhYmxlUmVnaW9uU2VsZWN0b3JWZWN0b3IoQ1NTU2VsZWN0b3JWZWN0b3Iq
IHNlbGVjdG9ycyk7Ci0gICAgQ1NTU2VsZWN0b3JWZWN0b3IqIHJldXNhYmxlUmVnaW9uU2VsZWN0
b3JWZWN0b3IoKSB7IHJldHVybiAmbV9yZXVzYWJsZVJlZ2lvblNlbGVjdG9yVmVjdG9yOyB9Cisg
ICAgdm9pZCBzZXRSZXVzYWJsZVJlZ2lvblNlbGVjdG9yVmVjdG9yKFZlY3RvcjxPd25QdHI8Q1NT
UGFyc2VyU2VsZWN0b3I+ID4qIHNlbGVjdG9ycyk7CisgICAgVmVjdG9yPE93blB0cjxDU1NQYXJz
ZXJTZWxlY3Rvcj4gPiogcmV1c2FibGVSZWdpb25TZWxlY3RvclZlY3RvcigpIHsgcmV0dXJuICZt
X3JldXNhYmxlUmVnaW9uU2VsZWN0b3JWZWN0b3I7IH0KIAogICAgIHZvaWQgdXBkYXRlTGFzdFNl
bGVjdG9yTGluZUFuZFBvc2l0aW9uKCk7CiAgICAgdm9pZCB1cGRhdGVMYXN0TWVkaWFMaW5lKE1l
ZGlhUXVlcnlTZXQqKTsKQEAgLTMyNiw5ICszMjYsOCBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFN0
eWxlS2V5ZnJhbWU+IG1fa2V5ZnJhbWU7CiAgICAgT3duUHRyPE1lZGlhUXVlcnk+IG1fbWVkaWFR
dWVyeTsKICAgICBPd25QdHI8Q1NTUGFyc2VyVmFsdWVMaXN0PiBtX3ZhbHVlTGlzdDsKLQogICAg
IHR5cGVkZWYgVmVjdG9yPENTU1Byb3BlcnR5LCAyNTY+IFBhcnNlZFByb3BlcnR5VmVjdG9yOwot
ICAgIE93blB0cjxQYXJzZWRQcm9wZXJ0eVZlY3Rvcj4gbV9wYXJzZWRQcm9wZXJ0aWVzOworICAg
IFBhcnNlZFByb3BlcnR5VmVjdG9yIG1fcGFyc2VkUHJvcGVydGllczsKICAgICBDU1NTZWxlY3Rv
ckxpc3QqIG1fc2VsZWN0b3JMaXN0Rm9yUGFyc2VTZWxlY3RvcjsKIAogICAgIHVuc2lnbmVkIG1f
bnVtUGFyc2VkUHJvcGVydGllc0JlZm9yZU1hcmdpbkJveDsKQEAgLTUzOCw3ICs1MzcsNyBAQCBw
cml2YXRlOgogICAgIFZlY3RvcjxSZWZQdHI8TWVkaWFRdWVyeVNldD4gPiBtX3BhcnNlZE1lZGlh
UXVlcnlTZXRzOwogICAgIFZlY3RvcjxPd25QdHI8UnVsZUxpc3Q+ID4gbV9wYXJzZWRSdWxlTGlz
dHM7CiAgICAgSGFzaFNldDxDU1NQYXJzZXJTZWxlY3Rvcio+IG1fZmxvYXRpbmdTZWxlY3RvcnM7
Ci0gICAgSGFzaFNldDxDU1NTZWxlY3RvclZlY3Rvcio+IG1fZmxvYXRpbmdTZWxlY3RvclZlY3Rv
cnM7CisgICAgSGFzaFNldDxWZWN0b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiA+Kj4gbV9m
bG9hdGluZ1NlbGVjdG9yVmVjdG9yczsKICAgICBIYXNoU2V0PENTU1BhcnNlclZhbHVlTGlzdCo+
IG1fZmxvYXRpbmdWYWx1ZUxpc3RzOwogICAgIEhhc2hTZXQ8Q1NTUGFyc2VyRnVuY3Rpb24qPiBt
X2Zsb2F0aW5nRnVuY3Rpb25zOwogCkBAIC01NDgsOCArNTQ3LDggQEAgcHJpdmF0ZToKIAogICAg
IE93blB0cjxWZWN0b3I8UmVmUHRyPFN0eWxlS2V5ZnJhbWU+ID4gPiBtX2Zsb2F0aW5nS2V5ZnJh
bWVWZWN0b3I7CiAKLSAgICBPd25QdHI8Q1NTU2VsZWN0b3JWZWN0b3I+IG1fc2VsZWN0b3JWZWN0
b3I7Ci0gICAgQ1NTU2VsZWN0b3JWZWN0b3IgbV9yZXVzYWJsZVJlZ2lvblNlbGVjdG9yVmVjdG9y
OworICAgIFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+ID4gbV9yZXVzYWJsZVNlbGVj
dG9yVmVjdG9yOworICAgIFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+ID4gbV9yZXVz
YWJsZVJlZ2lvblNlbGVjdG9yVmVjdG9yOwogCiAgICAgUmVmUHRyPENTU0NhbGNWYWx1ZT4gbV9w
YXJzZWRDYWxjdWxhdGlvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlclZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcApp
bmRleCA2MTEwODA3ZTM4N2ZjOWJlOTQ0ZjgzNTQ4YjdmNDc1ZmE5NDIxMzJhLi5kMjNiODU4NWQ1
ZDdiYjhlYjBmMjY4MjM0YjZlZDA2YTU4ODFkZjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyVmFsdWVzLmNwcApAQCAtMTY0LDcgKzE2NCw3IEBAIENTU1BhcnNlclNlbGVjdG9yOjp+Q1NT
UGFyc2VyU2VsZWN0b3IoKQogICAgIH0KIH0KIAotdm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6YWRv
cHRTZWxlY3RvclZlY3RvcihDU1NTZWxlY3RvclZlY3RvciYgc2VsZWN0b3JWZWN0b3IpCit2b2lk
IENTU1BhcnNlclNlbGVjdG9yOjphZG9wdFNlbGVjdG9yVmVjdG9yKFZlY3RvcjxPd25QdHI8Q1NT
UGFyc2VyU2VsZWN0b3I+ID4mIHNlbGVjdG9yVmVjdG9yKQogewogICAgIENTU1NlbGVjdG9yTGlz
dCogc2VsZWN0b3JMaXN0ID0gZmFzdE5ldzxDU1NTZWxlY3Rvckxpc3Q+KCk7CiAgICAgc2VsZWN0
b3JMaXN0LT5hZG9wdFNlbGVjdG9yVmVjdG9yKHNlbGVjdG9yVmVjdG9yKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXJWYWx1ZXMuaAppbmRleCA2MDk4NmE4MzBjZThkZjE0NjhlZTFmMDc0ZjAzNTRk
MTM1MzNmMzcyLi4xMzAxYjFjZTBlMTEzNzIzY2NmODIxNjI4ZWUwNWUyZTMxMDIzNjdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oCkBAIC0xNjgsMTAgKzE2OCw2IEBAIHB1Ymxp
YzoKICAgICBPd25QdHI8Q1NTUGFyc2VyVmFsdWVMaXN0PiBhcmdzOwogfTsKIAotY2xhc3MgQ1NT
UGFyc2VyU2VsZWN0b3I7Ci0KLXR5cGVkZWYgVmVjdG9yPE93blB0cjxDU1NQYXJzZXJTZWxlY3Rv
cj4gPiBDU1NTZWxlY3RvclZlY3RvcjsKLQogY2xhc3MgQ1NTUGFyc2VyU2VsZWN0b3IgewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtMTg4LDcgKzE4NCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFJlbGF0aW9uKENTU1NlbGVjdG9yOjpSZWxhdGlvbiB2YWx1ZSkg
eyBtX3NlbGVjdG9yLT5tX3JlbGF0aW9uID0gdmFsdWU7IH0KICAgICB2b2lkIHNldEZvclBhZ2Uo
KSB7IG1fc2VsZWN0b3ItPnNldEZvclBhZ2UoKTsgfQogCi0gICAgdm9pZCBhZG9wdFNlbGVjdG9y
VmVjdG9yKENTU1NlbGVjdG9yVmVjdG9yJik7CisgICAgdm9pZCBhZG9wdFNlbGVjdG9yVmVjdG9y
KFZlY3RvcjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+ID4mIHNlbGVjdG9yVmVjdG9yKTsKIAog
ICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlIHBzZXVkb1R5cGUoKSBjb25zdCB7IHJldHVybiBt
X3NlbGVjdG9yLT5wc2V1ZG9UeXBlKCk7IH0KICAgICBib29sIGlzQ3VzdG9tUHNldWRvRWxlbWVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0b3ItPmlzQ3VzdG9tUHNldWRvRWxlbWVudCgpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3BwCmluZGV4IDZhOGRiNGYzYTIwY2Jh
MDBlZTE4ZTJhYTJlYmU2OWI0NmZmYjdkY2IuLjQzMTM2ZDFjOTAxYzYzNDFiYWNiZWY4Mzk0OWRm
OTRlNjBmMWMzNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxp
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3BwCkBAIC01
OCw3ICs1OCw3IEBAIHZvaWQgQ1NTU2VsZWN0b3JMaXN0OjphZG9wdChDU1NTZWxlY3Rvckxpc3Qm
IGxpc3QpCiAgICAgbGlzdC5tX3NlbGVjdG9yQXJyYXkgPSAwOwogfQogCi12b2lkIENTU1NlbGVj
dG9yTGlzdDo6YWRvcHRTZWxlY3RvclZlY3RvcihDU1NTZWxlY3RvclZlY3RvciYgc2VsZWN0b3JW
ZWN0b3IpCit2b2lkIENTU1NlbGVjdG9yTGlzdDo6YWRvcHRTZWxlY3RvclZlY3RvcihWZWN0b3I8
T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiA+JiBzZWxlY3RvclZlY3RvcikKIHsKICAgICBkZWxl
dGVTZWxlY3RvcnMoKTsKICAgICBjb25zdCBzaXplX3QgdmVjdG9yU2l6ZSA9IHNlbGVjdG9yVmVj
dG9yLnNpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxp
c3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuaAppbmRleCA4M2VjZjli
M2YwZGJlNzVhNzI1NWFmYmY2MTY1NTExMTA4YjI1YjAyLi40ZmNmZWUyZmFhNDE4MmQ3YTlhYjA1
NWJjY2U1MTlmZTc0ZTIyNzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2Vs
ZWN0b3JMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5oCkBA
IC0yNiw3ICsyNiw2IEBACiAjaWZuZGVmIENTU1NlbGVjdG9yTGlzdF9oCiAjZGVmaW5lIENTU1Nl
bGVjdG9yTGlzdF9oCiAKLSNpbmNsdWRlICJDU1NQYXJzZXJWYWx1ZXMuaCIKICNpbmNsdWRlICJD
U1NTZWxlY3Rvci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Miw3ICs0MSw3IEBAIHB1
YmxpYzoKICAgICB+Q1NTU2VsZWN0b3JMaXN0KCk7CiAKICAgICB2b2lkIGFkb3B0KENTU1NlbGVj
dG9yTGlzdCYgbGlzdCk7Ci0gICAgdm9pZCBhZG9wdFNlbGVjdG9yVmVjdG9yKENTU1NlbGVjdG9y
VmVjdG9yJik7CisgICAgdm9pZCBhZG9wdFNlbGVjdG9yVmVjdG9yKFZlY3RvcjxPd25QdHI8Q1NT
UGFyc2VyU2VsZWN0b3I+ID4mIHNlbGVjdG9yVmVjdG9yKTsKIAogICAgIENTU1NlbGVjdG9yKiBm
aXJzdCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0b3JBcnJheSA/IG1fc2VsZWN0b3JBcnJheSA6
IDA7IH0KICAgICBzdGF0aWMgQ1NTU2VsZWN0b3IqIG5leHQoQ1NTU2VsZWN0b3IqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL1NWR0NTU1BhcnNlci5jcHAKaW5kZXggNzIwMGYyMThkNjRlODdmNzIwMWZhNjk0YjI3
NzRjZGZlM2YzM2FhMC4uODk0ZDllNzM5YmZmNjdiMmRmZmE1OWQwM2YzY2QyNjU3MTU3YWY1MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1BhcnNlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1BhcnNlci5jcHAKQEAgLTI4NSw3ICsyODUsNyBAQCBib29s
IENTU1BhcnNlcjo6cGFyc2VTVkdWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBv
cnRhbnQpCiAgICAgICAgICAgICByb2xsYmFja0xhc3RQcm9wZXJ0aWVzKDEpOwogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9Ci0gICAgICAgIENTU1ZhbHVlKiB2YWx1ZSA9IG1f
cGFyc2VkUHJvcGVydGllcy0+bGFzdCgpLnZhbHVlKCk7CisgICAgICAgIENTU1ZhbHVlKiB2YWx1
ZSA9IG1fcGFyc2VkUHJvcGVydGllcy5sYXN0KCkudmFsdWUoKTsKICAgICAgICAgYWRkUHJvcGVy
dHkoQ1NTUHJvcGVydHlNYXJrZXJNaWQsIHZhbHVlLCBpbXBvcnRhbnQpOwogICAgICAgICBhZGRQ
cm9wZXJ0eShDU1NQcm9wZXJ0eU1hcmtlckVuZCwgdmFsdWUsIGltcG9ydGFudCk7CiAgICAgICAg
IG1faW1wbGljaXRTaG9ydGhhbmQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAKaW5k
ZXggNzEzYzk3MTQ2NDRhZjJhYjA5MjFlYWI0ZjczYmU0ODk3M2Y5YmRlYy4uNjNkNjA0ZTQ2MWU0
YjIzNTRmOTg0MDE2NzI0MGU4NTNmNjU0ZDUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAK
QEAgLTM5Miw3ICszOTIsNyBAQCB2b2lkIFN0eWxlUnVsZU1lZGlhOjpyZXBvcnREZXNjZW5kYW50
TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SQogICAgIGluZm8uYWRk
TWVtYmVyKG1fbWVkaWFRdWVyaWVzKTsKIH0KIAotU3R5bGVSdWxlUmVnaW9uOjpTdHlsZVJ1bGVS
ZWdpb24oQ1NTU2VsZWN0b3JWZWN0b3IqIHNlbGVjdG9ycywgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1
bGVCYXNlPiA+JiBhZG9wdFJ1bGVzKQorU3R5bGVSdWxlUmVnaW9uOjpTdHlsZVJ1bGVSZWdpb24o
VmVjdG9yPE93blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gPiogc2VsZWN0b3JzLCBWZWN0b3I8UmVm
UHRyPFN0eWxlUnVsZUJhc2U+ID4mIGFkb3B0UnVsZXMpCiAgICAgOiBTdHlsZVJ1bGVCbG9jayhS
ZWdpb24sIGFkb3B0UnVsZXMpCiB7CiAgICAgbV9zZWxlY3Rvckxpc3QuYWRvcHRTZWxlY3RvclZl
Y3Rvcigqc2VsZWN0b3JzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1
bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuaAppbmRleCA0ZDQzNDBhNmQ4YTIw
MTJjODQyMTViYjI5MmU1ZjJkNDA0ZmJkYTQwLi5hNjZkODQyMWI5NWE1NTMzM2E0YmRmZGI5ZTkz
YWMzNTU4NzRiMzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oCkBAIC0xMDksNyArMTA5LDcgQEAg
cHVibGljOgogICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIHByb3BlcnRpZXMoKSBjb25zdCB7
IHJldHVybiBtX3Byb3BlcnRpZXMuZ2V0KCk7IH0KICAgICBTdHlsZVByb3BlcnR5U2V0KiBtdXRh
YmxlUHJvcGVydGllcygpOwogICAgIAotICAgIHZvaWQgcGFyc2VyQWRvcHRTZWxlY3RvclZlY3Rv
cihDU1NTZWxlY3RvclZlY3RvciYgc2VsZWN0b3JzKSB7IG1fc2VsZWN0b3JMaXN0LmFkb3B0U2Vs
ZWN0b3JWZWN0b3Ioc2VsZWN0b3JzKTsgfQorICAgIHZvaWQgcGFyc2VyQWRvcHRTZWxlY3RvclZl
Y3RvcihWZWN0b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiA+JiBzZWxlY3RvcnMpIHsgbV9z
ZWxlY3Rvckxpc3QuYWRvcHRTZWxlY3RvclZlY3RvcihzZWxlY3RvcnMpOyB9CiAgICAgdm9pZCB3
cmFwcGVyQWRvcHRTZWxlY3Rvckxpc3QoQ1NTU2VsZWN0b3JMaXN0JiBzZWxlY3RvcnMpIHsgbV9z
ZWxlY3Rvckxpc3QuYWRvcHQoc2VsZWN0b3JzKTsgfQogICAgIHZvaWQgc2V0UHJvcGVydGllcyhQ
YXNzUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+KTsKIApAQCAtMTU4LDcgKzE1OCw3IEBAIHB1Ymxp
YzoKICAgICBjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBwcm9wZXJ0aWVzKCkgY29uc3QgeyByZXR1
cm4gbV9wcm9wZXJ0aWVzLmdldCgpOyB9CiAgICAgU3R5bGVQcm9wZXJ0eVNldCogbXV0YWJsZVBy
b3BlcnRpZXMoKTsKIAotICAgIHZvaWQgcGFyc2VyQWRvcHRTZWxlY3RvclZlY3RvcihDU1NTZWxl
Y3RvclZlY3RvciYgc2VsZWN0b3JzKSB7IG1fc2VsZWN0b3JMaXN0LmFkb3B0U2VsZWN0b3JWZWN0
b3Ioc2VsZWN0b3JzKTsgfQorICAgIHZvaWQgcGFyc2VyQWRvcHRTZWxlY3RvclZlY3RvcihWZWN0
b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiA+JiBzZWxlY3RvcnMpIHsgbV9zZWxlY3Rvckxp
c3QuYWRvcHRTZWxlY3RvclZlY3RvcihzZWxlY3RvcnMpOyB9CiAgICAgdm9pZCB3cmFwcGVyQWRv
cHRTZWxlY3Rvckxpc3QoQ1NTU2VsZWN0b3JMaXN0JiBzZWxlY3RvcnMpIHsgbV9zZWxlY3Rvckxp
c3QuYWRvcHQoc2VsZWN0b3JzKTsgfQogICAgIHZvaWQgc2V0UHJvcGVydGllcyhQYXNzUmVmUHRy
PFN0eWxlUHJvcGVydHlTZXQ+KTsKIApAQCAtMjEzLDcgKzIxMyw3IEBAIHByaXZhdGU6CiAKIGNs
YXNzIFN0eWxlUnVsZVJlZ2lvbiA6IHB1YmxpYyBTdHlsZVJ1bGVCbG9jayB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3R5bGVSdWxlUmVnaW9uPiBjcmVhdGUoQ1NTU2VsZWN0b3JW
ZWN0b3IqIHNlbGVjdG9ycywgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPiA+JiBhZG9wdFJ1
bGVzKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0eWxlUnVsZVJlZ2lvbj4gY3JlYXRlKFZlY3Rv
cjxPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+ID4qIHNlbGVjdG9ycywgVmVjdG9yPFJlZlB0cjxT
dHlsZVJ1bGVCYXNlPiA+JiBhZG9wdFJ1bGVzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTdHlsZVJ1bGVSZWdpb24oc2VsZWN0b3JzLCBhZG9wdFJ1bGVzKSk7CiAgICAgfQpA
QCAtMjI1LDcgKzIyNSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcG9ydERlc2NlbmRhbnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgU3R5bGVS
dWxlUmVnaW9uKENTU1NlbGVjdG9yVmVjdG9yKiwgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNl
PiA+JiBhZG9wdFJ1bGVzKTsKKyAgICBTdHlsZVJ1bGVSZWdpb24oVmVjdG9yPE93blB0cjxDU1NQ
YXJzZXJTZWxlY3Rvcj4gPiosIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4gPiYgYWRvcHRS
dWxlcyk7CiAgICAgU3R5bGVSdWxlUmVnaW9uKGNvbnN0IFN0eWxlUnVsZVJlZ2lvbiYpOwogICAg
IAogICAgIENTU1NlbGVjdG9yTGlzdCBtX3NlbGVjdG9yTGlzdDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>