<?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>178887</bug_id>
          
          <creation_ts>2017-10-26 14:44:21 -0700</creation_ts>
          <short_desc>[Payment Request] Restrict API use to secure, same-origin frames</short_desc>
          <delta_ts>2017-11-15 12:41:30 -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>New Bugs</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>174796</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1365037</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-10-26 14:44:21 -0700</bug_when>
    <thetext>[Payment Request] Restrict API use to secure, same-origin frames</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365038</commentid>
    <comment_count>1</comment_count>
      <attachid>325058</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-10-26 14:46:41 -0700</bug_when>
    <thetext>Created attachment 325058
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365039</commentid>
    <comment_count>2</comment_count>
      <attachid>325059</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-10-26 15:00:17 -0700</bug_when>
    <thetext>Created attachment 325059
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365044</commentid>
    <comment_count>3</comment_count>
      <attachid>325061</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-10-26 15:05:05 -0700</bug_when>
    <thetext>Created attachment 325061
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365065</commentid>
    <comment_count>4</comment_count>
      <attachid>325061</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-26 15:53:40 -0700</bug_when>
    <thetext>Comment on attachment 325061
Patch

Rejecting attachment 325061 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 325061, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
yment-request/allowpaymentrequest/active-document-cross-origin.https.sub-expected.txt
patching file LayoutTests/imported/w3c/web-platform-tests/payment-request/allowpaymentrequest/active-document-same-origin.https-expected.txt
patching file LayoutTests/imported/w3c/web-platform-tests/payment-request/allowpaymentrequest/basic.https-expected.txt

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Tim Horton&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.webkit.org/results/5004082</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365067</commentid>
    <comment_count>5</comment_count>
      <attachid>325070</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-10-26 15:56:25 -0700</bug_when>
    <thetext>Created attachment 325070
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365082</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-26 16:25:14 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 325070:

media/modern-media-controls/seek-backward-support/seek-backward-support.html bug 174916 (authors: graouts@apple.com, mcatanzaro@igalia.com, and ryanhaddad@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365084</commentid>
    <comment_count>7</comment_count>
      <attachid>325070</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-26 16:25:45 -0700</bug_when>
    <thetext>Comment on attachment 325070
Patch

Clearing flags on attachment: 325070

Committed r224061: &lt;https://trac.webkit.org/changeset/224061&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365085</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-26 16:25:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365091</commentid>
    <comment_count>9</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-10-26 16:28:35 -0700</bug_when>
    <thetext>Committed r224062: &lt;https://trac.webkit.org/changeset/224062&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372207</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 12:41:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/35567954&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325058</attachid>
            <date>2017-10-26 14:46:41 -0700</date>
            <delta_ts>2017-10-26 15:00:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178887-20171026144640.patch</filename>
            <type>text/plain</type>
            <size>20317</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0MDQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDQ0ZGEwNzNiNjk2Nzk5
MTc1Y2QxNzg3MmE0YTRhZTkxM2JiNTM1NS4uNTdkZjQxMDkwODcwNTE0MTRmNzcxMDYwNmE5ZDA5
MjA5ZGNjNTkwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTEwLTI2ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBS
ZXN0cmljdCBBUEkgdXNlIHRvIHNlY3VyZSwgc2FtZS1vcmlnaW4gZnJhbWVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg4ODcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm9ncmVzc2VzIGFjdGl2ZS1k
b2N1bWVudC1jcm9zcy1vcmlnaW4uaHR0cHMuc3ViLmh0bWwgYW5kIGFjdGl2ZS1kb2N1bWVudC1z
YW1lLW9yaWdpbi5odHRwcy5odG1sLgorCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uOjpzdXBwb3J0c1ZlcnNpb24p
OgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uOjpjYW5NYWtlUGF5bWVudHMpOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uOjpjYW5NYWtlUGF5bWVudHNXaXRoQWN0
aXZlQ2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246Om9wZW5QYXltZW50
U2V0dXApOgorICAgICAgICAoV2ViQ29yZTo6aXNTZWN1cmUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6Y2FuQ2FsbEFwcGxlUGF5U2Vzc2lvbkFQSXMpOiBEZWxldGVkLgorICAgICAgICAq
IE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNlc3Npb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmlzU2VjdXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRTZXNzaW9uOjpjYW5D
cmVhdGVTZXNzaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTZXNzaW9u
Lmg6CisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50SGFuZGxlcjo6Y2FuQ3JlYXRlU2Vzc2lvbik6Cisg
ICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5oOgorICAgICAg
ICAqIE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE3LTEwLTI2ICBBbnRvaW5lIFF1aW50ICA8Z3Jh
b3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIEZyYW1lVmlldzo6c2VydmljZVNjcmlw
dGVkQW5pbWF0aW9ucyBhbmQgRG9jdW1lbnQ6OnNlcnZpY2VTY3JpcHRlZEFuaW1hdGlvbnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNw
cAppbmRleCBmNGMzNWM5ZTFiN2ZiNmU3YjhlZTdmMzRlNTE0MGYzZWJmYzY1NThhLi40YzNlOThh
NzA5ZGE4N2Q4M2I2MDRmMGJkMjEwYjJhOTUxZDRlOGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwCkBAIC0zOTgsNDQgKzM5
OCw5IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxTaGlwcGluZ01ldGhvZFVwZGF0ZT4gY29udmVydEFu
ZFZhbGlkYXRlKEFwcGxlUGF5U2hpcHBpbmdNZXRoCiAgICAgcmV0dXJuIFdURk1vdmUoY29udmVy
dGVkVXBkYXRlKTsKIH0KIAotc3RhdGljIGJvb2wgaXNTZWN1cmUoRG9jdW1lbnRMb2FkZXImIGRv
Y3VtZW50TG9hZGVyKQotewotICAgIGlmICghZG9jdW1lbnRMb2FkZXIucmVzcG9uc2UoKS51cmwo
KS5wcm90b2NvbElzKCJodHRwcyIpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAo
IWRvY3VtZW50TG9hZGVyLnJlc3BvbnNlKCkuY2VydGlmaWNhdGVJbmZvKCkgfHwgZG9jdW1lbnRM
b2FkZXIucmVzcG9uc2UoKS5jZXJ0aWZpY2F0ZUluZm8oKS0+Y29udGFpbnNOb25Sb290U0hBMVNp
Z25lZENlcnRpZmljYXRlKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0
cnVlOwotfQotCi1zdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gY2FuQ2FsbEFwcGxlUGF5U2Vzc2lv
bkFQSXMoRG9jdW1lbnQmIGRvY3VtZW50KQotewotICAgIGlmICghaXNTZWN1cmUoKmRvY3VtZW50
LmxvYWRlcigpKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJv
ciwgIlRyeWluZyB0byBjYWxsIGFuIEFwcGxlUGF5U2Vzc2lvbiBBUEkgZnJvbSBhbiBpbnNlY3Vy
ZSBkb2N1bWVudC4iIH07Ci0KLSAgICBhdXRvJiB0b3BEb2N1bWVudCA9IGRvY3VtZW50LnRvcERv
Y3VtZW50KCk7Ci0gICAgaWYgKCZkb2N1bWVudCAhPSAmdG9wRG9jdW1lbnQpIHsKLSAgICAgICAg
YXV0byYgdG9wT3JpZ2luID0gdG9wRG9jdW1lbnQudG9wT3JpZ2luKCk7Ci0KLSAgICAgICAgaWYg
KCFkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmlzU2FtZVNjaGVtZUhvc3RQb3J0KHRvcE9yaWdp
bikpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAi
VHJ5aW5nIHRvIGNhbGwgYW4gQXBwbGVQYXlTZXNzaW9uIEFQSSBmcm9tIGEgZG9jdW1lbnQgd2l0
aCBhbiBkaWZmZXJlbnQgc2VjdXJpdHkgb3JpZ2luIHRoYW4gaXRzIHRvcC1sZXZlbCBmcmFtZS4i
IH07Ci0KLSAgICAgICAgZm9yIChhdXRvKiBhbmNlc3RvckRvY3VtZW50ID0gZG9jdW1lbnQucGFy
ZW50RG9jdW1lbnQoKTsgYW5jZXN0b3JEb2N1bWVudCAhPSAmdG9wRG9jdW1lbnQ7IGFuY2VzdG9y
RG9jdW1lbnQgPSBhbmNlc3RvckRvY3VtZW50LT5wYXJlbnREb2N1bWVudCgpKSB7Ci0gICAgICAg
ICAgICBpZiAoIWlzU2VjdXJlKCphbmNlc3RvckRvY3VtZW50LT5sb2FkZXIoKSkpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0
byBjYWxsIGFuIEFwcGxlUGF5U2Vzc2lvbiBBUEkgZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gaW5z
ZWN1cmUgcGFyZW50IGZyYW1lLiIgfTsKLQotICAgICAgICAgICAgaWYgKCFhbmNlc3RvckRvY3Vt
ZW50LT5zZWN1cml0eU9yaWdpbigpLmlzU2FtZVNjaGVtZUhvc3RQb3J0KHRvcE9yaWdpbikpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRy
eWluZyB0byBjYWxsIGFuIEFwcGxlUGF5U2Vzc2lvbiBBUEkgZnJvbSBhIGRvY3VtZW50IHdpdGgg
YW4gZGlmZmVyZW50IHNlY3VyaXR5IG9yaWdpbiB0aGFuIGl0cyB0b3AtbGV2ZWwgZnJhbWUuIiB9
OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIHsgfTsKLX0KLQogRXhjZXB0aW9uT3I8
UmVmPEFwcGxlUGF5U2Vzc2lvbj4+IEFwcGxlUGF5U2Vzc2lvbjo6Y3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCwgdW5zaWduZWQgdmVyc2lvbiwgQXBwbGVQYXlQYXltZW50UmVxdWVzdCYmIHBheW1l
bnRSZXF1ZXN0KQogewotICAgIGF1dG8gY2FuQ2FsbCA9IGNhbkNhbGxBcHBsZVBheVNlc3Npb25B
UElzKGRvY3VtZW50KTsKKyAgICBhdXRvIGNhbkNhbGwgPSBjYW5DcmVhdGVTZXNzaW9uKGRvY3Vt
ZW50KTsKICAgICBpZiAoY2FuQ2FsbC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGNh
bkNhbGwucmVsZWFzZUV4Y2VwdGlvbigpOwogCkBAIC00NzAsNyArNDM1LDcgQEAgRXhjZXB0aW9u
T3I8Ym9vbD4gQXBwbGVQYXlTZXNzaW9uOjpzdXBwb3J0c1ZlcnNpb24oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgc2NyaXAKIAogICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogCi0gICAgYXV0byBjYW5DYWxsID0gY2FuQ2FsbEFw
cGxlUGF5U2Vzc2lvbkFQSXMoZG9jdW1lbnQpOworICAgIGF1dG8gY2FuQ2FsbCA9IGNhbkNyZWF0
ZVNlc3Npb24oZG9jdW1lbnQpOwogICAgIGlmIChjYW5DYWxsLmhhc0V4Y2VwdGlvbigpKQogICAg
ICAgICByZXR1cm4gY2FuQ2FsbC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKQEAgLTQ5MCw3ICs0NTUs
NyBAQCBFeGNlcHRpb25Pcjxib29sPiBBcHBsZVBheVNlc3Npb246OmNhbk1ha2VQYXltZW50cyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcAogewogICAgIGF1dG8mIGRvY3VtZW50ID0gZG93
bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogCi0gICAgYXV0byBjYW5D
YWxsID0gY2FuQ2FsbEFwcGxlUGF5U2Vzc2lvbkFQSXMoZG9jdW1lbnQpOworICAgIGF1dG8gY2Fu
Q2FsbCA9IGNhbkNyZWF0ZVNlc3Npb24oZG9jdW1lbnQpOwogICAgIGlmIChjYW5DYWxsLmhhc0V4
Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gY2FuQ2FsbC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAK
QEAgLTUwMSw3ICs0NjYsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVNlc3Npb246OmNh
bk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJkKFNjcmlwdEV4ZWN1dGlvbgogewogICAgIGF1dG8m
IGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwog
Ci0gICAgYXV0byBjYW5DYWxsID0gY2FuQ2FsbEFwcGxlUGF5U2Vzc2lvbkFQSXMoZG9jdW1lbnQp
OworICAgIGF1dG8gY2FuQ2FsbCA9IGNhbkNyZWF0ZVNlc3Npb24oZG9jdW1lbnQpOwogICAgIGlm
IChjYW5DYWxsLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gY2FuQ2FsbC5yZWxlYXNl
RXhjZXB0aW9uKCk7CiAKQEAgLTUyOCw3ICs0OTMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBcHBs
ZVBheVNlc3Npb246Om9wZW5QYXltZW50U2V0dXAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2Ny
aQogewogICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpOwogCi0gICAgYXV0byBjYW5DYWxsID0gY2FuQ2FsbEFwcGxlUGF5U2Vzc2lv
bkFQSXMoZG9jdW1lbnQpOworICAgIGF1dG8gY2FuQ2FsbCA9IGNhbkNyZWF0ZVNlc3Npb24oZG9j
dW1lbnQpOwogICAgIGlmIChjYW5DYWxsLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4g
Y2FuQ2FsbC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdhNDRmNGIzNWJi
MmZiNDI5M2UzMDRmMjdmMDZiNmU2ZWJhMTk0OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNlc3Npb24uY3BwCkBAIC0wLDAgKzEsNzcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGF5bWVudFNl
c3Npb24uaCIKKworI2lmIEVOQUJMRShBUFBMRV9QQVkpCisKKyNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4u
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgYm9vbCBpc1NlY3VyZShEb2N1bWVu
dExvYWRlciYgZG9jdW1lbnRMb2FkZXIpCit7CisgICAgaWYgKCFkb2N1bWVudExvYWRlci5yZXNw
b25zZSgpLnVybCgpLnByb3RvY29sSXMoImh0dHBzIikpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGlmICghZG9jdW1lbnRMb2FkZXIucmVzcG9uc2UoKS5jZXJ0aWZpY2F0ZUluZm8oKSB8
fCBkb2N1bWVudExvYWRlci5yZXNwb25zZSgpLmNlcnRpZmljYXRlSW5mbygpLT5jb250YWluc05v
blJvb3RTSEExU2lnbmVkQ2VydGlmaWNhdGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IFBheW1lbnRTZXNzaW9uOjpj
YW5DcmVhdGVTZXNzaW9uKERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICBpZiAoIWRvY3VtZW50
LmZyYW1lKCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3Is
ICJUcnlpbmcgdG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhbiBpbmFjdGl2ZSBk
b2N1bWVudC4iIH07CisKKyAgICBpZiAoIWlzU2VjdXJlKCpkb2N1bWVudC5sb2FkZXIoKSkpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8g
c3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhbiBpbnNlY3VyZSBkb2N1bWVudC4iIH07
CisKKyAgICBhdXRvJiB0b3BEb2N1bWVudCA9IGRvY3VtZW50LnRvcERvY3VtZW50KCk7CisgICAg
aWYgKCZkb2N1bWVudCAhPSAmdG9wRG9jdW1lbnQpIHsKKyAgICAgICAgYXV0byYgdG9wT3JpZ2lu
ID0gdG9wRG9jdW1lbnQudG9wT3JpZ2luKCk7CisKKyAgICAgICAgaWYgKCFkb2N1bWVudC5zZWN1
cml0eU9yaWdpbigpLmlzU2FtZVNjaGVtZUhvc3RQb3J0KHRvcE9yaWdpbikpCisgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0
IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3aXRoIGFuIGRpZmZlcmVudCBz
ZWN1cml0eSBvcmlnaW4gdGhhbiBpdHMgdG9wLWxldmVsIGZyYW1lLiIgfTsKKworICAgICAgICBm
b3IgKGF1dG8qIGFuY2VzdG9yRG9jdW1lbnQgPSBkb2N1bWVudC5wYXJlbnREb2N1bWVudCgpOyBh
bmNlc3RvckRvY3VtZW50ICE9ICZ0b3BEb2N1bWVudDsgYW5jZXN0b3JEb2N1bWVudCA9IGFuY2Vz
dG9yRG9jdW1lbnQtPnBhcmVudERvY3VtZW50KCkpIHsKKyAgICAgICAgICAgIGlmICghaXNTZWN1
cmUoKmFuY2VzdG9yRG9jdW1lbnQtPmxvYWRlcigpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxl
IFBheSBzZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3aXRoIGFuIGluc2VjdXJlIHBhcmVudCBmcmFt
ZS4iIH07CisKKyAgICAgICAgICAgIGlmICghYW5jZXN0b3JEb2N1bWVudC0+c2VjdXJpdHlPcmln
aW4oKS5pc1NhbWVTY2hlbWVIb3N0UG9ydCh0b3BPcmlnaW4pKQorICAgICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4g
QXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gZGlmZmVyZW50IHNlY3Vy
aXR5IG9yaWdpbiB0aGFuIGl0cyB0b3AtbGV2ZWwgZnJhbWUuIiB9OworICAgICAgICB9CisgICAg
fQorCisgICAgcmV0dXJuIHsgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKEFQUExFX1BBWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvUGF5bWVudFNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvUGF5bWVudFNlc3Npb24uaAppbmRleCAxYTMwYTFkYmU2ZTIyNGJhYjRhZWI5ODAzMmRj
MTEwOWU4ODc5YTdjLi40YjM5Nzc1NDAwYWRlNzdjNTM4NWQxNjVhNDA1NDI0NTVkMDI5NWE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTZXNzaW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5o
CkBAIC0yOCwxMCArMjgsMTIgQEAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCiAjaW5jbHVkZSAi
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Pci5o
IgogI2luY2x1ZGUgIlBheW1lbnRTZXNzaW9uQmFzZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK2NsYXNzIERvY3VtZW50OwogY2xhc3MgUGF5bWVudDsKIGNsYXNzIFBheW1lbnRDb250YWN0
OwogY2xhc3MgUGF5bWVudE1ldGhvZDsKQEAgLTM5LDYgKzQxLDggQEAgY2xhc3MgVVJMOwogCiBj
bGFzcyBQYXltZW50U2Vzc2lvbiA6IHB1YmxpYyB2aXJ0dWFsIFBheW1lbnRTZXNzaW9uQmFzZSB7
CiBwdWJsaWM6CisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IGNhbkNyZWF0ZVNlc3Npb24o
RG9jdW1lbnQmKTsKKwogICAgIHZpcnR1YWwgdm9pZCB2YWxpZGF0ZU1lcmNoYW50KGNvbnN0IFVS
TCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBQYXlt
ZW50JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25z
dCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRI
YW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVu
dEhhbmRsZXIuY3BwCmluZGV4IGYzNjU1NzU2MzhhNWI0NDc5Nzg4OTg4N2I1NzRiYTA5Mzc3MmQ0
YWIuLjg2NTI1Zjk4MTYwNjZmMTQxMTQ2Njg3ZDc3MjZjNTAyOTA2ZmNhNGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRs
ZXIuY3BwCkBAIC00OCw2ICs0OCwxNiBAQCBSZWZQdHI8UGF5bWVudEhhbmRsZXI+IFBheW1lbnRI
YW5kbGVyOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXltZW50UmVxdWVzdAogICAgIHJl
dHVybiBudWxscHRyOwogfQogCitFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50SGFuZGxlcjo6Y2Fu
Q3JlYXRlU2Vzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQpCit7CisjaWYgRU5BQkxFKEFQUExFX1BB
WSkKKyAgICByZXR1cm4gUGF5bWVudFNlc3Npb246OmNhbkNyZWF0ZVNlc3Npb24oZG9jdW1lbnQp
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOworICAgIHJldHVybiB7IH07Cisj
ZW5kaWYKK30KKwogYm9vbCBQYXltZW50SGFuZGxlcjo6aGFzQWN0aXZlU2Vzc2lvbihEb2N1bWVu
dCYgZG9jdW1lbnQpCiB7CiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuaAppbmRleCA1
MzlmMWRiYzZjODVlODQ4MzgzZjlmMWM2MWQ1OGVlMGQ3ODU3MGZjLi44NmM5MDMyYzFjYmQ4MDVh
MzAxN2YxMWY4YzRmMjg3NGE1NjU5MDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5oCkBAIC00Miw2ICs0Miw3IEBA
IGNsYXNzIERvY3VtZW50OwogY2xhc3MgUGF5bWVudEhhbmRsZXIgOiBwdWJsaWMgdmlydHVhbCBQ
YXltZW50U2Vzc2lvbkJhc2UgewogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8UGF5bWVudEhh
bmRsZXI+IGNyZWF0ZShEb2N1bWVudCYsIFBheW1lbnRSZXF1ZXN0JiwgY29uc3QgUGF5bWVudFJl
cXVlc3Q6Ok1ldGhvZElkZW50aWZpZXImKTsKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4g
Y2FuQ3JlYXRlU2Vzc2lvbihEb2N1bWVudCYpOwogICAgIHN0YXRpYyBib29sIGhhc0FjdGl2ZVNl
c3Npb24oRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gY29udmVy
dERhdGEoSlNDOjpKU1ZhbHVlJiYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKaW5kZXggYTZhZmIyMTMw
ZGE2YTk5NzM0MDFiOTkwMTNjNWU0NGUwYjYwY2Y4NS4uNmE5NTRlOGU4YjdkNGU3MWE0Mzg0OGYw
MzY0YTgwZGIzMzEwNjM1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXlt
ZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKQEAgLTMxNCw3ICszMTQsOSBAQCBz
dGF0aWMgRXhjZXB0aW9uT3I8c3RkOjp0dXBsZTxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+Pj4gY2hl
Y2tBbmRDYW5vbmljYWxpemVEZXRhaQogLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3BheW1lbnQt
cmVxdWVzdC8jY29uc3RydWN0b3IKIEV4Y2VwdGlvbk9yPFJlZjxQYXltZW50UmVxdWVzdD4+IFBh
eW1lbnRSZXF1ZXN0OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBWZWN0b3I8UGF5bWVudE1l
dGhvZERhdGE+JiYgbWV0aG9kRGF0YSwgUGF5bWVudERldGFpbHNJbml0JiYgZGV0YWlscywgUGF5
bWVudE9wdGlvbnMmJiBvcHRpb25zKQogewotICAgIC8vIEZJWE1FOiBDaGVjayBpZiB0aGlzIGRv
Y3VtZW50IGlzIGFsbG93ZWQgdG8gYWNjZXNzIHRoZSBQYXltZW50UmVxdWVzdCBBUEkgYmFzZWQg
b24gdGhlIGFsbG93cGF5bWVudHJlcXVlc3QgYXR0cmlidXRlLgorICAgIGF1dG8gY2FuQ3JlYXRl
U2Vzc2lvbiA9IFBheW1lbnRIYW5kbGVyOjpjYW5DcmVhdGVTZXNzaW9uKGRvY3VtZW50KTsKKyAg
ICBpZiAoY2FuQ3JlYXRlU2Vzc2lvbi5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFNlY3VyaXR5RXJyb3IsIGNhbkNyZWF0ZVNlc3Npb24ucmVsZWFzZUV4Y2VwdGlv
bigpLnJlbGVhc2VNZXNzYWdlKCkgfTsKIAogICAgIGlmIChkZXRhaWxzLmlkLmlzTnVsbCgpKQog
ICAgICAgICBkZXRhaWxzLmlkID0gY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY0
MDAwOGRjMmQzZmQ2ZDg2ZTBkOThkZDg3MWMwNTkzOWJkNjdhYTYuLjNiOTVlYWM1YzZmM2ZiMTdi
ZGYzYmM1OGEyYjYxZmEzZDE3YWY2Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4NDksNiArMjg0OSw3IEBACiAJCUExQkY2
QjgzMUFBOTZDN0QwMEFGNEE4QSAvKiBNb2NrQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFCRjZCODExQUE5NkM3RDAwQUY0QThB
IC8qIE1vY2tDb250ZW50RmlsdGVyLmggKi87IH07CiAJCUExQzE1MDc5MUUzRjJCM0UwMDMyQzk4
QyAvKiBQcmV2aWV3Q29udmVydGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTFDMTUwNzcxRTNGMkIzRTAwMzJDOThDIC8qIFByZXZpZXdDb252ZXJ0
ZXIubW0gKi87IH07CiAJCUExQzE1MDdBMUUzRjJCM0UwMDMyQzk4QyAvKiBQcmV2aWV3Q29udmVy
dGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUMx
NTA3ODFFM0YyQjNFMDAzMkM5OEMgLyogUHJldmlld0NvbnZlcnRlci5oICovOyB9OworCQlBMUMy
QzU3NjFGQTI4NTE2MDBCQTQ2RkEgLyogUGF5bWVudFNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFDMkM1NzUxRkEyODUxNjAwQkE0NkZB
IC8qIFBheW1lbnRTZXNzaW9uLmNwcCAqLzsgfTsKIAkJQTFDQkVGNTMxRjlFRUU3NTAwMjhERTdD
IC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUNCRUY1MDFGOUVFRTc1MDAyOERFN0MgLyog
QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaCAqLzsgfTsKIAkJQTFDQkVGNTQxRjlF
RUU3NTAwMjhERTdDIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQ0JFRjUxMUY5RUVF
NzUwMDI4REU3QyAvKiBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5jcHAgKi87IH07
CiAJCUExQ0JFRjYxMUY5RjA5MDQwMDI4REU3QyAvKiBKU0FwcGxlUGF5UGF5bWVudE1ldGhvZFVw
ZGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEExQ0JFRjVGMUY5RjA5MDIwMDI4REU3QyAvKiBKU0FwcGxlUGF5UGF5bWVudE1ldGhvZFVw
ZGF0ZUV2ZW50LmNwcCAqLzsgfTsKQEAgLTEwNjc5LDYgKzEwNjgwLDcgQEAKIAkJQTFCRjZCODEx
QUE5NkM3RDAwQUY0QThBIC8qIE1vY2tDb250ZW50RmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1vY2tDb250ZW50RmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUExQzE1MDc3MUUzRjJCM0UwMDMyQzk4QyAvKiBQcmV2aWV3Q29udmVydGVyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJldmlld0NvbnZlcnRl
ci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFDMTUwNzgxRTNGMkIzRTAwMzJD
OThDIC8qIFByZXZpZXdDb252ZXJ0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUHJldmlld0NvbnZlcnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMUMy
QzU3NTFGQTI4NTE2MDBCQTQ2RkEgLyogUGF5bWVudFNlc3Npb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUGF5bWVudFNlc3Npb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
MUM3RkFBMTEzM0E1RDM1MDBENjczMkQgLyogSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFDQkVGNTAxRjlFRUU3NTAwMjhERTdDIC8q
IEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxl
UGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUExQ0JFRjUxMUY5RUVFNzUwMDI4REU3QyAvKiBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRh
dGVFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRh
dGVFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTQ0OSw2ICsxNTQ1
MSw3IEBACiAJCQkJMUE4QTY0MzkxRDE5RkM1MzAwRDBFMDBGIC8qIFBheW1lbnRNZXRob2QuaCAq
LywKIAkJCQkxQThBNjQ2NjFEMTlGREZGMDBEMEUwMEYgLyogUGF5bWVudFJlcXVlc3RWYWxpZGF0
b3IuaCAqLywKIAkJCQkxQThBNjQ2NTFEMTlGREZGMDBEMEUwMEYgLyogUGF5bWVudFJlcXVlc3RW
YWxpZGF0b3IubW0gKi8sCisJCQkJQTFDMkM1NzUxRkEyODUxNjAwQkE0NkZBIC8qIFBheW1lbnRT
ZXNzaW9uLmNwcCAqLywKIAkJCQlBMTQ5MURBMjFGODU5RDg3MDA5NUY1RDQgLyogUGF5bWVudFNl
c3Npb24uaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gYXBwbGVwYXk7CkBAIC0zMDM4NSw2ICszMDM4
OCw3IEBACiAJCQkJMUFGNUU0RTIxRTU3NzlCMTAwNEExRjAxIC8qIFBhc3RlYm9hcmRXcml0ZXIu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlBMUNGRTAzMjFGOUU3MTI5MDA2NUMzNDUgLyogUGF5bWVu
dEFkZHJlc3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJREU1Rjg2MTAxRkEyMzhEOTAwNkRCNjNB
IC8qIFBheW1lbnRNZXJjaGFudFNlc3Npb25Db2NvYS5tbSBpbiBTb3VyY2VzICovLAorCQkJCUEx
QzJDNTc2MUZBMjg1MTYwMEJBNDZGQSAvKiBQYXltZW50U2Vzc2lvbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyRDZFNDY4NDE3RDY2MEY1MDBFQ0Y4QkIgLyogUERGRG9jdW1lbnRJbWFnZU1hYy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTI2NjAxRUMwMTRCM0I5QUQwMDEyQzBGRSAvKiBQbGF0Zm9y
bUV2ZW50RmFjdG9yeUlPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDQUE0ODZGMTRBMDUyNTMw
MDg4RkFDNCAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbSBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggM2E4ZGY0ZWE0ODFmZjk5MTZlNWNmNjRkYmNm
Y2M1YjIxNjIzNDAzNS4uZDM1NmIzZmE5NTcyNTc4OGJkOGNmZjFmOTA4MzJmZDBjZDEyNDVmYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTctMTAt
MjYgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtQYXltZW50IFJl
cXVlc3RdIFJlc3RyaWN0IEFQSSB1c2UgdG8gc2VjdXJlLCBzYW1lLW9yaWdpbiBmcmFtZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODg4NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBhbGxvd3Bh
eW1lbnRyZXF1ZXN0IDxpZnJhbWU+IGF0dHJpYnV0ZSBpcyBub3QgeWV0IGltcGxlbWVudGVkLCBz
byB0aGUgcmVncmVzc2lvbiBpbiBiYXNpYy5odHRwcy5odG1sIGlzIGV4cGVjdGVkLgorCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1
ZXN0L2FjdGl2ZS1kb2N1bWVudC1jcm9zcy1vcmlnaW4uaHR0cHMuc3ViLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVu
dHJlcXVlc3QvYWN0aXZlLWRvY3VtZW50LXNhbWUtb3JpZ2luLmh0dHBzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVu
dHJlcXVlc3QvYmFzaWMuaHR0cHMtZXhwZWN0ZWQudHh0OgorCiAyMDE3LTEwLTI0ICBBbmR5IEVz
dGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBJbXBs
ZW1lbnQgdGhlICJQYXltZW50UmVxdWVzdCB1cGRhdGVkIiBhbGdvcml0aG0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1
ZXN0L2FsbG93cGF5bWVudHJlcXVlc3QvYWN0aXZlLWRvY3VtZW50LWNyb3NzLW9yaWdpbi5odHRw
cy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9jdW1l
bnQtY3Jvc3Mtb3JpZ2luLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKaW5kZXggYTZjMzMyMDQ3MTA1
OWY0NWE0YzVkYzgwNmNkODA3MGNlN2QwMjQ2NS4uNjE1YmU5YjBiMDliNTZhMWExNWM0NmUwMTE1
OTRhNDM0M2EwNGVkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUt
ZG9jdW1lbnQtY3Jvc3Mtb3JpZ2luLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxs
b3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9jdW1lbnQtY3Jvc3Mtb3JpZ2luLmh0dHBzLnN1Yi1l
eHBlY3RlZC50eHQKQEAgLTEsNyArMSw1IEBACiBCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBV
UkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL2NvbW1vbi9ibGFuay5odG1sCiAKIAotRkFJ
TCBQYXltZW50UmVxdWVzdCA8aWZyYW1lIGFsbG93cGF5bWVudHJlcXVlc3Q+IGluIG5vbi1hY3Rp
dmUgZG9jdW1lbnQgKGNyb3NzLW9yaWdpbikgYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gIigpID0+
IHsKLSAgICAgICAgbmV3IGdyYWJiZWRQYXltZW50UmVxdWVzdCguLi5wYXltZW50QXJncyk7Ci0g
ICAgICB9IiBkaWQgbm90IHRocm93CitQQVNTIFBheW1lbnRSZXF1ZXN0IDxpZnJhbWUgYWxsb3dw
YXltZW50cmVxdWVzdD4gaW4gbm9uLWFjdGl2ZSBkb2N1bWVudCAoY3Jvc3Mtb3JpZ2luKSAKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9jdW1lbnQtc2FtZS1v
cmlnaW4uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUt
ZG9jdW1lbnQtc2FtZS1vcmlnaW4uaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGM4Yzk2MjgzYzQ3
ZjhkNGI2NjlmZmY1OTJiZWQ1NmNjNjMwZTIyMTEuLjAxZTg3OGVlNTBiOTZkODQ1OGM5NjQ3OGQ1
MjliYTRiYWZkYjQwMzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3QvYWN0aXZl
LWRvY3VtZW50LXNhbWUtb3JpZ2luLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3Bh
eW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1zYW1lLW9yaWdpbi5odHRwcy1leHBlY3RlZC50
eHQKQEAgLTEsNiArMSw0IEBACiAKIAotRkFJTCBQYXltZW50UmVxdWVzdCA8aWZyYW1lIGFsbG93
cGF5bWVudHJlcXVlc3Q+IGluIG5vbi1hY3RpdmUgZG9jdW1lbnQgKHNhbWUtb3JpZ2luKSBhc3Nl
cnRfdGhyb3dzOiBmdW5jdGlvbiAiKCkgPT4gewotICAgICAgICBuZXcgZ3JhYmJlZFBheW1lbnRS
ZXF1ZXN0KC4uLnBheW1lbnRBcmdzKTsKLSAgICAgIH0iIGRpZCBub3QgdGhyb3cKK1BBU1MgUGF5
bWVudFJlcXVlc3QgPGlmcmFtZSBhbGxvd3BheW1lbnRyZXF1ZXN0PiBpbiBub24tYWN0aXZlIGRv
Y3VtZW50IChzYW1lLW9yaWdpbikgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVl
c3QvYmFzaWMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9iYXNp
Yy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNTY5NGE4YWNjZGQ3OWI4Mjg4NmQ0NDc2NjBiZDAy
ZGI0MmJlNTJkZS4uZjk0MTRlMDdhMGQ1ZjAyYWRkZjQ5ZTAyNzk3MDFkNzNjYTNmMGYxOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9iYXNpYy5odHRwcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9iYXNpYy5odHRwcy1leHBlY3RlZC50eHQKQEAg
LTEsNCArMSw0IEBACiAKIAotUEFTUyBQYXltZW50UmVxdWVzdCA8aWZyYW1lIGFsbG93cGF5bWVu
dHJlcXVlc3Q+IGJhc2ljIAorRkFJTCBQYXltZW50UmVxdWVzdCA8aWZyYW1lIGFsbG93cGF5bWVu
dHJlcXVlc3Q+IGJhc2ljIFRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9t
IGFuIGluc2VjdXJlIGRvY3VtZW50LgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325059</attachid>
            <date>2017-10-26 15:00:17 -0700</date>
            <delta_ts>2017-10-26 15:05:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178887-20171026150016.patch</filename>
            <type>text/plain</type>
            <size>20610</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0MDQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDQ0ZGEwNzNiNjk2Nzk5
MTc1Y2QxNzg3MmE0YTRhZTkxM2JiNTM1NS4uMjdlODYxOWI0OGNjYjNlZjY2ZDI1NTJkMmRlMjQ3
MDM2ODg3MWUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE3LTEwLTI2ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBS
ZXN0cmljdCBBUEkgdXNlIHRvIHNlY3VyZSwgc2FtZS1vcmlnaW4gZnJhbWVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg4ODcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXVzZSB0aGUgYWNjZXNzIGNo
ZWNrcyBmcm9tIEFwcGxlIFBheSB0byByZXN0cmljdCBQYXltZW50UmVxdWVzdCBBUEkgdXNhZ2Ug
dG8gc2VjdXJlIGZyYW1lcworICAgICAgICBpbiB0aGUgc2FtZSBvcmlnaW4gYXMgdGhlIG1haW4g
ZnJhbWUuCisKKyAgICAgICAgUHJvZ3Jlc3NlcyBhY3RpdmUtZG9jdW1lbnQtY3Jvc3Mtb3JpZ2lu
Lmh0dHBzLnN1Yi5odG1sIGFuZAorICAgICAgICBhY3RpdmUtZG9jdW1lbnQtc2FtZS1vcmlnaW4u
aHR0cHMuaHRtbCBmcm9tIHdlYi1wbGF0Zm9ybS10ZXN0cy4gUmVncmVzc2VzIGJhc2ljLmh0dHBz
Lmh0bWwKKyAgICAgICAgc2luY2UgdGhlIGFsbG93cGF5bWVudHJlcXVlc3QgPGlmcmFtZT4gYXR0
cmlidXRlIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxl
cGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Np
b246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246OnN1cHBvcnRz
VmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246OmNhbk1ha2VQYXlt
ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246OmNhbk1ha2VQYXltZW50
c1dpdGhBY3RpdmVDYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6b3Bl
blBheW1lbnRTZXR1cCk6CisgICAgICAgIChXZWJDb3JlOjppc1NlY3VyZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpjYW5DYWxsQXBwbGVQYXlTZXNzaW9uQVBJcyk6IERlbGV0ZWQuCisg
ICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6aXNTZWN1cmUpOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFNlc3Np
b246OmNhbkNyZWF0ZVNlc3Npb24pOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVu
dFNlc3Npb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5k
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRIYW5kbGVyOjpjYW5DcmVhdGVTZXNz
aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmg6
CisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTctMTAtMjYgIEFudG9pbmUgUXVp
bnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgRnJhbWVWaWV3OjpzZXJ2
aWNlU2NyaXB0ZWRBbmltYXRpb25zIGFuZCBEb2N1bWVudDo6c2VydmljZVNjcmlwdGVkQW5pbWF0
aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNl
c3Npb24uY3BwCmluZGV4IGY0YzM1YzllMWI3ZmI2ZTdiOGVlN2YzNGU1MTQwZjNlYmZjNjU1OGEu
LjRjM2U5OGE3MDlkYTg3ZDgzYjYwNGYwYmQyMTBiMmE5NTFkNGU4YmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKQEAgLTM5
OCw0NCArMzk4LDkgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFNoaXBwaW5nTWV0aG9kVXBkYXRlPiBj
b252ZXJ0QW5kVmFsaWRhdGUoQXBwbGVQYXlTaGlwcGluZ01ldGgKICAgICByZXR1cm4gV1RGTW92
ZShjb252ZXJ0ZWRVcGRhdGUpOwogfQogCi1zdGF0aWMgYm9vbCBpc1NlY3VyZShEb2N1bWVudExv
YWRlciYgZG9jdW1lbnRMb2FkZXIpCi17Ci0gICAgaWYgKCFkb2N1bWVudExvYWRlci5yZXNwb25z
ZSgpLnVybCgpLnByb3RvY29sSXMoImh0dHBzIikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIGlmICghZG9jdW1lbnRMb2FkZXIucmVzcG9uc2UoKS5jZXJ0aWZpY2F0ZUluZm8oKSB8fCBk
b2N1bWVudExvYWRlci5yZXNwb25zZSgpLmNlcnRpZmljYXRlSW5mbygpLT5jb250YWluc05vblJv
b3RTSEExU2lnbmVkQ2VydGlmaWNhdGUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KLXN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiBjYW5DYWxsQXBwbGVQ
YXlTZXNzaW9uQVBJcyhEb2N1bWVudCYgZG9jdW1lbnQpCi17Ci0gICAgaWYgKCFpc1NlY3VyZSgq
ZG9jdW1lbnQubG9hZGVyKCkpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFj
Y2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIGNhbGwgYW4gQXBwbGVQYXlTZXNzaW9uIEFQSSBmcm9tIGFu
IGluc2VjdXJlIGRvY3VtZW50LiIgfTsKLQotICAgIGF1dG8mIHRvcERvY3VtZW50ID0gZG9jdW1l
bnQudG9wRG9jdW1lbnQoKTsKLSAgICBpZiAoJmRvY3VtZW50ICE9ICZ0b3BEb2N1bWVudCkgewot
ICAgICAgICBhdXRvJiB0b3BPcmlnaW4gPSB0b3BEb2N1bWVudC50b3BPcmlnaW4oKTsKLQotICAg
ICAgICBpZiAoIWRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuaXNTYW1lU2NoZW1lSG9zdFBvcnQo
dG9wT3JpZ2luKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNz
RXJyb3IsICJUcnlpbmcgdG8gY2FsbCBhbiBBcHBsZVBheVNlc3Npb24gQVBJIGZyb20gYSBkb2N1
bWVudCB3aXRoIGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4gdGhhbiBpdHMgdG9wLWxldmVs
IGZyYW1lLiIgfTsKLQotICAgICAgICBmb3IgKGF1dG8qIGFuY2VzdG9yRG9jdW1lbnQgPSBkb2N1
bWVudC5wYXJlbnREb2N1bWVudCgpOyBhbmNlc3RvckRvY3VtZW50ICE9ICZ0b3BEb2N1bWVudDsg
YW5jZXN0b3JEb2N1bWVudCA9IGFuY2VzdG9yRG9jdW1lbnQtPnBhcmVudERvY3VtZW50KCkpIHsK
LSAgICAgICAgICAgIGlmICghaXNTZWN1cmUoKmFuY2VzdG9yRG9jdW1lbnQtPmxvYWRlcigpKSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAi
VHJ5aW5nIHRvIGNhbGwgYW4gQXBwbGVQYXlTZXNzaW9uIEFQSSBmcm9tIGEgZG9jdW1lbnQgd2l0
aCBhbiBpbnNlY3VyZSBwYXJlbnQgZnJhbWUuIiB9OwotCi0gICAgICAgICAgICBpZiAoIWFuY2Vz
dG9yRG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkuaXNTYW1lU2NoZW1lSG9zdFBvcnQodG9wT3Jp
Z2luKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vy
cm9yLCAiVHJ5aW5nIHRvIGNhbGwgYW4gQXBwbGVQYXlTZXNzaW9uIEFQSSBmcm9tIGEgZG9jdW1l
bnQgd2l0aCBhbiBkaWZmZXJlbnQgc2VjdXJpdHkgb3JpZ2luIHRoYW4gaXRzIHRvcC1sZXZlbCBm
cmFtZS4iIH07Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4geyB9OwotfQotCiBFeGNl
cHRpb25PcjxSZWY8QXBwbGVQYXlTZXNzaW9uPj4gQXBwbGVQYXlTZXNzaW9uOjpjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50LCB1bnNpZ25lZCB2ZXJzaW9uLCBBcHBsZVBheVBheW1lbnRSZXF1ZXN0
JiYgcGF5bWVudFJlcXVlc3QpCiB7Ci0gICAgYXV0byBjYW5DYWxsID0gY2FuQ2FsbEFwcGxlUGF5
U2Vzc2lvbkFQSXMoZG9jdW1lbnQpOworICAgIGF1dG8gY2FuQ2FsbCA9IGNhbkNyZWF0ZVNlc3Np
b24oZG9jdW1lbnQpOwogICAgIGlmIChjYW5DYWxsLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICBy
ZXR1cm4gY2FuQ2FsbC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKQEAgLTQ3MCw3ICs0MzUsNyBAQCBF
eGNlcHRpb25Pcjxib29sPiBBcHBsZVBheVNlc3Npb246OnN1cHBvcnRzVmVyc2lvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBzY3JpcAogCiAgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxE
b2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAKLSAgICBhdXRvIGNhbkNhbGwgPSBj
YW5DYWxsQXBwbGVQYXlTZXNzaW9uQVBJcyhkb2N1bWVudCk7CisgICAgYXV0byBjYW5DYWxsID0g
Y2FuQ3JlYXRlU2Vzc2lvbihkb2N1bWVudCk7CiAgICAgaWYgKGNhbkNhbGwuaGFzRXhjZXB0aW9u
KCkpCiAgICAgICAgIHJldHVybiBjYW5DYWxsLnJlbGVhc2VFeGNlcHRpb24oKTsKIApAQCAtNDkw
LDcgKzQ1NSw3IEBAIEV4Y2VwdGlvbk9yPGJvb2w+IEFwcGxlUGF5U2Vzc2lvbjo6Y2FuTWFrZVBh
eW1lbnRzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwCiB7CiAgICAgYXV0byYgZG9jdW1l
bnQgPSBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAKLSAgICBh
dXRvIGNhbkNhbGwgPSBjYW5DYWxsQXBwbGVQYXlTZXNzaW9uQVBJcyhkb2N1bWVudCk7CisgICAg
YXV0byBjYW5DYWxsID0gY2FuQ3JlYXRlU2Vzc2lvbihkb2N1bWVudCk7CiAgICAgaWYgKGNhbkNh
bGwuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBjYW5DYWxsLnJlbGVhc2VFeGNlcHRp
b24oKTsKIApAQCAtNTAxLDcgKzQ2Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5U2Vz
c2lvbjo6Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoU2NyaXB0RXhlY3V0aW9uCiB7CiAg
ICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCk7CiAKLSAgICBhdXRvIGNhbkNhbGwgPSBjYW5DYWxsQXBwbGVQYXlTZXNzaW9uQVBJcyhk
b2N1bWVudCk7CisgICAgYXV0byBjYW5DYWxsID0gY2FuQ3JlYXRlU2Vzc2lvbihkb2N1bWVudCk7
CiAgICAgaWYgKGNhbkNhbGwuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBjYW5DYWxs
LnJlbGVhc2VFeGNlcHRpb24oKTsKIApAQCAtNTI4LDcgKzQ5Myw3IEBAIEV4Y2VwdGlvbk9yPHZv
aWQ+IEFwcGxlUGF5U2Vzc2lvbjo6b3BlblBheW1lbnRTZXR1cChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBzY3JpCiB7CiAgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCk7CiAKLSAgICBhdXRvIGNhbkNhbGwgPSBjYW5DYWxsQXBwbGVQ
YXlTZXNzaW9uQVBJcyhkb2N1bWVudCk7CisgICAgYXV0byBjYW5DYWxsID0gY2FuQ3JlYXRlU2Vz
c2lvbihkb2N1bWVudCk7CiAgICAgaWYgKGNhbkNhbGwuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAg
IHJldHVybiBjYW5DYWxsLnJlbGVhc2VFeGNlcHRpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTZXNzaW9uLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44N2E0
NGY0YjM1YmIyZmI0MjkzZTMwNGYyN2YwNmI2ZTZlYmExOTQ5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHAKQEAgLTAs
MCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQ
YXltZW50U2Vzc2lvbi5oIgorCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKworI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBib29sIGlzU2VjdXJl
KERvY3VtZW50TG9hZGVyJiBkb2N1bWVudExvYWRlcikKK3sKKyAgICBpZiAoIWRvY3VtZW50TG9h
ZGVyLnJlc3BvbnNlKCkudXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaWYgKCFkb2N1bWVudExvYWRlci5yZXNwb25zZSgpLmNlcnRpZmljYXRl
SW5mbygpIHx8IGRvY3VtZW50TG9hZGVyLnJlc3BvbnNlKCkuY2VydGlmaWNhdGVJbmZvKCktPmNv
bnRhaW5zTm9uUm9vdFNIQTFTaWduZWRDZXJ0aWZpY2F0ZSgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gUGF5bWVudFNl
c3Npb246OmNhbkNyZWF0ZVNlc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50KQoreworICAgIGlmICgh
ZG9jdW1lbnQuZnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nl
c3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGFuIGlu
YWN0aXZlIGRvY3VtZW50LiIgfTsKKworICAgIGlmICghaXNTZWN1cmUoKmRvY3VtZW50LmxvYWRl
cigpKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRy
eWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGFuIGluc2VjdXJlIGRvY3Vt
ZW50LiIgfTsKKworICAgIGF1dG8mIHRvcERvY3VtZW50ID0gZG9jdW1lbnQudG9wRG9jdW1lbnQo
KTsKKyAgICBpZiAoJmRvY3VtZW50ICE9ICZ0b3BEb2N1bWVudCkgeworICAgICAgICBhdXRvJiB0
b3BPcmlnaW4gPSB0b3BEb2N1bWVudC50b3BPcmlnaW4oKTsKKworICAgICAgICBpZiAoIWRvY3Vt
ZW50LnNlY3VyaXR5T3JpZ2luKCkuaXNTYW1lU2NoZW1lSG9zdFBvcnQodG9wT3JpZ2luKSkKKyAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcg
dG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gZGlm
ZmVyZW50IHNlY3VyaXR5IG9yaWdpbiB0aGFuIGl0cyB0b3AtbGV2ZWwgZnJhbWUuIiB9OworCisg
ICAgICAgIGZvciAoYXV0byogYW5jZXN0b3JEb2N1bWVudCA9IGRvY3VtZW50LnBhcmVudERvY3Vt
ZW50KCk7IGFuY2VzdG9yRG9jdW1lbnQgIT0gJnRvcERvY3VtZW50OyBhbmNlc3RvckRvY3VtZW50
ID0gYW5jZXN0b3JEb2N1bWVudC0+cGFyZW50RG9jdW1lbnQoKSkgeworICAgICAgICAgICAgaWYg
KCFpc1NlY3VyZSgqYW5jZXN0b3JEb2N1bWVudC0+bG9hZGVyKCkpKQorICAgICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQg
YW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gaW5zZWN1cmUgcGFy
ZW50IGZyYW1lLiIgfTsKKworICAgICAgICAgICAgaWYgKCFhbmNlc3RvckRvY3VtZW50LT5zZWN1
cml0eU9yaWdpbigpLmlzU2FtZVNjaGVtZUhvc3RQb3J0KHRvcE9yaWdpbikpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBz
dGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGEgZG9jdW1lbnQgd2l0aCBhbiBkaWZmZXJl
bnQgc2VjdXJpdHkgb3JpZ2luIHRoYW4gaXRzIHRvcC1sZXZlbCBmcmFtZS4iIH07CisgICAgICAg
IH0KKyAgICB9CisKKyAgICByZXR1cm4geyB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5oCmluZGV4IDFhMzBhMWRiZTZlMjI0YmFiNGFl
Yjk4MDMyZGMxMTA5ZTg4NzlhN2MuLjRiMzk3NzU0MDBhZGU3N2M1Mzg1ZDE2NWE0MDU0MjQ1NWQw
Mjk1YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVu
dFNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRT
ZXNzaW9uLmgKQEAgLTI4LDEwICsyOCwxMiBAQAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKICNp
bmNsdWRlICJBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oIgorI2luY2x1ZGUgIkV4Y2Vw
dGlvbk9yLmgiCiAjaW5jbHVkZSAiUGF5bWVudFNlc3Npb25CYXNlLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBQYXltZW50OwogY2xhc3MgUGF5bWVu
dENvbnRhY3Q7CiBjbGFzcyBQYXltZW50TWV0aG9kOwpAQCAtMzksNiArNDEsOCBAQCBjbGFzcyBV
Ukw7CiAKIGNsYXNzIFBheW1lbnRTZXNzaW9uIDogcHVibGljIHZpcnR1YWwgUGF5bWVudFNlc3Np
b25CYXNlIHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gY2FuQ3JlYXRl
U2Vzc2lvbihEb2N1bWVudCYpOworCiAgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlTWVyY2hhbnQo
Y29uc3QgVVJMJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRBdXRob3JpemVQYXltZW50KGNv
bnN0IFBheW1lbnQmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nTWV0
aG9kKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYp
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3Qv
UGF5bWVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVz
dC9QYXltZW50SGFuZGxlci5jcHAKaW5kZXggZjM2NTU3NTYzOGE1YjQ0Nzk3ODg5ODg3YjU3NGJh
MDkzNzcyZDRhYi4uODY1MjVmOTgxNjA2NmYxNDExNDY2ODdkNzcyNmM1MDI5MDZmY2E0ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXlt
ZW50SGFuZGxlci5jcHAKQEAgLTQ4LDYgKzQ4LDE2IEBAIFJlZlB0cjxQYXltZW50SGFuZGxlcj4g
UGF5bWVudEhhbmRsZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFBheW1lbnRSZXF1ZXN0
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK0V4Y2VwdGlvbk9yPHZvaWQ+IFBheW1lbnRIYW5k
bGVyOjpjYW5DcmVhdGVTZXNzaW9uKERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyNpZiBFTkFCTEUo
QVBQTEVfUEFZKQorICAgIHJldHVybiBQYXltZW50U2Vzc2lvbjo6Y2FuQ3JlYXRlU2Vzc2lvbihk
b2N1bWVudCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkb2N1bWVudCk7CisgICAgcmV0dXJu
IHsgfTsKKyNlbmRpZgorfQorCiBib29sIFBheW1lbnRIYW5kbGVyOjpoYXNBY3RpdmVTZXNzaW9u
KERvY3VtZW50JiBkb2N1bWVudCkKIHsKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5o
CmluZGV4IDUzOWYxZGJjNmM4NWU4NDgzODNmOWYxYzYxZDU4ZWUwZDc4NTcwZmMuLjg2YzkwMzJj
MWNiZDgwNWEzMDE3ZjExZjhjNGYyODc0YTU2NTkwOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmgKQEAgLTQyLDYg
KzQyLDcgQEAgY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBQYXltZW50SGFuZGxlciA6IHB1YmxpYyB2
aXJ0dWFsIFBheW1lbnRTZXNzaW9uQmFzZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxQ
YXltZW50SGFuZGxlcj4gY3JlYXRlKERvY3VtZW50JiwgUGF5bWVudFJlcXVlc3QmLCBjb25zdCBQ
YXltZW50UmVxdWVzdDo6TWV0aG9kSWRlbnRpZmllciYpOworICAgIHN0YXRpYyBFeGNlcHRpb25P
cjx2b2lkPiBjYW5DcmVhdGVTZXNzaW9uKERvY3VtZW50Jik7CiAgICAgc3RhdGljIGJvb2wgaGFz
QWN0aXZlU2Vzc2lvbihEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lk
PiBjb252ZXJ0RGF0YShKU0M6OkpTVmFsdWUmJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcAppbmRleCBh
NmFmYjIxMzBkYTZhOTk3MzQwMWI5OTAxM2M1ZTQ0ZTBiNjBjZjg1Li42YTk1NGU4ZThiN2Q0ZTcx
YTQzODQ4ZjAzNjRhODBkYjMzMTA2MzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcApAQCAtMzE0LDcgKzMx
NCw5IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxzdGQ6OnR1cGxlPFN0cmluZywgVmVjdG9yPFN0cmlu
Zz4+PiBjaGVja0FuZENhbm9uaWNhbGl6ZURldGFpCiAvLyBodHRwczovL3d3dy53My5vcmcvVFIv
cGF5bWVudC1yZXF1ZXN0LyNjb25zdHJ1Y3RvcgogRXhjZXB0aW9uT3I8UmVmPFBheW1lbnRSZXF1
ZXN0Pj4gUGF5bWVudFJlcXVlc3Q6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFZlY3RvcjxQ
YXltZW50TWV0aG9kRGF0YT4mJiBtZXRob2REYXRhLCBQYXltZW50RGV0YWlsc0luaXQmJiBkZXRh
aWxzLCBQYXltZW50T3B0aW9ucyYmIG9wdGlvbnMpCiB7Ci0gICAgLy8gRklYTUU6IENoZWNrIGlm
IHRoaXMgZG9jdW1lbnQgaXMgYWxsb3dlZCB0byBhY2Nlc3MgdGhlIFBheW1lbnRSZXF1ZXN0IEFQ
SSBiYXNlZCBvbiB0aGUgYWxsb3dwYXltZW50cmVxdWVzdCBhdHRyaWJ1dGUuCisgICAgYXV0byBj
YW5DcmVhdGVTZXNzaW9uID0gUGF5bWVudEhhbmRsZXI6OmNhbkNyZWF0ZVNlc3Npb24oZG9jdW1l
bnQpOworICAgIGlmIChjYW5DcmVhdGVTZXNzaW9uLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgY2FuQ3JlYXRlU2Vzc2lvbi5yZWxlYXNl
RXhjZXB0aW9uKCkucmVsZWFzZU1lc3NhZ2UoKSB9OwogCiAgICAgaWYgKGRldGFpbHMuaWQuaXNO
dWxsKCkpCiAgICAgICAgIGRldGFpbHMuaWQgPSBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggNjQwMDA4ZGMyZDNmZDZkODZlMGQ5OGRkODcxYzA1OTM5YmQ2N2FhNi4uM2I5NWVhYzVj
NmYzZmIxN2JkZjNiYzU4YTJiNjFmYTNkMTdhZjZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjg0OSw2ICsyODQ5LDcgQEAK
IAkJQTFCRjZCODMxQUE5NkM3RDAwQUY0QThBIC8qIE1vY2tDb250ZW50RmlsdGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUJGNkI4MTFBQTk2QzdE
MDBBRjRBOEEgLyogTW9ja0NvbnRlbnRGaWx0ZXIuaCAqLzsgfTsKIAkJQTFDMTUwNzkxRTNGMkIz
RTAwMzJDOThDIC8qIFByZXZpZXdDb252ZXJ0ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUMxNTA3NzFFM0YyQjNFMDAzMkM5OEMgLyogUHJldmll
d0NvbnZlcnRlci5tbSAqLzsgfTsKIAkJQTFDMTUwN0ExRTNGMkIzRTAwMzJDOThDIC8qIFByZXZp
ZXdDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEExQzE1MDc4MUUzRjJCM0UwMDMyQzk4QyAvKiBQcmV2aWV3Q29udmVydGVyLmggKi87IH07
CisJCUExQzJDNTc2MUZBMjg1MTYwMEJBNDZGQSAvKiBQYXltZW50U2Vzc2lvbi5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUMyQzU3NTFGQTI4NTE2
MDBCQTQ2RkEgLyogUGF5bWVudFNlc3Npb24uY3BwICovOyB9OwogCQlBMUNCRUY1MzFGOUVFRTc1
MDAyOERFN0MgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQ0JFRjUwMUY5RUVFNzUwMDI4
REU3QyAvKiBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5oICovOyB9OwogCQlBMUNC
RUY1NDFGOUVFRTc1MDAyOERFN0MgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFDQkVG
NTExRjlFRUU3NTAwMjhERTdDIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNw
cCAqLzsgfTsKIAkJQTFDQkVGNjExRjlGMDkwNDAwMjhERTdDIC8qIEpTQXBwbGVQYXlQYXltZW50
TWV0aG9kVXBkYXRlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTFDQkVGNUYxRjlGMDkwMjAwMjhERTdDIC8qIEpTQXBwbGVQYXlQYXltZW50
TWV0aG9kVXBkYXRlRXZlbnQuY3BwICovOyB9OwpAQCAtMTA2NzksNiArMTA2ODAsNyBAQAogCQlB
MUJGNkI4MTFBQTk2QzdEMDBBRjRBOEEgLyogTW9ja0NvbnRlbnRGaWx0ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0NvbnRlbnRGaWx0ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTFDMTUwNzcxRTNGMkIzRTAwMzJDOThDIC8qIFByZXZpZXdDb252
ZXJ0ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcmV2aWV3
Q29udmVydGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUMxNTA3ODFFM0Yy
QjNFMDAzMkM5OEMgLyogUHJldmlld0NvbnZlcnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQcmV2aWV3Q29udmVydGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUExQzJDNTc1MUZBMjg1MTYwMEJBNDZGQSAvKiBQYXltZW50U2Vzc2lvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQYXltZW50U2Vzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUExQzdGQUExMTMzQTVEMzUwMEQ2NzMyRCAvKiBKU1hQYXRoUmVzdWx0Q3VzdG9tLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTWFBhdGhSZXN1bHRDdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUNCRUY1MDFGOUVFRTc1MDAy
OERFN0MgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTFDQkVGNTExRjlFRUU3NTAwMjhERTdDIC8qIEFwcGxlUGF5UGF5bWVudE1l
dGhvZFVwZGF0ZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFwcGxlUGF5UGF5bWVudE1l
dGhvZFVwZGF0ZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NDQ5
LDYgKzE1NDUxLDcgQEAKIAkJCQkxQThBNjQzOTFEMTlGQzUzMDBEMEUwMEYgLyogUGF5bWVudE1l
dGhvZC5oICovLAogCQkJCTFBOEE2NDY2MUQxOUZERkYwMEQwRTAwRiAvKiBQYXltZW50UmVxdWVz
dFZhbGlkYXRvci5oICovLAogCQkJCTFBOEE2NDY1MUQxOUZERkYwMEQwRTAwRiAvKiBQYXltZW50
UmVxdWVzdFZhbGlkYXRvci5tbSAqLywKKwkJCQlBMUMyQzU3NTFGQTI4NTE2MDBCQTQ2RkEgLyog
UGF5bWVudFNlc3Npb24uY3BwICovLAogCQkJCUExNDkxREEyMUY4NTlEODcwMDk1RjVENCAvKiBQ
YXltZW50U2Vzc2lvbi5oICovLAogCQkJKTsKIAkJCXBhdGggPSBhcHBsZXBheTsKQEAgLTMwMzg1
LDYgKzMwMzg4LDcgQEAKIAkJCQkxQUY1RTRFMjFFNTc3OUIxMDA0QTFGMDEgLyogUGFzdGVib2Fy
ZFdyaXRlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExQ0ZFMDMyMUY5RTcxMjkwMDY1QzM0NSAv
KiBQYXltZW50QWRkcmVzcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlERTVGODYxMDFGQTIzOEQ5
MDA2REI2M0EgLyogUGF5bWVudE1lcmNoYW50U2Vzc2lvbkNvY29hLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJQTFDMkM1NzYxRkEyODUxNjAwQkE0NkZBIC8qIFBheW1lbnRTZXNzaW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTJENkU0Njg0MTdENjYwRjUwMEVDRjhCQiAvKiBQREZEb2N1bWVudElt
YWdlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMjY2MDFFQzAxNEIzQjlBRDAwMTJDMEZFIC8q
IFBsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBQTQ4NkYx
NEEwNTI1MzAwODhGQUM0IC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAzYThkZjRlYTQ4MWZmOTkxNmU1
Y2Y2NGRiY2ZjYzViMjE2MjM0MDM1Li5kMzU2YjNmYTk1NzI1Nzg4YmQ4Y2ZmMWY5MDgzMmZkMGNk
MTI0NWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAxNy0xMC0yNiAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW1Bh
eW1lbnQgUmVxdWVzdF0gUmVzdHJpY3QgQVBJIHVzZSB0byBzZWN1cmUsIHNhbWUtb3JpZ2luIGZy
YW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4
ODg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhl
IGFsbG93cGF5bWVudHJlcXVlc3QgPGlmcmFtZT4gYXR0cmlidXRlIGlzIG5vdCB5ZXQgaW1wbGVt
ZW50ZWQsIHNvIHRoZSByZWdyZXNzaW9uIGluIGJhc2ljLmh0dHBzLmh0bWwgaXMgZXhwZWN0ZWQu
CisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5
bWVudHJlcXVlc3QvYWN0aXZlLWRvY3VtZW50LWNyb3NzLW9yaWdpbi5odHRwcy5zdWItZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxs
b3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9jdW1lbnQtc2FtZS1vcmlnaW4uaHR0cHMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxs
b3dwYXltZW50cmVxdWVzdC9iYXNpYy5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIwMTctMTAtMjQg
IEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtQYXltZW50IFJlcXVl
c3RdIEltcGxlbWVudCB0aGUgIlBheW1lbnRSZXF1ZXN0IHVwZGF0ZWQiIGFsZ29yaXRobQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9jdW1lbnQtY3Jvc3Mtb3Jp
Z2luLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2
ZS1kb2N1bWVudC1jcm9zcy1vcmlnaW4uaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAppbmRleCBhNmMz
MzIwNDcxMDU5ZjQ1YTRjNWRjODA2Y2Q4MDcwY2U3ZDAyNDY1Li42MTViZTliMGIwOWI1NmExYTE1
YzQ2ZTAxMTU5NGE0MzQzYTA0ZWRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0
L2FjdGl2ZS1kb2N1bWVudC1jcm9zcy1vcmlnaW4uaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1jcm9zcy1vcmlnaW4uaHR0
cHMuc3ViLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDUgQEAKIEJsb2NrZWQgYWNjZXNzIHRvIGV4
dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvY29tbW9uL2JsYW5rLmh0bWwK
IAogCi1GQUlMIFBheW1lbnRSZXF1ZXN0IDxpZnJhbWUgYWxsb3dwYXltZW50cmVxdWVzdD4gaW4g
bm9uLWFjdGl2ZSBkb2N1bWVudCAoY3Jvc3Mtb3JpZ2luKSBhc3NlcnRfdGhyb3dzOiBmdW5jdGlv
biAiKCkgPT4gewotICAgICAgICBuZXcgZ3JhYmJlZFBheW1lbnRSZXF1ZXN0KC4uLnBheW1lbnRB
cmdzKTsKLSAgICAgIH0iIGRpZCBub3QgdGhyb3cKK1BBU1MgUGF5bWVudFJlcXVlc3QgPGlmcmFt
ZSBhbGxvd3BheW1lbnRyZXF1ZXN0PiBpbiBub24tYWN0aXZlIGRvY3VtZW50IChjcm9zcy1vcmln
aW4pIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1bWVu
dC1zYW1lLW9yaWdpbi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0
L2FjdGl2ZS1kb2N1bWVudC1zYW1lLW9yaWdpbi5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYzhj
OTYyODNjNDdmOGQ0YjY2OWZmZjU5MmJlZDU2Y2M2MzBlMjIxMS4uMDFlODc4ZWU1MGI5NmQ4NDU4
Yzk2NDc4ZDUyOWJhNGJhZmRiNDAzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVz
dC9hY3RpdmUtZG9jdW1lbnQtc2FtZS1vcmlnaW4uaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L2FsbG93cGF5bWVudHJlcXVlc3QvYWN0aXZlLWRvY3VtZW50LXNhbWUtb3JpZ2luLmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtMSw2ICsxLDQgQEAKIAogCi1GQUlMIFBheW1lbnRSZXF1ZXN0IDxpZnJh
bWUgYWxsb3dwYXltZW50cmVxdWVzdD4gaW4gbm9uLWFjdGl2ZSBkb2N1bWVudCAoc2FtZS1vcmln
aW4pIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICIoKSA9PiB7Ci0gICAgICAgIG5ldyBncmFiYmVk
UGF5bWVudFJlcXVlc3QoLi4ucGF5bWVudEFyZ3MpOwotICAgICAgfSIgZGlkIG5vdCB0aHJvdwor
UEFTUyBQYXltZW50UmVxdWVzdCA8aWZyYW1lIGFsbG93cGF5bWVudHJlcXVlc3Q+IGluIG5vbi1h
Y3RpdmUgZG9jdW1lbnQgKHNhbWUtb3JpZ2luKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXlt
ZW50cmVxdWVzdC9iYXNpYy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1
ZXN0L2Jhc2ljLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA1Njk0YThhY2NkZDc5YjgyODg2ZDQ0
NzY2MGJkMDJkYjQyYmU1MmRlLi5mOTQxNGUwN2EwZDVmMDJhZGRmNDllMDI3OTcwMWQ3M2NhM2Yw
ZjE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2Jhc2ljLmh0dHBzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2Jhc2ljLmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtMSw0ICsxLDQgQEAKIAogCi1QQVNTIFBheW1lbnRSZXF1ZXN0IDxpZnJhbWUgYWxs
b3dwYXltZW50cmVxdWVzdD4gYmFzaWMgCitGQUlMIFBheW1lbnRSZXF1ZXN0IDxpZnJhbWUgYWxs
b3dwYXltZW50cmVxdWVzdD4gYmFzaWMgVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNz
aW9uIGZyb20gYW4gaW5zZWN1cmUgZG9jdW1lbnQuCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325061</attachid>
            <date>2017-10-26 15:05:05 -0700</date>
            <delta_ts>2017-10-26 15:56:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178887-20171026150504.patch</filename>
            <type>text/plain</type>
            <size>20694</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0MDQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDQ0ZGEwNzNiNjk2Nzk5
MTc1Y2QxNzg3MmE0YTRhZTkxM2JiNTM1NS4uMjdlODYxOWI0OGNjYjNlZjY2ZDI1NTJkMmRlMjQ3
MDM2ODg3MWUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE3LTEwLTI2ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBS
ZXN0cmljdCBBUEkgdXNlIHRvIHNlY3VyZSwgc2FtZS1vcmlnaW4gZnJhbWVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg4ODcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXVzZSB0aGUgYWNjZXNzIGNo
ZWNrcyBmcm9tIEFwcGxlIFBheSB0byByZXN0cmljdCBQYXltZW50UmVxdWVzdCBBUEkgdXNhZ2Ug
dG8gc2VjdXJlIGZyYW1lcworICAgICAgICBpbiB0aGUgc2FtZSBvcmlnaW4gYXMgdGhlIG1haW4g
ZnJhbWUuCisKKyAgICAgICAgUHJvZ3Jlc3NlcyBhY3RpdmUtZG9jdW1lbnQtY3Jvc3Mtb3JpZ2lu
Lmh0dHBzLnN1Yi5odG1sIGFuZAorICAgICAgICBhY3RpdmUtZG9jdW1lbnQtc2FtZS1vcmlnaW4u
aHR0cHMuaHRtbCBmcm9tIHdlYi1wbGF0Zm9ybS10ZXN0cy4gUmVncmVzc2VzIGJhc2ljLmh0dHBz
Lmh0bWwKKyAgICAgICAgc2luY2UgdGhlIGFsbG93cGF5bWVudHJlcXVlc3QgPGlmcmFtZT4gYXR0
cmlidXRlIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxl
cGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Np
b246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246OnN1cHBvcnRz
VmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246OmNhbk1ha2VQYXlt
ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246OmNhbk1ha2VQYXltZW50
c1dpdGhBY3RpdmVDYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6b3Bl
blBheW1lbnRTZXR1cCk6CisgICAgICAgIChXZWJDb3JlOjppc1NlY3VyZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpjYW5DYWxsQXBwbGVQYXlTZXNzaW9uQVBJcyk6IERlbGV0ZWQuCisg
ICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6aXNTZWN1cmUpOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFNlc3Np
b246OmNhbkNyZWF0ZVNlc3Npb24pOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVu
dFNlc3Npb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5k
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRIYW5kbGVyOjpjYW5DcmVhdGVTZXNz
aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmg6
CisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTctMTAtMjYgIEFudG9pbmUgUXVp
bnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgRnJhbWVWaWV3OjpzZXJ2
aWNlU2NyaXB0ZWRBbmltYXRpb25zIGFuZCBEb2N1bWVudDo6c2VydmljZVNjcmlwdGVkQW5pbWF0
aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNl
c3Npb24uY3BwCmluZGV4IGY0YzM1YzllMWI3ZmI2ZTdiOGVlN2YzNGU1MTQwZjNlYmZjNjU1OGEu
LjRjM2U5OGE3MDlkYTg3ZDgzYjYwNGYwYmQyMTBiMmE5NTFkNGU4YmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKQEAgLTM5
OCw0NCArMzk4LDkgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFNoaXBwaW5nTWV0aG9kVXBkYXRlPiBj
b252ZXJ0QW5kVmFsaWRhdGUoQXBwbGVQYXlTaGlwcGluZ01ldGgKICAgICByZXR1cm4gV1RGTW92
ZShjb252ZXJ0ZWRVcGRhdGUpOwogfQogCi1zdGF0aWMgYm9vbCBpc1NlY3VyZShEb2N1bWVudExv
YWRlciYgZG9jdW1lbnRMb2FkZXIpCi17Ci0gICAgaWYgKCFkb2N1bWVudExvYWRlci5yZXNwb25z
ZSgpLnVybCgpLnByb3RvY29sSXMoImh0dHBzIikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIGlmICghZG9jdW1lbnRMb2FkZXIucmVzcG9uc2UoKS5jZXJ0aWZpY2F0ZUluZm8oKSB8fCBk
b2N1bWVudExvYWRlci5yZXNwb25zZSgpLmNlcnRpZmljYXRlSW5mbygpLT5jb250YWluc05vblJv
b3RTSEExU2lnbmVkQ2VydGlmaWNhdGUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KLXN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiBjYW5DYWxsQXBwbGVQ
YXlTZXNzaW9uQVBJcyhEb2N1bWVudCYgZG9jdW1lbnQpCi17Ci0gICAgaWYgKCFpc1NlY3VyZSgq
ZG9jdW1lbnQubG9hZGVyKCkpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFj
Y2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIGNhbGwgYW4gQXBwbGVQYXlTZXNzaW9uIEFQSSBmcm9tIGFu
IGluc2VjdXJlIGRvY3VtZW50LiIgfTsKLQotICAgIGF1dG8mIHRvcERvY3VtZW50ID0gZG9jdW1l
bnQudG9wRG9jdW1lbnQoKTsKLSAgICBpZiAoJmRvY3VtZW50ICE9ICZ0b3BEb2N1bWVudCkgewot
ICAgICAgICBhdXRvJiB0b3BPcmlnaW4gPSB0b3BEb2N1bWVudC50b3BPcmlnaW4oKTsKLQotICAg
ICAgICBpZiAoIWRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuaXNTYW1lU2NoZW1lSG9zdFBvcnQo
dG9wT3JpZ2luKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNz
RXJyb3IsICJUcnlpbmcgdG8gY2FsbCBhbiBBcHBsZVBheVNlc3Npb24gQVBJIGZyb20gYSBkb2N1
bWVudCB3aXRoIGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4gdGhhbiBpdHMgdG9wLWxldmVs
IGZyYW1lLiIgfTsKLQotICAgICAgICBmb3IgKGF1dG8qIGFuY2VzdG9yRG9jdW1lbnQgPSBkb2N1
bWVudC5wYXJlbnREb2N1bWVudCgpOyBhbmNlc3RvckRvY3VtZW50ICE9ICZ0b3BEb2N1bWVudDsg
YW5jZXN0b3JEb2N1bWVudCA9IGFuY2VzdG9yRG9jdW1lbnQtPnBhcmVudERvY3VtZW50KCkpIHsK
LSAgICAgICAgICAgIGlmICghaXNTZWN1cmUoKmFuY2VzdG9yRG9jdW1lbnQtPmxvYWRlcigpKSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAi
VHJ5aW5nIHRvIGNhbGwgYW4gQXBwbGVQYXlTZXNzaW9uIEFQSSBmcm9tIGEgZG9jdW1lbnQgd2l0
aCBhbiBpbnNlY3VyZSBwYXJlbnQgZnJhbWUuIiB9OwotCi0gICAgICAgICAgICBpZiAoIWFuY2Vz
dG9yRG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkuaXNTYW1lU2NoZW1lSG9zdFBvcnQodG9wT3Jp
Z2luKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vy
cm9yLCAiVHJ5aW5nIHRvIGNhbGwgYW4gQXBwbGVQYXlTZXNzaW9uIEFQSSBmcm9tIGEgZG9jdW1l
bnQgd2l0aCBhbiBkaWZmZXJlbnQgc2VjdXJpdHkgb3JpZ2luIHRoYW4gaXRzIHRvcC1sZXZlbCBm
cmFtZS4iIH07Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4geyB9OwotfQotCiBFeGNl
cHRpb25PcjxSZWY8QXBwbGVQYXlTZXNzaW9uPj4gQXBwbGVQYXlTZXNzaW9uOjpjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50LCB1bnNpZ25lZCB2ZXJzaW9uLCBBcHBsZVBheVBheW1lbnRSZXF1ZXN0
JiYgcGF5bWVudFJlcXVlc3QpCiB7Ci0gICAgYXV0byBjYW5DYWxsID0gY2FuQ2FsbEFwcGxlUGF5
U2Vzc2lvbkFQSXMoZG9jdW1lbnQpOworICAgIGF1dG8gY2FuQ2FsbCA9IGNhbkNyZWF0ZVNlc3Np
b24oZG9jdW1lbnQpOwogICAgIGlmIChjYW5DYWxsLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICBy
ZXR1cm4gY2FuQ2FsbC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKQEAgLTQ3MCw3ICs0MzUsNyBAQCBF
eGNlcHRpb25Pcjxib29sPiBBcHBsZVBheVNlc3Npb246OnN1cHBvcnRzVmVyc2lvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBzY3JpcAogCiAgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxE
b2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAKLSAgICBhdXRvIGNhbkNhbGwgPSBj
YW5DYWxsQXBwbGVQYXlTZXNzaW9uQVBJcyhkb2N1bWVudCk7CisgICAgYXV0byBjYW5DYWxsID0g
Y2FuQ3JlYXRlU2Vzc2lvbihkb2N1bWVudCk7CiAgICAgaWYgKGNhbkNhbGwuaGFzRXhjZXB0aW9u
KCkpCiAgICAgICAgIHJldHVybiBjYW5DYWxsLnJlbGVhc2VFeGNlcHRpb24oKTsKIApAQCAtNDkw
LDcgKzQ1NSw3IEBAIEV4Y2VwdGlvbk9yPGJvb2w+IEFwcGxlUGF5U2Vzc2lvbjo6Y2FuTWFrZVBh
eW1lbnRzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwCiB7CiAgICAgYXV0byYgZG9jdW1l
bnQgPSBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAKLSAgICBh
dXRvIGNhbkNhbGwgPSBjYW5DYWxsQXBwbGVQYXlTZXNzaW9uQVBJcyhkb2N1bWVudCk7CisgICAg
YXV0byBjYW5DYWxsID0gY2FuQ3JlYXRlU2Vzc2lvbihkb2N1bWVudCk7CiAgICAgaWYgKGNhbkNh
bGwuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBjYW5DYWxsLnJlbGVhc2VFeGNlcHRp
b24oKTsKIApAQCAtNTAxLDcgKzQ2Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5U2Vz
c2lvbjo6Y2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoU2NyaXB0RXhlY3V0aW9uCiB7CiAg
ICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCk7CiAKLSAgICBhdXRvIGNhbkNhbGwgPSBjYW5DYWxsQXBwbGVQYXlTZXNzaW9uQVBJcyhk
b2N1bWVudCk7CisgICAgYXV0byBjYW5DYWxsID0gY2FuQ3JlYXRlU2Vzc2lvbihkb2N1bWVudCk7
CiAgICAgaWYgKGNhbkNhbGwuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBjYW5DYWxs
LnJlbGVhc2VFeGNlcHRpb24oKTsKIApAQCAtNTI4LDcgKzQ5Myw3IEBAIEV4Y2VwdGlvbk9yPHZv
aWQ+IEFwcGxlUGF5U2Vzc2lvbjo6b3BlblBheW1lbnRTZXR1cChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBzY3JpCiB7CiAgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCk7CiAKLSAgICBhdXRvIGNhbkNhbGwgPSBjYW5DYWxsQXBwbGVQ
YXlTZXNzaW9uQVBJcyhkb2N1bWVudCk7CisgICAgYXV0byBjYW5DYWxsID0gY2FuQ3JlYXRlU2Vz
c2lvbihkb2N1bWVudCk7CiAgICAgaWYgKGNhbkNhbGwuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAg
IHJldHVybiBjYW5DYWxsLnJlbGVhc2VFeGNlcHRpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTZXNzaW9uLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44N2E0
NGY0YjM1YmIyZmI0MjkzZTMwNGYyN2YwNmI2ZTZlYmExOTQ5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHAKQEAgLTAs
MCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQ
YXltZW50U2Vzc2lvbi5oIgorCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKworI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBib29sIGlzU2VjdXJl
KERvY3VtZW50TG9hZGVyJiBkb2N1bWVudExvYWRlcikKK3sKKyAgICBpZiAoIWRvY3VtZW50TG9h
ZGVyLnJlc3BvbnNlKCkudXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaWYgKCFkb2N1bWVudExvYWRlci5yZXNwb25zZSgpLmNlcnRpZmljYXRl
SW5mbygpIHx8IGRvY3VtZW50TG9hZGVyLnJlc3BvbnNlKCkuY2VydGlmaWNhdGVJbmZvKCktPmNv
bnRhaW5zTm9uUm9vdFNIQTFTaWduZWRDZXJ0aWZpY2F0ZSgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gUGF5bWVudFNl
c3Npb246OmNhbkNyZWF0ZVNlc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50KQoreworICAgIGlmICgh
ZG9jdW1lbnQuZnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nl
c3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGFuIGlu
YWN0aXZlIGRvY3VtZW50LiIgfTsKKworICAgIGlmICghaXNTZWN1cmUoKmRvY3VtZW50LmxvYWRl
cigpKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRy
eWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGFuIGluc2VjdXJlIGRvY3Vt
ZW50LiIgfTsKKworICAgIGF1dG8mIHRvcERvY3VtZW50ID0gZG9jdW1lbnQudG9wRG9jdW1lbnQo
KTsKKyAgICBpZiAoJmRvY3VtZW50ICE9ICZ0b3BEb2N1bWVudCkgeworICAgICAgICBhdXRvJiB0
b3BPcmlnaW4gPSB0b3BEb2N1bWVudC50b3BPcmlnaW4oKTsKKworICAgICAgICBpZiAoIWRvY3Vt
ZW50LnNlY3VyaXR5T3JpZ2luKCkuaXNTYW1lU2NoZW1lSG9zdFBvcnQodG9wT3JpZ2luKSkKKyAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcg
dG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gZGlm
ZmVyZW50IHNlY3VyaXR5IG9yaWdpbiB0aGFuIGl0cyB0b3AtbGV2ZWwgZnJhbWUuIiB9OworCisg
ICAgICAgIGZvciAoYXV0byogYW5jZXN0b3JEb2N1bWVudCA9IGRvY3VtZW50LnBhcmVudERvY3Vt
ZW50KCk7IGFuY2VzdG9yRG9jdW1lbnQgIT0gJnRvcERvY3VtZW50OyBhbmNlc3RvckRvY3VtZW50
ID0gYW5jZXN0b3JEb2N1bWVudC0+cGFyZW50RG9jdW1lbnQoKSkgeworICAgICAgICAgICAgaWYg
KCFpc1NlY3VyZSgqYW5jZXN0b3JEb2N1bWVudC0+bG9hZGVyKCkpKQorICAgICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQg
YW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gaW5zZWN1cmUgcGFy
ZW50IGZyYW1lLiIgfTsKKworICAgICAgICAgICAgaWYgKCFhbmNlc3RvckRvY3VtZW50LT5zZWN1
cml0eU9yaWdpbigpLmlzU2FtZVNjaGVtZUhvc3RQb3J0KHRvcE9yaWdpbikpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBz
dGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGEgZG9jdW1lbnQgd2l0aCBhbiBkaWZmZXJl
bnQgc2VjdXJpdHkgb3JpZ2luIHRoYW4gaXRzIHRvcC1sZXZlbCBmcmFtZS4iIH07CisgICAgICAg
IH0KKyAgICB9CisKKyAgICByZXR1cm4geyB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5oCmluZGV4IDFhMzBhMWRiZTZlMjI0YmFiNGFl
Yjk4MDMyZGMxMTA5ZTg4NzlhN2MuLjRiMzk3NzU0MDBhZGU3N2M1Mzg1ZDE2NWE0MDU0MjQ1NWQw
Mjk1YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVu
dFNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRT
ZXNzaW9uLmgKQEAgLTI4LDEwICsyOCwxMiBAQAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKICNp
bmNsdWRlICJBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oIgorI2luY2x1ZGUgIkV4Y2Vw
dGlvbk9yLmgiCiAjaW5jbHVkZSAiUGF5bWVudFNlc3Npb25CYXNlLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBQYXltZW50OwogY2xhc3MgUGF5bWVu
dENvbnRhY3Q7CiBjbGFzcyBQYXltZW50TWV0aG9kOwpAQCAtMzksNiArNDEsOCBAQCBjbGFzcyBV
Ukw7CiAKIGNsYXNzIFBheW1lbnRTZXNzaW9uIDogcHVibGljIHZpcnR1YWwgUGF5bWVudFNlc3Np
b25CYXNlIHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gY2FuQ3JlYXRl
U2Vzc2lvbihEb2N1bWVudCYpOworCiAgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlTWVyY2hhbnQo
Y29uc3QgVVJMJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRBdXRob3JpemVQYXltZW50KGNv
bnN0IFBheW1lbnQmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nTWV0
aG9kKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYp
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3Qv
UGF5bWVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVz
dC9QYXltZW50SGFuZGxlci5jcHAKaW5kZXggZjM2NTU3NTYzOGE1YjQ0Nzk3ODg5ODg3YjU3NGJh
MDkzNzcyZDRhYi4uMDQ4OGVhZWI2NmZiNTBjOWI0ODUwMzBlYWYzZDRkMTAyOWFlYTAxOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXlt
ZW50SGFuZGxlci5jcHAKQEAgLTQ4LDYgKzQ4LDE5IEBAIFJlZlB0cjxQYXltZW50SGFuZGxlcj4g
UGF5bWVudEhhbmRsZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFBheW1lbnRSZXF1ZXN0
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK0V4Y2VwdGlvbk9yPHZvaWQ+IFBheW1lbnRIYW5k
bGVyOjpjYW5DcmVhdGVTZXNzaW9uKERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyNpZiBFTkFCTEUo
QVBQTEVfUEFZKQorICAgIGF1dG8gcmVzdWx0ID0gUGF5bWVudFNlc3Npb246OmNhbkNyZWF0ZVNl
c3Npb24oZG9jdW1lbnQpOworICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0eUVycm9yLCByZXN1bHQucmVsZWFzZUV4Y2VwdGlv
bigpLnJlbGVhc2VNZXNzYWdlKCkgfTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50
KTsKKyNlbmRpZgorCisgICAgcmV0dXJuIHsgfTsKK30KKwogYm9vbCBQYXltZW50SGFuZGxlcjo6
aGFzQWN0aXZlU2Vzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAjaWYgRU5BQkxFKEFQUExF
X1BBWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3Qv
UGF5bWVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3Qv
UGF5bWVudEhhbmRsZXIuaAppbmRleCA1MzlmMWRiYzZjODVlODQ4MzgzZjlmMWM2MWQ1OGVlMGQ3
ODU3MGZjLi44NmM5MDMyYzFjYmQ4MDVhMzAxN2YxMWY4YzRmMjg3NGE1NjU5MDhhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFu
ZGxlci5oCkBAIC00Miw2ICs0Miw3IEBAIGNsYXNzIERvY3VtZW50OwogY2xhc3MgUGF5bWVudEhh
bmRsZXIgOiBwdWJsaWMgdmlydHVhbCBQYXltZW50U2Vzc2lvbkJhc2UgewogcHVibGljOgogICAg
IHN0YXRpYyBSZWZQdHI8UGF5bWVudEhhbmRsZXI+IGNyZWF0ZShEb2N1bWVudCYsIFBheW1lbnRS
ZXF1ZXN0JiwgY29uc3QgUGF5bWVudFJlcXVlc3Q6Ok1ldGhvZElkZW50aWZpZXImKTsKKyAgICBz
dGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gY2FuQ3JlYXRlU2Vzc2lvbihEb2N1bWVudCYpOwogICAg
IHN0YXRpYyBib29sIGhhc0FjdGl2ZVNlc3Npb24oRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwg
RXhjZXB0aW9uT3I8dm9pZD4gY29udmVydERhdGEoSlNDOjpKU1ZhbHVlJiYpID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVx
dWVzdC5jcHAKaW5kZXggYTZhZmIyMTMwZGE2YTk5NzM0MDFiOTkwMTNjNWU0NGUwYjYwY2Y4NS4u
MzAwNDQ4Njk2OTlmYjc5MmIyYzc3NjQ2NTU5NTg5NWFhNDMyZTJjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5j
cHAKQEAgLTMxNCw3ICszMTQsOSBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8c3RkOjp0dXBsZTxTdHJp
bmcsIFZlY3RvcjxTdHJpbmc+Pj4gY2hlY2tBbmRDYW5vbmljYWxpemVEZXRhaQogLy8gaHR0cHM6
Ly93d3cudzMub3JnL1RSL3BheW1lbnQtcmVxdWVzdC8jY29uc3RydWN0b3IKIEV4Y2VwdGlvbk9y
PFJlZjxQYXltZW50UmVxdWVzdD4+IFBheW1lbnRSZXF1ZXN0OjpjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50LCBWZWN0b3I8UGF5bWVudE1ldGhvZERhdGE+JiYgbWV0aG9kRGF0YSwgUGF5bWVudERl
dGFpbHNJbml0JiYgZGV0YWlscywgUGF5bWVudE9wdGlvbnMmJiBvcHRpb25zKQogewotICAgIC8v
IEZJWE1FOiBDaGVjayBpZiB0aGlzIGRvY3VtZW50IGlzIGFsbG93ZWQgdG8gYWNjZXNzIHRoZSBQ
YXltZW50UmVxdWVzdCBBUEkgYmFzZWQgb24gdGhlIGFsbG93cGF5bWVudHJlcXVlc3QgYXR0cmli
dXRlLgorICAgIGF1dG8gY2FuQ3JlYXRlU2Vzc2lvbiA9IFBheW1lbnRIYW5kbGVyOjpjYW5DcmVh
dGVTZXNzaW9uKGRvY3VtZW50KTsKKyAgICBpZiAoY2FuQ3JlYXRlU2Vzc2lvbi5oYXNFeGNlcHRp
b24oKSkKKyAgICAgICAgcmV0dXJuIGNhbkNyZWF0ZVNlc3Npb24ucmVsZWFzZUV4Y2VwdGlvbigp
OwogCiAgICAgaWYgKGRldGFpbHMuaWQuaXNOdWxsKCkpCiAgICAgICAgIGRldGFpbHMuaWQgPSBj
cmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjQwMDA4ZGMyZDNmZDZkODZlMGQ5OGRk
ODcxYzA1OTM5YmQ2N2FhNi4uM2I5NWVhYzVjNmYzZmIxN2JkZjNiYzU4YTJiNjFmYTNkMTdhZjZj
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMjg0OSw2ICsyODQ5LDcgQEAKIAkJQTFCRjZCODMxQUE5NkM3RDAwQUY0QThBIC8q
IE1vY2tDb250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMUJGNkI4MTFBQTk2QzdEMDBBRjRBOEEgLyogTW9ja0NvbnRlbnRGaWx0ZXIu
aCAqLzsgfTsKIAkJQTFDMTUwNzkxRTNGMkIzRTAwMzJDOThDIC8qIFByZXZpZXdDb252ZXJ0ZXIu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUMxNTA3
NzFFM0YyQjNFMDAzMkM5OEMgLyogUHJldmlld0NvbnZlcnRlci5tbSAqLzsgfTsKIAkJQTFDMTUw
N0ExRTNGMkIzRTAwMzJDOThDIC8qIFByZXZpZXdDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQzE1MDc4MUUzRjJCM0UwMDMyQzk4QyAv
KiBQcmV2aWV3Q29udmVydGVyLmggKi87IH07CisJCUExQzJDNTc2MUZBMjg1MTYwMEJBNDZGQSAv
KiBQYXltZW50U2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMUMyQzU3NTFGQTI4NTE2MDBCQTQ2RkEgLyogUGF5bWVudFNlc3Npb24uY3Bw
ICovOyB9OwogCQlBMUNCRUY1MzFGOUVFRTc1MDAyOERFN0MgLyogQXBwbGVQYXlQYXltZW50TWV0
aG9kVXBkYXRlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExQ0JFRjUwMUY5RUVFNzUwMDI4REU3QyAvKiBBcHBsZVBheVBheW1lbnRNZXRob2RV
cGRhdGVFdmVudC5oICovOyB9OwogCQlBMUNCRUY1NDFGOUVFRTc1MDAyOERFN0MgLyogQXBwbGVQ
YXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTFDQkVGNTExRjlFRUU3NTAwMjhERTdDIC8qIEFwcGxlUGF5
UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcCAqLzsgfTsKIAkJQTFDQkVGNjExRjlGMDkwNDAw
MjhERTdDIC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFDQkVGNUYxRjlGMDkwMjAw
MjhERTdDIC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuY3BwICovOyB9OwpA
QCAtMTA2NzksNiArMTA2ODAsNyBAQAogCQlBMUJGNkI4MTFBQTk2QzdEMDBBRjRBOEEgLyogTW9j
a0NvbnRlbnRGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0Nv
bnRlbnRGaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFDMTUwNzcxRTNG
MkIzRTAwMzJDOThDIC8qIFByZXZpZXdDb252ZXJ0ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBQcmV2aWV3Q29udmVydGVyLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBMUMxNTA3ODFFM0YyQjNFMDAzMkM5OEMgLyogUHJldmlld0NvbnZlcnRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcmV2aWV3Q29udmVydGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExQzJDNTc1MUZBMjg1MTYwMEJBNDZGQSAv
KiBQYXltZW50U2Vzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXltZW50U2Vzc2lvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExQzdGQUExMTMzQTVEMzUwMEQ2NzMy
RCAvKiBKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBMUNCRUY1MDFGOUVFRTc1MDAyOERFN0MgLyogQXBwbGVQYXlQYXltZW50TWV0aG9k
VXBkYXRlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRl
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFDQkVGNTExRjlFRUU3NTAw
MjhERTdDIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NDQ5LDYgKzE1NDUxLDcgQEAKIAkJCQkxQThBNjQzOTFE
MTlGQzUzMDBEMEUwMEYgLyogUGF5bWVudE1ldGhvZC5oICovLAogCQkJCTFBOEE2NDY2MUQxOUZE
RkYwMEQwRTAwRiAvKiBQYXltZW50UmVxdWVzdFZhbGlkYXRvci5oICovLAogCQkJCTFBOEE2NDY1
MUQxOUZERkYwMEQwRTAwRiAvKiBQYXltZW50UmVxdWVzdFZhbGlkYXRvci5tbSAqLywKKwkJCQlB
MUMyQzU3NTFGQTI4NTE2MDBCQTQ2RkEgLyogUGF5bWVudFNlc3Npb24uY3BwICovLAogCQkJCUEx
NDkxREEyMUY4NTlEODcwMDk1RjVENCAvKiBQYXltZW50U2Vzc2lvbi5oICovLAogCQkJKTsKIAkJ
CXBhdGggPSBhcHBsZXBheTsKQEAgLTMwMzg1LDYgKzMwMzg4LDcgQEAKIAkJCQkxQUY1RTRFMjFF
NTc3OUIxMDA0QTFGMDEgLyogUGFzdGVib2FyZFdyaXRlci5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUExQ0ZFMDMyMUY5RTcxMjkwMDY1QzM0NSAvKiBQYXltZW50QWRkcmVzcy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlERTVGODYxMDFGQTIzOEQ5MDA2REI2M0EgLyogUGF5bWVudE1lcmNoYW50U2Vz
c2lvbkNvY29hLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQTFDMkM1NzYxRkEyODUxNjAwQkE0NkZB
IC8qIFBheW1lbnRTZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJENkU0Njg0MTdENjYw
RjUwMEVDRjhCQiAvKiBQREZEb2N1bWVudEltYWdlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MjY2MDFFQzAxNEIzQjlBRDAwMTJDMEZFIC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkNBQTQ4NkYxNEEwNTI1MzAwODhGQUM0IC8qIFBsYXRmb3JtRXZl
bnRGYWN0b3J5TWFjLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZwppbmRleCAzYThkZjRlYTQ4MWZmOTkxNmU1Y2Y2NGRiY2ZjYzViMjE2MjM0MDM1Li5kMzU2YjNm
YTk1NzI1Nzg4YmQ4Y2ZmMWY5MDgzMmZkMGNkMTI0NWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNy0xMC0yNiAgQW5keSBFc3RlcyAgPGFlc3Rl
c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1BheW1lbnQgUmVxdWVzdF0gUmVzdHJpY3QgQVBJIHVz
ZSB0byBzZWN1cmUsIHNhbWUtb3JpZ2luIGZyYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4ODg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGFsbG93cGF5bWVudHJlcXVlc3QgPGlmcmFtZT4g
YXR0cmlidXRlIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQsIHNvIHRoZSByZWdyZXNzaW9uIGluIGJh
c2ljLmh0dHBzLmh0bWwgaXMgZXhwZWN0ZWQuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3QvYWN0aXZlLWRvY3VtZW50LWNy
b3NzLW9yaWdpbi5odHRwcy5zdWItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9jdW1l
bnQtc2FtZS1vcmlnaW4uaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9iYXNpYy5odHRwcy1l
eHBlY3RlZC50eHQ6CisKIDIwMTctMTAtMjQgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIEltcGxlbWVudCB0aGUgIlBheW1lbnRSZXF1
ZXN0IHVwZGF0ZWQiIGFsZ29yaXRobQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVz
dC9hY3RpdmUtZG9jdW1lbnQtY3Jvc3Mtb3JpZ2luLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1jcm9zcy1vcmlnaW4uaHR0cHMu
c3ViLWV4cGVjdGVkLnR4dAppbmRleCBhNmMzMzIwNDcxMDU5ZjQ1YTRjNWRjODA2Y2Q4MDcwY2U3
ZDAyNDY1Li42MTViZTliMGIwOWI1NmExYTE1YzQ2ZTAxMTU5NGE0MzQzYTA0ZWRiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1jcm9zcy1vcmlnaW4u
aHR0cHMuc3ViLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2
ZS1kb2N1bWVudC1jcm9zcy1vcmlnaW4uaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsx
LDUgQEAKIEJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxo
b3N0Ojk0NDMvY29tbW9uL2JsYW5rLmh0bWwKIAogCi1GQUlMIFBheW1lbnRSZXF1ZXN0IDxpZnJh
bWUgYWxsb3dwYXltZW50cmVxdWVzdD4gaW4gbm9uLWFjdGl2ZSBkb2N1bWVudCAoY3Jvc3Mtb3Jp
Z2luKSBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiKCkgPT4gewotICAgICAgICBuZXcgZ3JhYmJl
ZFBheW1lbnRSZXF1ZXN0KC4uLnBheW1lbnRBcmdzKTsKLSAgICAgIH0iIGRpZCBub3QgdGhyb3cK
K1BBU1MgUGF5bWVudFJlcXVlc3QgPGlmcmFtZSBhbGxvd3BheW1lbnRyZXF1ZXN0PiBpbiBub24t
YWN0aXZlIGRvY3VtZW50IChjcm9zcy1vcmlnaW4pIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3Bh
eW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1zYW1lLW9yaWdpbi5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1zYW1lLW9yaWdpbi5o
dHRwcy1leHBlY3RlZC50eHQKaW5kZXggYzhjOTYyODNjNDdmOGQ0YjY2OWZmZjU5MmJlZDU2Y2M2
MzBlMjIxMS4uMDFlODc4ZWU1MGI5NmQ4NDU4Yzk2NDc4ZDUyOWJhNGJhZmRiNDAzNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9jdW1lbnQtc2FtZS1vcmlnaW4u
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3QvYWN0aXZlLWRv
Y3VtZW50LXNhbWUtb3JpZ2luLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDQgQEAKIAog
Ci1GQUlMIFBheW1lbnRSZXF1ZXN0IDxpZnJhbWUgYWxsb3dwYXltZW50cmVxdWVzdD4gaW4gbm9u
LWFjdGl2ZSBkb2N1bWVudCAoc2FtZS1vcmlnaW4pIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICIo
KSA9PiB7Ci0gICAgICAgIG5ldyBncmFiYmVkUGF5bWVudFJlcXVlc3QoLi4ucGF5bWVudEFyZ3Mp
OwotICAgICAgfSIgZGlkIG5vdCB0aHJvdworUEFTUyBQYXltZW50UmVxdWVzdCA8aWZyYW1lIGFs
bG93cGF5bWVudHJlcXVlc3Q+IGluIG5vbi1hY3RpdmUgZG9jdW1lbnQgKHNhbWUtb3JpZ2luKSAK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9iYXNpYy5odHRwcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1l
bnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2Jhc2ljLmh0dHBzLWV4cGVjdGVkLnR4dApp
bmRleCA1Njk0YThhY2NkZDc5YjgyODg2ZDQ0NzY2MGJkMDJkYjQyYmU1MmRlLi5mOTQxNGUwN2Ew
ZDVmMDJhZGRmNDllMDI3OTcwMWQ3M2NhM2YwZjE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1l
bnRyZXF1ZXN0L2Jhc2ljLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRy
ZXF1ZXN0L2Jhc2ljLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAogCi1QQVNT
IFBheW1lbnRSZXF1ZXN0IDxpZnJhbWUgYWxsb3dwYXltZW50cmVxdWVzdD4gYmFzaWMgCitGQUlM
IFBheW1lbnRSZXF1ZXN0IDxpZnJhbWUgYWxsb3dwYXltZW50cmVxdWVzdD4gYmFzaWMgVHJ5aW5n
IHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYW4gaW5zZWN1cmUgZG9jdW1lbnQu
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325070</attachid>
            <date>2017-10-26 15:56:25 -0700</date>
            <delta_ts>2017-10-26 16:25:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178887-20171026155624.patch</filename>
            <type>text/plain</type>
            <size>21699</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0MDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjlmZDlmODg5MjJmMjgz
MzA5NTg1ZTE5NDUyMjBmOTBkNGU1N2JiNi4uNzQzNmIzZDk5NTRlMGIxOWQ3NDY0NzI2NTM3ZmRh
NjEwODczMmE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE3LTEwLTI2ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBS
ZXN0cmljdCBBUEkgdXNlIHRvIHNlY3VyZSwgc2FtZS1vcmlnaW4gZnJhbWVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg4ODcKKworICAgICAgICBS
ZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIFJldXNlIHRoZSBhY2Nlc3MgY2hlY2tz
IGZyb20gQXBwbGUgUGF5IHRvIHJlc3RyaWN0IFBheW1lbnRSZXF1ZXN0IEFQSSB1c2FnZSB0byBz
ZWN1cmUgZnJhbWVzCisgICAgICAgIGluIHRoZSBzYW1lIG9yaWdpbiBhcyB0aGUgbWFpbiBmcmFt
ZS4KKworICAgICAgICBQcm9ncmVzc2VzIGFjdGl2ZS1kb2N1bWVudC1jcm9zcy1vcmlnaW4uaHR0
cHMuc3ViLmh0bWwgYW5kCisgICAgICAgIGFjdGl2ZS1kb2N1bWVudC1zYW1lLW9yaWdpbi5odHRw
cy5odG1sIGZyb20gd2ViLXBsYXRmb3JtLXRlc3RzLiBSZWdyZXNzZXMgYmFzaWMuaHR0cHMuaHRt
bAorICAgICAgICBzaW5jZSB0aGUgYWxsb3dwYXltZW50cmVxdWVzdCA8aWZyYW1lPiBhdHRyaWJ1
dGUgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4KKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6c3VwcG9ydHNWZXJz
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6Y2FuTWFrZVBheW1lbnRz
KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6Y2FuTWFrZVBheW1lbnRzV2l0
aEFjdGl2ZUNhcmQpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uOjpvcGVuUGF5
bWVudFNldHVwKToKKyAgICAgICAgKFdlYkNvcmU6OmlzU2VjdXJlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmNhbkNhbGxBcHBsZVBheVNlc3Npb25BUElzKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjppc1NlY3VyZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50U2Vzc2lvbjo6
Y2FuQ3JlYXRlU2Vzc2lvbik6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vz
c2lvbi5oOgorICAgICAgICAqIE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudEhhbmRsZXI6OmNhbkNyZWF0ZVNlc3Npb24p
OgorICAgICAgICAqIE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxNy0xMC0yNiAgRXJpYyBDYXJsc29uICA8
ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBOb3dQbGF5aW5nSW5mbyBzaG91bGQg
Y29udGFpbiBhIHVuaXF1ZSBpZGVudGlmaWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKaW5kZXggZjRjMzVjOWUxYjdmYjZlN2I4
ZWU3ZjM0ZTUxNDBmM2ViZmM2NTU4YS4uNGMzZTk4YTcwOWRhODdkODNiNjA0ZjBiZDIxMGIyYTk1
MWQ0ZThiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlTZXNzaW9uLmNwcApAQCAtMzk4LDQ0ICszOTgsOSBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8
U2hpcHBpbmdNZXRob2RVcGRhdGU+IGNvbnZlcnRBbmRWYWxpZGF0ZShBcHBsZVBheVNoaXBwaW5n
TWV0aAogICAgIHJldHVybiBXVEZNb3ZlKGNvbnZlcnRlZFVwZGF0ZSk7CiB9CiAKLXN0YXRpYyBi
b29sIGlzU2VjdXJlKERvY3VtZW50TG9hZGVyJiBkb2N1bWVudExvYWRlcikKLXsKLSAgICBpZiAo
IWRvY3VtZW50TG9hZGVyLnJlc3BvbnNlKCkudXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFkb2N1bWVudExvYWRlci5yZXNwb25zZSgp
LmNlcnRpZmljYXRlSW5mbygpIHx8IGRvY3VtZW50TG9hZGVyLnJlc3BvbnNlKCkuY2VydGlmaWNh
dGVJbmZvKCktPmNvbnRhaW5zTm9uUm9vdFNIQTFTaWduZWRDZXJ0aWZpY2F0ZSgpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotc3RhdGljIEV4Y2VwdGlv
bk9yPHZvaWQ+IGNhbkNhbGxBcHBsZVBheVNlc3Npb25BUElzKERvY3VtZW50JiBkb2N1bWVudCkK
LXsKLSAgICBpZiAoIWlzU2VjdXJlKCpkb2N1bWVudC5sb2FkZXIoKSkpCi0gICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gY2FsbCBhbiBBcHBs
ZVBheVNlc3Npb24gQVBJIGZyb20gYW4gaW5zZWN1cmUgZG9jdW1lbnQuIiB9OwotCi0gICAgYXV0
byYgdG9wRG9jdW1lbnQgPSBkb2N1bWVudC50b3BEb2N1bWVudCgpOwotICAgIGlmICgmZG9jdW1l
bnQgIT0gJnRvcERvY3VtZW50KSB7Ci0gICAgICAgIGF1dG8mIHRvcE9yaWdpbiA9IHRvcERvY3Vt
ZW50LnRvcE9yaWdpbigpOwotCi0gICAgICAgIGlmICghZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4o
KS5pc1NhbWVTY2hlbWVIb3N0UG9ydCh0b3BPcmlnaW4pKQotICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBjYWxsIGFuIEFwcGxlUGF5
U2Vzc2lvbiBBUEkgZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gZGlmZmVyZW50IHNlY3VyaXR5IG9y
aWdpbiB0aGFuIGl0cyB0b3AtbGV2ZWwgZnJhbWUuIiB9OwotCi0gICAgICAgIGZvciAoYXV0byog
YW5jZXN0b3JEb2N1bWVudCA9IGRvY3VtZW50LnBhcmVudERvY3VtZW50KCk7IGFuY2VzdG9yRG9j
dW1lbnQgIT0gJnRvcERvY3VtZW50OyBhbmNlc3RvckRvY3VtZW50ID0gYW5jZXN0b3JEb2N1bWVu
dC0+cGFyZW50RG9jdW1lbnQoKSkgewotICAgICAgICAgICAgaWYgKCFpc1NlY3VyZSgqYW5jZXN0
b3JEb2N1bWVudC0+bG9hZGVyKCkpKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gY2FsbCBhbiBBcHBsZVBheVNlc3Npb24g
QVBJIGZyb20gYSBkb2N1bWVudCB3aXRoIGFuIGluc2VjdXJlIHBhcmVudCBmcmFtZS4iIH07Ci0K
LSAgICAgICAgICAgIGlmICghYW5jZXN0b3JEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS5pc1Nh
bWVTY2hlbWVIb3N0UG9ydCh0b3BPcmlnaW4pKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gY2FsbCBhbiBBcHBsZVBheVNl
c3Npb24gQVBJIGZyb20gYSBkb2N1bWVudCB3aXRoIGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmln
aW4gdGhhbiBpdHMgdG9wLWxldmVsIGZyYW1lLiIgfTsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IHJldHVybiB7IH07Ci19Ci0KIEV4Y2VwdGlvbk9yPFJlZjxBcHBsZVBheVNlc3Npb24+PiBBcHBs
ZVBheVNlc3Npb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIHVuc2lnbmVkIHZlcnNpb24s
IEFwcGxlUGF5UGF5bWVudFJlcXVlc3QmJiBwYXltZW50UmVxdWVzdCkKIHsKLSAgICBhdXRvIGNh
bkNhbGwgPSBjYW5DYWxsQXBwbGVQYXlTZXNzaW9uQVBJcyhkb2N1bWVudCk7CisgICAgYXV0byBj
YW5DYWxsID0gY2FuQ3JlYXRlU2Vzc2lvbihkb2N1bWVudCk7CiAgICAgaWYgKGNhbkNhbGwuaGFz
RXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBjYW5DYWxsLnJlbGVhc2VFeGNlcHRpb24oKTsK
IApAQCAtNDcwLDcgKzQzNSw3IEBAIEV4Y2VwdGlvbk9yPGJvb2w+IEFwcGxlUGF5U2Vzc2lvbjo6
c3VwcG9ydHNWZXJzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwCiAKICAgICBhdXRv
JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsK
IAotICAgIGF1dG8gY2FuQ2FsbCA9IGNhbkNhbGxBcHBsZVBheVNlc3Npb25BUElzKGRvY3VtZW50
KTsKKyAgICBhdXRvIGNhbkNhbGwgPSBjYW5DcmVhdGVTZXNzaW9uKGRvY3VtZW50KTsKICAgICBp
ZiAoY2FuQ2FsbC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGNhbkNhbGwucmVsZWFz
ZUV4Y2VwdGlvbigpOwogCkBAIC00OTAsNyArNDU1LDcgQEAgRXhjZXB0aW9uT3I8Ym9vbD4gQXBw
bGVQYXlTZXNzaW9uOjpjYW5NYWtlUGF5bWVudHMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2Ny
aXAKIHsKICAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVj
dXRpb25Db250ZXh0KTsKIAotICAgIGF1dG8gY2FuQ2FsbCA9IGNhbkNhbGxBcHBsZVBheVNlc3Np
b25BUElzKGRvY3VtZW50KTsKKyAgICBhdXRvIGNhbkNhbGwgPSBjYW5DcmVhdGVTZXNzaW9uKGRv
Y3VtZW50KTsKICAgICBpZiAoY2FuQ2FsbC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJu
IGNhbkNhbGwucmVsZWFzZUV4Y2VwdGlvbigpOwogCkBAIC01MDEsNyArNDY2LDcgQEAgRXhjZXB0
aW9uT3I8dm9pZD4gQXBwbGVQYXlTZXNzaW9uOjpjYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2Fy
ZChTY3JpcHRFeGVjdXRpb24KIHsKICAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3Vt
ZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKIAotICAgIGF1dG8gY2FuQ2FsbCA9IGNhbkNh
bGxBcHBsZVBheVNlc3Npb25BUElzKGRvY3VtZW50KTsKKyAgICBhdXRvIGNhbkNhbGwgPSBjYW5D
cmVhdGVTZXNzaW9uKGRvY3VtZW50KTsKICAgICBpZiAoY2FuQ2FsbC5oYXNFeGNlcHRpb24oKSkK
ICAgICAgICAgcmV0dXJuIGNhbkNhbGwucmVsZWFzZUV4Y2VwdGlvbigpOwogCkBAIC01MjgsNyAr
NDkzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlTZXNzaW9uOjpvcGVuUGF5bWVudFNl
dHVwKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmkKIHsKICAgICBhdXRvJiBkb2N1bWVudCA9
IGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKIAotICAgIGF1dG8g
Y2FuQ2FsbCA9IGNhbkNhbGxBcHBsZVBheVNlc3Npb25BUElzKGRvY3VtZW50KTsKKyAgICBhdXRv
IGNhbkNhbGwgPSBjYW5DcmVhdGVTZXNzaW9uKGRvY3VtZW50KTsKICAgICBpZiAoY2FuQ2FsbC5o
YXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGNhbkNhbGwucmVsZWFzZUV4Y2VwdGlvbigp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRT
ZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNlc3Np
b24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjg3YTQ0ZjRiMzViYjJmYjQyOTNlMzA0ZjI3ZjA2YjZlNmViYTE5
NDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1Bh
eW1lbnRTZXNzaW9uLmNwcApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlBheW1lbnRTZXNzaW9uLmgiCisKKyNpZiBFTkFCTEUoQVBQ
TEVfUEFZKQorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudExvYWRl
ci5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RhdGljIGJvb2wgaXNTZWN1cmUoRG9jdW1lbnRMb2FkZXImIGRvY3VtZW50TG9hZGVyKQor
eworICAgIGlmICghZG9jdW1lbnRMb2FkZXIucmVzcG9uc2UoKS51cmwoKS5wcm90b2NvbElzKCJo
dHRwcyIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRvY3VtZW50TG9hZGVy
LnJlc3BvbnNlKCkuY2VydGlmaWNhdGVJbmZvKCkgfHwgZG9jdW1lbnRMb2FkZXIucmVzcG9uc2Uo
KS5jZXJ0aWZpY2F0ZUluZm8oKS0+Y29udGFpbnNOb25Sb290U0hBMVNpZ25lZENlcnRpZmljYXRl
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCitFeGNl
cHRpb25Pcjx2b2lkPiBQYXltZW50U2Vzc2lvbjo6Y2FuQ3JlYXRlU2Vzc2lvbihEb2N1bWVudCYg
ZG9jdW1lbnQpCit7CisgICAgaWYgKCFkb2N1bWVudC5mcmFtZSgpKQorICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxl
IFBheSBzZXNzaW9uIGZyb20gYW4gaW5hY3RpdmUgZG9jdW1lbnQuIiB9OworCisgICAgaWYgKCFp
c1NlY3VyZSgqZG9jdW1lbnQubG9hZGVyKCkpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9u
IGZyb20gYW4gaW5zZWN1cmUgZG9jdW1lbnQuIiB9OworCisgICAgYXV0byYgdG9wRG9jdW1lbnQg
PSBkb2N1bWVudC50b3BEb2N1bWVudCgpOworICAgIGlmICgmZG9jdW1lbnQgIT0gJnRvcERvY3Vt
ZW50KSB7CisgICAgICAgIGF1dG8mIHRvcE9yaWdpbiA9IHRvcERvY3VtZW50LnRvcE9yaWdpbigp
OworCisgICAgICAgIGlmICghZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5pc1NhbWVTY2hlbWVI
b3N0UG9ydCh0b3BPcmlnaW4pKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9t
IGEgZG9jdW1lbnQgd2l0aCBhbiBkaWZmZXJlbnQgc2VjdXJpdHkgb3JpZ2luIHRoYW4gaXRzIHRv
cC1sZXZlbCBmcmFtZS4iIH07CisKKyAgICAgICAgZm9yIChhdXRvKiBhbmNlc3RvckRvY3VtZW50
ID0gZG9jdW1lbnQucGFyZW50RG9jdW1lbnQoKTsgYW5jZXN0b3JEb2N1bWVudCAhPSAmdG9wRG9j
dW1lbnQ7IGFuY2VzdG9yRG9jdW1lbnQgPSBhbmNlc3RvckRvY3VtZW50LT5wYXJlbnREb2N1bWVu
dCgpKSB7CisgICAgICAgICAgICBpZiAoIWlzU2VjdXJlKCphbmNlc3RvckRvY3VtZW50LT5sb2Fk
ZXIoKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NF
cnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGEgZG9jdW1l
bnQgd2l0aCBhbiBpbnNlY3VyZSBwYXJlbnQgZnJhbWUuIiB9OworCisgICAgICAgICAgICBpZiAo
IWFuY2VzdG9yRG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkuaXNTYW1lU2NoZW1lSG9zdFBvcnQo
dG9wT3JpZ2luKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFj
Y2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYSBk
b2N1bWVudCB3aXRoIGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4gdGhhbiBpdHMgdG9wLWxl
dmVsIGZyYW1lLiIgfTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiB7IH07Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTZXNzaW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTZXNzaW9uLmgKaW5k
ZXggMWEzMGExZGJlNmUyMjRiYWI0YWViOTgwMzJkYzExMDllODg3OWE3Yy4uNGIzOTc3NTQwMGFk
ZTc3YzUzODVkMTY1YTQwNTQyNDU1ZDAyOTVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNlc3Npb24uaApAQCAtMjgsMTAgKzI4LDEyIEBACiAjaWYg
RU5BQkxFKEFQUExFX1BBWSkKIAogI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJQYXltZW50U2Vzc2lv
bkJhc2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEb2N1bWVudDsKIGNsYXNz
IFBheW1lbnQ7CiBjbGFzcyBQYXltZW50Q29udGFjdDsKIGNsYXNzIFBheW1lbnRNZXRob2Q7CkBA
IC0zOSw2ICs0MSw4IEBAIGNsYXNzIFVSTDsKIAogY2xhc3MgUGF5bWVudFNlc3Npb24gOiBwdWJs
aWMgdmlydHVhbCBQYXltZW50U2Vzc2lvbkJhc2UgewogcHVibGljOgorICAgIHN0YXRpYyBFeGNl
cHRpb25Pcjx2b2lkPiBjYW5DcmVhdGVTZXNzaW9uKERvY3VtZW50Jik7CisKICAgICB2aXJ0dWFs
IHZvaWQgdmFsaWRhdGVNZXJjaGFudChjb25zdCBVUkwmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGRpZEF1dGhvcml6ZVBheW1lbnQoY29uc3QgUGF5bWVudCYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3Q6OlNoaXBwaW5nTWV0aG9kJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmNwcAppbmRleCBmMzY1NTc1
NjM4YTViNDQ3OTc4ODk4ODdiNTc0YmEwOTM3NzJkNGFiLi4wNDg4ZWFlYjY2ZmI1MGM5YjQ4NTAz
MGVhZjNkNGQxMDI5YWVhMDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bh
eW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmNwcApAQCAtNDgsNiArNDgsMTkgQEAg
UmVmUHRyPFBheW1lbnRIYW5kbGVyPiBQYXltZW50SGFuZGxlcjo6Y3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCwgUGF5bWVudFJlcXVlc3QKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorRXhjZXB0
aW9uT3I8dm9pZD4gUGF5bWVudEhhbmRsZXI6OmNhbkNyZWF0ZVNlc3Npb24oRG9jdW1lbnQmIGRv
Y3VtZW50KQoreworI2lmIEVOQUJMRShBUFBMRV9QQVkpCisgICAgYXV0byByZXN1bHQgPSBQYXlt
ZW50U2Vzc2lvbjo6Y2FuQ3JlYXRlU2Vzc2lvbihkb2N1bWVudCk7CisgICAgaWYgKHJlc3VsdC5o
YXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFNlY3VyaXR5RXJyb3Is
IHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkucmVsZWFzZU1lc3NhZ2UoKSB9OworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOworI2VuZGlmCisKKyAgICByZXR1cm4geyB9OworfQor
CiBib29sIFBheW1lbnRIYW5kbGVyOjpoYXNBY3RpdmVTZXNzaW9uKERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5oCmluZGV4IDUzOWYxZGJjNmM4
NWU4NDgzODNmOWYxYzYxZDU4ZWUwZDc4NTcwZmMuLjg2YzkwMzJjMWNiZDgwNWEzMDE3ZjExZjhj
NGYyODc0YTU2NTkwOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVu
dHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bh
eW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmgKQEAgLTQyLDYgKzQyLDcgQEAgY2xhc3MgRG9j
dW1lbnQ7CiBjbGFzcyBQYXltZW50SGFuZGxlciA6IHB1YmxpYyB2aXJ0dWFsIFBheW1lbnRTZXNz
aW9uQmFzZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxQYXltZW50SGFuZGxlcj4gY3Jl
YXRlKERvY3VtZW50JiwgUGF5bWVudFJlcXVlc3QmLCBjb25zdCBQYXltZW50UmVxdWVzdDo6TWV0
aG9kSWRlbnRpZmllciYpOworICAgIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiBjYW5DcmVhdGVT
ZXNzaW9uKERvY3VtZW50Jik7CiAgICAgc3RhdGljIGJvb2wgaGFzQWN0aXZlU2Vzc2lvbihEb2N1
bWVudCYpOwogCiAgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBjb252ZXJ0RGF0YShKU0M6
OkpTVmFsdWUmJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXlt
ZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bh
eW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcAppbmRleCBhNmFmYjIxMzBkYTZhOTk3MzQw
MWI5OTAxM2M1ZTQ0ZTBiNjBjZjg1Li4zMDA0NDg2OTY5OWZiNzkyYjJjNzc2NDY1NTk1ODk1YWE0
MzJlMmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0
L1BheW1lbnRSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRy
ZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcApAQCAtMzE0LDcgKzMxNCw5IEBAIHN0YXRpYyBFeGNl
cHRpb25PcjxzdGQ6OnR1cGxlPFN0cmluZywgVmVjdG9yPFN0cmluZz4+PiBjaGVja0FuZENhbm9u
aWNhbGl6ZURldGFpCiAvLyBodHRwczovL3d3dy53My5vcmcvVFIvcGF5bWVudC1yZXF1ZXN0LyNj
b25zdHJ1Y3RvcgogRXhjZXB0aW9uT3I8UmVmPFBheW1lbnRSZXF1ZXN0Pj4gUGF5bWVudFJlcXVl
c3Q6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFZlY3RvcjxQYXltZW50TWV0aG9kRGF0YT4m
JiBtZXRob2REYXRhLCBQYXltZW50RGV0YWlsc0luaXQmJiBkZXRhaWxzLCBQYXltZW50T3B0aW9u
cyYmIG9wdGlvbnMpCiB7Ci0gICAgLy8gRklYTUU6IENoZWNrIGlmIHRoaXMgZG9jdW1lbnQgaXMg
YWxsb3dlZCB0byBhY2Nlc3MgdGhlIFBheW1lbnRSZXF1ZXN0IEFQSSBiYXNlZCBvbiB0aGUgYWxs
b3dwYXltZW50cmVxdWVzdCBhdHRyaWJ1dGUuCisgICAgYXV0byBjYW5DcmVhdGVTZXNzaW9uID0g
UGF5bWVudEhhbmRsZXI6OmNhbkNyZWF0ZVNlc3Npb24oZG9jdW1lbnQpOworICAgIGlmIChjYW5D
cmVhdGVTZXNzaW9uLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gY2FuQ3JlYXRlU2Vz
c2lvbi5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKICAgICBpZiAoZGV0YWlscy5pZC5pc051bGwoKSkK
ICAgICAgICAgZGV0YWlscy5pZCA9IGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBk
M2U5NzhjZDZlMWQ3NGFiZjY4MTk3YmJmYTc1N2Y5ZGVhZmE3NzI2Li41OWM4MTQzNWRmZjdiODgw
NjQ1OGU5YTViYWQ0YThhMzBhNjdjNmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yODA0LDYgKzI4MDQsNyBAQAogCQlBMUJG
NkI4MzFBQTk2QzdEMDBBRjRBOEEgLyogTW9ja0NvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQkY2QjgxMUFBOTZDN0QwMEFGNEE4
QSAvKiBNb2NrQ29udGVudEZpbHRlci5oICovOyB9OwogCQlBMUMxNTA3OTFFM0YyQjNFMDAzMkM5
OEMgLyogUHJldmlld0NvbnZlcnRlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEExQzE1MDc3MUUzRjJCM0UwMDMyQzk4QyAvKiBQcmV2aWV3Q29udmVy
dGVyLm1tICovOyB9OwogCQlBMUMxNTA3QTFFM0YyQjNFMDAzMkM5OEMgLyogUHJldmlld0NvbnZl
cnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFD
MTUwNzgxRTNGMkIzRTAwMzJDOThDIC8qIFByZXZpZXdDb252ZXJ0ZXIuaCAqLzsgfTsKKwkJQTFD
MkM1NzYxRkEyODUxNjAwQkE0NkZBIC8qIFBheW1lbnRTZXNzaW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQzJDNTc1MUZBMjg1MTYwMEJBNDZG
QSAvKiBQYXltZW50U2Vzc2lvbi5jcHAgKi87IH07CiAJCUExQ0JFRjUzMUY5RUVFNzUwMDI4REU3
QyAvKiBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFDQkVGNTAxRjlFRUU3NTAwMjhERTdDIC8q
IEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZUV2ZW50LmggKi87IH07CiAJCUExQ0JFRjU0MUY5
RUVFNzUwMDI4REU3QyAvKiBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUNCRUY1MTFGOUVF
RTc1MDAyOERFN0MgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlRXZlbnQuY3BwICovOyB9
OwogCQlBMUNCRUY2MTFGOUYwOTA0MDAyOERFN0MgLyogSlNBcHBsZVBheVBheW1lbnRNZXRob2RV
cGRhdGVFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBMUNCRUY1RjFGOUYwOTAyMDAyOERFN0MgLyogSlNBcHBsZVBheVBheW1lbnRNZXRob2RV
cGRhdGVFdmVudC5jcHAgKi87IH07CkBAIC0xMDYwNCw2ICsxMDYwNSw3IEBACiAJCUExQkY2Qjgx
MUFBOTZDN0QwMEFGNEE4QSAvKiBNb2NrQ29udGVudEZpbHRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNb2NrQ29udGVudEZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBMUMxNTA3NzFFM0YyQjNFMDAzMkM5OEMgLyogUHJldmlld0NvbnZlcnRlci5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFByZXZpZXdDb252ZXJ0
ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExQzE1MDc4MUUzRjJCM0UwMDMy
Qzk4QyAvKiBQcmV2aWV3Q29udmVydGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFByZXZpZXdDb252ZXJ0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTFD
MkM1NzUxRkEyODUxNjAwQkE0NkZBIC8qIFBheW1lbnRTZXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFBheW1lbnRTZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTFDN0ZBQTExMzNBNUQzNTAwRDY3MzJEIC8qIEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExQ0JFRjUwMUY5RUVFNzUwMDI4REU3QyAv
KiBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBs
ZVBheVBheW1lbnRNZXRob2RVcGRhdGVFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBMUNCRUY1MTFGOUVFRTc1MDAyOERFN0MgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kVXBk
YXRlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXBwbGVQYXlQYXltZW50TWV0aG9kVXBk
YXRlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTUzNzQsNiArMTUz
NzYsNyBAQAogCQkJCTFBOEE2NDM5MUQxOUZDNTMwMEQwRTAwRiAvKiBQYXltZW50TWV0aG9kLmgg
Ki8sCiAJCQkJMUE4QTY0NjYxRDE5RkRGRjAwRDBFMDBGIC8qIFBheW1lbnRSZXF1ZXN0VmFsaWRh
dG9yLmggKi8sCiAJCQkJMUE4QTY0NjUxRDE5RkRGRjAwRDBFMDBGIC8qIFBheW1lbnRSZXF1ZXN0
VmFsaWRhdG9yLm1tICovLAorCQkJCUExQzJDNTc1MUZBMjg1MTYwMEJBNDZGQSAvKiBQYXltZW50
U2Vzc2lvbi5jcHAgKi8sCiAJCQkJQTE0OTFEQTIxRjg1OUQ4NzAwOTVGNUQ0IC8qIFBheW1lbnRT
ZXNzaW9uLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGFwcGxlcGF5OwpAQCAtMzAyMDcsNiArMzAy
MTAsNyBAQAogCQkJCTZBNzI3OThDMUYxNkMyOUMwMDNGMzlCOCAvKiBJbnNwZWN0b3JTaGFkZXJQ
cm9ncmFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExRjkyOTZGMUY4RDlGNUIwMDUyM0FGMyAv
KiBKU0FwcGxlUGF5TWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTFDQkVGNjExRjlGMDkwNDAwMjhERTdDIC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kVXBk
YXRlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTM3MjAyMkUxRkEyOUMwMzAwMDE2QjJC
IC8qIEpTR2VzdHVyZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUzOEVDOTNFMUY5OUJG
NUEwMDREMjJBOCAvKiBKU1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUzOEVDOTQyMUY5OUNFNDcwMDREMjJBOCAvKiBKU1RvdWNoLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUzOEVDOTQ1MUY5OUNFNTEwMDREMjJBOCAvKiBKU1RvdWNoRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0zMDI3Myw2ICszMDI3Nyw3IEBACiAJCQkJRTQ1MzkwMUUwRUFG
Q0FDQTAwMzY5NUM4IC8qIFBhc3RlYm9hcmRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMUNG
RTAzMjFGOUU3MTI5MDA2NUMzNDUgLyogUGF5bWVudEFkZHJlc3MuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJREU1Rjg2MTAxRkEyMzhEOTAwNkRCNjNBIC8qIFBheW1lbnRNZXJjaGFudFNlc3Npb25D
b2NvYS5tbSBpbiBTb3VyY2VzICovLAorCQkJCUExQzJDNTc2MUZBMjg1MTYwMEJBNDZGQSAvKiBQ
YXltZW50U2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyNjYwMUVDMDE0QjNCOUFEMDAx
MkMwRkUgLyogUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlD
NTI3OEIwQzE3RjIxMkVBMDAzQTI5OTggLyogUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTQ1MzkwNDMwRUFGRDYzNzAwMzY5NUM4IC8qIFBsYXRmb3JtU2NyZWVu
SU9TLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0zMDU5Miw3ICszMDU5Nyw2IEBACiAJCQkJREVDQTdF
NTMxRjlFQkQ4MzAwRTNCNjYxIC8qIFVuaWZpZWRTb3VyY2UyMTYuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJREVDQTdFNTQxRjlFQkQ4MzAwRTNCNjYxIC8qIFVuaWZpZWRTb3VyY2UyMTcuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJREVDQTdFNTUxRjlFQkQ4MzAwRTNCNjYxIC8qIFVuaWZpZWRTb3Vy
Y2UyMTguY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTM3MjAyMkUxRkEyOUMwMzAwMDE2QjJCIC8q
IEpTR2VzdHVyZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURFQ0E3RTU2MUY5RUJEODMw
MEUzQjY2MSAvKiBVbmlmaWVkU291cmNlMjE5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURFQ0E3
RTU3MUY5RUJEODMwMEUzQjY2MSAvKiBVbmlmaWVkU291cmNlMjIwLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCURFQ0E3RTU4MUY5RUJEODMwMEUzQjY2MSAvKiBVbmlmaWVkU291cmNlMjIxLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggM2E4ZGY0ZWE0
ODFmZjk5MTZlNWNmNjRkYmNmY2M1YjIxNjIzNDAzNS4uZGQ3MGY1ZjZlMjlmMGI0OGExYjZjYjZh
NTUyNTU0NTBhOTUwZjUzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTctMTAtMjYgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisg
ICAgICAgIFtQYXltZW50IFJlcXVlc3RdIFJlc3RyaWN0IEFQSSB1c2UgdG8gc2VjdXJlLCBzYW1l
LW9yaWdpbiBmcmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3ODg4NworCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAg
ICAgVGhlIGFsbG93cGF5bWVudHJlcXVlc3QgPGlmcmFtZT4gYXR0cmlidXRlIGlzIG5vdCB5ZXQg
aW1wbGVtZW50ZWQsIHNvIHRoZSByZWdyZXNzaW9uIGluIGJhc2ljLmh0dHBzLmh0bWwgaXMgZXhw
ZWN0ZWQuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L2Fs
bG93cGF5bWVudHJlcXVlc3QvYWN0aXZlLWRvY3VtZW50LWNyb3NzLW9yaWdpbi5odHRwcy5zdWIt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9jdW1lbnQtc2FtZS1vcmlnaW4uaHR0cHMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvYWxsb3dwYXltZW50cmVxdWVzdC9iYXNpYy5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIwMTct
MTAtMjQgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtQYXltZW50
IFJlcXVlc3RdIEltcGxlbWVudCB0aGUgIlBheW1lbnRSZXF1ZXN0IHVwZGF0ZWQiIGFsZ29yaXRo
bQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVzdC9hY3RpdmUtZG9jdW1lbnQtY3Jv
c3Mtb3JpZ2luLmh0dHBzLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0
L2FjdGl2ZS1kb2N1bWVudC1jcm9zcy1vcmlnaW4uaHR0cHMuc3ViLWV4cGVjdGVkLnR4dAppbmRl
eCBhNmMzMzIwNDcxMDU5ZjQ1YTRjNWRjODA2Y2Q4MDcwY2U3ZDAyNDY1Li42MTViZTliMGIwOWI1
NmExYTE1YzQ2ZTAxMTU5NGE0MzQzYTA0ZWRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRy
ZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1jcm9zcy1vcmlnaW4uaHR0cHMuc3ViLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1l
bnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1jcm9zcy1vcmln
aW4uaHR0cHMuc3ViLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDUgQEAKIEJsb2NrZWQgYWNjZXNz
IHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvY29tbW9uL2JsYW5r
Lmh0bWwKIAogCi1GQUlMIFBheW1lbnRSZXF1ZXN0IDxpZnJhbWUgYWxsb3dwYXltZW50cmVxdWVz
dD4gaW4gbm9uLWFjdGl2ZSBkb2N1bWVudCAoY3Jvc3Mtb3JpZ2luKSBhc3NlcnRfdGhyb3dzOiBm
dW5jdGlvbiAiKCkgPT4gewotICAgICAgICBuZXcgZ3JhYmJlZFBheW1lbnRSZXF1ZXN0KC4uLnBh
eW1lbnRBcmdzKTsKLSAgICAgIH0iIGRpZCBub3QgdGhyb3cKK1BBU1MgUGF5bWVudFJlcXVlc3Qg
PGlmcmFtZSBhbGxvd3BheW1lbnRyZXF1ZXN0PiBpbiBub24tYWN0aXZlIGRvY3VtZW50IChjcm9z
cy1vcmlnaW4pIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2FjdGl2ZS1k
b2N1bWVudC1zYW1lLW9yaWdpbi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRy
ZXF1ZXN0L2FjdGl2ZS1kb2N1bWVudC1zYW1lLW9yaWdpbi5odHRwcy1leHBlY3RlZC50eHQKaW5k
ZXggYzhjOTYyODNjNDdmOGQ0YjY2OWZmZjU5MmJlZDU2Y2M2MzBlMjIxMS4uMDFlODc4ZWU1MGI5
NmQ4NDU4Yzk2NDc4ZDUyOWJhNGJhZmRiNDAzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50
cmVxdWVzdC9hY3RpdmUtZG9jdW1lbnQtc2FtZS1vcmlnaW4uaHR0cHMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L2FsbG93cGF5bWVudHJlcXVlc3QvYWN0aXZlLWRvY3VtZW50LXNhbWUtb3JpZ2luLmh0
dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDQgQEAKIAogCi1GQUlMIFBheW1lbnRSZXF1ZXN0
IDxpZnJhbWUgYWxsb3dwYXltZW50cmVxdWVzdD4gaW4gbm9uLWFjdGl2ZSBkb2N1bWVudCAoc2Ft
ZS1vcmlnaW4pIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICIoKSA9PiB7Ci0gICAgICAgIG5ldyBn
cmFiYmVkUGF5bWVudFJlcXVlc3QoLi4ucGF5bWVudEFyZ3MpOwotICAgICAgfSIgZGlkIG5vdCB0
aHJvdworUEFTUyBQYXltZW50UmVxdWVzdCA8aWZyYW1lIGFsbG93cGF5bWVudHJlcXVlc3Q+IGlu
IG5vbi1hY3RpdmUgZG9jdW1lbnQgKHNhbWUtb3JpZ2luKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxs
b3dwYXltZW50cmVxdWVzdC9iYXNpYy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1l
bnRyZXF1ZXN0L2Jhc2ljLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA1Njk0YThhY2NkZDc5Yjgy
ODg2ZDQ0NzY2MGJkMDJkYjQyYmU1MmRlLi5mOTQxNGUwN2EwZDVmMDJhZGRmNDllMDI3OTcwMWQ3
M2NhM2YwZjE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2Jhc2ljLmh0dHBz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9hbGxvd3BheW1lbnRyZXF1ZXN0L2Jhc2ljLmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAogCi1QQVNTIFBheW1lbnRSZXF1ZXN0IDxpZnJh
bWUgYWxsb3dwYXltZW50cmVxdWVzdD4gYmFzaWMgCitGQUlMIFBheW1lbnRSZXF1ZXN0IDxpZnJh
bWUgYWxsb3dwYXltZW50cmVxdWVzdD4gYmFzaWMgVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBh
eSBzZXNzaW9uIGZyb20gYW4gaW5zZWN1cmUgZG9jdW1lbnQuCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>