<?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>86237</bug_id>
          
          <creation_ts>2012-05-11 11:23:34 -0700</creation_ts>
          <short_desc>[TextureMapper] Support drawing debug borders</short_desc>
          <delta_ts>2012-05-11 16:57:15 -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>Platform</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>86245</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>alex</cc>
    
    <cc>igor.oliveira</cc>
    
    <cc>jturcotte</cc>
    
    <cc>noam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>621826</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-05-11 11:23:34 -0700</bug_when>
    <thetext>TextureMapper should support drawing debug borders, which is useful for debugging on desktops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621911</commentid>
    <comment_count>1</comment_count>
      <attachid>141480</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-05-11 13:03:32 -0700</bug_when>
    <thetext>Created attachment 141480
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621936</commentid>
    <comment_count>2</comment_count>
      <attachid>141480</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-05-11 13:36:24 -0700</bug_when>
    <thetext>Comment on attachment 141480
Patch

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622123</commentid>
    <comment_count>3</comment_count>
      <attachid>141480</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-11 16:57:10 -0700</bug_when>
    <thetext>Comment on attachment 141480
Patch

Clearing flags on attachment: 141480

Committed r116823: &lt;http://trac.webkit.org/changeset/116823&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622124</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-11 16:57:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141480</attachid>
            <date>2012-05-11 13:03:32 -0700</date>
            <delta_ts>2012-05-11 16:57:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86237-20120511130331.patch</filename>
            <type>text/plain</type>
            <size>27795</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTc4ZDQ5Yzk2ZDIxZTll
NTdlNjcyNzhmZWQ2ZGU5MjQzNmVlNDk4Yy4uMDNiYzcwNTcwYmNmY2UzZDhiZjIyYThkYTRkNGY2
MDkyOGIwZGVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEyLTA1LTExICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbVGV4dHVyZU1h
cHBlcl0gU3VwcG9ydCBkcmF3aW5nIGRlYnVnIGJvcmRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MjM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBUaGlzIGlzIHRoZSBpbXBs
ZW1lbnRhdGlvbiBvZiBhbiBpbnRlcmFjdGl2ZSBkZWJ1Z2dpbmcKKyAgICAgICAgZmVhdHVyZS4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpjcmVhdGUpOiBN
b3ZlZCB0aGlzIHRvIHRoZSB0b3Agb2YgdGhlIGZpbGUgdG8KKyAgICAgICAgcmVkdWNlIGNvbnRl
bnRpb24gZm9yIHRoZSBjb3ZldGVkIGxhc3Qgc3BvdCBpbiB0aGUgZmlsZS4gVGhpcyBhbHNvCisg
ICAgICAgIGZvbGxvd3MgdGhlIHBhdHRlcm4gdXNlZCBpbiBtYW55IFdlYkNvcmUgZmlsZXMgb2Yg
aGF2aW5nIHRoZSBmYWN0b3JpZXMKKyAgICAgICAgYXQgdGhlIHRvcC4KKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXREZWJ1Z0JvcmRlcik6IEFkZGVkIHRo
aXMKKyAgICAgICAgcGx1bWJpbmcuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmg6IEFkZGVkCisgICAgICAgIHBsdW1iaW5nLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmg6IERpdHRv
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2lu
Z1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdT
dG9yZTo6VGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlKToKKyAgICAgICAgSW5pdGlhbGl6
ZSB0aGUgbmV3IG1lbWJlci4KKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJUaWxlZEJh
Y2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIpOiBXaGVuCisgICAgICAgIGRlYnVnIGJv
cmRlcnMgYXJlIGVuYWJsZWQgY2FsbCB0aGUgbmV3IGRyYXdCb3JkZXIgbWV0aG9kIG9uIHRoZSBU
TS4KKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6c2V0
RGVidWdCb3JkZXIpOiBBZGRlZCB0aGlzCisgICAgICAgIHBsdW1iaW5nLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmg6IEFkZGVk
IHBsdW1iaW5nCisgICAgICAgIGFuZCBtZW1iZXJzIHRvIHN0b3JlIGRlYnVnIGJvcmRlciBzdGF0
ZXMuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugb2YKKyAgICAgICAgdGhlIHdoZW4gcGFpbnRp
bmcgdGhlcmUgaXMgbm8gaGFuZGxlIG9uIHRoZSBHcmFwaGljc0xheWVycy4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6ZHJhd1JlY3QpOiBGYWN0b3JlZCBvdXQgdGhlIGNvbW1v
biBiaXRzIG9mCisgICAgICAgIGRyYXdUZXh0dXJlIGFuZCBkcmF3Qm9yZGVyIGludG8gdGhpcyBo
ZWxwZXIuCisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6OmRyYXdCb3JkZXIpOiBB
ZGRlZCB0aGlzIG1ldGhvZCwgd2hpY2ggd29ya3MKKyAgICAgICAgdmVyeSBzaW1pbGFybHkgdG8g
ZHJhd1RleHR1cmUsIGJ1dCB1c2VzIGEgZGlmZmVyZW50IHNoYWRlciBwcm9ncmFtIGFuZAorICAg
ICAgICBtdXN0IGFsc28gc2V0IHRoZSBsaW5lIHdpZHRoIGFuZCBjb2xvci4KKyAgICAgICAgKFdl
YkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmUpOiBGYWN0b3JlZCBvdXQgdGhlIGJp
dHMgdGhhdAorICAgICAgICBhcmUgc2hhcmVkIHdpdGggZHJhd1JlY3QuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oOgorICAgICAgICAoVGV4dHVy
ZU1hcHBlckdMKTogQWRkZWQgdGhlIG5ldyBtZXRob2QgZGVjbGFyYXRpb25zLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlcjo6ZHJhd0JvcmRlcik6IEFk
ZGVkIGFuIGVtcHR5CisgICAgICAgIGltcGxlbWVudGF0aW9uLiBMYXRlciB3ZSBjYW4gYWRkIGFu
IGltcGxlbWVudGF0aW9uIGZvciB0aGUgSW1hZ2VCdWZmZXIKKyAgICAgICAgVE0uCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnVwZGF0ZUJhY2tpbmdTdG9yZSk6IFdo
ZW4gdXBkYXRpbmcgdGhlCisgICAgICAgIGJhY2tpbmcgc3RvcmUgc2VuZCB0aGUgZGVidWcgYm9y
ZGVyIGluZm9ybWF0aW9uIHRocm91Z2guCisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
TGF5ZXI6OnN5bmNDb21wb3NpdGluZ1N0YXRlU2VsZik6IFdoZW4gdXBkYXRpbmcKKyAgICAgICAg
dGhlIGxheWVyIHN0YXRlLCBhbHNvIHVwZGF0ZSB0aGUgZGVidWcgaW5kaWNhdG9ycy4gVGhpcyBp
cyByZXF1aXJlZCB0bworICAgICAgICBpbml0aWFsaXplIHRoZSBkZWJ1ZyBib3JkZXIgdmFsdWVz
IGZvciB0aGUgbGF5ZXIuCisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnNl
dERlYnVnQm9yZGVyKTogQWRkZWQgdGhpcyBwbHVtYmluZy4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmg6IERpdHRvLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5jcHA6IEFk
ZGVkIGEKKyAgICAgICAgc29saWQgY29sb3Igc2hhZGVyIHRoYXQgZG9lc24ndCBjYXJlIGFib3V0
IHRleHR1cmUgY29vcmRpbmF0ZXMgb3IKKyAgICAgICAgb3BhY2l0eSB2YWx1ZXMuCisgICAgICAg
IChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6c29saWRDb2xvclByb2dyYW0p
OiBBZGRlZC4gVGhpcworICAgICAgICBpcyBhIHNob3J0ZXIgZ2V0dGVyIGZvciB0aGUgc29saWQg
Y29sb3IgcHJvZ3JhbSB0aGF0IGRvZXNuJ3QgcmVxdWlyZQorICAgICAgICBjYXN0aW5nIGZyb20g
dGhlIGNhbGxlci4KKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2Vy
OjpnZXRTaGFkZXJQcm9ncmFtKTogQWRkZWQgc3VwcG9ydAorICAgICAgICBmb3IgdGhlIHNvbGlk
IGNvbG9yIHByb2dyYW0uCisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbVNvbGlkQ29sb3I6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW1Tb2xpZENvbG9yOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bVNvbGlkQ29sb3IpOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtU29saWRDb2xvcjo6dmVydGV4U2hhZGVyU291cmNlKToKKyAgICAg
ICAgRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbVNv
bGlkQ29sb3I6OmZyYWdtZW50U2hhZGVyU291cmNlKToKKyAgICAgICAgRGl0dG8uCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmg6
CisgICAgICAgIChUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbVNvbGlkQ29sb3IpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtU29saWRDb2xvcjo6
Y29sb3JWYXJpYWJsZSk6IEFkZGVkLgorCiAyMDEyLTA1LTEwICBNYXJ0aW4gUm9iaW5zb24gIDxt
cm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBBZGQgYW4gYWNjZWxlcmF0ZWQg
Y29tcG9zaXRpbmcgaW1wbGVtZW50YXRpb24gZm9yIFdlYktpdDIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1h
cHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhp
Y3NMYXllclRleHR1cmVNYXBwZXIuY3BwCmluZGV4IGI1ZDAzYTFiMjc3OWE1MTZhM2QzYjczODRj
MTNiZjc4Y2M5ZWRjMmIuLmZiZjg2OTkyYjIxNGU0ZGEyMmM5ZDg0YzdhMGVkNjVlYWIxMGU2NmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcApAQCAtMjQsNiAr
MjQsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitQYXNzT3duUHRyPEdyYXBoaWNzTGF5
ZXI+IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCit7
CisgICAgaWYgKHNfZ3JhcGhpY3NMYXllckZhY3RvcnkpCisgICAgICAgIHJldHVybiAoKnNfZ3Jh
cGhpY3NMYXllckZhY3RvcnkpKGNsaWVudCk7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBHcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlcihjbGllbnQpKTsKK30KKwogR3JhcGhpY3NMYXllclRleHR1
cmVNYXBwZXI6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKEdyYXBoaWNzTGF5ZXJDbGllbnQq
IGNsaWVudCkKICAgICA6IEdyYXBoaWNzTGF5ZXIoY2xpZW50KQogICAgICwgbV9sYXllcihhZG9w
dFB0cihuZXcgVGV4dHVyZU1hcHBlckxheWVyKCkpKQpAQCAtMzgzLDExICszOTAsOSBAQCB2b2lk
IEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjphbmltYXRpb25TdGFydGVkVGltZXJGaXJlZChU
aW1lcjxHcmFwaGljc0xheWVyVAogICAgIGNsaWVudCgpLT5ub3RpZnlBbmltYXRpb25TdGFydGVk
KHRoaXMsIC8qIERPTSB0aW1lICovIFdURjo6Y3VycmVudFRpbWUoKSk7CiB9CiAKLVBhc3NPd25Q
dHI8R3JhcGhpY3NMYXllcj4gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKEdyYXBoaWNzTGF5ZXJDbGll
bnQqIGNsaWVudCkKK3ZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OnNldERlYnVnQm9y
ZGVyKGNvbnN0IENvbG9yJiBjb2xvciwgZmxvYXQgd2lkdGgpCiB7Ci0gICAgaWYgKHNfZ3JhcGhp
Y3NMYXllckZhY3RvcnkpCi0gICAgICAgIHJldHVybiAoKnNfZ3JhcGhpY3NMYXllckZhY3Rvcnkp
KGNsaWVudCk7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBHcmFwaGljc0xheWVyVGV4dHVyZU1h
cHBlcihjbGllbnQpKTsKKyAgICBtX2xheWVyLT5zZXREZWJ1Z0JvcmRlcihjb2xvciwgd2lkdGgp
OwogfQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXIuaAppbmRleCBjODJlOTQzZWI2ZDVkZTY0NDEzYTgyMTUwMjNiOWQwZWEzZmM3
ZDQyLi45NDUzMGRiY2FhZWNlZGM0OGI3OTE3YjVlYjI3ZTQ1MTQ5NDNlYTFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaApAQCAtOTAsNiArOTAsOCBAQCBwdWJsaWM6
CiAgICAgYm9vbCBuZWVkc0Rpc3BsYXkoKSBjb25zdCB7IHJldHVybiBtX25lZWRzRGlzcGxheTsg
fQogICAgIEludFJlY3QgbmVlZHNEaXNwbGF5UmVjdCgpIGNvbnN0IHsgcmV0dXJuIGVuY2xvc2lu
Z0ludFJlY3QobV9uZWVkc0Rpc3BsYXlSZWN0KTsgfQogCisgICAgdmlydHVhbCB2b2lkIHNldERl
YnVnQm9yZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQgd2lkdGgpOworCiAjaWYgRU5BQkxFKENTU19G
SUxURVJTKQogICAgIHZpcnR1YWwgYm9vbCBzZXRGaWx0ZXJzKGNvbnN0IEZpbHRlck9wZXJhdGlv
bnMmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKaW5kZXggY2EzMWQxNzY5OTc2ZmRiYWM4ZGVmMWQw
ZWFkZjY1OWVmMjU5YzhiNi4uMjkwN2QxYWM4ZTE1ZjQ4NzgxN2JmYjBiNDIyZmFhNjFhZTVhNjcx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlci5oCkBAIC0xMTIsNiArMTEyLDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyBQYXNzT3duUHRyPFRleHR1cmVNYXBwZXI+IGNyZWF0ZShBY2NlbGVyYXRpb25Nb2RlIG5ld01v
ZGUgPSBTb2Z0d2FyZU1vZGUpOwogICAgIHZpcnR1YWwgflRleHR1cmVNYXBwZXIoKSB7IH0KIAor
ICAgIHZpcnR1YWwgdm9pZCBkcmF3Qm9yZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQgYm9yZGVyV2lk
dGgsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIG1vZGVsVmlld01hdHJpeCA9IFRyYW5zZm9ybWF0aW9uTWF0cml4KCkpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgZHJhd1RleHR1cmUoY29uc3QgQml0bWFwVGV4dHVyZSYsIGNvbnN0IEZsb2F0
UmVjdCYgdGFyZ2V0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4
ID0gVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgZmxvYXQgb3BhY2l0eSA9IDEuMGYsIGNvbnN0IEJp
dG1hcFRleHR1cmUqIG1hc2tUZXh0dXJlID0gMCkgPSAwOwogCiAgICAgLy8gbWFrZXMgYSBzdXJm
YWNlIHRoZSB0YXJnZXQgZm9yIHRoZSBmb2xsb3dpbmcgZHJhd1RleHR1cmUgY2FsbHMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5jcHAKaW5kZXggNDNhYzc4MTBiOGNmZmJm
OGNkMWMzNzQ4ZmZiYmNkMGE4ZTFiMThlNi4uODg3N2JmZTM0NGFiY2MyZjBkMGNkNjkzNjVhNzNj
NmMxMzE2Nzk0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmNwcApA
QCAtNTIsNiArNTIsMTEgQEAgdm9pZCBUZXh0dXJlTWFwcGVyVGlsZTo6cGFpbnQoVGV4dHVyZU1h
cHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgVHJhbnNmb3JtYXRpb24KICAgICB0ZXh0dXJlTWFw
cGVyLT5kcmF3VGV4dHVyZSgqdGV4dHVyZSgpLmdldCgpLCByZWN0KCksIHRyYW5zZm9ybSwgb3Bh
Y2l0eSwgbWFzayk7CiB9CiAKK1RleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6VGV4dHVy
ZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlKCkKKyAgICA6IG1fZHJhd3NEZWJ1Z0JvcmRlcnMoZmFs
c2UpCit7Cit9CisKIHZvaWQgVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjp1cGRhdGVD
b250ZW50c0Zyb21JbWFnZUlmTmVlZGVkKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIpCiB7
CiAgICAgaWYgKCFtX2ltYWdlKQpAQCAtNjYsOCArNzEsMTEgQEAgdm9pZCBUZXh0dXJlTWFwcGVy
VGlsZWRCYWNraW5nU3RvcmU6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRl
eHR1cmUKICAgICB1cGRhdGVDb250ZW50c0Zyb21JbWFnZUlmTmVlZGVkKHRleHR1cmVNYXBwZXIp
OwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGFkanVzdGVkVHJhbnNmb3JtID0gdHJhbnNmb3Jt
OwogICAgIGFkanVzdGVkVHJhbnNmb3JtLm11bHRpcGx5KFRyYW5zZm9ybWF0aW9uTWF0cml4Ojpy
ZWN0VG9SZWN0KHJlY3QoKSwgdGFyZ2V0UmVjdCkpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbV90aWxlcy5zaXplKCk7ICsraSkKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fdGls
ZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgbV90aWxlc1tpXS5wYWludCh0ZXh0dXJlTWFwcGVy
LCBhZGp1c3RlZFRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzayk7CisgICAgICAgIGlmIChtX2RyYXdz
RGVidWdCb3JkZXJzKQorICAgICAgICAgICAgdGV4dHVyZU1hcHBlci0+ZHJhd0JvcmRlcihtX2Rl
YnVnQm9yZGVyQ29sb3IsIG1fZGVidWdCb3JkZXJXaWR0aCwgbV90aWxlc1tpXS5yZWN0KCksIGFk
anVzdGVkVHJhbnNmb3JtKTsKKyAgICB9CiB9CiAKIHZvaWQgVGV4dHVyZU1hcHBlclRpbGVkQmFj
a2luZ1N0b3JlOjpjcmVhdGVPckRlc3Ryb3lUaWxlc0lmTmVlZGVkKGNvbnN0IEZsb2F0U2l6ZSYg
c2l6ZSwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGJvb2wgaGFzQWxwaGEpCkBAIC0xNTIsNCAr
MTYwLDEwIEBAIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gVGV4dHVyZU1hcHBlclRpbGVkQmFj
a2luZ1N0b3JlOjp0ZXh0dXJlKCkgY29uc3QKICAgICByZXR1cm4gUGFzc1JlZlB0cjxCaXRtYXBU
ZXh0dXJlPigpOwogfQogCit2b2lkIFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6c2V0
RGVidWdCb3JkZXIoY29uc3QgQ29sb3ImIGNvbG9yLCBmbG9hdCB3aWR0aCkKK3sKKyAgICBtX2Rl
YnVnQm9yZGVyQ29sb3IgPSBjb2xvcjsKKyAgICBtX2RlYnVnQm9yZGVyV2lkdGggPSB3aWR0aDsK
K30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmgKaW5kZXggZGY2MWI4
NjI2MjRhMDc4MDJlY2I1OTIwZDkzMWYxNzM1YTc4NzEyYy4uMzdhMzY1MDM2YThhYTNiMWMxNjJi
YTk1NGY1NjRjZTE2Y2M2MDFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9y
ZS5oCkBAIC03MiwxMyArNzIsMjAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q29udGVudHNUb0lt
YWdlKEltYWdlKiBpbWFnZSkgeyBtX2ltYWdlID0gaW1hZ2U7IH0KICAgICB2b2lkIHVwZGF0ZUNv
bnRlbnRzRnJvbUltYWdlSWZOZWVkZWQoVGV4dHVyZU1hcHBlciopOwogCisgICAgdm9pZCBzZXRT
aG93RGVidWdCb3JkZXJzKGJvb2wgZHJhd3NEZWJ1Z0JvcmRlcnMpIHsgbV9kcmF3c0RlYnVnQm9y
ZGVycyA9IGRyYXdzRGVidWdCb3JkZXJzOyB9CisgICAgdm9pZCBzZXREZWJ1Z0JvcmRlcihjb25z
dCBDb2xvciYsIGZsb2F0IHdpZHRoKTsKKwogcHJpdmF0ZToKLSAgICBUZXh0dXJlTWFwcGVyVGls
ZWRCYWNraW5nU3RvcmUoKSB7IH0KKyAgICBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUo
KTsKICAgICB2b2lkIGNyZWF0ZU9yRGVzdHJveVRpbGVzSWZOZWVkZWQoY29uc3QgRmxvYXRTaXpl
JiBiYWNraW5nU3RvcmVTaXplLCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgYm9vbCBoYXNBbHBo
YSk7CiAKICAgICBWZWN0b3I8VGV4dHVyZU1hcHBlclRpbGU+IG1fdGlsZXM7CiAgICAgRmxvYXRT
aXplIG1fc2l6ZTsKICAgICBSZWZQdHI8SW1hZ2U+IG1faW1hZ2U7CisKKyAgICBib29sIG1fZHJh
d3NEZWJ1Z0JvcmRlcnM7CisgICAgQ29sb3IgbV9kZWJ1Z0JvcmRlckNvbG9yOworICAgIGZsb2F0
IG1fZGVidWdCb3JkZXJXaWR0aDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5kZXgg
ZGY5YjhiMDNlMmNlMTg2NTRiNTRlMzY1YmIwNDA1ODM0MGUyZDEzNC4uZDhhYmEwYzQ5ZjE1OTVm
Nzk3OGRiZGUxNmQ5YzQwYTFiMjBjNzY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTMw
NCw2ICszMDQsNTUgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmVuZFBhaW50aW5nKCkKICNlbmRp
ZgogfQogCit2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiB0
YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4LCBU
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSogc2hhZGVyUHJvZ3JhbSwgR0xlbnVtIGRyYXdpbmdN
b2RlLCBib29sIG5lZWRzQmxlbmRpbmcpCit7CisgICAgR0xfQ01EKGdsRW5hYmxlVmVydGV4QXR0
cmliQXJyYXkoc2hhZGVyUHJvZ3JhbS0+dmVydGV4QXR0cmliKCkpKTsKKyAgICBHTF9DTUQoZ2xC
aW5kQnVmZmVyKEdMX0FSUkFZX0JVRkZFUiwgMCkpOworICAgIGNvbnN0IEdMZmxvYXQgdW5pdFJl
Y3RbXSA9IHswLCAwLCAxLCAwLCAxLCAxLCAwLCAxfTsKKyAgICBHTF9DTUQoZ2xWZXJ0ZXhBdHRy
aWJQb2ludGVyKHNoYWRlclByb2dyYW0tPnZlcnRleEF0dHJpYigpLCAyLCBHTF9GTE9BVCwgR0xf
RkFMU0UsIDAsIHVuaXRSZWN0KSk7CisKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtYXRyaXgg
PSBUcmFuc2Zvcm1hdGlvbk1hdHJpeChkYXRhKCkucHJvamVjdGlvbk1hdHJpeCkubXVsdGlwbHko
bW9kZWxWaWV3TWF0cml4KS5tdWx0aXBseShUcmFuc2Zvcm1hdGlvbk1hdHJpeCgKKyAgICAgICAg
ICAgIHRhcmdldFJlY3Qud2lkdGgoKSwgMCwgMCwgMCwKKyAgICAgICAgICAgIDAsIHRhcmdldFJl
Y3QuaGVpZ2h0KCksIDAsIDAsCisgICAgICAgICAgICAwLCAwLCAxLCAwLAorICAgICAgICAgICAg
dGFyZ2V0UmVjdC54KCksIHRhcmdldFJlY3QueSgpLCAwLCAxKSk7CisKKyAgICBjb25zdCBHTGZs
b2F0IG00W10gPSB7CisgICAgICAgIG1hdHJpeC5tMTEoKSwgbWF0cml4Lm0xMigpLCBtYXRyaXgu
bTEzKCksIG1hdHJpeC5tMTQoKSwKKyAgICAgICAgbWF0cml4Lm0yMSgpLCBtYXRyaXgubTIyKCks
IG1hdHJpeC5tMjMoKSwgbWF0cml4Lm0yNCgpLAorICAgICAgICBtYXRyaXgubTMxKCksIG1hdHJp
eC5tMzIoKSwgbWF0cml4Lm0zMygpLCBtYXRyaXgubTM0KCksCisgICAgICAgIG1hdHJpeC5tNDEo
KSwgbWF0cml4Lm00MigpLCBtYXRyaXgubTQzKCksIG1hdHJpeC5tNDQoKQorICAgIH07CisgICAg
R0xfQ01EKGdsVW5pZm9ybU1hdHJpeDRmdihzaGFkZXJQcm9ncmFtLT5tYXRyaXhWYXJpYWJsZSgp
LCAxLCBHTF9GQUxTRSwgbTQpKTsKKworICAgIGlmIChuZWVkc0JsZW5kaW5nKSB7CisgICAgICAg
IEdMX0NNRChnbEJsZW5kRnVuYyhHTF9PTkUsIEdMX09ORV9NSU5VU19TUkNfQUxQSEEpKTsKKyAg
ICAgICAgR0xfQ01EKGdsRW5hYmxlKEdMX0JMRU5EKSk7CisgICAgfSBlbHNlCisgICAgICAgIEdM
X0NNRChnbERpc2FibGUoR0xfQkxFTkQpKTsKKworICAgIEdMX0NNRChnbERyYXdBcnJheXMoZHJh
d2luZ01vZGUsIDAsIDQpKTsKKyAgICBHTF9DTUQoZ2xEaXNhYmxlVmVydGV4QXR0cmliQXJyYXko
c2hhZGVyUHJvZ3JhbS0+dmVydGV4QXR0cmliKCkpKTsKK30KKwordm9pZCBUZXh0dXJlTWFwcGVy
R0w6OmRyYXdCb3JkZXIoY29uc3QgQ29sb3ImIGNvbG9yLCBmbG9hdCB3aWR0aCwgY29uc3QgRmxv
YXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3
TWF0cml4KQoreworICAgIGlmIChjbGlwU3RhY2soKS5jdXJyZW50KCkuc2Npc3NvckJveC5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxUZXh0dXJlTWFwcGVyU2hhZGVy
UHJvZ3JhbVNvbGlkQ29sb3I+IHNoYWRlckluZm8gPSBkYXRhKCkuc2hhcmVkR0xEYXRhKCkudGV4
dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuc29saWRDb2xvclByb2dyYW0oKTsKKyAgICBHTF9DTUQo
Z2xVc2VQcm9ncmFtKHNoYWRlckluZm8tPmlkKCkpKTsKKworICAgIGZsb2F0IGFscGhhID0gY29s
b3IuYWxwaGEoKSAvIDI1NS4wOworICAgIEdMX0NNRChnbFVuaWZvcm00ZihzaGFkZXJJbmZvLT5j
b2xvclZhcmlhYmxlKCksCisgICAgICAgICAgICAgICAgICAgICAgIChjb2xvci5yZWQoKSAvIDI1
NS4wKSAqIGFscGhhLAorICAgICAgICAgICAgICAgICAgICAgICAoY29sb3IuZ3JlZW4oKSAvIDI1
NS4wKSAqIGFscGhhLAorICAgICAgICAgICAgICAgICAgICAgICAoY29sb3IuYmx1ZSgpIC8gMjU1
LjApICogYWxwaGEsCisgICAgICAgICAgICAgICAgICAgICAgIGFscGhhKSk7CisgICAgR0xfQ01E
KGdsTGluZVdpZHRoKHdpZHRoKSk7CisKKyAgICBkcmF3UmVjdCh0YXJnZXRSZWN0LCBtb2RlbFZp
ZXdNYXRyaXgsIHNoYWRlckluZm8uZ2V0KCksIEdMX0xJTkVfTE9PUCwgY29sb3IuaGFzQWxwaGEo
KSk7Cit9CiAKIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZShjb25zdCBCaXRtYXBU
ZXh0dXJlJiB0ZXh0dXJlLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiBtYXRyaXgsIGZsb2F0IG9wYWNpdHksIGNvbnN0IEJpdG1hcFRleHR1
cmUqIG1hc2spCiB7CkBAIC0zMjQsNTAgKzM3MywyNCBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6
ZHJhd1RleHR1cmUodWludDMyX3QgdGV4dHVyZSwgRmxhZ3MgZmxhZ3MsIGNvbnN0IEludFNpemUm
CiAgICAgICAgIHNoYWRlckluZm8gPSBkYXRhKCkuc2hhcmVkR0xEYXRhKCkudGV4dHVyZU1hcHBl
clNoYWRlck1hbmFnZXIuZ2V0U2hhZGVyUHJvZ3JhbShUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdl
cjo6T3BhY2l0eUFuZE1hc2spOwogICAgIGVsc2UKICAgICAgICAgc2hhZGVySW5mbyA9IGRhdGEo
KS5zaGFyZWRHTERhdGEoKS50ZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5nZXRTaGFkZXJQcm9n
cmFtKFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTaW1wbGUpOwotCiAgICAgR0xfQ01EKGds
VXNlUHJvZ3JhbShzaGFkZXJJbmZvLT5pZCgpKSk7CisKICAgICBHTF9DTUQoZ2xFbmFibGVWZXJ0
ZXhBdHRyaWJBcnJheShzaGFkZXJJbmZvLT52ZXJ0ZXhBdHRyaWIoKSkpOwogICAgIEdMX0NNRChn
bEFjdGl2ZVRleHR1cmUoR0xfVEVYVFVSRTApKTsKICAgICBHTF9DTUQoZ2xCaW5kVGV4dHVyZShH
TF9URVhUVVJFXzJELCB0ZXh0dXJlKSk7Ci0gICAgR0xfQ01EKGdsQmluZEJ1ZmZlcihHTF9BUlJB
WV9CVUZGRVIsIDApKTsKLSAgICBjb25zdCBHTGZsb2F0IHVuaXRSZWN0W10gPSB7MCwgMCwgMSwg
MCwgMSwgMSwgMCwgMX07Ci0gICAgR0xfQ01EKGdsVmVydGV4QXR0cmliUG9pbnRlcihzaGFkZXJJ
bmZvLT52ZXJ0ZXhBdHRyaWIoKSwgMiwgR0xfRkxPQVQsIEdMX0ZBTFNFLCAwLCB1bml0UmVjdCkp
OwotCi0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbWF0cml4ID0gVHJhbnNmb3JtYXRpb25NYXRy
aXgoZGF0YSgpLnByb2plY3Rpb25NYXRyaXgpLm11bHRpcGx5KG1vZGVsVmlld01hdHJpeCkubXVs
dGlwbHkoVHJhbnNmb3JtYXRpb25NYXRyaXgoCi0gICAgICAgICAgICB0YXJnZXRSZWN0LndpZHRo
KCksIDAsIDAsIDAsCi0gICAgICAgICAgICAwLCB0YXJnZXRSZWN0LmhlaWdodCgpLCAwLCAwLAot
ICAgICAgICAgICAgMCwgMCwgMSwgMCwKLSAgICAgICAgICAgIHRhcmdldFJlY3QueCgpLCB0YXJn
ZXRSZWN0LnkoKSwgMCwgMSkpOwotCi0gICAgY29uc3QgR0xmbG9hdCBtNFtdID0gewotICAgICAg
ICBtYXRyaXgubTExKCksIG1hdHJpeC5tMTIoKSwgbWF0cml4Lm0xMygpLCBtYXRyaXgubTE0KCks
Ci0gICAgICAgIG1hdHJpeC5tMjEoKSwgbWF0cml4Lm0yMigpLCBtYXRyaXgubTIzKCksIG1hdHJp
eC5tMjQoKSwKLSAgICAgICAgbWF0cml4Lm0zMSgpLCBtYXRyaXgubTMyKCksIG1hdHJpeC5tMzMo
KSwgbWF0cml4Lm0zNCgpLAotICAgICAgICBtYXRyaXgubTQxKCksIG1hdHJpeC5tNDIoKSwgbWF0
cml4Lm00MygpLCBtYXRyaXgubTQ0KCkKLSAgICB9OworICAgIEdMX0NNRChnbFVuaWZvcm0xaShz
aGFkZXJJbmZvLT5zb3VyY2VUZXh0dXJlVmFyaWFibGUoKSwgMCkpOwogCiAgICAgY29uc3QgR0xm
bG9hdCBtNHNyY1tdID0gewogICAgICAgICAxLCAwLCAwLCAwLAogICAgICAgICAwLCAoZmxhZ3Mg
JiBTaG91bGRGbGlwVGV4dHVyZSkgPyAtMSA6IDEsIDAsIDAsCiAgICAgICAgIDAsIDAsIDEsIDAs
CiAgICAgICAgIDAsIChmbGFncyAmIFNob3VsZEZsaXBUZXh0dXJlKSA/IDEgOiAwLCAwLCAxfTsK
LQotICAgIEdMX0NNRChnbFVuaWZvcm1NYXRyaXg0ZnYoc2hhZGVySW5mby0+bWF0cml4VmFyaWFi
bGUoKSwgMSwgR0xfRkFMU0UsIG00KSk7CiAgICAgR0xfQ01EKGdsVW5pZm9ybU1hdHJpeDRmdihz
aGFkZXJJbmZvLT5zb3VyY2VNYXRyaXhWYXJpYWJsZSgpLCAxLCBHTF9GQUxTRSwgbTRzcmMpKTsK
LSAgICBHTF9DTUQoZ2xVbmlmb3JtMWkoc2hhZGVySW5mby0+c291cmNlVGV4dHVyZVZhcmlhYmxl
KCksIDApKTsKIAogICAgIHNoYWRlckluZm8tPnByZXBhcmUob3BhY2l0eSwgbWFza1RleHR1cmUp
OwogCiAgICAgYm9vbCBuZWVkc0JsZW5kaW5nID0gKGZsYWdzICYgU3VwcG9ydHNCbGVuZGluZykg
fHwgb3BhY2l0eSA8IDAuOTkgfHwgbWFza1RleHR1cmU7Ci0KLSAgICBpZiAobmVlZHNCbGVuZGlu
ZykgewotICAgICAgICBHTF9DTUQoZ2xCbGVuZEZ1bmMoR0xfT05FLCBHTF9PTkVfTUlOVVNfU1JD
X0FMUEhBKSk7Ci0gICAgICAgIEdMX0NNRChnbEVuYWJsZShHTF9CTEVORCkpOwotICAgIH0gZWxz
ZQotICAgICAgICBHTF9DTUQoZ2xEaXNhYmxlKEdMX0JMRU5EKSk7Ci0KLSAgICBHTF9DTUQoZ2xE
cmF3QXJyYXlzKEdMX1RSSUFOR0xFX0ZBTiwgMCwgNCkpOwotICAgIEdMX0NNRChnbERpc2FibGVW
ZXJ0ZXhBdHRyaWJBcnJheShzaGFkZXJJbmZvLT52ZXJ0ZXhBdHRyaWIoKSkpOworICAgIGRyYXdS
ZWN0KHRhcmdldFJlY3QsIG1vZGVsVmlld01hdHJpeCwgc2hhZGVySW5mby5nZXQoKSwgR0xfVFJJ
QU5HTEVfRkFOLCBuZWVkc0JsZW5kaW5nKTsKIH0KIAogY29uc3QgY2hhciogVGV4dHVyZU1hcHBl
ckdMOjp0eXBlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaAppbmRleCA0Mjc5NDk5ZmM2OWM5YmU5
YTNjMzY1ODY1NjRkM2M1MzI3OGYzYmM2Li5jOWE0NmNjNTlhNTcwYmU4MmFmZWI0NzdiNWFlNGFm
MzE5OWIzY2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oCkBAIC00OCw2ICs0OCw3IEBAIHB1YmxpYzoK
ICAgICB0eXBlZGVmIGludCBGbGFnczsKIAogICAgIC8vIHJlaW1wcyBmcm9tIFRleHR1cmVNYXBw
ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0JvcmRlcihjb25zdCBDb2xvciYsIGZsb2F0IGJvcmRl
cldpZHRoLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiBtb2RlbFZpZXdNYXRyaXggPSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpKTsKICAgICB2
aXJ0dWFsIHZvaWQgZHJhd1RleHR1cmUoY29uc3QgQml0bWFwVGV4dHVyZSYsIGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQgb3BhY2l0eSwgY29uc3Qg
Qml0bWFwVGV4dHVyZSogbWFza1RleHR1cmUpOwogICAgIHZpcnR1YWwgdm9pZCBkcmF3VGV4dHVy
ZSh1aW50MzJfdCB0ZXh0dXJlLCBGbGFncywgY29uc3QgSW50U2l6ZSYgdGV4dHVyZVNpemUsIGNv
bnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1v
ZGVsVmlld01hdHJpeCwgZmxvYXQgb3BhY2l0eSwgY29uc3QgQml0bWFwVGV4dHVyZSogbWFza1Rl
eHR1cmUpOwogICAgIHZpcnR1YWwgdm9pZCBiaW5kU3VyZmFjZShCaXRtYXBUZXh0dXJlKiBzdXJm
YWNlKTsKQEAgLTk0LDYgKzk1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgVmVjdG9yPENsaXBTdGF0
ZT4gY2xpcFN0YWNrOwogICAgIH07CiAKKyAgICB2b2lkIGRyYXdSZWN0KGNvbnN0IEZsb2F0UmVj
dCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01hdHJp
eCwgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0qLCBHTGVudW0gZHJhd2luZ01vZGUsIGJvb2wg
bmVlZHNCbGVuZGluZyk7CiAgICAgYm9vbCBiZWdpblNjaXNzb3JDbGlwKGNvbnN0IFRyYW5zZm9y
bWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRSZWN0Jik7CiAgICAgdm9pZCBiaW5kRGVmYXVsdFN1
cmZhY2UoKTsKICAgICBDbGlwU3RhY2smIGNsaXBTdGFjaygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJJbWFnZUJ1ZmZlci5oCmluZGV4IDhhMDM1NjI4ZWIzZTQwODQ0MzcxZGE2MzRmYTgyNTkxMjY2
MWE0NTcuLjBkZTE1M2VmYjI0MDk1MGE2MzY2N2U0N2I2MGQ5MzZlYTI5ODUxNDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
SW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgcHJpdmF0ZToK
IAogY2xhc3MgVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyIDogcHVibGljIFRleHR1cmVNYXBwZXIg
ewogcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBkcmF3Qm9yZGVyKGNvbnN0IENvbG9yJiBjb2xv
ciwgZmxvYXQgYm9yZGVyV2lkdGgsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01hdHJpeCA9IFRyYW5zZm9ybWF0aW9uTWF0
cml4KCkpIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1RleHR1cmUoY29uc3QgQml0bWFwVGV4
dHVyZSYsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmLCBmbG9hdCBvcGFjaXR5LCBjb25zdCBCaXRtYXBUZXh0dXJlKiBtYXNrVGV4dHVyZSk7
CiAgICAgdmlydHVhbCB2b2lkIGJlZ2luQ2xpcChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYs
IGNvbnN0IEZsb2F0UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCBiaW5kU3VyZmFjZShCaXRtYXBU
ZXh0dXJlKiBzdXJmYWNlKSB7IG1fY3VycmVudFN1cmZhY2UgPSBzdXJmYWNlO30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
TGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJMYXllci5jcHAKaW5kZXggODRhNjYwMWYyNmQ4ZjRhOWQxZmQ1YWFlNzY3OTRmYzVj
ODgwN2MwMS4uNDBmMGM5ODM2MTNiMzNiNDc1ZTc4ZjM5NzllMzFkMTMxNjY2ZjYyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJMYXllci5jcHAKQEAgLTkwLDcgKzkwLDcgQEAgdm9pZCBUZXh0dXJlTWFw
cGVyTGF5ZXI6OmNvbXB1dGVUcmFuc2Zvcm1zUmVjdXJzaXZlKCkKICAgICAgICAgc29ydEJ5Wk9y
ZGVyKG1fY2hpbGRyZW4sIDAsIG1fY2hpbGRyZW4uc2l6ZSgpKTsKIH0KIAotdm9pZCBUZXh0dXJl
TWFwcGVyTGF5ZXI6OnVwZGF0ZUJhY2tpbmdTdG9yZShUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFw
cGVyLCBHcmFwaGljc0xheWVyKiBsYXllcikKK3ZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjp1cGRh
dGVCYWNraW5nU3RvcmUoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXIqIGxheWVyKQogewogICAgIGlmICghbGF5ZXIgfHwgIXRleHR1cmVNYXBw
ZXIpCiAgICAgICAgIHJldHVybjsKQEAgLTEyMyw3ICsxMjMsMTMgQEAgdm9pZCBUZXh0dXJlTWFw
cGVyTGF5ZXI6OnVwZGF0ZUJhY2tpbmdTdG9yZShUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVy
LCBHcmFwaGkKICAgICBsYXllci0+cGFpbnRHcmFwaGljc0xheWVyQ29udGVudHMoKmNvbnRleHQs
IGRpcnR5UmVjdCk7CiAKICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gaW1hZ2VCdWZmZXItPmNv
cHlJbWFnZShEb250Q29weUJhY2tpbmdTdG9yZSk7Ci0gICAgc3RhdGljX2Nhc3Q8VGV4dHVyZU1h
cHBlclRpbGVkQmFja2luZ1N0b3JlKj4obV9iYWNraW5nU3RvcmUuZ2V0KCkpLT51cGRhdGVDb250
ZW50cyh0ZXh0dXJlTWFwcGVyLCBpbWFnZS5nZXQoKSwgbV9zaXplLCBkaXJ0eVJlY3QpOworCisg
ICAgVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUgPSBzdGF0aWNf
Y2FzdDxUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUqPihtX2JhY2tpbmdTdG9yZS5nZXQo
KSk7CisgICAgYmFja2luZ1N0b3JlLT51cGRhdGVDb250ZW50cyh0ZXh0dXJlTWFwcGVyLCBpbWFn
ZS5nZXQoKSwgbV9zaXplLCBkaXJ0eVJlY3QpOworCisgICAgYmFja2luZ1N0b3JlLT5zZXRTaG93
RGVidWdCb3JkZXJzKGxheWVyLT5zaG93RGVidWdCb3JkZXJzKCkpOworICAgIGJhY2tpbmdTdG9y
ZS0+c2V0RGVidWdCb3JkZXIobV9kZWJ1Z0JvcmRlckNvbG9yLCBtX2RlYnVnQm9yZGVyV2lkdGgp
OworCiAgICAgbV9zdGF0ZS5uZWVkc0Rpc3BsYXkgPSBmYWxzZTsKICAgICBtX3N0YXRlLm5lZWRz
RGlzcGxheVJlY3QgPSBJbnRSZWN0KCk7CiB9CkBAIC0zNzIsNiArMzc4LDggQEAgdm9pZCBUZXh0
dXJlTWFwcGVyTGF5ZXI6OnN5bmNDb21wb3NpdGluZ1N0YXRlU2VsZihHcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlciogZ3IKICAgICBpZiAoY2hhbmdlTWFzayA9PSBOb0NoYW5nZXMgJiYgZ3JhcGhp
Y3NMYXllci0+bV9hbmltYXRpb25zLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
Z3JhcGhpY3NMYXllci0+dXBkYXRlRGVidWdJbmRpY2F0b3JzKCk7CisKICAgICBpZiAoY2hhbmdl
TWFzayAmIFBhcmVudENoYW5nZSkgewogICAgICAgICBUZXh0dXJlTWFwcGVyTGF5ZXIqIG5ld1Bh
cmVudCA9IHRvVGV4dHVyZU1hcHBlckxheWVyKGdyYXBoaWNzTGF5ZXItPnBhcmVudCgpKTsKICAg
ICAgICAgaWYgKG5ld1BhcmVudCAhPSBtX3BhcmVudCkgewpAQCAtNTQ2LDUgKzU1NCwxMyBAQCB2
b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6c2V0U2Nyb2xsUG9zaXRpb25EZWx0YUlmTmVlZGVkKGNv
bnN0IEludFBvaW50JiBkZWx0YSkKICAgICBtX3RyYW5zZm9ybS5zZXRQb3NpdGlvbihtX3N0YXRl
LnBvcyArIG1fc2Nyb2xsUG9zaXRpb25EZWx0YSk7CiB9CiAKK3ZvaWQgVGV4dHVyZU1hcHBlckxh
eWVyOjpzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYgY29sb3IsIGZsb2F0IHdpZHRoKQorewor
ICAgIC8vIFRoZSBkZWZhdWx0IHZhbHVlcyBmb3IgR3JhcGhpY3NMYXllciBkZWJ1ZyBib3JkZXJz
IGFyZSBhIGxpdHRsZQorICAgIC8vIGhhcmQgdG8gc2VlIChzb21lIGxlc3MgdGhhbiBvbmUgcGl4
ZWwgd2lkZSksIHNvIHdlIGRvdWJsZSB0aGVpciBzaXplIGhlcmUuCisgICAgbV9kZWJ1Z0JvcmRl
ckNvbG9yID0gY29sb3I7CisgICAgbV9kZWJ1Z0JvcmRlcldpZHRoID0gd2lkdGggKiAyOworfQor
CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaAppbmRleCAxNzJjYTVjYjE0OGU1Yjkx
NjU1YzNlOTYxOGRiNmE1ODE1ZWI3ZjFiLi5kYTFhYzk5MTY3NDg4ZjI3ODAwMTFmNjg3Mjk0MWVk
MGViYjJkMDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oCkBAIC0xMDYsNiArMTA2LDcgQEAg
cHVibGljOgogICAgICAgICAsIG1fY2VudGVyWigwKQogICAgICAgICAsIG1fc2hvdWxkVXBkYXRl
QmFja2luZ1N0b3JlRnJvbUxheWVyKHRydWUpCiAgICAgICAgICwgbV90ZXh0dXJlTWFwcGVyKDAp
CisgICAgICAgICwgbV9kZWJ1Z0JvcmRlcldpZHRoKDApCiAgICAgeyB9CiAKICAgICB2aXJ0dWFs
IH5UZXh0dXJlTWFwcGVyTGF5ZXIoKTsKQEAgLTEyOSw2ICsxMzAsOCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRTY3JvbGxQb3NpdGlvbkRlbHRhSWZOZWVkZWQoY29uc3QgSW50UG9pbnQmKTsKICAg
ICB2b2lkIHNldEZpeGVkVG9WaWV3cG9ydChib29sIGZpeGVkKSB7IG1fZml4ZWRUb1ZpZXdwb3J0
ID0gZml4ZWQ7IH0KIAorICAgIHZvaWQgc2V0RGVidWdCb3JkZXIoY29uc3QgQ29sb3ImLCBmbG9h
dCB3aWR0aCk7CisKIHByaXZhdGU6CiAgICAgVGV4dHVyZU1hcHBlckxheWVyKiByb290TGF5ZXIo
KTsKICAgICB2b2lkIGNvbXB1dGVUcmFuc2Zvcm1zUmVjdXJzaXZlKCk7CkBAIC0xNTIsNyArMTU1
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50U2VsZihjb25zdCBUZXh0dXJlTWFwcGVyUGFp
bnRPcHRpb25zJik7CiAgICAgdm9pZCBwYWludFNlbGZBbmRDaGlsZHJlbihjb25zdCBUZXh0dXJl
TWFwcGVyUGFpbnRPcHRpb25zJik7CiAgICAgdm9pZCBwYWludFNlbGZBbmRDaGlsZHJlbldpdGhS
ZXBsaWNhKGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmKTsKLSAgICB2b2lkIHVwZGF0
ZUJhY2tpbmdTdG9yZShUZXh0dXJlTWFwcGVyKiwgR3JhcGhpY3NMYXllciopOworICAgIHZvaWQg
dXBkYXRlQmFja2luZ1N0b3JlKFRleHR1cmVNYXBwZXIqLCBHcmFwaGljc0xheWVyVGV4dHVyZU1h
cHBlciopOwogCiAgICAgdm9pZCBzeW5jQW5pbWF0aW9ucygpOwogICAgIGJvb2wgaXNWaXNpYmxl
KCkgY29uc3Q7CkBAIC0yMzAsNiArMjMzLDggQEAgcHJpdmF0ZToKICAgICBUZXh0dXJlTWFwcGVy
QW5pbWF0aW9ucyBtX2FuaW1hdGlvbnM7CiAgICAgSW50UG9pbnQgbV9zY3JvbGxQb3NpdGlvbkRl
bHRhOwogICAgIGJvb2wgbV9maXhlZFRvVmlld3BvcnQ7CisgICAgQ29sb3IgbV9kZWJ1Z0JvcmRl
ckNvbG9yOworICAgIGZsb2F0IG1fZGVidWdCb3JkZXJXaWR0aDsKIH07CiAKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJT
aGFkZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5jcHAKaW5kZXggYTc1OWM1ZjRjYTE1Y2U3NWUx
OTg1ZjJjNjZmYTJhOTc4MTk5NDcyOC4uNTZmYTc0MjI0MGRmNTg3ZTI5ODc0MTgzYTYyZTQ2Y2My
MjM5OTViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuY3BwCkBA
IC05Miw2ICs5Miw1OCBAQCBzdGF0aWMgY29uc3QgY2hhciogdmVydGV4U2hhZGVyU291cmNlU2lt
cGxlID0KICAgICAgICAgfQogICAgICk7CiAKK3N0YXRpYyBjb25zdCBjaGFyKiB2ZXJ0ZXhTaGFk
ZXJTb3VyY2VTb2xpZENvbG9yID0KKyAgICBWRVJURVhfU0hBREVSKAorICAgICAgICB1bmlmb3Jt
IG1hdDQgSW5NYXRyaXg7CisgICAgICAgIGF0dHJpYnV0ZSB2ZWM0IEluVmVydGV4OworICAgICAg
ICB2b2lkIG1haW4odm9pZCkKKyAgICAgICAgeworICAgICAgICAgICAgZ2xfUG9zaXRpb24gPSBJ
bk1hdHJpeCAqIEluVmVydGV4OworICAgICAgICB9CisgICAgKTsKKworCitzdGF0aWMgY29uc3Qg
Y2hhciogZnJhZ21lbnRTaGFkZXJTb3VyY2VTb2xpZENvbG9yID0KKyAgICBWRVJURVhfU0hBREVS
KAorICAgICAgICB1bmlmb3JtIHZlYzQgQ29sb3I7CisgICAgICAgIHZvaWQgbWFpbih2b2lkKQor
ICAgICAgICB7CisgICAgICAgICAgICBnbF9GcmFnQ29sb3IgPSBDb2xvcjsKKyAgICAgICAgfQor
ICAgICk7CisKK1Bhc3NSZWZQdHI8VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1Tb2xpZENvbG9y
PiBUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6c29saWRDb2xvclByb2dyYW0oKQoreworICAg
IHJldHVybiBzdGF0aWNfcG9pbnRlcl9jYXN0PFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtU29s
aWRDb2xvcj4oZ2V0U2hhZGVyUHJvZ3JhbShTb2xpZENvbG9yKSk7Cit9CisKK1Bhc3NSZWZQdHI8
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+IFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpn
ZXRTaGFkZXJQcm9ncmFtKFNoYWRlclR5cGUgc2hhZGVyVHlwZSkKK3sKKyAgICBSZWZQdHI8VGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW0+IHByb2dyYW07CisgICAgaWYgKHNoYWRlclR5cGUgPT0g
SW52YWxpZCkKKyAgICAgICAgcmV0dXJuIHByb2dyYW07CisKKyAgICBUZXh0dXJlTWFwcGVyU2hh
ZGVyUHJvZ3JhbU1hcDo6aXRlcmF0b3IgaXQgPSBtX3RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
TWFwLmZpbmQoc2hhZGVyVHlwZSk7CisgICAgaWYgKGl0ICE9IG1fdGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW1NYXAuZW5kKCkpCisgICAgICAgIHJldHVybiBpdC0+c2Vjb25kOworCisgICAgc3dp
dGNoIChzaGFkZXJUeXBlKSB7CisgICAgY2FzZSBTaW1wbGU6CisgICAgICAgIHByb2dyYW0gPSBU
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbVNpbXBsZTo6Y3JlYXRlKCk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgT3BhY2l0eUFuZE1hc2s6CisgICAgICAgIHByb2dyYW0gPSBUZXh0dXJlTWFw
cGVyU2hhZGVyUHJvZ3JhbU9wYWNpdHlBbmRNYXNrOjpjcmVhdGUoKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBTb2xpZENvbG9yOgorICAgICAgICBwcm9ncmFtID0gVGV4dHVyZU1hcHBlclNo
YWRlclByb2dyYW1Tb2xpZENvbG9yOjpjcmVhdGUoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBJbnZhbGlkOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgbV90
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbU1hcC5hZGQoc2hhZGVyVHlwZSwgcHJvZ3JhbSk7Cisg
ICAgcmV0dXJuIHByb2dyYW07Cit9CisKIHZvaWQgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06
OmluaXRpYWxpemVQcm9ncmFtKCkKIHsKICAgICBjb25zdCBjaGFyKiB2ZXJ0ZXhTaGFkZXJTb3Vy
Y2VQcm9ncmFtID0gdmVydGV4U2hhZGVyU291cmNlKCk7CkBAIC0xNjEsNiArMjEzLDI4IEBAIHZv
aWQgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1TaW1wbGU6OnByZXBhcmUoZmxvYXQgb3BhY2l0
eSwgY29uc3QgQml0bWFwVGV4dHVyCiAgICAgZ2xVbmlmb3JtMWYobV9vcGFjaXR5VmFyaWFibGUs
IG9wYWNpdHkpOwogfQogCitQYXNzUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtU29s
aWRDb2xvcj4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1Tb2xpZENvbG9yOjpjcmVhdGUoKQor
eworICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1Tb2xp
ZENvbG9yKCkpOworfQorCitUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbVNvbGlkQ29sb3I6OlRl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtU29saWRDb2xvcigpCit7CisgICAgaW5pdGlhbGl6ZVBy
b2dyYW0oKTsKKyAgICBnZXRVbmlmb3JtTG9jYXRpb24obV9tYXRyaXhWYXJpYWJsZSwgIkluTWF0
cml4Iik7CisgICAgZ2V0VW5pZm9ybUxvY2F0aW9uKG1fY29sb3JWYXJpYWJsZSwgIkNvbG9yIik7
Cit9CisKK2NvbnN0IGNoYXIqIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtU29saWRDb2xvcjo6
dmVydGV4U2hhZGVyU291cmNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdmVydGV4U2hhZGVyU291
cmNlU29saWRDb2xvcjsKK30KKworY29uc3QgY2hhciogVGV4dHVyZU1hcHBlclNoYWRlclByb2dy
YW1Tb2xpZENvbG9yOjpmcmFnbWVudFNoYWRlclNvdXJjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGZyYWdtZW50U2hhZGVyU291cmNlU29saWRDb2xvcjsKK30KKwogUGFzc1JlZlB0cjxUZXh0dXJl
TWFwcGVyU2hhZGVyUHJvZ3JhbU9wYWNpdHlBbmRNYXNrPiBUZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbU9wYWNpdHlBbmRNYXNrOjpjcmVhdGUoKQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcg
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1PcGFjaXR5QW5kTWFzaygpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hh
ZGVyTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmgKaW5kZXggZDA1OTNlNmM3ZmQ4OWM1M2FkNDg4ZjI0
NGNjMjMwYmNjMDk2ODI1MS4uMTYyMjFhY2RhZGQ1Nzg5MTJhYzc2YTU1ZGY3YjUxMmFmZjExNjEx
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmgKQEAgLTEyMywxMiAr
MTIzLDI2IEBAIHByaXZhdGU6CiAgICAgR0xpbnQgbV9tYXNrVGV4dHVyZVZhcmlhYmxlOwogfTsK
IAorY2xhc3MgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1Tb2xpZENvbG9yIDogcHVibGljIFRl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbVNvbGlkQ29sb3I+IGNyZWF0ZSgpOworICAgIEdM
aW50IGNvbG9yVmFyaWFibGUoKSBjb25zdCB7IHJldHVybiBtX2NvbG9yVmFyaWFibGU7IH0KKwor
cHJpdmF0ZToKKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHZlcnRleFNoYWRlclNvdXJjZSgpIGNv
bnN0OworICAgIHZpcnR1YWwgY29uc3QgY2hhciogZnJhZ21lbnRTaGFkZXJTb3VyY2UoKSBjb25z
dDsKKyAgICBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbVNvbGlkQ29sb3IoKTsKKyAgICBHTGlu
dCBtX2NvbG9yVmFyaWFibGU7Cit9OworCisKIGNsYXNzIFRleHR1cmVNYXBwZXJTaGFkZXJNYW5h
Z2VyIHsKIHB1YmxpYzoKICAgICBlbnVtIFNoYWRlclR5cGUgewogICAgICAgICBJbnZhbGlkID0g
MCwgLy8gSGFzaE1hcHMgZG8gbm90IGxpa2UgMCBhcyBhIGtleS4KICAgICAgICAgU2ltcGxlLAot
ICAgICAgICBPcGFjaXR5QW5kTWFzaworICAgICAgICBPcGFjaXR5QW5kTWFzaywKKyAgICAgICAg
U29saWRDb2xvciwKICAgICB9OwogCiAgICAgVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIoKTsK
QEAgLTEzNywzMCArMTUxLDggQEAgcHVibGljOgogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAg
ICBQYXNzUmVmUHRyPFN0YW5kYXJkRmlsdGVyUHJvZ3JhbT4gZ2V0U2hhZGVyRm9yRmlsdGVyKGNv
bnN0IEZpbHRlck9wZXJhdGlvbiYpOwogI2VuZGlmCi0KLSAgICBQYXNzUmVmUHRyPFRleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtPiBnZXRTaGFkZXJQcm9ncmFtKFNoYWRlclR5cGUgc2hhZGVyVHlw
ZSkKLSAgICB7Ci0gICAgICAgIFJlZlB0cjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gcHJv
Z3JhbTsKLSAgICAgICAgaWYgKHNoYWRlclR5cGUgPT0gSW52YWxpZCkKLSAgICAgICAgICAgIHJl
dHVybiBwcm9ncmFtOwotCi0gICAgICAgIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtTWFwOjpp
dGVyYXRvciBpdCA9IG1fdGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1NYXAuZmluZChzaGFkZXJU
eXBlKTsKLSAgICAgICAgaWYgKGl0ICE9IG1fdGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1NYXAu
ZW5kKCkpCi0gICAgICAgICAgICByZXR1cm4gaXQtPnNlY29uZDsKLQotICAgICAgICBzd2l0Y2gg
KHNoYWRlclR5cGUpIHsKLSAgICAgICAgY2FzZSBTaW1wbGU6Ci0gICAgICAgICAgICBwcm9ncmFt
ID0gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1TaW1wbGU6OmNyZWF0ZSgpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgT3BhY2l0eUFuZE1hc2s6Ci0gICAgICAgICAgICBwcm9n
cmFtID0gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1PcGFjaXR5QW5kTWFzazo6Y3JlYXRlKCk7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBJbnZhbGlkOgotICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIH0KLSAgICAgICAgbV90ZXh0dXJlTWFwcGVy
U2hhZGVyUHJvZ3JhbU1hcC5hZGQoc2hhZGVyVHlwZSwgcHJvZ3JhbSk7Ci0gICAgICAgIHJldHVy
biBwcm9ncmFtOwotICAgIH0KKyAgICBQYXNzUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtPiBnZXRTaGFkZXJQcm9ncmFtKFNoYWRlclR5cGUpOworICAgIFBhc3NSZWZQdHI8VGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW1Tb2xpZENvbG9yPiBzb2xpZENvbG9yUHJvZ3JhbSgpOwogCiBw
cml2YXRlOgogICAgIHR5cGVkZWYgSGFzaE1hcDxTaGFkZXJUeXBlLCBSZWZQdHI8VGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW0+LCBEZWZhdWx0SGFzaDxpbnQ+OjpIYXNoLCBIYXNoVHJhaXRzPGlu
dD4gPiBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbU1hcDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>