<?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>110606</bug_id>
          
          <creation_ts>2013-02-22 07:04:22 -0800</creation_ts>
          <short_desc>[Chromium][DRT] DumpRenderTree TestShell::initialize should take Platform* now that WebKitPlatformSupport is empty</short_desc>
          <delta_ts>2013-02-23 15:33:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</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="Mark Pilgrim (Google)">pilgrim</reporter>
          <assigned_to name="Mark Pilgrim (Google)">pilgrim</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>haraken</cc>
    
    <cc>jamesr</cc>
    
    <cc>jochen</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>839552</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2013-02-22 07:04:22 -0800</bug_when>
    <thetext>[Chromium] DumpRenderTree TestShell::initialize should take Platform* now that WebKitPlatformSupport is empty</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839553</commentid>
    <comment_count>1</comment_count>
      <attachid>189768</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2013-02-22 07:04:58 -0800</bug_when>
    <thetext>Created attachment 189768
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839559</commentid>
    <comment_count>2</comment_count>
      <attachid>189768</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-22 07:16:22 -0800</bug_when>
    <thetext>Comment on attachment 189768
Patch

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

&gt; Tools/DumpRenderTree/chromium/MockPlatform.cpp:32
&gt; +#include &quot;MockWebKitPlatformSupport.h&quot;

MockPlatformSupport.h ?

&gt; Tools/DumpRenderTree/chromium/MockPlatform.cpp:42
&gt; +PassOwnPtr&lt;MockWebKitPlatformSupport&gt; MockWebKitPlatformSupport::create()

MockPlatformSupport? The same comment for other parts.

&gt; Tools/DumpRenderTree/chromium/MockPlatform.h:31
&gt; +#ifndef MockWebKitPlatformSupport_h

MockPlatform ?

&gt; Tools/DumpRenderTree/chromium/MockPlatform.h:42
&gt; +class MockWebKitPlatformSupport : public WebKit::Platform {

MockPlatform ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839581</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-22 08:09:22 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839605</commentid>
    <comment_count>4</comment_count>
      <attachid>189768</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-22 08:40:20 -0800</bug_when>
    <thetext>Comment on attachment 189768
Patch

Haraken, I&apos;m not sure I understand your comments.  We&apos;re dropping both the &quot;WebKit&quot; and the &quot;Support&quot; from the names.  The old concept was called WebKit::WebKitPlatformSupport, but we&apos;ve renamed it in the API to WebKit::Platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839614</commentid>
    <comment_count>5</comment_count>
      <attachid>189768</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-22 08:48:19 -0800</bug_when>
    <thetext>Comment on attachment 189768
Patch

Sorry, it looks like I added strange comments to wrong places... I wanted to say it looks strange to have &apos;class MockWebKitPlatformSupport&apos; in MockPlatform.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839631</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-22 08:58:39 -0800</bug_when>
    <thetext>&gt; Sorry, it looks like I added strange comments to wrong places... I wanted to say it looks strange to have &apos;class MockWebKitPlatformSupport&apos; in MockPlatform.h.

Notice that &quot;Tools/DumpRenderTree/chromium/MockPlatform.h&quot; and &quot;Tools/DumpRenderTree/chromium/MockPlatform.cpp&quot; appear twice in the diff.  The reason is because Mark has &quot;svn mv&quot; the files and then edited them.  The first appearance in the diff shows that they were moved and the second shows the edits.  It&apos;s confusing to read the diff, but he has actually made the changes you&apos;ve asked for.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839633</commentid>
    <comment_count>7</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-22 09:00:13 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Notice that &quot;Tools/DumpRenderTree/chromium/MockPlatform.h&quot; and &quot;Tools/DumpRenderTree/chromium/MockPlatform.cpp&quot; appear twice in the diff.  The reason is because Mark has &quot;svn mv&quot; the files and then edited them.  The first appearance in the diff shows that they were moved and the second shows the edits.  It&apos;s confusing to read the diff, but he has actually made the changes you&apos;ve asked for.  :)

Ah, understood. Sorry for all the confusion!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840474</commentid>
    <comment_count>8</comment_count>
      <attachid>189768</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-23 15:33:25 -0800</bug_when>
    <thetext>Comment on attachment 189768
Patch

Clearing flags on attachment: 189768

Committed r143852: &lt;http://trac.webkit.org/changeset/143852&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840475</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-23 15:33:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189768</attachid>
            <date>2013-02-22 07:04:58 -0800</date>
            <delta_ts>2013-02-23 15:33:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110606-20130222100054.patch</filename>
            <type>text/plain</type>
            <size>22198</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE0MzcyNykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM2IEBACisyMDEzLTAyLTIyICBNYXJrIFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbQ2hyb21pdW1dIER1bXBSZW5kZXJUcmVlIFRlc3RTaGVsbDo6aW5pdGlh
bGl6ZSBzaG91bGQgdGFrZSBQbGF0Zm9ybSogbm93IHRoYXQgV2ViS2l0UGxhdGZvcm1TdXBwb3J0
IGlzIGVtcHR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTA2MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBQYXJ0IG9mIGEgbGFyZ2VyIHJlZmFjdG9yaW5nIHNlcmllczsgc2VlIHRyYWNraW5nIGJ1ZyA4
Mjk0OC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwOgorICAg
ICAgICAoV2ViS2l0U3VwcG9ydFRlc3RFbnZpcm9ubWVudDo6V2ViS2l0U3VwcG9ydFRlc3RFbnZp
cm9ubWVudCk6CisgICAgICAgIChXZWJLaXRTdXBwb3J0VGVzdEVudmlyb25tZW50Ojptb2NrUGxh
dGZvcm0pOgorICAgICAgICAoV2ViS2l0U3VwcG9ydFRlc3RFbnZpcm9ubWVudCk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1BsYXRmb3JtLmNwcDogQ29waWVkIGZyb20g
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydC5j
cHAuCisgICAgICAgIChNb2NrUGxhdGZvcm06OmNyZWF0ZSk6CisgICAgICAgIChNb2NrUGxhdGZv
cm06Ok1vY2tQbGF0Zm9ybSk6CisgICAgICAgIChNb2NrUGxhdGZvcm06On5Nb2NrUGxhdGZvcm0p
OgorICAgICAgICAoTW9ja1BsYXRmb3JtOjpzZXRJbnRlcmZhY2VzKToKKyAgICAgICAgKE1vY2tQ
bGF0Zm9ybTo6Y3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21WYWx1ZXMpOgorICAgICAgICAoTW9ja1Bs
YXRmb3JtOjpjcmVhdGVNZWRpYVN0cmVhbUNlbnRlcik6CisgICAgICAgIChNb2NrUGxhdGZvcm06
OmNyZWF0ZVJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcik6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTW9ja1BsYXRmb3JtLmg6IENvcGllZCBmcm9tIFRvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL01vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaC4KKyAgICAgICAgKE1vY2tQ
bGF0Zm9ybSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYktpdFBs
YXRmb3JtU3VwcG9ydC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oOiBSZW1vdmVkLgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0ZS5o
OgorICAgICAgICAoV2ViVGVzdERlbGVnYXRlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0U2hlbGwuY3BwOgorICAgICAgICAoVGVzdFNoZWxsOjppbml0aWFsaXplKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaDoKKyAgICAgICAg
KFRlc3RTaGVsbCk6CisKIDIwMTMtMDItMjEgIFJhcGhhZWwgS3VibyBkYSBDb3N0YSAgPHJhcGhh
ZWwua3Viby5kYS5jb3N0YUBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1bRFJUXSBEbyBub3Qg
ZHVtcCBlbXB0eSBmcmFtZXMuCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVy
VHJlZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJU
cmVlLmd5cGkJKHJldmlzaW9uIDE0MzcyNSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBS
ZW5kZXJUcmVlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTgsOCArOCw4IEBACiAgICAgICAgICAg
ICAnY2hyb21pdW0vRFJURGV2VG9vbHNDbGllbnQuY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1
bS9EUlREZXZUb29sc0NsaWVudC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9EdW1wUmVuZGVy
VHJlZS5jcHAnLAotICAgICAgICAgICAgJ2Nocm9taXVtL01vY2tXZWJLaXRQbGF0Zm9ybVN1cHBv
cnQuY3BwJywKLSAgICAgICAgICAgICdjaHJvbWl1bS9Nb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0
LmgnLAorICAgICAgICAgICAgJ2Nocm9taXVtL01vY2tQbGF0Zm9ybS5jcHAnLAorICAgICAgICAg
ICAgJ2Nocm9taXVtL01vY2tQbGF0Zm9ybS5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9Nb2Nr
V2ViUHJlcmVuZGVyaW5nU3VwcG9ydC5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL01vY2tX
ZWJQcmVyZW5kZXJpbmdTdXBwb3J0LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rhc2suaCcs
CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRy
ZWUuY3BwCShyZXZpc2lvbiAxNDM3MjUpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9EdW1wUmVuZGVyVHJlZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEdW1wUmVuZGVyVHJlZS5oIgogCi0jaW5jbHVk
ZSAiTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oIgorI2luY2x1ZGUgIk1vY2tQbGF0Zm9ybS5o
IgogI2luY2x1ZGUgIlRlc3RTaGVsbC5oIgogI2luY2x1ZGUgIndlYmtpdC9zdXBwb3J0L3dlYmtp
dF9zdXBwb3J0LmgiCiAjaW5jbHVkZSA8cHVibGljL1dlYkNvbXBvc2l0b3JTdXBwb3J0Lmg+CkBA
IC04MCw3ICs4MCw3IEBAIGNsYXNzIFdlYktpdFN1cHBvcnRUZXN0RW52aXJvbm1lbnQgewogcHVi
bGljOgogICAgIFdlYktpdFN1cHBvcnRUZXN0RW52aXJvbm1lbnQoKQogICAgIHsKLSAgICAgICAg
bV9tb2NrUGxhdGZvcm0gPSBNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0OjpjcmVhdGUoKTsKKyAg
ICAgICAgbV9tb2NrUGxhdGZvcm0gPSBNb2NrUGxhdGZvcm06OmNyZWF0ZSgpOwogICAgICAgICB3
ZWJraXRfc3VwcG9ydDo6U2V0VXBUZXN0RW52aXJvbm1lbnQobV9tb2NrUGxhdGZvcm0uZ2V0KCkp
OwogICAgIH0KICAgICB+V2ViS2l0U3VwcG9ydFRlc3RFbnZpcm9ubWVudCgpCkBAIC04OCwxMCAr
ODgsMTAgQEAgcHVibGljOgogICAgICAgICB3ZWJraXRfc3VwcG9ydDo6VGVhckRvd25UZXN0RW52
aXJvbm1lbnQoKTsKICAgICB9CiAKLSAgICBNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0KiBtb2Nr
UGxhdGZvcm0oKSB7IHJldHVybiBtX21vY2tQbGF0Zm9ybS5nZXQoKTsgfQorICAgIE1vY2tQbGF0
Zm9ybSogbW9ja1BsYXRmb3JtKCkgeyByZXR1cm4gbV9tb2NrUGxhdGZvcm0uZ2V0KCk7IH0KIAog
cHJpdmF0ZToKLSAgICBPd25QdHI8TW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydD4gbV9tb2NrUGxh
dGZvcm07CisgICAgT3duUHRyPE1vY2tQbGF0Zm9ybT4gbV9tb2NrUGxhdGZvcm07CiB9OwogCiBz
dGF0aWMgdm9pZCBydW5UZXN0KFRlc3RTaGVsbCYgc2hlbGwsIFRlc3RQYXJhbXMmIHBhcmFtcywg
Y29uc3Qgc3RyaW5nJiBpbnB1dExpbmUsIGNvbnN0IGJvb2wgZm9yY2VEdW1wUGl4ZWxzKQpJbmRl
eDogVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1BsYXRmb3JtLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrUGxhdGZvcm0uY3BwCShy
ZXZpc2lvbiAxNDM3MjUpCShmcm9tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tX
ZWJLaXRQbGF0Zm9ybVN1cHBvcnQuY3BwOjE0MzcyNSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL01vY2tQbGF0Zm9ybS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0
LmgiCisKKyNpbmNsdWRlICJXZWJUZXN0SW50ZXJmYWNlcy5oIgorI2luY2x1ZGUgPHB1YmxpYy9X
ZWJNZWRpYVN0cmVhbUNlbnRlci5oPgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKK3VzaW5n
IG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyOworCitQYXNzT3duUHRyPE1vY2tXZWJLaXRQbGF0Zm9y
bVN1cHBvcnQ+IE1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6OmNyZWF0ZSgpCit7CisgICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0KCkpOworfQorCitNb2Nr
V2ViS2l0UGxhdGZvcm1TdXBwb3J0OjpNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0KCkKK3sKK30K
KworTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydDo6fk1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQo
KQoreworfQorCit2b2lkIE1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6OnNldEludGVyZmFjZXMo
V2ViVGVzdEludGVyZmFjZXMqIGludGVyZmFjZXMpCit7CisgICAgbV9pbnRlcmZhY2VzID0gaW50
ZXJmYWNlczsKK30KKwordm9pZCBNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0OjpjcnlwdG9ncmFw
aGljYWxseVJhbmRvbVZhbHVlcyh1bnNpZ25lZCBjaGFyKiwgc2l6ZV90KQoreworICAgIENSQVNI
KCk7Cit9CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorV2ViTWVkaWFTdHJlYW1DZW50ZXIq
IE1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6OmNyZWF0ZU1lZGlhU3RyZWFtQ2VudGVyKFdlYk1l
ZGlhU3RyZWFtQ2VudGVyQ2xpZW50KiBjbGllbnQpCit7CisgICAgQVNTRVJUKG1faW50ZXJmYWNl
cyk7CisKKyAgICBpZiAoIW1fbW9ja01lZGlhU3RyZWFtQ2VudGVyKQorICAgICAgICBtX21vY2tN
ZWRpYVN0cmVhbUNlbnRlciA9IGFkb3B0UHRyKG1faW50ZXJmYWNlcy0+Y3JlYXRlTWVkaWFTdHJl
YW1DZW50ZXIoY2xpZW50KSk7CisKKyAgICByZXR1cm4gbV9tb2NrTWVkaWFTdHJlYW1DZW50ZXIu
Z2V0KCk7Cit9CisKK1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlciogTW9ja1dlYktpdFBsYXRm
b3JtU3VwcG9ydDo6Y3JlYXRlUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKFdlYlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlckNsaWVudCogY2xpZW50KQoreworICAgIEFTU0VSVChtX2ludGVyZmFjZXMp
OworCisgICAgcmV0dXJuIG1faW50ZXJmYWNlcy0+Y3JlYXRlV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyKGNsaWVudCk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKSW5kZXg6
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tQbGF0Zm9ybS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1BsYXRmb3JtLmNwcAkocmV2
aXNpb24gMTQzNzI1KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1BsYXRm
b3JtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgiCisjaW5j
bHVkZSAiTW9ja1BsYXRmb3JtLmgiCiAKICNpbmNsdWRlICJXZWJUZXN0SW50ZXJmYWNlcy5oIgog
I2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbUNlbnRlci5oPgpAQCAtMzksMzEgKzM5LDMx
IEBACiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogdXNpbmcgbmFtZXNwYWNlIFdlYlRlc3RSdW5u
ZXI7CiAKLVBhc3NPd25QdHI8TW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydD4gTW9ja1dlYktpdFBs
YXRmb3JtU3VwcG9ydDo6Y3JlYXRlKCkKK1Bhc3NPd25QdHI8TW9ja1BsYXRmb3JtPiBNb2NrUGxh
dGZvcm06OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNb2NrV2ViS2l0UGxh
dGZvcm1TdXBwb3J0KCkpOworICAgIHJldHVybiBhZG9wdFB0cihuZXcgTW9ja1BsYXRmb3JtKCkp
OwogfQogCi1Nb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0OjpNb2NrV2ViS2l0UGxhdGZvcm1TdXBw
b3J0KCkKK01vY2tQbGF0Zm9ybTo6TW9ja1BsYXRmb3JtKCkKIHsKIH0KIAotTW9ja1dlYktpdFBs
YXRmb3JtU3VwcG9ydDo6fk1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKQorTW9ja1BsYXRmb3Jt
Ojp+TW9ja1BsYXRmb3JtKCkKIHsKIH0KIAotdm9pZCBNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0
OjpzZXRJbnRlcmZhY2VzKFdlYlRlc3RJbnRlcmZhY2VzKiBpbnRlcmZhY2VzKQordm9pZCBNb2Nr
UGxhdGZvcm06OnNldEludGVyZmFjZXMoV2ViVGVzdEludGVyZmFjZXMqIGludGVyZmFjZXMpCiB7
CiAgICAgbV9pbnRlcmZhY2VzID0gaW50ZXJmYWNlczsKIH0KIAotdm9pZCBNb2NrV2ViS2l0UGxh
dGZvcm1TdXBwb3J0OjpjcnlwdG9ncmFwaGljYWxseVJhbmRvbVZhbHVlcyh1bnNpZ25lZCBjaGFy
Kiwgc2l6ZV90KQordm9pZCBNb2NrUGxhdGZvcm06OmNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFs
dWVzKHVuc2lnbmVkIGNoYXIqLCBzaXplX3QpCiB7CiAgICAgQ1JBU0goKTsKIH0KIAogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCi1XZWJNZWRpYVN0cmVhbUNlbnRlciogTW9ja1dlYktpdFBsYXRm
b3JtU3VwcG9ydDo6Y3JlYXRlTWVkaWFTdHJlYW1DZW50ZXIoV2ViTWVkaWFTdHJlYW1DZW50ZXJD
bGllbnQqIGNsaWVudCkKK1dlYk1lZGlhU3RyZWFtQ2VudGVyKiBNb2NrUGxhdGZvcm06OmNyZWF0
ZU1lZGlhU3RyZWFtQ2VudGVyKFdlYk1lZGlhU3RyZWFtQ2VudGVyQ2xpZW50KiBjbGllbnQpCiB7
CiAgICAgQVNTRVJUKG1faW50ZXJmYWNlcyk7CiAKQEAgLTczLDcgKzczLDcgQEAgV2ViTWVkaWFT
dHJlYW1DZW50ZXIqIE1vY2tXZWJLaXRQbGF0Zm9ybQogICAgIHJldHVybiBtX21vY2tNZWRpYVN0
cmVhbUNlbnRlci5nZXQoKTsKIH0KIAotV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKiBNb2Nr
V2ViS2l0UGxhdGZvcm1TdXBwb3J0OjpjcmVhdGVSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIoV2Vi
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50KiBjbGllbnQpCitXZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXIqIE1vY2tQbGF0Zm9ybTo6Y3JlYXRlUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
KFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCogY2xpZW50KQogewogICAgIEFTU0VS
VChtX2ludGVyZmFjZXMpOwogCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9N
b2NrUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9Nb2NrUGxhdGZvcm0uaAkocmV2aXNpb24gMTQzNzI1KQkoZnJvbSBUb29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9Nb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0Lmg6MTQzNzI1KQorKysgVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydF9oCisjZGVm
aW5lIE1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnRfaAorCisjaW5jbHVkZSA8cHVibGljL1BsYXRm
b3JtLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CisKK25hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKK2NsYXNzIFdlYlRlc3RJbnRlcmZhY2Vz
OworfQorCitjbGFzcyBNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0IDogcHVibGljIFdlYktpdDo6
UGxhdGZvcm0geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPE1vY2tXZWJLaXRQbGF0
Zm9ybVN1cHBvcnQ+IGNyZWF0ZSgpOworICAgIH5Nb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0KCk7
CisKKyAgICB2b2lkIHNldEludGVyZmFjZXMoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdEludGVyZmFj
ZXMqKTsKKyAgICB2aXJ0dWFsIHZvaWQgY3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21WYWx1ZXModW5z
aWduZWQgY2hhciogYnVmZmVyLCBzaXplX3QgbGVuZ3RoKSBPVkVSUklERTsKKworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisgICAgdmlydHVhbCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtQ2VudGVy
KiBjcmVhdGVNZWRpYVN0cmVhbUNlbnRlcihXZWJLaXQ6OldlYk1lZGlhU3RyZWFtQ2VudGVyQ2xp
ZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJLaXQ6OldlYlJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlciogY3JlYXRlUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKFdlYktpdDo6V2ViUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50KikgT1ZFUlJJREU7CisjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX1NUUkVBTSkKKworcHJpdmF0ZToKKyAgICBNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0KCk7
CisKKyAgICBXZWJUZXN0UnVubmVyOjpXZWJUZXN0SW50ZXJmYWNlcyogbV9pbnRlcmZhY2VzOwor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBPd25QdHI8V2ViS2l0OjpXZWJNZWRpYVN0
cmVhbUNlbnRlcj4gbV9tb2NrTWVkaWFTdHJlYW1DZW50ZXI7CisjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX1NUUkVBTSkKK307CisKKyNlbmRpZiAvLyBNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0X2gK
SW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tQbGF0Zm9ybS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tQbGF0Zm9ybS5oCShy
ZXZpc2lvbiAxNDM3MjUpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrUGxh
dGZvcm0uaAkod29ya2luZyBjb3B5KQpAQCAtMjgsOCArMjgsOCBAQAogICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICAqLwogCi0jaWZuZGVmIE1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnRfaAotI2RlZmluZSBNb2Nr
V2ViS2l0UGxhdGZvcm1TdXBwb3J0X2gKKyNpZm5kZWYgTW9ja1BsYXRmb3JtX2gKKyNkZWZpbmUg
TW9ja1BsYXRmb3JtX2gKIAogI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgogI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KQEAgLTM5LDEwICszOSwxMCBAQCBuYW1lc3BhY2UgV2ViVGVzdFJ1bm5l
ciB7CiBjbGFzcyBXZWJUZXN0SW50ZXJmYWNlczsKIH0KIAotY2xhc3MgTW9ja1dlYktpdFBsYXRm
b3JtU3VwcG9ydCA6IHB1YmxpYyBXZWJLaXQ6OlBsYXRmb3JtIHsKK2NsYXNzIE1vY2tQbGF0Zm9y
bSA6IHB1YmxpYyBXZWJLaXQ6OlBsYXRmb3JtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093
blB0cjxNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0PiBjcmVhdGUoKTsKLSAgICB+TW9ja1dlYktp
dFBsYXRmb3JtU3VwcG9ydCgpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPE1vY2tQbGF0Zm9ybT4g
Y3JlYXRlKCk7CisgICAgfk1vY2tQbGF0Zm9ybSgpOwogCiAgICAgdm9pZCBzZXRJbnRlcmZhY2Vz
KFdlYlRlc3RSdW5uZXI6OldlYlRlc3RJbnRlcmZhY2VzKik7CiAgICAgdmlydHVhbCB2b2lkIGNy
eXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFsdWVzKHVuc2lnbmVkIGNoYXIqIGJ1ZmZlciwgc2l6ZV90
IGxlbmd0aCkgT1ZFUlJJREU7CkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQogCiBwcml2YXRlOgotICAgIE1vY2tXZWJLaXRQbGF0Zm9ybVN1
cHBvcnQoKTsKKyAgICBNb2NrUGxhdGZvcm0oKTsKIAogICAgIFdlYlRlc3RSdW5uZXI6OldlYlRl
c3RJbnRlcmZhY2VzKiBtX2ludGVyZmFjZXM7CiAKQEAgLTYyLDQgKzYyLDQgQEAgcHJpdmF0ZToK
ICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQogfTsKIAotI2VuZGlmIC8vIE1vY2tXZWJL
aXRQbGF0Zm9ybVN1cHBvcnRfaAorI2VuZGlmIC8vIE1vY2tQbGF0Zm9ybV9oCkluZGV4OiBUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViS2l0UGxh
dGZvcm1TdXBwb3J0LmNwcAkocmV2aXNpb24gMTQzNzI1KQorKysgVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsODIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
ICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJNb2NrV2ViS2l0
UGxhdGZvcm1TdXBwb3J0LmgiCi0KLSNpbmNsdWRlICJXZWJUZXN0SW50ZXJmYWNlcy5oIgotI2lu
Y2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbUNlbnRlci5oPgotI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLQotdXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKLXVzaW5nIG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyOwotCi1QYXNzT3duUHRyPE1v
Y2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ+IE1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6OmNyZWF0
ZSgpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0
KCkpOwotfQotCi1Nb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0OjpNb2NrV2ViS2l0UGxhdGZvcm1T
dXBwb3J0KCkKLXsKLX0KLQotTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydDo6fk1vY2tXZWJLaXRQ
bGF0Zm9ybVN1cHBvcnQoKQotewotfQotCi12b2lkIE1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6
OnNldEludGVyZmFjZXMoV2ViVGVzdEludGVyZmFjZXMqIGludGVyZmFjZXMpCi17Ci0gICAgbV9p
bnRlcmZhY2VzID0gaW50ZXJmYWNlczsKLX0KLQotdm9pZCBNb2NrV2ViS2l0UGxhdGZvcm1TdXBw
b3J0OjpjcnlwdG9ncmFwaGljYWxseVJhbmRvbVZhbHVlcyh1bnNpZ25lZCBjaGFyKiwgc2l6ZV90
KQotewotICAgIENSQVNIKCk7Ci19Ci0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotV2ViTWVk
aWFTdHJlYW1DZW50ZXIqIE1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6OmNyZWF0ZU1lZGlhU3Ry
ZWFtQ2VudGVyKFdlYk1lZGlhU3RyZWFtQ2VudGVyQ2xpZW50KiBjbGllbnQpCi17Ci0gICAgQVNT
RVJUKG1faW50ZXJmYWNlcyk7Ci0KLSAgICBpZiAoIW1fbW9ja01lZGlhU3RyZWFtQ2VudGVyKQot
ICAgICAgICBtX21vY2tNZWRpYVN0cmVhbUNlbnRlciA9IGFkb3B0UHRyKG1faW50ZXJmYWNlcy0+
Y3JlYXRlTWVkaWFTdHJlYW1DZW50ZXIoY2xpZW50KSk7Ci0KLSAgICByZXR1cm4gbV9tb2NrTWVk
aWFTdHJlYW1DZW50ZXIuZ2V0KCk7Ci19Ci0KLVdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlciog
TW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydDo6Y3JlYXRlUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
KFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCogY2xpZW50KQotewotICAgIEFTU0VS
VChtX2ludGVyZmFjZXMpOwotCi0gICAgcmV0dXJuIG1faW50ZXJmYWNlcy0+Y3JlYXRlV2ViUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyKGNsaWVudCk7Ci19Ci0jZW5kaWYgLy8gRU5BQkxFKE1FRElB
X1NUUkVBTSkKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJLaXRQ
bGF0Zm9ybVN1cHBvcnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9Nb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgJKHJldmlzaW9uIDE0MzcyNSkKKysrIFRv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw2NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBNb2NrV2ViS2l0UGxhdGZvcm1T
dXBwb3J0X2gKLSNkZWZpbmUgTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydF9oCi0KLSNpbmNsdWRl
IDxwdWJsaWMvUGxhdGZvcm0uaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KLQotbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgewotY2xhc3MgV2Vi
VGVzdEludGVyZmFjZXM7Ci19Ci0KLWNsYXNzIE1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQgOiBw
dWJsaWMgV2ViS2l0OjpQbGF0Zm9ybSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8
TW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydD4gY3JlYXRlKCk7Ci0gICAgfk1vY2tXZWJLaXRQbGF0
Zm9ybVN1cHBvcnQoKTsKLQotICAgIHZvaWQgc2V0SW50ZXJmYWNlcyhXZWJUZXN0UnVubmVyOjpX
ZWJUZXN0SW50ZXJmYWNlcyopOwotICAgIHZpcnR1YWwgdm9pZCBjcnlwdG9ncmFwaGljYWxseVJh
bmRvbVZhbHVlcyh1bnNpZ25lZCBjaGFyKiBidWZmZXIsIHNpemVfdCBsZW5ndGgpIE9WRVJSSURF
OwotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICB2aXJ0dWFsIFdlYktpdDo6V2ViTWVk
aWFTdHJlYW1DZW50ZXIqIGNyZWF0ZU1lZGlhU3RyZWFtQ2VudGVyKFdlYktpdDo6V2ViTWVkaWFT
dHJlYW1DZW50ZXJDbGllbnQqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYktpdDo6V2ViUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyKiBjcmVhdGVSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIoV2Vi
S2l0OjpXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQqKSBPVkVSUklERTsKLSNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi1wcml2YXRlOgotICAgIE1vY2tXZWJLaXRQbGF0
Zm9ybVN1cHBvcnQoKTsKLQotICAgIFdlYlRlc3RSdW5uZXI6OldlYlRlc3RJbnRlcmZhY2VzKiBt
X2ludGVyZmFjZXM7Ci0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIE93blB0cjxXZWJL
aXQ6OldlYk1lZGlhU3RyZWFtQ2VudGVyPiBtX21vY2tNZWRpYVN0cmVhbUNlbnRlcjsKLSNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQotfTsKLQotI2VuZGlmIC8vIE1vY2tXZWJLaXRQbGF0
Zm9ybVN1cHBvcnRfaApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNo
ZWxsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
U2hlbGwuY3BwCShyZXZpc2lvbiAxNDM3MjUpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0U2hlbGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAKICNp
bmNsdWRlICJEUlREZXZUb29sc0FnZW50LmgiCiAjaW5jbHVkZSAiRFJURGV2VG9vbHNDbGllbnQu
aCIKLSNpbmNsdWRlICJNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgiCisjaW5jbHVkZSAiTW9j
a1BsYXRmb3JtLmgiCiAjaW5jbHVkZSAiTW9ja1dlYlByZXJlbmRlcmluZ1N1cHBvcnQuaCIKICNp
bmNsdWRlICJXZWJBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRlICJXZWJEYXRhU291cmNlLmgi
CkBAIC0xNTksNyArMTU5LDcgQEAgVGVzdFNoZWxsOjpUZXN0U2hlbGwoKQogICAgIG1fdGltZW91
dCA9IDMwICogMTAwMDsKIH0KIAotdm9pZCBUZXN0U2hlbGw6OmluaXRpYWxpemUoTW9ja1dlYktp
dFBsYXRmb3JtU3VwcG9ydCogcGxhdGZvcm1TdXBwb3J0KQordm9pZCBUZXN0U2hlbGw6OmluaXRp
YWxpemUoTW9ja1BsYXRmb3JtKiBwbGF0Zm9ybVN1cHBvcnQpCiB7CiAgICAgbV90ZXN0SW50ZXJm
YWNlcyA9IGFkb3B0UHRyKG5ldyBXZWJUZXN0SW50ZXJmYWNlcygpKTsKICAgICBwbGF0Zm9ybVN1
cHBvcnQtPnNldEludGVyZmFjZXMobV90ZXN0SW50ZXJmYWNlcy5nZXQoKSk7CkluZGV4OiBUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAkocmV2aXNpb24gMTQzNzI1KQor
KysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTU0LDcgKzU0LDcgQEAgY2xhc3MgRFJURGV2VG9vbHNBZ2VudDsKIGNsYXNzIERSVERl
dlRvb2xzQ2FsbEFyZ3M7CiBjbGFzcyBEUlREZXZUb29sc0NsaWVudDsKIGNsYXNzIE1vY2tXZWJQ
cmVyZW5kZXJpbmdTdXBwb3J0OwotY2xhc3MgTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydDsKK2Ns
YXNzIE1vY2tQbGF0Zm9ybTsKIAogc3RydWN0IFRlc3RQYXJhbXMgewogICAgIGJvb2wgZHVtcFRy
ZWU7CkBAIC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKICAgICBUZXN0U2hlbGwoKTsKICAgICB+VGVz
dFNoZWxsKCk7CiAKLSAgICB2b2lkIGluaXRpYWxpemUoTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9y
dCopOworICAgIHZvaWQgaW5pdGlhbGl6ZShNb2NrUGxhdGZvcm0qKTsKIAogICAgIC8vIFRoZSBt
YWluIFdlYlZpZXcuCiAgICAgV2ViS2l0OjpXZWJWaWV3KiB3ZWJWaWV3KCkgY29uc3QgeyByZXR1
cm4gbV93ZWJWaWV3OyB9CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3B1YmxpYy9XZWJUZXN0RGVsZWdhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0RGVsZWdhdGUuaAko
cmV2aXNpb24gMTQzNzI1KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9wdWJsaWMvV2ViVGVzdERlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjbGVhckVkaXRDb21tYW5kKCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRFZGl0Q29tbWFuZChjb25zdCBzdGQ6OnN0cmluZyYgbmFtZSwg
Y29uc3Qgc3RkOjpzdHJpbmcmIHZhbHVlKSA9IDA7CiAKLSAgICAvLyBTZXQgdGhlIGdhbWVwYWRz
IHRvIHJldHVybiBmcm9tIFdlYktpdFBsYXRmb3JtU3VwcG9ydDo6c2FtcGxlR2FtZXBhZHMoKS4K
KyAgICAvLyBTZXQgdGhlIGdhbWVwYWRzIHRvIHJldHVybiBmcm9tIFBsYXRmb3JtOjpzYW1wbGVH
YW1lcGFkcygpLgogICAgIHZpcnR1YWwgdm9pZCBzZXRHYW1lcGFkRGF0YShjb25zdCBXZWJLaXQ6
OldlYkdhbWVwYWRzJikgPSAwOwogCiAgICAgLy8gQWRkIGEgbWVzc2FnZSB0byB0aGUgdGV4dCBk
dW1wIGZvciB0aGUgbGF5b3V0IHRlc3QuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>