<?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>88252</bug_id>
          
          <creation_ts>2012-06-04 13:25:20 -0700</creation_ts>
          <short_desc>[chromium] Allow CCLayerImpl to find its layer tree host, and use this for CCVideoLayerImpl instead of always-null pointer.</short_desc>
          <delta_ts>2012-06-04 16:19:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dana Jansens">danakj</reporter>
          <assigned_to name="Dana Jansens">danakj</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>jamesr</cc>
    
    <cc>piman</cc>
    
    <cc>sievers</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wjmaclean</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>640798</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-06-04 13:25:20 -0700</bug_when>
    <thetext>[chromium] Allow CCLayerImpl to find its layer tree host, and use this for CCVideoLayerImpl instead of always-null pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640801</commentid>
    <comment_count>1</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-06-04 13:28:19 -0700</bug_when>
    <thetext>As an extra info, doing this as a pre-req for reserving video layer textures on the main thread, with the contents texture manager. This will also allow the video layer to setNeedsRedraw() when the provider informs it about a new frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640802</commentid>
    <comment_count>2</comment_count>
      <attachid>145621</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-06-04 13:28:54 -0700</bug_when>
    <thetext>Created attachment 145621
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640803</commentid>
    <comment_count>3</comment_count>
      <attachid>145621</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-04 13:31:33 -0700</bug_when>
    <thetext>Comment on attachment 145621
Patch

R=me.  Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640961</commentid>
    <comment_count>4</comment_count>
      <attachid>145621</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-04 16:19:21 -0700</bug_when>
    <thetext>Comment on attachment 145621
Patch

Clearing flags on attachment: 145621

Committed r119435: &lt;http://trac.webkit.org/changeset/119435&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640962</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-04 16:19:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145621</attachid>
            <date>2012-06-04 13:28:54 -0700</date>
            <delta_ts>2012-06-04 16:19:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88252-20120604162853.patch</filename>
            <type>text/plain</type>
            <size>29382</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmI1YjYwNmI2N2I5MGZk
NzVlMzUzODFmZjY0M2NhMGJkNTlhZDJmZC4uZTIxN2Q0ODRiZmMxNTkyZTdkY2JiMjgzMTQxMDJj
ZDhjY2U5OTlmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQwIEBACiAyMDEyLTA2LTA0ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFtjaHJvbWl1bV0gQWxs
b3cgQ0NMYXllckltcGwgdG8gZmluZCBpdHMgbGF5ZXIgdHJlZSBob3N0LCBhbmQgdXNlIHRoaXMg
Zm9yIENDVmlkZW9MYXllckltcGwgaW5zdGVhZCBvZiBhbHdheXMtbnVsbCBwb2ludGVyLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgyNTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDQ1ZpZGVvTGF5ZXJJ
bXBsIGhhcyBhIHBvaW50ZXIgdG8gaXRzIENDTGF5ZXJUcmVlSG9zdEltcGwgd2hpY2ggaXMgbmV2
ZXIKKyAgICAgICAgc2V0IHRvIGJlIG5vbi1udWxsIGN1cnJlbnRseS4gSW5zdGVhZCBvZiBtYWtp
bmcgdGhpcyBhIHNwZWNpYWwgY2FzZSwgd2UKKyAgICAgICAgbW92ZSB0aGUgQ0NMYXllclRyZWVI
b3N0SW1wbCogdXAgdG8gdGhlIENDTGF5ZXJJbXBsIGJhc2UgY2xhc3MsIGFuZCBzZXQKKyAgICAg
ICAgdGhlIHBvaW50ZXIgb24gZXZlcnkgbGF5ZXIgZHVyaW5nIGNvbW1pdCB2aWEgdGhlIFRyZWVT
eW5jaHJvbml6ZXIncyB3YWxrCisgICAgICAgIHRocm91Z2ggdGhlIGxheWVyIHRyZWUuCisKKyAg
ICAgICAgVW5pdCB0ZXN0czogVGVzdGVkIGJ5IFRyZWVTeW5jaHJvbml6ZXIgdGVzdHMuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UcmVlU3luY2hyb25pemVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRyZWVTeW5jaHJvbml6ZXI6OnN5bmNocm9uaXplVHJlZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6VHJlZVN5bmNocm9uaXplcjo6c3luY2hyb25pemVUcmVlUmVjdXJz
aXZlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UcmVlU3luY2hyb25p
emVyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFRyZWVTeW5jaHJvbml6ZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpDQ0xheWVySW1wbCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OmxheWVyVHJlZUhvc3RJbXBs
KToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpzZXRMYXllclRyZWVIb3N0SW1wbCk6
CisgICAgICAgIChDQ0xheWVySW1wbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJU
cmVlSG9zdDo6ZmluaXNoQ29tbWl0T25JbXBsVGhyZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNDVmlkZW9MYXllckltcGw6OkNDVmlkZW9MYXllckltcGwpOgorICAgICAgICAoV2ViQ29y
ZTo6Q0NWaWRlb0xheWVySW1wbDo6c2V0TmVlZHNSZWRyYXcpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuaDoKKworMjAxMi0wNi0wNCAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKwogICAgICAgICBbY2hyb21pdW1d
IEFkZCBzZXROZWVkc0NvbW1pdCB0byBDQ0xheWVyVHJlZUhvc3RJbXBsJ3MgaW50ZXJmYWNlCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODI0OQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDFlY2FiMWMzZWQ3NzgxYmYwZjk1NGU2NTRlOTg4
NDY0MTdmNDc2NjYuLjBkYzM3MWVjNWJiNDRkZTdjNzI2NjgwYjlkZmVjZjQ3YTljOGJjNDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMTItMDYtMDQgIERh
bmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW2Nocm9taXVtXSBB
bGxvdyBDQ0xheWVySW1wbCB0byBmaW5kIGl0cyBsYXllciB0cmVlIGhvc3QsIGFuZCB1c2UgdGhp
cyBmb3IgQ0NWaWRlb0xheWVySW1wbCBpbnN0ZWFkIG9mIGFsd2F5cy1udWxsIHBvaW50ZXIuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODI1MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMvU2Ny
b2xsYmFyTGF5ZXJDaHJvbWl1bVRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VEVTVCk6Cisg
ICAgICAgICogdGVzdHMvVHJlZVN5bmNocm9uaXplclRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0
VGVzdHM6OmV4cGVjdFRyZWVzQXJlSWRlbnRpY2FsKToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpU
RVNUKToKKworMjAxMi0wNi0wNCAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4K
KwogICAgICAgICBbY2hyb21pdW1dIFJlbW92ZSByZWR1bmRhbnQgc2V0TmVlZHNDb21taXQgd2hl
biBwcmVwYXJlVG9EcmF3IGZhaWxzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04ODI0NgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9UcmVlU3luY2hyb25pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RyZWVTeW5jaHJvbml6ZXIuY3BwCmluZGV4IDk3
NDUxM2ZmMTY5MjYwMzRjMzY4ODk5ZDczMGNlNDk5M2U1NjBmYzkuLmU5MzczZmUwZGM2ZTRlNjk4
ZDVhNTE1ODg4MzRmZjYzZjRkYzE3YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1RyZWVTeW5jaHJvbml6ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RyZWVTeW5jaHJvbml6ZXIuY3BwCkBA
IC0zNSwxNCArMzUsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzT3duUHRyPEND
TGF5ZXJJbXBsPiBUcmVlU3luY2hyb25pemVyOjpzeW5jaHJvbml6ZVRyZWVzKExheWVyQ2hyb21p
dW0qIGxheWVyQ2hyb21pdW1Sb290LCBQYXNzT3duUHRyPENDTGF5ZXJJbXBsPiBvbGRDQ0xheWVy
SW1wbFJvb3QpCitQYXNzT3duUHRyPENDTGF5ZXJJbXBsPiBUcmVlU3luY2hyb25pemVyOjpzeW5j
aHJvbml6ZVRyZWVzKExheWVyQ2hyb21pdW0qIGxheWVyQ2hyb21pdW1Sb290LCBQYXNzT3duUHRy
PENDTGF5ZXJJbXBsPiBvbGRDQ0xheWVySW1wbFJvb3QsIENDTGF5ZXJUcmVlSG9zdEltcGwqIGhv
c3RJbXBsKQogewogICAgIE93blB0ckNDTGF5ZXJJbXBsTWFwIG9sZExheWVyczsKICAgICBSYXdQ
dHJDQ0xheWVySW1wbE1hcCBuZXdMYXllcnM7CiAKICAgICBjb2xsZWN0RXhpc3RpbmdDQ0xheWVy
SW1wbFJlY3Vyc2l2ZShvbGRMYXllcnMsIG9sZENDTGF5ZXJJbXBsUm9vdCk7CiAKLSAgICBPd25Q
dHI8Q0NMYXllckltcGw+IG5ld1RyZWUgPSBzeW5jaHJvbml6ZVRyZWVSZWN1cnNpdmUobmV3TGF5
ZXJzLCBvbGRMYXllcnMsIGxheWVyQ2hyb21pdW1Sb290KTsKKyAgICBPd25QdHI8Q0NMYXllcklt
cGw+IG5ld1RyZWUgPSBzeW5jaHJvbml6ZVRyZWVSZWN1cnNpdmUobmV3TGF5ZXJzLCBvbGRMYXll
cnMsIGxheWVyQ2hyb21pdW1Sb290LCBob3N0SW1wbCk7CiAKICAgICB1cGRhdGVTY3JvbGxiYXJM
YXllclBvaW50ZXJzUmVjdXJzaXZlKG5ld0xheWVycywgbGF5ZXJDaHJvbWl1bVJvb3QpOwogCkBA
IC03OCw3ICs3OCw3IEBAIFBhc3NPd25QdHI8Q0NMYXllckltcGw+IFRyZWVTeW5jaHJvbml6ZXI6
OnJldXNlT3JDcmVhdGVDQ0xheWVySW1wbChSYXdQdHJDQ0xheWVyCiAgICAgcmV0dXJuIGNjTGF5
ZXJJbXBsLnJlbGVhc2UoKTsKIH0KIAotUGFzc093blB0cjxDQ0xheWVySW1wbD4gVHJlZVN5bmNo
cm9uaXplcjo6c3luY2hyb25pemVUcmVlUmVjdXJzaXZlKFJhd1B0ckNDTGF5ZXJJbXBsTWFwJiBu
ZXdMYXllcnMsIE93blB0ckNDTGF5ZXJJbXBsTWFwJiBvbGRMYXllcnMsIExheWVyQ2hyb21pdW0q
IGxheWVyKQorUGFzc093blB0cjxDQ0xheWVySW1wbD4gVHJlZVN5bmNocm9uaXplcjo6c3luY2hy
b25pemVUcmVlUmVjdXJzaXZlKFJhd1B0ckNDTGF5ZXJJbXBsTWFwJiBuZXdMYXllcnMsIE93blB0
ckNDTGF5ZXJJbXBsTWFwJiBvbGRMYXllcnMsIExheWVyQ2hyb21pdW0qIGxheWVyLCBDQ0xheWVy
VHJlZUhvc3RJbXBsKiBob3N0SW1wbCkKIHsKICAgICBpZiAoIWxheWVyKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKQEAgLTg4LDEyICs4OCwxMyBAQCBQYXNzT3duUHRyPENDTGF5ZXJJbXBsPiBU
cmVlU3luY2hyb25pemVyOjpzeW5jaHJvbml6ZVRyZWVSZWN1cnNpdmUoUmF3UHRyQ0NMYXllcgog
ICAgIGNjTGF5ZXJJbXBsLT5jbGVhckNoaWxkTGlzdCgpOwogICAgIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8TGF5ZXJDaHJvbWl1bT4gPiYgY2hpbGRyZW4gPSBsYXllci0+Y2hpbGRyZW4oKTsKICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGNoaWxkcmVuLnNpemUoKTsgKytpKQotICAgICAgICBjY0xh
eWVySW1wbC0+YWRkQ2hpbGQoc3luY2hyb25pemVUcmVlUmVjdXJzaXZlKG5ld0xheWVycywgb2xk
TGF5ZXJzLCBjaGlsZHJlbltpXS5nZXQoKSkpOworICAgICAgICBjY0xheWVySW1wbC0+YWRkQ2hp
bGQoc3luY2hyb25pemVUcmVlUmVjdXJzaXZlKG5ld0xheWVycywgb2xkTGF5ZXJzLCBjaGlsZHJl
bltpXS5nZXQoKSwgaG9zdEltcGwpKTsKIAotICAgIGNjTGF5ZXJJbXBsLT5zZXRNYXNrTGF5ZXIo
c3luY2hyb25pemVUcmVlUmVjdXJzaXZlKG5ld0xheWVycywgb2xkTGF5ZXJzLCBsYXllci0+bWFz
a0xheWVyKCkpKTsKLSAgICBjY0xheWVySW1wbC0+c2V0UmVwbGljYUxheWVyKHN5bmNocm9uaXpl
VHJlZVJlY3Vyc2l2ZShuZXdMYXllcnMsIG9sZExheWVycywgbGF5ZXItPnJlcGxpY2FMYXllcigp
KSk7CisgICAgY2NMYXllckltcGwtPnNldE1hc2tMYXllcihzeW5jaHJvbml6ZVRyZWVSZWN1cnNp
dmUobmV3TGF5ZXJzLCBvbGRMYXllcnMsIGxheWVyLT5tYXNrTGF5ZXIoKSwgaG9zdEltcGwpKTsK
KyAgICBjY0xheWVySW1wbC0+c2V0UmVwbGljYUxheWVyKHN5bmNocm9uaXplVHJlZVJlY3Vyc2l2
ZShuZXdMYXllcnMsIG9sZExheWVycywgbGF5ZXItPnJlcGxpY2FMYXllcigpLCBob3N0SW1wbCkp
OwogCiAgICAgbGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8oY2NMYXllckltcGwuZ2V0KCkpOworICAg
IGNjTGF5ZXJJbXBsLT5zZXRMYXllclRyZWVIb3N0SW1wbChob3N0SW1wbCk7CiAgICAgcmV0dXJu
IGNjTGF5ZXJJbXBsLnJlbGVhc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVHJlZVN5bmNocm9uaXplci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVHJlZVN5bmNocm9uaXplci5oCmluZGV4
IDFkYmViOGJlZGNhYTExMTNjMDZhYjY1YjhjNzIzNmM1MWRkMWNlYTMuLmQ1Mjg5ZDg4N2QyMjEz
M2ZhN2UyZWI5NWJhMTY5ZjQ4MGNhZDA0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RyZWVTeW5jaHJvbml6ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UcmVlU3luY2hyb25pemVyLmgKQEAg
LTM0LDYgKzM0LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ0NMYXllckltcGw7
CitjbGFzcyBDQ0xheWVyVHJlZUhvc3RJbXBsOwogY2xhc3MgTGF5ZXJDaHJvbWl1bTsKIAogY2xh
c3MgVHJlZVN5bmNocm9uaXplciB7CkBAIC00MSw3ICs0Miw3IEBAIFdURl9NQUtFX05PTkNPUFlB
QkxFKFRyZWVTeW5jaHJvbml6ZXIpOwogcHVibGljOgogICAgIC8vIEFjY2VwdHMgYSBMYXllckNo
cm9taXVtIHRyZWUgYW5kIHJldHVybnMgYSByZWZlcmVuY2UgdG8gYSBDQ0xheWVySW1wbCB0cmVl
IHRoYXQgZHVwbGljYXRlcyB0aGUgc3RydWN0dXJlCiAgICAgLy8gb2YgdGhlIExheWVyQ2hyb21p
dW0gdHJlZSwgcmV1c2luZyB0aGUgQ0NMYXllckltcGxzIGluIHRoZSB0cmVlIHByb3ZpZGVkIGJ5
IG9sZENDTGF5ZXJJbXBsUm9vdCBpZiBwb3NzaWJsZS4KLSAgICBzdGF0aWMgUGFzc093blB0cjxD
Q0xheWVySW1wbD4gc3luY2hyb25pemVUcmVlcyhMYXllckNocm9taXVtKiBsYXllclJvb3QsIFBh
c3NPd25QdHI8Q0NMYXllckltcGw+IG9sZENDTGF5ZXJJbXBsUm9vdCk7CisgICAgc3RhdGljIFBh
c3NPd25QdHI8Q0NMYXllckltcGw+IHN5bmNocm9uaXplVHJlZXMoTGF5ZXJDaHJvbWl1bSogbGF5
ZXJSb290LCBQYXNzT3duUHRyPENDTGF5ZXJJbXBsPiBvbGRDQ0xheWVySW1wbFJvb3QsIENDTGF5
ZXJUcmVlSG9zdEltcGwqKTsKIAogcHJpdmF0ZToKICAgICBUcmVlU3luY2hyb25pemVyKCk7IC8v
IE5vdCBpbnN0YW50aWFibGUuCkBAIC01Miw3ICs1Myw3IEBAIHByaXZhdGU6CiAgICAgLy8gRGVj
bGFyZWQgYXMgc3RhdGljIG1lbWJlciBmdW5jdGlvbnMgc28gdGhleSBjYW4gYWNjZXNzIGZ1bmN0
aW9ucyBvbiBMYXllckNocm9taXVtIGFzIGEgZnJpZW5kIGNsYXNzLgogICAgIHN0YXRpYyBQYXNz
T3duUHRyPENDTGF5ZXJJbXBsPiByZXVzZU9yQ3JlYXRlQ0NMYXllckltcGwoUmF3UHRyQ0NMYXll
ckltcGxNYXAmIG5ld0xheWVycywgT3duUHRyQ0NMYXllckltcGxNYXAmIG9sZExheWVycywgTGF5
ZXJDaHJvbWl1bSopOwogICAgIHN0YXRpYyB2b2lkIGNvbGxlY3RFeGlzdGluZ0NDTGF5ZXJJbXBs
UmVjdXJzaXZlKE93blB0ckNDTGF5ZXJJbXBsTWFwJiBvbGRMYXllcnMsIFBhc3NPd25QdHI8Q0NM
YXllckltcGw+KTsKLSAgICBzdGF0aWMgUGFzc093blB0cjxDQ0xheWVySW1wbD4gc3luY2hyb25p
emVUcmVlUmVjdXJzaXZlKFJhd1B0ckNDTGF5ZXJJbXBsTWFwJiBuZXdMYXllcnMsIE93blB0ckND
TGF5ZXJJbXBsTWFwJiBvbGRMYXllcnMsIExheWVyQ2hyb21pdW0qKTsKKyAgICBzdGF0aWMgUGFz
c093blB0cjxDQ0xheWVySW1wbD4gc3luY2hyb25pemVUcmVlUmVjdXJzaXZlKFJhd1B0ckNDTGF5
ZXJJbXBsTWFwJiBuZXdMYXllcnMsIE93blB0ckNDTGF5ZXJJbXBsTWFwJiBvbGRMYXllcnMsIExh
eWVyQ2hyb21pdW0qLCBDQ0xheWVyVHJlZUhvc3RJbXBsKik7CiAgICAgc3RhdGljIHZvaWQgdXBk
YXRlU2Nyb2xsYmFyTGF5ZXJQb2ludGVyc1JlY3Vyc2l2ZShjb25zdCBSYXdQdHJDQ0xheWVySW1w
bE1hcCYgbmV3TGF5ZXJzLCBMYXllckNocm9taXVtKik7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1w
bC5jcHAKaW5kZXggNGEwMzJhZTRkNGJiMTQ1ZGI2ZjU3YTI4YzhkZWE2OGM1NDQzMWE0ZC4uNzJj
MGVhMmI3OWNlNzJiYTZhZTBmYzYyZWMxNzc2YjY5MmFjNWFmYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJ
bXBsLmNwcApAQCAtNDYsNiArNDYsNyBAQCBDQ0xheWVySW1wbDo6Q0NMYXllckltcGwoaW50IGlk
KQogICAgICwgbV9tYXNrTGF5ZXJJZCgtMSkKICAgICAsIG1fcmVwbGljYUxheWVySWQoLTEpCiAg
ICAgLCBtX2xheWVySWQoaWQpCisgICAgLCBtX2xheWVyVHJlZUhvc3RJbXBsKDApCiAgICAgLCBt
X2FuY2hvclBvaW50KDAuNSwgMC41KQogICAgICwgbV9hbmNob3JQb2ludFooMCkKICAgICAsIG1f
c2Nyb2xsYWJsZShmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCmluZGV4IDA0NTYyNjk3NjZmNzY3
YjA1MmEwYjk0YWU0NDgxMjA3NzFmY2I1ZjIuLmZkNGZhY2FhNDBjYmExNWRmNjI5YTFiMjRkYTMy
YzJmYTViMzc0NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaApAQCAtNDUsNiArNDUsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENDR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgQ0NMYXll
clNvcnRlcjsKK2NsYXNzIENDTGF5ZXJUcmVlSG9zdEltcGw7CiBjbGFzcyBDQ1F1YWRDdWxsZXI7
CiBjbGFzcyBDQ1JlbmRlcmVyOwogY2xhc3MgTGF5ZXJDaHJvbWl1bTsKQEAgLTc5LDYgKzgwLDkg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVwbGljYUxheWVyKFBhc3NPd25QdHI8Q0NMYXllcklt
cGw+KTsKICAgICBDQ0xheWVySW1wbCogcmVwbGljYUxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9y
ZXBsaWNhTGF5ZXIuZ2V0KCk7IH0KIAorICAgIENDTGF5ZXJUcmVlSG9zdEltcGwqIGxheWVyVHJl
ZUhvc3RJbXBsKCkgY29uc3QgeyByZXR1cm4gbV9sYXllclRyZWVIb3N0SW1wbDsgfQorICAgIHZv
aWQgc2V0TGF5ZXJUcmVlSG9zdEltcGwoQ0NMYXllclRyZWVIb3N0SW1wbCogaG9zdEltcGwpIHsg
bV9sYXllclRyZWVIb3N0SW1wbCA9IGhvc3RJbXBsOyB9CisKICAgICBQYXNzT3duUHRyPENDU2hh
cmVkUXVhZFN0YXRlPiBjcmVhdGVTaGFyZWRRdWFkU3RhdGUoKSBjb25zdDsKICAgICAvLyB3aWxs
RHJhdyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgYXBwZW5kUXVhZHMuIElmIHdpbGxEcmF3IGlzIGNh
bGxlZCwKICAgICAvLyBkaWREcmF3IGlzIGd1YXJhbnRlZWQgdG8gYmUgY2FsbGVkIGJlZm9yZSBh
bm90aGVyIHdpbGxEcmF3IG9yIGJlZm9yZQpAQCAtMjgzLDYgKzI4Nyw3IEBAIHByaXZhdGU6CiAg
ICAgaW50IG1fcmVwbGljYUxheWVySWQ7IC8vIGRpdHRvCiAgICAgT3duUHRyPENDTGF5ZXJJbXBs
PiBtX3JlcGxpY2FMYXllcjsKICAgICBpbnQgbV9sYXllcklkOworICAgIENDTGF5ZXJUcmVlSG9z
dEltcGwqIG1fbGF5ZXJUcmVlSG9zdEltcGw7CiAKICAgICAvLyBQcm9wZXJ0aWVzIHN5bmNocm9u
aXplZCBmcm9tIHRoZSBhc3NvY2lhdGVkIExheWVyQ2hyb21pdW0uCiAgICAgRmxvYXRQb2ludCBt
X2FuY2hvclBvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggMTI1MTBl
MjQxMmNiMmExYzA0NDNmNjZlNTUxNjQ2NzZlOGViNTVkMS4uZmEwZWI2NGMzNjViMThkZTBkOTY5
ZmM4M2U5YjQ4MzVhMzg2OTM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCkBA
IC0yNDEsNyArMjQxLDcgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OmZpbmlzaENvbW1pdE9uSW1w
bFRocmVhZChDQ0xheWVyVHJlZUhvc3RJbXBsKiBob3N0SW1wbCkKIHsKICAgICBBU1NFUlQoQ0NQ
cm94eTo6aXNJbXBsVGhyZWFkKCkpOwogCi0gICAgaG9zdEltcGwtPnNldFJvb3RMYXllcihUcmVl
U3luY2hyb25pemVyOjpzeW5jaHJvbml6ZVRyZWVzKHJvb3RMYXllcigpLCBob3N0SW1wbC0+cmVs
ZWFzZVJvb3RMYXllcigpKSk7CisgICAgaG9zdEltcGwtPnNldFJvb3RMYXllcihUcmVlU3luY2hy
b25pemVyOjpzeW5jaHJvbml6ZVRyZWVzKHJvb3RMYXllcigpLCBob3N0SW1wbC0+cmVsZWFzZVJv
b3RMYXllcigpLCBob3N0SW1wbCkpOwogCiAgICAgLy8gV2UgbWF5IGhhdmUgYWRkZWQgYW4gYW5p
bWF0aW9uIGR1cmluZyB0aGUgdHJlZSBzeW5jLiBUaGlzIHdpbGwgY2F1c2UgYm90aCBsYXllciB0
cmVlIGhvc3RzCiAgICAgLy8gdG8gdmlzaXQgdGhlaXIgY29udHJvbGxlcnMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5
ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVmlkZW9MYXllckltcGwuY3BwCmluZGV4IGUyYmM2MzI3MmM4OTM4NmE1MjU3ODYzMDc5NGVh
YjNjYjRjNzAwNzcuLjRlNTY4NDQ0ODYwYWFkZjYxOTUzNzhjZGNkNDMyNDYxODI5ODliZWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VmlkZW9MYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwCkBAIC03Niw3ICs3Niw2IEBAIGNvbnN0
IGZsb2F0IENDVmlkZW9MYXllckltcGw6OmZsaXBUcmFuc2Zvcm1bMTZdID0gewogQ0NWaWRlb0xh
eWVySW1wbDo6Q0NWaWRlb0xheWVySW1wbChpbnQgaWQsIFdlYktpdDo6V2ViVmlkZW9GcmFtZVBy
b3ZpZGVyKiBwcm92aWRlcikKICAgICA6IENDTGF5ZXJJbXBsKGlkKQogICAgICwgbV9wcm92aWRl
cihwcm92aWRlcikKLSAgICAsIG1fbGF5ZXJUcmVlSG9zdEltcGwoMCkKICAgICAsIG1fZnJhbWUo
MCkKIHsKICAgICBtZW1jcHkobV9zdHJlYW1UZXh0dXJlTWF0cml4LCBmbGlwVHJhbnNmb3JtLCBz
aXplb2YobV9zdHJlYW1UZXh0dXJlTWF0cml4KSk7CkBAIC0yOTIsOCArMjkxLDcgQEAgdm9pZCBD
Q1ZpZGVvTGF5ZXJJbXBsOjpkaWRMb3NlQ29udGV4dCgpCiAKIHZvaWQgQ0NWaWRlb0xheWVySW1w
bDo6c2V0TmVlZHNSZWRyYXcoKQogewotICAgIGlmIChtX2xheWVyVHJlZUhvc3RJbXBsKQotICAg
ICAgICBtX2xheWVyVHJlZUhvc3RJbXBsLT5zZXROZWVkc1JlZHJhdygpOworICAgIGxheWVyVHJl
ZUhvc3RJbXBsKCktPnNldE5lZWRzUmVkcmF3KCk7CiB9CiAKIHZvaWQgQ0NWaWRlb0xheWVySW1w
bDo6ZHVtcExheWVyUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgaW50IGluZGVudCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVmlkZW9MYXllckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuaAppbmRleCA1MDAzZjc0Zjc4M2ZlNWM2OTNhMjk1
Yjc4ZTA2Njc2MGE0MDFkZDM3Li4yMjFmNjAwYWNlYjhhMzE5OWY2ZDc4NjhhNGMxZDZkZmViNjhi
ZWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1ZpZGVvTGF5ZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5oCkBAIC05MSw3ICs5MSw2IEBAIHBy
aXZhdGU6CiAgICAgVGV4dHVyZSBtX3RleHR1cmVzW01heFBsYW5lc107CiAKICAgICBmbG9hdCBt
X3N0cmVhbVRleHR1cmVNYXRyaXhbMTZdOwotICAgIENDTGF5ZXJUcmVlSG9zdEltcGwqIG1fbGF5
ZXJUcmVlSG9zdEltcGw7CiAKICAgICBXZWJLaXQ6OldlYlZpZGVvRnJhbWUqIG1fZnJhbWU7CiAg
ICAgR0MzRGVudW0gbV9mb3JtYXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL1Njcm9sbGJhckxheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvU2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IDViZjk5MGNk
ZWU5MjVjODA3ZDY0NTFmNWJiYjQzZmViNDQ1MTJiYjUuLmQyY2Q5YmVmYzlhMDdlMTE2YzUxODg5
YTRhN2I0ZDQ5NzlkZmEyNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvU2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvU2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC0xMDAsNyArMTAw
LDcgQEAgVEVTVChTY3JvbGxiYXJMYXllckNocm9taXVtVGVzdCwgcmVzb2x2ZVNjcm9sbExheWVy
UG9pbnRlcikKICAgICAgICAgbGF5ZXJUcmVlUm9vdC0+YWRkQ2hpbGQoY2hpbGQxKTsKICAgICAg
ICAgbGF5ZXJUcmVlUm9vdC0+YWRkQ2hpbGQoY2hpbGQyKTsKIAotICAgICAgICBPd25QdHI8Q0NM
YXllckltcGw+IGNjTGF5ZXJUcmVlUm9vdCA9IFRyZWVTeW5jaHJvbml6ZXI6OnN5bmNocm9uaXpl
VHJlZXMobGF5ZXJUcmVlUm9vdC5nZXQoKSwgbnVsbHB0cik7CisgICAgICAgIE93blB0cjxDQ0xh
eWVySW1wbD4gY2NMYXllclRyZWVSb290ID0gVHJlZVN5bmNocm9uaXplcjo6c3luY2hyb25pemVU
cmVlcyhsYXllclRyZWVSb290LmdldCgpLCBudWxscHRyLCAwKTsKIAogICAgICAgICBDQ0xheWVy
SW1wbCogY2NDaGlsZDEgPSBjY0xheWVyVHJlZVJvb3QtPmNoaWxkcmVuKClbMF0uZ2V0KCk7CiAg
ICAgICAgIENDU2Nyb2xsYmFyTGF5ZXJJbXBsKiBjY0NoaWxkMiA9IHN0YXRpY19jYXN0PENDU2Ny
b2xsYmFyTGF5ZXJJbXBsKj4oY2NMYXllclRyZWVSb290LT5jaGlsZHJlbigpWzFdLmdldCgpKTsK
QEAgLTExNiw3ICsxMTYsNyBAQCBURVNUKFNjcm9sbGJhckxheWVyQ2hyb21pdW1UZXN0LCByZXNv
bHZlU2Nyb2xsTGF5ZXJQb2ludGVyKQogICAgICAgICBsYXllclRyZWVSb290LT5hZGRDaGlsZChj
aGlsZDEpOwogICAgICAgICBsYXllclRyZWVSb290LT5hZGRDaGlsZChjaGlsZDIpOwogCi0gICAg
ICAgIE93blB0cjxDQ0xheWVySW1wbD4gY2NMYXllclRyZWVSb290ID0gVHJlZVN5bmNocm9uaXpl
cjo6c3luY2hyb25pemVUcmVlcyhsYXllclRyZWVSb290LmdldCgpLCBudWxscHRyKTsKKyAgICAg
ICAgT3duUHRyPENDTGF5ZXJJbXBsPiBjY0xheWVyVHJlZVJvb3QgPSBUcmVlU3luY2hyb25pemVy
OjpzeW5jaHJvbml6ZVRyZWVzKGxheWVyVHJlZVJvb3QuZ2V0KCksIG51bGxwdHIsIDApOwogCiAg
ICAgICAgIENDU2Nyb2xsYmFyTGF5ZXJJbXBsKiBjY0NoaWxkMSA9IHN0YXRpY19jYXN0PENDU2Ny
b2xsYmFyTGF5ZXJJbXBsKj4oY2NMYXllclRyZWVSb290LT5jaGlsZHJlbigpWzBdLmdldCgpKTsK
ICAgICAgICAgQ0NMYXllckltcGwqIGNjQ2hpbGQyID0gY2NMYXllclRyZWVSb290LT5jaGlsZHJl
bigpWzFdLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9U
cmVlU3luY2hyb25pemVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1Ry
ZWVTeW5jaHJvbml6ZXJUZXN0LmNwcAppbmRleCAwOThkZDI3MzE2MGU1ZTVkMDJiODI0ZWQwYzIz
MWRhNGFjODk5NTAzLi5lZGRlZDVhZDJlYmQ2NzYzZGNlMWM4NGQxNDQ0YjgzYjdmODBhODA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RyZWVTeW5jaHJvbml6ZXJU
ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RyZWVTeW5jaHJvbml6
ZXJUZXN0LmNwcApAQCAtMTIwLDIyICsxMjAsMjMgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc3lu
Y2hyb25pemVkQW5pbWF0aW9uczsKIH07CiAKLXZvaWQgZXhwZWN0VHJlZXNBcmVJZGVudGljYWwo
TGF5ZXJDaHJvbWl1bSogbGF5ZXIsIENDTGF5ZXJJbXBsKiBjY0xheWVyKQordm9pZCBleHBlY3RU
cmVlc0FyZUlkZW50aWNhbChMYXllckNocm9taXVtKiBsYXllciwgQ0NMYXllckltcGwqIGNjTGF5
ZXIsIENDTGF5ZXJUcmVlSG9zdEltcGwqIGhvc3RJbXBsKQogewogICAgIEFTU0VSVF9UUlVFKGxh
eWVyKTsKICAgICBBU1NFUlRfVFJVRShjY0xheWVyKTsKIAogICAgIEVYUEVDVF9FUShsYXllci0+
aWQoKSwgY2NMYXllci0+aWQoKSk7CisgICAgRVhQRUNUX0VRKGNjTGF5ZXItPmxheWVyVHJlZUhv
c3RJbXBsKCksIGhvc3RJbXBsKTsKIAogICAgIEVYUEVDVF9FUShsYXllci0+bm9uRmFzdFNjcm9s
bGFibGVSZWdpb24oKSwgY2NMYXllci0+bm9uRmFzdFNjcm9sbGFibGVSZWdpb24oKSk7CiAKICAg
ICBBU1NFUlRfRVEoISFsYXllci0+bWFza0xheWVyKCksICEhY2NMYXllci0+bWFza0xheWVyKCkp
OwogICAgIGlmIChsYXllci0+bWFza0xheWVyKCkpCi0gICAgICAgIGV4cGVjdFRyZWVzQXJlSWRl
bnRpY2FsKGxheWVyLT5tYXNrTGF5ZXIoKSwgY2NMYXllci0+bWFza0xheWVyKCkpOworICAgICAg
ICBleHBlY3RUcmVlc0FyZUlkZW50aWNhbChsYXllci0+bWFza0xheWVyKCksIGNjTGF5ZXItPm1h
c2tMYXllcigpLCBob3N0SW1wbCk7CiAKICAgICBBU1NFUlRfRVEoISFsYXllci0+cmVwbGljYUxh
eWVyKCksICEhY2NMYXllci0+cmVwbGljYUxheWVyKCkpOwogICAgIGlmIChsYXllci0+cmVwbGlj
YUxheWVyKCkpCi0gICAgICAgIGV4cGVjdFRyZWVzQXJlSWRlbnRpY2FsKGxheWVyLT5yZXBsaWNh
TGF5ZXIoKSwgY2NMYXllci0+cmVwbGljYUxheWVyKCkpOworICAgICAgICBleHBlY3RUcmVlc0Fy
ZUlkZW50aWNhbChsYXllci0+cmVwbGljYUxheWVyKCksIGNjTGF5ZXItPnJlcGxpY2FMYXllcigp
LCBob3N0SW1wbCk7CiAKICAgICBjb25zdCBWZWN0b3I8UmVmUHRyPExheWVyQ2hyb21pdW0+ID4m
IGxheWVyQ2hpbGRyZW4gPSBsYXllci0+Y2hpbGRyZW4oKTsKICAgICBjb25zdCBWZWN0b3I8T3du
UHRyPENDTGF5ZXJJbXBsPiA+JiBjY0xheWVyQ2hpbGRyZW4gPSBjY0xheWVyLT5jaGlsZHJlbigp
OwpAQCAtMTQzLDcgKzE0NCw3IEBAIHZvaWQgZXhwZWN0VHJlZXNBcmVJZGVudGljYWwoTGF5ZXJD
aHJvbWl1bSogbGF5ZXIsIENDTGF5ZXJJbXBsKiBjY0xheWVyKQogICAgIEFTU0VSVF9FUShsYXll
ckNoaWxkcmVuLnNpemUoKSwgY2NMYXllckNoaWxkcmVuLnNpemUoKSk7CiAKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGxheWVyQ2hpbGRyZW4uc2l6ZSgpOyArK2kpCi0gICAgICAgIGV4cGVj
dFRyZWVzQXJlSWRlbnRpY2FsKGxheWVyQ2hpbGRyZW5baV0uZ2V0KCksIGNjTGF5ZXJDaGlsZHJl
bltpXS5nZXQoKSk7CisgICAgICAgIGV4cGVjdFRyZWVzQXJlSWRlbnRpY2FsKGxheWVyQ2hpbGRy
ZW5baV0uZ2V0KCksIGNjTGF5ZXJDaGlsZHJlbltpXS5nZXQoKSwgaG9zdEltcGwpOwogfQogCiAv
LyBBdHRlbXB0cyB0byBzeW5jaHJvbml6ZXMgYSBudWxsIHRyZWUuIFRoaXMgc2hvdWxkIG5vdCBj
cmFzaCwgYW5kIHNob3VsZApAQCAtMTUyLDcgKzE1Myw3IEBAIFRFU1QoVHJlZVN5bmNocm9uaXpl
clRlc3QsIHN5bmNOdWxsVHJlZSkKIHsKICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1w
bDsKIAotICAgIE93blB0cjxDQ0xheWVySW1wbD4gY2NMYXllclRyZWVSb290ID0gVHJlZVN5bmNo
cm9uaXplcjo6c3luY2hyb25pemVUcmVlcygwLCBudWxscHRyKTsKKyAgICBPd25QdHI8Q0NMYXll
ckltcGw+IGNjTGF5ZXJUcmVlUm9vdCA9IFRyZWVTeW5jaHJvbml6ZXI6OnN5bmNocm9uaXplVHJl
ZXMoMCwgbnVsbHB0ciwgMCk7CiAKICAgICBFWFBFQ1RfVFJVRSghY2NMYXllclRyZWVSb290Lmdl
dCgpKTsKIH0KQEAgLTE2MSwxMyArMTYyLDE3IEBAIFRFU1QoVHJlZVN5bmNocm9uaXplclRlc3Qs
IHN5bmNOdWxsVHJlZSkKIFRFU1QoVHJlZVN5bmNocm9uaXplclRlc3QsIHN5bmNTaW1wbGVUcmVl
RnJvbUVtcHR5KQogewogICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsOworCisgICAg
Q0NTZXR0aW5ncyBzZXR0aW5nczsKKyAgICBPd25QdHI8Q0NMYXllclRyZWVIb3N0SW1wbD4gaG9z
dEltcGwgPSBDQ0xheWVyVHJlZUhvc3RJbXBsOjpjcmVhdGUoc2V0dGluZ3MsIDApOworCiAgICAg
UmVmUHRyPExheWVyQ2hyb21pdW0+IGxheWVyVHJlZVJvb3QgPSBMYXllckNocm9taXVtOjpjcmVh
dGUoKTsKICAgICBsYXllclRyZWVSb290LT5hZGRDaGlsZChMYXllckNocm9taXVtOjpjcmVhdGUo
KSk7CiAgICAgbGF5ZXJUcmVlUm9vdC0+YWRkQ2hpbGQoTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCkp
OwogCi0gICAgT3duUHRyPENDTGF5ZXJJbXBsPiBjY0xheWVyVHJlZVJvb3QgPSBUcmVlU3luY2hy
b25pemVyOjpzeW5jaHJvbml6ZVRyZWVzKGxheWVyVHJlZVJvb3QuZ2V0KCksIG51bGxwdHIpOwor
ICAgIE93blB0cjxDQ0xheWVySW1wbD4gY2NMYXllclRyZWVSb290ID0gVHJlZVN5bmNocm9uaXpl
cjo6c3luY2hyb25pemVUcmVlcyhsYXllclRyZWVSb290LmdldCgpLCBudWxscHRyLCBob3N0SW1w
bC5nZXQoKSk7CiAKLSAgICBleHBlY3RUcmVlc0FyZUlkZW50aWNhbChsYXllclRyZWVSb290Lmdl
dCgpLCBjY0xheWVyVHJlZVJvb3QuZ2V0KCkpOworICAgIGV4cGVjdFRyZWVzQXJlSWRlbnRpY2Fs
KGxheWVyVHJlZVJvb3QuZ2V0KCksIGNjTGF5ZXJUcmVlUm9vdC5nZXQoKSwgaG9zdEltcGwuZ2V0
KCkpOwogfQogCiAvLyBDb25zdHJ1Y3RzIGEgdmVyeSBzaW1wbGUgdHJlZSBhbmQgc3luY2hyb25p
emVzIGl0IGF0dGVtcHRpbmcgdG8gcmV1c2Ugc29tZSBsYXllcnMKQEAgLTE3NiwxMiArMTgxLDE1
IEBAIFRFU1QoVHJlZVN5bmNocm9uaXplclRlc3QsIHN5bmNTaW1wbGVUcmVlUmV1c2luZ0xheWVy
cykKICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbDsKICAgICBWZWN0b3I8aW50PiBj
Y0xheWVyRGVzdHJ1Y3Rpb25MaXN0OwogCisgICAgQ0NTZXR0aW5ncyBzZXR0aW5nczsKKyAgICBP
d25QdHI8Q0NMYXllclRyZWVIb3N0SW1wbD4gaG9zdEltcGwgPSBDQ0xheWVyVHJlZUhvc3RJbXBs
OjpjcmVhdGUoc2V0dGluZ3MsIDApOworCiAgICAgUmVmUHRyPExheWVyQ2hyb21pdW0+IGxheWVy
VHJlZVJvb3QgPSBNb2NrTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCZjY0xheWVyRGVzdHJ1Y3Rpb25M
aXN0KTsKICAgICBsYXllclRyZWVSb290LT5hZGRDaGlsZChNb2NrTGF5ZXJDaHJvbWl1bTo6Y3Jl
YXRlKCZjY0xheWVyRGVzdHJ1Y3Rpb25MaXN0KSk7CiAgICAgbGF5ZXJUcmVlUm9vdC0+YWRkQ2hp
bGQoTW9ja0xheWVyQ2hyb21pdW06OmNyZWF0ZSgmY2NMYXllckRlc3RydWN0aW9uTGlzdCkpOwog
Ci0gICAgT3duUHRyPENDTGF5ZXJJbXBsPiBjY0xheWVyVHJlZVJvb3QgPSBUcmVlU3luY2hyb25p
emVyOjpzeW5jaHJvbml6ZVRyZWVzKGxheWVyVHJlZVJvb3QuZ2V0KCksIG51bGxwdHIpOwotICAg
IGV4cGVjdFRyZWVzQXJlSWRlbnRpY2FsKGxheWVyVHJlZVJvb3QuZ2V0KCksIGNjTGF5ZXJUcmVl
Um9vdC5nZXQoKSk7CisgICAgT3duUHRyPENDTGF5ZXJJbXBsPiBjY0xheWVyVHJlZVJvb3QgPSBU
cmVlU3luY2hyb25pemVyOjpzeW5jaHJvbml6ZVRyZWVzKGxheWVyVHJlZVJvb3QuZ2V0KCksIG51
bGxwdHIsIGhvc3RJbXBsLmdldCgpKTsKKyAgICBleHBlY3RUcmVlc0FyZUlkZW50aWNhbChsYXll
clRyZWVSb290LmdldCgpLCBjY0xheWVyVHJlZVJvb3QuZ2V0KCksIGhvc3RJbXBsLmdldCgpKTsK
IAogICAgIC8vIEFkZCBhIG5ldyBsYXllciB0byB0aGUgTGF5ZXJDaHJvbWl1bSBzaWRlCiAgICAg
bGF5ZXJUcmVlUm9vdC0+Y2hpbGRyZW4oKVswXS0+YWRkQ2hpbGQoTW9ja0xheWVyQ2hyb21pdW06
OmNyZWF0ZSgmY2NMYXllckRlc3RydWN0aW9uTGlzdCkpOwpAQCAtMTkwLDggKzE5OCw4IEBAIFRF
U1QoVHJlZVN5bmNocm9uaXplclRlc3QsIHN5bmNTaW1wbGVUcmVlUmV1c2luZ0xheWVycykKICAg
ICBpbnQgc2Vjb25kQ0NMYXllcklkID0gY2NMYXllclRyZWVSb290LT5jaGlsZHJlbigpWzFdLT5p
ZCgpOwogCiAgICAgLy8gU3luY2hyb25pemUgYWdhaW4uIEFmdGVyIHRoZSBzeW5jIHRoZSB0cmVl
cyBzaG91bGQgYmUgZXF1aXZhbGVudCBhbmQgd2Ugc2hvdWxkIGhhdmUgY3JlYXRlZCBhbmQgZGVz
dHJveWVkIG9uZSBDQ0xheWVySW1wbC4KLSAgICBjY0xheWVyVHJlZVJvb3QgPSBUcmVlU3luY2hy
b25pemVyOjpzeW5jaHJvbml6ZVRyZWVzKGxheWVyVHJlZVJvb3QuZ2V0KCksIGNjTGF5ZXJUcmVl
Um9vdC5yZWxlYXNlKCkpOwotICAgIGV4cGVjdFRyZWVzQXJlSWRlbnRpY2FsKGxheWVyVHJlZVJv
b3QuZ2V0KCksIGNjTGF5ZXJUcmVlUm9vdC5nZXQoKSk7CisgICAgY2NMYXllclRyZWVSb290ID0g
VHJlZVN5bmNocm9uaXplcjo6c3luY2hyb25pemVUcmVlcyhsYXllclRyZWVSb290LmdldCgpLCBj
Y0xheWVyVHJlZVJvb3QucmVsZWFzZSgpLCBob3N0SW1wbC5nZXQoKSk7CisgICAgZXhwZWN0VHJl
ZXNBcmVJZGVudGljYWwobGF5ZXJUcmVlUm9vdC5nZXQoKSwgY2NMYXllclRyZWVSb290LmdldCgp
LCBob3N0SW1wbC5nZXQoKSk7CiAKICAgICBBU1NFUlRfRVEoMXUsIGNjTGF5ZXJEZXN0cnVjdGlv
bkxpc3Quc2l6ZSgpKTsKICAgICBFWFBFQ1RfRVEoc2Vjb25kQ0NMYXllcklkLCBjY0xheWVyRGVz
dHJ1Y3Rpb25MaXN0WzBdKTsKQEAgLTIwMywyMSArMjExLDI0IEBAIFRFU1QoVHJlZVN5bmNocm9u
aXplclRlc3QsIHN5bmNTaW1wbGVUcmVlQW5kVHJhY2tTdGFja2luZ09yZGVyQ2hhbmdlKQogICAg
IERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsOwogICAgIFZlY3RvcjxpbnQ+IGNjTGF5ZXJE
ZXN0cnVjdGlvbkxpc3Q7CiAKKyAgICBDQ1NldHRpbmdzIHNldHRpbmdzOworICAgIE93blB0cjxD
Q0xheWVyVHJlZUhvc3RJbXBsPiBob3N0SW1wbCA9IENDTGF5ZXJUcmVlSG9zdEltcGw6OmNyZWF0
ZShzZXR0aW5ncywgMCk7CisKICAgICAvLyBTZXQgdXAgdGhlIHRyZWUgYW5kIHN5bmMgb25jZS4g
Y2hpbGQyIG5lZWRzIHRvIGJlIHN5bmNlZCBoZXJlLCB0b28sIGV2ZW4gdGhvdWdoIHdlCiAgICAg
Ly8gcmVtb3ZlIGl0IHRvIHNldCB1cCB0aGUgaW50ZW5kZWQgc2NlbmFyaW8uCiAgICAgUmVmUHRy
PExheWVyQ2hyb21pdW0+IGxheWVyVHJlZVJvb3QgPSBNb2NrTGF5ZXJDaHJvbWl1bTo6Y3JlYXRl
KCZjY0xheWVyRGVzdHJ1Y3Rpb25MaXN0KTsKICAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gY2hp
bGQyID0gTW9ja0xheWVyQ2hyb21pdW06OmNyZWF0ZSgmY2NMYXllckRlc3RydWN0aW9uTGlzdCk7
CiAgICAgbGF5ZXJUcmVlUm9vdC0+YWRkQ2hpbGQoTW9ja0xheWVyQ2hyb21pdW06OmNyZWF0ZSgm
Y2NMYXllckRlc3RydWN0aW9uTGlzdCkpOwogICAgIGxheWVyVHJlZVJvb3QtPmFkZENoaWxkKGNo
aWxkMik7Ci0gICAgT3duUHRyPENDTGF5ZXJJbXBsPiBjY0xheWVyVHJlZVJvb3QgPSBUcmVlU3lu
Y2hyb25pemVyOjpzeW5jaHJvbml6ZVRyZWVzKGxheWVyVHJlZVJvb3QuZ2V0KCksIG51bGxwdHIp
OwotICAgIGV4cGVjdFRyZWVzQXJlSWRlbnRpY2FsKGxheWVyVHJlZVJvb3QuZ2V0KCksIGNjTGF5
ZXJUcmVlUm9vdC5nZXQoKSk7CisgICAgT3duUHRyPENDTGF5ZXJJbXBsPiBjY0xheWVyVHJlZVJv
b3QgPSBUcmVlU3luY2hyb25pemVyOjpzeW5jaHJvbml6ZVRyZWVzKGxheWVyVHJlZVJvb3QuZ2V0
KCksIG51bGxwdHIsIGhvc3RJbXBsLmdldCgpKTsKKyAgICBleHBlY3RUcmVlc0FyZUlkZW50aWNh
bChsYXllclRyZWVSb290LmdldCgpLCBjY0xheWVyVHJlZVJvb3QuZ2V0KCksIGhvc3RJbXBsLmdl
dCgpKTsKICAgICBjY0xheWVyVHJlZVJvb3QtPnJlc2V0QWxsQ2hhbmdlVHJhY2tpbmdGb3JTdWJ0
cmVlKCk7CiAKICAgICAvLyByZS1pbnNlcnQgdGhlIGxheWVyIGFuZCBzeW5jIGFnYWluLgogICAg
IGNoaWxkMi0+cmVtb3ZlRnJvbVBhcmVudCgpOwogICAgIGxheWVyVHJlZVJvb3QtPmFkZENoaWxk
KGNoaWxkMik7Ci0gICAgY2NMYXllclRyZWVSb290ID0gVHJlZVN5bmNocm9uaXplcjo6c3luY2hy
b25pemVUcmVlcyhsYXllclRyZWVSb290LmdldCgpLCBjY0xheWVyVHJlZVJvb3QucmVsZWFzZSgp
KTsKLSAgICBleHBlY3RUcmVlc0FyZUlkZW50aWNhbChsYXllclRyZWVSb290LmdldCgpLCBjY0xh
eWVyVHJlZVJvb3QuZ2V0KCkpOworICAgIGNjTGF5ZXJUcmVlUm9vdCA9IFRyZWVTeW5jaHJvbml6
ZXI6OnN5bmNocm9uaXplVHJlZXMobGF5ZXJUcmVlUm9vdC5nZXQoKSwgY2NMYXllclRyZWVSb290
LnJlbGVhc2UoKSwgaG9zdEltcGwuZ2V0KCkpOworICAgIGV4cGVjdFRyZWVzQXJlSWRlbnRpY2Fs
KGxheWVyVHJlZVJvb3QuZ2V0KCksIGNjTGF5ZXJUcmVlUm9vdC5nZXQoKSwgaG9zdEltcGwuZ2V0
KCkpOwogCiAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgaW1wbCB0aHJlYWQgcHJvcGVybHkgdHJhY2tl
ZCB0aGUgY2hhbmdlLgogICAgIEVYUEVDVF9GQUxTRShjY0xheWVyVHJlZVJvb3QtPmxheWVyUHJv
cGVydHlDaGFuZ2VkKCkpOwpAQCAtMjI4LDYgKzIzOSwxMCBAQCBURVNUKFRyZWVTeW5jaHJvbml6
ZXJUZXN0LCBzeW5jU2ltcGxlVHJlZUFuZFRyYWNrU3RhY2tpbmdPcmRlckNoYW5nZSkKIFRFU1Qo
VHJlZVN5bmNocm9uaXplclRlc3QsIHN5bmNTaW1wbGVUcmVlQW5kUHJvcGVydGllcykKIHsKICAg
ICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbDsKKworICAgIENDU2V0dGluZ3Mgc2V0dGlu
Z3M7CisgICAgT3duUHRyPENDTGF5ZXJUcmVlSG9zdEltcGw+IGhvc3RJbXBsID0gQ0NMYXllclRy
ZWVIb3N0SW1wbDo6Y3JlYXRlKHNldHRpbmdzLCAwKTsKKwogICAgIFJlZlB0cjxMYXllckNocm9t
aXVtPiBsYXllclRyZWVSb290ID0gTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CiAgICAgbGF5ZXJU
cmVlUm9vdC0+YWRkQ2hpbGQoTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCkpOwogICAgIGxheWVyVHJl
ZVJvb3QtPmFkZENoaWxkKExheWVyQ2hyb21pdW06OmNyZWF0ZSgpKTsKQEAgLTI0Miw4ICsyNTcs
OCBAQCBURVNUKFRyZWVTeW5jaHJvbml6ZXJUZXN0LCBzeW5jU2ltcGxlVHJlZUFuZFByb3BlcnRp
ZXMpCiAgICAgSW50U2l6ZSBzZWNvbmRDaGlsZEJvdW5kcyA9IEludFNpemUoMjUsIDUzKTsKICAg
ICBsYXllclRyZWVSb290LT5jaGlsZHJlbigpWzFdLT5zZXRCb3VuZHMoc2Vjb25kQ2hpbGRCb3Vu
ZHMpOwogCi0gICAgT3duUHRyPENDTGF5ZXJJbXBsPiBjY0xheWVyVHJlZVJvb3QgPSBUcmVlU3lu
Y2hyb25pemVyOjpzeW5jaHJvbml6ZVRyZWVzKGxheWVyVHJlZVJvb3QuZ2V0KCksIG51bGxwdHIp
OwotICAgIGV4cGVjdFRyZWVzQXJlSWRlbnRpY2FsKGxheWVyVHJlZVJvb3QuZ2V0KCksIGNjTGF5
ZXJUcmVlUm9vdC5nZXQoKSk7CisgICAgT3duUHRyPENDTGF5ZXJJbXBsPiBjY0xheWVyVHJlZVJv
b3QgPSBUcmVlU3luY2hyb25pemVyOjpzeW5jaHJvbml6ZVRyZWVzKGxheWVyVHJlZVJvb3QuZ2V0
KCksIG51bGxwdHIsIGhvc3RJbXBsLmdldCgpKTsKKyAgICBleHBlY3RUcmVlc0FyZUlkZW50aWNh
bChsYXllclRyZWVSb290LmdldCgpLCBjY0xheWVyVHJlZVJvb3QuZ2V0KCksIGhvc3RJbXBsLmdl
dCgpKTsKIAogICAgIC8vIENoZWNrIHRoYXQgdGhlIHByb3BlcnR5IHZhbHVlcyB3ZSBzZXQgb24g
dGhlIExheWVyQ2hyb21pdW0gdHJlZSBhcmUgcmVmbGVjdGVkIGluIHRoZSBDQ0xheWVySW1wbCB0
cmVlLgogICAgIEZsb2F0UG9pbnQgcm9vdENDTGF5ZXJQb3NpdGlvbiA9IGNjTGF5ZXJUcmVlUm9v
dC0+cG9zaXRpb24oKTsKQEAgLTI2Miw2ICsyNzcsOSBAQCBURVNUKFRyZWVTeW5jaHJvbml6ZXJU
ZXN0LCByZXVzZUNDTGF5ZXJzQWZ0ZXJTdHJ1Y3R1cmFsQ2hhbmdlKQogICAgIERlYnVnU2NvcGVk
U2V0SW1wbFRocmVhZCBpbXBsOwogICAgIFZlY3RvcjxpbnQ+IGNjTGF5ZXJEZXN0cnVjdGlvbkxp
c3Q7CiAKKyAgICBDQ1NldHRpbmdzIHNldHRpbmdzOworICAgIE93blB0cjxDQ0xheWVyVHJlZUhv
c3RJbXBsPiBob3N0SW1wbCA9IENDTGF5ZXJUcmVlSG9zdEltcGw6OmNyZWF0ZShzZXR0aW5ncywg
MCk7CisKICAgICAvLyBTZXQgdXAgYSB0cmVlIHdpdGggdGhpcyBzb3J0IG9mIHN0cnVjdHVyZToK
ICAgICAvLyByb290IC0tLSBBIC0tLSBCIC0tLSstLS0gQwogICAgIC8vICAgICAgICAgICAgICAg
ICAgICAgfApAQCAtMjc5LDggKzI5Nyw4IEBAIFRFU1QoVHJlZVN5bmNocm9uaXplclRlc3QsIHJl
dXNlQ0NMYXllcnNBZnRlclN0cnVjdHVyYWxDaGFuZ2UpCiAgICAgbGF5ZXJCLT5hZGRDaGlsZChN
b2NrTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCZjY0xheWVyRGVzdHJ1Y3Rpb25MaXN0KSk7CiAgICAg
UmVmUHRyPExheWVyQ2hyb21pdW0+IGxheWVyRCA9IGxheWVyQi0+Y2hpbGRyZW4oKVsxXS5nZXQo
KTsKIAotICAgIE93blB0cjxDQ0xheWVySW1wbD4gY2NMYXllclRyZWVSb290ID0gVHJlZVN5bmNo
cm9uaXplcjo6c3luY2hyb25pemVUcmVlcyhsYXllclRyZWVSb290LmdldCgpLCBudWxscHRyKTsK
LSAgICBleHBlY3RUcmVlc0FyZUlkZW50aWNhbChsYXllclRyZWVSb290LmdldCgpLCBjY0xheWVy
VHJlZVJvb3QuZ2V0KCkpOworICAgIE93blB0cjxDQ0xheWVySW1wbD4gY2NMYXllclRyZWVSb290
ID0gVHJlZVN5bmNocm9uaXplcjo6c3luY2hyb25pemVUcmVlcyhsYXllclRyZWVSb290LmdldCgp
LCBudWxscHRyLCBob3N0SW1wbC5nZXQoKSk7CisgICAgZXhwZWN0VHJlZXNBcmVJZGVudGljYWwo
bGF5ZXJUcmVlUm9vdC5nZXQoKSwgY2NMYXllclRyZWVSb290LmdldCgpLCBob3N0SW1wbC5nZXQo
KSk7CiAKICAgICAvLyBOb3cgcmVzdHJ1Y3R1cmUgdGhlIHRyZWUgdG8gbG9vayBsaWtlIHRoaXM6
CiAgICAgLy8gcm9vdCAtLS0gRCAtLS0rLS0tIEEKQEAgLTI5Nyw4ICszMTUsOCBAQCBURVNUKFRy
ZWVTeW5jaHJvbml6ZXJUZXN0LCByZXVzZUNDTGF5ZXJzQWZ0ZXJTdHJ1Y3R1cmFsQ2hhbmdlKQog
ICAgIGxheWVyQy0+YWRkQ2hpbGQobGF5ZXJCKTsKIAogICAgIC8vIEFmdGVyIGFub3RoZXIgc3lu
Y2hyb25pemUgb3VyIHRyZWVzIHNob3VsZCBtYXRjaCBhbmQgd2Ugc2hvdWxkIG5vdCBoYXZlIGRl
c3Ryb3llZCBhbnkgQ0NMYXllckltcGxzCi0gICAgY2NMYXllclRyZWVSb290ID0gVHJlZVN5bmNo
cm9uaXplcjo6c3luY2hyb25pemVUcmVlcyhsYXllclRyZWVSb290LmdldCgpLCBjY0xheWVyVHJl
ZVJvb3QucmVsZWFzZSgpKTsKLSAgICBleHBlY3RUcmVlc0FyZUlkZW50aWNhbChsYXllclRyZWVS
b290LmdldCgpLCBjY0xheWVyVHJlZVJvb3QuZ2V0KCkpOworICAgIGNjTGF5ZXJUcmVlUm9vdCA9
IFRyZWVTeW5jaHJvbml6ZXI6OnN5bmNocm9uaXplVHJlZXMobGF5ZXJUcmVlUm9vdC5nZXQoKSwg
Y2NMYXllclRyZWVSb290LnJlbGVhc2UoKSwgaG9zdEltcGwuZ2V0KCkpOworICAgIGV4cGVjdFRy
ZWVzQXJlSWRlbnRpY2FsKGxheWVyVHJlZVJvb3QuZ2V0KCksIGNjTGF5ZXJUcmVlUm9vdC5nZXQo
KSwgaG9zdEltcGwuZ2V0KCkpOwogCiAgICAgRVhQRUNUX0VRKDB1LCBjY0xheWVyRGVzdHJ1Y3Rp
b25MaXN0LnNpemUoKSk7CiB9CkBAIC0zMDksNiArMzI3LDkgQEAgVEVTVChUcmVlU3luY2hyb25p
emVyVGVzdCwgc3luY1NpbXBsZVRyZWVUaGVuRGVzdHJveSkKICAgICBEZWJ1Z1Njb3BlZFNldElt
cGxUaHJlYWQgaW1wbDsKICAgICBWZWN0b3I8aW50PiBjY0xheWVyRGVzdHJ1Y3Rpb25MaXN0Owog
CisgICAgQ0NTZXR0aW5ncyBzZXR0aW5nczsKKyAgICBPd25QdHI8Q0NMYXllclRyZWVIb3N0SW1w
bD4gaG9zdEltcGwgPSBDQ0xheWVyVHJlZUhvc3RJbXBsOjpjcmVhdGUoc2V0dGluZ3MsIDApOwor
CiAgICAgUmVmUHRyPExheWVyQ2hyb21pdW0+IG9sZExheWVyVHJlZVJvb3QgPSBNb2NrTGF5ZXJD
aHJvbWl1bTo6Y3JlYXRlKCZjY0xheWVyRGVzdHJ1Y3Rpb25MaXN0KTsKICAgICBvbGRMYXllclRy
ZWVSb290LT5hZGRDaGlsZChNb2NrTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCZjY0xheWVyRGVzdHJ1
Y3Rpb25MaXN0KSk7CiAgICAgb2xkTGF5ZXJUcmVlUm9vdC0+YWRkQ2hpbGQoTW9ja0xheWVyQ2hy
b21pdW06OmNyZWF0ZSgmY2NMYXllckRlc3RydWN0aW9uTGlzdCkpOwpAQCAtMzE3LDE2ICszMzgs
MTYgQEAgVEVTVChUcmVlU3luY2hyb25pemVyVGVzdCwgc3luY1NpbXBsZVRyZWVUaGVuRGVzdHJv
eSkKICAgICBpbnQgb2xkVHJlZUZpcnN0Q2hpbGRMYXllcklkID0gb2xkTGF5ZXJUcmVlUm9vdC0+
Y2hpbGRyZW4oKVswXS0+aWQoKTsKICAgICBpbnQgb2xkVHJlZVNlY29uZENoaWxkTGF5ZXJJZCA9
IG9sZExheWVyVHJlZVJvb3QtPmNoaWxkcmVuKClbMV0tPmlkKCk7CiAKLSAgICBPd25QdHI8Q0NM
YXllckltcGw+IGNjTGF5ZXJUcmVlUm9vdCA9IFRyZWVTeW5jaHJvbml6ZXI6OnN5bmNocm9uaXpl
VHJlZXMob2xkTGF5ZXJUcmVlUm9vdC5nZXQoKSwgbnVsbHB0cik7Ci0gICAgZXhwZWN0VHJlZXNB
cmVJZGVudGljYWwob2xkTGF5ZXJUcmVlUm9vdC5nZXQoKSwgY2NMYXllclRyZWVSb290LmdldCgp
KTsKKyAgICBPd25QdHI8Q0NMYXllckltcGw+IGNjTGF5ZXJUcmVlUm9vdCA9IFRyZWVTeW5jaHJv
bml6ZXI6OnN5bmNocm9uaXplVHJlZXMob2xkTGF5ZXJUcmVlUm9vdC5nZXQoKSwgbnVsbHB0ciwg
aG9zdEltcGwuZ2V0KCkpOworICAgIGV4cGVjdFRyZWVzQXJlSWRlbnRpY2FsKG9sZExheWVyVHJl
ZVJvb3QuZ2V0KCksIGNjTGF5ZXJUcmVlUm9vdC5nZXQoKSwgaG9zdEltcGwuZ2V0KCkpOwogCiAg
ICAgLy8gUmVtb3ZlIGFsbCBjaGlsZHJlbiBvbiB0aGUgTGF5ZXJDaHJvbWl1bSBzaWRlLgogICAg
IG9sZExheWVyVHJlZVJvb3QtPnJlbW92ZUFsbENoaWxkcmVuKCk7CiAKICAgICAvLyBTeW5jaHJv
bml6ZSBhZ2Fpbi4gQWZ0ZXIgdGhlIHN5bmMgYWxsIENDTGF5ZXJJbXBscyBmcm9tIHRoZSBvbGQg
dHJlZSBzaG91bGQgYmUgZGVsZXRlZC4KICAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gbmV3TGF5
ZXJUcmVlUm9vdCA9IExheWVyQ2hyb21pdW06OmNyZWF0ZSgpOwotICAgIGNjTGF5ZXJUcmVlUm9v
dCA9IFRyZWVTeW5jaHJvbml6ZXI6OnN5bmNocm9uaXplVHJlZXMobmV3TGF5ZXJUcmVlUm9vdC5n
ZXQoKSwgY2NMYXllclRyZWVSb290LnJlbGVhc2UoKSk7Ci0gICAgZXhwZWN0VHJlZXNBcmVJZGVu
dGljYWwobmV3TGF5ZXJUcmVlUm9vdC5nZXQoKSwgY2NMYXllclRyZWVSb290LmdldCgpKTsKKyAg
ICBjY0xheWVyVHJlZVJvb3QgPSBUcmVlU3luY2hyb25pemVyOjpzeW5jaHJvbml6ZVRyZWVzKG5l
d0xheWVyVHJlZVJvb3QuZ2V0KCksIGNjTGF5ZXJUcmVlUm9vdC5yZWxlYXNlKCksIGhvc3RJbXBs
LmdldCgpKTsKKyAgICBleHBlY3RUcmVlc0FyZUlkZW50aWNhbChuZXdMYXllclRyZWVSb290Lmdl
dCgpLCBjY0xheWVyVHJlZVJvb3QuZ2V0KCksIGhvc3RJbXBsLmdldCgpKTsKIAogICAgIEFTU0VS
VF9FUSgzdSwgY2NMYXllckRlc3RydWN0aW9uTGlzdC5zaXplKCkpOwogICAgIEVYUEVDVF9UUlVF
KGNjTGF5ZXJEZXN0cnVjdGlvbkxpc3QuY29udGFpbnMob2xkVHJlZVJvb3RMYXllcklkKSk7CkBA
IC0zMzgsNiArMzU5LDEwIEBAIFRFU1QoVHJlZVN5bmNocm9uaXplclRlc3QsIHN5bmNTaW1wbGVU
cmVlVGhlbkRlc3Ryb3kpCiBURVNUKFRyZWVTeW5jaHJvbml6ZXJUZXN0LCBzeW5jTWFza1JlcGxp
Y2FBbmRSZXBsaWNhTWFza0xheWVycykKIHsKICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQg
aW1wbDsKKworICAgIENDU2V0dGluZ3Mgc2V0dGluZ3M7CisgICAgT3duUHRyPENDTGF5ZXJUcmVl
SG9zdEltcGw+IGhvc3RJbXBsID0gQ0NMYXllclRyZWVIb3N0SW1wbDo6Y3JlYXRlKHNldHRpbmdz
LCAwKTsKKwogICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBsYXllclRyZWVSb290ID0gTGF5ZXJD
aHJvbWl1bTo6Y3JlYXRlKCk7CiAgICAgbGF5ZXJUcmVlUm9vdC0+YWRkQ2hpbGQoTGF5ZXJDaHJv
bWl1bTo6Y3JlYXRlKCkpOwogICAgIGxheWVyVHJlZVJvb3QtPmFkZENoaWxkKExheWVyQ2hyb21p
dW06OmNyZWF0ZSgpKTsKQEAgLTM1NywyOSArMzgyLDMzIEBAIFRFU1QoVHJlZVN5bmNocm9uaXpl
clRlc3QsIHN5bmNNYXNrUmVwbGljYUFuZFJlcGxpY2FNYXNrTGF5ZXJzKQogICAgIHJlcGxpY2FM
YXllcldpdGhNYXNrLT5zZXRNYXNrTGF5ZXIocmVwbGljYU1hc2tMYXllci5nZXQoKSk7CiAgICAg
bGF5ZXJUcmVlUm9vdC0+Y2hpbGRyZW4oKVsyXS0+c2V0UmVwbGljYUxheWVyKHJlcGxpY2FMYXll
cldpdGhNYXNrLmdldCgpKTsKIAotICAgIE93blB0cjxDQ0xheWVySW1wbD4gY2NMYXllclRyZWVS
b290ID0gVHJlZVN5bmNocm9uaXplcjo6c3luY2hyb25pemVUcmVlcyhsYXllclRyZWVSb290Lmdl
dCgpLCBudWxscHRyKTsKKyAgICBPd25QdHI8Q0NMYXllckltcGw+IGNjTGF5ZXJUcmVlUm9vdCA9
IFRyZWVTeW5jaHJvbml6ZXI6OnN5bmNocm9uaXplVHJlZXMobGF5ZXJUcmVlUm9vdC5nZXQoKSwg
bnVsbHB0ciwgaG9zdEltcGwuZ2V0KCkpOwogCi0gICAgZXhwZWN0VHJlZXNBcmVJZGVudGljYWwo
bGF5ZXJUcmVlUm9vdC5nZXQoKSwgY2NMYXllclRyZWVSb290LmdldCgpKTsKKyAgICBleHBlY3RU
cmVlc0FyZUlkZW50aWNhbChsYXllclRyZWVSb290LmdldCgpLCBjY0xheWVyVHJlZVJvb3QuZ2V0
KCksIGhvc3RJbXBsLmdldCgpKTsKIAogICAgIC8vIFJlbW92ZSB0aGUgbWFzayBsYXllci4KICAg
ICBsYXllclRyZWVSb290LT5jaGlsZHJlbigpWzBdLT5zZXRNYXNrTGF5ZXIoMCk7Ci0gICAgY2NM
YXllclRyZWVSb290ID0gVHJlZVN5bmNocm9uaXplcjo6c3luY2hyb25pemVUcmVlcyhsYXllclRy
ZWVSb290LmdldCgpLCBjY0xheWVyVHJlZVJvb3QucmVsZWFzZSgpKTsKLSAgICBleHBlY3RUcmVl
c0FyZUlkZW50aWNhbChsYXllclRyZWVSb290LmdldCgpLCBjY0xheWVyVHJlZVJvb3QuZ2V0KCkp
OworICAgIGNjTGF5ZXJUcmVlUm9vdCA9IFRyZWVTeW5jaHJvbml6ZXI6OnN5bmNocm9uaXplVHJl
ZXMobGF5ZXJUcmVlUm9vdC5nZXQoKSwgY2NMYXllclRyZWVSb290LnJlbGVhc2UoKSwgaG9zdElt
cGwuZ2V0KCkpOworICAgIGV4cGVjdFRyZWVzQXJlSWRlbnRpY2FsKGxheWVyVHJlZVJvb3QuZ2V0
KCksIGNjTGF5ZXJUcmVlUm9vdC5nZXQoKSwgaG9zdEltcGwuZ2V0KCkpOwogCiAgICAgLy8gUmVt
b3ZlIHRoZSByZXBsaWNhIGxheWVyLgogICAgIGxheWVyVHJlZVJvb3QtPmNoaWxkcmVuKClbMV0t
PnNldFJlcGxpY2FMYXllcigwKTsKLSAgICBjY0xheWVyVHJlZVJvb3QgPSBUcmVlU3luY2hyb25p
emVyOjpzeW5jaHJvbml6ZVRyZWVzKGxheWVyVHJlZVJvb3QuZ2V0KCksIGNjTGF5ZXJUcmVlUm9v
dC5yZWxlYXNlKCkpOwotICAgIGV4cGVjdFRyZWVzQXJlSWRlbnRpY2FsKGxheWVyVHJlZVJvb3Qu
Z2V0KCksIGNjTGF5ZXJUcmVlUm9vdC5nZXQoKSk7CisgICAgY2NMYXllclRyZWVSb290ID0gVHJl
ZVN5bmNocm9uaXplcjo6c3luY2hyb25pemVUcmVlcyhsYXllclRyZWVSb290LmdldCgpLCBjY0xh
eWVyVHJlZVJvb3QucmVsZWFzZSgpLCBob3N0SW1wbC5nZXQoKSk7CisgICAgZXhwZWN0VHJlZXNB
cmVJZGVudGljYWwobGF5ZXJUcmVlUm9vdC5nZXQoKSwgY2NMYXllclRyZWVSb290LmdldCgpLCBo
b3N0SW1wbC5nZXQoKSk7CiAKICAgICAvLyBSZW1vdmUgdGhlIHJlcGxpY2EgbWFzay4KICAgICBy
ZXBsaWNhTGF5ZXJXaXRoTWFzay0+c2V0TWFza0xheWVyKDApOwotICAgIGNjTGF5ZXJUcmVlUm9v
dCA9IFRyZWVTeW5jaHJvbml6ZXI6OnN5bmNocm9uaXplVHJlZXMobGF5ZXJUcmVlUm9vdC5nZXQo
KSwgY2NMYXllclRyZWVSb290LnJlbGVhc2UoKSk7Ci0gICAgZXhwZWN0VHJlZXNBcmVJZGVudGlj
YWwobGF5ZXJUcmVlUm9vdC5nZXQoKSwgY2NMYXllclRyZWVSb290LmdldCgpKTsKKyAgICBjY0xh
eWVyVHJlZVJvb3QgPSBUcmVlU3luY2hyb25pemVyOjpzeW5jaHJvbml6ZVRyZWVzKGxheWVyVHJl
ZVJvb3QuZ2V0KCksIGNjTGF5ZXJUcmVlUm9vdC5yZWxlYXNlKCksIGhvc3RJbXBsLmdldCgpKTsK
KyAgICBleHBlY3RUcmVlc0FyZUlkZW50aWNhbChsYXllclRyZWVSb290LmdldCgpLCBjY0xheWVy
VHJlZVJvb3QuZ2V0KCksIGhvc3RJbXBsLmdldCgpKTsKIH0KIAogVEVTVChUcmVlU3luY2hyb25p
emVyVGVzdCwgc3luY2hyb25pemVBbmltYXRpb25zKQogewogICAgIERlYnVnU2NvcGVkU2V0SW1w
bFRocmVhZCBpbXBsOworCisgICAgQ0NTZXR0aW5ncyBzZXR0aW5nczsKKyAgICBPd25QdHI8Q0NM
YXllclRyZWVIb3N0SW1wbD4gaG9zdEltcGwgPSBDQ0xheWVyVHJlZUhvc3RJbXBsOjpjcmVhdGUo
c2V0dGluZ3MsIDApOworCiAgICAgUmVmUHRyPExheWVyQ2hyb21pdW0+IGxheWVyVHJlZVJvb3Qg
PSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsKIAogICAgIEZha2VMYXllckFuaW1hdGlvbkNvbnRy
b2xsZXJDbGllbnQgZHVtbXk7CkBAIC0zODcsOCArNDE2LDggQEAgVEVTVChUcmVlU3luY2hyb25p
emVyVGVzdCwgc3luY2hyb25pemVBbmltYXRpb25zKQogCiAgICAgRVhQRUNUX0ZBTFNFKHN0YXRp
Y19jYXN0PEZha2VMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIqPihsYXllclRyZWVSb290LT5sYXll
ckFuaW1hdGlvbkNvbnRyb2xsZXIoKSktPnN5bmNocm9uaXplZEFuaW1hdGlvbnMoKSk7CiAKLSAg
ICBPd25QdHI8Q0NMYXllckltcGw+IGNjTGF5ZXJUcmVlUm9vdCA9IFRyZWVTeW5jaHJvbml6ZXI6
OnN5bmNocm9uaXplVHJlZXMobGF5ZXJUcmVlUm9vdC5nZXQoKSwgbnVsbHB0cik7Ci0gICAgY2NM
YXllclRyZWVSb290ID0gVHJlZVN5bmNocm9uaXplcjo6c3luY2hyb25pemVUcmVlcyhsYXllclRy
ZWVSb290LmdldCgpLCBjY0xheWVyVHJlZVJvb3QucmVsZWFzZSgpKTsKKyAgICBPd25QdHI8Q0NM
YXllckltcGw+IGNjTGF5ZXJUcmVlUm9vdCA9IFRyZWVTeW5jaHJvbml6ZXI6OnN5bmNocm9uaXpl
VHJlZXMobGF5ZXJUcmVlUm9vdC5nZXQoKSwgbnVsbHB0ciwgaG9zdEltcGwuZ2V0KCkpOworICAg
IGNjTGF5ZXJUcmVlUm9vdCA9IFRyZWVTeW5jaHJvbml6ZXI6OnN5bmNocm9uaXplVHJlZXMobGF5
ZXJUcmVlUm9vdC5nZXQoKSwgY2NMYXllclRyZWVSb290LnJlbGVhc2UoKSwgaG9zdEltcGwuZ2V0
KCkpOwogCiAgICAgRVhQRUNUX1RSVUUoc3RhdGljX2Nhc3Q8RmFrZUxheWVyQW5pbWF0aW9uQ29u
dHJvbGxlcio+KGxheWVyVHJlZVJvb3QtPmxheWVyQW5pbWF0aW9uQ29udHJvbGxlcigpKS0+c3lu
Y2hyb25pemVkQW5pbWF0aW9ucygpKTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>