<?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>95461</bug_id>
          
          <creation_ts>2012-08-30 08:37:45 -0700</creation_ts>
          <short_desc>Refactor WrapShape classes to BasicShape</short_desc>
          <delta_ts>2012-08-30 10:07:41 -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>CSS</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>
          
          <blocked>95389</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Dirk Schulze">krit</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>eric</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>708653</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-08-30 08:37:45 -0700</bug_when>
    <thetext>Refactor WrapShape classes to BasicShape so that it can be reused by CSS Masking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708691</commentid>
    <comment_count>1</comment_count>
      <attachid>161488</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-08-30 09:06:21 -0700</bug_when>
    <thetext>Created attachment 161488
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708707</commentid>
    <comment_count>2</comment_count>
      <attachid>161488</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-08-30 09:29:19 -0700</bug_when>
    <thetext>Comment on attachment 161488
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708767</commentid>
    <comment_count>3</comment_count>
      <attachid>161488</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-30 10:07:38 -0700</bug_when>
    <thetext>Comment on attachment 161488
Patch

Clearing flags on attachment: 161488

Committed r127155: &lt;http://trac.webkit.org/changeset/127155&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708768</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-30 10:07:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161488</attachid>
            <date>2012-08-30 09:06:21 -0700</date>
            <delta_ts>2012-08-30 10:07:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95461-20120830090610.patch</filename>
            <type>text/plain</type>
            <size>43025</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc5MzcxNDBmNWYzZGZm
ZDIxZjYwYjRlMTg1MzgxZGI4NzIwODY2OS4uZmMxY2Q1YTkxNjM1ZDU0YzM0ZWZlMDI5NmFmYzBi
MDAwYWFlMjg1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDEyLTA4LTMwICBEaXJr
IFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVmYWN0b3IgV3JhcFNoYXBl
IGNsYXNzZXMgdG8gQmFzaWNTaGFwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTU0NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIGlzIGEgZm9sbG93IHVwIHBhdGNoIG9mIGJ1ZyA5NTQxMS4gV2hp
bGUgdGhlIHByZXZpb3VzIHBhdGNoCisgICAgICAgIGp1c3QgcmVuYW1lZCB0aGUgZmlsZXMsIHRo
aXMgcGF0Y2ggcmVuYW1lcyB0aGUgY2xhc3NlcywgZW51bWVyYXRpb25zCisgICAgICAgIGFuZCBm
dW5jdGlvbnMuCisKKyAgICAgICAgSnVzdCByZWZhY3RvcmluZyBvZiBpbnRlcm5hbCBuYW1lcy4g
Tm8gbmV3IHRlc3RzLgorCisgICAgICAgICogY3NzL0Jhc2ljU2hhcGVGdW5jdGlvbnMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsdWVGb3JCYXNpY1NoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OmJhc2ljU2hhcGVGb3JWYWx1ZSk6CisgICAgICAgICogY3NzL0Jhc2ljU2hhcGVGdW5jdGlvbnMu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGNzcy9DU1NCYXNpY1NoYXBlcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlUmVjdGFuZ2xlOjpjc3NUZXh0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVDaXJjbGU6OmNzc1RleHQpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUVsbGlwc2U6OmNzc1RleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTQmFzaWNTaGFwZVBvbHlnb246OmNzc1RleHQpOgorICAgICAgICAqIGNzcy9DU1NCYXNp
Y1NoYXBlcy5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZTo6fkNTU0Jhc2ljU2hh
cGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZTo6Q1NTQmFzaWNTaGFwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlUmVjdGFuZ2xlOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZVJlY3RhbmdsZTo6dHlwZSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NCYXNpY1NoYXBlUmVjdGFuZ2xlOjpDU1NCYXNpY1NoYXBlUmVjdGFuZ2xlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVDaXJjbGU6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NCYXNpY1NoYXBlQ2lyY2xlOjp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0Jhc2ljU2hhcGVDaXJjbGU6OkNTU0Jhc2ljU2hhcGVDaXJjbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTQmFzaWNTaGFwZUVsbGlwc2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NC
YXNpY1NoYXBlRWxsaXBzZTo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBl
RWxsaXBzZTo6Q1NTQmFzaWNTaGFwZUVsbGlwc2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQmFz
aWNTaGFwZVBvbHlnb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBl
UG9seWdvbjo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlUG9seWdvbjo6
Q1NTQmFzaWNTaGFwZVBvbHlnb24pOgorICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZVJlY3RhbmdsZSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZUNpcmNsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZUVsbGlwc2UpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUGFyc2VyOjpwYXJzZUJhc2ljU2hhcGVQb2x5Z29uKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1BhcnNlcjo6cGFyc2VCYXNpY1NoYXBlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmluaXQpOgorICAgICAgICAqIGNz
cy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Z2V0U2hhcGVWYWx1ZSk6CisgICAgICAgIChDU1NQcmlt
aXRpdmVWYWx1ZSk6CisgICAgICAgICogY3NzL1N0eWxlQnVpbGRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlXcmFwU2hhcGU6OnNldFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlXcmFwU2hhcGU6OmFwcGx5VmFs
dWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVdyYXBTaGFwZTo6Y3JlYXRlSGFu
ZGxlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrOjp1cGRhdGVXcmFwU2hhcGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZSk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAgIChSZW5kZXJCbG9j
ayk6CisgICAgICAgICogcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V3JhcFNoYXBlSW5mbzo6aXNXcmFwU2hhcGVJbmZvRW5hYmxlZEZvclJlbmRlckJsb2Nr
KToKKyAgICAgICAgKFdlYkNvcmU6OldyYXBTaGFwZUluZm86OmNvbXB1dGVTaGFwZVNpemUpOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpCYXNpY1NoYXBlOjpkZXN0cm95KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvQmFz
aWNTaGFwZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hhcGU6OkJhc2ljU2hhcGUpOgor
ICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZVJlY3RhbmdsZTo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkJhc2ljU2hhcGVSZWN0YW5nbGU6OkJhc2ljU2hhcGVSZWN0YW5nbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZUNpcmNsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkJhc2ljU2hhcGVDaXJjbGU6OkJhc2ljU2hhcGVDaXJjbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6QmFzaWNTaGFwZUVsbGlwc2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1No
YXBlRWxsaXBzZTo6QmFzaWNTaGFwZUVsbGlwc2UpOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNT
aGFwZVBvbHlnb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY1NoYXBlUG9seWdv
bjo6QmFzaWNTaGFwZVBvbHlnb24pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhLmg6CisgICAgICAgIChTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKToKKwogMjAxMi0wOC0y
OSAgRGlyayBTY2h1bHplICA8a3JpdEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlZmFjdG9yIFdy
YXBTaGFwZSB0byBTaGFwZS9CYXNpY1NoYXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQmFzaWNTaGFwZUZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQmFzaWNTaGFw
ZUZ1bmN0aW9ucy5jcHAKaW5kZXggYzhkNTBlYzYzMmQ4NzU1MjhiNTc4MGRkZDBjMDkyZmQ4NDdl
MTkxYy4uM2E4Zjc5NTNiNmY5NmIwMTJmODQzMjM3YTJlMTJhMGZkZjRjYjEyMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0Jhc2ljU2hhcGVGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9CYXNpY1NoYXBlRnVuY3Rpb25zLmNwcApAQCAtMzgsMTMgKzM4LDEzIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWVGb3JX
cmFwU2hhcGUoY29uc3QgV3JhcFNoYXBlKiB3cmFwU2hhcGUpCitQYXNzUmVmUHRyPENTU1ZhbHVl
PiB2YWx1ZUZvckJhc2ljU2hhcGUoY29uc3QgQmFzaWNTaGFwZSogYmFzaWNTaGFwZSkKIHsKLSAg
ICBSZWZQdHI8Q1NTV3JhcFNoYXBlPiB3cmFwU2hhcGVWYWx1ZTsKLSAgICBzd2l0Y2ggKHdyYXBT
aGFwZS0+dHlwZSgpKSB7Ci0gICAgY2FzZSBXcmFwU2hhcGU6OldSQVBfU0hBUEVfUkVDVEFOR0xF
OiB7Ci0gICAgICAgIGNvbnN0IFdyYXBTaGFwZVJlY3RhbmdsZSogcmVjdGFuZ2xlID0gc3RhdGlj
X2Nhc3Q8Y29uc3QgV3JhcFNoYXBlUmVjdGFuZ2xlKj4od3JhcFNoYXBlKTsKLSAgICAgICAgUmVm
UHRyPENTU1dyYXBTaGFwZVJlY3RhbmdsZT4gcmVjdGFuZ2xlVmFsdWUgPSBDU1NXcmFwU2hhcGVS
ZWN0YW5nbGU6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxDU1NCYXNpY1NoYXBlPiBiYXNpY1NoYXBl
VmFsdWU7CisgICAgc3dpdGNoIChiYXNpY1NoYXBlLT50eXBlKCkpIHsKKyAgICBjYXNlIEJhc2lj
U2hhcGU6OkJBU0lDX1NIQVBFX1JFQ1RBTkdMRTogeworICAgICAgICBjb25zdCBCYXNpY1NoYXBl
UmVjdGFuZ2xlKiByZWN0YW5nbGUgPSBzdGF0aWNfY2FzdDxjb25zdCBCYXNpY1NoYXBlUmVjdGFu
Z2xlKj4oYmFzaWNTaGFwZSk7CisgICAgICAgIFJlZlB0cjxDU1NCYXNpY1NoYXBlUmVjdGFuZ2xl
PiByZWN0YW5nbGVWYWx1ZSA9IENTU0Jhc2ljU2hhcGVSZWN0YW5nbGU6OmNyZWF0ZSgpOwogCiAg
ICAgICAgIHJlY3RhbmdsZVZhbHVlLT5zZXRYKGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKHJl
Y3RhbmdsZS0+eCgpKSk7CiAgICAgICAgIHJlY3RhbmdsZVZhbHVlLT5zZXRZKGNzc1ZhbHVlUG9v
bCgpLmNyZWF0ZVZhbHVlKHJlY3RhbmdsZS0+eSgpKSk7CkBAIC01Niw0OCArNTYsNDggQEAgUGFz
c1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWVGb3JXcmFwU2hhcGUoY29uc3QgV3JhcFNoYXBlKiB3cmFw
U2hhcGUpCiAgICAgICAgICAgICAgICAgcmVjdGFuZ2xlVmFsdWUtPnNldFJhZGl1c1koY3NzVmFs
dWVQb29sKCkuY3JlYXRlVmFsdWUocmVjdGFuZ2xlLT5jb3JuZXJSYWRpdXNZKCkpKTsKICAgICAg
ICAgfQogCi0gICAgICAgIHdyYXBTaGFwZVZhbHVlID0gcmVjdGFuZ2xlVmFsdWUucmVsZWFzZSgp
OworICAgICAgICBiYXNpY1NoYXBlVmFsdWUgPSByZWN0YW5nbGVWYWx1ZS5yZWxlYXNlKCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBjYXNlIFdyYXBTaGFwZTo6V1JBUF9TSEFQRV9DSVJD
TEU6IHsKLSAgICAgICAgY29uc3QgV3JhcFNoYXBlQ2lyY2xlKiBjaXJjbGUgPSBzdGF0aWNfY2Fz
dDxjb25zdCBXcmFwU2hhcGVDaXJjbGUqPih3cmFwU2hhcGUpOwotICAgICAgICBSZWZQdHI8Q1NT
V3JhcFNoYXBlQ2lyY2xlPiBjaXJjbGVWYWx1ZSA9IENTU1dyYXBTaGFwZUNpcmNsZTo6Y3JlYXRl
KCk7CisgICAgY2FzZSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9DSVJDTEU6IHsKKyAgICAgICAg
Y29uc3QgQmFzaWNTaGFwZUNpcmNsZSogY2lyY2xlID0gc3RhdGljX2Nhc3Q8Y29uc3QgQmFzaWNT
aGFwZUNpcmNsZSo+KGJhc2ljU2hhcGUpOworICAgICAgICBSZWZQdHI8Q1NTQmFzaWNTaGFwZUNp
cmNsZT4gY2lyY2xlVmFsdWUgPSBDU1NCYXNpY1NoYXBlQ2lyY2xlOjpjcmVhdGUoKTsKIAogICAg
ICAgICBjaXJjbGVWYWx1ZS0+c2V0Q2VudGVyWChjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShj
aXJjbGUtPmNlbnRlclgoKSkpOwogICAgICAgICBjaXJjbGVWYWx1ZS0+c2V0Q2VudGVyWShjc3NW
YWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShjaXJjbGUtPmNlbnRlclkoKSkpOwogICAgICAgICBjaXJj
bGVWYWx1ZS0+c2V0UmFkaXVzKGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKGNpcmNsZS0+cmFk
aXVzKCkpKTsKIAotICAgICAgICB3cmFwU2hhcGVWYWx1ZSA9IGNpcmNsZVZhbHVlLnJlbGVhc2Uo
KTsKKyAgICAgICAgYmFzaWNTaGFwZVZhbHVlID0gY2lyY2xlVmFsdWUucmVsZWFzZSgpOwogICAg
ICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBXcmFwU2hhcGU6OldSQVBfU0hBUEVfRUxMSVBT
RTogewotICAgICAgICBjb25zdCBXcmFwU2hhcGVFbGxpcHNlKiBlbGxpcHNlID0gc3RhdGljX2Nh
c3Q8Y29uc3QgV3JhcFNoYXBlRWxsaXBzZSo+KHdyYXBTaGFwZSk7Ci0gICAgICAgIFJlZlB0cjxD
U1NXcmFwU2hhcGVFbGxpcHNlPiBlbGxpcHNlVmFsdWUgPSBDU1NXcmFwU2hhcGVFbGxpcHNlOjpj
cmVhdGUoKTsKKyAgICBjYXNlIEJhc2ljU2hhcGU6OkJBU0lDX1NIQVBFX0VMTElQU0U6IHsKKyAg
ICAgICAgY29uc3QgQmFzaWNTaGFwZUVsbGlwc2UqIGVsbGlwc2UgPSBzdGF0aWNfY2FzdDxjb25z
dCBCYXNpY1NoYXBlRWxsaXBzZSo+KGJhc2ljU2hhcGUpOworICAgICAgICBSZWZQdHI8Q1NTQmFz
aWNTaGFwZUVsbGlwc2U+IGVsbGlwc2VWYWx1ZSA9IENTU0Jhc2ljU2hhcGVFbGxpcHNlOjpjcmVh
dGUoKTsKIAogICAgICAgICBlbGxpcHNlVmFsdWUtPnNldENlbnRlclgoY3NzVmFsdWVQb29sKCku
Y3JlYXRlVmFsdWUoZWxsaXBzZS0+Y2VudGVyWCgpKSk7CiAgICAgICAgIGVsbGlwc2VWYWx1ZS0+
c2V0Q2VudGVyWShjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShlbGxpcHNlLT5jZW50ZXJZKCkp
KTsKICAgICAgICAgZWxsaXBzZVZhbHVlLT5zZXRSYWRpdXNYKGNzc1ZhbHVlUG9vbCgpLmNyZWF0
ZVZhbHVlKGVsbGlwc2UtPnJhZGl1c1goKSkpOwogICAgICAgICBlbGxpcHNlVmFsdWUtPnNldFJh
ZGl1c1koY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoZWxsaXBzZS0+cmFkaXVzWSgpKSk7CiAK
LSAgICAgICAgd3JhcFNoYXBlVmFsdWUgPSBlbGxpcHNlVmFsdWUucmVsZWFzZSgpOworICAgICAg
ICBiYXNpY1NoYXBlVmFsdWUgPSBlbGxpcHNlVmFsdWUucmVsZWFzZSgpOwogICAgICAgICBicmVh
azsKICAgICB9Ci0gICAgY2FzZSBXcmFwU2hhcGU6OldSQVBfU0hBUEVfUE9MWUdPTjogewotICAg
ICAgICBjb25zdCBXcmFwU2hhcGVQb2x5Z29uKiBwb2x5Z29uID0gc3RhdGljX2Nhc3Q8Y29uc3Qg
V3JhcFNoYXBlUG9seWdvbio+KHdyYXBTaGFwZSk7Ci0gICAgICAgIFJlZlB0cjxDU1NXcmFwU2hh
cGVQb2x5Z29uPiBwb2x5Z29uVmFsdWUgPSBDU1NXcmFwU2hhcGVQb2x5Z29uOjpjcmVhdGUoKTsK
KyAgICBjYXNlIEJhc2ljU2hhcGU6OkJBU0lDX1NIQVBFX1BPTFlHT046IHsKKyAgICAgICAgY29u
c3QgQmFzaWNTaGFwZVBvbHlnb24qIHBvbHlnb24gPSBzdGF0aWNfY2FzdDxjb25zdCBCYXNpY1No
YXBlUG9seWdvbio+KGJhc2ljU2hhcGUpOworICAgICAgICBSZWZQdHI8Q1NTQmFzaWNTaGFwZVBv
bHlnb24+IHBvbHlnb25WYWx1ZSA9IENTU0Jhc2ljU2hhcGVQb2x5Z29uOjpjcmVhdGUoKTsKIAog
ICAgICAgICBwb2x5Z29uVmFsdWUtPnNldFdpbmRSdWxlKHBvbHlnb24tPndpbmRSdWxlKCkpOwog
ICAgICAgICBjb25zdCBWZWN0b3I8TGVuZ3RoPiYgdmFsdWVzID0gcG9seWdvbi0+dmFsdWVzKCk7
CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB2YWx1ZXMuc2l6ZSgpOyBpICs9IDIp
CiAgICAgICAgICAgICBwb2x5Z29uVmFsdWUtPmFwcGVuZFBvaW50KGNzc1ZhbHVlUG9vbCgpLmNy
ZWF0ZVZhbHVlKHZhbHVlcy5hdChpKSksIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKHZhbHVl
cy5hdChpICsgMSkpKTsKIAotICAgICAgICB3cmFwU2hhcGVWYWx1ZSA9IHBvbHlnb25WYWx1ZS5y
ZWxlYXNlKCk7CisgICAgICAgIGJhc2ljU2hhcGVWYWx1ZSA9IHBvbHlnb25WYWx1ZS5yZWxlYXNl
KCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsK
ICAgICB9Ci0gICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlPFBhc3NSZWZQdHI8
Q1NTV3JhcFNoYXBlPiA+KHdyYXBTaGFwZVZhbHVlLnJlbGVhc2UoKSk7CisgICAgcmV0dXJuIGNz
c1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlPFBhc3NSZWZQdHI8Q1NTQmFzaWNTaGFwZT4gPihiYXNp
Y1NoYXBlVmFsdWUucmVsZWFzZSgpKTsKIH0KIAogc3RhdGljIExlbmd0aCBjb252ZXJ0VG9MZW5n
dGgoY29uc3QgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciwgQ1NTUHJpbWl0aXZlVmFsdWUq
IHZhbHVlKQpAQCAtMTA1LDE0ICsxMDUsMTQgQEAgc3RhdGljIExlbmd0aCBjb252ZXJ0VG9MZW5n
dGgoY29uc3QgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciwgQ1NTUHJpbWl0aXZlVmEKICAg
ICByZXR1cm4gdmFsdWUtPmNvbnZlcnRUb0xlbmd0aDxGaXhlZEludGVnZXJDb252ZXJzaW9uIHwg
Rml4ZWRGbG9hdENvbnZlcnNpb24gfCBQZXJjZW50Q29udmVyc2lvbiB8IFZpZXdwb3J0UGVyY2Vu
dGFnZUNvbnZlcnNpb24+KHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIHN0eWxlUmVzb2x2ZXItPnJv
b3RFbGVtZW50U3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgp
KTsKIH0KIAotUGFzc1JlZlB0cjxXcmFwU2hhcGU+IHdyYXBTaGFwZUZvclZhbHVlKGNvbnN0IFN0
eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIsIGNvbnN0IENTU1dyYXBTaGFwZSogd3JhcFNoYXBl
VmFsdWUpCitQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IGJhc2ljU2hhcGVGb3JWYWx1ZShjb25zdCBT
dHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyLCBjb25zdCBDU1NCYXNpY1NoYXBlKiBiYXNpY1No
YXBlVmFsdWUpCiB7Ci0gICAgUmVmUHRyPFdyYXBTaGFwZT4gd3JhcFNoYXBlOworICAgIFJlZlB0
cjxCYXNpY1NoYXBlPiBiYXNpY1NoYXBlOwogCi0gICAgc3dpdGNoICh3cmFwU2hhcGVWYWx1ZS0+
dHlwZSgpKSB7Ci0gICAgY2FzZSBDU1NXcmFwU2hhcGU6OkNTU19XUkFQX1NIQVBFX1JFQ1RBTkdM
RTogewotICAgICAgICBjb25zdCBDU1NXcmFwU2hhcGVSZWN0YW5nbGUqIHJlY3RWYWx1ZSA9IHN0
YXRpY19jYXN0PGNvbnN0IENTU1dyYXBTaGFwZVJlY3RhbmdsZSAqPih3cmFwU2hhcGVWYWx1ZSk7
Ci0gICAgICAgIFJlZlB0cjxXcmFwU2hhcGVSZWN0YW5nbGU+IHJlY3QgPSBXcmFwU2hhcGVSZWN0
YW5nbGU6OmNyZWF0ZSgpOworICAgIHN3aXRjaCAoYmFzaWNTaGFwZVZhbHVlLT50eXBlKCkpIHsK
KyAgICBjYXNlIENTU0Jhc2ljU2hhcGU6OkNTU19CQVNJQ19TSEFQRV9SRUNUQU5HTEU6IHsKKyAg
ICAgICAgY29uc3QgQ1NTQmFzaWNTaGFwZVJlY3RhbmdsZSogcmVjdFZhbHVlID0gc3RhdGljX2Nh
c3Q8Y29uc3QgQ1NTQmFzaWNTaGFwZVJlY3RhbmdsZSAqPihiYXNpY1NoYXBlVmFsdWUpOworICAg
ICAgICBSZWZQdHI8QmFzaWNTaGFwZVJlY3RhbmdsZT4gcmVjdCA9IEJhc2ljU2hhcGVSZWN0YW5n
bGU6OmNyZWF0ZSgpOwogCiAgICAgICAgIHJlY3QtPnNldFgoY29udmVydFRvTGVuZ3RoKHN0eWxl
UmVzb2x2ZXIsIHJlY3RWYWx1ZS0+eCgpKSk7CiAgICAgICAgIHJlY3QtPnNldFkoY29udmVydFRv
TGVuZ3RoKHN0eWxlUmVzb2x2ZXIsIHJlY3RWYWx1ZS0+eSgpKSk7CkBAIC0xMjMsNDcgKzEyMyw0
NyBAQCBQYXNzUmVmUHRyPFdyYXBTaGFwZT4gd3JhcFNoYXBlRm9yVmFsdWUoY29uc3QgU3R5bGVS
ZXNvbHZlciogc3R5bGVSZXNvbHZlciwgY29ucwogICAgICAgICAgICAgaWYgKHJlY3RWYWx1ZS0+
cmFkaXVzWSgpKQogICAgICAgICAgICAgICAgIHJlY3QtPnNldENvcm5lclJhZGl1c1koY29udmVy
dFRvTGVuZ3RoKHN0eWxlUmVzb2x2ZXIsIHJlY3RWYWx1ZS0+cmFkaXVzWSgpKSk7CiAgICAgICAg
IH0KLSAgICAgICAgd3JhcFNoYXBlID0gcmVjdC5yZWxlYXNlKCk7CisgICAgICAgIGJhc2ljU2hh
cGUgPSByZWN0LnJlbGVhc2UoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGNhc2UgQ1NT
V3JhcFNoYXBlOjpDU1NfV1JBUF9TSEFQRV9DSVJDTEU6IHsKLSAgICAgICAgY29uc3QgQ1NTV3Jh
cFNoYXBlQ2lyY2xlKiBjaXJjbGVWYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IENTU1dyYXBTaGFw
ZUNpcmNsZSAqPih3cmFwU2hhcGVWYWx1ZSk7Ci0gICAgICAgIFJlZlB0cjxXcmFwU2hhcGVDaXJj
bGU+IGNpcmNsZSA9IFdyYXBTaGFwZUNpcmNsZTo6Y3JlYXRlKCk7CisgICAgY2FzZSBDU1NCYXNp
Y1NoYXBlOjpDU1NfQkFTSUNfU0hBUEVfQ0lSQ0xFOiB7CisgICAgICAgIGNvbnN0IENTU0Jhc2lj
U2hhcGVDaXJjbGUqIGNpcmNsZVZhbHVlID0gc3RhdGljX2Nhc3Q8Y29uc3QgQ1NTQmFzaWNTaGFw
ZUNpcmNsZSAqPihiYXNpY1NoYXBlVmFsdWUpOworICAgICAgICBSZWZQdHI8QmFzaWNTaGFwZUNp
cmNsZT4gY2lyY2xlID0gQmFzaWNTaGFwZUNpcmNsZTo6Y3JlYXRlKCk7CiAKICAgICAgICAgY2ly
Y2xlLT5zZXRDZW50ZXJYKGNvbnZlcnRUb0xlbmd0aChzdHlsZVJlc29sdmVyLCBjaXJjbGVWYWx1
ZS0+Y2VudGVyWCgpKSk7CiAgICAgICAgIGNpcmNsZS0+c2V0Q2VudGVyWShjb252ZXJ0VG9MZW5n
dGgoc3R5bGVSZXNvbHZlciwgY2lyY2xlVmFsdWUtPmNlbnRlclkoKSkpOwogICAgICAgICBjaXJj
bGUtPnNldFJhZGl1cyhjb252ZXJ0VG9MZW5ndGgoc3R5bGVSZXNvbHZlciwgY2lyY2xlVmFsdWUt
PnJhZGl1cygpKSk7CiAKLSAgICAgICAgd3JhcFNoYXBlID0gY2lyY2xlLnJlbGVhc2UoKTsKKyAg
ICAgICAgYmFzaWNTaGFwZSA9IGNpcmNsZS5yZWxlYXNlKCk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KLSAgICBjYXNlIENTU1dyYXBTaGFwZTo6Q1NTX1dSQVBfU0hBUEVfRUxMSVBTRTogewotICAg
ICAgICBjb25zdCBDU1NXcmFwU2hhcGVFbGxpcHNlKiBlbGxpcHNlVmFsdWUgPSBzdGF0aWNfY2Fz
dDxjb25zdCBDU1NXcmFwU2hhcGVFbGxpcHNlICo+KHdyYXBTaGFwZVZhbHVlKTsKLSAgICAgICAg
UmVmUHRyPFdyYXBTaGFwZUVsbGlwc2U+IGVsbGlwc2UgPSBXcmFwU2hhcGVFbGxpcHNlOjpjcmVh
dGUoKTsKKyAgICBjYXNlIENTU0Jhc2ljU2hhcGU6OkNTU19CQVNJQ19TSEFQRV9FTExJUFNFOiB7
CisgICAgICAgIGNvbnN0IENTU0Jhc2ljU2hhcGVFbGxpcHNlKiBlbGxpcHNlVmFsdWUgPSBzdGF0
aWNfY2FzdDxjb25zdCBDU1NCYXNpY1NoYXBlRWxsaXBzZSAqPihiYXNpY1NoYXBlVmFsdWUpOwor
ICAgICAgICBSZWZQdHI8QmFzaWNTaGFwZUVsbGlwc2U+IGVsbGlwc2UgPSBCYXNpY1NoYXBlRWxs
aXBzZTo6Y3JlYXRlKCk7CiAKICAgICAgICAgZWxsaXBzZS0+c2V0Q2VudGVyWChjb252ZXJ0VG9M
ZW5ndGgoc3R5bGVSZXNvbHZlciwgZWxsaXBzZVZhbHVlLT5jZW50ZXJYKCkpKTsKICAgICAgICAg
ZWxsaXBzZS0+c2V0Q2VudGVyWShjb252ZXJ0VG9MZW5ndGgoc3R5bGVSZXNvbHZlciwgZWxsaXBz
ZVZhbHVlLT5jZW50ZXJZKCkpKTsKICAgICAgICAgZWxsaXBzZS0+c2V0UmFkaXVzWChjb252ZXJ0
VG9MZW5ndGgoc3R5bGVSZXNvbHZlciwgZWxsaXBzZVZhbHVlLT5yYWRpdXNYKCkpKTsKICAgICAg
ICAgZWxsaXBzZS0+c2V0UmFkaXVzWShjb252ZXJ0VG9MZW5ndGgoc3R5bGVSZXNvbHZlciwgZWxs
aXBzZVZhbHVlLT5yYWRpdXNZKCkpKTsKIAotICAgICAgICB3cmFwU2hhcGUgPSBlbGxpcHNlLnJl
bGVhc2UoKTsKKyAgICAgICAgYmFzaWNTaGFwZSA9IGVsbGlwc2UucmVsZWFzZSgpOwogICAgICAg
ICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBDU1NXcmFwU2hhcGU6OkNTU19XUkFQX1NIQVBFX1BP
TFlHT046IHsKLSAgICAgICAgY29uc3QgQ1NTV3JhcFNoYXBlUG9seWdvbiogcG9seWdvblZhbHVl
ID0gc3RhdGljX2Nhc3Q8Y29uc3QgQ1NTV3JhcFNoYXBlUG9seWdvbiAqPih3cmFwU2hhcGVWYWx1
ZSk7Ci0gICAgICAgIFJlZlB0cjxXcmFwU2hhcGVQb2x5Z29uPiBwb2x5Z29uID0gV3JhcFNoYXBl
UG9seWdvbjo6Y3JlYXRlKCk7CisgICAgY2FzZSBDU1NCYXNpY1NoYXBlOjpDU1NfQkFTSUNfU0hB
UEVfUE9MWUdPTjogeworICAgICAgICBjb25zdCBDU1NCYXNpY1NoYXBlUG9seWdvbiogcG9seWdv
blZhbHVlID0gc3RhdGljX2Nhc3Q8Y29uc3QgQ1NTQmFzaWNTaGFwZVBvbHlnb24gKj4oYmFzaWNT
aGFwZVZhbHVlKTsKKyAgICAgICAgUmVmUHRyPEJhc2ljU2hhcGVQb2x5Z29uPiBwb2x5Z29uID0g
QmFzaWNTaGFwZVBvbHlnb246OmNyZWF0ZSgpOwogCiAgICAgICAgIHBvbHlnb24tPnNldFdpbmRS
dWxlKHBvbHlnb25WYWx1ZS0+d2luZFJ1bGUoKSk7CiAgICAgICAgIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8Q1NTUHJpbWl0aXZlVmFsdWU+ID4mIHZhbHVlcyA9IHBvbHlnb25WYWx1ZS0+dmFsdWVzKCk7
CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB2YWx1ZXMuc2l6ZSgpOyBpICs9IDIp
CiAgICAgICAgICAgICBwb2x5Z29uLT5hcHBlbmRQb2ludChjb252ZXJ0VG9MZW5ndGgoc3R5bGVS
ZXNvbHZlciwgdmFsdWVzLmF0KGkpLmdldCgpKSwgY29udmVydFRvTGVuZ3RoKHN0eWxlUmVzb2x2
ZXIsIHZhbHVlcy5hdChpICsgMSkuZ2V0KCkpKTsKIAotICAgICAgICB3cmFwU2hhcGUgPSBwb2x5
Z29uLnJlbGVhc2UoKTsKKyAgICAgICAgYmFzaWNTaGFwZSA9IHBvbHlnb24ucmVsZWFzZSgpOwog
ICAgICAgICBicmVhazsKICAgICB9CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAg
fQotICAgIHJldHVybiB3cmFwU2hhcGUucmVsZWFzZSgpOworICAgIHJldHVybiBiYXNpY1NoYXBl
LnJlbGVhc2UoKTsKIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9CYXNpY1No
YXBlRnVuY3Rpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQmFzaWNTaGFwZUZ1bmN0aW9ucy5o
CmluZGV4IDUwYzI5MzQ2Zjg5OTMzNDRlNDFlZDMwZGU0ODE1ZTI1ZTdkYTM3NWEuLmQzNjA3ZTkw
OTkyOWMzNDFiMGMwNjlkM2U1Y2ViNjFmMTNmMTE3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9CYXNpY1NoYXBlRnVuY3Rpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0Jh
c2ljU2hhcGVGdW5jdGlvbnMuaApAQCAtMzQsMTMgKzM0LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgQmFzaWNTaGFwZTsKK2NsYXNzIENTU0Jhc2ljU2hhcGU7CiBjbGFzcyBD
U1NWYWx1ZTsKLWNsYXNzIENTU1dyYXBTaGFwZTsKIGNsYXNzIFN0eWxlUmVzb2x2ZXI7Ci1jbGFz
cyBXcmFwU2hhcGU7CiAKLVBhc3NSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlRm9yV3JhcFNoYXBlKGNv
bnN0IFdyYXBTaGFwZSopOwotUGFzc1JlZlB0cjxXcmFwU2hhcGU+IHdyYXBTaGFwZUZvclZhbHVl
KGNvbnN0IFN0eWxlUmVzb2x2ZXIqLCBjb25zdCBDU1NXcmFwU2hhcGUqKTsKK1Bhc3NSZWZQdHI8
Q1NTVmFsdWU+IHZhbHVlRm9yQmFzaWNTaGFwZShjb25zdCBCYXNpY1NoYXBlKik7CitQYXNzUmVm
UHRyPEJhc2ljU2hhcGU+IGJhc2ljU2hhcGVGb3JWYWx1ZShjb25zdCBTdHlsZVJlc29sdmVyKiwg
Y29uc3QgQ1NTQmFzaWNTaGFwZSopOwogCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQmFz
aWNTaGFwZXMuY3BwCmluZGV4IDE1MWJkMGIwODMyYjM3MGE3ZmI1M2U2ODBmYjUxMzk0YjZkYWMx
YTIuLmMwN2Q2NjNjNjM4MTcyMDg0ODY2N2I5NTE3MGY2YTgxYTM3NWZhYzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcApAQCAtMzcsNyArMzcsNyBAQCB1c2luZyBuYW1lc3Bh
Y2UgV1RGOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVN0cmluZyBDU1NXcmFwU2hhcGVSZWN0
YW5nbGU6OmNzc1RleHQoKSBjb25zdAorU3RyaW5nIENTU0Jhc2ljU2hhcGVSZWN0YW5nbGU6OmNz
c1RleHQoKSBjb25zdAogewogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIHJlc3VsdC5y
ZXNlcnZlQ2FwYWNpdHkoMzIpOwpAQCAtNzAsNyArNzAsNyBAQCBTdHJpbmcgQ1NTV3JhcFNoYXBl
UmVjdGFuZ2xlOjpjc3NUZXh0KCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7
CiB9CiAKLVN0cmluZyBDU1NXcmFwU2hhcGVDaXJjbGU6OmNzc1RleHQoKSBjb25zdAorU3RyaW5n
IENTU0Jhc2ljU2hhcGVDaXJjbGU6OmNzc1RleHQoKSBjb25zdAogewogICAgIFN0cmluZ0J1aWxk
ZXIgcmVzdWx0OwogICAgIHJlc3VsdC5yZXNlcnZlQ2FwYWNpdHkoMzIpOwpAQCAtODksNyArODks
NyBAQCBTdHJpbmcgQ1NTV3JhcFNoYXBlQ2lyY2xlOjpjc3NUZXh0KCkgY29uc3QKICAgICByZXR1
cm4gcmVzdWx0LnRvU3RyaW5nKCk7CiB9CiAKLVN0cmluZyBDU1NXcmFwU2hhcGVFbGxpcHNlOjpj
c3NUZXh0KCkgY29uc3QKK1N0cmluZyBDU1NCYXNpY1NoYXBlRWxsaXBzZTo6Y3NzVGV4dCgpIGNv
bnN0CiB7CiAgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CiAgICAgcmVzdWx0LnJlc2VydmVDYXBh
Y2l0eSgzMik7CkBAIC0xMTAsNyArMTEwLDcgQEAgU3RyaW5nIENTU1dyYXBTaGFwZUVsbGlwc2U6
OmNzc1RleHQoKSBjb25zdAogICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKIH0KIAotU3Ry
aW5nIENTU1dyYXBTaGFwZVBvbHlnb246OmNzc1RleHQoKSBjb25zdAorU3RyaW5nIENTU0Jhc2lj
U2hhcGVQb2x5Z29uOjpjc3NUZXh0KCkgY29uc3QKIHsKICAgICBTdHJpbmdCdWlsZGVyIHJlc3Vs
dDsKICAgICByZXN1bHQucmVzZXJ2ZUNhcGFjaXR5KDMyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2lj
U2hhcGVzLmgKaW5kZXggODY1YmFiNWFmY2Y4Njk2MDYwZWNmYzViYjM0ZmY4NzE3YzhjNGRlNS4u
NTEwMmYyZjBiZDIyNjI0NGFhYzM3OTg0YTNkNmQxMmJlOTI0ODQ2YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0Jhc2ljU2hhcGVzLmgKQEAgLTM4LDI4ICszOCwyOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIENTU1dyYXBTaGFwZSA6IHB1YmxpYyBSZWZDb3VudGVkPENTU1dyYXBTaGFw
ZT4geworY2xhc3MgQ1NTQmFzaWNTaGFwZSA6IHB1YmxpYyBSZWZDb3VudGVkPENTU0Jhc2ljU2hh
cGU+IHsKIHB1YmxpYzoKICAgICBlbnVtIFR5cGUgewotICAgICAgICBDU1NfV1JBUF9TSEFQRV9S
RUNUQU5HTEUgPSAxLAotICAgICAgICBDU1NfV1JBUF9TSEFQRV9DSVJDTEUgPSAyLAotICAgICAg
ICBDU1NfV1JBUF9TSEFQRV9FTExJUFNFID0gMywKLSAgICAgICAgQ1NTX1dSQVBfU0hBUEVfUE9M
WUdPTiA9IDQKKyAgICAgICAgQ1NTX0JBU0lDX1NIQVBFX1JFQ1RBTkdMRSA9IDEsCisgICAgICAg
IENTU19CQVNJQ19TSEFQRV9DSVJDTEUgPSAyLAorICAgICAgICBDU1NfQkFTSUNfU0hBUEVfRUxM
SVBTRSA9IDMsCisgICAgICAgIENTU19CQVNJQ19TSEFQRV9QT0xZR09OID0gNAogICAgIH07CiAK
ICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBj
c3NUZXh0KCkgY29uc3QgPSAwOwogCiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+Q1NTV3JhcFNoYXBl
KCkgeyB9CisgICAgdmlydHVhbCB+Q1NTQmFzaWNTaGFwZSgpIHsgfQogCiBwcm90ZWN0ZWQ6Ci0g
ICAgQ1NTV3JhcFNoYXBlKCkgeyB9CisgICAgQ1NTQmFzaWNTaGFwZSgpIHsgfQogfTsKIAotY2xh
c3MgQ1NTV3JhcFNoYXBlUmVjdGFuZ2xlIDogcHVibGljIENTU1dyYXBTaGFwZSB7CitjbGFzcyBD
U1NCYXNpY1NoYXBlUmVjdGFuZ2xlIDogcHVibGljIENTU0Jhc2ljU2hhcGUgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU1dyYXBTaGFwZVJlY3RhbmdsZT4gY3JlYXRlKCkgeyBy
ZXR1cm4gYWRvcHRSZWYobmV3IENTU1dyYXBTaGFwZVJlY3RhbmdsZSk7IH0KKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlUmVjdGFuZ2xlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9w
dFJlZihuZXcgQ1NTQmFzaWNTaGFwZVJlY3RhbmdsZSk7IH0KIAogICAgIENTU1ByaW1pdGl2ZVZh
bHVlKiB4KCkgY29uc3QgeyByZXR1cm4gbV94LmdldCgpOyB9CiAgICAgQ1NTUHJpbWl0aXZlVmFs
dWUqIHkoKSBjb25zdCB7IHJldHVybiBtX3kuZ2V0KCk7IH0KQEAgLTc1LDExICs3NSwxMSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRSYWRpdXNYKFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IHJhZGl1c1gpIHsgbV9yYWRpdXNYID0gcmFkaXVzWDsgfQogICAgIHZvaWQgc2V0UmFkaXVzWShQ
YXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiByYWRpdXNZKSB7IG1fcmFkaXVzWSA9IHJhZGl1
c1k7IH0KIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQ1NTX1dSQVBf
U0hBUEVfUkVDVEFOR0xFOyB9CisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVy
biBDU1NfQkFTSUNfU0hBUEVfUkVDVEFOR0xFOyB9CiAgICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4
dCgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIENTU1dyYXBTaGFwZVJlY3RhbmdsZSgpIHsgfQor
ICAgIENTU0Jhc2ljU2hhcGVSZWN0YW5nbGUoKSB7IH0KIAogICAgIFJlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gbV95OwogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV94OwpAQCAtODks
OSArODksOSBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV9yYWRp
dXNZOwogfTsKIAotY2xhc3MgQ1NTV3JhcFNoYXBlQ2lyY2xlIDogcHVibGljIENTU1dyYXBTaGFw
ZSB7CitjbGFzcyBDU1NCYXNpY1NoYXBlQ2lyY2xlIDogcHVibGljIENTU0Jhc2ljU2hhcGUgewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU1dyYXBTaGFwZUNpcmNsZT4gY3JlYXRl
KCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENTU1dyYXBTaGFwZUNpcmNsZSk7IH0KKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlQ2lyY2xlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9w
dFJlZihuZXcgQ1NTQmFzaWNTaGFwZUNpcmNsZSk7IH0KIAogICAgIENTU1ByaW1pdGl2ZVZhbHVl
KiBjZW50ZXJYKCkgY29uc3QgeyByZXR1cm4gbV9jZW50ZXJYLmdldCgpOyB9CiAgICAgQ1NTUHJp
bWl0aXZlVmFsdWUqIGNlbnRlclkoKSBjb25zdCB7IHJldHVybiBtX2NlbnRlclkuZ2V0KCk7IH0K
QEAgLTEwMSwyMCArMTAxLDIwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENlbnRlclkoUGFzc1Jl
ZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY2VudGVyWSkgeyBtX2NlbnRlclkgPSBjZW50ZXJZOyB9
CiAgICAgdm9pZCBzZXRSYWRpdXMoUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcmFkaXVz
KSB7IG1fcmFkaXVzID0gcmFkaXVzOyB9CiAKLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0
IHsgcmV0dXJuIENTU19XUkFQX1NIQVBFX0NJUkNMRTsgfQorICAgIHZpcnR1YWwgVHlwZSB0eXBl
KCkgY29uc3QgeyByZXR1cm4gQ1NTX0JBU0lDX1NIQVBFX0NJUkNMRTsgfQogICAgIHZpcnR1YWwg
U3RyaW5nIGNzc1RleHQoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBDU1NXcmFwU2hhcGVDaXJj
bGUoKSB7IH0KKyAgICBDU1NCYXNpY1NoYXBlQ2lyY2xlKCkgeyB9CiAKICAgICBSZWZQdHI8Q1NT
UHJpbWl0aXZlVmFsdWU+IG1fY2VudGVyWTsKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IG1fY2VudGVyWDsKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fcmFkaXVzOwogfTsK
IAotY2xhc3MgQ1NTV3JhcFNoYXBlRWxsaXBzZSA6IHB1YmxpYyBDU1NXcmFwU2hhcGUgeworY2xh
c3MgQ1NTQmFzaWNTaGFwZUVsbGlwc2UgOiBwdWJsaWMgQ1NTQmFzaWNTaGFwZSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTV3JhcFNoYXBlRWxsaXBzZT4gY3JlYXRlKCkgeyBy
ZXR1cm4gYWRvcHRSZWYobmV3IENTU1dyYXBTaGFwZUVsbGlwc2UpOyB9CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8Q1NTQmFzaWNTaGFwZUVsbGlwc2U+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVm
KG5ldyBDU1NCYXNpY1NoYXBlRWxsaXBzZSk7IH0KIAogICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBj
ZW50ZXJYKCkgY29uc3QgeyByZXR1cm4gbV9jZW50ZXJYLmdldCgpOyB9CiAgICAgQ1NTUHJpbWl0
aXZlVmFsdWUqIGNlbnRlclkoKSBjb25zdCB7IHJldHVybiBtX2NlbnRlclkuZ2V0KCk7IH0KQEAg
LTEyNiwxMSArMTI2LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJhZGl1c1goUGFzc1JlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gcmFkaXVzWCkgeyBtX3JhZGl1c1ggPSByYWRpdXNYOyB9CiAg
ICAgdm9pZCBzZXRSYWRpdXNZKFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHJhZGl1c1kp
IHsgbV9yYWRpdXNZID0gcmFkaXVzWTsgfQogCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25z
dCB7IHJldHVybiBDU1NfV1JBUF9TSEFQRV9FTExJUFNFOyB9CisgICAgdmlydHVhbCBUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBDU1NfQkFTSUNfU0hBUEVfRUxMSVBTRTsgfQogICAgIHZpcnR1
YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBDU1NXcmFwU2hhcGVF
bGxpcHNlKCkgeyB9CisgICAgQ1NTQmFzaWNTaGFwZUVsbGlwc2UoKSB7IH0KIAogICAgIFJlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV9jZW50ZXJYOwogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVW
YWx1ZT4gbV9jZW50ZXJZOwpAQCAtMTM4LDkgKzEzOCw5IEBAIHByaXZhdGU6CiAgICAgUmVmUHRy
PENTU1ByaW1pdGl2ZVZhbHVlPiBtX3JhZGl1c1k7CiB9OwogCi1jbGFzcyBDU1NXcmFwU2hhcGVQ
b2x5Z29uIDogcHVibGljIENTU1dyYXBTaGFwZSB7CitjbGFzcyBDU1NCYXNpY1NoYXBlUG9seWdv
biA6IHB1YmxpYyBDU1NCYXNpY1NoYXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxDU1NXcmFwU2hhcGVQb2x5Z29uPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NT
V3JhcFNoYXBlUG9seWdvbik7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBl
UG9seWdvbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENTU0Jhc2ljU2hhcGVQb2x5
Z29uKTsgfQogCiAgICAgdm9pZCBhcHBlbmRQb2ludChQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZh
bHVlPiB4LCBQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiB5KQogICAgIHsKQEAgLTE1NSwx
MSArMTU1LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFdpbmRSdWxlKFdpbmRSdWxlIHcpIHsg
bV93aW5kUnVsZSA9IHc7IH0KICAgICBXaW5kUnVsZSB3aW5kUnVsZSgpIGNvbnN0IHsgcmV0dXJu
IG1fd2luZFJ1bGU7IH0KIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4g
Q1NTX1dSQVBfU0hBUEVfUE9MWUdPTjsgfQorICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3Qg
eyByZXR1cm4gQ1NTX0JBU0lDX1NIQVBFX1BPTFlHT047IH0KICAgICB2aXJ0dWFsIFN0cmluZyBj
c3NUZXh0KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgQ1NTV3JhcFNoYXBlUG9seWdvbigpCisg
ICAgQ1NTQmFzaWNTaGFwZVBvbHlnb24oKQogICAgICAgICA6IG1fd2luZFJ1bGUoUlVMRV9OT05a
RVJPKQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDFjNzg2MjRhYjJkNzc5YTU4Zjc1ZTJjY2Q0YmU0
ZTM2ZmFlNGQ3OTMuLmZkMDZlNGYwMWFmNTE0MGRlZTIwN2M3MmY0ZjgzYzA1ZmVmNTRjYmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
Y3BwCkBAIC0yNDMxLDExICsyNDMxLDExIEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0CiAgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRTaGFwZUluc2lkZToKICAgICAgICAgICAgIGlmICgh
c3R5bGUtPndyYXBTaGFwZUluc2lkZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1
ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVBdXRvKTsKLSAgICAgICAgICAg
IHJldHVybiB2YWx1ZUZvcldyYXBTaGFwZShzdHlsZS0+d3JhcFNoYXBlSW5zaWRlKCkpOworICAg
ICAgICAgICAgcmV0dXJuIHZhbHVlRm9yQmFzaWNTaGFwZShzdHlsZS0+d3JhcFNoYXBlSW5zaWRl
KCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0U2hhcGVPdXRzaWRlOgogICAgICAg
ICAgICAgaWYgKCFzdHlsZS0+d3JhcFNoYXBlT3V0c2lkZSgpKQogICAgICAgICAgICAgICAgIHJl
dHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVBdXRvKTsK
LSAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvcldyYXBTaGFwZShzdHlsZS0+d3JhcFNoYXBlT3V0
c2lkZSgpKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckJhc2ljU2hhcGUoc3R5bGUtPndy
YXBTaGFwZU91dHNpZGUoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRXcmFwVGhy
b3VnaDoKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShzdHls
ZS0+d3JhcFRocm91Z2goKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXgg
N2E5MTBjM2E0MjVlMTc2MDVjNWQ4ODkxYTE5ZTczZDhlOGFhODYxMC4uZmIzOGE3ODFmZWM2ZGE3
NWUxMzAyMGE0YzI3NTdmY2IzZjQ1ZDk5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAg
LTI3MjksNyArMjcyOSw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3BlcnR5
SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlQXV0
bykKICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAo
dmFsdWUtPnVuaXQgPT0gQ1NTUGFyc2VyVmFsdWU6OkZ1bmN0aW9uKQotICAgICAgICAgICAgcmV0
dXJuIHBhcnNlRXhjbHVzaW9uU2hhcGUoKHByb3BJZCA9PSBDU1NQcm9wZXJ0eVdlYmtpdFNoYXBl
SW5zaWRlKSwgaW1wb3J0YW50KTsKKyAgICAgICAgICAgIHJldHVybiBwYXJzZUJhc2ljU2hhcGUo
KHByb3BJZCA9PSBDU1NQcm9wZXJ0eVdlYmtpdFNoYXBlSW5zaWRlKSwgaW1wb3J0YW50KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFdyYXBNYXJnaW46CiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFdyYXBQYWRkaW5nOgpAQCAtNDUxNyw3ICs0NTE3LDcgQEAg
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlQ2xpcFNoYXBlKENTU1Byb3BlcnR5SUQgcHJvcElkLCBib29s
IGltcG9ydGFudCkKIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKIAotUGFzc1JlZlB0cjxD
U1NXcmFwU2hhcGU+IENTU1BhcnNlcjo6cGFyc2VFeGNsdXNpb25TaGFwZVJlY3RhbmdsZShDU1NQ
YXJzZXJWYWx1ZUxpc3QqIGFyZ3MpCitQYXNzUmVmUHRyPENTU0Jhc2ljU2hhcGU+IENTU1BhcnNl
cjo6cGFyc2VCYXNpY1NoYXBlUmVjdGFuZ2xlKENTU1BhcnNlclZhbHVlTGlzdCogYXJncykKIHsK
ICAgICBBU1NFUlQoYXJncyk7CiAKQEAgLTQ1MjUsNyArNDUyNSw3IEBAIFBhc3NSZWZQdHI8Q1NT
V3JhcFNoYXBlPiBDU1NQYXJzZXI6OnBhcnNlRXhjbHVzaW9uU2hhcGVSZWN0YW5nbGUoQ1NTUGFy
c2VyVmFsdWVMCiAgICAgaWYgKGFyZ3MtPnNpemUoKSAhPSA3ICYmIGFyZ3MtPnNpemUoKSAhPSA5
ICYmIGFyZ3MtPnNpemUoKSAhPSAxMSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBSZWZQdHI8
Q1NTV3JhcFNoYXBlUmVjdGFuZ2xlPiBzaGFwZSA9IENTU1dyYXBTaGFwZVJlY3RhbmdsZTo6Y3Jl
YXRlKCk7CisgICAgUmVmUHRyPENTU0Jhc2ljU2hhcGVSZWN0YW5nbGU+IHNoYXBlID0gQ1NTQmFz
aWNTaGFwZVJlY3RhbmdsZTo6Y3JlYXRlKCk7CiAKICAgICB1bnNpZ25lZCBhcmd1bWVudE51bWJl
ciA9IDA7CiAgICAgQ1NTUGFyc2VyVmFsdWUqIGFyZ3VtZW50ID0gYXJncy0+Y3VycmVudCgpOwpA
QCAtNDU3NSw3ICs0NTc1LDcgQEAgUGFzc1JlZlB0cjxDU1NXcmFwU2hhcGU+IENTU1BhcnNlcjo6
cGFyc2VFeGNsdXNpb25TaGFwZVJlY3RhbmdsZShDU1NQYXJzZXJWYWx1ZUwKICAgICByZXR1cm4g
c2hhcGU7CiB9CiAKLVBhc3NSZWZQdHI8Q1NTV3JhcFNoYXBlPiBDU1NQYXJzZXI6OnBhcnNlRXhj
bHVzaW9uU2hhcGVDaXJjbGUoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzKQorUGFzc1JlZlB0cjxD
U1NCYXNpY1NoYXBlPiBDU1NQYXJzZXI6OnBhcnNlQmFzaWNTaGFwZUNpcmNsZShDU1NQYXJzZXJW
YWx1ZUxpc3QqIGFyZ3MpCiB7CiAgICAgQVNTRVJUKGFyZ3MpOwogCkBAIC00NTgzLDcgKzQ1ODMs
NyBAQCBQYXNzUmVmUHRyPENTU1dyYXBTaGFwZT4gQ1NTUGFyc2VyOjpwYXJzZUV4Y2x1c2lvblNo
YXBlQ2lyY2xlKENTU1BhcnNlclZhbHVlTGlzdAogICAgIGlmIChhcmdzLT5zaXplKCkgIT0gNSkK
ICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBSZWZQdHI8Q1NTV3JhcFNoYXBlQ2lyY2xlPiBzaGFw
ZSA9IENTU1dyYXBTaGFwZUNpcmNsZTo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPENTU0Jhc2ljU2hh
cGVDaXJjbGU+IHNoYXBlID0gQ1NTQmFzaWNTaGFwZUNpcmNsZTo6Y3JlYXRlKCk7CiAKICAgICB1
bnNpZ25lZCBhcmd1bWVudE51bWJlciA9IDA7CiAgICAgQ1NTUGFyc2VyVmFsdWUqIGFyZ3VtZW50
ID0gYXJncy0+Y3VycmVudCgpOwpAQCAtNDYyNSw3ICs0NjI1LDcgQEAgUGFzc1JlZlB0cjxDU1NX
cmFwU2hhcGU+IENTU1BhcnNlcjo6cGFyc2VFeGNsdXNpb25TaGFwZUNpcmNsZShDU1NQYXJzZXJW
YWx1ZUxpc3QKICAgICByZXR1cm4gc2hhcGU7CiB9CiAKLVBhc3NSZWZQdHI8Q1NTV3JhcFNoYXBl
PiBDU1NQYXJzZXI6OnBhcnNlRXhjbHVzaW9uU2hhcGVFbGxpcHNlKENTU1BhcnNlclZhbHVlTGlz
dCogYXJncykKK1Bhc3NSZWZQdHI8Q1NTQmFzaWNTaGFwZT4gQ1NTUGFyc2VyOjpwYXJzZUJhc2lj
U2hhcGVFbGxpcHNlKENTU1BhcnNlclZhbHVlTGlzdCogYXJncykKIHsKICAgICBBU1NFUlQoYXJn
cyk7CiAKQEAgLTQ2MzMsNyArNDYzMyw3IEBAIFBhc3NSZWZQdHI8Q1NTV3JhcFNoYXBlPiBDU1NQ
YXJzZXI6OnBhcnNlRXhjbHVzaW9uU2hhcGVFbGxpcHNlKENTU1BhcnNlclZhbHVlTGlzCiAgICAg
aWYgKGFyZ3MtPnNpemUoKSAhPSA3KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFJlZlB0cjxD
U1NXcmFwU2hhcGVFbGxpcHNlPiBzaGFwZSA9IENTU1dyYXBTaGFwZUVsbGlwc2U6OmNyZWF0ZSgp
OworICAgIFJlZlB0cjxDU1NCYXNpY1NoYXBlRWxsaXBzZT4gc2hhcGUgPSBDU1NCYXNpY1NoYXBl
RWxsaXBzZTo6Y3JlYXRlKCk7CiAgICAgdW5zaWduZWQgYXJndW1lbnROdW1iZXIgPSAwOwogICAg
IENTU1BhcnNlclZhbHVlKiBhcmd1bWVudCA9IGFyZ3MtPmN1cnJlbnQoKTsKICAgICB3aGlsZSAo
YXJndW1lbnQpIHsKQEAgLTQ2NzYsNyArNDY3Niw3IEBAIFBhc3NSZWZQdHI8Q1NTV3JhcFNoYXBl
PiBDU1NQYXJzZXI6OnBhcnNlRXhjbHVzaW9uU2hhcGVFbGxpcHNlKENTU1BhcnNlclZhbHVlTGlz
CiAgICAgcmV0dXJuIHNoYXBlOwogfQogCi1QYXNzUmVmUHRyPENTU1dyYXBTaGFwZT4gQ1NTUGFy
c2VyOjpwYXJzZUV4Y2x1c2lvblNoYXBlUG9seWdvbihDU1NQYXJzZXJWYWx1ZUxpc3QqIGFyZ3Mp
CitQYXNzUmVmUHRyPENTU0Jhc2ljU2hhcGU+IENTU1BhcnNlcjo6cGFyc2VCYXNpY1NoYXBlUG9s
eWdvbihDU1NQYXJzZXJWYWx1ZUxpc3QqIGFyZ3MpCiB7CiAgICAgQVNTRVJUKGFyZ3MpOwogCkBA
IC00Njg0LDcgKzQ2ODQsNyBAQCBQYXNzUmVmUHRyPENTU1dyYXBTaGFwZT4gQ1NTUGFyc2VyOjpw
YXJzZUV4Y2x1c2lvblNoYXBlUG9seWdvbihDU1NQYXJzZXJWYWx1ZUxpcwogICAgIGlmICghc2l6
ZSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBSZWZQdHI8Q1NTV3JhcFNoYXBlUG9seWdvbj4g
c2hhcGUgPSBDU1NXcmFwU2hhcGVQb2x5Z29uOjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8Q1NTQmFz
aWNTaGFwZVBvbHlnb24+IHNoYXBlID0gQ1NTQmFzaWNTaGFwZVBvbHlnb246OmNyZWF0ZSgpOwog
CiAgICAgQ1NTUGFyc2VyVmFsdWUqIGFyZ3VtZW50ID0gYXJncy0+Y3VycmVudCgpOwogICAgIGlm
IChhcmd1bWVudC0+aWQgPT0gQ1NTVmFsdWVFdmVub2RkIHx8IGFyZ3VtZW50LT5pZCA9PSBDU1NW
YWx1ZU5vbnplcm8pIHsKQEAgLTQ3MjcsNyArNDcyNyw3IEBAIFBhc3NSZWZQdHI8Q1NTV3JhcFNo
YXBlPiBDU1NQYXJzZXI6OnBhcnNlRXhjbHVzaW9uU2hhcGVQb2x5Z29uKENTU1BhcnNlclZhbHVl
TGlzCiAgICAgcmV0dXJuIHNoYXBlOwogfQogCi1ib29sIENTU1BhcnNlcjo6cGFyc2VFeGNsdXNp
b25TaGFwZShib29sIHNoYXBlSW5zaWRlLCBib29sIGltcG9ydGFudCkKK2Jvb2wgQ1NTUGFyc2Vy
OjpwYXJzZUJhc2ljU2hhcGUoYm9vbCBzaGFwZUluc2lkZSwgYm9vbCBpbXBvcnRhbnQpCiB7CiAg
ICAgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKICAgICBD
U1NQYXJzZXJWYWx1ZUxpc3QqIGFyZ3MgPSB2YWx1ZS0+ZnVuY3Rpb24tPmFyZ3MuZ2V0KCk7CkBA
IC00NzM1LDE2ICs0NzM1LDE2IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUV4Y2x1c2lvblNoYXBl
KGJvb2wgc2hhcGVJbnNpZGUsIGJvb2wgaW1wb3J0YW50KQogICAgIGlmICghYXJncykKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUmVmUHRyPENTU1dyYXBTaGFwZT4gc2hhcGU7CisgICAg
UmVmUHRyPENTU0Jhc2ljU2hhcGU+IHNoYXBlOwogCiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNl
KHZhbHVlLT5mdW5jdGlvbi0+bmFtZSwgInJlY3RhbmdsZSgiKSkKLSAgICAgICAgc2hhcGUgPSBw
YXJzZUV4Y2x1c2lvblNoYXBlUmVjdGFuZ2xlKGFyZ3MpOworICAgICAgICBzaGFwZSA9IHBhcnNl
QmFzaWNTaGFwZVJlY3RhbmdsZShhcmdzKTsKICAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2Fz
ZSh2YWx1ZS0+ZnVuY3Rpb24tPm5hbWUsICJjaXJjbGUoIikpCi0gICAgICAgIHNoYXBlID0gcGFy
c2VFeGNsdXNpb25TaGFwZUNpcmNsZShhcmdzKTsKKyAgICAgICAgc2hhcGUgPSBwYXJzZUJhc2lj
U2hhcGVDaXJjbGUoYXJncyk7CiAgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUt
PmZ1bmN0aW9uLT5uYW1lLCAiZWxsaXBzZSgiKSkKLSAgICAgICAgc2hhcGUgPSBwYXJzZUV4Y2x1
c2lvblNoYXBlRWxsaXBzZShhcmdzKTsKKyAgICAgICAgc2hhcGUgPSBwYXJzZUJhc2ljU2hhcGVF
bGxpcHNlKGFyZ3MpOwogICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLT5mdW5j
dGlvbi0+bmFtZSwgInBvbHlnb24oIikpCi0gICAgICAgIHNoYXBlID0gcGFyc2VFeGNsdXNpb25T
aGFwZVBvbHlnb24oYXJncyk7CisgICAgICAgIHNoYXBlID0gcGFyc2VCYXNpY1NoYXBlUG9seWdv
bihhcmdzKTsKIAogICAgIGlmIChzaGFwZSkgewogICAgICAgICBhZGRQcm9wZXJ0eShzaGFwZUlu
c2lkZSA/IENTU1Byb3BlcnR5V2Via2l0U2hhcGVJbnNpZGUgOiBDU1NQcm9wZXJ0eVdlYmtpdFNo
YXBlT3V0c2lkZSwgY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoc2hhcGUucmVsZWFzZSgpKSwg
aW1wb3J0YW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCAxNmU1YmQ3MGM2YjUzZTUyZTAy
MjYyMDI1ZmU5MDRiOGIxODVmYWNhLi5lN2VkNTc5NzlmZDIxZWRjNDU1YjNmNjJlODI2Yjc0OWM3
OTJkNjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC01MSw3ICs1MSw3IEBAIGNsYXNzIENT
U1Byb3BlcnR5OwogY2xhc3MgQ1NTU2VsZWN0b3JMaXN0OwogY2xhc3MgQ1NTVmFsdWU7CiBjbGFz
cyBDU1NWYWx1ZUxpc3Q7Ci1jbGFzcyBDU1NXcmFwU2hhcGU7CitjbGFzcyBDU1NCYXNpY1NoYXBl
OwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgTWVkaWFRdWVyeUV4cDsK
QEAgLTE0OCwxMSArMTQ4LDExIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgcGFyc2VDbGlwU2hhcGUo
Q1NTUHJvcGVydHlJRCwgYm9vbCBpbXBvcnRhbnQpOwogCi0gICAgYm9vbCBwYXJzZUV4Y2x1c2lv
blNoYXBlKGJvb2wgc2hhcGVJbnNpZGUsIGJvb2wgaW1wb3J0YW50KTsKLSAgICBQYXNzUmVmUHRy
PENTU1dyYXBTaGFwZT4gcGFyc2VFeGNsdXNpb25TaGFwZVJlY3RhbmdsZShDU1NQYXJzZXJWYWx1
ZUxpc3QqIGFyZ3MpOwotICAgIFBhc3NSZWZQdHI8Q1NTV3JhcFNoYXBlPiBwYXJzZUV4Y2x1c2lv
blNoYXBlQ2lyY2xlKENTU1BhcnNlclZhbHVlTGlzdCogYXJncyk7Ci0gICAgUGFzc1JlZlB0cjxD
U1NXcmFwU2hhcGU+IHBhcnNlRXhjbHVzaW9uU2hhcGVFbGxpcHNlKENTU1BhcnNlclZhbHVlTGlz
dCogYXJncyk7Ci0gICAgUGFzc1JlZlB0cjxDU1NXcmFwU2hhcGU+IHBhcnNlRXhjbHVzaW9uU2hh
cGVQb2x5Z29uKENTU1BhcnNlclZhbHVlTGlzdCogYXJncyk7CisgICAgYm9vbCBwYXJzZUJhc2lj
U2hhcGUoYm9vbCBzaGFwZUluc2lkZSwgYm9vbCBpbXBvcnRhbnQpOworICAgIFBhc3NSZWZQdHI8
Q1NTQmFzaWNTaGFwZT4gcGFyc2VCYXNpY1NoYXBlUmVjdGFuZ2xlKENTU1BhcnNlclZhbHVlTGlz
dCogYXJncyk7CisgICAgUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlPiBwYXJzZUJhc2ljU2hhcGVD
aXJjbGUoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzKTsKKyAgICBQYXNzUmVmUHRyPENTU0Jhc2lj
U2hhcGU+IHBhcnNlQmFzaWNTaGFwZUVsbGlwc2UoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzKTsK
KyAgICBQYXNzUmVmUHRyPENTU0Jhc2ljU2hhcGU+IHBhcnNlQmFzaWNTaGFwZVBvbHlnb24oQ1NT
UGFyc2VyVmFsdWVMaXN0KiBhcmdzKTsKIAogICAgIGJvb2wgcGFyc2VGb250KGJvb2wgaW1wb3J0
YW50KTsKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlTGlzdD4gcGFyc2VGb250RmFtaWx5KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAppbmRleCAzMWJkMDU2NjIwOWUz
YjA0NzFlYjgxMDdiNWZkNTc5OGRmNDc0MTEzLi41YjJkN2M3NDczYTcwNzNjNTg2N2UzNWJjMjE1
YTY4NTQ0NzAyMTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZl
VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAK
QEAgLTM0Nyw3ICszNDcsNyBAQCB2b2lkIENTU1ByaW1pdGl2ZVZhbHVlOjppbml0KFBhc3NSZWZQ
dHI8Q1NTQ2FsY1ZhbHVlPiBjKQogICAgIG1fdmFsdWUuY2FsYyA9IGMubGVha1JlZigpOwogfQog
Ci12b2lkIENTU1ByaW1pdGl2ZVZhbHVlOjppbml0KFBhc3NSZWZQdHI8Q1NTV3JhcFNoYXBlPiBz
aGFwZSkKK3ZvaWQgQ1NTUHJpbWl0aXZlVmFsdWU6OmluaXQoUGFzc1JlZlB0cjxDU1NCYXNpY1No
YXBlPiBzaGFwZSkKIHsKICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1NIQVBFOwogICAg
IG1faGFzQ2FjaGVkQ1NTVGV4dCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZl
VmFsdWUuaAppbmRleCBmZDA4MzJkMzQ3ODBiOTY5NDUwMDUxOTQyMGRhMTNlZWQxZjM3Yjc4Li5j
ZDZmZDQ3ZTkzYzJkY2I5ZWYyZjFkMjdlOThkNTA3Zjc3ZmRiMDgyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWUuaApAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBRdWFkOwogY2xh
c3MgUkdCQ29sb3I7CiBjbGFzcyBSZWN0OwogY2xhc3MgUmVuZGVyU3R5bGU7Ci1jbGFzcyBDU1NX
cmFwU2hhcGU7CitjbGFzcyBDU1NCYXNpY1NoYXBlOwogCiBzdHJ1Y3QgTGVuZ3RoOwogCkBAIC0y
ODQsNyArMjg0LDcgQEAgcHVibGljOgogCiAgICAgRGFzaGJvYXJkUmVnaW9uKiBnZXREYXNoYm9h
cmRSZWdpb25WYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpbWl0aXZlVW5pdFR5cGUgIT0gQ1NT
X0RBU0hCT0FSRF9SRUdJT04gPyAwIDogbV92YWx1ZS5yZWdpb247IH0KIAotICAgIENTU1dyYXBT
aGFwZSogZ2V0U2hhcGVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpbWl0aXZlVW5pdFR5cGUg
IT0gQ1NTX1NIQVBFID8gMCA6IG1fdmFsdWUuc2hhcGU7IH0KKyAgICBDU1NCYXNpY1NoYXBlKiBn
ZXRTaGFwZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlwZSAhPSBDU1Nf
U0hBUEUgPyAwIDogbV92YWx1ZS5zaGFwZTsgfQogICAgIAogICAgIENTU0NhbGNWYWx1ZSogY3Nz
Q2FsY1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlwZSAhPSBDU1NfQ0FM
QyA/IDAgOiBtX3ZhbHVlLmNhbGM7IH0KIApAQCAtMzQwLDcgKzM0MCw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBpbml0KFBhc3NSZWZQdHI8UGFpcj4pOwogICAgIHZvaWQgaW5pdChQYXNzUmVmUHRy
PFF1YWQ+KTsKICAgICB2b2lkIGluaXQoUGFzc1JlZlB0cjxEYXNoYm9hcmRSZWdpb24+KTsgLy8g
RklYTUU6IERhc2hib2FyZCByZWdpb24gc2hvdWxkIG5vdCBiZSBhIHByaW1pdGl2ZSB2YWx1ZS4K
LSAgICB2b2lkIGluaXQoUGFzc1JlZlB0cjxDU1NXcmFwU2hhcGU+KTsKKyAgICB2b2lkIGluaXQo
UGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlPik7CiAgICAgdm9pZCBpbml0KFBhc3NSZWZQdHI8Q1NT
Q2FsY1ZhbHVlPik7CiAgICAgYm9vbCBnZXREb3VibGVWYWx1ZUludGVybmFsKFVuaXRUeXBlcyB0
YXJnZXRVbml0VHlwZSwgZG91YmxlKiByZXN1bHQpIGNvbnN0OwogCkBAIC0zNTYsNyArMzU2LDcg
QEAgcHJpdmF0ZToKICAgICAgICAgdW5zaWduZWQgcmdiY29sb3I7CiAgICAgICAgIFBhaXIqIHBh
aXI7CiAgICAgICAgIERhc2hib2FyZFJlZ2lvbiogcmVnaW9uOwotICAgICAgICBDU1NXcmFwU2hh
cGUqIHNoYXBlOworICAgICAgICBDU1NCYXNpY1NoYXBlKiBzaGFwZTsKICAgICAgICAgQ1NTQ2Fs
Y1ZhbHVlKiBjYWxjOwogICAgIH0gbV92YWx1ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxk
ZXIuY3BwCmluZGV4IDNmYjNmMjlkOTUwMDJkNzZkZmNjN2Y1OTIwNmI4ZDg2MTQzYTk2OTMuLjVi
NjA3OTBhNGU3ZTQzMzFhN2Q0ZmI4ODk5ODIzYTBiYzA1MWQ2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZUJ1aWxkZXIuY3BwCkBAIC0xNzA1LDEwICsxNzA1LDEwIEBAIHB1YmxpYzoKIH07CiAKICNp
ZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi10ZW1wbGF0ZSA8V3JhcFNoYXBlKiAoUmVuZGVyU3R5
bGU6OipnZXR0ZXJGdW5jdGlvbikoKSBjb25zdCwgdm9pZCAoUmVuZGVyU3R5bGU6OipzZXR0ZXJG
dW5jdGlvbikoUGFzc1JlZlB0cjxXcmFwU2hhcGU+KSwgV3JhcFNoYXBlKiAoKmluaXRpYWxGdW5j
dGlvbikoKT4KK3RlbXBsYXRlIDxCYXNpY1NoYXBlKiAoUmVuZGVyU3R5bGU6OipnZXR0ZXJGdW5j
dGlvbikoKSBjb25zdCwgdm9pZCAoUmVuZGVyU3R5bGU6OipzZXR0ZXJGdW5jdGlvbikoUGFzc1Jl
ZlB0cjxCYXNpY1NoYXBlPiksIEJhc2ljU2hhcGUqICgqaW5pdGlhbEZ1bmN0aW9uKSgpPgogY2xh
c3MgQXBwbHlQcm9wZXJ0eVdyYXBTaGFwZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHZvaWQgc2V0
VmFsdWUoUmVuZGVyU3R5bGUqIHN0eWxlLCBQYXNzUmVmUHRyPFdyYXBTaGFwZT4gdmFsdWUpIHsg
KHN0eWxlLT4qc2V0dGVyRnVuY3Rpb24pKHZhbHVlKTsgfQorICAgIHN0YXRpYyB2b2lkIHNldFZh
bHVlKFJlbmRlclN0eWxlKiBzdHlsZSwgUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiB2YWx1ZSkgeyAo
c3R5bGUtPipzZXR0ZXJGdW5jdGlvbikodmFsdWUpOyB9CiAgICAgc3RhdGljIHZvaWQgYXBwbHlW
YWx1ZShTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAg
ewogICAgICAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkgewpAQCAtMTcxNiwxNCAr
MTcxNiwxNCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElk
ZW50KCkgPT0gQ1NTVmFsdWVBdXRvKQogICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVz
b2x2ZXItPnN0eWxlKCksIDApOwogICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUt
PmlzU2hhcGUoKSkgewotICAgICAgICAgICAgICAgIFJlZlB0cjxXcmFwU2hhcGU+IHdyYXBTaGFw
ZSA9IHdyYXBTaGFwZUZvclZhbHVlKHN0eWxlUmVzb2x2ZXIsIHByaW1pdGl2ZVZhbHVlLT5nZXRT
aGFwZVZhbHVlKCkpOworICAgICAgICAgICAgICAgIFJlZlB0cjxCYXNpY1NoYXBlPiB3cmFwU2hh
cGUgPSBiYXNpY1NoYXBlRm9yVmFsdWUoc3R5bGVSZXNvbHZlciwgcHJpbWl0aXZlVmFsdWUtPmdl
dFNoYXBlVmFsdWUoKSk7CiAgICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+
c3R5bGUoKSwgd3JhcFNoYXBlLnJlbGVhc2UoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICB9CiAgICAgc3RhdGljIFByb3BlcnR5SGFuZGxlciBjcmVhdGVIYW5kbGVyKCkKICAgICB7
Ci0gICAgICAgIFByb3BlcnR5SGFuZGxlciBoYW5kbGVyID0gQXBwbHlQcm9wZXJ0eURlZmF1bHRC
YXNlPFdyYXBTaGFwZSosIGdldHRlckZ1bmN0aW9uLCBQYXNzUmVmUHRyPFdyYXBTaGFwZT4sIHNl
dHRlckZ1bmN0aW9uLCBXcmFwU2hhcGUqLCBpbml0aWFsRnVuY3Rpb24+OjpjcmVhdGVIYW5kbGVy
KCk7CisgICAgICAgIFByb3BlcnR5SGFuZGxlciBoYW5kbGVyID0gQXBwbHlQcm9wZXJ0eURlZmF1
bHRCYXNlPEJhc2ljU2hhcGUqLCBnZXR0ZXJGdW5jdGlvbiwgUGFzc1JlZlB0cjxCYXNpY1NoYXBl
Piwgc2V0dGVyRnVuY3Rpb24sIEJhc2ljU2hhcGUqLCBpbml0aWFsRnVuY3Rpb24+OjpjcmVhdGVI
YW5kbGVyKCk7CiAgICAgICAgIHJldHVybiBQcm9wZXJ0eUhhbmRsZXIoaGFuZGxlci5pbmhlcml0
RnVuY3Rpb24oKSwgaGFuZGxlci5pbml0aWFsRnVuY3Rpb24oKSwgJmFwcGx5VmFsdWUpOwogICAg
IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBhNmE5
ZjJlZDE3MDQwMTMzZDc1MjE5MTQ4NzM5NDhiOWMxZTZhNDJjLi4zMjBhNzg2M2ViMGY0ZDIxNjhh
ODViZWMxYjZlZWFmNjE2MDVhZGY1IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAKQEAgLTEzODAsNyArMTM4MCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dCgp
CiB9CiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi12b2lkIFJlbmRlckJsb2NrOjp1cGRh
dGVXcmFwU2hhcGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBXcmFwU2hhcGUqIHdyYXBTaGFw
ZSwgY29uc3QgV3JhcFNoYXBlKiBvbGRXcmFwU2hhcGUpCit2b2lkIFJlbmRlckJsb2NrOjp1cGRh
dGVXcmFwU2hhcGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBCYXNpY1NoYXBlKiB3cmFwU2hh
cGUsIGNvbnN0IEJhc2ljU2hhcGUqIG9sZFdyYXBTaGFwZSkKIHsKICAgICAvLyBGSVhNRTogQSBm
dXR1cmUgb3B0aW1pemF0aW9uIHdvdWxkIGRvIGEgZGVlcCBjb21wYXJpc29uIGZvciBlcXVhbGl0
eS4KICAgICBpZiAod3JhcFNoYXBlID09IG9sZFdyYXBTaGFwZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmgKaW5kZXggMTQ4NWIyYjFhZDgwZDU3ZDBlZDM0NzI5OTEyNTZiOTVm
NjM4YjdmYS4uMTRlYTY3ZmI3MGM4NWMwOTBlZTZhY2Q5OTMyNzgyYzZkMTRhY2Y1OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKQEAgLTQ5OCw3ICs0OTgsNyBAQCBwcm90
ZWN0ZWQ6CiAKIHByaXZhdGU6CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgIHZvaWQg
dXBkYXRlV3JhcFNoYXBlSW5mb0FmdGVyU3R5bGVDaGFuZ2UoY29uc3QgV3JhcFNoYXBlKiwgY29u
c3QgV3JhcFNoYXBlKiBvbGRXcmFwU2hhcGUpOworICAgIHZvaWQgdXBkYXRlV3JhcFNoYXBlSW5m
b0FmdGVyU3R5bGVDaGFuZ2UoY29uc3QgQmFzaWNTaGFwZSosIGNvbnN0IEJhc2ljU2hhcGUqIG9s
ZFdyYXBTaGFwZSk7CiAjZW5kaWYKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdENoaWxkTGlzdCog
dmlydHVhbENoaWxkcmVuKCkgeyByZXR1cm4gY2hpbGRyZW4oKTsgfQogICAgIHZpcnR1YWwgY29u
c3QgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVy
biBjaGlsZHJlbigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvV3Jh
cFNoYXBlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvV3JhcFNoYXBlSW5mby5j
cHAKaW5kZXggMTU0NzA2NmIyOWRkNGE3M2Q5OGZhYjMzMTZjNmQwMjNlODZlMDUxMC4uOGVmNzNj
N2ZjYzIzNzUyNmU1YTlkMzJiZTljOGZkOWM0ZDNkYmQ3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9XcmFwU2hhcGVJbmZvLmNwcApAQCAtNzYsOCArNzYsOCBAQCBib29sIFdyYXBTaGFw
ZUluZm86OmlzV3JhcFNoYXBlSW5mb0VuYWJsZWRGb3JSZW5kZXJCbG9jayhjb25zdCBSZW5kZXJC
bG9jayogYmxvYwogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBGSVhNRTogQnVnIDg5
NzA3OiBFbmFibGUgc2hhcGUgaW5zaWRlIGZvciBub24tcmVjdGFuZ3VsYXIgc2hhcGVzCi0gICAg
V3JhcFNoYXBlKiBzaGFwZSA9IGJsb2NrLT5zdHlsZSgpLT53cmFwU2hhcGVJbnNpZGUoKTsKLSAg
ICByZXR1cm4gKHNoYXBlICYmIHNoYXBlLT50eXBlKCkgPT0gV3JhcFNoYXBlOjpXUkFQX1NIQVBF
X1JFQ1RBTkdMRSk7CisgICAgQmFzaWNTaGFwZSogc2hhcGUgPSBibG9jay0+c3R5bGUoKS0+d3Jh
cFNoYXBlSW5zaWRlKCk7CisgICAgcmV0dXJuIChzaGFwZSAmJiBzaGFwZS0+dHlwZSgpID09IEJh
c2ljU2hhcGU6OkJBU0lDX1NIQVBFX1JFQ1RBTkdMRSk7CiB9CiAKIHZvaWQgV3JhcFNoYXBlSW5m
bzo6cmVtb3ZlV3JhcFNoYXBlSW5mb0ZvclJlbmRlckJsb2NrKGNvbnN0IFJlbmRlckJsb2NrKiBi
bG9jaykKQEAgLTEwNCwxMyArMTA0LDEzIEBAIHZvaWQgV3JhcFNoYXBlSW5mbzo6Y29tcHV0ZVNo
YXBlU2l6ZShMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCBsb2dpY2FsCiAgICAg
bV9sb2dpY2FsSGVpZ2h0ID0gbG9naWNhbEhlaWdodDsKIAogICAgIC8vIEZJWE1FOiBCdWcgODk5
OTM6IFRoZSB3cmFwIHNoYXBlIG1heSBjb21lIGZyb20gdGhlIHBhcmVudCBvYmplY3QKLSAgICBX
cmFwU2hhcGUqIHNoYXBlID0gbV9ibG9jay0+c3R5bGUoKS0+d3JhcFNoYXBlSW5zaWRlKCk7Cisg
ICAgQmFzaWNTaGFwZSogc2hhcGUgPSBtX2Jsb2NrLT5zdHlsZSgpLT53cmFwU2hhcGVJbnNpZGUo
KTsKIAogICAgIEFTU0VSVChzaGFwZSk7CiAKICAgICBzd2l0Y2ggKHNoYXBlLT50eXBlKCkpIHsK
LSAgICBjYXNlIFdyYXBTaGFwZTo6V1JBUF9TSEFQRV9SRUNUQU5HTEU6IHsKLSAgICAgICAgV3Jh
cFNoYXBlUmVjdGFuZ2xlKiByZWN0ID0gc3RhdGljX2Nhc3Q8V3JhcFNoYXBlUmVjdGFuZ2xlICo+
KHNoYXBlKTsKKyAgICBjYXNlIEJhc2ljU2hhcGU6OkJBU0lDX1NIQVBFX1JFQ1RBTkdMRTogewor
ICAgICAgICBCYXNpY1NoYXBlUmVjdGFuZ2xlKiByZWN0ID0gc3RhdGljX2Nhc3Q8QmFzaWNTaGFw
ZVJlY3RhbmdsZSAqPihzaGFwZSk7CiAgICAgICAgIG1fc2hhcGVMZWZ0ID0gdmFsdWVGb3JMZW5n
dGgocmVjdC0+eCgpLCBtX2xvZ2ljYWxXaWR0aCk7CiAgICAgICAgIG1fc2hhcGVXaWR0aCA9IHZh
bHVlRm9yTGVuZ3RoKHJlY3QtPndpZHRoKCksIG1fbG9naWNhbFdpZHRoKTsKICAgICAgICAgbV9z
aGFwZVRvcCA9IHZhbHVlRm9yTGVuZ3RoKHJlY3QtPnkoKSwgbV9sb2dpY2FsSGVpZ2h0KTsKQEAg
LTExOCw5ICsxMTgsOSBAQCB2b2lkIFdyYXBTaGFwZUluZm86OmNvbXB1dGVTaGFwZVNpemUoTGF5
b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgbG9naWNhbAogICAgICAgICBicmVhazsK
ICAgICB9CiAgICAgLy8gRklYTUU6IEJ1ZyA4OTcwNzogRW5hYmxlIHNoYXBlIGluc2lkZSBmb3Ig
bm9uLXJlY3Rhbmd1bGFyIHNoYXBlcwotICAgIGNhc2UgV3JhcFNoYXBlOjpXUkFQX1NIQVBFX0NJ
UkNMRToKLSAgICBjYXNlIFdyYXBTaGFwZTo6V1JBUF9TSEFQRV9FTExJUFNFOgotICAgIGNhc2Ug
V3JhcFNoYXBlOjpXUkFQX1NIQVBFX1BPTFlHT046IHsKKyAgICBjYXNlIEJhc2ljU2hhcGU6OkJB
U0lDX1NIQVBFX0NJUkNMRToKKyAgICBjYXNlIEJhc2ljU2hhcGU6OkJBU0lDX1NIQVBFX0VMTElQ
U0U6CisgICAgY2FzZSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9QT0xZR09OOiB7CiAgICAgICAg
IG5vdEltcGxlbWVudGVkKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuY3BwCmluZGV4IDZkYWNmZDI3NTA3YzE2
YWFjYzdjYTFmZDZkOTBmMmI1YTY5ZGQ5YjkuLjJjMmIzNTA2M2MyOTEyMjU5MjBlNjBhNmQyZDNk
M2RjNTNmNmMwYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9C
YXNpY1NoYXBlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2lj
U2hhcGVzLmNwcApAQCAtMzMsMjAgKzMzLDIwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
dm9pZCBXcmFwU2hhcGU6OmRlc3Ryb3koKQordm9pZCBCYXNpY1NoYXBlOjpkZXN0cm95KCkKIHsK
ICAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgV1JBUF9TSEFQRV9SRUNUQU5HTEU6Ci0g
ICAgICAgIGRlbGV0ZSBzdGF0aWNfY2FzdDxXcmFwU2hhcGVSZWN0YW5nbGUqPih0aGlzKTsKKyAg
ICBjYXNlIEJBU0lDX1NIQVBFX1JFQ1RBTkdMRToKKyAgICAgICAgZGVsZXRlIHN0YXRpY19jYXN0
PEJhc2ljU2hhcGVSZWN0YW5nbGUqPih0aGlzKTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2Ug
V1JBUF9TSEFQRV9DSVJDTEU6Ci0gICAgICAgIGRlbGV0ZSBzdGF0aWNfY2FzdDxXcmFwU2hhcGVD
aXJjbGUqPih0aGlzKTsKKyAgICBjYXNlIEJBU0lDX1NIQVBFX0NJUkNMRToKKyAgICAgICAgZGVs
ZXRlIHN0YXRpY19jYXN0PEJhc2ljU2hhcGVDaXJjbGUqPih0aGlzKTsKICAgICAgICAgcmV0dXJu
OwotICAgIGNhc2UgV1JBUF9TSEFQRV9FTExJUFNFOgotICAgICAgICBkZWxldGUgc3RhdGljX2Nh
c3Q8V3JhcFNoYXBlRWxsaXBzZSo+KHRoaXMpOworICAgIGNhc2UgQkFTSUNfU0hBUEVfRUxMSVBT
RToKKyAgICAgICAgZGVsZXRlIHN0YXRpY19jYXN0PEJhc2ljU2hhcGVFbGxpcHNlKj4odGhpcyk7
CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIFdSQVBfU0hBUEVfUE9MWUdPTjoKLSAgICAgICAg
ZGVsZXRlIHN0YXRpY19jYXN0PFdyYXBTaGFwZVBvbHlnb24qPih0aGlzKTsKKyAgICBjYXNlIEJB
U0lDX1NIQVBFX1BPTFlHT046CisgICAgICAgIGRlbGV0ZSBzdGF0aWNfY2FzdDxCYXNpY1NoYXBl
UG9seWdvbio+KHRoaXMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jh
c2ljU2hhcGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMu
aAppbmRleCA3YjIyMWY4YjQ3NTQyY2U2YzZiYjk4N2FkMjRlNTc0M2ZhNDg2NzgxLi4zMTAwMzk3
MmM2OTZjMmM3NTRjZDM3NWY2MTYyMzdlOTZlODE2NDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuaApAQCAtMzgsMTMgKzM4LDEzIEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgV3JhcFNoYXBlIDogcHVibGljIFdURjo6UmVmQ291bnRl
ZEJhc2UgeworY2xhc3MgQmFzaWNTaGFwZSA6IHB1YmxpYyBXVEY6OlJlZkNvdW50ZWRCYXNlIHsK
IHB1YmxpYzoKICAgICBlbnVtIFR5cGUgewotICAgICAgICBXUkFQX1NIQVBFX1JFQ1RBTkdMRSA9
IDEsCi0gICAgICAgIFdSQVBfU0hBUEVfQ0lSQ0xFID0gMiwKLSAgICAgICAgV1JBUF9TSEFQRV9F
TExJUFNFID0gMywKLSAgICAgICAgV1JBUF9TSEFQRV9QT0xZR09OID0gNAorICAgICAgICBCQVNJ
Q19TSEFQRV9SRUNUQU5HTEUgPSAxLAorICAgICAgICBCQVNJQ19TSEFQRV9DSVJDTEUgPSAyLAor
ICAgICAgICBCQVNJQ19TSEFQRV9FTExJUFNFID0gMywKKyAgICAgICAgQkFTSUNfU0hBUEVfUE9M
WUdPTiA9IDQKICAgICB9OwogICAgIAogICAgIHZvaWQgZGVyZWYoKSAKQEAgLTU2LDcgKzU2LDcg
QEAgcHVibGljOgogICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCiBw
cm90ZWN0ZWQ6Ci0gICAgV3JhcFNoYXBlKFR5cGUgdHlwZSkKKyAgICBCYXNpY1NoYXBlKFR5cGUg
dHlwZSkKICAgICAgICAgOiBtX3R5cGUodHlwZSkKICAgICB7IH0KICAgICAKQEAgLTY1LDkgKzY1
LDkgQEAgcHJpdmF0ZToKICAgICBUeXBlIG1fdHlwZTsKIH07CiAKLWNsYXNzIFdyYXBTaGFwZVJl
Y3RhbmdsZSA6IHB1YmxpYyBXcmFwU2hhcGUgeworY2xhc3MgQmFzaWNTaGFwZVJlY3RhbmdsZSA6
IHB1YmxpYyBCYXNpY1NoYXBlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXcmFw
U2hhcGVSZWN0YW5nbGU+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBXcmFwU2hhcGVS
ZWN0YW5nbGUpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8QmFzaWNTaGFwZVJlY3RhbmdsZT4g
Y3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEJhc2ljU2hhcGVSZWN0YW5nbGUpOyB9CiAK
ICAgICBMZW5ndGggeCgpIGNvbnN0IHsgcmV0dXJuIG1feDsgfQogICAgIExlbmd0aCB5KCkgY29u
c3QgeyByZXR1cm4gbV95OyB9CkBAIC04NCw4ICs4NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dENvcm5lclJhZGl1c1koTGVuZ3RoIHJhZGl1c1kpIHsgbV9jb3JuZXJSYWRpdXNZID0gcmFkaXVz
WTsgfQogICAgIAogcHJpdmF0ZToKLSAgICBXcmFwU2hhcGVSZWN0YW5nbGUoKQotICAgICAgICA6
IFdyYXBTaGFwZShXUkFQX1NIQVBFX1JFQ1RBTkdMRSkKKyAgICBCYXNpY1NoYXBlUmVjdGFuZ2xl
KCkKKyAgICAgICAgOiBCYXNpY1NoYXBlKEJBU0lDX1NIQVBFX1JFQ1RBTkdMRSkKICAgICAgICAg
LCBtX2Nvcm5lclJhZGl1c1goVW5kZWZpbmVkKQogICAgICAgICAsIG1fY29ybmVyUmFkaXVzWShV
bmRlZmluZWQpCiAgICAgeyB9CkBAIC05OCw5ICs5OCw5IEBAIHByaXZhdGU6CiAgICAgTGVuZ3Ro
IG1fY29ybmVyUmFkaXVzWTsKIH07CiAKLWNsYXNzIFdyYXBTaGFwZUNpcmNsZSA6IHB1YmxpYyBX
cmFwU2hhcGUgeworY2xhc3MgQmFzaWNTaGFwZUNpcmNsZSA6IHB1YmxpYyBCYXNpY1NoYXBlIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXcmFwU2hhcGVDaXJjbGU+IGNyZWF0ZSgp
IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBXcmFwU2hhcGVDaXJjbGUpOyB9CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8QmFzaWNTaGFwZUNpcmNsZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3
IEJhc2ljU2hhcGVDaXJjbGUpOyB9CiAKICAgICBMZW5ndGggY2VudGVyWCgpIGNvbnN0IHsgcmV0
dXJuIG1fY2VudGVyWDsgfQogICAgIExlbmd0aCBjZW50ZXJZKCkgY29uc3QgeyByZXR1cm4gbV9j
ZW50ZXJZOyB9CkBAIC0xMTEsOCArMTExLDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmFkaXVz
KExlbmd0aCByYWRpdXMpIHsgbV9yYWRpdXMgPSByYWRpdXM7IH0KIAogcHJpdmF0ZToKLSAgICBX
cmFwU2hhcGVDaXJjbGUoKSAKLSAgICAgICAgOiBXcmFwU2hhcGUoV1JBUF9TSEFQRV9DSVJDTEUp
CisgICAgQmFzaWNTaGFwZUNpcmNsZSgpIAorICAgICAgICA6IEJhc2ljU2hhcGUoQkFTSUNfU0hB
UEVfQ0lSQ0xFKQogICAgIHsgfQogCiAgICAgTGVuZ3RoIG1fY2VudGVyWDsKQEAgLTEyMCw5ICsx
MjAsOSBAQCBwcml2YXRlOgogICAgIExlbmd0aCBtX3JhZGl1czsKIH07CiAKLWNsYXNzIFdyYXBT
aGFwZUVsbGlwc2UgOiBwdWJsaWMgV3JhcFNoYXBlIHsKK2NsYXNzIEJhc2ljU2hhcGVFbGxpcHNl
IDogcHVibGljIEJhc2ljU2hhcGUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdy
YXBTaGFwZUVsbGlwc2U+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBXcmFwU2hhcGVF
bGxpcHNlKTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJhc2ljU2hhcGVFbGxpcHNlPiBjcmVh
dGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQmFzaWNTaGFwZUVsbGlwc2UpOyB9CiAKICAgICBM
ZW5ndGggY2VudGVyWCgpIGNvbnN0IHsgcmV0dXJuIG1fY2VudGVyWDsgfQogICAgIExlbmd0aCBj
ZW50ZXJZKCkgY29uc3QgeyByZXR1cm4gbV9jZW50ZXJZOyB9CkBAIC0xMzUsOCArMTM1LDggQEAg
cHVibGljOgogICAgIHZvaWQgc2V0UmFkaXVzWShMZW5ndGggcmFkaXVzWSkgeyBtX3JhZGl1c1kg
PSByYWRpdXNZOyB9CiAKIHByaXZhdGU6Ci0gICAgV3JhcFNoYXBlRWxsaXBzZSgpIAotICAgICAg
ICA6IFdyYXBTaGFwZShXUkFQX1NIQVBFX0VMTElQU0UpCisgICAgQmFzaWNTaGFwZUVsbGlwc2Uo
KSAKKyAgICAgICAgOiBCYXNpY1NoYXBlKEJBU0lDX1NIQVBFX0VMTElQU0UpCiAgICAgeyB9CiAK
ICAgICBMZW5ndGggbV9jZW50ZXJYOwpAQCAtMTQ1LDkgKzE0NSw5IEBAIHByaXZhdGU6CiAgICAg
TGVuZ3RoIG1fcmFkaXVzWTsKIH07CiAKLWNsYXNzIFdyYXBTaGFwZVBvbHlnb24gOiBwdWJsaWMg
V3JhcFNoYXBlIHsKK2NsYXNzIEJhc2ljU2hhcGVQb2x5Z29uIDogcHVibGljIEJhc2ljU2hhcGUg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdyYXBTaGFwZVBvbHlnb24+IGNyZWF0
ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBXcmFwU2hhcGVQb2x5Z29uKTsgfQorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEJhc2ljU2hhcGVQb2x5Z29uPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJl
ZihuZXcgQmFzaWNTaGFwZVBvbHlnb24pOyB9CiAKICAgICBXaW5kUnVsZSB3aW5kUnVsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fd2luZFJ1bGU7IH0KICAgICBjb25zdCBWZWN0b3I8TGVuZ3RoPiYgdmFs
dWVzKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZXM7IH0KQEAgLTE1OCw4ICsxNTgsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBhcHBlbmRQb2ludChMZW5ndGggeCwgTGVuZ3RoIHkpIHsgbV92YWx1ZXMu
YXBwZW5kKHgpOyBtX3ZhbHVlcy5hcHBlbmQoeSk7IH0KIAogcHJpdmF0ZToKLSAgICBXcmFwU2hh
cGVQb2x5Z29uKCkKLSAgICAgICAgOiBXcmFwU2hhcGUoV1JBUF9TSEFQRV9QT0xZR09OKQorICAg
IEJhc2ljU2hhcGVQb2x5Z29uKCkKKyAgICAgICAgOiBCYXNpY1NoYXBlKEJBU0lDX1NIQVBFX1BP
TFlHT04pCiAgICAgICAgICwgbV93aW5kUnVsZShSVUxFX05PTlpFUk8pCiAgICAgeyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggZTcyMjI4
YmEwN2MyMGY0ZWIwZjE1N2RlMzIxOTYxZjI5ZTljMzI5Ni4uNzQ0YWQ3OTE0Yjc3NzM0NjM4ZDQw
ZTA4M2FiYzU2N2YxM2Y1YWE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmgKQEAgLTE0NDcsMjIgKzE0NDcsMjIgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0S2VybmluZyhTVkdMZW5ndGggaykgeyBhY2Nlc3NTVkdTdHlsZSgpLT5zZXRLZXJuaW5nKGsp
OyB9CiAjZW5kaWYKIAotICAgIHZvaWQgc2V0V3JhcFNoYXBlSW5zaWRlKFBhc3NSZWZQdHI8V3Jh
cFNoYXBlPiBzaGFwZSkKKyAgICB2b2lkIHNldFdyYXBTaGFwZUluc2lkZShQYXNzUmVmUHRyPEJh
c2ljU2hhcGU+IHNoYXBlKQogICAgIHsKICAgICAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRh
LT5tX3dyYXBTaGFwZUluc2lkZSAhPSBzaGFwZSkKICAgICAgICAgICAgIHJhcmVOb25Jbmhlcml0
ZWREYXRhLmFjY2VzcygpLT5tX3dyYXBTaGFwZUluc2lkZSA9IHNoYXBlOwogICAgIH0KLSAgICBX
cmFwU2hhcGUqIHdyYXBTaGFwZUluc2lkZSgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0
ZWREYXRhLT5tX3dyYXBTaGFwZUluc2lkZS5nZXQoKTsgfQorICAgIEJhc2ljU2hhcGUqIHdyYXBT
aGFwZUluc2lkZSgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3dyYXBT
aGFwZUluc2lkZS5nZXQoKTsgfQogCi0gICAgdm9pZCBzZXRXcmFwU2hhcGVPdXRzaWRlKFBhc3NS
ZWZQdHI8V3JhcFNoYXBlPiBzaGFwZSkKKyAgICB2b2lkIHNldFdyYXBTaGFwZU91dHNpZGUoUGFz
c1JlZlB0cjxCYXNpY1NoYXBlPiBzaGFwZSkKICAgICB7CiAgICAgICAgIGlmIChyYXJlTm9uSW5o
ZXJpdGVkRGF0YS0+bV93cmFwU2hhcGVPdXRzaWRlICE9IHNoYXBlKQogICAgICAgICAgICAgcmFy
ZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fd3JhcFNoYXBlT3V0c2lkZSA9IHNoYXBlOwog
ICAgIH0KLSAgICBXcmFwU2hhcGUqIHdyYXBTaGFwZU91dHNpZGUoKSBjb25zdCB7IHJldHVybiBy
YXJlTm9uSW5oZXJpdGVkRGF0YS0+bV93cmFwU2hhcGVPdXRzaWRlLmdldCgpOyB9CisgICAgQmFz
aWNTaGFwZSogd3JhcFNoYXBlT3V0c2lkZSgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0
ZWREYXRhLT5tX3dyYXBTaGFwZU91dHNpZGUuZ2V0KCk7IH0KIAotICAgIHN0YXRpYyBXcmFwU2hh
cGUqIGluaXRpYWxXcmFwU2hhcGVJbnNpZGUoKSB7IHJldHVybiAwOyB9Ci0gICAgc3RhdGljIFdy
YXBTaGFwZSogaW5pdGlhbFdyYXBTaGFwZU91dHNpZGUoKSB7IHJldHVybiAwOyB9CisgICAgc3Rh
dGljIEJhc2ljU2hhcGUqIGluaXRpYWxXcmFwU2hhcGVJbnNpZGUoKSB7IHJldHVybiAwOyB9Cisg
ICAgc3RhdGljIEJhc2ljU2hhcGUqIGluaXRpYWxXcmFwU2hhcGVPdXRzaWRlKCkgeyByZXR1cm4g
MDsgfQogCiAgICAgTGVuZ3RoIHdyYXBQYWRkaW5nKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbklu
aGVyaXRlZERhdGEtPm1fd3JhcFBhZGRpbmc7IH0KICAgICB2b2lkIHNldFdyYXBQYWRkaW5nKExl
bmd0aCB3cmFwUGFkZGluZykgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX3dyYXBQ
YWRkaW5nLCB3cmFwUGFkZGluZyk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCmluZGV4IDA4OWY2YTZi
ZWMzNTY1NzBmOGUwNGViNGE5YjMxOGI1NjIyZmFjMjUuLjZmY2UzMGRiNjg3ZDUwYjgxOTkzOGU2
YTU4YWJmMTllMThiMGM3ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaApAQCAtMTM0LDggKzEzNCw4
IEBAIHB1YmxpYzoKIAogICAgIExlbmd0aFNpemUgbV9wYWdlU2l6ZTsKIAotICAgIFJlZlB0cjxX
cmFwU2hhcGU+IG1fd3JhcFNoYXBlSW5zaWRlOwotICAgIFJlZlB0cjxXcmFwU2hhcGU+IG1fd3Jh
cFNoYXBlT3V0c2lkZTsKKyAgICBSZWZQdHI8QmFzaWNTaGFwZT4gbV93cmFwU2hhcGVJbnNpZGU7
CisgICAgUmVmUHRyPEJhc2ljU2hhcGU+IG1fd3JhcFNoYXBlT3V0c2lkZTsKICAgICBMZW5ndGgg
bV93cmFwTWFyZ2luOwogICAgIExlbmd0aCBtX3dyYXBQYWRkaW5nOwogICAgIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>