<?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>159777</bug_id>
          
          <creation_ts>2016-07-14 12:43:49 -0700</creation_ts>
          <short_desc>Web Automation: FrameNotFound errors happen a lot for the main frame</short_desc>
          <delta_ts>2016-07-14 14:53:46 -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>Web Inspector</component>
          <version>WebKit Local Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Timothy Hatcher">timothy</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1211092</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-07-14 12:43:49 -0700</bug_when>
    <thetext>WebAutomationSession::webFrameProxyForHandle is returning nullptr for empty handles (main frame), when we need a frame. That causes the FrameNotFound error.

This is a race between a page being created and the main frame being created. WebPage sends a DidCreateMainFrame message, until that is sent we don’t have a frameID for the main frame and we can’t send our evaluateJavaScript message (or other messages with just frameID).

We need to send both pageID and frameID, and have the WebProcess side resolve the mainFrame from 0 based on the known pageID.

&lt;rdar://problem/27224628&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211094</commentid>
    <comment_count>1</comment_count>
      <attachid>283668</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-07-14 12:46:04 -0700</bug_when>
    <thetext>Created attachment 283668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211144</commentid>
    <comment_count>2</comment_count>
      <attachid>283668</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-07-14 14:32:31 -0700</bug_when>
    <thetext>Comment on attachment 283668
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=283668&amp;action=review

r=me

&gt; Source/WebKit2/UIProcess/Automation/WebAutomationSession.cpp:766
&gt; +    // Always send the main frame ID as 0 so it is resolved on the WebProcess side. This avoids a race when page-&gt;mainFrame() is null still.

Nit: &apos;still null&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211161</commentid>
    <comment_count>3</comment_count>
      <attachid>283668</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-14 14:53:41 -0700</bug_when>
    <thetext>Comment on attachment 283668
Patch

Clearing flags on attachment: 283668

Committed r203245: &lt;http://trac.webkit.org/changeset/203245&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211162</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-14 14:53:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283668</attachid>
            <date>2016-07-14 12:46:04 -0700</date>
            <delta_ts>2016-07-14 14:53:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159777-20160714124518.patch</filename>
            <type>text/plain</type>
            <size>31775</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzMTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTNkNDRiNTFmNzY0YjBj
YWEzM2EwZWNjYmRiYjUzYjcyNmU0ZjJiZS4uNTI4MmZiNDUzN2IwYWFkNGQ1MTEyOTg4MjgxMjAy
MTA2ZDU4YjE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE2LTA3LTE0ICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgQXV0b21hdGlv
bjogRnJhbWVOb3RGb3VuZCBlcnJvcnMgaGFwcGVuIGEgbG90IGZvciB0aGUgbWFpbiBmcmFtZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5Nzc3Cisg
ICAgICAgIHJkYXI6Ly9wcm9ibGVtLzI3MjI0NjI4CisKKyAgICAgICAgU2VuZCBib3RoIHBhZ2VJ
RCBhbmQgZnJhbWVJRCwgYW5kIGhhdmUgdGhlIFdlYlByb2Nlc3Mgc2lkZSByZXNvbHZlIHRoZQor
ICAgICAgICBtYWluRnJhbWUgZnJvbSAwIGJhc2VkIG9uIHRoZSBrbm93biBwYWdlSUQuIFRoaXMg
YXZvaWRzIGEgcmFjZSB3YWl0aW5nCisgICAgICAgIGZvciB0aGUgRGlkQ3JlYXRlTWFpbkZyYW1l
IG1lc3NhZ2UuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnN3aXRjaFRvQnJvd3NpbmdD
b250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmV2YWx1YXRl
SmF2YVNjcmlwdEZ1bmN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Np
b246OnJlc29sdmVDaGlsZEZyYW1lSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21h
dGlvblNlc3Npb246OnJlc29sdmVQYXJlbnRGcmFtZUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkF1dG9tYXRpb25TZXNzaW9uOjpjb21wdXRlRWxlbWVudExheW91dCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpnZXRBbGxDb29raWVzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmRlbGV0ZVNpbmdsZUNvb2tpZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZVByb3h5Rm9ySGFuZGxlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OndlYkZyYW1l
SURGb3JIYW5kbGUpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhPcmRp
bmFsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2
ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlUGFyZW50RnJhbWUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpmb2N1c0ZyYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Y29tcHV0ZUVsZW1lbnRM
YXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojp0YWtl
U2NyZWVuc2hvdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6
OmdldENvb2tpZXNGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNz
aW9uUHJveHk6OmRlbGV0ZUNvb2tpZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0F1dG9t
YXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbjoKKwogMjAxNi0wNy0x
MSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUHVy
Z2UgUGFzc1JlZlB0ciBpbiBwbGF0Zm9ybS9lZmwgYW5kIHBsYXRmb3JtL21hYyAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNz
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uLmNwcAppbmRleCAwM2YyYmYwOWVhYzBiODZlN2U4OGIyMDY2NjMwOTFjM2NkZGIy
N2U5Li43MzVkM2RiYjNmOTkzNjE5ZDdlYjdiZWQxYWNjMTE0ZDliYzVmMzQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb24uY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9VVUlE
Lmg+CiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5j
bHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5h
dGUuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKQEAgLTE2NSwxOSArMTY2LDE2IEBA
IFN0cmluZyBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6aGFuZGxlRm9yV2ViUGFnZVByb3h5KGNvbnN0
IFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByCiAgICAgcmV0dXJuIGhhbmRsZTsKIH0KIAotV2ViRnJh
bWVQcm94eSogV2ViQXV0b21hdGlvblNlc3Npb246OndlYkZyYW1lUHJveHlGb3JIYW5kbGUoY29u
c3QgU3RyaW5nJiBoYW5kbGUsIFdlYlBhZ2VQcm94eSYgcGFnZSkKK09wdGlvbmFsPHVpbnQ2NF90
PiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2ViRnJhbWVJREZvckhhbmRsZShjb25zdCBTdHJpbmcm
IGhhbmRsZSkKIHsKICAgICBpZiAoaGFuZGxlLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIHBh
Z2UubWFpbkZyYW1lKCk7CisgICAgICAgIHJldHVybiAwOwogCiAgICAgYXV0byBpdGVyID0gbV9o
YW5kbGVXZWJGcmFtZU1hcC5maW5kKGhhbmRsZSk7CiAgICAgaWYgKGl0ZXIgPT0gbV9oYW5kbGVX
ZWJGcmFtZU1hcC5lbmQoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBpZiAoV2Vi
RnJhbWVQcm94eSogZnJhbWUgPSBwYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShpdGVyLT52YWx1ZSkp
Ci0gICAgICAgIHJldHVybiBmcmFtZTsKKyAgICAgICAgcmV0dXJuIE51bGxvcHQ7CiAKLSAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gaXRlci0+dmFsdWU7CiB9CiAKIFN0cmluZyBXZWJB
dXRvbWF0aW9uU2Vzc2lvbjo6aGFuZGxlRm9yV2ViRnJhbWVJRCh1aW50NjRfdCBmcmFtZUlEKQpA
QCAtMjk0LDE1ICsyOTIsMTUgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c3dpdGNoVG9C
cm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYgZXJyb3IKICAgICBpZiAoIXBh
Z2UpCiAgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsK
IAotICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gd2ViRnJhbWVQcm94eUZvckhhbmRsZShvcHRp
b25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygpLCAq
cGFnZSk7Ci0gICAgaWYgKCFmcmFtZSkKKyAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9
IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1l
SGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7CisgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBGQUlM
X1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIAogICAgIC8vIEZJWE1FOiBX
ZSBkb24ndCBuZWVkIHRvIHRyYWNrIHRoaXMgaW4gV0syLiBSZW1vdmUgaW4gYSBmb2xsb3cgdXAu
CiAgICAgbV9hY3RpdmVCcm93c2luZ0NvbnRleHRIYW5kbGUgPSBicm93c2luZ0NvbnRleHRIYW5k
bGU7CiAKICAgICBwYWdlLT5zZXRGb2N1cyh0cnVlKTsKLSAgICBwYWdlLT5wcm9jZXNzKCkuc2Vu
ZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Rm9jdXNGcmFtZShmcmFtZS0+
ZnJhbWVJRCgpKSwgMCk7CisgICAgcGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OkZvY3VzRnJhbWUocGFnZS0+cGFnZUlEKCksIGZyYW1lSUQu
dmFsdWUoKSksIDApOwogfQogCiB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNpemVXaW5k
b3dPZkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0cmluZywg
Y29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiBz
aXplT2JqZWN0KQpAQCAtNDcyLDggKzQ3MCw4IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246
OmV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVyCiAg
ICAgaWYgKCFwYWdlKQogICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dO
b3RGb3VuZCk7CiAKLSAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IHdlYkZyYW1lUHJveHlGb3JI
YW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDogZW1wdHlT
dHJpbmcoKSwgKnBhZ2UpOwotICAgIGlmICghZnJhbWUpCisgICAgT3B0aW9uYWw8dWludDY0X3Q+
IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0
aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOworICAgIGlmICghZnJhbWVJRCkKICAg
ICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKICAgICBW
ZWN0b3I8U3RyaW5nPiBhcmd1bWVudHNWZWN0b3I7CkBAIC00OTEsNyArNDg5LDcgQEAgdm9pZCBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oSW5zcGVjdG9y
OjpFcnJvclN0cmluZyYgZXIKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9uZXh0RXZhbHVh
dGVKYXZhU2NyaXB0Q2FsbGJhY2tJRCsrOwogICAgIG1fZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rp
b25DYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIFdURk1vdmUoY2FsbGJhY2spKTsKIAotICAgIHBh
Z2UtPnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpF
dmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihmcmFtZS0+ZnJhbWVJRCgpLCBmdW5jdGlvbiwgYXJn
dW1lbnRzVmVjdG9yLCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBjYWxsYmFja1Rp
bWVvdXQsIGNhbGxiYWNrSUQpLCAwKTsKKyAgICBwYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdl
czo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6RXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24o
cGFnZS0+cGFnZUlEKCksIGZyYW1lSUQudmFsdWUoKSwgZnVuY3Rpb24sIGFyZ3VtZW50c1ZlY3Rv
ciwgZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgY2FsbGJhY2tUaW1lb3V0LCBjYWxs
YmFja0lEKSwgMCk7CiB9CiAKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmRpZEV2YWx1YXRl
SmF2YVNjcmlwdEZ1bmN0aW9uKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFN0cmluZyYgcmVz
dWx0LCBjb25zdCBTdHJpbmcmIGVycm9yVHlwZSkKQEAgLTUxNSwyNSArNTEzLDI1IEBAIHZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb246OnJlc29sdmVDaGlsZEZyYW1lSGFuZGxlKEluc3BlY3Rvcjo6
RXJyb3JTdHJpbmcmIGVycm9yCiAgICAgaWYgKCFwYWdlKQogICAgICAgICBGQUlMX1dJVEhfUFJF
REVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBXZWJGcmFtZVByb3h5KiBmcmFt
ZSA9IHdlYkZyYW1lUHJveHlGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25h
bEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSwgKnBhZ2UpOwotICAgIGlmICghZnJhbWUpCisg
ICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlv
bmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOwor
ICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJh
bWVOb3RGb3VuZCk7CiAKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9uZXh0UmVzb2x2ZUZy
YW1lQ2FsbGJhY2tJRCsrOwogICAgIG1fcmVzb2x2ZUNoaWxkRnJhbWVIYW5kbGVDYWxsYmFja3Mu
c2V0KGNhbGxiYWNrSUQsIFdURk1vdmUoY2FsbGJhY2spKTsKIAogICAgIGlmIChvcHRpb25hbE5v
ZGVIYW5kbGUpIHsKLSAgICAgICAgcGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OlJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUoZnJh
bWUtPmZyYW1lSUQoKSwgKm9wdGlvbmFsTm9kZUhhbmRsZSwgY2FsbGJhY2tJRCksIDApOworICAg
ICAgICBwYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6UmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShwYWdlLT5wYWdlSUQoKSwgZnJh
bWVJRC52YWx1ZSgpLCAqb3B0aW9uYWxOb2RlSGFuZGxlLCBjYWxsYmFja0lEKSwgMCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAob3B0aW9uYWxOYW1lKSB7Ci0gICAgICAgIHBh
Z2UtPnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpS
ZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKGZyYW1lLT5mcmFtZUlEKCksICpvcHRpb25hbE5hbWUs
IGNhbGxiYWNrSUQpLCAwKTsKKyAgICAgICAgcGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6
OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OlJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUocGFn
ZS0+cGFnZUlEKCksIGZyYW1lSUQudmFsdWUoKSwgKm9wdGlvbmFsTmFtZSwgY2FsbGJhY2tJRCks
IDApOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKG9wdGlvbmFsT3JkaW5hbCkg
ewotICAgICAgICBwYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNl
c3Npb25Qcm94eTo6UmVzb2x2ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbChmcmFtZS0+ZnJhbWVJRCgp
LCAqb3B0aW9uYWxPcmRpbmFsLCBjYWxsYmFja0lEKSwgMCk7CisgICAgICAgIHBhZ2UtPnByb2Nl
c3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpSZXNvbHZlQ2hp
bGRGcmFtZVdpdGhPcmRpbmFsKHBhZ2UtPnBhZ2VJRCgpLCBmcmFtZUlELnZhbHVlKCksICpvcHRp
b25hbE9yZGluYWwsIGNhbGxiYWNrSUQpLCAwKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtNTU4LDE0ICs1NTYsMTQgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzb2x2ZVBh
cmVudEZyYW1lSGFuZGxlKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm8KICAgICBpZiAoIXBh
Z2UpCiAgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsK
IAotICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gd2ViRnJhbWVQcm94eUZvckhhbmRsZShmcmFt
ZUhhbmRsZSwgKnBhZ2UpOwotICAgIGlmICghZnJhbWUpCisgICAgT3B0aW9uYWw8dWludDY0X3Q+
IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1lSGFuZGxlKTsKKyAgICBpZiAoIWZy
YW1lSUQpCiAgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKEZyYW1lTm90Rm91bmQp
OwogCiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fbmV4dFJlc29sdmVQYXJlbnRGcmFtZUNh
bGxiYWNrSUQrKzsKICAgICBtX3Jlc29sdmVQYXJlbnRGcmFtZUhhbmRsZUNhbGxiYWNrcy5zZXQo
Y2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOwogCi0gICAgcGFnZS0+cHJvY2VzcygpLnNl
bmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OlJlc29sdmVQYXJlbnRGcmFt
ZShmcmFtZS0+ZnJhbWVJRCgpLCBjYWxsYmFja0lEKSwgMCk7CisgICAgcGFnZS0+cHJvY2Vzcygp
LnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OlJlc29sdmVQYXJlbnRG
cmFtZShwYWdlLT5wYWdlSUQoKSwgZnJhbWVJRC52YWx1ZSgpLCBjYWxsYmFja0lEKSwgMCk7CiB9
CiAKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmRpZFJlc29sdmVQYXJlbnRGcmFtZSh1aW50
NjRfdCBjYWxsYmFja0lELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIGVycm9yVHlw
ZSkKQEAgLTU4Niw4ICs1ODQsOCBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpjb21wdXRl
RWxlbWVudExheW91dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0cgogICAgIGlmICgh
cGFnZSkKICAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQp
OwogCi0gICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSB3ZWJGcmFtZVByb3h5Rm9ySGFuZGxlKGZy
YW1lSGFuZGxlLCAqcGFnZSk7Ci0gICAgaWYgKCFmcmFtZSkKKyAgICBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUoZnJhbWVIYW5kbGUpOworICAgIGlmICgh
ZnJhbWVJRCkKICAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3Vu
ZCk7CiAKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9uZXh0Q29tcHV0ZUVsZW1lbnRMYXlv
dXRDYWxsYmFja0lEKys7CkBAIC01OTYsNyArNTk0LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6Y29tcHV0ZUVsZW1lbnRMYXlvdXQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYgZXJyb3JT
dHIKICAgICBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQgPSBvcHRpb25hbFNjcm9sbEludG9W
aWV3SWZOZWVkZWQgPyAqb3B0aW9uYWxTY3JvbGxJbnRvVmlld0lmTmVlZGVkIDogZmFsc2U7CiAg
ICAgYm9vbCB1c2VWaWV3cG9ydENvb3JkaW5hdGVzID0gb3B0aW9uYWxVc2VWaWV3cG9ydENvb3Jk
aW5hdGVzID8gKm9wdGlvbmFsVXNlVmlld3BvcnRDb29yZGluYXRlcyA6IGZhbHNlOwogCi0gICAg
cGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6
OkNvbXB1dGVFbGVtZW50TGF5b3V0KGZyYW1lLT5mcmFtZUlEKCksIG5vZGVIYW5kbGUsIHNjcm9s
bEludG9WaWV3SWZOZWVkZWQsIHVzZVZpZXdwb3J0Q29vcmRpbmF0ZXMsIGNhbGxiYWNrSUQpLCAw
KTsKKyAgICBwYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Np
b25Qcm94eTo6Q29tcHV0ZUVsZW1lbnRMYXlvdXQocGFnZS0+cGFnZUlEKCksIGZyYW1lSUQudmFs
dWUoKSwgbm9kZUhhbmRsZSwgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgdXNlVmlld3BvcnRDb29y
ZGluYXRlcywgY2FsbGJhY2tJRCksIDApOwogfQogCiB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9u
OjpkaWRDb21wdXRlRWxlbWVudExheW91dCh1aW50NjRfdCBjYWxsYmFja0lELCBXZWJDb3JlOjpJ
bnRSZWN0IHJlY3QsIGNvbnN0IFN0cmluZyYgZXJyb3JUeXBlKQpAQCAtNzExLDE1ICs3MDksMTMg
QEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Z2V0QWxsQ29va2llcyhFcnJvclN0cmluZyYg
ZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEZBSUxf
V0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIFdlYkZyYW1lUHJv
eHkqIG1haW5GcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOwotICAgIEFTU0VSVChtYWluRnJhbWUp
OwotICAgIGlmICghbWFpbkZyYW1lKQotICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJP
UihGcmFtZU5vdEZvdW5kKTsKKyAgICAvLyBBbHdheXMgc2VuZCB0aGUgbWFpbiBmcmFtZSBJRCBh
cyAwIHNvIGl0IGlzIHJlc29sdmVkIG9uIHRoZSBXZWJQcm9jZXNzIHNpZGUuIFRoaXMgYXZvaWRz
IGEgcmFjZSB3aGVuIHBhZ2UtPm1haW5GcmFtZSgpIGlzIG51bGwgc3RpbGwuCisgICAgY29uc3Qg
dWludDY0X3QgbWFpbkZyYW1lSUQgPSAwOwogCiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1f
bmV4dEdldENvb2tpZXNDYWxsYmFja0lEKys7CiAgICAgbV9nZXRDb29raWVDYWxsYmFja3Muc2V0
KGNhbGxiYWNrSUQsIFdURk1vdmUoY2FsbGJhY2spKTsKIAotICAgIHBhZ2UtPnByb2Nlc3MoKS5z
ZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpHZXRDb29raWVzRm9yRnJh
bWUobWFpbkZyYW1lLT5mcmFtZUlEKCksIGNhbGxiYWNrSUQpLCAwKTsKKyAgICBwYWdlLT5wcm9j
ZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6R2V0Q29va2ll
c0ZvckZyYW1lKHBhZ2UtPnBhZ2VJRCgpLCBtYWluRnJhbWVJRCwgY2FsbGJhY2tJRCksIDApOwog
fQogCiBzdGF0aWMgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkNvb2tpZT4g
YnVpbGRPYmplY3RGb3JDb29raWUoY29uc3QgV2ViQ29yZTo6Q29va2llJiBjb29raWUpCkBAIC03
NjcsMTUgKzc2MywxMyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpkZWxldGVTaW5nbGVD
b29raWUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdAogICAgIGlmICghcGFnZSkK
ICAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0g
ICAgV2ViRnJhbWVQcm94eSogbWFpbkZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7Ci0gICAgQVNT
RVJUKG1haW5GcmFtZSk7Ci0gICAgaWYgKCFtYWluRnJhbWUpCi0gICAgICAgIEZBSUxfV0lUSF9Q
UkVERUZJTkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOworICAgIC8vIEFsd2F5cyBzZW5kIHRoZSBt
YWluIGZyYW1lIElEIGFzIDAgc28gaXQgaXMgcmVzb2x2ZWQgb24gdGhlIFdlYlByb2Nlc3Mgc2lk
ZS4gVGhpcyBhdm9pZHMgYSByYWNlIHdoZW4gcGFnZS0+bWFpbkZyYW1lKCkgaXMgbnVsbCBzdGls
bC4KKyAgICBjb25zdCB1aW50NjRfdCBtYWluRnJhbWVJRCA9IDA7CiAKICAgICB1aW50NjRfdCBj
YWxsYmFja0lEID0gbV9uZXh0RGVsZXRlQ29va2llQ2FsbGJhY2tJRCsrOwogICAgIG1fZGVsZXRl
Q29va2llQ2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAKLSAg
ICBwYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eTo6RGVsZXRlQ29va2llKG1haW5GcmFtZS0+ZnJhbWVJRCgpLCBjb29raWVOYW1lLCBjYWxsYmFj
a0lEKSwgMCk7CisgICAgcGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OkRlbGV0ZUNvb2tpZShwYWdlLT5wYWdlSUQoKSwgbWFpbkZyYW1lSUQs
IGNvb2tpZU5hbWUsIGNhbGxiYWNrSUQpLCAwKTsKIH0KIAogdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6ZGlkRGVsZXRlQ29va2llKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFN0cmluZyYg
ZXJyb3JUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRp
b24vV2ViQXV0b21hdGlvblNlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRv
bWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKaW5kZXggM2I5ZDU5ZTk0ZjdkMDRhMDQ2MTky
ZTgxMTQyNTMzYmQxN2M3ZjZjNi4uY2NjNzE0NjdjZTE1NjZhMzRlYTRkYzhiMGJmYjE1OTRiODBk
ZjQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2Vi
QXV0b21hdGlvblNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21h
dGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCkBAIC0xMzIsNyArMTMyLDcgQEAgcHJpdmF0ZToK
ICAgICBTdHJpbmcgaGFuZGxlRm9yV2ViUGFnZVByb3h5KGNvbnN0IFdlYlBhZ2VQcm94eSYpOwog
ICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpCcm93c2luZ0NvbnRl
eHQ+IGJ1aWxkQnJvd3NpbmdDb250ZXh0Rm9yUGFnZShXZWJQYWdlUHJveHkmKTsKIAotICAgIFdl
YkZyYW1lUHJveHkqIHdlYkZyYW1lUHJveHlGb3JIYW5kbGUoY29uc3QgU3RyaW5nJiwgV2ViUGFn
ZVByb3h5Jik7CisgICAgT3B0aW9uYWw8dWludDY0X3Q+IHdlYkZyYW1lSURGb3JIYW5kbGUoY29u
c3QgU3RyaW5nJik7CiAgICAgU3RyaW5nIGhhbmRsZUZvcldlYkZyYW1lSUQodWludDY0X3QgZnJh
bWVJRCk7CiAgICAgU3RyaW5nIGhhbmRsZUZvcldlYkZyYW1lUHJveHkoY29uc3QgV2ViRnJhbWVQ
cm94eSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dG9tYXRp
b24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5jcHAKaW5kZXggNmYyNjI5
ZWUyNmViMGQ0NGI3NDlkMDkyYmEwZDZmZGJkM2Q4YTM0ZS4uZTJjODY4MDlmMjc0MTI1MmVkYTBi
NzFjMWM3NDM4NGFjZGQ3N2FhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNw
cApAQCAtMjI2LDkgKzIyNiwxMyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRp
ZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWUoV2ViRnJhbWUmIGZyYW1lKQogICAgICAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24o
Y2FsbGJhY2tJRCwgU3RyaW5nKCksIGVycm9yVHlwZSksIDApOwogfQogCi12b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHk6OmV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFN0cmluZyYgZnVuY3Rpb24sIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywg
Ym9vbCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0
LCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpl
dmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbih1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFN0cmluZyYgZnVuY3Rpb24sIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9v
bCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1
aW50NjRfdCBjYWxsYmFja0lEKQogewotICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOworICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CisgICAgaWYgKCFwYWdlKQorICAg
ICAgICByZXR1cm47CisKKyAgICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsK
ICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CiAKQEAgLTI4OSwxMSArMjkzLDE4IEBA
IHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVu
Y3Rpb24odWludDY0X3QgZnJhbWVJRCwKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lv
bjo6RGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oY2FsbGJhY2tJRCwgcmVzdWx0LCBlcnJv
clR5cGUpLCAwKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZl
Q2hpbGRGcmFtZVdpdGhPcmRpbmFsKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9yZGluYWws
IHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJl
c29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwodWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFt
ZUlELCB1aW50MzJfdCBvcmRpbmFsLCB1aW50NjRfdCBjYWxsYmFja0lEKQogeworICAgIFdlYlBh
Z2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CisgICAg
aWYgKCFwYWdlKSB7CisgICAgICAgIFN0cmluZyB3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSA9IElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1
ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OldpbmRvd05v
dEZvdW5kKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZFJlc29s
dmVDaGlsZEZyYW1lKGNhbGxiYWNrSUQsIDAsIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlKSwgMCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBTdHJpbmcgZnJhbWVOb3RGb3VuZEVycm9y
VHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29u
c3RhbnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6
OkZyYW1lTm90Rm91bmQpOwogCi0gICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CisgICAgV2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJ
RCA/IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpIDogcGFnZS0+bWFp
bldlYkZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkgewogICAgICAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6RGlkUmVzb2x2ZUNoaWxkRnJhbWUoY2FsbGJhY2tJRCwgMCwgZnJhbWVO
b3RGb3VuZEVycm9yVHlwZSksIDApOwogICAgICAgICByZXR1cm47CkBAIC0zMjAsMTEgKzMzMSwx
OCBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0
aE9yZGluYWwodWludDY0X3QgZnJhbWVJRCwgdQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25T
ZXNzaW9uOjpEaWRSZXNvbHZlQ2hpbGRGcmFtZShjYWxsYmFja0lELCBjaGlsZEZyYW1lLT5mcmFt
ZUlEKCksIFN0cmluZygpKSwgMCk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBTdHJpbmcmIG5vZGVIYW5kbGUsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUodWludDY0
X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIHVp
bnQ2NF90IGNhbGxiYWNrSUQpCiB7CisgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKKyAgICBpZiAoIXBhZ2UpIHsKKyAgICAgICAgU3Ry
aW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90Rm91bmQpOworICAgICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkUmVzb2x2ZUNoaWxkRnJhbWUoY2FsbGJhY2tJRCwg
MCwgd2luZG93Tm90Rm91bmRFcnJvclR5cGUpLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KwogICAgIFN0cmluZyBmcmFtZU5vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6RnJhbWVOb3RGb3VuZCk7CiAKLSAgICBX
ZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlE
KTsKKyAgICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkud2ViRnJhbWUoZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKICAgICBpZiAoIWZy
YW1lKSB7CiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRSZXNvbHZl
Q2hpbGRGcmFtZShjYWxsYmFja0lELCAwLCBmcmFtZU5vdEZvdW5kRXJyb3JUeXBlKSwgMCk7CiAg
ICAgICAgIHJldHVybjsKQEAgLTM1MSwxMSArMzY5LDE4IEBAIHZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZSh1aW50NjRfdCBmcmFt
ZUlECiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZFJlc29sdmVDaGlsZEZy
YW1lKGNhbGxiYWNrSUQsIGZyYW1lRnJvbUVsZW1lbnQtPmZyYW1lSUQoKSwgU3RyaW5nKCkpLCAw
KTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFt
ZVdpdGhOYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgdWludDY0X3Qg
Y2FsbGJhY2tJRCkKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxk
RnJhbWVXaXRoTmFtZSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0
cmluZyYgbmFtZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKKyAgICBXZWJQYWdlKiBwYWdlID0g
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOworICAgIGlmICghcGFnZSkg
eworICAgICAgICBTdHJpbmcgd2luZG93Tm90Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpXaW5kb3dOb3RGb3VuZCk7Cisg
ICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRSZXNvbHZlQ2hpbGRGcmFt
ZShjYWxsYmFja0lELCAwLCB3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSksIDApOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCiAgICAgU3RyaW5nIGZyYW1lTm90Rm91bmRFcnJvclR5cGUgPSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUo
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpGcmFtZU5vdEZv
dW5kKTsKIAotICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndl
YkZyYW1lKGZyYW1lSUQpOworICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSA6IHBhZ2UtPm1haW5XZWJGcmFtZSgp
OwogICAgIGlmICghZnJhbWUpIHsKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Np
b246OkRpZFJlc29sdmVDaGlsZEZyYW1lKGNhbGxiYWNrSUQsIDAsIGZyYW1lTm90Rm91bmRFcnJv
clR5cGUpLCAwKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMzgyLDExICs0MDcsMTggQEAgdm9pZCBX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnMKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlk
UmVzb2x2ZUNoaWxkRnJhbWUoY2FsbGJhY2tJRCwgY2hpbGRGcmFtZS0+ZnJhbWVJRCgpLCBTdHJp
bmcoKSksIDApOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVQ
YXJlbnRGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlUGFyZW50RnJhbWUodWludDY0X3QgcGFn
ZUlELCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lEKQogeworICAgIFdlYlBh
Z2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CisgICAg
aWYgKCFwYWdlKSB7CisgICAgICAgIFN0cmluZyB3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSA9IElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1
ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OldpbmRvd05v
dEZvdW5kKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZFJlc29s
dmVQYXJlbnRGcmFtZShjYWxsYmFja0lELCAwLCB3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSksIDAp
OworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgU3RyaW5nIGZyYW1lTm90Rm91bmRFcnJv
clR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNv
bnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdl
OjpGcmFtZU5vdEZvdW5kKTsKIAotICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOworICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1l
SUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSA6IHBhZ2UtPm1h
aW5XZWJGcmFtZSgpOwogICAgIGlmICghZnJhbWUpIHsKICAgICAgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0
b21hdGlvblNlc3Npb246OkRpZFJlc29sdmVQYXJlbnRGcmFtZShjYWxsYmFja0lELCAwLCBmcmFt
ZU5vdEZvdW5kRXJyb3JUeXBlKSwgMCk7CiAgICAgICAgIHJldHVybjsKQEAgLTQwMSw5ICs0MzMs
MTMgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlUGFyZW50RnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgY2EKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6RGlkUmVzb2x2ZVBhcmVudEZyYW1lKGNhbGxiYWNrSUQsIHBhcmVudEZyYW1lLT5m
cmFtZUlEKCksIFN0cmluZygpKSwgMCk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6Zm9jdXNGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5Ojpmb2N1c0ZyYW1lKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCkK
IHsKLSAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFt
ZShmcmFtZUlEKTsKKyAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
d2ViUGFnZShwYWdlSUQpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
V2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZy
YW1lKGZyYW1lSUQpIDogcGFnZS0+bWFpbldlYkZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKICAg
ICAgICAgcmV0dXJuOwogCkBAIC00MjIsMTIgKzQ1OCwxOSBAQCB2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHk6OmZvY3VzRnJhbWUodWludDY0X3QgZnJhbWVJRCkKICAgICBjb3JlRE9NV2lu
ZG93LT5mb2N1cyh0cnVlKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpj
b21wdXRlRWxlbWVudExheW91dCh1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwg
Ym9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBib29sIHVzZVZpZXdwb3J0Q29vcmRpbmF0ZXMs
IHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmNv
bXB1dGVFbGVtZW50TGF5b3V0KHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3Ry
aW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgYm9vbCB1c2VWaWV3
cG9ydENvb3JkaW5hdGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQogeworICAgIFdlYlBhZ2UqIHBh
Z2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CisgICAgaWYgKCFw
YWdlKSB7CisgICAgICAgIFN0cmluZyB3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSA9IEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OldpbmRvd05vdEZvdW5k
KTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZENvbXB1dGVFbGVt
ZW50TGF5b3V0KGNhbGxiYWNrSUQsIFdlYkNvcmU6OkludFJlY3QoKSwgd2luZG93Tm90Rm91bmRF
cnJvclR5cGUpLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIFN0cmluZyBmcmFt
ZU5vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBl
cnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OkVycm9yTWVzc2FnZTo6RnJhbWVOb3RGb3VuZCk7CiAgICAgU3RyaW5nIG5vZGVOb3RGb3VuZEVy
cm9yVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVt
Q29uc3RhbnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3Nh
Z2U6Ok5vZGVOb3RGb3VuZCk7CiAKLSAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKKyAgICBXZWJGcmFtZSogZnJhbWUgPSBmcmFt
ZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkgOiBwYWdlLT5t
YWluV2ViRnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKSB7CiAgICAgICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1
dG9tYXRpb25TZXNzaW9uOjpEaWRDb21wdXRlRWxlbWVudExheW91dChjYWxsYmFja0lELCBXZWJD
b3JlOjpJbnRSZWN0KCksIGZyYW1lTm90Rm91bmRFcnJvclR5cGUpLCAwKTsKICAgICAgICAgcmV0
dXJuOwpAQCAtNDY2LDEwICs1MDksMTAgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
Ojpjb21wdXRlRWxlbWVudExheW91dCh1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm8KIHZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6dGFrZVNjcmVlbnNob3QodWludDY0X3QgcGFnZUlE
LCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhh
bmRsZTsKLSAgICBTdHJpbmcgd2luZG93Tm90Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpXaW5kb3dOb3RGb3VuZCk7CiAK
ICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdl
SUQpOwogICAgIGlmICghcGFnZSkgeworICAgICAgICBTdHJpbmcgd2luZG93Tm90Rm91bmRFcnJv
clR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNv
bnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdl
OjpXaW5kb3dOb3RGb3VuZCk7CiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9u
OjpEaWRUYWtlU2NyZWVuc2hvdChjYWxsYmFja0lELCBoYW5kbGUsIHdpbmRvd05vdEZvdW5kRXJy
b3JUeXBlKSwgMCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC00OTMsMTIgKzUzNiwxOCBA
QCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KHVpbnQ2NF90
IHBhZ2VJRCwgdWludDY0X3QgY2FsbGJhYwogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNz
aW9uOjpEaWRUYWtlU2NyZWVuc2hvdChjYWxsYmFja0lELCBoYW5kbGUsIFN0cmluZygpKSwgMCk7
ICAgIAogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmdldENvb2tpZXNGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5OjpnZXRDb29raWVzRm9yRnJhbWUodWludDY0X3QgcGFnZUlELCB1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lEKQogewotICAgIFN0cmluZyBmcmFt
ZU5vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBl
cnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OkVycm9yTWVzc2FnZTo6RnJhbWVOb3RGb3VuZCk7CisgICAgV2ViUGFnZSogcGFnZSA9IFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKKyAgICBpZiAoIXBhZ2UpIHsKKyAg
ICAgICAgU3RyaW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90Rm91bmQpOworICAgICAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkR2V0Q29va2llc0ZvckZyYW1lKGNh
bGxiYWNrSUQsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+KCksIHdpbmRvd05vdEZvdW5kRXJyb3JU
eXBlKSwgMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKLSAgICBXZWJGcmFtZSogZnJhbWUg
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKKyAgICBXZWJGcmFt
ZSogZnJhbWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJh
bWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKICAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+
Y29yZUZyYW1lKCkgfHwgIWZyYW1lLT5jb3JlRnJhbWUoKS0+ZG9jdW1lbnQoKSkgeworICAgICAg
ICBTdHJpbmcgZnJhbWVOb3RGb3VuZEVycm9yVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OkZyYW1lTm90Rm91bmQpOwogICAgICAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkR2V0Q29va2llc0ZvckZyYW1lKGNhbGxiYWNr
SUQsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+KCksIGZyYW1lTm90Rm91bmRFcnJvclR5cGUpLCAw
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTUxMSwxMiArNTYwLDE4IEBAIHZvaWQgV2Vi
QXV0b21hdGlvblNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0ZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IGNhCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZEdl
dENvb2tpZXNGb3JGcmFtZShjYWxsYmFja0lELCBmb3VuZENvb2tpZXMsIFN0cmluZygpKSwgMCk7
CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGVsZXRlQ29va2llKHVpbnQ2
NF90IGZyYW1lSUQsIFN0cmluZyBjb29raWVOYW1lLCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkZWxldGVDb29raWUodWludDY0X3QgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSwgdWludDY0X3QgY2FsbGJhY2tJ
RCkKIHsKLSAgICBTdHJpbmcgZnJhbWVOb3RGb3VuZEVycm9yVHlwZSA9IEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OkZyYW1lTm90Rm91bmQpOworICAg
IFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7
CisgICAgaWYgKCFwYWdlKSB7CisgICAgICAgIFN0cmluZyB3aW5kb3dOb3RGb3VuZEVycm9yVHlw
ZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3Rh
bnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6Oldp
bmRvd05vdEZvdW5kKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRp
ZERlbGV0ZUNvb2tpZShjYWxsYmFja0lELCB3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSksIDApOwor
ICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CisgICAgV2ViRnJhbWUqIGZyYW1lID0g
ZnJhbWVJRCA/IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpIDogcGFn
ZS0+bWFpbldlYkZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPmNvcmVGcmFtZSgp
IHx8ICFmcmFtZS0+Y29yZUZyYW1lKCktPmRvY3VtZW50KCkpIHsKKyAgICAgICAgU3RyaW5nIGZy
YW1lTm90Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVs
cGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6RXJyb3JNZXNzYWdlOjpGcmFtZU5vdEZvdW5kKTsKICAgICAgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0
b21hdGlvblNlc3Npb246OkRpZERlbGV0ZUNvb2tpZShjYWxsYmFja0lELCBmcmFtZU5vdEZvdW5k
RXJyb3JUeXBlKSwgMCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHkuaAppbmRleCBkMDRiNDc2ZjBmZjNlNmU5OWVhM2U0Zjc0NWU1ZDBjOTU0ZjZm
ZWQ3Li43ZDdkOTVmNzcwYzA3ZTUxM2RkZjAxNjZiZjM3ZDI4ODU5MjAyOWIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Np
b25Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5LmgKQEAgLTU4LDE2ICs1OCwxNiBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVj
b2RlciYpOwogCiAgICAgLy8gQ2FsbGVkIGJ5IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkgbWVz
c2FnZXMKLSAgICB2b2lkIGV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFN0cmluZyYgZnVuY3Rpb24sIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9v
bCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1
aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGlu
YWwodWludDY0X3QgZnJhbWVJRCwgdWludDMyX3Qgb3JkaW5hbCwgdWludDY0X3QgY2FsbGJhY2tJ
RCk7Ci0gICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxlKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgdWludDY0X3QgY2FsbGJhY2tJRCk7Ci0g
ICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFN0cmluZyYgbmFtZSwgdWludDY0X3QgY2FsbGJhY2tJRCk7Ci0gICAgdm9pZCByZXNvbHZlUGFy
ZW50RnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgY2FsbGJhY2tJRCk7Ci0gICAgdm9p
ZCBmb2N1c0ZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgY29tcHV0ZUVsZW1lbnRM
YXlvdXQodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50
b1ZpZXdJZk5lZWRlZCwgYm9vbCB1c2VWaWV3cG9ydENvb3JkaW5hdGVzLCB1aW50NjRfdCBjYWxs
YmFja0lEKTsKKyAgICB2b2lkIGV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKHVpbnQ2NF90IHBh
Z2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbiwgVmVjdG9yPFN0
cmluZz4gYXJndW1lbnRzLCBib29sIGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGlu
dCBjYWxsYmFja1RpbWVvdXQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgcmVzb2x2
ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbCh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQzMl90IG9yZGluYWwsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgcmVzb2x2
ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAg
dm9pZCByZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2
b2lkIHJlc29sdmVQYXJlbnRGcmFtZSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgZm9jdXNGcmFtZSh1aW50NjRfdCBwYWdl
SUQsIHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgY29tcHV0ZUVsZW1lbnRMYXlvdXQodWlu
dDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBz
Y3JvbGxJbnRvVmlld0lmTmVlZGVkLCBib29sIHVzZVZpZXdwb3J0Q29vcmRpbmF0ZXMsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgdGFrZVNjcmVlbnNob3QodWludDY0X3QgcGFnZUlE
LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICB2b2lkIGdldENvb2tpZXNGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICB2b2lkIGRlbGV0ZUNvb2tp
ZSh1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSwgdWludDY0X3QgY2FsbGJhY2tJ
RCk7CisgICAgdm9pZCBnZXRDb29raWVzRm9yRnJhbWUodWludDY0X3QgcGFnZUlELCB1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGRlbGV0ZUNvb2tpZSh1
aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBjb29raWVOYW1lLCB1aW50
NjRfdCBjYWxsYmFja0lEKTsKIAogICAgIFN0cmluZyBtX3Nlc3Npb25JZGVudGlmaWVyOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGMy
MjE0MDE3MTY5ZjU5Mjk2YWY0MzQ3OThiYzUyNzZhY2RjMWQzZTkuLjJkYWYyYTVkNTYzMTRmMjIx
MzZkZDJlN2JkNGM5MGNmMDYwMDliYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMSwxOSArMjEsMTkgQEAKICMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
IAogbWVzc2FnZXMgLT4gV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eSB7Ci0gICAgRXZhbHVhdGVK
YXZhU2NyaXB0RnVuY3Rpb24odWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIGZ1bmN0aW9uLCBWZWN0
b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVu
dCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBFdmFsdWF0
ZUphdmFTY3JpcHRGdW5jdGlvbih1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0
cmluZyBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29sIGV4cGVjdHNJbXBs
aWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQsIHVpbnQ2NF90IGNhbGxi
YWNrSUQpCiAKLSAgICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhPcmRpbmFsKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQzMl90IG9yZGluYWwsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCi0gICAgUmVzb2x2ZUNo
aWxkRnJhbWVXaXRoTm9kZUhhbmRsZSh1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRs
ZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKLSAgICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIFN0cmluZyBuYW1lLCB1aW50NjRfdCBjYWxsYmFja0lEKQotICAgIFJl
c29sdmVQYXJlbnRGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lEKQor
ICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwodWludDY0X3QgcGFnZUlELCB1aW50NjRf
dCBmcmFtZUlELCB1aW50MzJfdCBvcmRpbmFsLCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIFJl
c29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUodWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBm
cmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBSZXNv
bHZlQ2hpbGRGcmFtZVdpdGhOYW1lKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwg
U3RyaW5nIG5hbWUsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgUmVzb2x2ZVBhcmVudEZyYW1l
KHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgY2FsbGJhY2tJRCkK
IAotICAgIEZvY3VzRnJhbWUodWludDY0X3QgZnJhbWVJRCkKKyAgICBGb2N1c0ZyYW1lKHVpbnQ2
NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCkKIAotICAgIENvbXB1dGVFbGVtZW50TGF5b3V0
KHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3
SWZOZWVkZWQsIGJvb2wgdXNlVmlld3BvcnRDb29yZGluYXRlcywgdWludDY0X3QgY2FsbGJhY2tJ
RCkKKyAgICBDb21wdXRlRWxlbWVudExheW91dCh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJv
b2wgdXNlVmlld3BvcnRDb29yZGluYXRlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKIAogICAgIFRh
a2VTY3JlZW5zaG90KHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgY2FsbGJhY2tJRCkKIAotICAg
IEdldENvb2tpZXNGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lE
KQotICAgIERlbGV0ZUNvb2tpZSh1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSwg
dWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBHZXRDb29raWVzRm9yRnJhbWUodWludDY0X3QgcGFn
ZUlELCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIERlbGV0ZUNv
b2tpZSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBjb29raWVOYW1l
LCB1aW50NjRfdCBjYWxsYmFja0lEKQogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>