<?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>66340</bug_id>
          
          <creation_ts>2011-08-16 15:30:25 -0700</creation_ts>
          <short_desc>REGRESSION (r89086): All worker xhr requests trigger preflight requests.</short_desc>
          <delta_ts>2011-08-22 13:46:32 -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>XML</component>
          <version>528+ (Nightly 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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Levin">levin</reporter>
          <assigned_to name="David Levin">levin</assigned_to>
          <cc>ap</cc>
    
    <cc>dslomov</cc>
    
    <cc>japhet</cc>
    
    <cc>per-erik.brodin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>451915</commentid>
    <comment_count>0</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-08-16 15:30:25 -0700</bug_when>
    <thetext>This happens in WebKit nightlies and chromium for both shared and dedicated workers. After http://trac.webkit.org/changeset/89086 (which I helped review), the referer header is set before DocumentThreadableLoader::create is called.  DocumentThreadableLoader::create  checks to see if a preflight request is needed but the referer header isn&apos;t listed as a simple header (because it can&apos;t be set by the xhr request at all), so this header being present triggers the preflight request. 

Just adding Nate as an fyi.

In progress fix: 
* I&apos;ll add &quot;referer&quot; to the whitelist in isOnAccessControlSimpleRequestHeaderWhitelist in Source/WebCore/loader/CrossOriginAccessControl.cpp and all will be happiness.
* Add a simple test for cross origin stuff for workers/shared workers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451950</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-16 16:11:08 -0700</bug_when>
    <thetext>I guess we can add all headers in XMLHttpRequest::m_forbiddenRequestHeaders to CORS simple request whitelist now, since they can only be set by the engine, not by JS code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452046</commentid>
    <comment_count>2</comment_count>
      <attachid>104136</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-08-16 18:14:01 -0700</bug_when>
    <thetext>Created attachment 104136
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452050</commentid>
    <comment_count>3</comment_count>
      <attachid>104136</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-16 18:15:43 -0700</bug_when>
    <thetext>Comment on attachment 104136
Patch

Yeah, I agree with Alexey.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452051</commentid>
    <comment_count>4</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-08-16 18:17:05 -0700</bug_when>
    <thetext>I&apos;ll add another patch with tests and add the other headers after I land this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452066</commentid>
    <comment_count>5</comment_count>
      <attachid>104136</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-08-16 18:55:12 -0700</bug_when>
    <thetext>Comment on attachment 104136
Patch

Committed as http://trac.webkit.org/changeset/93188

Keeping bug open to work on the bigger fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452070</commentid>
    <comment_count>6</comment_count>
    <who name="Per-Erik Brodin">per-erik.brodin</who>
    <bug_when>2011-08-16 19:05:07 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; I guess we can add all headers in XMLHttpRequest::m_forbiddenRequestHeaders to CORS simple request whitelist now, since they can only be set by the engine, not by JS code.

Another option would be to fix https://bugs.webkit.org/show_bug.cgi?id=63460
Now Referer and Origin will be incorrectly included in Access-Control-Request-Headers whenever there is a preflight.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454022</commentid>
    <comment_count>7</comment_count>
      <attachid>104552</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-08-19 13:25:04 -0700</bug_when>
    <thetext>Created attachment 104552
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454761</commentid>
    <comment_count>8</comment_count>
      <attachid>104552</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-08-22 11:45:21 -0700</bug_when>
    <thetext>Comment on attachment 104552
Patch

&gt; Despite what I said in comment 1, I&apos;m not sure if it&apos;s the best approach to move
&gt; headers that are special cased in XMLHttpRequest to some shared location. It&apos;s
&gt; ThreadableLoader client (in this case, XHR) who really knows if JavaScript code
&gt; called one of those methods that added non-engine headers. Many other clients
&gt; simply don&apos;t provide any way to specify custom headers, so doing checks on these
&gt; is pointless.

&gt; What do you think?

It seemed reasonable to move these checks over here as you suggested previously. I suspect the added cost is negligible and this doesn&apos;t seem like a performance sensitive path.

However, I don&apos;t really care to have all of this moved over and mostly did it due to the suggestion :).

So I&apos;ll withdraw this patch and do one with only the test code which should help us catch any future regressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454773</commentid>
    <comment_count>9</comment_count>
      <attachid>104709</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-08-22 11:57:06 -0700</bug_when>
    <thetext>Created attachment 104709
Test for preflight for simple request from web workers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454833</commentid>
    <comment_count>10</comment_count>
      <attachid>104709</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-22 13:10:24 -0700</bug_when>
    <thetext>Comment on attachment 104709
Test for preflight for simple request from web workers.

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

&gt; LayoutTests/http/tests/xmlhttprequest/workers/resources/access-control-basic-get-fail-non-simple-test.js:19
&gt; +worker.onmessage = function(evt)

Why eve instead of event?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454835</commentid>
    <comment_count>11</comment_count>
      <attachid>104709</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-08-22 13:12:19 -0700</bug_when>
    <thetext>Comment on attachment 104709
Test for preflight for simple request from web workers.

I&apos;ll change the test to event and submit it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454866</commentid>
    <comment_count>12</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-08-22 13:46:32 -0700</bug_when>
    <thetext>Committed (tests) as http://trac.webkit.org/changeset/93536</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104136</attachid>
            <date>2011-08-16 18:14:01 -0700</date>
            <delta_ts>2011-08-16 18:55:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66340-20110816181400.patch</filename>
            <type>text/plain</type>
            <size>1946</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMxODIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ZDQ1YTkyODZhOGI2OWMw
MWFiNGE5NDNkNjNjNzNkZmQ4MDY1NzEwLi5iNjNiMTFmZGQ3MWE1MDJkNDNiZmE5Y2UxZmQ5ZGU0
MWQ0MWIwMmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDgtMTYgIERhdmlk
IExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04gKHI4OTA4
Nik6IEFsbCB3b3JrZXIgeGhyIHJlcXVlc3RzIHRyaWdnZXIgcHJlZmxpZ2h0IHJlcXVlc3RzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYzNDAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IGNvbWlu
ZyBpbiBhIG1vcmUgY29tcHJlaGVuc2l2ZSBwYXRjaCBzaG9ydGx5LiBUaGlzIGlzIGp1c3QgYSB2
ZXJ5IHRhcmdldHRlZAorICAgICAgICBwYXRjaCB0byBhbGxvdyBmb3IgZWFzaWVyIG1lcmdpbmcu
CisKKyAgICAgICAgKiBsb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmlzT25BY2Nlc3NDb250cm9sU2ltcGxlUmVxdWVzdEhlYWRlcldoaXRlbGlz
dCk6IEFkZCByZWZlcmVyIHRvIHRoZSBsaXN0CisgICAgICAgIG9mIHdoaXRlbGlzdGVkIGhlYWRl
cnMuIEl0IGNhbid0IGJlIHNldCBieSB4aHIgc28gaXQgaXMgb2sgdG8gd2hpdGVsaXN0IGl0LCBi
dXQgaXQgaXMKKyAgICAgICAgc2V0IGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uIFRoaXMg
aXMgc2ltaWxhciB0byB3aGF0IGlzIGRvbmUgZm9yICJvcmlnaW4iIGluIGhlcmUuCisKIDIwMTEt
MDgtMTYgIFBlci1FcmlrIEJyb2RpbiAgPHBlci1lcmlrLmJyb2RpbkBlcmljc3Nvbi5jb20+CiAK
ICAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byBleHBsaWNpdGx5IHByZXZlbnQgYSBwcmVmbGln
aHQgdmlhIFRocmVhZGFibGVMb2FkZXJPcHRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCmluZGV4IGU0YzM2MmE4YjI3ZGI0Mjkx
OTk4YWY2NGY4N2Q5OTBhZmRlNGY0NmMuLjhkMjliMzZlNzcyNTIyOTE1YjcwNzVlNmEwNmZhZWJj
YzkyNGZhYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFj
Y2Vzc0NvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFj
Y2Vzc0NvbnRyb2wuY3BwCkBAIC00Niw3ICs0Niw4IEBAIGJvb2wgaXNPbkFjY2Vzc0NvbnRyb2xT
aW1wbGVSZXF1ZXN0SGVhZGVyV2hpdGVsaXN0KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
CiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJhY2NlcHQiKQogICAgICAgICB8fCBl
cXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiYWNjZXB0LWxhbmd1YWdlIikKICAgICAgICAgfHwgZXF1
YWxJZ25vcmluZ0Nhc2UobmFtZSwgImNvbnRlbnQtbGFuZ3VhZ2UiKQotICAgICAgICB8fCBlcXVh
bElnbm9yaW5nQ2FzZShuYW1lLCAib3JpZ2luIikpCisgICAgICAgIHx8IGVxdWFsSWdub3JpbmdD
YXNlKG5hbWUsICJvcmlnaW4iKQorICAgICAgICB8fCBlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAi
cmVmZXJlciIpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFByZWZsaWdodCBpcyBy
ZXF1aXJlZCBmb3IgTUlNRSB0eXBlcyB0aGF0IGNhbiBub3QgYmUgc2VudCB2aWEgZm9ybSBzdWJt
aXNzaW9uLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104552</attachid>
            <date>2011-08-19 13:25:04 -0700</date>
            <delta_ts>2011-08-22 11:45:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66340-20110819132502.patch</filename>
            <type>text/plain</type>
            <size>40438</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM0MzIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0ZTlkNGE0NDlhMDlkMGY0OTE0NjQ4
MzMyOTgxMGU5MDllNTJlOGEwLi5kNWZiMTc4NzUxMTdhZjgxNjRmMjYyNTdjNGU2MjhjOWQxMDlh
YjIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDgtMTkgIERhdmlkIExldmluICA8bGV2
aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04gKHI4OTA4Nik6IEFsbCB3b3Jr
ZXIgeGhyIHJlcXVlc3RzIHRyaWdnZXIgcHJlZmxpZ2h0IHJlcXVlc3RzLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYzNDAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0cyB3aGljaCBhcmUg
c2ltaWxhciB0byB0aGUgbm9uIHdvcmtlciB0ZXN0IHdpdGggdGhlIHNhbWUgbmFtZS4KKworICAg
ICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9hY2Nlc3MtY29udHJvbC1i
YXNpYy1nZXQtZmFpbC1ub24tc2ltcGxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC93b3JrZXJzL2FjY2Vzcy1jb250cm9sLWJhc2ljLWdl
dC1mYWlsLW5vbi1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC93b3JrZXJzL3Jlc291cmNlcy9hY2Nlc3MtY29udHJvbC1iYXNpYy1nZXQtZmFp
bC1ub24tc2ltcGxlLXRlc3QuanM6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3Qvd29ya2Vycy9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtYmFzaWMtZ2V0LWZhaWwt
bm9uLXNpbXBsZS5qczogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC93b3JrZXJzL3NoYXJlZC13b3JrZXItYWNjZXNzLWNvbnRyb2wtYmFzaWMtZ2V0LWZhaWwtbm9u
LXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLWFjY2Vzcy1jb250cm9sLWJhc2ljLWdldC1m
YWlsLW5vbi1zaW1wbGUuaHRtbDogQWRkZWQuCisKIDIwMTEtMDgtMTkgIFRvbnkgQ2hhbmcgIDx0
b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIE1hcmsgdG91Y2ggdGVzdHMg
YXMgZmFpbGluZyBvbiBPU1ggMTAuNS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9hY2Nlc3MtY29udHJvbC1iYXNpYy1nZXQtZmFpbC1u
b24tc2ltcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3Qvd29ya2Vycy9hY2Nlc3MtY29udHJvbC1iYXNpYy1nZXQtZmFpbC1ub24tc2ltcGxlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YmQwMjhkYTViYmViMmVmYzJhODhkODY0ZjI5ZTUzZjU0
OWNjNGFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC93b3JrZXJzL2FjY2Vzcy1jb250cm9sLWJhc2ljLWdldC1mYWlsLW5vbi1zaW1wbGUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFhN
TEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVx
dWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtYmFzaWMtZ2V0LWZhaWwtbm9uLXNpbXBsZS5j
Z2kuIE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNz
LUNvbnRyb2wtQWxsb3ctT3JpZ2luLgorR0VUIHNob3VsZCBub3QgdHJpZ2dlciBhIHByZWZsaWdo
dCByZXF1ZXN0IGZyb20gYSB3b3JrZXIgdW5sZXNzIGl0IGhhcyBub24tc2ltcGxlIGhlYWRlcnMu
CisKK1BBU1M6IENyb3NzLWRvbWFpbiBhY2Nlc3MgYWxsb3dlZCBmb3Igc2ltcGxlIGdldC4KK1BB
U1M6IEV4Y2VwdGlvbiB0aHJvd24uIENyb3NzLWRvbWFpbiBhY2Nlc3Mgd2FzIGRlbmllZCBpbiAn
c2VuZCcuIFtORVRXT1JLX0VSUjogWE1MSHR0cFJlcXVlc3QgRXhjZXB0aW9uIDEwMV0uCitET05F
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3dvcmtl
cnMvYWNjZXNzLWNvbnRyb2wtYmFzaWMtZ2V0LWZhaWwtbm9uLXNpbXBsZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC93b3JrZXJzL2FjY2Vzcy1jb250cm9sLWJh
c2ljLWdldC1mYWlsLW5vbi1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTYxNDhhNmNjOTA4NDFm
Y2RjZmVlZTQ2OTY4ZDVlODQ4Y2MyYzM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC93b3JrZXJzL2FjY2Vzcy1jb250cm9sLWJhc2ljLWdl
dC1mYWlsLW5vbi1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDcgQEAKKzxib2R5PgorPHA+R0VUIHNo
b3VsZCBub3QgdHJpZ2dlciBhIHByZWZsaWdodCByZXF1ZXN0IGZyb20gYSB3b3JrZXIgdW5sZXNz
IGl0IGhhcyBub24tc2ltcGxlIGhlYWRlcnMuPC9wPgorPGRpdiBpZD1yZXN1bHQ+PC9kaXY+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dvcmtlci1jcmVhdGUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9hY2Nlc3MtY29udHJvbC1iYXNpYy1nZXQtZmFpbC1ub24tc2ltcGxl
LXRlc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3dvcmtlcnMvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9s
LWJhc2ljLWdldC1mYWlsLW5vbi1zaW1wbGUtdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtYmFzaWMt
Z2V0LWZhaWwtbm9uLXNpbXBsZS10ZXN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5OTg3MDZhMjBmNGE5Zjlh
OThjOGNiZjU2ZmU0OGFiN2U2N2U2OGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3dvcmtlcnMvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9s
LWJhc2ljLWdldC1mYWlsLW5vbi1zaW1wbGUtdGVzdC5qcwpAQCAtMCwwICsxLDMyIEBACitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
K30KKwordmFyIGNvbnNvbGVfbWVzc2FnZXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvbCIp
OworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb25zb2xlX21lc3NhZ2VzKTsKKworZnVuY3Rp
b24gbG9nKG1lc3NhZ2UpCit7CisgICAgdmFyIGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJsaSIpOworICAgIGl0ZW0uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVz
c2FnZSkpOworICAgIGNvbnNvbGVfbWVzc2FnZXMuYXBwZW5kQ2hpbGQoaXRlbSk7Cit9CisKK3Zh
ciB3b3JrZXIgPSBjcmVhdGVXb3JrZXIoJ3Jlc291cmNlcy9hY2Nlc3MtY29udHJvbC1iYXNpYy1n
ZXQtZmFpbC1ub24tc2ltcGxlLmpzJyk7Cit3b3JrZXIucG9zdE1lc3NhZ2UoIlNUQVJUIik7CisK
K3dvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQpCit7CisgICAgaWYgKC9sb2cgLisvLnRl
c3QoZXZ0LmRhdGEpKQorICAgICAgICBsb2coZXZ0LmRhdGEuc3Vic3RyKDQpKTsKKyAgICBlbHNl
IGlmICgvRE9ORS8udGVzdChldnQuZGF0YSkpIHsKKyAgICAgICAgbG9nKCJET05FIik7CisgICAg
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbG9nKCJF
UlJPUiIpOworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9yZXNv
dXJjZXMvYWNjZXNzLWNvbnRyb2wtYmFzaWMtZ2V0LWZhaWwtbm9uLXNpbXBsZS5qcyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9yZXNvdXJjZXMvYWNjZXNz
LWNvbnRyb2wtYmFzaWMtZ2V0LWZhaWwtbm9uLXNpbXBsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjVmN2Uy
MjMxOTM2OGNlMTI0NGFjZjJlYzdkMWQ3M2U1MWNiYjcxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC93b3JrZXJzL3Jlc291cmNlcy9hY2Nl
c3MtY29udHJvbC1iYXNpYy1nZXQtZmFpbC1ub24tc2ltcGxlLmpzCkBAIC0wLDAgKzEsNDIgQEAK
K2ltcG9ydFNjcmlwdHMoIndvcmtlci1wcmUuanMiKTsKKworb25tZXNzYWdlID0gZnVuY3Rpb24o
ZXZ0KQoreworICAgIGlmIChldnQuZGF0YSA9PSAiU1RBUlQiKQorICAgICAgICBzdGFydCgpOwor
fQorCitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBwb3N0TWVzc2FnZSgibG9nICIgKyBt
ZXNzYWdlKTsKK30KKworZnVuY3Rpb24gZG9uZSgpCit7CisgICAgcG9zdE1lc3NhZ2UoIkRPTkUi
KTsKK30KKworZnVuY3Rpb24gc3RhcnQoKQoreworICAgIHRyeSB7CisJdmFyIHhociA9IG5ldyBY
TUxIdHRwUmVxdWVzdDsKKyAgICAgICAgeGhyLm9wZW4oIkdFVCIsICJodHRwOi8vbG9jYWxob3N0
OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLWJhc2ljLWdldC1m
YWlsLW5vbi1zaW1wbGUuY2dpIiwgZmFsc2UpOworCXhoci5zZW5kKCk7CisJbG9nKCJQQVNTOiBD
cm9zcy1kb21haW4gYWNjZXNzIGFsbG93ZWQgZm9yIHNpbXBsZSBnZXQuIik7CisgICAgfSBjYXRj
aChlKSB7CisgICAgICAgIGxvZygiRkFJTDogRXhjZXB0aW9uIHRocm93bi4gQ3Jvc3MtZG9tYWlu
IGFjY2VzcyBpcyBub3QgYWxsb3dlZCBpbiAnb3BlbicuIFsiICsgZS5tZXNzYWdlICsgIl0uIik7
CisgICAgfQorCisKKyAgICAvLyBUaGlzIGlzIGdvaW5nIHRvIGZhaWwgYmVjYXVzZSB0aGUgY2dp
IHNjcmlwdCBpcyBub3QgcHJlcGFyZWQgZm9yIGFuIE9QVElPTlMgcmVxdWVzdC4gCisgICAgdHJ5
IHsKKwl2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0OworCXhoci5vcGVuKCJHRVQiLCAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9hY2Nlc3MtY29udHJv
bC1iYXNpYy1nZXQtZmFpbC1ub24tc2ltcGxlLmNnaSIsIGZhbHNlKTsKKwkvLyBOb24td2hpdGVs
aXN0ZWQgbWV0aG9kCisJeGhyLnNldFJlcXVlc3RIZWFkZXIoIngtd2Via2l0IiwgImZvb2JhciIp
OworICAgICAgICB4aHIuc2VuZCgpOworICAgIH0gY2F0Y2goZSkgeworICAgICAgICBsb2coIlBB
U1M6IEV4Y2VwdGlvbiB0aHJvd24uIENyb3NzLWRvbWFpbiBhY2Nlc3Mgd2FzIGRlbmllZCBpbiAn
c2VuZCcuIFsiICsgZS5tZXNzYWdlICsgIl0uIik7CisgICAgfQorICAgIGRvbmUoKTsKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9z
aGFyZWQtd29ya2VyLWFjY2Vzcy1jb250cm9sLWJhc2ljLWdldC1mYWlsLW5vbi1zaW1wbGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC93b3JrZXJz
L3NoYXJlZC13b3JrZXItYWNjZXNzLWNvbnRyb2wtYmFzaWMtZ2V0LWZhaWwtbm9uLXNpbXBsZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc2YzMxYmQyZTRmYzA4MjNmZGM4ZGJhYzY3ZmI4ZmY4
YjhiZjU5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLWFjY2Vzcy1jb250cm9sLWJhc2ljLWdldC1m
YWlsLW5vbi1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtYmFzaWMtZ2V0LWZh
aWwtbm9uLXNpbXBsZS5jZ2kuIE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFs
bG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgorR0VUIHNob3VsZCBub3QgdHJp
Z2dlciBhIHByZWZsaWdodCByZXF1ZXN0IGZyb20gYSBzaGFyZWQgd29ya2VyIHVubGVzcyBpdCBo
YXMgbm9uLXNpbXBsZSBoZWFkZXJzLgorCitQQVNTOiBDcm9zcy1kb21haW4gYWNjZXNzIGFsbG93
ZWQgZm9yIHNpbXBsZSBnZXQuCitQQVNTOiBFeGNlcHRpb24gdGhyb3duLiBDcm9zcy1kb21haW4g
YWNjZXNzIHdhcyBkZW5pZWQgaW4gJ3NlbmQnLiBbTkVUV09SS19FUlI6IFhNTEh0dHBSZXF1ZXN0
IEV4Y2VwdGlvbiAxMDFdLgorRE9ORQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItYWNjZXNzLWNvbnRyb2wtYmFz
aWMtZ2V0LWZhaWwtbm9uLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItYWNjZXNzLWNvbnRyb2wtYmFzaWMtZ2V0
LWZhaWwtbm9uLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5NWE0ODdhZjYxYzkyYTc0ZWZkZjJi
MzZlODFkMzViOGNkN2JhZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1hY2Nlc3MtY29udHJvbC1i
YXNpYy1nZXQtZmFpbC1ub24tc2ltcGxlLmh0bWwKQEAgLTAsMCArMSw3IEBACis8Ym9keT4KKzxw
PkdFVCBzaG91bGQgbm90IHRyaWdnZXIgYSBwcmVmbGlnaHQgcmVxdWVzdCBmcm9tIGEgc2hhcmVk
IHdvcmtlciB1bmxlc3MgaXQgaGFzIG5vbi1zaW1wbGUgaGVhZGVycy48L3A+Cis8ZGl2IGlkPXJl
c3VsdD48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1jcmVhdGUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9hY2Nlc3MtY29udHJvbC1iYXNp
Yy1nZXQtZmFpbC1ub24tc2ltcGxlLXRlc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IDc5ZjU5YWNiYjEzMDU5MDYwZTBlYmM2MDdiODg1YzQ4MDRmNjgz
ZjEuLmVlODA1YjEwYjA2ZjQ1NTU5ODMyZGUzNzE2OTk1ODc1YWZjYzRkZjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC05MTYsNiArOTE2LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGxv
YWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKICAgICBsb2FkZXIvVGV4dFJlc291cmNlRGVjb2Rl
ci5jcHAKICAgICBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAKKyAgICBsb2FkZXIvVXNlckFn
ZW50SGVhZGVyRGF0YS5jcHAKIAogICAgIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
LmNwcAogICAgIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggN2M0NTNhZDQ4NzNiZGMzODZlZTA3YzliMGVkNzEyMzdjNTNkZDQ4NS4uNTMyNjU3
YTk4ZmRjY2YyM2I4Yjk1OThlZDg4NWNhODJjMjVlNzg2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDUyIEBACisyMDExLTA4LTE5ICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSRUdSRVNTSU9OIChyODkwODYpOiBBbGwgd29ya2VyIHhociByZXF1ZXN0cyB0cmln
Z2VyIHByZWZsaWdodCByZXF1ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY2MzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm93IHdlIGJhc2ljYWxseSB3aGl0ZWxpc3QgYWxsIGhlYWRlcnMgaW4g
WE1MSHR0cFJlcXVlc3Q6Om1fZm9yYmlkZGVuUmVxdWVzdEhlYWRlcnMsCisgICAgICAgIHNpbmNl
IHRoZXkgY2FuIG9ubHkgYmUgc2V0IGJ5IHRoZSBlbmdpbmUsIG5vdCBieSBKUyBjb2RlIChhcyBz
dWdnZXN0ZWQgaW4gdGhlIGJ1ZykuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3Qvd29ya2Vycy9hY2Nlc3MtY29udHJvbC1iYXNpYy1nZXQtZmFpbC1ub24tc2ltcGxl
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9z
aGFyZWQtd29ya2VyLWFjY2Vzcy1jb250cm9sLWJhc2ljLWdldC1mYWlsLW5vbi1zaW1wbGUuaHRt
bAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZGVkIGluIG5ldyBmaWxlcy4KKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUucHJvOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAgKiBsb2FkZXIvQ3Jvc3NPcmlnaW5B
Y2Nlc3NDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzT25BY2Nlc3NDb250cm9sU2lt
cGxlUmVxdWVzdEhlYWRlcldoaXRlbGlzdCk6IFRyaW1tZWQgbGlzdCBkb3duIHRvIHdoYXQgaXMg
YWxsb3dlZCBieSB0aGUgc3BlYy4KKyAgICAgICAgKFdlYkNvcmU6OmlzU2ltcGxlQ3Jvc3NPcmln
aW5BY2Nlc3NSZXF1ZXN0KTogQ2hhbmdlZCBpdGVyYXRvciB0byBvbmUgdGhhdCBvbmx5IHJldHVy
bnMgdGhlIG5vbiB1c2VyIGFnZW50IGhlYWRlcnMKKyAgICAgICAgd2hpY2ggd2UgaGFkIHByZXZp
b3VzbHkgYmVlbiBkb2luZyBieSB3aGl0ZWxpc3RpbmcgdGhlbSBieSBoYW5kIGluIGlzT25BY2Nl
c3NDb250cm9sU2ltcGxlUmVxdWVzdEhlYWRlcldoaXRlbGlzdC4KKyAgICAgICAgKiBsb2FkZXIv
Q3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
cm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlSXRlbTo6Y3JlYXRlKTogVHlwaWNhbCBjcmVh
dGUgbWV0aG9kIHBsdXMgdGhlIGFkZGl0aW9uIG9mIGFuIGluaXQgY2FsbGVkIGV4cGxhaW5lZCB0
aGVyZS4KKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJ
dGVtOjphbGxvd3NDcm9zc09yaWdpbkhlYWRlcnMpOiBPbmx5IGxvb2sgYXQgbm9uLXVzZXIgYWdl
bnQgaGVhZGVycy4KKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0
Q2FjaGU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUpOiBFbnN1cmUgdGhhdCB0aGUg
VXNlckFnZW50SGVhZGVyRGF0YSBpcyBpbml0aWFsaXplZC4KKyAgICAgICAgKiBsb2FkZXIvQ3Jv
c3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NP
cmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW06OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0
Q2FjaGVJdGVtKTogSGlkIHRoZSBjb25zdHJ1Y3RvciBmb2xsb3cgc3RhbmRhcmQgV2ViS3RpIHN0
eWxlLgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9u
c2UpOgorICAgICAgICAqIGxvYWRlci9Vc2VyQWdlbnRIZWFkZXJEYXRhLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpVc2VyQWdlbnRIZWFkZXJEYXRhOjpVc2VyQWdlbnRIZWFkZXJEYXRh
KTogQmFzaWNhbGx5IHRoZSBuZXcgdmVyc2lvbiBvZiBYTUxIdHRwUmVxdWVzdFN0YXRpY0RhdGEu
CisgICAgICAgIChXZWJDb3JlOjpVc2VyQWdlbnRIZWFkZXJEYXRhOjppbml0aWFsaXplKTogQW5h
bG9nb3VzIHRvIGluaXRpYWxpemVYTUxIdHRwUmVxdWVzdFN0YXRpY0RhdGEuCisgICAgICAgIChX
ZWJDb3JlOjpVc2VyQWdlbnRIZWFkZXJEYXRhOjppc1VzZXJBZ2VudEhlYWRlcik6IEFuYWxvZ291
cyB0byAhWE1MSHR0cFJlcXVlc3Q6OmlzU2FmZVJlcXVlc3RIZWFkZXIKKyAgICAgICAgKFdlYkNv
cmU6OlVzZXJBZ2VudEhlYWRlckRhdGE6OmJlZ2luTm9uVXNlckFnZW50SGVhZGVycyk6IEEgYmVn
aW4oKSBpdGVyYXRvciBmb3IgdGhlIG5vbiB1c2VyIGFnZW50IGhlYWRlcnMgaW4gYSBIVFRQSGVh
ZGVyTWFwLgorICAgICAgICAoV2ViQ29yZTo6VXNlckFnZW50SGVhZGVyRGF0YTo6ZW5kTm9uVXNl
ckFnZW50SGVhZGVycyk6IFRoZSBlbmQoKSBpbnRlcmF0b3IuCisgICAgICAgIChXZWJDb3JlOjpO
b25Vc2VyQWdlbnRIZWFkZXJDb25zdEl0ZXJhdG9yOjpvcGVyYXRvcisrKToKKyAgICAgICAgKFdl
YkNvcmU6Ok5vblVzZXJBZ2VudEhlYWRlckNvbnN0SXRlcmF0b3I6Om1vdmVDdXJyZW50VG9Ob25V
c2VyQWdlbnRIZWFkZXIpOgorICAgICAgICAqIGxvYWRlci9Vc2VyQWdlbnRIZWFkZXJEYXRhLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9uVXNlckFnZW50SGVhZGVyQ29uc3RJdGVyYXRv
cjo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vblVzZXJBZ2VudEhlYWRlckNvbnN0SXRlcmF0
b3I6Om9wZXJhdG9yKik6CisgICAgICAgIChXZWJDb3JlOjpOb25Vc2VyQWdlbnRIZWFkZXJDb25z
dEl0ZXJhdG9yOjpvcGVyYXRvci0+KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vblVzZXJBZ2VudEhl
YWRlckNvbnN0SXRlcmF0b3I6Ok5vblVzZXJBZ2VudEhlYWRlckNvbnN0SXRlcmF0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6b3BlcmF0b3IhPSk6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpYTUxIdHRwUmVxdWVzdCk6
IENvbnZlcnRlZCB0byB1c2UgVXNlckFnZW50SGVhZGVyRGF0YS4KKyAgICAgICAgKFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0Ojppc1NhZmVSZXF1ZXN0SGVhZGVyKTogRGl0dG8uCisKIDIwMTEtMDgt
MTkgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CiAKICAgICAgICAgW0NTU1Jl
Z2lvbnNdU3BlZWQgdXAgUmVuZGVyRmxvd1RocmVhZCByZXBhaW50IG9mIHJlZ2lvbnMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGNjNjMxN2VhNDhkMDYwOTNjOTBiYzhlMzI1NTA5
OTU5MzViM2I1YmMuLjZmYTZjZjA5MGFjM2I4MDJmNjZhM2RhYTUyZTQ0ZTA4MjE0NDMyZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjE4NCw2ICsyMTg0LDggQEAgd2ViY29y
ZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlckNs
aWVudFdyYXBwZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5oIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvVXNlckFnZW50SGVhZGVyRGF0YS5jcHAgXAorCVNvdXJjZS9XZWJD
b3JlL2xvYWRlci9Vc2VyQWdlbnRIZWFkZXJEYXRhLmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Xb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL1dv
cmtlclRocmVhZGFibGVMb2FkZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVs
ZW1lbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA2MzNlNjNhMjEyNTUxMWMzYWYyNzAzNDBh
MmE0MGYyM2Y0NmY3ZDMwLi41MjdjY2I5YzQyM2FhN2I5MzVlMzEwZmRjZGVkZjMyNDhhYmEwY2I5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yNzc5LDYgKzI3NzksOCBAQAogICAgICAgICAgICAgJ2xv
YWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL1RocmVhZGFi
bGVMb2FkZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL1RocmVhZGFibGVMb2FkZXJD
bGllbnRXcmFwcGVyLmgnLAorICAgICAgICAgICAgJ2xvYWRlci9Vc2VyQWdlbnRIZWFkZXJEYXRh
LmNwcCcsCisgICAgICAgICAgICAnbG9hZGVyL1VzZXJBZ2VudEhlYWRlckRhdGEuaCcsCiAgICAg
ICAgICAgICAnbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwJywKICAgICAgICAgICAg
ICdsb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5oJywKICAgICAgICAgICAgICdsb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBhOTRjMjUy
NGViNzk3MDA0ZWY2ODFjM2MyNDM4NDBhZTA4MzA0Y2E1Li4xMTRlMDAzNzE4Y2Q4ZjJjMjhmOGQw
MDc4N2NlYzNhNGQ0ZTYzNWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBy
bworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtODk4LDYgKzg5OCw3IEBAIFNP
VVJDRVMgKz0gXAogICAgIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAgXAogICAgIGxvYWRl
ci9UZXh0UmVzb3VyY2VEZWNvZGVyLmNwcCBcCiAgICAgbG9hZGVyL1RocmVhZGFibGVMb2FkZXIu
Y3BwIFwKKyAgICBsb2FkZXIvVXNlckFnZW50SGVhZGVyRGF0YS5jcHAgXAogICAgIG5vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uLmNwcCBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25D
ZW50ZXIuY3BwIFwKICAgICBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDcyYmZlMzhh
MmViNDVmZjAyY2Q4MjM0ZmFkZTBiMzQ3ZTk0NjgyZjQuLjQ0MmFiMzRhNTVkMjUwYzU4N2JhMzZm
ZmM1MzlmMDhkZjZiOTZiMjcgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCkBAIC0yNjMyMiw2ICsyNjMyMiwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4K
IAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJcVXNlckFnZW50SGVhZGVyRGF0
YS5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGxvYWRlclxVc2VyQWdlbnRIZWFkZXJEYXRhLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZp
bGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxXb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmNw
cCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjQ3NGQ1MWJmMWNjNjc0NTI1ZDUwYjE2OTcyZTNl
ZWY2Mjk1YTJiZC4uZDZmYWRjNGVlZDhkN2RkNGI5ODJkMTRlMTdkNDZkYzViMmE4YTJlNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTg2LDYgKzE4NiwxMCBAQAogCQkwOEZGMTAyMDEyOTUwRjVBMDBGMDAyNzYgLyogU1ZHUGF0
aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDhGRjEwMUYxMjk1MEY1OTAwRjAwMjc2IC8qIFNWR1BhdGhTZWdM
aXN0UHJvcGVydHlUZWFyT2ZmLmNwcCAqLzsgfTsKIAkJMEE0ODQ0OTkwQ0E0NENCMjAwQjdCRDQ4
IC8qIFNvZnRMaW5raW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwQTQ4NDQ5ODBDQTQ0Q0IyMDBCN0JENDggLyogU29mdExpbmtpbmcuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwQUZEQUMzRDEwRjU0
NDhDMDBFMUYzRDIgLyogUGx1Z2luVmlld0Jhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBBRkRBQzNDMTBGNTQ0OEMwMEUxRjNEMiAvKiBQbHVnaW5W
aWV3QmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTBCNTY3MDNGMTNGREJGRTAwMDUzNTU4RCAvKiBEb2N1bWVudFRocmVhZGFibGVMb2FkZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBC
NTY3MDNCMTNGREJGRTAwMDUzNTU4RCAvKiBEb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQu
aCAqLzsgfTsKKwkJMEI1NjcwNDAxM0ZEQkZFMDAwNTM1NThEIC8qIFRocmVhZGFibGVMb2FkZXJD
bGllbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwQjU2NzAzQzEzRkRCRkUwMDA1MzU1OEQgLyogVGhyZWFkYWJsZUxvYWRlckNsaWVudFdy
YXBwZXIuaCAqLzsgfTsKKwkJMEI1NjcwNDExM0ZEQkZFMDAwNTM1NThEIC8qIFVzZXJBZ2VudEhl
YWRlckRhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEI1NjcwM0QxM0ZEQkZFMDAwNTM1NThEIC8qIFVzZXJBZ2VudEhlYWRlckRhdGEuY3BwICov
OyB9OworCQkwQjU2NzA0MjEzRkRCRkUwMDA1MzU1OEQgLyogVXNlckFnZW50SGVhZGVyRGF0YS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEI1NjcwM0Ux
M0ZEQkZFMDAwNTM1NThEIC8qIFVzZXJBZ2VudEhlYWRlckRhdGEuaCAqLzsgfTsKIAkJMEI4QzU2
RDQwRjI4NjI3RjAwMDUwMkUxIC8qIEhUVFBIZWFkZXJNYXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEI4QzU2RDMwRjI4NjI3RjAwMDUwMkUxIC8q
IEhUVFBIZWFkZXJNYXAuY3BwICovOyB9OwogCQkwQjkwNTYxOTBGMjU3OEJFMDA5NUZGNkEgLyog
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBCOTA1NjE1MEYyNTc4QkUwMDk1RkY2QSAvKiBEb2N1bWVudFRo
cmVhZGFibGVMb2FkZXIuY3BwICovOyB9OwogCQkwQjkwNTYxQTBGMjU3OEJGMDA5NUZGNkEgLyog
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwQjkwNTYxNjBGMjU3OEJFMDA5NUZGNkEgLyogRG9jdW1lbnRUaHJl
YWRhYmxlTG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKQEAg
LTY2NTMsNiArNjY1NywxMCBAQAogCQkwOEZGMTAxRjEyOTUwRjU5MDBGMDAyNzYgLyogU1ZHUGF0
aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwQTQ4NDQ5ODBDQTQ0Q0IyMDBCN0JENDggLyogU29mdExpbmtpbmcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29mdExpbmtpbmcuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEFGREFDM0MxMEY1NDQ4QzAwRTFGM0QyIC8qIFBsdWdp
blZpZXdCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsdWdpblZpZXdC
YXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBCNTY3MDNCMTNGREJGRTAwMDUz
NTU4RCAvKiBEb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBCNTY3MDNDMTNGREJGRTAwMDUzNTU4RCAvKiBUaHJl
YWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkwQjU2NzAzRDEzRkRCRkUwMDA1MzU1OEQgLyogVXNlckFnZW50SGVhZGVyRGF0
YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyQWdlbnRIZWFk
ZXJEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEI1NjcwM0UxM0ZEQkZF
MDAwNTM1NThEIC8qIFVzZXJBZ2VudEhlYWRlckRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVXNlckFnZW50SGVhZGVyRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwQjhDNTZEMzBGMjg2MjdGMDAwNTAyRTEgLyogSFRUUEhlYWRlck1hcC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVFRQSGVhZGVyTWFwLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEI5MDU2MTUwRjI1NzhCRTAwOTVGRjZBIC8qIERv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwQjkwNTYxNjBGMjU3OEJFMDA5NUZGNkEgLyogRG9jdW1lbnRUaHJlYWRhYmxl
TG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvY3VtZW50VGhyZWFk
YWJsZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg5MTgsNiArMTg5
MjYsNyBAQAogCQkJCThBMTJFMzVDMTFGQTMzMjgwMDI1ODM2QSAvKiBEb2N1bWVudExvYWRUaW1p
bmcuaCAqLywKIAkJCQkwQjkwNTYxNTBGMjU3OEJFMDA5NUZGNkEgLyogRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyLmNwcCAqLywKIAkJCQkwQjkwNTYxNjBGMjU3OEJFMDA5NUZGNkEgLyogRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyLmggKi8sCisJCQkJMEI1NjcwM0IxM0ZEQkZFMDAwNTM1NThEIC8q
IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudC5oICovLAogCQkJCTk3Mzg4OTlFMTE2RUE5
REMwMEFERjMxMyAvKiBEb2N1bWVudFdyaXRlci5jcHAgKi8sCiAJCQkJOTczODg5OUYxMTZFQTlE
QzAwQURGMzEzIC8qIERvY3VtZW50V3JpdGVyLmggKi8sCiAJCQkJQjI1NTk5MEQwRDAwRDhCOTAw
QkI4MjVDIC8qIEVtcHR5Q2xpZW50cy5oICovLApAQCAtMTg5ODAsNiArMTg5ODksOSBAQAogCQkJ
CTBCOTA1NjFEMEYyNTdFOTMwMDk1RkY2QSAvKiBUaHJlYWRhYmxlTG9hZGVyLmNwcCAqLywKIAkJ
CQkwQjkwNTYxNzBGMjU3OEJFMDA5NUZGNkEgLyogVGhyZWFkYWJsZUxvYWRlci5oICovLAogCQkJ
CTBCOTA1NjE4MEYyNTc4QkUwMDk1RkY2QSAvKiBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmggKi8s
CisJCQkJMEI1NjcwM0MxM0ZEQkZFMDAwNTM1NThEIC8qIFRocmVhZGFibGVMb2FkZXJDbGllbnRX
cmFwcGVyLmggKi8sCisJCQkJMEI1NjcwM0QxM0ZEQkZFMDAwNTM1NThEIC8qIFVzZXJBZ2VudEhl
YWRlckRhdGEuY3BwICovLAorCQkJCTBCNTY3MDNFMTNGREJGRTAwMDUzNTU4RCAvKiBVc2VyQWdl
bnRIZWFkZXJEYXRhLmggKi8sCiAJCQkJMEI5MDU2RjYwRjI2ODVGMzAwOTVGRjZBIC8qIFdvcmtl
clRocmVhZGFibGVMb2FkZXIuY3BwICovLAogCQkJCTBCOTA1NkY3MEYyNjg1RjMwMDk1RkY2QSAv
KiBXb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmggKi8sCiAJCQkpOwpAQCAtMjMzOTgsNiArMjM0MTAs
OSBAQAogCQkJCUZEMjNBMTI2MTNGNUZBNTkwMEY2NzAwMSAvKiBKU01lZGlhRWxlbWVudEF1ZGlv
U291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREY5QUZENzIxM0ZDMzFEODAwMTVGRUI3
IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzNTAwRjMyMTNGREUzQkUwMDk5RUMyNCAvKiBOU1Njcm9sbGVySW1wRGV0YWlscy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEI1NjcwM0YxM0ZEQkZFMDAwNTM1NThEIC8qIERvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEI1NjcwNDAxM0ZEQkZF
MDAwNTM1NThEIC8qIFRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwQjU2NzA0MjEzRkRCRkUwMDA1MzU1OEQgLyogVXNlckFnZW50SGVhZGVyRGF0YS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC0yNjIwMiw2ICsyNjIxNyw3IEBACiAJCQkJRkQyM0ExMjUxM0Y1
RkE1OTAwRjY3MDAxIC8qIEpTTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBMTQxNEI1MTNBMEYwNTAwMDE5OTk2QyAvKiBXZWJLaXRGb250RmFtaWx5
TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJREY5QUZENzMxM0ZDMzFEODAwMTVGRUI3IC8q
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gaW4gU291cmNlcyAqLywKKwkJ
CQkwQjU2NzA0MTEzRkRCRkUwMDA1MzU1OEQgLyogVXNlckFnZW50SGVhZGVyRGF0YS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdp
bkFjY2Vzc0NvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNj
ZXNzQ29udHJvbC5jcHAKaW5kZXggOGQyOWIzNmU3NzI1MjI5MTViNzA3NWU2YTA2ZmFlYmNjOTI0
ZmFiOS4uNThiNjY2Y2IwMzFjMTllNzVhYWJlMTIzMGNlYmZkM2MxYzgwMTlhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAKQEAg
LTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw2ICsz
MSw4IEBACiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3Bv
bnNlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJVc2VyQWdlbnRI
ZWFkZXJEYXRhLmgiCisKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9U
aHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KQEAgLTQ1LDkg
KzQ4LDcgQEAgYm9vbCBpc09uQWNjZXNzQ29udHJvbFNpbXBsZVJlcXVlc3RIZWFkZXJXaGl0ZWxp
c3QoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHIKIHsKICAgICBpZiAoZXF1YWxJZ25vcmlu
Z0Nhc2UobmFtZSwgImFjY2VwdCIpCiAgICAgICAgIHx8IGVxdWFsSWdub3JpbmdDYXNlKG5hbWUs
ICJhY2NlcHQtbGFuZ3VhZ2UiKQotICAgICAgICB8fCBlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAi
Y29udGVudC1sYW5ndWFnZSIpCi0gICAgICAgIHx8IGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJv
cmlnaW4iKQotICAgICAgICB8fCBlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAicmVmZXJlciIpKQor
ICAgICAgICB8fCBlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiY29udGVudC1sYW5ndWFnZSIpKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFByZWZsaWdodCBpcyByZXF1aXJlZCBmb3Ig
TUlNRSB0eXBlcyB0aGF0IGNhbiBub3QgYmUgc2VudCB2aWEgZm9ybSBzdWJtaXNzaW9uLgpAQCAt
NjYsOCArNjcsOSBAQCBib29sIGlzU2ltcGxlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0KGNvbnN0
IFN0cmluZyYgbWV0aG9kLCBjb25zdCBIVFRQSGVhZGVyTWFwJgogICAgIGlmICghaXNPbkFjY2Vz
c0NvbnRyb2xTaW1wbGVSZXF1ZXN0TWV0aG9kV2hpdGVsaXN0KG1ldGhvZCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGhl
YWRlck1hcC5lbmQoKTsKLSAgICBmb3IgKEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gaGVhZGVyTWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgIFVzZXJBZ2VudEhl
YWRlckRhdGE6OmluaXRpYWxpemUoKTsKKyAgICBOb25Vc2VyQWdlbnRIZWFkZXJDb25zdEl0ZXJh
dG9yIGVuZCA9IFVzZXJBZ2VudEhlYWRlckRhdGE6OmVuZE5vblVzZXJBZ2VudEhlYWRlcnMoaGVh
ZGVyTWFwKTsKKyAgICBmb3IgKE5vblVzZXJBZ2VudEhlYWRlckNvbnN0SXRlcmF0b3IgaXQgPSBV
c2VyQWdlbnRIZWFkZXJEYXRhOjpiZWdpbk5vblVzZXJBZ2VudEhlYWRlcnMoaGVhZGVyTWFwKTsg
aXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIGlmICghaXNPbkFjY2Vzc0NvbnRyb2xTaW1wbGVS
ZXF1ZXN0SGVhZGVyV2hpdGVsaXN0KGl0LT5maXJzdCwgaXQtPnNlY29uZCkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwCmluZGV4IDcxMWFkZjRhMjc2
YzFhY2ExNDcwYzA4YWZjMjVjNzhkYWMwMmUyOWIuLmNiMzc0YjNlZDhlZDRlZTdkNWFmMTIyZDMy
MmY2NTk0MjAyMzBkYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09y
aWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Q3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5jcHAKQEAgLTI5LDYgKzI5LDggQEAKIAog
I2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIlJlc291cmNl
UmVzcG9uc2UuaCIKKyNpbmNsdWRlICJVc2VyQWdlbnRIZWFkZXJEYXRhLmgiCisKICNpbmNsdWRl
IDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1
ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAgLTg5LDYgKzkxLDE0IEBAIHN0YXRpYyBib29sIHBh
cnNlQWNjZXNzQ29udHJvbEFsbG93TGlzdChjb25zdCBTdHJpbmcmIHN0cmluZywgSGFzaFNldDxT
dHJpbmcsIEhhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK1Bhc3NPd25QdHI8Q3Jvc3NPcmlnaW5Q
cmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW0+IENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJ
dGVtOjpjcmVhdGUoYm9vbCBjcmVkZW50aWFscykKK3sKKyAgICAvLyBFbnN1cmUgdGhhdCBVc2Vy
QWdlbnRIZWFkZXJEYXRhOjppbml0aWFsaXplKCkgaGFzIGJlZW4gY2FsbGVkLiBDYWxsaW5nIENy
b3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OnNoYXJlZCBhdm9pZHMKKyAgICAvLyB0YWtp
bmcgYSBsb2NrIGluIHRoZSBtYWpvcml0eSBvZiBjYXNlcy4KKyAgICBDcm9zc09yaWdpblByZWZs
aWdodFJlc3VsdENhY2hlOjpzaGFyZWQoKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IENyb3Nz
T3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtKGNyZWRlbnRpYWxzKSk7Cit9CisKIGJvb2wg
Q3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW06OnBhcnNlKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBTdHJpbmcmIGVycm9yRGVzY3JpcHRpb24pCiB7CiAgICAgbV9t
ZXRob2RzLmNsZWFyKCk7CkBAIC0xMjUsOCArMTM1LDggQEAgYm9vbCBDcm9zc09yaWdpblByZWZs
aWdodFJlc3VsdENhY2hlSXRlbTo6YWxsb3dzQ3Jvc3NPcmlnaW5NZXRob2QoY29uc3QgU3RyaW5n
JgogCiBib29sIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtOjphbGxvd3NDcm9z
c09yaWdpbkhlYWRlcnMoY29uc3QgSFRUUEhlYWRlck1hcCYgcmVxdWVzdEhlYWRlcnMsIFN0cmlu
ZyYgZXJyb3JEZXNjcmlwdGlvbikgY29uc3QKIHsKLSAgICBIVFRQSGVhZGVyTWFwOjpjb25zdF9p
dGVyYXRvciBlbmQgPSByZXF1ZXN0SGVhZGVycy5lbmQoKTsKLSAgICBmb3IgKEhUVFBIZWFkZXJN
YXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gcmVxdWVzdEhlYWRlcnMuYmVnaW4oKTsgaXQgIT0gZW5k
OyArK2l0KSB7CisgICAgTm9uVXNlckFnZW50SGVhZGVyQ29uc3RJdGVyYXRvciBlbmQgPSBVc2Vy
QWdlbnRIZWFkZXJEYXRhOjplbmROb25Vc2VyQWdlbnRIZWFkZXJzKHJlcXVlc3RIZWFkZXJzKTsK
KyAgICBmb3IgKE5vblVzZXJBZ2VudEhlYWRlckNvbnN0SXRlcmF0b3IgaXQgPSBVc2VyQWdlbnRI
ZWFkZXJEYXRhOjpiZWdpbk5vblVzZXJBZ2VudEhlYWRlcnMocmVxdWVzdEhlYWRlcnMpOyBpdCAh
PSBlbmQ7ICsraXQpIHsKICAgICAgICAgaWYgKCFtX2hlYWRlcnMuY29udGFpbnMoaXQtPmZpcnN0
KSAmJiAhaXNPbkFjY2Vzc0NvbnRyb2xTaW1wbGVSZXF1ZXN0SGVhZGVyV2hpdGVsaXN0KGl0LT5m
aXJzdCwgaXQtPnNlY29uZCkpIHsKICAgICAgICAgICAgIGVycm9yRGVzY3JpcHRpb24gPSAiUmVx
dWVzdCBoZWFkZXIgZmllbGQgIiArIGl0LT5maXJzdC5zdHJpbmcoKSArICIgaXMgbm90IGFsbG93
ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycy4iOwogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtMTg5LDQgKzE5OSw5IEBAIHZvaWQgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1
bHRDYWNoZTo6ZW1wdHkoKQogICAgIG1fcHJlZmxpZ2h0SGFzaE1hcC5jbGVhcigpOwogfQogCitD
cm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlOjpDcm9zc09yaWdpblByZWZsaWdodFJlc3Vs
dENhY2hlKCkKK3sKKyAgICBVc2VyQWdlbnRIZWFkZXJEYXRhOjppbml0aWFsaXplKCk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oCmluZGV4IGRkZDUwNzA5M2VjZjJj
YjU0MzY5ZmRmYmQyMTFmYWVkYjkzMjAzNDQuLjY5NzBmNzBjOTdkMjdhZTE4MDA1NTljNzAxM2U2
ZDBjYjY2YTEwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdp
blByZWZsaWdodFJlc3VsdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3Nz
T3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQxLDExICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBjbGFzcyBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlSXRlbSB7CiAgICAg
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJ
dGVtKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgotICAgICAgICBDcm9z
c09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlSXRlbShib29sIGNyZWRlbnRpYWxzKQotICAgICAg
ICAgICAgOiBtX2Fic29sdXRlRXhwaXJ5VGltZSgwKQotICAgICAgICAgICAgLCBtX2NyZWRlbnRp
YWxzKGNyZWRlbnRpYWxzKQotICAgICAgICB7Ci0gICAgICAgIH0KKyAgICAgICAgc3RhdGljIFBh
c3NPd25QdHI8Q3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW0+IGNyZWF0ZShib29s
IGNyZWRlbnRpYWxzKTsKIAogICAgICAgICBib29sIHBhcnNlKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmLCBTdHJpbmcmIGVycm9yRGVzY3JpcHRpb24pOwogICAgICAgICBib29sIGFsbG93c0Nyb3Nz
T3JpZ2luTWV0aG9kKGNvbnN0IFN0cmluZyYsIFN0cmluZyYgZXJyb3JEZXNjcmlwdGlvbikgY29u
c3Q7CkBAIC01NSw2ICs1MiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHJpdmF0ZToK
ICAgICAgICAgdHlwZWRlZiBIYXNoU2V0PFN0cmluZywgQ2FzZUZvbGRpbmdIYXNoPiBIZWFkZXJz
U2V0OwogCisgICAgICAgIGV4cGxpY2l0IENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJ
dGVtKGJvb2wgY3JlZGVudGlhbHMpCisgICAgICAgICAgICA6IG1fYWJzb2x1dGVFeHBpcnlUaW1l
KDApCisgICAgICAgICAgICAsIG1fY3JlZGVudGlhbHMoY3JlZGVudGlhbHMpCisgICAgICAgIHsK
KyAgICAgICAgfQorCiAgICAgICAgIC8vIEZJWE1FOiBBIGJldHRlciBzb2x1dGlvbiB0byBob2xk
aW5nIG9udG8gdGhlIGFic29sdXRlIGV4cGlyYXRpb24gdGltZSBtaWdodCBiZQogICAgICAgICAv
LyB0byBzdGFydCBhIHRpbWVyIGZvciB0aGUgZXhwaXJhdGlvbiBkZWx0YSB0aGF0IHJlbW92ZXMg
dGhpcyBmcm9tIHRoZSBjYWNoZSB3aGVuCiAgICAgICAgIC8vIGl0IGZpcmVzLgpAQCAtNzUsNyAr
NzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZW1wdHkoKTsKIAogICAg
IHByaXZhdGU6Ci0gICAgICAgIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUoKSB7IH0K
KyAgICAgICAgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZSgpOwogCiAgICAgICAgIHR5
cGVkZWYgSGFzaE1hcDxzdGQ6OnBhaXI8U3RyaW5nLCBLVVJMPiwgQ3Jvc3NPcmlnaW5QcmVmbGln
aHRSZXN1bHRDYWNoZUl0ZW0qPiBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdEhhc2hNYXA7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5j
cHAKaW5kZXggZjg4YTU2YzExNDdhNmRlNWE1YzQ1ZWMwZTMzYjg5YTk0ZDU4N2ZjZC4uNjA3OWU3
OGM2YjRmOTY1NjAwN2RmNDdhYTRiMzg3NmMxYjhlMzVmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTIwMiw3ICsyMDIs
NyBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29ucwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAKLSAgICAgICAgT3duUHRyPENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVt
PiBwcmVmbGlnaHRSZXN1bHQgPSBhZG9wdFB0cihuZXcgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1
bHRDYWNoZUl0ZW0obV9vcHRpb25zLmFsbG93Q3JlZGVudGlhbHMpKTsKKyAgICAgICAgT3duUHRy
PENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtPiBwcmVmbGlnaHRSZXN1bHQgPSBD
cm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlSXRlbTo6Y3JlYXRlKG1fb3B0aW9ucy5hbGxv
d0NyZWRlbnRpYWxzKTsKICAgICAgICAgaWYgKCFwcmVmbGlnaHRSZXN1bHQtPnBhcnNlKHJlc3Bv
bnNlLCBhY2Nlc3NDb250cm9sRXJyb3JEZXNjcmlwdGlvbikKICAgICAgICAgICAgIHx8ICFwcmVm
bGlnaHRSZXN1bHQtPmFsbG93c0Nyb3NzT3JpZ2luTWV0aG9kKG1fYWN0dWFsUmVxdWVzdC0+aHR0
cE1ldGhvZCgpLCBhY2Nlc3NDb250cm9sRXJyb3JEZXNjcmlwdGlvbikKICAgICAgICAgICAgIHx8
ICFwcmVmbGlnaHRSZXN1bHQtPmFsbG93c0Nyb3NzT3JpZ2luSGVhZGVycyhtX2FjdHVhbFJlcXVl
c3QtPmh0dHBIZWFkZXJGaWVsZHMoKSwgYWNjZXNzQ29udHJvbEVycm9yRGVzY3JpcHRpb24pKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVXNlckFnZW50SGVhZGVyRGF0YS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVXNlckFnZW50SGVhZGVyRGF0YS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uN2I5NjY1ZmQ0NDVjYzYwMDAzODljYzVhYzdjZjVjNjEzMDEyYmI0NQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Vc2VyQWdlbnRIZWFkZXJEYXRhLmNwcApA
QCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiVXNlckFnZW50SGVhZGVyRGF0YS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Nv
bnN0IFVzZXJBZ2VudEhlYWRlckRhdGEqIFVzZXJBZ2VudEhlYWRlckRhdGE6Om1fc2luZ2xldG9u
ID0gMDsKKworVXNlckFnZW50SGVhZGVyRGF0YTo6VXNlckFnZW50SGVhZGVyRGF0YSgpCisgICAg
OiBtX3Byb3h5SGVhZGVyUHJlZml4KCJwcm94eS0iKQorICAgICwgbV9zZWNIZWFkZXJQcmVmaXgo
InNlYy0iKQoreworICAgIG1fdXNlckFnZW50SGVhZGVycy5hZGQoImFjY2VwdC1jaGFyc2V0Iik7
CisgICAgbV91c2VyQWdlbnRIZWFkZXJzLmFkZCgiYWNjZXB0LWVuY29kaW5nIik7CisgICAgbV91
c2VyQWdlbnRIZWFkZXJzLmFkZCgiYWNjZXNzLWNvbnRyb2wtcmVxdWVzdC1oZWFkZXJzIik7Cisg
ICAgbV91c2VyQWdlbnRIZWFkZXJzLmFkZCgiYWNjZXNzLWNvbnRyb2wtcmVxdWVzdC1tZXRob2Qi
KTsKKyAgICBtX3VzZXJBZ2VudEhlYWRlcnMuYWRkKCJjb25uZWN0aW9uIik7CisgICAgbV91c2Vy
QWdlbnRIZWFkZXJzLmFkZCgiY29udGVudC1sZW5ndGgiKTsKKyAgICBtX3VzZXJBZ2VudEhlYWRl
cnMuYWRkKCJjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nIik7CisgICAgbV91c2VyQWdlbnRIZWFk
ZXJzLmFkZCgiY29va2llIik7CisgICAgbV91c2VyQWdlbnRIZWFkZXJzLmFkZCgiY29va2llMiIp
OworICAgIG1fdXNlckFnZW50SGVhZGVycy5hZGQoImRhdGUiKTsKKyAgICBtX3VzZXJBZ2VudEhl
YWRlcnMuYWRkKCJleHBlY3QiKTsKKyAgICBtX3VzZXJBZ2VudEhlYWRlcnMuYWRkKCJob3N0Iik7
CisgICAgbV91c2VyQWdlbnRIZWFkZXJzLmFkZCgia2VlcC1hbGl2ZSIpOworICAgIG1fdXNlckFn
ZW50SGVhZGVycy5hZGQoIm9yaWdpbiIpOworICAgIG1fdXNlckFnZW50SGVhZGVycy5hZGQoInJl
ZmVyZXIiKTsKKyAgICBtX3VzZXJBZ2VudEhlYWRlcnMuYWRkKCJ0ZSIpOworICAgIG1fdXNlckFn
ZW50SGVhZGVycy5hZGQoInRyYWlsZXIiKTsKKyAgICBtX3VzZXJBZ2VudEhlYWRlcnMuYWRkKCJ0
cmFuc2Zlci1lbmNvZGluZyIpOworICAgIG1fdXNlckFnZW50SGVhZGVycy5hZGQoInVwZ3JhZGUi
KTsKKyAgICBtX3VzZXJBZ2VudEhlYWRlcnMuYWRkKCJ1c2VyLWFnZW50Iik7CisgICAgbV91c2Vy
QWdlbnRIZWFkZXJzLmFkZCgidmlhIik7CisgICAgbV9zaW5nbGV0b24gPSB0aGlzOworfQorCit2
b2lkIFVzZXJBZ2VudEhlYWRlckRhdGE6OmluaXRpYWxpemUoKQoreworICAgIEF0b21pY2FsbHlJ
bml0aWFsaXplZFN0YXRpYyhjb25zdCBVc2VyQWdlbnRIZWFkZXJEYXRhKiwgZHVtbXkgPSBuZXcg
VXNlckFnZW50SGVhZGVyRGF0YSk7CisgICAgLy8gSnVzdCB0byBhdm9pZCBhbiB1bnVzZWQgdmFy
aWFibGUgd2FybmluZy4KKyAgICBBU1NFUlRfVU5VU0VEKGR1bW15LCBkdW1teSk7Cit9CisKK2Jv
b2wgVXNlckFnZW50SGVhZGVyRGF0YTo6aXNVc2VyQWdlbnRIZWFkZXIoY29uc3QgU3RyaW5nJiBu
YW1lKQoreworICAgIHJldHVybiBtX3NpbmdsZXRvbi0+bV91c2VyQWdlbnRIZWFkZXJzLmNvbnRh
aW5zKG5hbWUpIHx8IG5hbWUuc3RhcnRzV2l0aChtX3NpbmdsZXRvbi0+bV9wcm94eUhlYWRlclBy
ZWZpeCwgZmFsc2UpCisgICAgICAgIHx8IG5hbWUuc3RhcnRzV2l0aChtX3NpbmdsZXRvbi0+bV9z
ZWNIZWFkZXJQcmVmaXgsIGZhbHNlKTsKK30KKworTm9uVXNlckFnZW50SGVhZGVyQ29uc3RJdGVy
YXRvciBVc2VyQWdlbnRIZWFkZXJEYXRhOjpiZWdpbk5vblVzZXJBZ2VudEhlYWRlcnMoY29uc3Qg
SFRUUEhlYWRlck1hcCYgaGVhZGVyTWFwKQoreworICAgIHJldHVybiBOb25Vc2VyQWdlbnRIZWFk
ZXJDb25zdEl0ZXJhdG9yKGhlYWRlck1hcC5iZWdpbigpLCBoZWFkZXJNYXAuZW5kKCkpOworfQor
CitOb25Vc2VyQWdlbnRIZWFkZXJDb25zdEl0ZXJhdG9yIFVzZXJBZ2VudEhlYWRlckRhdGE6OmVu
ZE5vblVzZXJBZ2VudEhlYWRlcnMoY29uc3QgSFRUUEhlYWRlck1hcCYgaGVhZGVyTWFwKQorewor
ICAgIHJldHVybiBOb25Vc2VyQWdlbnRIZWFkZXJDb25zdEl0ZXJhdG9yKGhlYWRlck1hcC5lbmQo
KSwgaGVhZGVyTWFwLmVuZCgpKTsKK30KKworTm9uVXNlckFnZW50SGVhZGVyQ29uc3RJdGVyYXRv
ciYgTm9uVXNlckFnZW50SGVhZGVyQ29uc3RJdGVyYXRvcjo6b3BlcmF0b3IrKygpCit7CisgICAg
KyttX2N1cnJlbnQ7CisgICAgbW92ZUN1cnJlbnRUb05vblVzZXJBZ2VudEhlYWRlcigpOworICAg
IHJldHVybiAqdGhpczsKK30KKwordm9pZCBOb25Vc2VyQWdlbnRIZWFkZXJDb25zdEl0ZXJhdG9y
Ojptb3ZlQ3VycmVudFRvTm9uVXNlckFnZW50SGVhZGVyKCkKK3sKKyAgICB3aGlsZSAobV9jdXJy
ZW50ICE9IG1fZW5kICYmIFVzZXJBZ2VudEhlYWRlckRhdGE6OmlzVXNlckFnZW50SGVhZGVyKG1f
Y3VycmVudC0+Zmlyc3QpKQorICAgICAgICArK21fY3VycmVudDsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1VzZXJBZ2VudEhl
YWRlckRhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Vc2VyQWdlbnRIZWFkZXJEYXRhLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzhlNTU5Yjg1YTZlMTAwNzBjOTJiNGMwMzFmMTEwZTBhNmY0NTA3ZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Vc2VyQWdlbnRIZWFkZXJEYXRh
LmgKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBVc2VyQWdlbnRIZWFk
ZXJEYXRhX2gKKyNkZWZpbmUgVXNlckFnZW50SGVhZGVyRGF0YV9oCisKKyNpbmNsdWRlICJIVFRQ
SGVhZGVyTWFwLmgiCisKKyNpbmNsdWRlIDx3dGYvRmFzdEFsbG9jQmFzZS5oPgorI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworc3RydWN0IE5vblVzZXJBZ2VudEhlYWRlckNvbnN0SXRlcmF0b3I7
CisKK2NsYXNzIFVzZXJBZ2VudEhlYWRlckRhdGEgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KFVzZXJBZ2VudEhlYWRlckRhdGEpOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIC8vIFBlcmZvcm1zIHRocmVhZHNhZmUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGRh
dGEgc3RydWN0dXJlLiBTaG91bGQgYmUgY2FsbGVkIGJlZm9yZSBhbnl0aGluZyBlbHNlLgorICAg
IHN0YXRpYyB2b2lkIGluaXRpYWxpemUoKTsKKworICAgIHN0YXRpYyBib29sIGlzVXNlckFnZW50
SGVhZGVyKGNvbnN0IFN0cmluZyYgbmFtZSk7CisKKyAgICBzdGF0aWMgTm9uVXNlckFnZW50SGVh
ZGVyQ29uc3RJdGVyYXRvciBiZWdpbk5vblVzZXJBZ2VudEhlYWRlcnMoY29uc3QgSFRUUEhlYWRl
ck1hcCYpOworICAgIHN0YXRpYyBOb25Vc2VyQWdlbnRIZWFkZXJDb25zdEl0ZXJhdG9yIGVuZE5v
blVzZXJBZ2VudEhlYWRlcnMoY29uc3QgSFRUUEhlYWRlck1hcCYpOworCitwcml2YXRlOgorICAg
IFVzZXJBZ2VudEhlYWRlckRhdGEoKTsKKworICAgIFN0cmluZyBtX3Byb3h5SGVhZGVyUHJlZml4
OworICAgIFN0cmluZyBtX3NlY0hlYWRlclByZWZpeDsKKyAgICBIYXNoU2V0PFN0cmluZywgQ2Fz
ZUZvbGRpbmdIYXNoPiBtX3VzZXJBZ2VudEhlYWRlcnM7CisKKyAgICBzdGF0aWMgY29uc3QgVXNl
ckFnZW50SGVhZGVyRGF0YSogbV9zaW5nbGV0b247Cit9OworCitjbGFzcyBOb25Vc2VyQWdlbnRI
ZWFkZXJDb25zdEl0ZXJhdG9yIHsKK3B1YmxpYzoKKyAgICBjb25zdCBIVFRQSGVhZGVyTWFwOjpW
YWx1ZVR5cGUqIGdldCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudC5nZXQoKTsgfQorICAgIGNv
bnN0IEhUVFBIZWFkZXJNYXA6OlZhbHVlVHlwZSYgb3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4g
KmdldCgpOyB9CisgICAgY29uc3QgSFRUUEhlYWRlck1hcDo6VmFsdWVUeXBlKiBvcGVyYXRvci0+
KCkgY29uc3QgeyByZXR1cm4gZ2V0KCk7IH0KKworICAgIE5vblVzZXJBZ2VudEhlYWRlckNvbnN0
SXRlcmF0b3ImIG9wZXJhdG9yKysoKTsKKyAgICAvLyBwb3N0Zml4ICsrIGludGVudGlvbmFsbHkg
b21pdHRlZAorCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBVc2VyQWdlbnRIZWFkZXJEYXRh
OworICAgIGZyaWVuZCBib29sIG9wZXJhdG9yIT0oY29uc3QgTm9uVXNlckFnZW50SGVhZGVyQ29u
c3RJdGVyYXRvciYsIGNvbnN0IE5vblVzZXJBZ2VudEhlYWRlckNvbnN0SXRlcmF0b3ImKTsKKwor
ICAgIE5vblVzZXJBZ2VudEhlYWRlckNvbnN0SXRlcmF0b3IoY29uc3QgSFRUUEhlYWRlck1hcDo6
Y29uc3RfaXRlcmF0b3ImIGN1cnJlbnQsIGNvbnN0IEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0ZXJh
dG9yJiBlbmQpCisgICAgICAgIDogbV9jdXJyZW50KGN1cnJlbnQpCisgICAgICAgICwgbV9lbmQo
ZW5kKQorICAgIHsKKyAgICAgICAgbW92ZUN1cnJlbnRUb05vblVzZXJBZ2VudEhlYWRlcigpOwor
ICAgIH0KKworICAgIHZvaWQgbW92ZUN1cnJlbnRUb05vblVzZXJBZ2VudEhlYWRlcigpOworCisg
ICAgSFRUUEhlYWRlck1hcDo6Y29uc3RfaXRlcmF0b3IgbV9jdXJyZW50OworICAgIEhUVFBIZWFk
ZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIG1fZW5kOworfTsKKworCitpbmxpbmUgYm9vbCBvcGVyYXRv
ciE9KGNvbnN0IE5vblVzZXJBZ2VudEhlYWRlckNvbnN0SXRlcmF0b3ImIGl0ZXJhdG9yMSwgY29u
c3QgTm9uVXNlckFnZW50SGVhZGVyQ29uc3RJdGVyYXRvciYgaXRlcmF0b3IyKQoreworICAgIHJl
dHVybiBpdGVyYXRvcjEubV9jdXJyZW50ICE9IGl0ZXJhdG9yMi5tX2N1cnJlbnQ7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFVzZXJBZ2VudEhlYWRlckRhdGFfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggNzU2MDA4OGYyNjk3ZDI2ZTUy
MWJhMDIzMDM4ZTc4NjBjNDZmOTM5OC4uNmE3ZmY4ZTQyNzQ2YjRmZmNkM2ZlYjU3Yzk3MjBhYmNh
YjRmM2MwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0yLDcgKzIs
NyBAQAogICogIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMDcgQWxleGV5IFByb3Nr
dXJ5YWtvdiA8YXBAd2Via2l0Lm9yZz4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggSnVs
aWVuIENoYWZmcmFpeCA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgotICogIENvcHlyaWdodCAoQykg
MjAwOCBEYXZpZCBMZXZpbiA8bGV2aW5AY2hyb21pdW0ub3JnPgorICogIENvcHlyaWdodCAoQykg
MjAwOCwgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYwpAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2lu
Y2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVy
LmgiCisjaW5jbHVkZSAiVXNlckFnZW50SGVhZGVyRGF0YS5oIgogI2luY2x1ZGUgIlhNTEh0dHBS
ZXF1ZXN0RXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50
LmgiCiAjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3RVcGxvYWQuaCIKQEAgLTY4LDQyICs2OSw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRpYyBXVEY6OlJlZkNvdW50ZWRMZWFrQ291bnRlciB4
bWxIdHRwUmVxdWVzdENvdW50ZXIoIlhNTEh0dHBSZXF1ZXN0Iik7CiAjZW5kaWYKIAotc3RydWN0
IFhNTEh0dHBSZXF1ZXN0U3RhdGljRGF0YSB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoWE1M
SHR0cFJlcXVlc3RTdGF0aWNEYXRhKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6
Ci0gICAgWE1MSHR0cFJlcXVlc3RTdGF0aWNEYXRhKCk7Ci0gICAgU3RyaW5nIG1fcHJveHlIZWFk
ZXJQcmVmaXg7Ci0gICAgU3RyaW5nIG1fc2VjSGVhZGVyUHJlZml4OwotICAgIEhhc2hTZXQ8U3Ry
aW5nLCBDYXNlRm9sZGluZ0hhc2g+IG1fZm9yYmlkZGVuUmVxdWVzdEhlYWRlcnM7Ci19OwotCi1Y
TUxIdHRwUmVxdWVzdFN0YXRpY0RhdGE6OlhNTEh0dHBSZXF1ZXN0U3RhdGljRGF0YSgpCi0gICAg
OiBtX3Byb3h5SGVhZGVyUHJlZml4KCJwcm94eS0iKQotICAgICwgbV9zZWNIZWFkZXJQcmVmaXgo
InNlYy0iKQotewotICAgIG1fZm9yYmlkZGVuUmVxdWVzdEhlYWRlcnMuYWRkKCJhY2NlcHQtY2hh
cnNldCIpOwotICAgIG1fZm9yYmlkZGVuUmVxdWVzdEhlYWRlcnMuYWRkKCJhY2NlcHQtZW5jb2Rp
bmciKTsKLSAgICBtX2ZvcmJpZGRlblJlcXVlc3RIZWFkZXJzLmFkZCgiYWNjZXNzLWNvbnRyb2wt
cmVxdWVzdC1oZWFkZXJzIik7Ci0gICAgbV9mb3JiaWRkZW5SZXF1ZXN0SGVhZGVycy5hZGQoImFj
Y2Vzcy1jb250cm9sLXJlcXVlc3QtbWV0aG9kIik7Ci0gICAgbV9mb3JiaWRkZW5SZXF1ZXN0SGVh
ZGVycy5hZGQoImNvbm5lY3Rpb24iKTsKLSAgICBtX2ZvcmJpZGRlblJlcXVlc3RIZWFkZXJzLmFk
ZCgiY29udGVudC1sZW5ndGgiKTsKLSAgICBtX2ZvcmJpZGRlblJlcXVlc3RIZWFkZXJzLmFkZCgi
Y29udGVudC10cmFuc2Zlci1lbmNvZGluZyIpOwotICAgIG1fZm9yYmlkZGVuUmVxdWVzdEhlYWRl
cnMuYWRkKCJjb29raWUiKTsKLSAgICBtX2ZvcmJpZGRlblJlcXVlc3RIZWFkZXJzLmFkZCgiY29v
a2llMiIpOwotICAgIG1fZm9yYmlkZGVuUmVxdWVzdEhlYWRlcnMuYWRkKCJkYXRlIik7Ci0gICAg
bV9mb3JiaWRkZW5SZXF1ZXN0SGVhZGVycy5hZGQoImV4cGVjdCIpOwotICAgIG1fZm9yYmlkZGVu
UmVxdWVzdEhlYWRlcnMuYWRkKCJob3N0Iik7Ci0gICAgbV9mb3JiaWRkZW5SZXF1ZXN0SGVhZGVy
cy5hZGQoImtlZXAtYWxpdmUiKTsKLSAgICBtX2ZvcmJpZGRlblJlcXVlc3RIZWFkZXJzLmFkZCgi
b3JpZ2luIik7Ci0gICAgbV9mb3JiaWRkZW5SZXF1ZXN0SGVhZGVycy5hZGQoInJlZmVyZXIiKTsK
LSAgICBtX2ZvcmJpZGRlblJlcXVlc3RIZWFkZXJzLmFkZCgidGUiKTsKLSAgICBtX2ZvcmJpZGRl
blJlcXVlc3RIZWFkZXJzLmFkZCgidHJhaWxlciIpOwotICAgIG1fZm9yYmlkZGVuUmVxdWVzdEhl
YWRlcnMuYWRkKCJ0cmFuc2Zlci1lbmNvZGluZyIpOwotICAgIG1fZm9yYmlkZGVuUmVxdWVzdEhl
YWRlcnMuYWRkKCJ1cGdyYWRlIik7Ci0gICAgbV9mb3JiaWRkZW5SZXF1ZXN0SGVhZGVycy5hZGQo
InVzZXItYWdlbnQiKTsKLSAgICBtX2ZvcmJpZGRlblJlcXVlc3RIZWFkZXJzLmFkZCgidmlhIik7
Ci19Ci0KIC8vIERldGVybWluZXMgaWYgYSBzdHJpbmcgaXMgYSB2YWxpZCB0b2tlbiwgYXMgZGVm
aW5lZCBieQogLy8gInRva2VuIiBpbiBzZWN0aW9uIDIuMiBvZiBSRkMgMjYxNi4KIHN0YXRpYyBi
b29sIGlzVmFsaWRUb2tlbihjb25zdCBTdHJpbmcmIG5hbWUpCkBAIC0xNTcsMjEgKzEyMiw2IEBA
IHN0YXRpYyB2b2lkIHJlcGxhY2VDaGFyc2V0SW5NZWRpYVR5cGUoU3RyaW5nJiBtZWRpYVR5cGUs
IGNvbnN0IFN0cmluZyYgY2hhcnNldFZhCiAgICAgfQogfQogCi1zdGF0aWMgY29uc3QgWE1MSHR0
cFJlcXVlc3RTdGF0aWNEYXRhKiBzdGF0aWNEYXRhID0gMDsKLQotc3RhdGljIGNvbnN0IFhNTEh0
dHBSZXF1ZXN0U3RhdGljRGF0YSogY3JlYXRlWE1MSHR0cFJlcXVlc3RTdGF0aWNEYXRhKCkKLXsK
LSAgICBzdGF0aWNEYXRhID0gbmV3IFhNTEh0dHBSZXF1ZXN0U3RhdGljRGF0YTsKLSAgICByZXR1
cm4gc3RhdGljRGF0YTsKLX0KLQotc3RhdGljIGNvbnN0IFhNTEh0dHBSZXF1ZXN0U3RhdGljRGF0
YSogaW5pdGlhbGl6ZVhNTEh0dHBSZXF1ZXN0U3RhdGljRGF0YSgpCi17Ci0gICAgLy8gVXNlcyBk
dW1teSB0byBhdm9pZCB3YXJuaW5ncyBhYm91dCBhbiB1bnVzZWQgdmFyaWFibGUuCi0gICAgQXRv
bWljYWxseUluaXRpYWxpemVkU3RhdGljKGNvbnN0IFhNTEh0dHBSZXF1ZXN0U3RhdGljRGF0YSos
IGR1bW15ID0gY3JlYXRlWE1MSHR0cFJlcXVlc3RTdGF0aWNEYXRhKCkpOwotICAgIHJldHVybiBk
dW1teTsKLX0KLQogUGFzc1JlZlB0cjxYTUxIdHRwUmVxdWVzdD4gWE1MSHR0cFJlcXVlc3Q6OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiBzZWN1cml0eU9yaWdpbikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFhNTEh0
dHBSZXF1ZXN0KGNvbnRleHQsIHNlY3VyaXR5T3JpZ2luKSk7CkBAIC0xOTQsNyArMTQ0LDcgQEAg
WE1MSHR0cFJlcXVlc3Q6OlhNTEh0dHBSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIFBhc3NSZWZQdHI8U2VjdXIKICAgICAsIG1fcmVzcG9uc2VUeXBlQ29kZShSZXNwb25z
ZVR5cGVEZWZhdWx0KQogICAgICwgbV9zZWN1cml0eU9yaWdpbihzZWN1cml0eU9yaWdpbikKIHsK
LSAgICBpbml0aWFsaXplWE1MSHR0cFJlcXVlc3RTdGF0aWNEYXRhKCk7CisgICAgVXNlckFnZW50
SGVhZGVyRGF0YTo6aW5pdGlhbGl6ZSgpOwogI2lmbmRlZiBOREVCVUcKICAgICB4bWxIdHRwUmVx
dWVzdENvdW50ZXIuaW5jcmVtZW50KCk7CiAjZW5kaWYKQEAgLTg1OCw4ICs4MDgsNyBAQCB2b2lk
IFhNTEh0dHBSZXF1ZXN0OjpzZXRSZXF1ZXN0SGVhZGVySW50ZXJuYWwoY29uc3QgQXRvbWljU3Ry
aW5nJiBuYW1lLCBjb25zdCBTdAogCiBib29sIFhNTEh0dHBSZXF1ZXN0Ojppc1NhZmVSZXF1ZXN0
SGVhZGVyKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3QKIHsKLSAgICByZXR1cm4gIXN0YXRpY0Rh
dGEtPm1fZm9yYmlkZGVuUmVxdWVzdEhlYWRlcnMuY29udGFpbnMobmFtZSkgJiYgIW5hbWUuc3Rh
cnRzV2l0aChzdGF0aWNEYXRhLT5tX3Byb3h5SGVhZGVyUHJlZml4LCBmYWxzZSkKLSAgICAgICAg
JiYgIW5hbWUuc3RhcnRzV2l0aChzdGF0aWNEYXRhLT5tX3NlY0hlYWRlclByZWZpeCwgZmFsc2Up
OworICAgIHJldHVybiAhVXNlckFnZW50SGVhZGVyRGF0YTo6aXNVc2VyQWdlbnRIZWFkZXIobmFt
ZSk7CiB9CiAKIFN0cmluZyBYTUxIdHRwUmVxdWVzdDo6Z2V0UmVxdWVzdEhlYWRlcihjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104709</attachid>
            <date>2011-08-22 11:57:06 -0700</date>
            <delta_ts>2011-08-22 13:12:19 -0700</delta_ts>
            <desc>Test for preflight for simple request from web workers.</desc>
            <filename>preflight-test.txt</filename>
            <type>text/plain</type>
            <size>7258</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ZTlkNGE0Li5kNWZiMTc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDgt
MTkgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJFR1JFU1NJ
T04gKHI4OTA4Nik6IEFsbCB3b3JrZXIgeGhyIHJlcXVlc3RzIHRyaWdnZXIgcHJlZmxpZ2h0IHJl
cXVlc3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjYzNDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRlZCB0ZXN0cyB3aGljaCBhcmUgc2ltaWxhciB0byB0aGUgbm9uIHdvcmtlciB0ZXN0IHdpdGgg
dGhlIHNhbWUgbmFtZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29y
a2Vycy9hY2Nlc3MtY29udHJvbC1iYXNpYy1nZXQtZmFpbC1ub24tc2ltcGxlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC93b3JrZXJzL2Fj
Y2Vzcy1jb250cm9sLWJhc2ljLWdldC1mYWlsLW5vbi1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC93b3JrZXJzL3Jlc291cmNlcy9hY2Nlc3Mt
Y29udHJvbC1iYXNpYy1nZXQtZmFpbC1ub24tc2ltcGxlLXRlc3QuanM6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9yZXNvdXJjZXMvYWNjZXNzLWNv
bnRyb2wtYmFzaWMtZ2V0LWZhaWwtbm9uLXNpbXBsZS5qczogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC93b3JrZXJzL3NoYXJlZC13b3JrZXItYWNjZXNzLWNvbnRy
b2wtYmFzaWMtZ2V0LWZhaWwtbm9uLXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLWFjY2Vz
cy1jb250cm9sLWJhc2ljLWdldC1mYWlsLW5vbi1zaW1wbGUuaHRtbDogQWRkZWQuCisKIDIwMTEt
MDgtMTkgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21p
dW1dIE1hcmsgdG91Y2ggdGVzdHMgYXMgZmFpbGluZyBvbiBPU1ggMTAuNS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9hY2Nlc3MtY29u
dHJvbC1iYXNpYy1nZXQtZmFpbC1ub24tc2ltcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9hY2Nlc3MtY29udHJvbC1iYXNpYy1n
ZXQtZmFpbC1ub24tc2ltcGxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi41YmQwMjhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC93b3JrZXJzL2FjY2Vzcy1jb250cm9sLWJhc2ljLWdldC1mYWls
LW5vbi1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtYmFzaWMtZ2V0LWZhaWwt
bm9uLXNpbXBsZS5jZ2kuIE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93
ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgorR0VUIHNob3VsZCBub3QgdHJpZ2dl
ciBhIHByZWZsaWdodCByZXF1ZXN0IGZyb20gYSB3b3JrZXIgdW5sZXNzIGl0IGhhcyBub24tc2lt
cGxlIGhlYWRlcnMuCisKK1BBU1M6IENyb3NzLWRvbWFpbiBhY2Nlc3MgYWxsb3dlZCBmb3Igc2lt
cGxlIGdldC4KK1BBU1M6IEV4Y2VwdGlvbiB0aHJvd24uIENyb3NzLWRvbWFpbiBhY2Nlc3Mgd2Fz
IGRlbmllZCBpbiAnc2VuZCcuIFtORVRXT1JLX0VSUjogWE1MSHR0cFJlcXVlc3QgRXhjZXB0aW9u
IDEwMV0uCitET05FCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3dvcmtlcnMvYWNjZXNzLWNvbnRyb2wtYmFzaWMtZ2V0LWZhaWwtbm9uLXNpbXBsZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC93b3JrZXJzL2FjY2Vz
cy1jb250cm9sLWJhc2ljLWdldC1mYWlsLW5vbi1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi44MTYxNDhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC93b3JrZXJzL2FjY2Vzcy1jb250cm9sLWJhc2lj
LWdldC1mYWlsLW5vbi1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDcgQEAKKzxib2R5PgorPHA+R0VU
IHNob3VsZCBub3QgdHJpZ2dlciBhIHByZWZsaWdodCByZXF1ZXN0IGZyb20gYSB3b3JrZXIgdW5s
ZXNzIGl0IGhhcyBub24tc2ltcGxlIGhlYWRlcnMuPC9wPgorPGRpdiBpZD1yZXN1bHQ+PC9kaXY+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dvcmtlci1jcmVhdGUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9hY2Nlc3MtY29udHJvbC1iYXNpYy1nZXQtZmFpbC1ub24tc2lt
cGxlLXRlc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3dvcmtlcnMvcmVzb3VyY2VzL2FjY2Vzcy1jb250
cm9sLWJhc2ljLWdldC1mYWlsLW5vbi1zaW1wbGUtdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtYmFz
aWMtZ2V0LWZhaWwtbm9uLXNpbXBsZS10ZXN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjk5OTg3MDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3dvcmtlcnMvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLWJhc2lj
LWdldC1mYWlsLW5vbi1zaW1wbGUtdGVzdC5qcwpAQCAtMCwwICsxLDMyIEBACitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKwor
dmFyIGNvbnNvbGVfbWVzc2FnZXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvbCIpOworZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb25zb2xlX21lc3NhZ2VzKTsKKworZnVuY3Rpb24gbG9n
KG1lc3NhZ2UpCit7CisgICAgdmFyIGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIp
OworICAgIGl0ZW0uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSkp
OworICAgIGNvbnNvbGVfbWVzc2FnZXMuYXBwZW5kQ2hpbGQoaXRlbSk7Cit9CisKK3ZhciB3b3Jr
ZXIgPSBjcmVhdGVXb3JrZXIoJ3Jlc291cmNlcy9hY2Nlc3MtY29udHJvbC1iYXNpYy1nZXQtZmFp
bC1ub24tc2ltcGxlLmpzJyk7Cit3b3JrZXIucG9zdE1lc3NhZ2UoIlNUQVJUIik7CisKK3dvcmtl
ci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQpCit7CisgICAgaWYgKC9sb2cgLisvLnRlc3QoZXZ0
LmRhdGEpKQorICAgICAgICBsb2coZXZ0LmRhdGEuc3Vic3RyKDQpKTsKKyAgICBlbHNlIGlmICgv
RE9ORS8udGVzdChldnQuZGF0YSkpIHsKKyAgICAgICAgbG9nKCJET05FIik7CisgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbG9nKCJFUlJPUiIp
OworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9yZXNvdXJjZXMv
YWNjZXNzLWNvbnRyb2wtYmFzaWMtZ2V0LWZhaWwtbm9uLXNpbXBsZS5qcyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9yZXNvdXJjZXMvYWNjZXNzLWNvbnRy
b2wtYmFzaWMtZ2V0LWZhaWwtbm9uLXNpbXBsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5kMjVmN2UyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC93b3JrZXJzL3Jlc291cmNlcy9hY2Nlc3MtY29udHJvbC1iYXNp
Yy1nZXQtZmFpbC1ub24tc2ltcGxlLmpzCkBAIC0wLDAgKzEsNDIgQEAKK2ltcG9ydFNjcmlwdHMo
Indvcmtlci1wcmUuanMiKTsKKworb25tZXNzYWdlID0gZnVuY3Rpb24oZXZ0KQoreworICAgIGlm
IChldnQuZGF0YSA9PSAiU1RBUlQiKQorICAgICAgICBzdGFydCgpOworfQorCitmdW5jdGlvbiBs
b2cobWVzc2FnZSkKK3sKKyAgICBwb3N0TWVzc2FnZSgibG9nICIgKyBtZXNzYWdlKTsKK30KKwor
ZnVuY3Rpb24gZG9uZSgpCit7CisgICAgcG9zdE1lc3NhZ2UoIkRPTkUiKTsKK30KKworZnVuY3Rp
b24gc3RhcnQoKQoreworICAgIHRyeSB7CisJdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdDsK
KyAgICAgICAgeGhyLm9wZW4oIkdFVCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJl
cXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLWJhc2ljLWdldC1mYWlsLW5vbi1zaW1wbGUu
Y2dpIiwgZmFsc2UpOworCXhoci5zZW5kKCk7CisJbG9nKCJQQVNTOiBDcm9zcy1kb21haW4gYWNj
ZXNzIGFsbG93ZWQgZm9yIHNpbXBsZSBnZXQuIik7CisgICAgfSBjYXRjaChlKSB7CisgICAgICAg
IGxvZygiRkFJTDogRXhjZXB0aW9uIHRocm93bi4gQ3Jvc3MtZG9tYWluIGFjY2VzcyBpcyBub3Qg
YWxsb3dlZCBpbiAnb3BlbicuIFsiICsgZS5tZXNzYWdlICsgIl0uIik7CisgICAgfQorCisKKyAg
ICAvLyBUaGlzIGlzIGdvaW5nIHRvIGZhaWwgYmVjYXVzZSB0aGUgY2dpIHNjcmlwdCBpcyBub3Qg
cHJlcGFyZWQgZm9yIGFuIE9QVElPTlMgcmVxdWVzdC4gCisgICAgdHJ5IHsKKwl2YXIgeGhyID0g
bmV3IFhNTEh0dHBSZXF1ZXN0OworCXhoci5vcGVuKCJHRVQiLCAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9hY2Nlc3MtY29udHJvbC1iYXNpYy1nZXQtZmFp
bC1ub24tc2ltcGxlLmNnaSIsIGZhbHNlKTsKKwkvLyBOb24td2hpdGVsaXN0ZWQgbWV0aG9kCisJ
eGhyLnNldFJlcXVlc3RIZWFkZXIoIngtd2Via2l0IiwgImZvb2JhciIpOworICAgICAgICB4aHIu
c2VuZCgpOworICAgIH0gY2F0Y2goZSkgeworICAgICAgICBsb2coIlBBU1M6IEV4Y2VwdGlvbiB0
aHJvd24uIENyb3NzLWRvbWFpbiBhY2Nlc3Mgd2FzIGRlbmllZCBpbiAnc2VuZCcuIFsiICsgZS5t
ZXNzYWdlICsgIl0uIik7CisgICAgfQorICAgIGRvbmUoKTsKK30KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9zaGFyZWQtd29ya2VyLWFj
Y2Vzcy1jb250cm9sLWJhc2ljLWdldC1mYWlsLW5vbi1zaW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC93b3JrZXJzL3NoYXJlZC13b3JrZXIt
YWNjZXNzLWNvbnRyb2wtYmFzaWMtZ2V0LWZhaWwtbm9uLXNpbXBsZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDc2YzMxYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29ya2Vycy9zaGFyZWQt
d29ya2VyLWFjY2Vzcy1jb250cm9sLWJhc2ljLWdldC1mYWlsLW5vbi1zaW1wbGUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFhNTEh0dHBSZXF1
ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNv
dXJjZXMvYWNjZXNzLWNvbnRyb2wtYmFzaWMtZ2V0LWZhaWwtbm9uLXNpbXBsZS5jZ2kuIE9yaWdp
biBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wt
QWxsb3ctT3JpZ2luLgorR0VUIHNob3VsZCBub3QgdHJpZ2dlciBhIHByZWZsaWdodCByZXF1ZXN0
IGZyb20gYSBzaGFyZWQgd29ya2VyIHVubGVzcyBpdCBoYXMgbm9uLXNpbXBsZSBoZWFkZXJzLgor
CitQQVNTOiBDcm9zcy1kb21haW4gYWNjZXNzIGFsbG93ZWQgZm9yIHNpbXBsZSBnZXQuCitQQVNT
OiBFeGNlcHRpb24gdGhyb3duLiBDcm9zcy1kb21haW4gYWNjZXNzIHdhcyBkZW5pZWQgaW4gJ3Nl
bmQnLiBbTkVUV09SS19FUlI6IFhNTEh0dHBSZXF1ZXN0IEV4Y2VwdGlvbiAxMDFdLgorRE9ORQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC93b3JrZXJz
L3NoYXJlZC13b3JrZXItYWNjZXNzLWNvbnRyb2wtYmFzaWMtZ2V0LWZhaWwtbm9uLXNpbXBsZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC93b3JrZXJzL3NoYXJl
ZC13b3JrZXItYWNjZXNzLWNvbnRyb2wtYmFzaWMtZ2V0LWZhaWwtbm9uLXNpbXBsZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5NWE0ODcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3dvcmtlcnMvc2hhcmVk
LXdvcmtlci1hY2Nlc3MtY29udHJvbC1iYXNpYy1nZXQtZmFpbC1ub24tc2ltcGxlLmh0bWwKQEAg
LTAsMCArMSw3IEBACis8Ym9keT4KKzxwPkdFVCBzaG91bGQgbm90IHRyaWdnZXIgYSBwcmVmbGln
aHQgcmVxdWVzdCBmcm9tIGEgc2hhcmVkIHdvcmtlciB1bmxlc3MgaXQgaGFzIG5vbi1zaW1wbGUg
aGVhZGVycy48L3A+Cis8ZGl2IGlkPXJlc3VsdD48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvc2hhcmVkLXdvcmtlci1jcmVhdGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9hY2Nlc3MtY29udHJvbC1iYXNpYy1nZXQtZmFpbC1ub24tc2ltcGxlLXRlc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorCg==
</data>
<flag name="review"
          id="100637"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="100638"
          type_id="3"
          status="-"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>