<?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>45638</bug_id>
          
          <creation_ts>2010-09-12 23:54:47 -0700</creation_ts>
          <short_desc>Move mixed content logic out of FrameLoader</short_desc>
          <delta_ts>2012-10-17 22:09:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>97979</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Mike West">mkwst</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>mkwst</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>278004</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-12 23:54:47 -0700</bug_when>
    <thetext>Move mixed content logic out of FrameLoader</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278007</commentid>
    <comment_count>1</comment_count>
      <attachid>67364</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-12 23:59:01 -0700</bug_when>
    <thetext>Created attachment 67364
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278009</commentid>
    <comment_count>2</comment_count>
      <attachid>67364</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-13 00:00:32 -0700</bug_when>
    <thetext>Comment on attachment 67364
Patch

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

You forgot to add the new files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278018</commentid>
    <comment_count>3</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-09-13 00:08:19 -0700</bug_when>
    <thetext>Attachment 67364 did not build on qt:
Build output: http://queues.webkit.org/results/3960422</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278020</commentid>
    <comment_count>4</comment_count>
      <attachid>67366</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-13 00:10:20 -0700</bug_when>
    <thetext>Created attachment 67366
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278023</commentid>
    <comment_count>5</comment_count>
      <attachid>67366</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-13 00:14:11 -0700</bug_when>
    <thetext>Comment on attachment 67366
Patch

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

&gt; WebCore/loader/MixedContentChecker.cpp:63
&gt; +inline CString asUTF8(const KURL&amp; url)
&gt; +{
&gt; +    return url.string().utf8();
&gt; +}
static?

&gt; WebCore/loader/MixedContentChecker.cpp:65
&gt; +void MixedContentChecker::checkIfDisplayInsecureContent(SecurityOrigin* context, const KURL&amp; url) const
We usually call SecurityOrigin objects securityOrigin.  Usually &quot;context&quot; refers to a ScriptExecutionContext.

&gt; WebCore/loader/MixedContentChecker.h:49
&gt; +    void checkIfDisplayInsecureContent(SecurityOrigin* context, const KURL&amp;) const;
&gt; +    void checkIfRunInsecureContent(SecurityOrigin* context, const KURL&amp;) const;
The parameter name for SecurityOrigin isn&apos;t needed here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278033</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-13 00:32:43 -0700</bug_when>
    <thetext>Attachment 67366 did not build on mac:
Build output: http://queues.webkit.org/results/3958419</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278055</commentid>
    <comment_count>7</comment_count>
      <attachid>67377</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-13 01:37:56 -0700</bug_when>
    <thetext>Created attachment 67377
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278092</commentid>
    <comment_count>8</comment_count>
      <attachid>67377</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-13 03:09:14 -0700</bug_when>
    <thetext>Comment on attachment 67377
Patch for landing

Rejecting patch 67377 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/build-webkit&apos;, &apos;--debug&apos;]&quot; exit_code: 1
Last 500 characters of output:
uild/WebKit.build/Debug/WebKit.build/Objects-normal/i386/WebTextCompletionController.o /Users/eseidel/Projects/CommitQueue/WebKit/mac/WebView/WebTextCompletionController.mm normal i386 objective-c++ com.apple.compilers.gcc.4_2
	Distributed-CompileC /Users/eseidel/Projects/CommitQueue/WebKitBuild/WebKit.build/Debug/WebKit.build/Objects-normal/i386/WebPDFView.o /Users/eseidel/Projects/CommitQueue/WebKit/mac/WebView/WebPDFView.mm normal i386 objective-c++ com.apple.compilers.gcc.4_2
(31 failures)


Full output: http://queues.webkit.org/results/3909444</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278287</commentid>
    <comment_count>9</comment_count>
      <attachid>67424</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-13 10:17:04 -0700</bug_when>
    <thetext>Created attachment 67424
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278313</commentid>
    <comment_count>10</comment_count>
      <attachid>67432</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-13 10:59:36 -0700</bug_when>
    <thetext>Created attachment 67432
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278649</commentid>
    <comment_count>11</comment_count>
      <attachid>67432</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-13 19:05:18 -0700</bug_when>
    <thetext>Comment on attachment 67432
Patch for landing

Rejecting patch 67432 from commit-queue.

Failed to run &quot;[u&apos;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1
Last 500 characters of output:
lines).
Hunk #8 FAILED at 20569.
Hunk #9 FAILED at 23044.
2 out of 9 hunks FAILED -- saving rejects to file WebCore/WebCore.xcodeproj/project.pbxproj.rej
patching file WebCore/loader/CachedResourceLoader.cpp
patching file WebCore/loader/FrameLoader.cpp
patching file WebCore/loader/FrameLoader.h
patching file WebCore/loader/MainResourceLoader.cpp
patching file WebCore/loader/MixedContentChecker.cpp
patching file WebCore/loader/MixedContentChecker.h
patching file WebCore/loader/SubframeLoader.cpp

Full output: http://queues.webkit.org/results/4034002</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414879</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-03 07:37:08 -0700</bug_when>
    <thetext>I&apos;m not actively working on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738136</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-09 13:30:55 -0700</bug_when>
    <thetext>CCing nate in case the spirit moves him.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741590</commentid>
    <comment_count>14</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-14 13:14:31 -0700</bug_when>
    <thetext>I filed https://bugs.webkit.org/show_bug.cgi?id=97979 to fix the FIXME you noted in the last patch on this bug regarding the lack of line number and URL in the console message for mixed content. I&apos;ll take this as a prereq for that, if you don&apos;t mind; it should be straightforward to get running again on ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741604</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-14 14:33:13 -0700</bug_when>
    <thetext>Please!  Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741619</commentid>
    <comment_count>16</comment_count>
      <attachid>168596</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-14 15:46:55 -0700</bug_when>
    <thetext>Created attachment 168596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741620</commentid>
    <comment_count>17</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-14 15:49:28 -0700</bug_when>
    <thetext>Let&apos;s see if I&apos;m capable of correctly adding files with XCode...

Beyond the new call sites, the only substantive change I made to the patch was to rename the methods from &quot;checkIf*InsecureContent&quot; to &quot;can*InsecureContent&quot;. That seems to better represent what the boolean return value actually means. Everything else is mostly as you left it, Eric.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741624</commentid>
    <comment_count>18</comment_count>
      <attachid>168596</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-14 16:20:35 -0700</bug_when>
    <thetext>Comment on attachment 168596
Patch

Attachment 168596 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14292581</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741627</commentid>
    <comment_count>19</comment_count>
      <attachid>168596</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-14 16:24:35 -0700</bug_when>
    <thetext>Comment on attachment 168596
Patch

LGTM.  I think Adam had also r+&apos;d my original patch.  You&apos;ll need to re-upload and get the mac-ews building before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744072</commentid>
    <comment_count>20</comment_count>
      <attachid>169142</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-17 02:47:38 -0700</bug_when>
    <thetext>Created attachment 169142
XCode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744224</commentid>
    <comment_count>21</comment_count>
      <attachid>169179</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-17 07:09:48 -0700</bug_when>
    <thetext>Created attachment 169179
EWS is ignoring the previous patch. :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744238</commentid>
    <comment_count>22</comment_count>
      <attachid>169184</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-17 07:54:08 -0700</bug_when>
    <thetext>Created attachment 169184
XCode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744462</commentid>
    <comment_count>23</comment_count>
      <attachid>169225</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-17 11:38:25 -0700</bug_when>
    <thetext>Created attachment 169225
It compiles on OSX locally. Honest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744465</commentid>
    <comment_count>24</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-17 11:41:45 -0700</bug_when>
    <thetext>Fingers crossed, but it looks like the magical incantations to get things working on OSX locally include adding &quot; settings = {ATTRIBUTES = (Private, ); };&quot; to one of the instances of the header file in the project file. I came across it by pure copy/paste cargo culting... I have no idea what it does, nor do I have any idea how I could have added it via the XCode interface. Can one of you explain it to me? :)

Regardless, let&apos;s hope it works on the bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744485</commentid>
    <comment_count>25</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-17 12:05:06 -0700</bug_when>
    <thetext>&gt; Can one of you explain it to me? :)

In the apple-mac build, each of the major components (WTF, JavaScriptCore, WebCore, WebKit, WebKit2) are built separately as frameworks.  When, for example, WebKit2 includes a header from WebCore, it needs to be able to find that header in WebCore.framework.  By default, headers are not copied into the framework.  Marking a header as Private means it is copied in the PrivateHeaders directory in the framework, which means it is available at build-time but is not shipped in productions builds of Mac OS X.

There is a checkbox buried in the Xcode UI for classifying headers as project, private, or public.  The default is project, which means it is only visible within the project (i.e., not copied into the framework).  Private means it goes in the PrivateHeaders directory (see above).  Public means it goes in the Headers directory and is available for third-party developers to use as part of the production Mac OS X build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744955</commentid>
    <comment_count>26</comment_count>
      <attachid>169225</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-10-17 21:53:35 -0700</bug_when>
    <thetext>Comment on attachment 169225
It compiles on OSX locally. Honest.

Thanks Adam, that makes sense. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744974</commentid>
    <comment_count>27</comment_count>
      <attachid>169225</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 22:09:15 -0700</bug_when>
    <thetext>Comment on attachment 169225
It compiles on OSX locally. Honest.

Clearing flags on attachment: 169225

Committed r131704: &lt;http://trac.webkit.org/changeset/131704&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744975</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 22:09:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67364</attachid>
            <date>2010-09-12 23:59:01 -0700</date>
            <delta_ts>2010-09-13 00:10:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45638-20100912235859.patch</filename>
            <type>text/plain</type>
            <size>18672</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBjMGM1ZmJhMTNlMjc5NDhlYWI3OGM1NzdkYTA1MTI3ODNmOTQzNWRkLi41NTI5MzAxZmM3Nzcz
ZWMyY2JkYTY3YjEzNDE4ZGFkMzIxNWQzMDEwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0zMjksNiArMzI5LDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJbG9hZGVyL0hpc3RvcnlDb250cm9sbGVy
LmNwcCBcCiAJbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBcCiAJbG9hZGVyL01haW5SZXNvdXJjZUxv
YWRlci5jcHAgXAorCWxvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcCBcCiAJbG9hZGVyL05h
dmlnYXRpb25BY3Rpb24uY3BwIFwKIAlsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIu
Y3BwIFwKIAlsb2FkZXIvUGluZ0xvYWRlci5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMmQ4NzBlMmE5NjBhOTlh
MWY1ZGY4ZTRiOTI5M2IzZDgxMDdhYzRmYS4uNWJlMmYzMWZjYjZlNTExNzE1ZDkzMmMyZDJjMTY4
MzliMzc4N2U0NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMTAxLDYgKzExMDEsNyBAQCBTRVQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAogICAgIGxvYWRlci9JbWFnZUxv
YWRlci5jcHAKICAgICBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAorICAgIGxvYWRlci9N
aXhlZENvbnRlbnRDaGVja2VyLmNwcAogICAgIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcAog
ICAgIGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAKICAgICBsb2FkZXIvUGlu
Z0xvYWRlci5jcHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggOWZlYWZlNGRjN2NkOGVkMmFhNGQxMzY4MzRlNTE2NmQyYjU0ZGUyZi4uYjNh
NDE0MzJkM2UxMDVmNTgyNzU2NTcxNDk1NTg5NDE2NmUxMzY0YiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAx
MC0wOS0xMiAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBtaXhlZCBjb250ZW50IGxvZ2lj
IG91dCBvZiBGcmFtZUxvYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDU2MzgKKworICAgICAgICBKdXN0IG1vdmluZyBjb2RlLCBubyBmdW5jdGlv
bmFsIGNoYW5nZS4KKyAgICAgICAgSSBhbHNvIHNpbXBsaWZpZWQgdGhlIGNvZGUgZXZlciBzbyBz
bGlnaHRseSB3aGlsZSBtb3ZpbmcKKyAgICAgICAgKHVzZWQgZnVuY3Rpb25zIHRvIHJlZHVjZSBj
b2RlIGR1cGxpY2F0aW9uKS4KKworICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QpOgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
RnJhbWVMb2FkZXIpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXI6Om1peGVkQ29udGVudENoZWNrZXIpOgorICAgICAgICAqIGxv
YWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291
cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9TdWJmcmFtZUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6bG9hZFBsdWdpbik6
CisKIDIwMTAtMDktMTAgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDNkYWRhYTczYTRmZDkyZWY1
ZTBhNGY2ODJiZTJiN2U1MWExNTVlNTcuLmNjNDlhNTAzMGZkMWNiMjY0OGIxZWM4OGNiZGNmYzMw
NzhiNDU3NTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTcyMSw2ICsxNzIxLDggQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlXZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oIFwKIAlXZWJDb3JlL2xvYWRl
ci9JbWFnZUxvYWRlci5jcHAgXAogCVdlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmggXAorCVdl
YkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwIFwKKwlXZWJDb3JlL2xvYWRlci9N
aXhlZENvbnRlbnRDaGVja2VyLmggXAogCVdlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRl
ci5jcHAgXAogCVdlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oIFwKIAlXZWJDb3Jl
L2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGZlZDdjZTM5NzgzODY4ODU4OWRl
NjhkM2M2YzhiNDk2YmZmOThmOGQuLjNmNmZjZjk2NDg4NTNmZmY1N2FjM2JmZmU3NTU2NWI1OTU5
MGM0ZTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCkBAIC0xOTQxLDYgKzE5NDEsOCBAQAogICAgICAgICAgICAgJ2xvYWRlci9JbWFn
ZUxvYWRlci5oJywKICAgICAgICAgICAgICdsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCcs
CiAgICAgICAgICAgICAnbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oJywKKyAgICAgICAgICAg
ICdsb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAnLAorICAgICAgICAgICAgJ2xvYWRlci9N
aXhlZENvbnRlbnRDaGVja2VyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9OYXZpZ2F0aW9uQWN0
aW9uLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaCcsCiAgICAg
ICAgICAgICAnbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCcsCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA2YzY3
YmRlMTdiNjhkZTI3N2M4NGYwZWE3ZmM1MmIxOTNhZDk2NTVhLi5jZWYzYzE5MDc5ODA3MDgwMzcw
NzM3OTVhNmVlOWFiODJjYzdlYWIyIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTEwMDAsNiArMTAwMCw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIGxvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwIFwKICAgICBsb2FkZXIvSW1hZ2VMb2Fk
ZXIuY3BwIFwKICAgICBsb2FkZXIvbG9hZGVyLmNwcCBcCisgICAgbG9hZGVyL01peGVkQ29udGVu
dENoZWNrZXIuY3BwIFwKICAgICBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCBcCiAgICAg
bG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwIFwKICAgICBsb2FkZXIvTmV0c2NhcGVQbHVnSW5T
dHJlYW1Mb2FkZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4
IGUyNTY4MzUzMzZiMmRlZWY5NWRlMWNiNzVjNTBmMDkyZjhkNmViNDAuLmVkYzNmZWFlMWQ0YTQz
MTZkMjIzMjcwMTgzOTRjNzcyOGVhMmIwOGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagpAQCAtMjM2MjUsNiArMjM2MjUsMTQgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJ
CTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXE1peGVkQ29udGVudENoZWNrZXIu
Y3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cbG9hZGVyXE1peGVkQ29udGVudENoZWNrZXIuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJ
CQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxNYWluUmVzb3VyY2VMb2FkZXIu
Y3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggMTcxYWZkYWJjODgxZGZiY2ZiMTBlNTU0ZTk1NTMzNmE1Nzk1NjQw
Mi4uNDZmMjFmOTgxNmU1ZDIxNTY2ZWIyZGMyODZhZTJlNGRmNjgxNGRmNyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMxODMsNiArMzE4Myw4IEBACiAJ
CUE4MjRCNDY1MEUyRUYyRUEwMDgxQTdCNyAvKiBUZXh0UnVuLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODI0QjQ2NDBFMkVGMkVBMDA4MUE3QjcgLyog
VGV4dFJ1bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUE4MjZFOEFFMEExQThGMjMwMENEMUJCNiAvKiBKU09wdGlvbkNvbnN0cnVjdG9yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODI2RThBQzBBMUE4
RjIzMDBDRDFCQjYgLyogSlNPcHRpb25Db25zdHJ1Y3Rvci5oICovOyB9OwogCQlBODI2RUM0ODBB
MUIwQ0JFMDBDRDFCQjYgLyogSlNPcHRpb25Db25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODI2RThBRDBBMUE4RjIzMDBDRDFCQjYg
LyogSlNPcHRpb25Db25zdHJ1Y3Rvci5jcHAgKi87IH07CisJCUE4MkY3MThBMTIzREY0QTEwMEU3
MkI4OCAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBODJGNzE4ODEyM0RGNEExMDBFNzJCODggLyogTWl4ZWRDb250
ZW50Q2hlY2tlci5oICovOyB9OworCQlBODJGNzE4QjEyM0RGNEExMDBFNzJCODggLyogTWl4ZWRD
b250ZW50Q2hlY2tlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBODJGNzE4OTEyM0RGNEExMDBFNzJCODggLyogTWl4ZWRDb250ZW50Q2hlY2tlci5j
cHAgKi87IH07CiAJCUE4MzNDN0NBMEEyQ0YwNkIwMEQ1NzY2NCAvKiBTVkdOYW1lcy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTY1ODFFODA5RDE1
MDhEMDAwRTYxRDcgLyogU1ZHTmFtZXMuY3BwICovOyB9OwogCQlBODMzQzdDQzBBMkNGMDc0MDBE
NTc2NjQgLyogWExpbmtOYW1lcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2NTY1ODFFQTA5RDE1MDhEMDAwRTYxRDcgLyogWExpbmtOYW1lcy5jcHAg
Ki87IH07CiAJCUE4MzNDODBDMEEyQ0YyNTYwMEQ1NzY2NCAvKiBYTUxOYW1lcy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzgwQTBBMkNGMjU2
MDBENTc2NjQgLyogWE1MTmFtZXMuY3BwICovOyB9OwpAQCAtODk1MCw2ICs4OTUyLDggQEAKIAkJ
QTgyNEI0NjQwRTJFRjJFQTAwODFBN0I3IC8qIFRleHRSdW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVGV4dFJ1bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
ODI2RThBQzBBMUE4RjIzMDBDRDFCQjYgLyogSlNPcHRpb25Db25zdHJ1Y3Rvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNPcHRpb25Db25zdHJ1Y3Rvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBODI2RThBRDBBMUE4RjIzMDBDRDFCQjYgLyogSlNPcHRp
b25Db25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNPcHRpb25Db25zdHJ1Y3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4
MkY3MTg4MTIzREY0QTEwMEU3MkI4OCAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1peGVkQ29udGVudENoZWNrZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgyRjcxODkxMjNERjRBMTAwRTcyQjg4IC8qIE1peGVkQ29u
dGVudENoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWl4
ZWRDb250ZW50Q2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MzND
N0Y2MEEyQ0YxRDgwMEQ1NzY2NCAvKiB4bWxhdHRycy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0geG1sYXR0cnMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MzNDODBBMEEy
Q0YyNTYwMEQ1NzY2NCAvKiBYTUxOYW1lcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gWE1MTmFtZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
ODMzQzgwQjBBMkNGMjU2MDBENTc2NjQgLyogWE1MTmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFhNTE5hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNjU3NSwxMSArMTY1NzksOCBAQAogCQlCQ0IxNkJGQjA5NzlDMzg3MDA0Njc3NDEgLyogbG9h
ZGVyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk2MjhE
MjE0RDEyMTMxRUY0MDA1NURDRkMgLyogRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovLAogCQkJ
CTFBOEY2QkIwMERCNTVDREMwMDFEQjc5NCAvKiBhcHBjYWNoZSAqLywKIAkJCQk1MTJERDhFODBE
OTFFNjkxMDAwRjg5RUUgLyogYXJjaGl2ZSAqLywKLQkJCQk1MTI2RTZCNjBBMkUzQUVGMDA1QzI5
RkEgLyogaWNvbiAqLywKLQkJCQk5M0ExRUFBMjBBNTYzNEQ4MDA2OTYwQTAgLyogbWFjICovLAog
CQkJCUJDQjE2QkZFMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZS5jcHAgKi8sCiAJCQkJQkNCMTZC
RkYwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlLmggKi8sCiAJCQkJQkNCMTZDMDAwOTc5QzNCRDAw
NDY3NzQxIC8qIENhY2hlZENTU1N0eWxlU2hlZXQuY3BwICovLApAQCAtMTY1OTUsNyArMTY1OTYs
OCBAQAogCQkJCUJDQjE2QzA5MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUNsaWVu
dFdhbGtlci5oICovLAogCQkJCUU0N0I0QkU3MEU3MTI0MTYwMDAzODg1NCAvKiBDYWNoZWRSZXNv
dXJjZUhhbmRsZS5jcHAgKi8sCiAJCQkJRTQ3QjRCRTYwRTcxMjQxNjAwMDM4ODU0IC8qIENhY2hl
ZFJlc291cmNlSGFuZGxlLmggKi8sCi0JCQkJRTQ3MjA1M0EwRTVBMDUzQTAwMDZCQjREIC8qIENh
Y2hlZFJlc291cmNlSGFuZGxlLmggKi8sCisJCQkJQkNCMTZDMTAwOTc5QzNCRDAwNDY3NzQxIC8q
IENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCAqLywKKwkJCQlCQ0IxNkMxMTA5NzlDM0JEMDA0Njc3
NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCAqLywKIAkJCQlCQ0IxNkMwQTA5NzlDM0JEMDA0
Njc3NDEgLyogQ2FjaGVkU2NyaXB0LmNwcCAqLywKIAkJCQlCQ0IxNkMwQjA5NzlDM0JEMDA0Njc3
NDEgLyogQ2FjaGVkU2NyaXB0LmggKi8sCiAJCQkJQkNCMTZDMEUwOTc5QzNCRDAwNDY3NzQxIC8q
IENhY2hlZFhTTFN0eWxlU2hlZXQuY3BwICovLApAQCAtMTY2MDUsOCArMTY2MDcsNiBAQAogCQkJ
CUUxQzQxNjExMEY2NTYyRkQwMDkyRDJGQiAvKiBDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCAq
LywKIAkJCQlFMUM0MTVERDBGNjU1RDdDMDA5MkQyRkIgLyogQ3Jvc3NPcmlnaW5QcmVmbGlnaHRS
ZXN1bHRDYWNoZS5jcHAgKi8sCiAJCQkJRTFDNDE1RDkwRjY1NUQ2RjAwOTJEMkZCIC8qIENyb3Nz
T3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaCAqLywKLQkJCQlCQ0IxNkMxMDA5NzlDM0JEMDA0
Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwICovLAotCQkJCUJDQjE2QzExMDk3OUMz
QkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5oICovLAogCQkJCTkzRTIyN0RCMEFG
NTg5QUQwMEQ0ODMyNCAvKiBEb2N1bWVudExvYWRlci5jcHAgKi8sCiAJCQkJNjU2RDM3MUUwQURC
QTVERTAwQTQ1NTREIC8qIERvY3VtZW50TG9hZGVyLmggKi8sCiAJCQkJOEExMkUzNUMxMUZBMzMy
ODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5oICovLApAQCAtMTY2MjUsMTYgKzE2NjI1
LDIxIEBACiAJCQkJRDAwMEVCQTAxMUJEQUZENDAwQzQ3NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVN
YWNoaW5lLmNwcCAqLywKIAkJCQlEMDAwRUJBMTExQkRBRkQ0MDBDNDc3MjYgLyogRnJhbWVMb2Fk
ZXJTdGF0ZU1hY2hpbmUuaCAqLywKIAkJCQk5M0I3N0EzNzBBREQ3OTI1MDBFQTRCODEgLyogRnJh
bWVMb2FkZXJUeXBlcy5oICovLAorCQkJCTYyOEQyMTREMTIxMzFFRjQwMDU1RENGQyAvKiBGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmggKi8sCiAJCQkJNTFDODFCODcwQzQ0MjJGNzAwMTlFQ0UzIC8q
IEZUUERpcmVjdG9yeVBhcnNlci5jcHAgKi8sCiAJCQkJNTFDODFCODgwQzQ0MjJGNzAwMTlFQ0Uz
IC8qIEZUUERpcmVjdG9yeVBhcnNlci5oICovLAogCQkJCTk3RENFMUZGMTA4MDdDNzUwMDU3RDM5
NCAvKiBIaXN0b3J5Q29udHJvbGxlci5jcHAgKi8sCiAJCQkJOTdEQ0UyMDAxMDgwN0M3NTAwNTdE
Mzk0IC8qIEhpc3RvcnlDb250cm9sbGVyLmggKi8sCisJCQkJNTEyNkU2QjYwQTJFM0FFRjAwNUMy
OUZBIC8qIGljb24gKi8sCiAJCQkJMDg5NTgyNTMwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9h
ZGVyLmNwcCAqLywKIAkJCQkwODk1ODI1NDBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIu
aCAqLywKIAkJCQlCQ0IxNkMxMzA5NzlDM0JEMDA0Njc3NDEgLyogbG9hZGVyLmNwcCAqLywKIAkJ
CQlCQ0IxNkMxNDA5NzlDM0JEMDA0Njc3NDEgLyogbG9hZGVyLmggKi8sCisJCQkJOTNBMUVBQTIw
QTU2MzREODAwNjk2MEEwIC8qIG1hYyAqLywKIAkJCQk5M0UyMjdEQzBBRjU4OUFEMDBENDgzMjQg
LyogTWFpblJlc291cmNlTG9hZGVyLmNwcCAqLywKIAkJCQk2NTZEMzcyOTBBREJBNURFMDBBNDU1
NEQgLyogTWFpblJlc291cmNlTG9hZGVyLmggKi8sCisJCQkJQTgyRjcxODkxMjNERjRBMTAwRTcy
Qjg4IC8qIE1peGVkQ29udGVudENoZWNrZXIuY3BwICovLAorCQkJCUE4MkY3MTg4MTIzREY0QTEw
MEU3MkI4OCAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmggKi8sCiAJCQkJOTNDQ0YwNUYwQUY2Q0E3
NjAwMDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uY3BwICovLAogCQkJCTkzQ0NGMDI2MEFGNkM1
MjkwMDAxOEU4OSAvKiBOYXZpZ2F0aW9uQWN0aW9uLmggKi8sCiAJCQkJOTNFMjI3REQwQUY1ODlB
RDAwRDQ4MzI0IC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCAqLywKQEAgLTE2Njcz
LDYgKzE2Njc4LDcgQEAKIAkJCQkwQjkwNTYxODBGMjU3OEJFMDA5NUZGNkEgLyogVGhyZWFkYWJs
ZUxvYWRlckNsaWVudC5oICovLAogCQkJCTBCOTA1NkY2MEYyNjg1RjMwMDk1RkY2QSAvKiBXb3Jr
ZXJUaHJlYWRhYmxlTG9hZGVyLmNwcCAqLywKIAkJCQkwQjkwNTZGNzBGMjY4NUYzMDA5NUZGNkEg
LyogV29ya2VyVGhyZWFkYWJsZUxvYWRlci5oICovLAorCQkJCUU0NzIwNTNBMEU1QTA1M0EwMDA2
QkI0RCAvKiBDYWNoZWRSZXNvdXJjZUhhbmRsZS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBsb2Fk
ZXI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjA1NTcsNiArMjA1NjMsNyBAQAog
CQkJCTg5M0M0N0I4MTIzOEEwOTkwMDJCM0Q4NiAvKiBKU0ZpbGVDYWxsYmFjay5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODkzQzQ3QkMxMjM4QTBBOTAwMkIzRDg2IC8qIEpTRmlsZVdyaXRlckNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTMwOUM5RjEyMzk1MEJFMDBDQjkyMDQgLyogTmVz
dGluZ0xldmVsSW5jcmVtZW50ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4MkY3MThBMTIzREY0
QTEwMEU3MkI4OCAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIz
MDMxLDYgKzIzMDM4LDcgQEAKIAkJCQlBNjIyQThGQzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGlu
Z1NlY3VyaXR5QmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTNDNDdCNzEyMzhBMDk5MDAy
QjNEODYgLyogSlNGaWxlQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODkzQzQ3QkIx
MjM4QTBBOTAwMkIzRDg2IC8qIEpTRmlsZVdyaXRlckNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUE4MkY3MThCMTIzREY0QTEwMEU3MkI4OCAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmlu
ZGV4IGQ5MjVlYWIzOTVmZTNhOWNkOTk1MDAzYmQyODg0ZmFlZDZiOTM0YTMuLjRkNDE4YWMwMGRl
YzJhZTYxYjFiMTExYWFhYWIwM2QyZDkxM2VjOTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVy
L0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHAKQEAgLTIyMCw3ICsyMjAsNyBAQCBib29sIENhY2hlZFJlc291cmNlTG9h
ZGVyOjpjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVy
bAogI2VuZGlmCiAgICAgICAgIC8vIFRoZXNlIHJlc291cmNlIGNhbiBpbmplY3Qgc2NyaXB0IGlu
dG8gdGhlIGN1cnJlbnQgZG9jdW1lbnQuCiAgICAgICAgIGlmIChGcmFtZSogZiA9IGZyYW1lKCkp
Ci0gICAgICAgICAgICBmLT5sb2FkZXIoKS0+Y2hlY2tJZlJ1bkluc2VjdXJlQ29udGVudChtX2Rv
Yy0+c2VjdXJpdHlPcmlnaW4oKSwgdXJsKTsKKyAgICAgICAgICAgIGYtPmxvYWRlcigpLT5taXhl
ZENvbnRlbnRDaGVja2VyKCktPmNoZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQobV9kb2MtPnNlY3Vy
aXR5T3JpZ2luKCksIHVybCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OkltYWdlUmVzb3VyY2U6CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVl
dDoKQEAgLTIyOCw3ICsyMjgsNyBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1
ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVybAogICAgICAgICAv
LyBUaGVzZSByZXNvdXJjZXMgY2FuIGNvcnJ1cHQgb25seSB0aGUgZnJhbWUncyBwaXhlbHMuCiAg
ICAgICAgIGlmIChGcmFtZSogZiA9IGZyYW1lKCkpIHsKICAgICAgICAgICAgIEZyYW1lKiB0b3Ag
PSBmLT50cmVlKCktPnRvcCgpOwotICAgICAgICAgICAgdG9wLT5sb2FkZXIoKS0+Y2hlY2tJZkRp
c3BsYXlJbnNlY3VyZUNvbnRlbnQodG9wLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1
cmwpOworICAgICAgICAgICAgdG9wLT5sb2FkZXIoKS0+bWl4ZWRDb250ZW50Q2hlY2tlcigpLT5j
aGVja0lmRGlzcGxheUluc2VjdXJlQ29udGVudCh0b3AtPmRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCksIHVybCk7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCmluZGV4IDJlYzZmNzIwODJiZGQ4NzgzNmZmMmNkOTNjMDM5NDI2NzU1YTFhYjgu
LjkxZWI3YzBlNGUzNjg1N2RhZjkzYTI1MjM0ZmEwYTgxZDRkZThiYjMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKQEAgLTE4MCw2ICsxODAsNyBAQCBGcmFtZUxvYWRlcjo6RnJhbWVMb2FkZXIoRnJh
bWUqIGZyYW1lLCBGcmFtZUxvYWRlckNsaWVudCogY2xpZW50KQogICAgICwgbV9ub3RpZmVyKGZy
YW1lKQogICAgICwgbV93cml0ZXIoZnJhbWUpCiAgICAgLCBtX3N1YmZyYW1lTG9hZGVyKGZyYW1l
KQorICAgICwgbV9taXhlZENvbnRlbnRDaGVja2VyKGZyYW1lKQogICAgICwgbV9zdGF0ZShGcmFt
ZVN0YXRlQ29tbWl0dGVkUGFnZSkKICAgICAsIG1fbG9hZFR5cGUoRnJhbWVMb2FkVHlwZVN0YW5k
YXJkKQogICAgICwgbV9kZWxlZ2F0ZUlzSGFuZGxpbmdQcm92aXNpb25hbExvYWRFcnJvcihmYWxz
ZSkKQEAgLTk5OSw0MSArMTAwMCw2IEBAIFN0cmluZyBGcmFtZUxvYWRlcjo6b3V0Z29pbmdPcmln
aW4oKSBjb25zdAogICAgIHJldHVybiBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdp
bigpLT50b1N0cmluZygpOwogfQogCi1ib29sIEZyYW1lTG9hZGVyOjppc01peGVkQ29udGVudChT
ZWN1cml0eU9yaWdpbiogY29udGV4dCwgY29uc3QgS1VSTCYgdXJsKQotewotICAgIGlmIChjb250
ZXh0LT5wcm90b2NvbCgpICE9ICJodHRwcyIpCi0gICAgICAgIHJldHVybiBmYWxzZTsgIC8vIFdl
IG9ubHkgY2FyZSBhYm91dCBIVFRQUyBzZWN1cml0eSBvcmlnaW5zLgotCi0gICAgaWYgKCF1cmwu
aXNWYWxpZCgpIHx8IFNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzU2VjdXJl
KHVybC5wcm90b2NvbCgpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOyAgLy8gTG9hZGluZyB0aGVz
ZSBwcm90b2NvbHMgaXMgc2VjdXJlLgotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgRnJh
bWVMb2FkZXI6OmNoZWNrSWZEaXNwbGF5SW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBj
b250ZXh0LCBjb25zdCBLVVJMJiB1cmwpCi17Ci0gICAgaWYgKCFpc01peGVkQ29udGVudChjb250
ZXh0LCB1cmwpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBTdHJpbmcgbWVzc2FnZSA9IFN0cmlu
Zzo6Zm9ybWF0KCJUaGUgcGFnZSBhdCAlcyBkaXNwbGF5ZWQgaW5zZWN1cmUgY29udGVudCBmcm9t
ICVzLlxuIiwKLSAgICAgICAgbV9VUkwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgdXJsLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIG1fZnJhbWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCkt
PmFkZE1lc3NhZ2UoSFRNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVz
c2FnZUxldmVsLCBtZXNzYWdlLCAxLCBTdHJpbmcoKSk7Ci0KLSAgICBtX2NsaWVudC0+ZGlkRGlz
cGxheUluc2VjdXJlQ29udGVudCgpOwotfQotCi12b2lkIEZyYW1lTG9hZGVyOjpjaGVja0lmUnVu
SW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJMJiB1cmwp
Ci17Ci0gICAgaWYgKCFpc01peGVkQ29udGVudChjb250ZXh0LCB1cmwpKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBTdHJpbmcgbWVzc2FnZSA9IFN0cmluZzo6Zm9ybWF0KCJUaGUgcGFnZSBhdCAl
cyByYW4gaW5zZWN1cmUgY29udGVudCBmcm9tICVzLlxuIiwKLSAgICAgICAgbV9VUkwuc3RyaW5n
KCkudXRmOCgpLmRhdGEoKSwgdXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIG1fZnJh
bWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSFRNTE1lc3NhZ2VTb3VyY2Us
IExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAxLCBTdHJpbmco
KSk7Ci0KLSAgICBtX2NsaWVudC0+ZGlkUnVuSW5zZWN1cmVDb250ZW50KGNvbnRleHQpOwotfQot
CiBGcmFtZSogRnJhbWVMb2FkZXI6Om9wZW5lcigpCiB7CiAgICAgcmV0dXJuIG1fb3BlbmVyOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmgKaW5kZXggNDBmMzViZGNiNGJiNTUwNTY0ODRlZDQ5ZjA4Y2U4MzU0Y2U2
NDVhYi4uMDk2ODNjNjk4OGExOWVhZDllMDM5ZWJlMjFiMWU4N2VhMTgxZjdmOSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJTdGF0ZU1h
Y2hpbmUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiSGlzdG9y
eUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJNaXhlZENvbnRlbnRDaGVja2VyLmgiCiAjaW5jbHVk
ZSAiUG9saWN5Q2FsbGJhY2suaCIKICNpbmNsdWRlICJQb2xpY3lDaGVja2VyLmgiCiAjaW5jbHVk
ZSAiUmVkaXJlY3RTY2hlZHVsZXIuaCIKQEAgLTEwMCw2ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAg
UmVzb3VyY2VMb2FkTm90aWZpZXIqIG5vdGlmaWVyKCkgY29uc3QgeyByZXR1cm4gJm1fbm90aWZl
cjsgfQogICAgIERvY3VtZW50V3JpdGVyKiB3cml0ZXIoKSBjb25zdCB7IHJldHVybiAmbV93cml0
ZXI7IH0KICAgICBTdWJmcmFtZUxvYWRlciogc3ViZnJhbWVMb2FkZXIoKSBjb25zdCB7IHJldHVy
biAmbV9zdWJmcmFtZUxvYWRlcjsgfQorICAgIE1peGVkQ29udGVudENoZWNrZXIqIG1peGVkQ29u
dGVudENoZWNrZXIoKSBjb25zdCB7IHJldHVybiAmbV9taXhlZENvbnRlbnRDaGVja2VyOyB9CiAK
ICAgICAvLyBGSVhNRTogVGhpcyBpcyBub3QgY29vbCwgcGVvcGxlLiBUaGVyZSBhcmUgdG9vIG1h
bnkgZGlmZmVyZW50IGZ1bmN0aW9ucyB0aGF0IGFsbCBzdGFydCBsb2Fkcy4KICAgICAvLyBXZSBz
aG91bGQgYWltIHRvIGNvbnNvbGlkYXRlIHRoZXNlIGludG8gYSBzbWFsbGVyIHNldCBvZiBmdW5j
dGlvbnMsIGFuZCB0cnkgdG8gcmV1c2UgbW9yZSBvZgpAQCAtMjQ4LDExICsyNTAsNiBAQCBwdWJs
aWM6CiAgICAgLy8gdGhlIHNhbmRib3ggYXR0cmlidXRlIG9mIGFueSBwYXJlbnQgZnJhbWVzLgog
ICAgIHZvaWQgc2V0Rm9yY2VkU2FuZGJveEZsYWdzKFNhbmRib3hGbGFncyBmbGFncykgeyBtX2Zv
cmNlZFNhbmRib3hGbGFncyA9IGZsYWdzOyBtX3NhbmRib3hGbGFncyB8PSBmbGFnczsgfQogCi0g
ICAgLy8gTWl4ZWQgY29udGVudCByZWxhdGVkIGZ1bmN0aW9ucy4KLSAgICBzdGF0aWMgYm9vbCBp
c01peGVkQ29udGVudChTZWN1cml0eU9yaWdpbiogY29udGV4dCwgY29uc3QgS1VSTCYpOwotICAg
IHZvaWQgY2hlY2tJZkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlPcmlnaW4qIGNvbnRl
eHQsIGNvbnN0IEtVUkwmKTsKLSAgICB2b2lkIGNoZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQoU2Vj
dXJpdHlPcmlnaW4qIGNvbnRleHQsIGNvbnN0IEtVUkwmKTsKLQogICAgIEZyYW1lKiBvcGVuZXIo
KTsKICAgICB2b2lkIHNldE9wZW5lcihGcmFtZSopOwogCkBAIC00MzQsMTIgKzQzMSwxNiBAQCBw
cml2YXRlOgogICAgIEZyYW1lKiBtX2ZyYW1lOwogICAgIEZyYW1lTG9hZGVyQ2xpZW50KiBtX2Ns
aWVudDsKIAorICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgYmUgT3duUHRyPFQ+IHRvIHJlZHVj
ZSBidWlsZCB0aW1lcyBhbmQgc2ltcGxpZnkKKyAgICAvLyBoZWFkZXIgZGVwZW5kZW5jaWVzIHVu
bGVzcyBwZXJmb3JtYW5jZSB0ZXN0aW5nIHByb3ZlcyBvdGhlcndpc2UuCisgICAgLy8gU29tZSBv
ZiB0aGVzZSBjb3VsZCBiZSBsYXppbHkgY3JlYXRlZCBmb3IgbWVtb3J5IHNhdmluZ3Mgb24gZGV2
aWNlcy4KICAgICBtdXRhYmxlIFBvbGljeUNoZWNrZXIgbV9wb2xpY3lDaGVja2VyOwogICAgIG11
dGFibGUgSGlzdG9yeUNvbnRyb2xsZXIgbV9oaXN0b3J5OwogICAgIG11dGFibGUgUmVzb3VyY2VM
b2FkTm90aWZpZXIgbV9ub3RpZmVyOwogICAgIG11dGFibGUgRG9jdW1lbnRXcml0ZXIgbV93cml0
ZXI7CiAgICAgbXV0YWJsZSBTdWJmcmFtZUxvYWRlciBtX3N1YmZyYW1lTG9hZGVyOwogICAgIG11
dGFibGUgRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUgbV9zdGF0ZU1hY2hpbmU7CisgICAgbXV0YWJs
ZSBNaXhlZENvbnRlbnRDaGVja2VyIG1fbWl4ZWRDb250ZW50Q2hlY2tlcjsKIAogICAgIEZyYW1l
U3RhdGUgbV9zdGF0ZTsKICAgICBGcmFtZUxvYWRUeXBlIG1fbG9hZFR5cGU7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIv
TWFpblJlc291cmNlTG9hZGVyLmNwcAppbmRleCA2YTgyMWNhZWU3ZjRkMmUwNTk2ZDZlNTc2Nzkz
MTAyZWFhZWRkNDlhLi5lYjE0ODlmMTQ2NDhmNDFjZTQ0Y2Q2YTRkYWY3YTBkZTc5NDU0Zjk2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1dl
YkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE5MCw3ICsxOTAsNyBAQCB2
b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYg
bmV3UmVxdWVzdCwgY29uc3QgUmVzbwogCiAgICAgRnJhbWUqIHRvcCA9IG1fZnJhbWUtPnRyZWUo
KS0+dG9wKCk7CiAgICAgaWYgKHRvcCAhPSBtX2ZyYW1lKQotICAgICAgICBmcmFtZUxvYWRlcigp
LT5jaGVja0lmRGlzcGxheUluc2VjdXJlQ29udGVudCh0b3AtPmRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCksIG5ld1JlcXVlc3QudXJsKCkpOworICAgICAgICBmcmFtZUxvYWRlcigpLT5taXhl
ZENvbnRlbnRDaGVja2VyKCktPmNoZWNrSWZEaXNwbGF5SW5zZWN1cmVDb250ZW50KHRvcC0+ZG9j
dW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgbmV3UmVxdWVzdC51cmwoKSk7CiAKICAgICAvLyBG
SVhNRTogSWRlYWxseSB3ZSdkIHN0b3AgdGhlIEkvTyB1bnRpbCB3ZSBoZWFyIGJhY2sgZnJvbSB0
aGUgbmF2aWdhdGlvbiBwb2xpY3kgZGVsZWdhdGUKICAgICAvLyBsaXN0ZW5lci4gQnV0IHRoZXJl
J3Mgbm8gd2F5IHRvIGRvIHRoYXQgaW4gcHJhY3RpY2UuIFNvIGluc3RlYWQgd2UgY2FuY2VsIGxh
dGVyIGlmIHRoZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3Bw
IGIvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCmluZGV4IGUyNDdlNWJjYzQxYTNj
NTMwNjRhNjZiZGY5NGY2ZmI1OGJhZDZiMGYuLjIwOTQ2NWEwMWFiYjI2Y2Q0YjZiMjZiYTE4MTQ1
ZGNjYjA4YjkyNDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNw
cAorKysgYi9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKQEAgLTM1MSw3ICszNTEs
NyBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpsb2FkUGx1Z2luKEhUTUxQbHVnSW5JbWFnZUVsZW1l
bnQqIHBsdWdpbkVsZW1lbnQsIGNvbnN0IEtVUgogICAgIH0KIAogICAgIEZyYW1lTG9hZGVyKiBm
cmFtZUxvYWRlciA9IG1fZnJhbWUtPmxvYWRlcigpOwotICAgIGZyYW1lTG9hZGVyLT5jaGVja0lm
UnVuSW5zZWN1cmVDb250ZW50KGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHVybCk7Cisg
ICAgZnJhbWVMb2FkZXItPm1peGVkQ29udGVudENoZWNrZXIoKS0+Y2hlY2tJZlJ1bkluc2VjdXJl
Q29udGVudChkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmwpOwogCiAgICAgSW50U2l6
ZSBjb250ZW50U2l6ZShyZW5kZXJlci0+Y29udGVudFdpZHRoKCksIHJlbmRlcmVyLT5jb250ZW50
SGVpZ2h0KCkpOwogICAgIGJvb2wgbG9hZE1hbnVhbGx5ID0gZG9jdW1lbnQoKS0+aXNQbHVnaW5E
b2N1bWVudCgpICYmICFtX2NvbnRhaW5zUGx1Z2luczsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67366</attachid>
            <date>2010-09-13 00:10:20 -0700</date>
            <delta_ts>2010-09-13 01:37:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45638-20100913001019.patch</filename>
            <type>text/plain</type>
            <size>25174</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBjMGM1ZmJhMTNlMjc5NDhlYWI3OGM1NzdkYTA1MTI3ODNmOTQzNWRkLi41NTI5MzAxZmM3Nzcz
ZWMyY2JkYTY3YjEzNDE4ZGFkMzIxNWQzMDEwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0zMjksNiArMzI5LDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJbG9hZGVyL0hpc3RvcnlDb250cm9sbGVy
LmNwcCBcCiAJbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBcCiAJbG9hZGVyL01haW5SZXNvdXJjZUxv
YWRlci5jcHAgXAorCWxvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcCBcCiAJbG9hZGVyL05h
dmlnYXRpb25BY3Rpb24uY3BwIFwKIAlsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIu
Y3BwIFwKIAlsb2FkZXIvUGluZ0xvYWRlci5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMmQ4NzBlMmE5NjBhOTlh
MWY1ZGY4ZTRiOTI5M2IzZDgxMDdhYzRmYS4uNWJlMmYzMWZjYjZlNTExNzE1ZDkzMmMyZDJjMTY4
MzliMzc4N2U0NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMTAxLDYgKzExMDEsNyBAQCBTRVQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAogICAgIGxvYWRlci9JbWFnZUxv
YWRlci5jcHAKICAgICBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAorICAgIGxvYWRlci9N
aXhlZENvbnRlbnRDaGVja2VyLmNwcAogICAgIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcAog
ICAgIGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAKICAgICBsb2FkZXIvUGlu
Z0xvYWRlci5jcHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggOWZlYWZlNGRjN2NkOGVkMmFhNGQxMzY4MzRlNTE2NmQyYjU0ZGUyZi4uYjNh
NDE0MzJkM2UxMDVmNTgyNzU2NTcxNDk1NTg5NDE2NmUxMzY0YiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAx
MC0wOS0xMiAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBtaXhlZCBjb250ZW50IGxvZ2lj
IG91dCBvZiBGcmFtZUxvYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDU2MzgKKworICAgICAgICBKdXN0IG1vdmluZyBjb2RlLCBubyBmdW5jdGlv
bmFsIGNoYW5nZS4KKyAgICAgICAgSSBhbHNvIHNpbXBsaWZpZWQgdGhlIGNvZGUgZXZlciBzbyBz
bGlnaHRseSB3aGlsZSBtb3ZpbmcKKyAgICAgICAgKHVzZWQgZnVuY3Rpb25zIHRvIHJlZHVjZSBj
b2RlIGR1cGxpY2F0aW9uKS4KKworICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QpOgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
RnJhbWVMb2FkZXIpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXI6Om1peGVkQ29udGVudENoZWNrZXIpOgorICAgICAgICAqIGxv
YWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291
cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9TdWJmcmFtZUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6bG9hZFBsdWdpbik6
CisKIDIwMTAtMDktMTAgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDNkYWRhYTczYTRmZDkyZWY1
ZTBhNGY2ODJiZTJiN2U1MWExNTVlNTcuLmNjNDlhNTAzMGZkMWNiMjY0OGIxZWM4OGNiZGNmYzMw
NzhiNDU3NTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTcyMSw2ICsxNzIxLDggQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlXZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oIFwKIAlXZWJDb3JlL2xvYWRl
ci9JbWFnZUxvYWRlci5jcHAgXAogCVdlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmggXAorCVdl
YkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwIFwKKwlXZWJDb3JlL2xvYWRlci9N
aXhlZENvbnRlbnRDaGVja2VyLmggXAogCVdlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRl
ci5jcHAgXAogCVdlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oIFwKIAlXZWJDb3Jl
L2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGZlZDdjZTM5NzgzODY4ODU4OWRl
NjhkM2M2YzhiNDk2YmZmOThmOGQuLjNmNmZjZjk2NDg4NTNmZmY1N2FjM2JmZmU3NTU2NWI1OTU5
MGM0ZTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCkBAIC0xOTQxLDYgKzE5NDEsOCBAQAogICAgICAgICAgICAgJ2xvYWRlci9JbWFn
ZUxvYWRlci5oJywKICAgICAgICAgICAgICdsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCcs
CiAgICAgICAgICAgICAnbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oJywKKyAgICAgICAgICAg
ICdsb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAnLAorICAgICAgICAgICAgJ2xvYWRlci9N
aXhlZENvbnRlbnRDaGVja2VyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9OYXZpZ2F0aW9uQWN0
aW9uLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaCcsCiAgICAg
ICAgICAgICAnbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCcsCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA2YzY3
YmRlMTdiNjhkZTI3N2M4NGYwZWE3ZmM1MmIxOTNhZDk2NTVhLi5jZWYzYzE5MDc5ODA3MDgwMzcw
NzM3OTVhNmVlOWFiODJjYzdlYWIyIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTEwMDAsNiArMTAwMCw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIGxvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwIFwKICAgICBsb2FkZXIvSW1hZ2VMb2Fk
ZXIuY3BwIFwKICAgICBsb2FkZXIvbG9hZGVyLmNwcCBcCisgICAgbG9hZGVyL01peGVkQ29udGVu
dENoZWNrZXIuY3BwIFwKICAgICBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCBcCiAgICAg
bG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwIFwKICAgICBsb2FkZXIvTmV0c2NhcGVQbHVnSW5T
dHJlYW1Mb2FkZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4
IGUyNTY4MzUzMzZiMmRlZWY5NWRlMWNiNzVjNTBmMDkyZjhkNmViNDAuLmVkYzNmZWFlMWQ0YTQz
MTZkMjIzMjcwMTgzOTRjNzcyOGVhMmIwOGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagpAQCAtMjM2MjUsNiArMjM2MjUsMTQgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJ
CTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXE1peGVkQ29udGVudENoZWNrZXIu
Y3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cbG9hZGVyXE1peGVkQ29udGVudENoZWNrZXIuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJ
CQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxNYWluUmVzb3VyY2VMb2FkZXIu
Y3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggMTcxYWZkYWJjODgxZGZiY2ZiMTBlNTU0ZTk1NTMzNmE1Nzk1NjQw
Mi4uNDZmMjFmOTgxNmU1ZDIxNTY2ZWIyZGMyODZhZTJlNGRmNjgxNGRmNyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMxODMsNiArMzE4Myw4IEBACiAJ
CUE4MjRCNDY1MEUyRUYyRUEwMDgxQTdCNyAvKiBUZXh0UnVuLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODI0QjQ2NDBFMkVGMkVBMDA4MUE3QjcgLyog
VGV4dFJ1bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUE4MjZFOEFFMEExQThGMjMwMENEMUJCNiAvKiBKU09wdGlvbkNvbnN0cnVjdG9yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODI2RThBQzBBMUE4
RjIzMDBDRDFCQjYgLyogSlNPcHRpb25Db25zdHJ1Y3Rvci5oICovOyB9OwogCQlBODI2RUM0ODBB
MUIwQ0JFMDBDRDFCQjYgLyogSlNPcHRpb25Db25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODI2RThBRDBBMUE4RjIzMDBDRDFCQjYg
LyogSlNPcHRpb25Db25zdHJ1Y3Rvci5jcHAgKi87IH07CisJCUE4MkY3MThBMTIzREY0QTEwMEU3
MkI4OCAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBODJGNzE4ODEyM0RGNEExMDBFNzJCODggLyogTWl4ZWRDb250
ZW50Q2hlY2tlci5oICovOyB9OworCQlBODJGNzE4QjEyM0RGNEExMDBFNzJCODggLyogTWl4ZWRD
b250ZW50Q2hlY2tlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBODJGNzE4OTEyM0RGNEExMDBFNzJCODggLyogTWl4ZWRDb250ZW50Q2hlY2tlci5j
cHAgKi87IH07CiAJCUE4MzNDN0NBMEEyQ0YwNkIwMEQ1NzY2NCAvKiBTVkdOYW1lcy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTY1ODFFODA5RDE1
MDhEMDAwRTYxRDcgLyogU1ZHTmFtZXMuY3BwICovOyB9OwogCQlBODMzQzdDQzBBMkNGMDc0MDBE
NTc2NjQgLyogWExpbmtOYW1lcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2NTY1ODFFQTA5RDE1MDhEMDAwRTYxRDcgLyogWExpbmtOYW1lcy5jcHAg
Ki87IH07CiAJCUE4MzNDODBDMEEyQ0YyNTYwMEQ1NzY2NCAvKiBYTUxOYW1lcy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODMzQzgwQTBBMkNGMjU2
MDBENTc2NjQgLyogWE1MTmFtZXMuY3BwICovOyB9OwpAQCAtODk1MCw2ICs4OTUyLDggQEAKIAkJ
QTgyNEI0NjQwRTJFRjJFQTAwODFBN0I3IC8qIFRleHRSdW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVGV4dFJ1bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
ODI2RThBQzBBMUE4RjIzMDBDRDFCQjYgLyogSlNPcHRpb25Db25zdHJ1Y3Rvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNPcHRpb25Db25zdHJ1Y3Rvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBODI2RThBRDBBMUE4RjIzMDBDRDFCQjYgLyogSlNPcHRp
b25Db25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNPcHRpb25Db25zdHJ1Y3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4
MkY3MTg4MTIzREY0QTEwMEU3MkI4OCAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1peGVkQ29udGVudENoZWNrZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgyRjcxODkxMjNERjRBMTAwRTcyQjg4IC8qIE1peGVkQ29u
dGVudENoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWl4
ZWRDb250ZW50Q2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MzND
N0Y2MEEyQ0YxRDgwMEQ1NzY2NCAvKiB4bWxhdHRycy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0geG1sYXR0cnMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MzNDODBBMEEy
Q0YyNTYwMEQ1NzY2NCAvKiBYTUxOYW1lcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gWE1MTmFtZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
ODMzQzgwQjBBMkNGMjU2MDBENTc2NjQgLyogWE1MTmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFhNTE5hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNjU3NSwxMSArMTY1NzksOCBAQAogCQlCQ0IxNkJGQjA5NzlDMzg3MDA0Njc3NDEgLyogbG9h
ZGVyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk2MjhE
MjE0RDEyMTMxRUY0MDA1NURDRkMgLyogRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovLAogCQkJ
CTFBOEY2QkIwMERCNTVDREMwMDFEQjc5NCAvKiBhcHBjYWNoZSAqLywKIAkJCQk1MTJERDhFODBE
OTFFNjkxMDAwRjg5RUUgLyogYXJjaGl2ZSAqLywKLQkJCQk1MTI2RTZCNjBBMkUzQUVGMDA1QzI5
RkEgLyogaWNvbiAqLywKLQkJCQk5M0ExRUFBMjBBNTYzNEQ4MDA2OTYwQTAgLyogbWFjICovLAog
CQkJCUJDQjE2QkZFMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZS5jcHAgKi8sCiAJCQkJQkNCMTZC
RkYwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlLmggKi8sCiAJCQkJQkNCMTZDMDAwOTc5QzNCRDAw
NDY3NzQxIC8qIENhY2hlZENTU1N0eWxlU2hlZXQuY3BwICovLApAQCAtMTY1OTUsNyArMTY1OTYs
OCBAQAogCQkJCUJDQjE2QzA5MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUNsaWVu
dFdhbGtlci5oICovLAogCQkJCUU0N0I0QkU3MEU3MTI0MTYwMDAzODg1NCAvKiBDYWNoZWRSZXNv
dXJjZUhhbmRsZS5jcHAgKi8sCiAJCQkJRTQ3QjRCRTYwRTcxMjQxNjAwMDM4ODU0IC8qIENhY2hl
ZFJlc291cmNlSGFuZGxlLmggKi8sCi0JCQkJRTQ3MjA1M0EwRTVBMDUzQTAwMDZCQjREIC8qIENh
Y2hlZFJlc291cmNlSGFuZGxlLmggKi8sCisJCQkJQkNCMTZDMTAwOTc5QzNCRDAwNDY3NzQxIC8q
IENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCAqLywKKwkJCQlCQ0IxNkMxMTA5NzlDM0JEMDA0Njc3
NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCAqLywKIAkJCQlCQ0IxNkMwQTA5NzlDM0JEMDA0
Njc3NDEgLyogQ2FjaGVkU2NyaXB0LmNwcCAqLywKIAkJCQlCQ0IxNkMwQjA5NzlDM0JEMDA0Njc3
NDEgLyogQ2FjaGVkU2NyaXB0LmggKi8sCiAJCQkJQkNCMTZDMEUwOTc5QzNCRDAwNDY3NzQxIC8q
IENhY2hlZFhTTFN0eWxlU2hlZXQuY3BwICovLApAQCAtMTY2MDUsOCArMTY2MDcsNiBAQAogCQkJ
CUUxQzQxNjExMEY2NTYyRkQwMDkyRDJGQiAvKiBDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCAq
LywKIAkJCQlFMUM0MTVERDBGNjU1RDdDMDA5MkQyRkIgLyogQ3Jvc3NPcmlnaW5QcmVmbGlnaHRS
ZXN1bHRDYWNoZS5jcHAgKi8sCiAJCQkJRTFDNDE1RDkwRjY1NUQ2RjAwOTJEMkZCIC8qIENyb3Nz
T3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaCAqLywKLQkJCQlCQ0IxNkMxMDA5NzlDM0JEMDA0
Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwICovLAotCQkJCUJDQjE2QzExMDk3OUMz
QkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5oICovLAogCQkJCTkzRTIyN0RCMEFG
NTg5QUQwMEQ0ODMyNCAvKiBEb2N1bWVudExvYWRlci5jcHAgKi8sCiAJCQkJNjU2RDM3MUUwQURC
QTVERTAwQTQ1NTREIC8qIERvY3VtZW50TG9hZGVyLmggKi8sCiAJCQkJOEExMkUzNUMxMUZBMzMy
ODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5oICovLApAQCAtMTY2MjUsMTYgKzE2NjI1
LDIxIEBACiAJCQkJRDAwMEVCQTAxMUJEQUZENDAwQzQ3NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVN
YWNoaW5lLmNwcCAqLywKIAkJCQlEMDAwRUJBMTExQkRBRkQ0MDBDNDc3MjYgLyogRnJhbWVMb2Fk
ZXJTdGF0ZU1hY2hpbmUuaCAqLywKIAkJCQk5M0I3N0EzNzBBREQ3OTI1MDBFQTRCODEgLyogRnJh
bWVMb2FkZXJUeXBlcy5oICovLAorCQkJCTYyOEQyMTREMTIxMzFFRjQwMDU1RENGQyAvKiBGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmggKi8sCiAJCQkJNTFDODFCODcwQzQ0MjJGNzAwMTlFQ0UzIC8q
IEZUUERpcmVjdG9yeVBhcnNlci5jcHAgKi8sCiAJCQkJNTFDODFCODgwQzQ0MjJGNzAwMTlFQ0Uz
IC8qIEZUUERpcmVjdG9yeVBhcnNlci5oICovLAogCQkJCTk3RENFMUZGMTA4MDdDNzUwMDU3RDM5
NCAvKiBIaXN0b3J5Q29udHJvbGxlci5jcHAgKi8sCiAJCQkJOTdEQ0UyMDAxMDgwN0M3NTAwNTdE
Mzk0IC8qIEhpc3RvcnlDb250cm9sbGVyLmggKi8sCisJCQkJNTEyNkU2QjYwQTJFM0FFRjAwNUMy
OUZBIC8qIGljb24gKi8sCiAJCQkJMDg5NTgyNTMwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9h
ZGVyLmNwcCAqLywKIAkJCQkwODk1ODI1NDBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIu
aCAqLywKIAkJCQlCQ0IxNkMxMzA5NzlDM0JEMDA0Njc3NDEgLyogbG9hZGVyLmNwcCAqLywKIAkJ
CQlCQ0IxNkMxNDA5NzlDM0JEMDA0Njc3NDEgLyogbG9hZGVyLmggKi8sCisJCQkJOTNBMUVBQTIw
QTU2MzREODAwNjk2MEEwIC8qIG1hYyAqLywKIAkJCQk5M0UyMjdEQzBBRjU4OUFEMDBENDgzMjQg
LyogTWFpblJlc291cmNlTG9hZGVyLmNwcCAqLywKIAkJCQk2NTZEMzcyOTBBREJBNURFMDBBNDU1
NEQgLyogTWFpblJlc291cmNlTG9hZGVyLmggKi8sCisJCQkJQTgyRjcxODkxMjNERjRBMTAwRTcy
Qjg4IC8qIE1peGVkQ29udGVudENoZWNrZXIuY3BwICovLAorCQkJCUE4MkY3MTg4MTIzREY0QTEw
MEU3MkI4OCAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmggKi8sCiAJCQkJOTNDQ0YwNUYwQUY2Q0E3
NjAwMDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uY3BwICovLAogCQkJCTkzQ0NGMDI2MEFGNkM1
MjkwMDAxOEU4OSAvKiBOYXZpZ2F0aW9uQWN0aW9uLmggKi8sCiAJCQkJOTNFMjI3REQwQUY1ODlB
RDAwRDQ4MzI0IC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCAqLywKQEAgLTE2Njcz
LDYgKzE2Njc4LDcgQEAKIAkJCQkwQjkwNTYxODBGMjU3OEJFMDA5NUZGNkEgLyogVGhyZWFkYWJs
ZUxvYWRlckNsaWVudC5oICovLAogCQkJCTBCOTA1NkY2MEYyNjg1RjMwMDk1RkY2QSAvKiBXb3Jr
ZXJUaHJlYWRhYmxlTG9hZGVyLmNwcCAqLywKIAkJCQkwQjkwNTZGNzBGMjY4NUYzMDA5NUZGNkEg
LyogV29ya2VyVGhyZWFkYWJsZUxvYWRlci5oICovLAorCQkJCUU0NzIwNTNBMEU1QTA1M0EwMDA2
QkI0RCAvKiBDYWNoZWRSZXNvdXJjZUhhbmRsZS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBsb2Fk
ZXI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjA1NTcsNiArMjA1NjMsNyBAQAog
CQkJCTg5M0M0N0I4MTIzOEEwOTkwMDJCM0Q4NiAvKiBKU0ZpbGVDYWxsYmFjay5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODkzQzQ3QkMxMjM4QTBBOTAwMkIzRDg2IC8qIEpTRmlsZVdyaXRlckNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTMwOUM5RjEyMzk1MEJFMDBDQjkyMDQgLyogTmVz
dGluZ0xldmVsSW5jcmVtZW50ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4MkY3MThBMTIzREY0
QTEwMEU3MkI4OCAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIz
MDMxLDYgKzIzMDM4LDcgQEAKIAkJCQlBNjIyQThGQzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGlu
Z1NlY3VyaXR5QmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTNDNDdCNzEyMzhBMDk5MDAy
QjNEODYgLyogSlNGaWxlQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODkzQzQ3QkIx
MjM4QTBBOTAwMkIzRDg2IC8qIEpTRmlsZVdyaXRlckNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUE4MkY3MThCMTIzREY0QTEwMEU3MkI4OCAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmlu
ZGV4IGQ5MjVlYWIzOTVmZTNhOWNkOTk1MDAzYmQyODg0ZmFlZDZiOTM0YTMuLjRkNDE4YWMwMGRl
YzJhZTYxYjFiMTExYWFhYWIwM2QyZDkxM2VjOTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVy
L0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHAKQEAgLTIyMCw3ICsyMjAsNyBAQCBib29sIENhY2hlZFJlc291cmNlTG9h
ZGVyOjpjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVy
bAogI2VuZGlmCiAgICAgICAgIC8vIFRoZXNlIHJlc291cmNlIGNhbiBpbmplY3Qgc2NyaXB0IGlu
dG8gdGhlIGN1cnJlbnQgZG9jdW1lbnQuCiAgICAgICAgIGlmIChGcmFtZSogZiA9IGZyYW1lKCkp
Ci0gICAgICAgICAgICBmLT5sb2FkZXIoKS0+Y2hlY2tJZlJ1bkluc2VjdXJlQ29udGVudChtX2Rv
Yy0+c2VjdXJpdHlPcmlnaW4oKSwgdXJsKTsKKyAgICAgICAgICAgIGYtPmxvYWRlcigpLT5taXhl
ZENvbnRlbnRDaGVja2VyKCktPmNoZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQobV9kb2MtPnNlY3Vy
aXR5T3JpZ2luKCksIHVybCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OkltYWdlUmVzb3VyY2U6CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVl
dDoKQEAgLTIyOCw3ICsyMjgsNyBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1
ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVybAogICAgICAgICAv
LyBUaGVzZSByZXNvdXJjZXMgY2FuIGNvcnJ1cHQgb25seSB0aGUgZnJhbWUncyBwaXhlbHMuCiAg
ICAgICAgIGlmIChGcmFtZSogZiA9IGZyYW1lKCkpIHsKICAgICAgICAgICAgIEZyYW1lKiB0b3Ag
PSBmLT50cmVlKCktPnRvcCgpOwotICAgICAgICAgICAgdG9wLT5sb2FkZXIoKS0+Y2hlY2tJZkRp
c3BsYXlJbnNlY3VyZUNvbnRlbnQodG9wLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1
cmwpOworICAgICAgICAgICAgdG9wLT5sb2FkZXIoKS0+bWl4ZWRDb250ZW50Q2hlY2tlcigpLT5j
aGVja0lmRGlzcGxheUluc2VjdXJlQ29udGVudCh0b3AtPmRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCksIHVybCk7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCmluZGV4IDJlYzZmNzIwODJiZGQ4NzgzNmZmMmNkOTNjMDM5NDI2NzU1YTFhYjgu
LjkxZWI3YzBlNGUzNjg1N2RhZjkzYTI1MjM0ZmEwYTgxZDRkZThiYjMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKQEAgLTE4MCw2ICsxODAsNyBAQCBGcmFtZUxvYWRlcjo6RnJhbWVMb2FkZXIoRnJh
bWUqIGZyYW1lLCBGcmFtZUxvYWRlckNsaWVudCogY2xpZW50KQogICAgICwgbV9ub3RpZmVyKGZy
YW1lKQogICAgICwgbV93cml0ZXIoZnJhbWUpCiAgICAgLCBtX3N1YmZyYW1lTG9hZGVyKGZyYW1l
KQorICAgICwgbV9taXhlZENvbnRlbnRDaGVja2VyKGZyYW1lKQogICAgICwgbV9zdGF0ZShGcmFt
ZVN0YXRlQ29tbWl0dGVkUGFnZSkKICAgICAsIG1fbG9hZFR5cGUoRnJhbWVMb2FkVHlwZVN0YW5k
YXJkKQogICAgICwgbV9kZWxlZ2F0ZUlzSGFuZGxpbmdQcm92aXNpb25hbExvYWRFcnJvcihmYWxz
ZSkKQEAgLTk5OSw0MSArMTAwMCw2IEBAIFN0cmluZyBGcmFtZUxvYWRlcjo6b3V0Z29pbmdPcmln
aW4oKSBjb25zdAogICAgIHJldHVybiBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdp
bigpLT50b1N0cmluZygpOwogfQogCi1ib29sIEZyYW1lTG9hZGVyOjppc01peGVkQ29udGVudChT
ZWN1cml0eU9yaWdpbiogY29udGV4dCwgY29uc3QgS1VSTCYgdXJsKQotewotICAgIGlmIChjb250
ZXh0LT5wcm90b2NvbCgpICE9ICJodHRwcyIpCi0gICAgICAgIHJldHVybiBmYWxzZTsgIC8vIFdl
IG9ubHkgY2FyZSBhYm91dCBIVFRQUyBzZWN1cml0eSBvcmlnaW5zLgotCi0gICAgaWYgKCF1cmwu
aXNWYWxpZCgpIHx8IFNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzU2VjdXJl
KHVybC5wcm90b2NvbCgpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOyAgLy8gTG9hZGluZyB0aGVz
ZSBwcm90b2NvbHMgaXMgc2VjdXJlLgotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgRnJh
bWVMb2FkZXI6OmNoZWNrSWZEaXNwbGF5SW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBj
b250ZXh0LCBjb25zdCBLVVJMJiB1cmwpCi17Ci0gICAgaWYgKCFpc01peGVkQ29udGVudChjb250
ZXh0LCB1cmwpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBTdHJpbmcgbWVzc2FnZSA9IFN0cmlu
Zzo6Zm9ybWF0KCJUaGUgcGFnZSBhdCAlcyBkaXNwbGF5ZWQgaW5zZWN1cmUgY29udGVudCBmcm9t
ICVzLlxuIiwKLSAgICAgICAgbV9VUkwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgdXJsLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIG1fZnJhbWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCkt
PmFkZE1lc3NhZ2UoSFRNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVz
c2FnZUxldmVsLCBtZXNzYWdlLCAxLCBTdHJpbmcoKSk7Ci0KLSAgICBtX2NsaWVudC0+ZGlkRGlz
cGxheUluc2VjdXJlQ29udGVudCgpOwotfQotCi12b2lkIEZyYW1lTG9hZGVyOjpjaGVja0lmUnVu
SW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJMJiB1cmwp
Ci17Ci0gICAgaWYgKCFpc01peGVkQ29udGVudChjb250ZXh0LCB1cmwpKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBTdHJpbmcgbWVzc2FnZSA9IFN0cmluZzo6Zm9ybWF0KCJUaGUgcGFnZSBhdCAl
cyByYW4gaW5zZWN1cmUgY29udGVudCBmcm9tICVzLlxuIiwKLSAgICAgICAgbV9VUkwuc3RyaW5n
KCkudXRmOCgpLmRhdGEoKSwgdXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIG1fZnJh
bWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSFRNTE1lc3NhZ2VTb3VyY2Us
IExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAxLCBTdHJpbmco
KSk7Ci0KLSAgICBtX2NsaWVudC0+ZGlkUnVuSW5zZWN1cmVDb250ZW50KGNvbnRleHQpOwotfQot
CiBGcmFtZSogRnJhbWVMb2FkZXI6Om9wZW5lcigpCiB7CiAgICAgcmV0dXJuIG1fb3BlbmVyOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmgKaW5kZXggNDBmMzViZGNiNGJiNTUwNTY0ODRlZDQ5ZjA4Y2U4MzU0Y2U2
NDVhYi4uMDk2ODNjNjk4OGExOWVhZDllMDM5ZWJlMjFiMWU4N2VhMTgxZjdmOSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJTdGF0ZU1h
Y2hpbmUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiSGlzdG9y
eUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJNaXhlZENvbnRlbnRDaGVja2VyLmgiCiAjaW5jbHVk
ZSAiUG9saWN5Q2FsbGJhY2suaCIKICNpbmNsdWRlICJQb2xpY3lDaGVja2VyLmgiCiAjaW5jbHVk
ZSAiUmVkaXJlY3RTY2hlZHVsZXIuaCIKQEAgLTEwMCw2ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAg
UmVzb3VyY2VMb2FkTm90aWZpZXIqIG5vdGlmaWVyKCkgY29uc3QgeyByZXR1cm4gJm1fbm90aWZl
cjsgfQogICAgIERvY3VtZW50V3JpdGVyKiB3cml0ZXIoKSBjb25zdCB7IHJldHVybiAmbV93cml0
ZXI7IH0KICAgICBTdWJmcmFtZUxvYWRlciogc3ViZnJhbWVMb2FkZXIoKSBjb25zdCB7IHJldHVy
biAmbV9zdWJmcmFtZUxvYWRlcjsgfQorICAgIE1peGVkQ29udGVudENoZWNrZXIqIG1peGVkQ29u
dGVudENoZWNrZXIoKSBjb25zdCB7IHJldHVybiAmbV9taXhlZENvbnRlbnRDaGVja2VyOyB9CiAK
ICAgICAvLyBGSVhNRTogVGhpcyBpcyBub3QgY29vbCwgcGVvcGxlLiBUaGVyZSBhcmUgdG9vIG1h
bnkgZGlmZmVyZW50IGZ1bmN0aW9ucyB0aGF0IGFsbCBzdGFydCBsb2Fkcy4KICAgICAvLyBXZSBz
aG91bGQgYWltIHRvIGNvbnNvbGlkYXRlIHRoZXNlIGludG8gYSBzbWFsbGVyIHNldCBvZiBmdW5j
dGlvbnMsIGFuZCB0cnkgdG8gcmV1c2UgbW9yZSBvZgpAQCAtMjQ4LDExICsyNTAsNiBAQCBwdWJs
aWM6CiAgICAgLy8gdGhlIHNhbmRib3ggYXR0cmlidXRlIG9mIGFueSBwYXJlbnQgZnJhbWVzLgog
ICAgIHZvaWQgc2V0Rm9yY2VkU2FuZGJveEZsYWdzKFNhbmRib3hGbGFncyBmbGFncykgeyBtX2Zv
cmNlZFNhbmRib3hGbGFncyA9IGZsYWdzOyBtX3NhbmRib3hGbGFncyB8PSBmbGFnczsgfQogCi0g
ICAgLy8gTWl4ZWQgY29udGVudCByZWxhdGVkIGZ1bmN0aW9ucy4KLSAgICBzdGF0aWMgYm9vbCBp
c01peGVkQ29udGVudChTZWN1cml0eU9yaWdpbiogY29udGV4dCwgY29uc3QgS1VSTCYpOwotICAg
IHZvaWQgY2hlY2tJZkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlPcmlnaW4qIGNvbnRl
eHQsIGNvbnN0IEtVUkwmKTsKLSAgICB2b2lkIGNoZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQoU2Vj
dXJpdHlPcmlnaW4qIGNvbnRleHQsIGNvbnN0IEtVUkwmKTsKLQogICAgIEZyYW1lKiBvcGVuZXIo
KTsKICAgICB2b2lkIHNldE9wZW5lcihGcmFtZSopOwogCkBAIC00MzQsMTIgKzQzMSwxNiBAQCBw
cml2YXRlOgogICAgIEZyYW1lKiBtX2ZyYW1lOwogICAgIEZyYW1lTG9hZGVyQ2xpZW50KiBtX2Ns
aWVudDsKIAorICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgYmUgT3duUHRyPFQ+IHRvIHJlZHVj
ZSBidWlsZCB0aW1lcyBhbmQgc2ltcGxpZnkKKyAgICAvLyBoZWFkZXIgZGVwZW5kZW5jaWVzIHVu
bGVzcyBwZXJmb3JtYW5jZSB0ZXN0aW5nIHByb3ZlcyBvdGhlcndpc2UuCisgICAgLy8gU29tZSBv
ZiB0aGVzZSBjb3VsZCBiZSBsYXppbHkgY3JlYXRlZCBmb3IgbWVtb3J5IHNhdmluZ3Mgb24gZGV2
aWNlcy4KICAgICBtdXRhYmxlIFBvbGljeUNoZWNrZXIgbV9wb2xpY3lDaGVja2VyOwogICAgIG11
dGFibGUgSGlzdG9yeUNvbnRyb2xsZXIgbV9oaXN0b3J5OwogICAgIG11dGFibGUgUmVzb3VyY2VM
b2FkTm90aWZpZXIgbV9ub3RpZmVyOwogICAgIG11dGFibGUgRG9jdW1lbnRXcml0ZXIgbV93cml0
ZXI7CiAgICAgbXV0YWJsZSBTdWJmcmFtZUxvYWRlciBtX3N1YmZyYW1lTG9hZGVyOwogICAgIG11
dGFibGUgRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUgbV9zdGF0ZU1hY2hpbmU7CisgICAgbXV0YWJs
ZSBNaXhlZENvbnRlbnRDaGVja2VyIG1fbWl4ZWRDb250ZW50Q2hlY2tlcjsKIAogICAgIEZyYW1l
U3RhdGUgbV9zdGF0ZTsKICAgICBGcmFtZUxvYWRUeXBlIG1fbG9hZFR5cGU7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIv
TWFpblJlc291cmNlTG9hZGVyLmNwcAppbmRleCA2YTgyMWNhZWU3ZjRkMmUwNTk2ZDZlNTc2Nzkz
MTAyZWFhZWRkNDlhLi5lYjE0ODlmMTQ2NDhmNDFjZTQ0Y2Q2YTRkYWY3YTBkZTc5NDU0Zjk2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1dl
YkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE5MCw3ICsxOTAsNyBAQCB2
b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYg
bmV3UmVxdWVzdCwgY29uc3QgUmVzbwogCiAgICAgRnJhbWUqIHRvcCA9IG1fZnJhbWUtPnRyZWUo
KS0+dG9wKCk7CiAgICAgaWYgKHRvcCAhPSBtX2ZyYW1lKQotICAgICAgICBmcmFtZUxvYWRlcigp
LT5jaGVja0lmRGlzcGxheUluc2VjdXJlQ29udGVudCh0b3AtPmRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCksIG5ld1JlcXVlc3QudXJsKCkpOworICAgICAgICBmcmFtZUxvYWRlcigpLT5taXhl
ZENvbnRlbnRDaGVja2VyKCktPmNoZWNrSWZEaXNwbGF5SW5zZWN1cmVDb250ZW50KHRvcC0+ZG9j
dW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgbmV3UmVxdWVzdC51cmwoKSk7CiAKICAgICAvLyBG
SVhNRTogSWRlYWxseSB3ZSdkIHN0b3AgdGhlIEkvTyB1bnRpbCB3ZSBoZWFyIGJhY2sgZnJvbSB0
aGUgbmF2aWdhdGlvbiBwb2xpY3kgZGVsZWdhdGUKICAgICAvLyBsaXN0ZW5lci4gQnV0IHRoZXJl
J3Mgbm8gd2F5IHRvIGRvIHRoYXQgaW4gcHJhY3RpY2UuIFNvIGluc3RlYWQgd2UgY2FuY2VsIGxh
dGVyIGlmIHRoZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tl
ci5jcHAgYi9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jZGU0NWEwZjE2YmZlMWNiMzYyN2UxN2QwYzE4ZDU1YWI1ODhjNmMzCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAKQEAgLTAsMCArMSw5
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBB
cHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0
cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNaXhlZENvbnRlbnRDaGVj
a2VyLmgiCisKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50
LmgiCisjaW5jbHVkZSAiU2NoZW1lUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdp
bi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01peGVkQ29udGVudENoZWNrZXI6Ok1peGVk
Q29udGVudENoZWNrZXIoRnJhbWUqIGZyYW1lKQorICAgIDogbV9mcmFtZShmcmFtZSkKK3sKK30K
KworRnJhbWVMb2FkZXJDbGllbnQqIE1peGVkQ29udGVudENoZWNrZXI6OmNsaWVudCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKTsKK30KKworYm9vbCBN
aXhlZENvbnRlbnRDaGVja2VyOjppc01peGVkQ29udGVudChTZWN1cml0eU9yaWdpbiogY29udGV4
dCwgY29uc3QgS1VSTCYgdXJsKQoreworICAgIGlmIChjb250ZXh0LT5wcm90b2NvbCgpICE9ICJo
dHRwcyIpCisgICAgICAgIHJldHVybiBmYWxzZTsgLy8gV2Ugb25seSBjYXJlIGFib3V0IEhUVFBT
IHNlY3VyaXR5IG9yaWdpbnMuCisgICAgCisgICAgaWYgKCF1cmwuaXNWYWxpZCgpIHx8IFNjaGVt
ZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzU2VjdXJlKHVybC5wcm90b2NvbCgpKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBMb2FkaW5nIHRoZXNlIHByb3RvY29scyBpcyBzZWN1
cmUuCisgICAgCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2lubGluZSBDU3RyaW5nIGFzVVRGOChj
b25zdCBLVVJMJiB1cmwpCit7CisgICAgcmV0dXJuIHVybC5zdHJpbmcoKS51dGY4KCk7Cit9CisK
K3ZvaWQgTWl4ZWRDb250ZW50Q2hlY2tlcjo6Y2hlY2tJZkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQo
U2VjdXJpdHlPcmlnaW4qIGNvbnRleHQsIGNvbnN0IEtVUkwmIHVybCkgY29uc3QKK3sKKyAgICBp
ZiAoIWlzTWl4ZWRDb250ZW50KGNvbnRleHQsIHVybCkpCisgICAgICAgIHJldHVybjsKKworICAg
IGxvZ1dhcm5pbmcoU3RyaW5nOjpmb3JtYXQoIlRoZSBwYWdlIGF0ICVzIGRpc3BsYXllZCBpbnNl
Y3VyZSBjb250ZW50IGZyb20gJXMuXG4iLAorICAgICAgICBhc1VURjgobV9mcmFtZS0+ZG9jdW1l
bnQoKS0+dXJsKCkpLmRhdGEoKSwgYXNVVEY4KHVybCkuZGF0YSgpKSk7CisKKyAgICBjbGllbnQo
KS0+ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgpOworfQorCit2b2lkIE1peGVkQ29udGVudENo
ZWNrZXI6OmNoZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlPcmlnaW4qIGNvbnRleHQs
IGNvbnN0IEtVUkwmIHVybCkgY29uc3QKK3sKKyAgICBpZiAoIWlzTWl4ZWRDb250ZW50KGNvbnRl
eHQsIHVybCkpCisgICAgICAgIHJldHVybjsKKworICAgIGxvZ1dhcm5pbmcoU3RyaW5nOjpmb3Jt
YXQoIlRoZSBwYWdlIGF0ICVzIHJhbiBpbnNlY3VyZSBjb250ZW50IGZyb20gJXMuXG4iLAorICAg
ICAgICBhc1VURjgobV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkpLmRhdGEoKSwgYXNVVEY4KHVy
bCkuZGF0YSgpKSk7CisKKyAgICBjbGllbnQoKS0+ZGlkUnVuSW5zZWN1cmVDb250ZW50KGNvbnRl
eHQpOworfQorCit2b2lkIE1peGVkQ29udGVudENoZWNrZXI6OmxvZ1dhcm5pbmcoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKSBjb25zdAoreworICAgIENvbnNvbGUqIGNvbnNvbGUgPSBtX2ZyYW1lLT5k
b21XaW5kb3coKS0+Y29uc29sZSgpOworICAgIC8vIEZJWE1FOiBXaHkgZG9lcyB0aGlzIG1lc3Nh
Z2Ugbm90IGhhdmUgYSBzb3VyY2UgVVJMIG9yIGEgbGluZSBudW1iZXI/CisgICAgY29uc29sZS0+
YWRkTWVzc2FnZShIVE1MTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIFdhcm5pbmdNZXNz
YWdlTGV2ZWwsIG1lc3NhZ2UsIDEsIFN0cmluZygpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5oIGIv
V2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4ZmQ0NzNj
Yjk4MDFkZTI5OGY3MWE3OTkwOGYwYTBhZmUwYTYzYTUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJD
b3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
TWl4ZWRDb250ZW50Q2hlY2tlcl9oCisjZGVmaW5lIE1peGVkQ29udGVudENoZWNrZXJfaAorCisj
aW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGcmFtZTsKK2NsYXNzIEZyYW1lTG9hZGVy
Q2xpZW50OworY2xhc3MgS1VSTDsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworCitjbGFzcyBNaXhl
ZENvbnRlbnRDaGVja2VyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICBNaXhl
ZENvbnRlbnRDaGVja2VyKEZyYW1lKik7CisKKyAgICB2b2lkIGNoZWNrSWZEaXNwbGF5SW5zZWN1
cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJMJikgY29uc3Q7Cisg
ICAgdm9pZCBjaGVja0lmUnVuSW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0
LCBjb25zdCBLVVJMJikgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgLy8gRklYTUU6IFRoaXMgc2hv
dWxkIHByb2JhYmx5IGhhdmUgYSBzZXBhcmF0ZSBjbGllbnQgZnJvbSBGcmFtZUxvYWRlci4KKyAg
ICBGcmFtZUxvYWRlckNsaWVudCogY2xpZW50KCkgY29uc3Q7CisKKyAgICBzdGF0aWMgYm9vbCBp
c01peGVkQ29udGVudChTZWN1cml0eU9yaWdpbiogY29udGV4dCwgY29uc3QgS1VSTCYpOworICAg
IHZvaWQgbG9nV2FybmluZyhjb25zdCBTdHJpbmcmKSBjb25zdDsKKworICAgIEZyYW1lKiBtX2Zy
YW1lOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTWl4ZWRDb250
ZW50Q2hlY2tlcl9oCisKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVy
LmNwcCBiL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAppbmRleCBlMjQ3ZTViY2M0
MWEzYzUzMDY0YTY2YmRmOTRmNmZiNThiYWQ2YjBmLi4yMDk0NjVhMDFhYmIyNmNkNGI2YjI2YmEx
ODE0NWRjY2IwOGI5MjQwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRl
ci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCkBAIC0zNTEsNyAr
MzUxLDcgQEAgYm9vbCBTdWJmcmFtZUxvYWRlcjo6bG9hZFBsdWdpbihIVE1MUGx1Z0luSW1hZ2VF
bGVtZW50KiBwbHVnaW5FbGVtZW50LCBjb25zdCBLVVIKICAgICB9CiAKICAgICBGcmFtZUxvYWRl
ciogZnJhbWVMb2FkZXIgPSBtX2ZyYW1lLT5sb2FkZXIoKTsKLSAgICBmcmFtZUxvYWRlci0+Y2hl
Y2tJZlJ1bkluc2VjdXJlQ29udGVudChkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmwp
OworICAgIGZyYW1lTG9hZGVyLT5taXhlZENvbnRlbnRDaGVja2VyKCktPmNoZWNrSWZSdW5JbnNl
Y3VyZUNvbnRlbnQoZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgdXJsKTsKIAogICAgIElu
dFNpemUgY29udGVudFNpemUocmVuZGVyZXItPmNvbnRlbnRXaWR0aCgpLCByZW5kZXJlci0+Y29u
dGVudEhlaWdodCgpKTsKICAgICBib29sIGxvYWRNYW51YWxseSA9IGRvY3VtZW50KCktPmlzUGx1
Z2luRG9jdW1lbnQoKSAmJiAhbV9jb250YWluc1BsdWdpbnM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67377</attachid>
            <date>2010-09-13 01:37:56 -0700</date>
            <delta_ts>2010-09-13 10:16:59 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-45638-20100913013754.patch</filename>
            <type>text/plain</type>
            <size>25202</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBjMGM1ZmJhMTNlMjc5NDhlYWI3OGM1NzdkYTA1MTI3ODNmOTQzNWRkLi41NTI5MzAxZmM3Nzcz
ZWMyY2JkYTY3YjEzNDE4ZGFkMzIxNWQzMDEwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0zMjksNiArMzI5LDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJbG9hZGVyL0hpc3RvcnlDb250cm9sbGVy
LmNwcCBcCiAJbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBcCiAJbG9hZGVyL01haW5SZXNvdXJjZUxv
YWRlci5jcHAgXAorCWxvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcCBcCiAJbG9hZGVyL05h
dmlnYXRpb25BY3Rpb24uY3BwIFwKIAlsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIu
Y3BwIFwKIAlsb2FkZXIvUGluZ0xvYWRlci5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMmQ4NzBlMmE5NjBhOTlh
MWY1ZGY4ZTRiOTI5M2IzZDgxMDdhYzRmYS4uNWJlMmYzMWZjYjZlNTExNzE1ZDkzMmMyZDJjMTY4
MzliMzc4N2U0NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMTAxLDYgKzExMDEsNyBAQCBTRVQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAogICAgIGxvYWRlci9JbWFnZUxv
YWRlci5jcHAKICAgICBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAorICAgIGxvYWRlci9N
aXhlZENvbnRlbnRDaGVja2VyLmNwcAogICAgIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcAog
ICAgIGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAKICAgICBsb2FkZXIvUGlu
Z0xvYWRlci5jcHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggOWZlYWZlNGRjN2NkOGVkMmFhNGQxMzY4MzRlNTE2NmQyYjU0ZGUyZi4uNTk1
ZjFmOWQzNDQ1Y2JiMjNmZGMwYmI5ZTIyOGZmZDUxMjVhOWRmYSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAx
MC0wOS0xMiAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBNb3ZlIG1peGVkIGNvbnRlbnQgbG9naWMgb3V0
IG9mIEZyYW1lTG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00NTYzOAorCisgICAgICAgIEp1c3QgbW92aW5nIGNvZGUsIG5vIGZ1bmN0aW9uYWwg
Y2hhbmdlLgorICAgICAgICBJIGFsc28gc2ltcGxpZmllZCB0aGUgY29kZSBldmVyIHNvIHNsaWdo
dGx5IHdoaWxlIG1vdmluZworICAgICAgICAodXNlZCBmdW5jdGlvbnMgdG8gcmVkdWNlIGNvZGUg
ZHVwbGljYXRpb24pLgorCisgICAgICAgICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGxvYWRlci9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FuUmVxdWVzdCk6CisgICAgICAgICogbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpGcmFt
ZUxvYWRlcik6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6bWl4ZWRDb250ZW50Q2hlY2tlcik6CisgICAgICAgICogbG9hZGVy
L01haW5SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VM
b2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL1N1YmZyYW1lTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpsb2FkUGx1Z2luKToKKwog
MjAxMC0wOS0xMCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggM2RhZGFhNzNhNGZkOTJlZjVlMGE0
ZjY4MmJlMmI3ZTUxYTE1NWU1Ny4uY2M0OWE1MDMwZmQxY2IyNjQ4YjFlYzg4Y2JkY2ZjMzA3OGI0
NTc1MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCkBAIC0xNzIxLDYgKzE3MjEsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVdlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmggXAogCVdlYkNvcmUvbG9hZGVyL0lt
YWdlTG9hZGVyLmNwcCBcCiAJV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuaCBcCisJV2ViQ29y
ZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAgXAorCVdlYkNvcmUvbG9hZGVyL01peGVk
Q29udGVudENoZWNrZXIuaCBcCiAJV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNw
cCBcCiAJV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmggXAogCVdlYkNvcmUvbG9h
ZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5n
eXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZmVkN2NlMzk3ODM4Njg4NTg5ZGU2OGQz
YzZjOGI0OTZiZmY5OGY4ZC4uM2Y2ZmNmOTY0ODg1M2ZmZjU3YWMzYmZmZTc1NTY1YjU5NTkwYzRl
MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKQEAgLTE5NDEsNiArMTk0MSw4IEBACiAgICAgICAgICAgICAnbG9hZGVyL0ltYWdlTG9h
ZGVyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwJywKICAg
ICAgICAgICAgICdsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmgnLAorICAgICAgICAgICAgJ2xv
YWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcCcsCisgICAgICAgICAgICAnbG9hZGVyL01peGVk
Q29udGVudENoZWNrZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL05hdmlnYXRpb25BY3Rpb24u
Y3BwJywKICAgICAgICAgICAgICdsb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oJywKICAgICAgICAg
ICAgICdsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwJywKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDZjNjdiZGUx
N2I2OGRlMjc3Yzg0ZjBlYTdmYzUyYjE5M2FkOTY1NWEuLmNlZjNjMTkwNzk4MDcwODAzNzA3Mzc5
NWE2ZWU5YWI4MmNjN2VhYjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTAwMCw2ICsxMDAwLDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAgXAogICAgIGxvYWRlci9JbWFnZUxvYWRlci5j
cHAgXAogICAgIGxvYWRlci9sb2FkZXIuY3BwIFwKKyAgICBsb2FkZXIvTWl4ZWRDb250ZW50Q2hl
Y2tlci5jcHAgXAogICAgIGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwIFwKICAgICBsb2Fk
ZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAgXAogICAgIGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlci5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZTI1
NjgzNTMzNmIyZGVlZjk1ZGUxY2I3NWM1MGYwOTJmOGQ2ZWI0MC4uZWRjM2ZlYWUxZDRhNDMxNmQy
MjMyNzAxODM5NGM3NzI4ZWEyYjA4ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCkBAIC0yMzYyNSw2ICsyMzYyNSwxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZp
bGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJcTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAi
DQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxs
b2FkZXJcTWl4ZWRDb250ZW50Q2hlY2tlci5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxG
aWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXE1haW5SZXNvdXJjZUxvYWRlci5jcHAi
DQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAxNzFhZmRhYmM4ODFkZmJjZmIxMGU1NTRlOTU1MzM2YTU3OTU2NDAyLi40
NmYyMWY5ODE2ZTVkMjE1NjZlYjJkYzI4NmFlMmU0ZGY2ODE0ZGY3IDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzE4Myw2ICszMTgzLDggQEAKIAkJQTgy
NEI0NjUwRTJFRjJFQTAwODFBN0I3IC8qIFRleHRSdW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MjRCNDY0MEUyRUYyRUEwMDgxQTdCNyAvKiBUZXh0
UnVuLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QTgyNkU4QUUwQTFBOEYyMzAwQ0QxQkI2IC8qIEpTT3B0aW9uQ29uc3RydWN0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MjZFOEFDMEExQThGMjMw
MENEMUJCNiAvKiBKU09wdGlvbkNvbnN0cnVjdG9yLmggKi87IH07CiAJCUE4MjZFQzQ4MEExQjBD
QkUwMENEMUJCNiAvKiBKU09wdGlvbkNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MjZFOEFEMEExQThGMjMwMENEMUJCNiAvKiBK
U09wdGlvbkNvbnN0cnVjdG9yLmNwcCAqLzsgfTsKKwkJQTgyRjcxOEExMjNERjRBMTAwRTcyQjg4
IC8qIE1peGVkQ29udGVudENoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4MkY3MTg4MTIzREY0QTEwMEU3MkI4OCAvKiBNaXhlZENvbnRlbnRD
aGVja2VyLmggKi87IH07CisJCUE4MkY3MThCMTIzREY0QTEwMEU3MkI4OCAvKiBNaXhlZENvbnRl
bnRDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4MkY3MTg5MTIzREY0QTEwMEU3MkI4OCAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmNwcCAq
LzsgfTsKIAkJQTgzM0M3Q0EwQTJDRjA2QjAwRDU3NjY0IC8qIFNWR05hbWVzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NjU4MUU4MDlEMTUwOEQw
MDBFNjFENyAvKiBTVkdOYW1lcy5jcHAgKi87IH07CiAJCUE4MzNDN0NDMEEyQ0YwNzQwMEQ1NzY2
NCAvKiBYTGlua05hbWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDY1NjU4MUVBMDlEMTUwOEQwMDBFNjFENyAvKiBYTGlua05hbWVzLmNwcCAqLzsg
fTsKIAkJQTgzM0M4MEMwQTJDRjI1NjAwRDU3NjY0IC8qIFhNTE5hbWVzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MzNDODBBMEEyQ0YyNTYwMEQ1
NzY2NCAvKiBYTUxOYW1lcy5jcHAgKi87IH07CkBAIC04OTUwLDYgKzg5NTIsOCBAQAogCQlBODI0
QjQ2NDBFMkVGMkVBMDA4MUE3QjcgLyogVGV4dFJ1bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUZXh0UnVuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MjZF
OEFDMEExQThGMjMwMENEMUJCNiAvKiBKU09wdGlvbkNvbnN0cnVjdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU09wdGlvbkNvbnN0cnVjdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4MjZFOEFEMEExQThGMjMwMENEMUJCNiAvKiBKU09wdGlvbkNv
bnN0cnVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU09w
dGlvbkNvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgyRjcx
ODgxMjNERjRBMTAwRTcyQjg4IC8qIE1peGVkQ29udGVudENoZWNrZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWl4ZWRDb250ZW50Q2hlY2tlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBODJGNzE4OTEyM0RGNEExMDBFNzJCODggLyogTWl4ZWRDb250ZW50
Q2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNaXhlZENv
bnRlbnRDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgzM0M3RjYw
QTJDRjFEODAwRDU3NjY0IC8qIHhtbGF0dHJzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSB4
bWxhdHRycy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgzM0M4MEEwQTJDRjI1
NjAwRDU3NjY0IC8qIFhNTE5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBYTUxOYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MzND
ODBCMEEyQ0YyNTYwMEQ1NzY2NCAvKiBYTUxOYW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gWE1MTmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2
NTc1LDExICsxNjU3OSw4IEBACiAJCUJDQjE2QkZCMDk3OUMzODcwMDQ2Nzc0MSAvKiBsb2FkZXIg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTYyOEQyMTRE
MTIxMzFFRjQwMDU1RENGQyAvKiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi8sCiAJCQkJMUE4
RjZCQjAwREI1NUNEQzAwMURCNzk0IC8qIGFwcGNhY2hlICovLAogCQkJCTUxMkREOEU4MEQ5MUU2
OTEwMDBGODlFRSAvKiBhcmNoaXZlICovLAotCQkJCTUxMjZFNkI2MEEyRTNBRUYwMDVDMjlGQSAv
KiBpY29uICovLAotCQkJCTkzQTFFQUEyMEE1NjM0RDgwMDY5NjBBMCAvKiBtYWMgKi8sCiAJCQkJ
QkNCMTZCRkUwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlLmNwcCAqLywKIAkJCQlCQ0IxNkJGRjA5
NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGUuaCAqLywKIAkJCQlCQ0IxNkMwMDA5NzlDM0JEMDA0Njc3
NDEgLyogQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAgKi8sCkBAIC0xNjU5NSw3ICsxNjU5Niw4IEBA
CiAJCQkJQkNCMTZDMDkwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlQ2xpZW50V2Fs
a2VyLmggKi8sCiAJCQkJRTQ3QjRCRTcwRTcxMjQxNjAwMDM4ODU0IC8qIENhY2hlZFJlc291cmNl
SGFuZGxlLmNwcCAqLywKIAkJCQlFNDdCNEJFNjBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVz
b3VyY2VIYW5kbGUuaCAqLywKLQkJCQlFNDcyMDUzQTBFNUEwNTNBMDAwNkJCNEQgLyogQ2FjaGVk
UmVzb3VyY2VIYW5kbGUuaCAqLywKKwkJCQlCQ0IxNkMxMDA5NzlDM0JEMDA0Njc3NDEgLyogQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuY3BwICovLAorCQkJCUJDQjE2QzExMDk3OUMzQkQwMDQ2Nzc0MSAv
KiBDYWNoZWRSZXNvdXJjZUxvYWRlci5oICovLAogCQkJCUJDQjE2QzBBMDk3OUMzQkQwMDQ2Nzc0
MSAvKiBDYWNoZWRTY3JpcHQuY3BwICovLAogCQkJCUJDQjE2QzBCMDk3OUMzQkQwMDQ2Nzc0MSAv
KiBDYWNoZWRTY3JpcHQuaCAqLywKIAkJCQlCQ0IxNkMwRTA5NzlDM0JEMDA0Njc3NDEgLyogQ2Fj
aGVkWFNMU3R5bGVTaGVldC5jcHAgKi8sCkBAIC0xNjYwNSw4ICsxNjYwNyw2IEBACiAJCQkJRTFD
NDE2MTEwRjY1NjJGRDAwOTJEMkZCIC8qIENyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oICovLAog
CQkJCUUxQzQxNUREMEY2NTVEN0MwMDkyRDJGQiAvKiBDcm9zc09yaWdpblByZWZsaWdodFJlc3Vs
dENhY2hlLmNwcCAqLywKIAkJCQlFMUM0MTVEOTBGNjU1RDZGMDA5MkQyRkIgLyogQ3Jvc3NPcmln
aW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oICovLAotCQkJCUJDQjE2QzEwMDk3OUMzQkQwMDQ2Nzc0
MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgKi8sCi0JCQkJQkNCMTZDMTEwOTc5QzNCRDAw
NDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmggKi8sCiAJCQkJOTNFMjI3REIwQUY1ODlB
RDAwRDQ4MzI0IC8qIERvY3VtZW50TG9hZGVyLmNwcCAqLywKIAkJCQk2NTZEMzcxRTBBREJBNURF
MDBBNDU1NEQgLyogRG9jdW1lbnRMb2FkZXIuaCAqLywKIAkJCQk4QTEyRTM1QzExRkEzMzI4MDAy
NTgzNkEgLyogRG9jdW1lbnRMb2FkVGltaW5nLmggKi8sCkBAIC0xNjYyNSwxNiArMTY2MjUsMjEg
QEAKIAkJCQlEMDAwRUJBMDExQkRBRkQ0MDBDNDc3MjYgLyogRnJhbWVMb2FkZXJTdGF0ZU1hY2hp
bmUuY3BwICovLAogCQkJCUQwMDBFQkExMTFCREFGRDQwMEM0NzcyNiAvKiBGcmFtZUxvYWRlclN0
YXRlTWFjaGluZS5oICovLAogCQkJCTkzQjc3QTM3MEFERDc5MjUwMEVBNEI4MSAvKiBGcmFtZUxv
YWRlclR5cGVzLmggKi8sCisJCQkJNjI4RDIxNEQxMjEzMUVGNDAwNTVEQ0ZDIC8qIEZyYW1lTmV0
d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCQk1MUM4MUI4NzBDNDQyMkY3MDAxOUVDRTMgLyogRlRQ
RGlyZWN0b3J5UGFyc2VyLmNwcCAqLywKIAkJCQk1MUM4MUI4ODBDNDQyMkY3MDAxOUVDRTMgLyog
RlRQRGlyZWN0b3J5UGFyc2VyLmggKi8sCiAJCQkJOTdEQ0UxRkYxMDgwN0M3NTAwNTdEMzk0IC8q
IEhpc3RvcnlDb250cm9sbGVyLmNwcCAqLywKIAkJCQk5N0RDRTIwMDEwODA3Qzc1MDA1N0QzOTQg
LyogSGlzdG9yeUNvbnRyb2xsZXIuaCAqLywKKwkJCQk1MTI2RTZCNjBBMkUzQUVGMDA1QzI5RkEg
LyogaWNvbiAqLywKIAkJCQkwODk1ODI1MzBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIu
Y3BwICovLAogCQkJCTA4OTU4MjU0MEU4NTdBN0UwMEY4MkM4MyAvKiBJbWFnZUxvYWRlci5oICov
LAogCQkJCUJDQjE2QzEzMDk3OUMzQkQwMDQ2Nzc0MSAvKiBsb2FkZXIuY3BwICovLAogCQkJCUJD
QjE2QzE0MDk3OUMzQkQwMDQ2Nzc0MSAvKiBsb2FkZXIuaCAqLywKKwkJCQk5M0ExRUFBMjBBNTYz
NEQ4MDA2OTYwQTAgLyogbWFjICovLAogCQkJCTkzRTIyN0RDMEFGNTg5QUQwMEQ0ODMyNCAvKiBN
YWluUmVzb3VyY2VMb2FkZXIuY3BwICovLAogCQkJCTY1NkQzNzI5MEFEQkE1REUwMEE0NTU0RCAv
KiBNYWluUmVzb3VyY2VMb2FkZXIuaCAqLywKKwkJCQlBODJGNzE4OTEyM0RGNEExMDBFNzJCODgg
LyogTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAgKi8sCisJCQkJQTgyRjcxODgxMjNERjRBMTAwRTcy
Qjg4IC8qIE1peGVkQ29udGVudENoZWNrZXIuaCAqLywKIAkJCQk5M0NDRjA1RjBBRjZDQTc2MDAw
MThFODkgLyogTmF2aWdhdGlvbkFjdGlvbi5jcHAgKi8sCiAJCQkJOTNDQ0YwMjYwQUY2QzUyOTAw
MDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uaCAqLywKIAkJCQk5M0UyMjdERDBBRjU4OUFEMDBE
NDgzMjQgLyogTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwICovLApAQCAtMTY2NzMsNiAr
MTY2NzgsNyBAQAogCQkJCTBCOTA1NjE4MEYyNTc4QkUwMDk1RkY2QSAvKiBUaHJlYWRhYmxlTG9h
ZGVyQ2xpZW50LmggKi8sCiAJCQkJMEI5MDU2RjYwRjI2ODVGMzAwOTVGRjZBIC8qIFdvcmtlclRo
cmVhZGFibGVMb2FkZXIuY3BwICovLAogCQkJCTBCOTA1NkY3MEYyNjg1RjMwMDk1RkY2QSAvKiBX
b3JrZXJUaHJlYWRhYmxlTG9hZGVyLmggKi8sCisJCQkJRTQ3MjA1M0EwRTVBMDUzQTAwMDZCQjRE
IC8qIENhY2hlZFJlc291cmNlSGFuZGxlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGxvYWRlcjsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMDU1Nyw2ICsyMDU2Myw3IEBACiAJCQkJ
ODkzQzQ3QjgxMjM4QTA5OTAwMkIzRDg2IC8qIEpTRmlsZUNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4OTNDNDdCQzEyMzhBMEE5MDAyQjNEODYgLyogSlNGaWxlV3JpdGVyQ2FsbGJhY2su
aCBpbiBIZWFkZXJzICovLAogCQkJCThBMzA5QzlGMTIzOTUwQkUwMENCOTIwNCAvKiBOZXN0aW5n
TGV2ZWxJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTgyRjcxOEExMjNERjRBMTAw
RTcyQjg4IC8qIE1peGVkQ29udGVudENoZWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjMwMzEs
NiArMjMwMzgsNyBAQAogCQkJCUE2MjJBOEZDMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2Vj
dXJpdHlCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5M0M0N0I3MTIzOEEwOTkwMDJCM0Q4
NiAvKiBKU0ZpbGVDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTNDNDdCQjEyMzhB
MEE5MDAyQjNEODYgLyogSlNGaWxlV3JpdGVyQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJQTgyRjcxOEIxMjNERjRBMTAwRTcyQjg4IC8qIE1peGVkQ29udGVudENoZWNrZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9DYWNoZWRSZXNvdXJjZUxv
YWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXgg
ZDkyNWVhYjM5NWZlM2E5Y2Q5OTUwMDNiZDI4ODRmYWVkNmI5MzRhMy4uNGQ0MThhYzAwZGVjMmFl
NjFiMWIxMTFhYWFhYjAzZDJkOTEzZWM5NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0NhY2hlZFJlc291cmNl
TG9hZGVyLmNwcApAQCAtMjIwLDcgKzIyMCw3IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6
OmNhblJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgS1VSTCYgdXJsCiAj
ZW5kaWYKICAgICAgICAgLy8gVGhlc2UgcmVzb3VyY2UgY2FuIGluamVjdCBzY3JpcHQgaW50byB0
aGUgY3VycmVudCBkb2N1bWVudC4KICAgICAgICAgaWYgKEZyYW1lKiBmID0gZnJhbWUoKSkKLSAg
ICAgICAgICAgIGYtPmxvYWRlcigpLT5jaGVja0lmUnVuSW5zZWN1cmVDb250ZW50KG1fZG9jLT5z
ZWN1cml0eU9yaWdpbigpLCB1cmwpOworICAgICAgICAgICAgZi0+bG9hZGVyKCktPm1peGVkQ29u
dGVudENoZWNrZXIoKS0+Y2hlY2tJZlJ1bkluc2VjdXJlQ29udGVudChtX2RvYy0+c2VjdXJpdHlP
cmlnaW4oKSwgdXJsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6
SW1hZ2VSZXNvdXJjZToKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0OgpA
QCAtMjI4LDcgKzIyOCw3IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3Qo
Q2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgS1VSTCYgdXJsCiAgICAgICAgIC8vIFRo
ZXNlIHJlc291cmNlcyBjYW4gY29ycnVwdCBvbmx5IHRoZSBmcmFtZSdzIHBpeGVscy4KICAgICAg
ICAgaWYgKEZyYW1lKiBmID0gZnJhbWUoKSkgewogICAgICAgICAgICAgRnJhbWUqIHRvcCA9IGYt
PnRyZWUoKS0+dG9wKCk7Ci0gICAgICAgICAgICB0b3AtPmxvYWRlcigpLT5jaGVja0lmRGlzcGxh
eUluc2VjdXJlQ29udGVudCh0b3AtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHVybCk7
CisgICAgICAgICAgICB0b3AtPmxvYWRlcigpLT5taXhlZENvbnRlbnRDaGVja2VyKCktPmNoZWNr
SWZEaXNwbGF5SW5zZWN1cmVDb250ZW50KHRvcC0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4o
KSwgdXJsKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKaW5kZXggMmVjNmY3MjA4MmJkZDg3ODM2ZmYyY2Q5M2MwMzk0MjY3NTVhMWFiOC4uOTFl
YjdjMGU0ZTM2ODU3ZGFmOTNhMjUyMzRmYTBhODFkNGRlOGJiMyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcApAQCAtMTgwLDYgKzE4MCw3IEBAIEZyYW1lTG9hZGVyOjpGcmFtZUxvYWRlcihGcmFtZSog
ZnJhbWUsIEZyYW1lTG9hZGVyQ2xpZW50KiBjbGllbnQpCiAgICAgLCBtX25vdGlmZXIoZnJhbWUp
CiAgICAgLCBtX3dyaXRlcihmcmFtZSkKICAgICAsIG1fc3ViZnJhbWVMb2FkZXIoZnJhbWUpCisg
ICAgLCBtX21peGVkQ29udGVudENoZWNrZXIoZnJhbWUpCiAgICAgLCBtX3N0YXRlKEZyYW1lU3Rh
dGVDb21taXR0ZWRQYWdlKQogICAgICwgbV9sb2FkVHlwZShGcmFtZUxvYWRUeXBlU3RhbmRhcmQp
CiAgICAgLCBtX2RlbGVnYXRlSXNIYW5kbGluZ1Byb3Zpc2lvbmFsTG9hZEVycm9yKGZhbHNlKQpA
QCAtOTk5LDQxICsxMDAwLDYgQEAgU3RyaW5nIEZyYW1lTG9hZGVyOjpvdXRnb2luZ09yaWdpbigp
IGNvbnN0CiAgICAgcmV0dXJuIG1fZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkt
PnRvU3RyaW5nKCk7CiB9CiAKLWJvb2wgRnJhbWVMb2FkZXI6OmlzTWl4ZWRDb250ZW50KFNlY3Vy
aXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJMJiB1cmwpCi17Ci0gICAgaWYgKGNvbnRleHQt
PnByb3RvY29sKCkgIT0gImh0dHBzIikKLSAgICAgICAgcmV0dXJuIGZhbHNlOyAgLy8gV2Ugb25s
eSBjYXJlIGFib3V0IEhUVFBTIHNlY3VyaXR5IG9yaWdpbnMuCi0KLSAgICBpZiAoIXVybC5pc1Zh
bGlkKCkgfHwgU2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNTZWN1cmUodXJs
LnByb3RvY29sKCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7ICAvLyBMb2FkaW5nIHRoZXNlIHBy
b3RvY29scyBpcyBzZWN1cmUuCi0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBGcmFtZUxv
YWRlcjo6Y2hlY2tJZkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlPcmlnaW4qIGNvbnRl
eHQsIGNvbnN0IEtVUkwmIHVybCkKLXsKLSAgICBpZiAoIWlzTWl4ZWRDb250ZW50KGNvbnRleHQs
IHVybCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFN0cmluZyBtZXNzYWdlID0gU3RyaW5nOjpm
b3JtYXQoIlRoZSBwYWdlIGF0ICVzIGRpc3BsYXllZCBpbnNlY3VyZSBjb250ZW50IGZyb20gJXMu
XG4iLAotICAgICAgICBtX1VSTC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCB1cmwuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7Ci0gICAgbV9mcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRk
TWVzc2FnZShIVE1MTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIFdhcm5pbmdNZXNzYWdl
TGV2ZWwsIG1lc3NhZ2UsIDEsIFN0cmluZygpKTsKLQotICAgIG1fY2xpZW50LT5kaWREaXNwbGF5
SW5zZWN1cmVDb250ZW50KCk7Ci19Ci0KLXZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrSWZSdW5JbnNl
Y3VyZUNvbnRlbnQoU2VjdXJpdHlPcmlnaW4qIGNvbnRleHQsIGNvbnN0IEtVUkwmIHVybCkKLXsK
LSAgICBpZiAoIWlzTWl4ZWRDb250ZW50KGNvbnRleHQsIHVybCkpCi0gICAgICAgIHJldHVybjsK
LQotICAgIFN0cmluZyBtZXNzYWdlID0gU3RyaW5nOjpmb3JtYXQoIlRoZSBwYWdlIGF0ICVzIHJh
biBpbnNlY3VyZSBjb250ZW50IGZyb20gJXMuXG4iLAotICAgICAgICBtX1VSTC5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpLCB1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgbV9mcmFtZS0+
ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShIVE1MTWVzc2FnZVNvdXJjZSwgTG9n
TWVzc2FnZVR5cGUsIFdhcm5pbmdNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDEsIFN0cmluZygpKTsK
LQotICAgIG1fY2xpZW50LT5kaWRSdW5JbnNlY3VyZUNvbnRlbnQoY29udGV4dCk7Ci19Ci0KIEZy
YW1lKiBGcmFtZUxvYWRlcjo6b3BlbmVyKCkKIHsKICAgICByZXR1cm4gbV9vcGVuZXI7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuaAppbmRleCA0MGYzNWJkY2I0YmI1NTA1NjQ4NGVkNDlmMDhjZTgzNTRjZTY0NWFi
Li4wOTY4M2M2OTg4YTE5ZWFkOWUwMzllYmUyMWIxZTg3ZWExODFmN2Y5IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlclN0YXRlTWFjaGlu
ZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJIaXN0b3J5Q29u
dHJvbGxlci5oIgorI2luY2x1ZGUgIk1peGVkQ29udGVudENoZWNrZXIuaCIKICNpbmNsdWRlICJQ
b2xpY3lDYWxsYmFjay5oIgogI2luY2x1ZGUgIlBvbGljeUNoZWNrZXIuaCIKICNpbmNsdWRlICJS
ZWRpcmVjdFNjaGVkdWxlci5oIgpAQCAtMTAwLDYgKzEwMSw3IEBAIHB1YmxpYzoKICAgICBSZXNv
dXJjZUxvYWROb3RpZmllciogbm90aWZpZXIoKSBjb25zdCB7IHJldHVybiAmbV9ub3RpZmVyOyB9
CiAgICAgRG9jdW1lbnRXcml0ZXIqIHdyaXRlcigpIGNvbnN0IHsgcmV0dXJuICZtX3dyaXRlcjsg
fQogICAgIFN1YmZyYW1lTG9hZGVyKiBzdWJmcmFtZUxvYWRlcigpIGNvbnN0IHsgcmV0dXJuICZt
X3N1YmZyYW1lTG9hZGVyOyB9CisgICAgTWl4ZWRDb250ZW50Q2hlY2tlciogbWl4ZWRDb250ZW50
Q2hlY2tlcigpIGNvbnN0IHsgcmV0dXJuICZtX21peGVkQ29udGVudENoZWNrZXI7IH0KIAogICAg
IC8vIEZJWE1FOiBUaGlzIGlzIG5vdCBjb29sLCBwZW9wbGUuIFRoZXJlIGFyZSB0b28gbWFueSBk
aWZmZXJlbnQgZnVuY3Rpb25zIHRoYXQgYWxsIHN0YXJ0IGxvYWRzLgogICAgIC8vIFdlIHNob3Vs
ZCBhaW0gdG8gY29uc29saWRhdGUgdGhlc2UgaW50byBhIHNtYWxsZXIgc2V0IG9mIGZ1bmN0aW9u
cywgYW5kIHRyeSB0byByZXVzZSBtb3JlIG9mCkBAIC0yNDgsMTEgKzI1MCw2IEBAIHB1YmxpYzoK
ICAgICAvLyB0aGUgc2FuZGJveCBhdHRyaWJ1dGUgb2YgYW55IHBhcmVudCBmcmFtZXMuCiAgICAg
dm9pZCBzZXRGb3JjZWRTYW5kYm94RmxhZ3MoU2FuZGJveEZsYWdzIGZsYWdzKSB7IG1fZm9yY2Vk
U2FuZGJveEZsYWdzID0gZmxhZ3M7IG1fc2FuZGJveEZsYWdzIHw9IGZsYWdzOyB9CiAKLSAgICAv
LyBNaXhlZCBjb250ZW50IHJlbGF0ZWQgZnVuY3Rpb25zLgotICAgIHN0YXRpYyBib29sIGlzTWl4
ZWRDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJMJik7Ci0gICAgdm9p
ZCBjaGVja0lmRGlzcGxheUluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiogY29udGV4dCwg
Y29uc3QgS1VSTCYpOwotICAgIHZvaWQgY2hlY2tJZlJ1bkluc2VjdXJlQ29udGVudChTZWN1cml0
eU9yaWdpbiogY29udGV4dCwgY29uc3QgS1VSTCYpOwotCiAgICAgRnJhbWUqIG9wZW5lcigpOwog
ICAgIHZvaWQgc2V0T3BlbmVyKEZyYW1lKik7CiAKQEAgLTQzNCwxMiArNDMxLDE2IEBAIHByaXZh
dGU6CiAgICAgRnJhbWUqIG1fZnJhbWU7CiAgICAgRnJhbWVMb2FkZXJDbGllbnQqIG1fY2xpZW50
OwogCisgICAgLy8gRklYTUU6IFRoZXNlIHNob3VsZCBiZSBPd25QdHI8VD4gdG8gcmVkdWNlIGJ1
aWxkIHRpbWVzIGFuZCBzaW1wbGlmeQorICAgIC8vIGhlYWRlciBkZXBlbmRlbmNpZXMgdW5sZXNz
IHBlcmZvcm1hbmNlIHRlc3RpbmcgcHJvdmVzIG90aGVyd2lzZS4KKyAgICAvLyBTb21lIG9mIHRo
ZXNlIGNvdWxkIGJlIGxhemlseSBjcmVhdGVkIGZvciBtZW1vcnkgc2F2aW5ncyBvbiBkZXZpY2Vz
LgogICAgIG11dGFibGUgUG9saWN5Q2hlY2tlciBtX3BvbGljeUNoZWNrZXI7CiAgICAgbXV0YWJs
ZSBIaXN0b3J5Q29udHJvbGxlciBtX2hpc3Rvcnk7CiAgICAgbXV0YWJsZSBSZXNvdXJjZUxvYWRO
b3RpZmllciBtX25vdGlmZXI7CiAgICAgbXV0YWJsZSBEb2N1bWVudFdyaXRlciBtX3dyaXRlcjsK
ICAgICBtdXRhYmxlIFN1YmZyYW1lTG9hZGVyIG1fc3ViZnJhbWVMb2FkZXI7CiAgICAgbXV0YWJs
ZSBGcmFtZUxvYWRlclN0YXRlTWFjaGluZSBtX3N0YXRlTWFjaGluZTsKKyAgICBtdXRhYmxlIE1p
eGVkQ29udGVudENoZWNrZXIgbV9taXhlZENvbnRlbnRDaGVja2VyOwogCiAgICAgRnJhbWVTdGF0
ZSBtX3N0YXRlOwogICAgIEZyYW1lTG9hZFR5cGUgbV9sb2FkVHlwZTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9NYWlu
UmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDZhODIxY2FlZTdmNGQyZTA1OTZkNmU1NzY3OTMxMDJl
YWFlZGQ0OWEuLmViMTQ4OWYxNDY0OGY0MWNlNDRjZDZhNGRhZjdhMGRlNzk0NTRmOTYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvV2ViQ29y
ZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcApAQCAtMTkwLDcgKzE5MCw3IEBAIHZvaWQg
TWFpblJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiBuZXdS
ZXF1ZXN0LCBjb25zdCBSZXNvCiAKICAgICBGcmFtZSogdG9wID0gbV9mcmFtZS0+dHJlZSgpLT50
b3AoKTsKICAgICBpZiAodG9wICE9IG1fZnJhbWUpCi0gICAgICAgIGZyYW1lTG9hZGVyKCktPmNo
ZWNrSWZEaXNwbGF5SW5zZWN1cmVDb250ZW50KHRvcC0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmln
aW4oKSwgbmV3UmVxdWVzdC51cmwoKSk7CisgICAgICAgIGZyYW1lTG9hZGVyKCktPm1peGVkQ29u
dGVudENoZWNrZXIoKS0+Y2hlY2tJZkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQodG9wLT5kb2N1bWVu
dCgpLT5zZWN1cml0eU9yaWdpbigpLCBuZXdSZXF1ZXN0LnVybCgpKTsKIAogICAgIC8vIEZJWE1F
OiBJZGVhbGx5IHdlJ2Qgc3RvcCB0aGUgSS9PIHVudGlsIHdlIGhlYXIgYmFjayBmcm9tIHRoZSBu
YXZpZ2F0aW9uIHBvbGljeSBkZWxlZ2F0ZQogICAgIC8vIGxpc3RlbmVyLiBCdXQgdGhlcmUncyBu
byB3YXkgdG8gZG8gdGhhdCBpbiBwcmFjdGljZS4gU28gaW5zdGVhZCB3ZSBjYW5jZWwgbGF0ZXIg
aWYgdGhlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNw
cCBiL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUw
YmE5Y2Y3ZDYwNTYyNDRmMzdlNmRkMDk1ZjRkYWZkZGFjNTY1MTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcApAQCAtMCwwICsxLDk0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxl
IENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
KyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1peGVkQ29udGVudENoZWNrZXIu
aCIKKworI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIK
KyNpbmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTWl4ZWRDb250ZW50Q2hlY2tlcjo6TWl4ZWRDb250
ZW50Q2hlY2tlcihGcmFtZSogZnJhbWUpCisgICAgOiBtX2ZyYW1lKGZyYW1lKQoreworfQorCitG
cmFtZUxvYWRlckNsaWVudCogTWl4ZWRDb250ZW50Q2hlY2tlcjo6Y2xpZW50KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpOworfQorCitib29sIE1peGVk
Q29udGVudENoZWNrZXI6OmlzTWl4ZWRDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9y
aWdpbiwgY29uc3QgS1VSTCYgdXJsKQoreworICAgIGlmIChzZWN1cml0eU9yaWdpbi0+cHJvdG9j
b2woKSAhPSAiaHR0cHMiKQorICAgICAgICByZXR1cm4gZmFsc2U7IC8vIFdlIG9ubHkgY2FyZSBh
Ym91dCBIVFRQUyBzZWN1cml0eSBvcmlnaW5zLgorICAgIAorICAgIGlmICghdXJsLmlzVmFsaWQo
KSB8fCBTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc1NlY3VyZSh1cmwucHJv
dG9jb2woKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsgLy8gTG9hZGluZyB0aGVzZSBwcm90b2Nv
bHMgaXMgc2VjdXJlLgorICAgIAorICAgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgaW5saW5l
IENTdHJpbmcgYXNVVEY4KGNvbnN0IEtVUkwmIHVybCkKK3sKKyAgICByZXR1cm4gdXJsLnN0cmlu
ZygpLnV0ZjgoKTsKK30KKwordm9pZCBNaXhlZENvbnRlbnRDaGVja2VyOjpjaGVja0lmRGlzcGxh
eUluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIGNvbnN0IEtV
UkwmIHVybCkgY29uc3QKK3sKKyAgICBpZiAoIWlzTWl4ZWRDb250ZW50KHNlY3VyaXR5T3JpZ2lu
LCB1cmwpKQorICAgICAgICByZXR1cm47CisKKyAgICBsb2dXYXJuaW5nKFN0cmluZzo6Zm9ybWF0
KCJUaGUgcGFnZSBhdCAlcyBkaXNwbGF5ZWQgaW5zZWN1cmUgY29udGVudCBmcm9tICVzLlxuIiwK
KyAgICAgICAgYXNVVEY4KG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpKS5kYXRhKCksIGFzVVRG
OCh1cmwpLmRhdGEoKSkpOworCisgICAgY2xpZW50KCktPmRpZERpc3BsYXlJbnNlY3VyZUNvbnRl
bnQoKTsKK30KKwordm9pZCBNaXhlZENvbnRlbnRDaGVja2VyOjpjaGVja0lmUnVuSW5zZWN1cmVD
b250ZW50KFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiwgY29uc3QgS1VSTCYgdXJsKSBj
b25zdAoreworICAgIGlmICghaXNNaXhlZENvbnRlbnQoc2VjdXJpdHlPcmlnaW4sIHVybCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGxvZ1dhcm5pbmcoU3RyaW5nOjpmb3JtYXQoIlRoZSBwYWdl
IGF0ICVzIHJhbiBpbnNlY3VyZSBjb250ZW50IGZyb20gJXMuXG4iLAorICAgICAgICBhc1VURjgo
bV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkpLmRhdGEoKSwgYXNVVEY4KHVybCkuZGF0YSgpKSk7
CisKKyAgICBjbGllbnQoKS0+ZGlkUnVuSW5zZWN1cmVDb250ZW50KHNlY3VyaXR5T3JpZ2luKTsK
K30KKwordm9pZCBNaXhlZENvbnRlbnRDaGVja2VyOjpsb2dXYXJuaW5nKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkgY29uc3QKK3sKKyAgICBDb25zb2xlKiBjb25zb2xlID0gbV9mcmFtZS0+ZG9tV2lu
ZG93KCktPmNvbnNvbGUoKTsKKyAgICAvLyBGSVhNRTogV2h5IGRvZXMgdGhpcyBtZXNzYWdlIG5v
dCBoYXZlIGEgc291cmNlIFVSTCBvciBhIGxpbmUgbnVtYmVyPworICAgIGNvbnNvbGUtPmFkZE1l
c3NhZ2UoSFRNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxl
dmVsLCBtZXNzYWdlLCAxLCBTdHJpbmcoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuaCBiL1dlYkNv
cmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjkyODNiMzMwMGE4
ZjVjNDE3NmUxNmEzZWU5NmM4ZTkyZmYyMjFiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9s
b2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1peGVk
Q29udGVudENoZWNrZXJfaAorI2RlZmluZSBNaXhlZENvbnRlbnRDaGVja2VyX2gKKworI2luY2x1
ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWU7CitjbGFzcyBGcmFtZUxvYWRlckNsaWVu
dDsKK2NsYXNzIEtVUkw7CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKKworY2xhc3MgTWl4ZWRDb250
ZW50Q2hlY2tlciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgTWl4ZWRDb250
ZW50Q2hlY2tlcihGcmFtZSopOworCisgICAgdm9pZCBjaGVja0lmRGlzcGxheUluc2VjdXJlQ29u
dGVudChTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwmKSBjb25zdDsKKyAgICB2b2lkIGNoZWNr
SWZSdW5JbnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBLVVJMJikgY29uc3Q7
CisKK3ByaXZhdGU6CisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHByb2JhYmx5IGhhdmUgYSBz
ZXBhcmF0ZSBjbGllbnQgZnJvbSBGcmFtZUxvYWRlci4KKyAgICBGcmFtZUxvYWRlckNsaWVudCog
Y2xpZW50KCkgY29uc3Q7CisKKyAgICBzdGF0aWMgYm9vbCBpc01peGVkQ29udGVudChTZWN1cml0
eU9yaWdpbiosIGNvbnN0IEtVUkwmKTsKKyAgICB2b2lkIGxvZ1dhcm5pbmcoY29uc3QgU3RyaW5n
JikgY29uc3Q7CisKKyAgICBGcmFtZSogbV9mcmFtZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIE1peGVkQ29udGVudENoZWNrZXJfaAorCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9TdWJmcmFt
ZUxvYWRlci5jcHAKaW5kZXggZTI0N2U1YmNjNDFhM2M1MzA2NGE2NmJkZjk0ZjZmYjU4YmFkNmIw
Zi4uMjA5NDY1YTAxYWJiMjZjZDRiNmIyNmJhMTgxNDVkY2NiMDhiOTI0MCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL1N1
YmZyYW1lTG9hZGVyLmNwcApAQCAtMzUxLDcgKzM1MSw3IEBAIGJvb2wgU3ViZnJhbWVMb2FkZXI6
OmxvYWRQbHVnaW4oSFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z2luRWxlbWVudCwgY29uc3Qg
S1VSCiAgICAgfQogCiAgICAgRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyID0gbV9mcmFtZS0+bG9h
ZGVyKCk7Ci0gICAgZnJhbWVMb2FkZXItPmNoZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQoZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgdXJsKTsKKyAgICBmcmFtZUxvYWRlci0+bWl4ZWRDb250
ZW50Q2hlY2tlcigpLT5jaGVja0lmUnVuSW5zZWN1cmVDb250ZW50KGRvY3VtZW50KCktPnNlY3Vy
aXR5T3JpZ2luKCksIHVybCk7CiAKICAgICBJbnRTaXplIGNvbnRlbnRTaXplKHJlbmRlcmVyLT5j
b250ZW50V2lkdGgoKSwgcmVuZGVyZXItPmNvbnRlbnRIZWlnaHQoKSk7CiAgICAgYm9vbCBsb2Fk
TWFudWFsbHkgPSBkb2N1bWVudCgpLT5pc1BsdWdpbkRvY3VtZW50KCkgJiYgIW1fY29udGFpbnNQ
bHVnaW5zOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67424</attachid>
            <date>2010-09-13 10:17:04 -0700</date>
            <delta_ts>2010-09-13 10:59:31 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-45638-20100913101703.patch</filename>
            <type>text/plain</type>
            <size>25243</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBjMGM1ZmJhMTNlMjc5NDhlYWI3OGM1NzdkYTA1MTI3ODNmOTQzNWRkLi41NTI5MzAxZmM3Nzcz
ZWMyY2JkYTY3YjEzNDE4ZGFkMzIxNWQzMDEwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0zMjksNiArMzI5LDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJbG9hZGVyL0hpc3RvcnlDb250cm9sbGVy
LmNwcCBcCiAJbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBcCiAJbG9hZGVyL01haW5SZXNvdXJjZUxv
YWRlci5jcHAgXAorCWxvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcCBcCiAJbG9hZGVyL05h
dmlnYXRpb25BY3Rpb24uY3BwIFwKIAlsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIu
Y3BwIFwKIAlsb2FkZXIvUGluZ0xvYWRlci5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMmQ4NzBlMmE5NjBhOTlh
MWY1ZGY4ZTRiOTI5M2IzZDgxMDdhYzRmYS4uNWJlMmYzMWZjYjZlNTExNzE1ZDkzMmMyZDJjMTY4
MzliMzc4N2U0NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMTAxLDYgKzExMDEsNyBAQCBTRVQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAogICAgIGxvYWRlci9JbWFnZUxv
YWRlci5jcHAKICAgICBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAorICAgIGxvYWRlci9N
aXhlZENvbnRlbnRDaGVja2VyLmNwcAogICAgIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcAog
ICAgIGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAKICAgICBsb2FkZXIvUGlu
Z0xvYWRlci5jcHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggOWZlYWZlNGRjN2NkOGVkMmFhNGQxMzY4MzRlNTE2NmQyYjU0ZGUyZi4uNTk1
ZjFmOWQzNDQ1Y2JiMjNmZGMwYmI5ZTIyOGZmZDUxMjVhOWRmYSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAx
MC0wOS0xMiAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBNb3ZlIG1peGVkIGNvbnRlbnQgbG9naWMgb3V0
IG9mIEZyYW1lTG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00NTYzOAorCisgICAgICAgIEp1c3QgbW92aW5nIGNvZGUsIG5vIGZ1bmN0aW9uYWwg
Y2hhbmdlLgorICAgICAgICBJIGFsc28gc2ltcGxpZmllZCB0aGUgY29kZSBldmVyIHNvIHNsaWdo
dGx5IHdoaWxlIG1vdmluZworICAgICAgICAodXNlZCBmdW5jdGlvbnMgdG8gcmVkdWNlIGNvZGUg
ZHVwbGljYXRpb24pLgorCisgICAgICAgICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGxvYWRlci9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FuUmVxdWVzdCk6CisgICAgICAgICogbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpGcmFt
ZUxvYWRlcik6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6bWl4ZWRDb250ZW50Q2hlY2tlcik6CisgICAgICAgICogbG9hZGVy
L01haW5SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VM
b2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL1N1YmZyYW1lTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpsb2FkUGx1Z2luKToKKwog
MjAxMC0wOS0xMCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggM2RhZGFhNzNhNGZkOTJlZjVlMGE0
ZjY4MmJlMmI3ZTUxYTE1NWU1Ny4uY2M0OWE1MDMwZmQxY2IyNjQ4YjFlYzg4Y2JkY2ZjMzA3OGI0
NTc1MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCkBAIC0xNzIxLDYgKzE3MjEsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVdlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmggXAogCVdlYkNvcmUvbG9hZGVyL0lt
YWdlTG9hZGVyLmNwcCBcCiAJV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuaCBcCisJV2ViQ29y
ZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAgXAorCVdlYkNvcmUvbG9hZGVyL01peGVk
Q29udGVudENoZWNrZXIuaCBcCiAJV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNw
cCBcCiAJV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmggXAogCVdlYkNvcmUvbG9h
ZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5n
eXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZmVkN2NlMzk3ODM4Njg4NTg5ZGU2OGQz
YzZjOGI0OTZiZmY5OGY4ZC4uM2Y2ZmNmOTY0ODg1M2ZmZjU3YWMzYmZmZTc1NTY1YjU5NTkwYzRl
MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKQEAgLTE5NDEsNiArMTk0MSw4IEBACiAgICAgICAgICAgICAnbG9hZGVyL0ltYWdlTG9h
ZGVyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwJywKICAg
ICAgICAgICAgICdsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmgnLAorICAgICAgICAgICAgJ2xv
YWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcCcsCisgICAgICAgICAgICAnbG9hZGVyL01peGVk
Q29udGVudENoZWNrZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL05hdmlnYXRpb25BY3Rpb24u
Y3BwJywKICAgICAgICAgICAgICdsb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oJywKICAgICAgICAg
ICAgICdsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwJywKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDZjNjdiZGUx
N2I2OGRlMjc3Yzg0ZjBlYTdmYzUyYjE5M2FkOTY1NWEuLmNlZjNjMTkwNzk4MDcwODAzNzA3Mzc5
NWE2ZWU5YWI4MmNjN2VhYjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTAwMCw2ICsxMDAwLDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAgXAogICAgIGxvYWRlci9JbWFnZUxvYWRlci5j
cHAgXAogICAgIGxvYWRlci9sb2FkZXIuY3BwIFwKKyAgICBsb2FkZXIvTWl4ZWRDb250ZW50Q2hl
Y2tlci5jcHAgXAogICAgIGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwIFwKICAgICBsb2Fk
ZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAgXAogICAgIGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlci5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZTI1
NjgzNTMzNmIyZGVlZjk1ZGUxY2I3NWM1MGYwOTJmOGQ2ZWI0MC4uZWRjM2ZlYWUxZDRhNDMxNmQy
MjMyNzAxODM5NGM3NzI4ZWEyYjA4ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCkBAIC0yMzYyNSw2ICsyMzYyNSwxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZp
bGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJcTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAi
DQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxs
b2FkZXJcTWl4ZWRDb250ZW50Q2hlY2tlci5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxG
aWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXE1haW5SZXNvdXJjZUxvYWRlci5jcHAi
DQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAxNzFhZmRhYmM4ODFkZmJjZmIxMGU1NTRlOTU1MzM2YTU3OTU2NDAyLi41
ZDlhYjU2ZWUyZTE5NzM2NTAyY2Y5MGM0MTA3OWJkMzE0ZDljNTAzIDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzE4Myw2ICszMTgzLDggQEAKIAkJQTgy
NEI0NjUwRTJFRjJFQTAwODFBN0I3IC8qIFRleHRSdW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MjRCNDY0MEUyRUYyRUEwMDgxQTdCNyAvKiBUZXh0
UnVuLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QTgyNkU4QUUwQTFBOEYyMzAwQ0QxQkI2IC8qIEpTT3B0aW9uQ29uc3RydWN0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MjZFOEFDMEExQThGMjMw
MENEMUJCNiAvKiBKU09wdGlvbkNvbnN0cnVjdG9yLmggKi87IH07CiAJCUE4MjZFQzQ4MEExQjBD
QkUwMENEMUJCNiAvKiBKU09wdGlvbkNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MjZFOEFEMEExQThGMjMwMENEMUJCNiAvKiBK
U09wdGlvbkNvbnN0cnVjdG9yLmNwcCAqLzsgfTsKKwkJQTgyRjcxOEExMjNERjRBMTAwRTcyQjg4
IC8qIE1peGVkQ29udGVudENoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4MkY3MTg4MTIzREY0QTEwMEU3MkI4OCAvKiBNaXhlZENvbnRlbnRD
aGVja2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJQTgyRjcxOEIxMjNERjRBMTAwRTcyQjg4IC8qIE1peGVkQ29udGVudENoZWNrZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgyRjcxODkxMjNE
RjRBMTAwRTcyQjg4IC8qIE1peGVkQ29udGVudENoZWNrZXIuY3BwICovOyB9OwogCQlBODMzQzdD
QTBBMkNGMDZCMDBENTc2NjQgLyogU1ZHTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2NTgxRTgwOUQxNTA4RDAwMEU2MUQ3IC8qIFNWR05h
bWVzLmNwcCAqLzsgfTsKIAkJQTgzM0M3Q0MwQTJDRjA3NDAwRDU3NjY0IC8qIFhMaW5rTmFtZXMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2NTgx
RUEwOUQxNTA4RDAwMEU2MUQ3IC8qIFhMaW5rTmFtZXMuY3BwICovOyB9OwogCQlBODMzQzgwQzBB
MkNGMjU2MDBENTc2NjQgLyogWE1MTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTgzM0M4MEEwQTJDRjI1NjAwRDU3NjY0IC8qIFhNTE5hbWVz
LmNwcCAqLzsgfTsKQEAgLTg5NTAsNiArODk1Miw4IEBACiAJCUE4MjRCNDY0MEUyRUYyRUEwMDgx
QTdCNyAvKiBUZXh0UnVuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRS
dW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgyNkU4QUMwQTFBOEYyMzAwQ0Qx
QkI2IC8qIEpTT3B0aW9uQ29uc3RydWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTT3B0aW9uQ29uc3RydWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTgyNkU4QUQwQTFBOEYyMzAwQ0QxQkI2IC8qIEpTT3B0aW9uQ29uc3RydWN0b3IuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTT3B0aW9uQ29uc3RydWN0b3Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODJGNzE4ODEyM0RGNEExMDBFNzJC
ODggLyogTWl4ZWRDb250ZW50Q2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNaXhlZENvbnRlbnRDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUE4MkY3MTg5MTIzREY0QTEwMEU3MkI4OCAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1peGVkQ29udGVudENoZWNrZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODMzQzdGNjBBMkNGMUQ4MDBENTc2NjQg
LyogeG1sYXR0cnMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IHhtbGF0dHJzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODMzQzgwQTBBMkNGMjU2MDBENTc2NjQgLyogWE1M
TmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTE5hbWVz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgzM0M4MEIwQTJDRjI1NjAwRDU3
NjY0IC8qIFhNTE5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxO
YW1lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY1NzUsMTEgKzE2NTc5LDgg
QEAKIAkJQkNCMTZCRkIwOTc5QzM4NzAwNDY3NzQxIC8qIGxvYWRlciAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJNjI4RDIxNEQxMjEzMUVGNDAwNTVEQ0ZD
IC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCQkxQThGNkJCMDBEQjU1Q0RDMDAx
REI3OTQgLyogYXBwY2FjaGUgKi8sCiAJCQkJNTEyREQ4RTgwRDkxRTY5MTAwMEY4OUVFIC8qIGFy
Y2hpdmUgKi8sCi0JCQkJNTEyNkU2QjYwQTJFM0FFRjAwNUMyOUZBIC8qIGljb24gKi8sCi0JCQkJ
OTNBMUVBQTIwQTU2MzREODAwNjk2MEEwIC8qIG1hYyAqLywKIAkJCQlCQ0IxNkJGRTA5NzlDM0JE
MDA0Njc3NDEgLyogQ2FjaGUuY3BwICovLAogCQkJCUJDQjE2QkZGMDk3OUMzQkQwMDQ2Nzc0MSAv
KiBDYWNoZS5oICovLAogCQkJCUJDQjE2QzAwMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRDU1NT
dHlsZVNoZWV0LmNwcCAqLywKQEAgLTE2NTk1LDcgKzE2NTk2LDggQEAKIAkJCQlCQ0IxNkMwOTA5
NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuaCAqLywKIAkJCQlF
NDdCNEJFNzBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVzb3VyY2VIYW5kbGUuY3BwICovLAog
CQkJCUU0N0I0QkU2MEU3MTI0MTYwMDAzODg1NCAvKiBDYWNoZWRSZXNvdXJjZUhhbmRsZS5oICov
LAotCQkJCUU0NzIwNTNBMEU1QTA1M0EwMDA2QkI0RCAvKiBDYWNoZWRSZXNvdXJjZUhhbmRsZS5o
ICovLAorCQkJCUJDQjE2QzEwMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRl
ci5jcHAgKi8sCisJCQkJQkNCMTZDMTEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNl
TG9hZGVyLmggKi8sCiAJCQkJQkNCMTZDMEEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNjcmlw
dC5jcHAgKi8sCiAJCQkJQkNCMTZDMEIwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNjcmlwdC5o
ICovLAogCQkJCUJDQjE2QzBFMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRYU0xTdHlsZVNoZWV0
LmNwcCAqLywKQEAgLTE2NjA1LDggKzE2NjA3LDYgQEAKIAkJCQlFMUM0MTYxMTBGNjU2MkZEMDA5
MkQyRkIgLyogQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmggKi8sCiAJCQkJRTFDNDE1REQwRjY1
NUQ3QzAwOTJEMkZCIC8qIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwICovLAog
CQkJCUUxQzQxNUQ5MEY2NTVENkYwMDkyRDJGQiAvKiBDcm9zc09yaWdpblByZWZsaWdodFJlc3Vs
dENhY2hlLmggKi8sCi0JCQkJQkNCMTZDMTAwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291
cmNlTG9hZGVyLmNwcCAqLywKLQkJCQlCQ0IxNkMxMTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaCAqLywKIAkJCQk5M0UyMjdEQjBBRjU4OUFEMDBENDgzMjQgLyogRG9j
dW1lbnRMb2FkZXIuY3BwICovLAogCQkJCTY1NkQzNzFFMEFEQkE1REUwMEE0NTU0RCAvKiBEb2N1
bWVudExvYWRlci5oICovLAogCQkJCThBMTJFMzVDMTFGQTMzMjgwMDI1ODM2QSAvKiBEb2N1bWVu
dExvYWRUaW1pbmcuaCAqLywKQEAgLTE2NjI1LDE2ICsxNjYyNSwyMSBAQAogCQkJCUQwMDBFQkEw
MTFCREFGRDQwMEM0NzcyNiAvKiBGcmFtZUxvYWRlclN0YXRlTWFjaGluZS5jcHAgKi8sCiAJCQkJ
RDAwMEVCQTExMUJEQUZENDAwQzQ3NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmggKi8s
CiAJCQkJOTNCNzdBMzcwQURENzkyNTAwRUE0QjgxIC8qIEZyYW1lTG9hZGVyVHlwZXMuaCAqLywK
KwkJCQk2MjhEMjE0RDEyMTMxRUY0MDA1NURDRkMgLyogRnJhbWVOZXR3b3JraW5nQ29udGV4dC5o
ICovLAogCQkJCTUxQzgxQjg3MEM0NDIyRjcwMDE5RUNFMyAvKiBGVFBEaXJlY3RvcnlQYXJzZXIu
Y3BwICovLAogCQkJCTUxQzgxQjg4MEM0NDIyRjcwMDE5RUNFMyAvKiBGVFBEaXJlY3RvcnlQYXJz
ZXIuaCAqLywKIAkJCQk5N0RDRTFGRjEwODA3Qzc1MDA1N0QzOTQgLyogSGlzdG9yeUNvbnRyb2xs
ZXIuY3BwICovLAogCQkJCTk3RENFMjAwMTA4MDdDNzUwMDU3RDM5NCAvKiBIaXN0b3J5Q29udHJv
bGxlci5oICovLAorCQkJCTUxMjZFNkI2MEEyRTNBRUYwMDVDMjlGQSAvKiBpY29uICovLAogCQkJ
CTA4OTU4MjUzMEU4NTdBN0UwMEY4MkM4MyAvKiBJbWFnZUxvYWRlci5jcHAgKi8sCiAJCQkJMDg5
NTgyNTQwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmggKi8sCiAJCQkJQkNCMTZDMTMw
OTc5QzNCRDAwNDY3NzQxIC8qIGxvYWRlci5jcHAgKi8sCiAJCQkJQkNCMTZDMTQwOTc5QzNCRDAw
NDY3NzQxIC8qIGxvYWRlci5oICovLAorCQkJCTkzQTFFQUEyMEE1NjM0RDgwMDY5NjBBMCAvKiBt
YWMgKi8sCiAJCQkJOTNFMjI3REMwQUY1ODlBRDAwRDQ4MzI0IC8qIE1haW5SZXNvdXJjZUxvYWRl
ci5jcHAgKi8sCiAJCQkJNjU2RDM3MjkwQURCQTVERTAwQTQ1NTREIC8qIE1haW5SZXNvdXJjZUxv
YWRlci5oICovLAorCQkJCUE4MkY3MTg5MTIzREY0QTEwMEU3MkI4OCAvKiBNaXhlZENvbnRlbnRD
aGVja2VyLmNwcCAqLywKKwkJCQlBODJGNzE4ODEyM0RGNEExMDBFNzJCODggLyogTWl4ZWRDb250
ZW50Q2hlY2tlci5oICovLAogCQkJCTkzQ0NGMDVGMEFGNkNBNzYwMDAxOEU4OSAvKiBOYXZpZ2F0
aW9uQWN0aW9uLmNwcCAqLywKIAkJCQk5M0NDRjAyNjBBRjZDNTI5MDAwMThFODkgLyogTmF2aWdh
dGlvbkFjdGlvbi5oICovLAogCQkJCTkzRTIyN0REMEFGNTg5QUQwMEQ0ODMyNCAvKiBOZXRzY2Fw
ZVBsdWdJblN0cmVhbUxvYWRlci5jcHAgKi8sCkBAIC0xNjY3Myw2ICsxNjY3OCw3IEBACiAJCQkJ
MEI5MDU2MTgwRjI1NzhCRTAwOTVGRjZBIC8qIFRocmVhZGFibGVMb2FkZXJDbGllbnQuaCAqLywK
IAkJCQkwQjkwNTZGNjBGMjY4NUYzMDA5NUZGNkEgLyogV29ya2VyVGhyZWFkYWJsZUxvYWRlci5j
cHAgKi8sCiAJCQkJMEI5MDU2RjcwRjI2ODVGMzAwOTVGRjZBIC8qIFdvcmtlclRocmVhZGFibGVM
b2FkZXIuaCAqLywKKwkJCQlFNDcyMDUzQTBFNUEwNTNBMDAwNkJCNEQgLyogQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbG9hZGVyOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTIwNTU3LDYgKzIwNTYzLDcgQEAKIAkJCQk4OTNDNDdCODEyMzhBMDk5
MDAyQjNEODYgLyogSlNGaWxlQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTg5M0M0N0JD
MTIzOEEwQTkwMDJCM0Q4NiAvKiBKU0ZpbGVXcml0ZXJDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOEEzMDlDOUYxMjM5NTBCRTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVy
LmggaW4gSGVhZGVycyAqLywKKwkJCQlBODJGNzE4QTEyM0RGNEExMDBFNzJCODggLyogTWl4ZWRD
b250ZW50Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMzAzMSw2ICsyMzAzOCw3IEBACiAJ
CQkJQTYyMkE4RkMxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJODkzQzQ3QjcxMjM4QTA5OTAwMkIzRDg2IC8qIEpTRmlsZUNhbGxi
YWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5M0M0N0JCMTIzOEEwQTkwMDJCM0Q4NiAvKiBK
U0ZpbGVXcml0ZXJDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBODJGNzE4QjEyM0RG
NEExMDBFNzJCODggLyogTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1dlYkNv
cmUvbG9hZGVyL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCBkOTI1ZWFiMzk1ZmUzYTlj
ZDk5NTAwM2JkMjg4NGZhZWQ2YjkzNGEzLi40ZDQxOGFjMDBkZWMyYWU2MWIxYjExMWFhYWFiMDNk
MmQ5MTNlYzk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9DYWNoZWRSZXNvdXJjZUxvYWRl
ci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0y
MjAsNyArMjIwLDcgQEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FuUmVxdWVzdChDYWNo
ZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBLVVJMJiB1cmwKICNlbmRpZgogICAgICAgICAv
LyBUaGVzZSByZXNvdXJjZSBjYW4gaW5qZWN0IHNjcmlwdCBpbnRvIHRoZSBjdXJyZW50IGRvY3Vt
ZW50LgogICAgICAgICBpZiAoRnJhbWUqIGYgPSBmcmFtZSgpKQotICAgICAgICAgICAgZi0+bG9h
ZGVyKCktPmNoZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQobV9kb2MtPnNlY3VyaXR5T3JpZ2luKCks
IHVybCk7CisgICAgICAgICAgICBmLT5sb2FkZXIoKS0+bWl4ZWRDb250ZW50Q2hlY2tlcigpLT5j
aGVja0lmUnVuSW5zZWN1cmVDb250ZW50KG1fZG9jLT5zZWN1cml0eU9yaWdpbigpLCB1cmwpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlOgog
ICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQ6CkBAIC0yMjgsNyArMjI4LDcg
QEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6
VHlwZSB0eXBlLCBjb25zdCBLVVJMJiB1cmwKICAgICAgICAgLy8gVGhlc2UgcmVzb3VyY2VzIGNh
biBjb3JydXB0IG9ubHkgdGhlIGZyYW1lJ3MgcGl4ZWxzLgogICAgICAgICBpZiAoRnJhbWUqIGYg
PSBmcmFtZSgpKSB7CiAgICAgICAgICAgICBGcmFtZSogdG9wID0gZi0+dHJlZSgpLT50b3AoKTsK
LSAgICAgICAgICAgIHRvcC0+bG9hZGVyKCktPmNoZWNrSWZEaXNwbGF5SW5zZWN1cmVDb250ZW50
KHRvcC0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgdXJsKTsKKyAgICAgICAgICAgIHRv
cC0+bG9hZGVyKCktPm1peGVkQ29udGVudENoZWNrZXIoKS0+Y2hlY2tJZkRpc3BsYXlJbnNlY3Vy
ZUNvbnRlbnQodG9wLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmwpOwogICAgICAg
ICB9CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAyZWM2
ZjcyMDgyYmRkODc4MzZmZjJjZDkzYzAzOTQyNjc1NWExYWI4Li45MWViN2MwZTRlMzY4NTdkYWY5
M2EyNTIzNGZhMGE4MWQ0ZGU4YmIzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0xODAsNiAr
MTgwLDcgQEAgRnJhbWVMb2FkZXI6OkZyYW1lTG9hZGVyKEZyYW1lKiBmcmFtZSwgRnJhbWVMb2Fk
ZXJDbGllbnQqIGNsaWVudCkKICAgICAsIG1fbm90aWZlcihmcmFtZSkKICAgICAsIG1fd3JpdGVy
KGZyYW1lKQogICAgICwgbV9zdWJmcmFtZUxvYWRlcihmcmFtZSkKKyAgICAsIG1fbWl4ZWRDb250
ZW50Q2hlY2tlcihmcmFtZSkKICAgICAsIG1fc3RhdGUoRnJhbWVTdGF0ZUNvbW1pdHRlZFBhZ2Up
CiAgICAgLCBtX2xvYWRUeXBlKEZyYW1lTG9hZFR5cGVTdGFuZGFyZCkKICAgICAsIG1fZGVsZWdh
dGVJc0hhbmRsaW5nUHJvdmlzaW9uYWxMb2FkRXJyb3IoZmFsc2UpCkBAIC05OTksNDEgKzEwMDAs
NiBAQCBTdHJpbmcgRnJhbWVMb2FkZXI6Om91dGdvaW5nT3JpZ2luKCkgY29uc3QKICAgICByZXR1
cm4gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKTsKIH0K
IAotYm9vbCBGcmFtZUxvYWRlcjo6aXNNaXhlZENvbnRlbnQoU2VjdXJpdHlPcmlnaW4qIGNvbnRl
eHQsIGNvbnN0IEtVUkwmIHVybCkKLXsKLSAgICBpZiAoY29udGV4dC0+cHJvdG9jb2woKSAhPSAi
aHR0cHMiKQotICAgICAgICByZXR1cm4gZmFsc2U7ICAvLyBXZSBvbmx5IGNhcmUgYWJvdXQgSFRU
UFMgc2VjdXJpdHkgb3JpZ2lucy4KLQotICAgIGlmICghdXJsLmlzVmFsaWQoKSB8fCBTY2hlbWVS
ZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc1NlY3VyZSh1cmwucHJvdG9jb2woKSkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsgIC8vIExvYWRpbmcgdGhlc2UgcHJvdG9jb2xzIGlzIHNlY3Vy
ZS4KLQotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIEZyYW1lTG9hZGVyOjpjaGVja0lmRGlz
cGxheUluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiogY29udGV4dCwgY29uc3QgS1VSTCYg
dXJsKQotewotICAgIGlmICghaXNNaXhlZENvbnRlbnQoY29udGV4dCwgdXJsKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgU3RyaW5nIG1lc3NhZ2UgPSBTdHJpbmc6OmZvcm1hdCgiVGhlIHBhZ2Ug
YXQgJXMgZGlzcGxheWVkIGluc2VjdXJlIGNvbnRlbnQgZnJvbSAlcy5cbiIsCi0gICAgICAgIG1f
VVJMLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
LSAgICBtX2ZyYW1lLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEhUTUxNZXNz
YWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwg
MSwgU3RyaW5nKCkpOwotCi0gICAgbV9jbGllbnQtPmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQo
KTsKLX0KLQotdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tJZlJ1bkluc2VjdXJlQ29udGVudChTZWN1
cml0eU9yaWdpbiogY29udGV4dCwgY29uc3QgS1VSTCYgdXJsKQotewotICAgIGlmICghaXNNaXhl
ZENvbnRlbnQoY29udGV4dCwgdXJsKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgU3RyaW5nIG1l
c3NhZ2UgPSBTdHJpbmc6OmZvcm1hdCgiVGhlIHBhZ2UgYXQgJXMgcmFuIGluc2VjdXJlIGNvbnRl
bnQgZnJvbSAlcy5cbiIsCi0gICAgICAgIG1fVVJMLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHVy
bC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBtX2ZyYW1lLT5kb21XaW5kb3coKS0+Y29u
c29sZSgpLT5hZGRNZXNzYWdlKEhUTUxNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgV2Fy
bmluZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwgU3RyaW5nKCkpOwotCi0gICAgbV9jbGllbnQt
PmRpZFJ1bkluc2VjdXJlQ29udGVudChjb250ZXh0KTsKLX0KLQogRnJhbWUqIEZyYW1lTG9hZGVy
OjpvcGVuZXIoKQogewogICAgIHJldHVybiBtX29wZW5lcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4
IDQwZjM1YmRjYjRiYjU1MDU2NDg0ZWQ0OWYwOGNlODM1NGNlNjQ1YWIuLjA5NjgzYzY5ODhhMTll
YWQ5ZTAzOWViZTIxYjFlODdlYTE4MWY3ZjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMzYsNiAr
MzYsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIkhpc3RvcnlDb250cm9sbGVyLmgiCisjaW5j
bHVkZSAiTWl4ZWRDb250ZW50Q2hlY2tlci5oIgogI2luY2x1ZGUgIlBvbGljeUNhbGxiYWNrLmgi
CiAjaW5jbHVkZSAiUG9saWN5Q2hlY2tlci5oIgogI2luY2x1ZGUgIlJlZGlyZWN0U2NoZWR1bGVy
LmgiCkBAIC0xMDAsNiArMTAxLDcgQEAgcHVibGljOgogICAgIFJlc291cmNlTG9hZE5vdGlmaWVy
KiBub3RpZmllcigpIGNvbnN0IHsgcmV0dXJuICZtX25vdGlmZXI7IH0KICAgICBEb2N1bWVudFdy
aXRlciogd3JpdGVyKCkgY29uc3QgeyByZXR1cm4gJm1fd3JpdGVyOyB9CiAgICAgU3ViZnJhbWVM
b2FkZXIqIHN1YmZyYW1lTG9hZGVyKCkgY29uc3QgeyByZXR1cm4gJm1fc3ViZnJhbWVMb2FkZXI7
IH0KKyAgICBNaXhlZENvbnRlbnRDaGVja2VyKiBtaXhlZENvbnRlbnRDaGVja2VyKCkgY29uc3Qg
eyByZXR1cm4gJm1fbWl4ZWRDb250ZW50Q2hlY2tlcjsgfQogCiAgICAgLy8gRklYTUU6IFRoaXMg
aXMgbm90IGNvb2wsIHBlb3BsZS4gVGhlcmUgYXJlIHRvbyBtYW55IGRpZmZlcmVudCBmdW5jdGlv
bnMgdGhhdCBhbGwgc3RhcnQgbG9hZHMuCiAgICAgLy8gV2Ugc2hvdWxkIGFpbSB0byBjb25zb2xp
ZGF0ZSB0aGVzZSBpbnRvIGEgc21hbGxlciBzZXQgb2YgZnVuY3Rpb25zLCBhbmQgdHJ5IHRvIHJl
dXNlIG1vcmUgb2YKQEAgLTI0OCwxMSArMjUwLDYgQEAgcHVibGljOgogICAgIC8vIHRoZSBzYW5k
Ym94IGF0dHJpYnV0ZSBvZiBhbnkgcGFyZW50IGZyYW1lcy4KICAgICB2b2lkIHNldEZvcmNlZFNh
bmRib3hGbGFncyhTYW5kYm94RmxhZ3MgZmxhZ3MpIHsgbV9mb3JjZWRTYW5kYm94RmxhZ3MgPSBm
bGFnczsgbV9zYW5kYm94RmxhZ3MgfD0gZmxhZ3M7IH0KIAotICAgIC8vIE1peGVkIGNvbnRlbnQg
cmVsYXRlZCBmdW5jdGlvbnMuCi0gICAgc3RhdGljIGJvb2wgaXNNaXhlZENvbnRlbnQoU2VjdXJp
dHlPcmlnaW4qIGNvbnRleHQsIGNvbnN0IEtVUkwmKTsKLSAgICB2b2lkIGNoZWNrSWZEaXNwbGF5
SW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJMJik7Ci0g
ICAgdm9pZCBjaGVja0lmUnVuSW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0
LCBjb25zdCBLVVJMJik7Ci0KICAgICBGcmFtZSogb3BlbmVyKCk7CiAgICAgdm9pZCBzZXRPcGVu
ZXIoRnJhbWUqKTsKIApAQCAtNDM0LDEyICs0MzEsMTYgQEAgcHJpdmF0ZToKICAgICBGcmFtZSog
bV9mcmFtZTsKICAgICBGcmFtZUxvYWRlckNsaWVudCogbV9jbGllbnQ7CiAKKyAgICAvLyBGSVhN
RTogVGhlc2Ugc2hvdWxkIGJlIE93blB0cjxUPiB0byByZWR1Y2UgYnVpbGQgdGltZXMgYW5kIHNp
bXBsaWZ5CisgICAgLy8gaGVhZGVyIGRlcGVuZGVuY2llcyB1bmxlc3MgcGVyZm9ybWFuY2UgdGVz
dGluZyBwcm92ZXMgb3RoZXJ3aXNlLgorICAgIC8vIFNvbWUgb2YgdGhlc2UgY291bGQgYmUgbGF6
aWx5IGNyZWF0ZWQgZm9yIG1lbW9yeSBzYXZpbmdzIG9uIGRldmljZXMuCiAgICAgbXV0YWJsZSBQ
b2xpY3lDaGVja2VyIG1fcG9saWN5Q2hlY2tlcjsKICAgICBtdXRhYmxlIEhpc3RvcnlDb250cm9s
bGVyIG1faGlzdG9yeTsKICAgICBtdXRhYmxlIFJlc291cmNlTG9hZE5vdGlmaWVyIG1fbm90aWZl
cjsKICAgICBtdXRhYmxlIERvY3VtZW50V3JpdGVyIG1fd3JpdGVyOwogICAgIG11dGFibGUgU3Vi
ZnJhbWVMb2FkZXIgbV9zdWJmcmFtZUxvYWRlcjsKICAgICBtdXRhYmxlIEZyYW1lTG9hZGVyU3Rh
dGVNYWNoaW5lIG1fc3RhdGVNYWNoaW5lOworICAgIG11dGFibGUgTWl4ZWRDb250ZW50Q2hlY2tl
ciBtX21peGVkQ29udGVudENoZWNrZXI7CiAKICAgICBGcmFtZVN0YXRlIG1fc3RhdGU7CiAgICAg
RnJhbWVMb2FkVHlwZSBtX2xvYWRUeXBlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvTWFp
blJlc291cmNlTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5j
cHAKaW5kZXggNmE4MjFjYWVlN2Y0ZDJlMDU5NmQ2ZTU3Njc5MzEwMmVhYWVkZDQ5YS4uZWIxNDg5
ZjE0NjQ4ZjQxY2U0NGNkNmE0ZGFmN2EwZGU3OTQ1NGY5NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9s
b2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9NYWluUmVz
b3VyY2VMb2FkZXIuY3BwCkBAIC0xOTAsNyArMTkwLDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2Fk
ZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFJl
c28KIAogICAgIEZyYW1lKiB0b3AgPSBtX2ZyYW1lLT50cmVlKCktPnRvcCgpOwogICAgIGlmICh0
b3AgIT0gbV9mcmFtZSkKLSAgICAgICAgZnJhbWVMb2FkZXIoKS0+Y2hlY2tJZkRpc3BsYXlJbnNl
Y3VyZUNvbnRlbnQodG9wLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBuZXdSZXF1ZXN0
LnVybCgpKTsKKyAgICAgICAgZnJhbWVMb2FkZXIoKS0+bWl4ZWRDb250ZW50Q2hlY2tlcigpLT5j
aGVja0lmRGlzcGxheUluc2VjdXJlQ29udGVudCh0b3AtPmRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCksIG5ld1JlcXVlc3QudXJsKCkpOwogCiAgICAgLy8gRklYTUU6IElkZWFsbHkgd2UnZCBz
dG9wIHRoZSBJL08gdW50aWwgd2UgaGVhciBiYWNrIGZyb20gdGhlIG5hdmlnYXRpb24gcG9saWN5
IGRlbGVnYXRlCiAgICAgLy8gbGlzdGVuZXIuIEJ1dCB0aGVyZSdzIG5vIHdheSB0byBkbyB0aGF0
IGluIHByYWN0aWNlLiBTbyBpbnN0ZWFkIHdlIGNhbmNlbCBsYXRlciBpZiB0aGUKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwIGIvV2ViQ29yZS9sb2Fk
ZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTBiYTljZjdkNjA1NjI0NGYz
N2U2ZGQwOTVmNGRhZmRkYWM1NjUxMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbG9hZGVy
L01peGVkQ29udGVudENoZWNrZXIuY3BwCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuIAorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uIAorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4g
KCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJv
bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiTWl4ZWRDb250ZW50Q2hlY2tlci5oIgorCisjaW5jbHVkZSAi
RnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIlNjaGVt
ZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitNaXhlZENvbnRlbnRDaGVja2VyOjpNaXhlZENvbnRlbnRDaGVja2VyKEZyYW1l
KiBmcmFtZSkKKyAgICA6IG1fZnJhbWUoZnJhbWUpCit7Cit9CisKK0ZyYW1lTG9hZGVyQ2xpZW50
KiBNaXhlZENvbnRlbnRDaGVja2VyOjpjbGllbnQoKSBjb25zdAoreworICAgIHJldHVybiBtX2Zy
YW1lLT5sb2FkZXIoKS0+Y2xpZW50KCk7Cit9CisKK2Jvb2wgTWl4ZWRDb250ZW50Q2hlY2tlcjo6
aXNNaXhlZENvbnRlbnQoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBLVVJM
JiB1cmwpCit7CisgICAgaWYgKHNlY3VyaXR5T3JpZ2luLT5wcm90b2NvbCgpICE9ICJodHRwcyIp
CisgICAgICAgIHJldHVybiBmYWxzZTsgLy8gV2Ugb25seSBjYXJlIGFib3V0IEhUVFBTIHNlY3Vy
aXR5IG9yaWdpbnMuCisgICAgCisgICAgaWYgKCF1cmwuaXNWYWxpZCgpIHx8IFNjaGVtZVJlZ2lz
dHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzU2VjdXJlKHVybC5wcm90b2NvbCgpKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOyAvLyBMb2FkaW5nIHRoZXNlIHByb3RvY29scyBpcyBzZWN1cmUuCisg
ICAgCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBpbmxpbmUgQ1N0cmluZyBhc1VURjgo
Y29uc3QgS1VSTCYgdXJsKQoreworICAgIHJldHVybiB1cmwuc3RyaW5nKCkudXRmOCgpOworfQor
Cit2b2lkIE1peGVkQ29udGVudENoZWNrZXI6OmNoZWNrSWZEaXNwbGF5SW5zZWN1cmVDb250ZW50
KFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiwgY29uc3QgS1VSTCYgdXJsKSBjb25zdAor
eworICAgIGlmICghaXNNaXhlZENvbnRlbnQoc2VjdXJpdHlPcmlnaW4sIHVybCkpCisgICAgICAg
IHJldHVybjsKKworICAgIGxvZ1dhcm5pbmcoU3RyaW5nOjpmb3JtYXQoIlRoZSBwYWdlIGF0ICVz
IGRpc3BsYXllZCBpbnNlY3VyZSBjb250ZW50IGZyb20gJXMuXG4iLAorICAgICAgICBhc1VURjgo
bV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkpLmRhdGEoKSwgYXNVVEY4KHVybCkuZGF0YSgpKSk7
CisKKyAgICBjbGllbnQoKS0+ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgpOworfQorCit2b2lk
IE1peGVkQ29udGVudENoZWNrZXI6OmNoZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlP
cmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBLVVJMJiB1cmwpIGNvbnN0Cit7CisgICAgaWYg
KCFpc01peGVkQ29udGVudChzZWN1cml0eU9yaWdpbiwgdXJsKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbG9nV2FybmluZyhTdHJpbmc6OmZvcm1hdCgiVGhlIHBhZ2UgYXQgJXMgcmFuIGluc2Vj
dXJlIGNvbnRlbnQgZnJvbSAlcy5cbiIsCisgICAgICAgIGFzVVRGOChtX2ZyYW1lLT5kb2N1bWVu
dCgpLT51cmwoKSkuZGF0YSgpLCBhc1VURjgodXJsKS5kYXRhKCkpKTsKKworICAgIGNsaWVudCgp
LT5kaWRSdW5JbnNlY3VyZUNvbnRlbnQoc2VjdXJpdHlPcmlnaW4pOworfQorCit2b2lkIE1peGVk
Q29udGVudENoZWNrZXI6OmxvZ1dhcm5pbmcoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBjb25zdAor
eworICAgIENvbnNvbGUqIGNvbnNvbGUgPSBtX2ZyYW1lLT5kb21XaW5kb3coKS0+Y29uc29sZSgp
OworICAgIC8vIEZJWE1FOiBXaHkgZG9lcyB0aGlzIG1lc3NhZ2Ugbm90IGhhdmUgYSBzb3VyY2Ug
VVJMIG9yIGEgbGluZSBudW1iZXI/CisgICAgY29uc29sZS0+YWRkTWVzc2FnZShIVE1MTWVzc2Fn
ZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIFdhcm5pbmdNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDEs
IFN0cmluZygpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5oIGIvV2ViQ29yZS9sb2FkZXIvTWl4ZWRD
b250ZW50Q2hlY2tlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2OTI4M2IzMzAwYThmNWM0MTc2ZTE2YTNlZTk2
YzhlOTJmZjIyMWIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRl
bnRDaGVja2VyLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWl4ZWRDb250ZW50Q2hlY2tlcl9o
CisjZGVmaW5lIE1peGVkQ29udGVudENoZWNrZXJfaAorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBGcmFtZTsKK2NsYXNzIEZyYW1lTG9hZGVyQ2xpZW50OworY2xhc3MgS1VSTDsK
K2NsYXNzIFNlY3VyaXR5T3JpZ2luOworCitjbGFzcyBNaXhlZENvbnRlbnRDaGVja2VyIDogcHVi
bGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICBNaXhlZENvbnRlbnRDaGVja2VyKEZyYW1l
Kik7CisKKyAgICB2b2lkIGNoZWNrSWZEaXNwbGF5SW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3Jp
Z2luKiwgY29uc3QgS1VSTCYpIGNvbnN0OworICAgIHZvaWQgY2hlY2tJZlJ1bkluc2VjdXJlQ29u
dGVudChTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwmKSBjb25zdDsKKworcHJpdmF0ZToKKyAg
ICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcHJvYmFibHkgaGF2ZSBhIHNlcGFyYXRlIGNsaWVudCBm
cm9tIEZyYW1lTG9hZGVyLgorICAgIEZyYW1lTG9hZGVyQ2xpZW50KiBjbGllbnQoKSBjb25zdDsK
KworICAgIHN0YXRpYyBib29sIGlzTWl4ZWRDb250ZW50KFNlY3VyaXR5T3JpZ2luKiwgY29uc3Qg
S1VSTCYpOworICAgIHZvaWQgbG9nV2FybmluZyhjb25zdCBTdHJpbmcmKSBjb25zdDsKKworICAg
IEZyYW1lKiBtX2ZyYW1lOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gTWl4ZWRDb250ZW50Q2hlY2tlcl9oCisKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL1N1
YmZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAppbmRl
eCBlMjQ3ZTViY2M0MWEzYzUzMDY0YTY2YmRmOTRmNmZiNThiYWQ2YjBmLi4yMDk0NjVhMDFhYmIy
NmNkNGI2YjI2YmExODE0NWRjY2IwOGI5MjQwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9T
dWJmcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3Bw
CkBAIC0zNTEsNyArMzUxLDcgQEAgYm9vbCBTdWJmcmFtZUxvYWRlcjo6bG9hZFBsdWdpbihIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50KiBwbHVnaW5FbGVtZW50LCBjb25zdCBLVVIKICAgICB9CiAKICAg
ICBGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIgPSBtX2ZyYW1lLT5sb2FkZXIoKTsKLSAgICBmcmFt
ZUxvYWRlci0+Y2hlY2tJZlJ1bkluc2VjdXJlQ29udGVudChkb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpLCB1cmwpOworICAgIGZyYW1lTG9hZGVyLT5taXhlZENvbnRlbnRDaGVja2VyKCktPmNo
ZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQoZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgdXJs
KTsKIAogICAgIEludFNpemUgY29udGVudFNpemUocmVuZGVyZXItPmNvbnRlbnRXaWR0aCgpLCBy
ZW5kZXJlci0+Y29udGVudEhlaWdodCgpKTsKICAgICBib29sIGxvYWRNYW51YWxseSA9IGRvY3Vt
ZW50KCktPmlzUGx1Z2luRG9jdW1lbnQoKSAmJiAhbV9jb250YWluc1BsdWdpbnM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67432</attachid>
            <date>2010-09-13 10:59:36 -0700</date>
            <delta_ts>2012-10-14 15:46:49 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-45638-20100913105935.patch</filename>
            <type>text/plain</type>
            <size>25230</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBjMGM1ZmJhMTNlMjc5NDhlYWI3OGM1NzdkYTA1MTI3ODNmOTQzNWRkLi41NTI5MzAxZmM3Nzcz
ZWMyY2JkYTY3YjEzNDE4ZGFkMzIxNWQzMDEwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0zMjksNiArMzI5LDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJbG9hZGVyL0hpc3RvcnlDb250cm9sbGVy
LmNwcCBcCiAJbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBcCiAJbG9hZGVyL01haW5SZXNvdXJjZUxv
YWRlci5jcHAgXAorCWxvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcCBcCiAJbG9hZGVyL05h
dmlnYXRpb25BY3Rpb24uY3BwIFwKIAlsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIu
Y3BwIFwKIAlsb2FkZXIvUGluZ0xvYWRlci5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMmQ4NzBlMmE5NjBhOTlh
MWY1ZGY4ZTRiOTI5M2IzZDgxMDdhYzRmYS4uNWJlMmYzMWZjYjZlNTExNzE1ZDkzMmMyZDJjMTY4
MzliMzc4N2U0NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMTAxLDYgKzExMDEsNyBAQCBTRVQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAogICAgIGxvYWRlci9JbWFnZUxv
YWRlci5jcHAKICAgICBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAorICAgIGxvYWRlci9N
aXhlZENvbnRlbnRDaGVja2VyLmNwcAogICAgIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcAog
ICAgIGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAKICAgICBsb2FkZXIvUGlu
Z0xvYWRlci5jcHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggZGQwZjZmNzU2ODY2ZmYxNWJmNTEwYzExMDBjOTgwNjA5NjQ1ZTZiMi4uZWRl
MzJlNGFiYWQ4ODdkNDUyNWM1OTNmMTAwZmQyM2UzNjk0NWY5NiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAx
MC0wOS0xMiAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBNb3ZlIG1peGVkIGNvbnRlbnQgbG9naWMgb3V0
IG9mIEZyYW1lTG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00NTYzOAorCisgICAgICAgIEp1c3QgbW92aW5nIGNvZGUsIG5vIGZ1bmN0aW9uYWwg
Y2hhbmdlLgorICAgICAgICBJIGFsc28gc2ltcGxpZmllZCB0aGUgY29kZSBldmVyIHNvIHNsaWdo
dGx5IHdoaWxlIG1vdmluZworICAgICAgICAodXNlZCBmdW5jdGlvbnMgdG8gcmVkdWNlIGNvZGUg
ZHVwbGljYXRpb24pLgorCisgICAgICAgICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGxvYWRlci9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FuUmVxdWVzdCk6CisgICAgICAgICogbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpGcmFt
ZUxvYWRlcik6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6bWl4ZWRDb250ZW50Q2hlY2tlcik6CisgICAgICAgICogbG9hZGVy
L01haW5SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VM
b2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL1N1YmZyYW1lTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpsb2FkUGx1Z2luKToKKwog
MjAxMC0wOS0xMyAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggNDdlMTU1MGFlMGYwZmEzNGIy
ZjI0YTdmOTk3YmIzZDUyZjkzZmMwOC4uZjdjOWNlNzcwNTA3ZjdmMmQyOTM5ZDk1MjBlYzE2NDRm
MTI3ZmY2ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCkBAIC0xODMxLDYgKzE4MzEsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVdlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmggXAogCVdlYkNvcmUvbG9hZGVyL2xvYWRl
ci5jcHAgXAogCVdlYkNvcmUvbG9hZGVyL2xvYWRlci5oIFwKKwlXZWJDb3JlL2xvYWRlci9NaXhl
ZENvbnRlbnRDaGVja2VyLmNwcCBcCisJV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tl
ci5oIFwKIAlXZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwIFwKIAlXZWJDb3Jl
L2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaCBcCiAJV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlv
bkFjdGlvbi5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCBmZWQ3Y2UzOTc4Mzg2ODg1ODlkZTY4ZDNjNmM4YjQ5NmJmZjk4
ZjhkLi4zZjZmY2Y5NjQ4ODUzZmZmNTdhYzNiZmZlNzU1NjViNTk1OTBjNGUxIDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTk0
MSw2ICsxOTQxLDggQEAKICAgICAgICAgICAgICdsb2FkZXIvSW1hZ2VMb2FkZXIuaCcsCiAgICAg
ICAgICAgICAnbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAnLAogICAgICAgICAgICAgJ2xv
YWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaCcsCisgICAgICAgICAgICAnbG9hZGVyL01peGVkQ29u
dGVudENoZWNrZXIuY3BwJywKKyAgICAgICAgICAgICdsb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tl
ci5oJywKICAgICAgICAgICAgICdsb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAnLAogICAgICAg
ICAgICAgJ2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9O
ZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggNmM2N2JkZTE3YjY4ZGUyNzdjODRm
MGVhN2ZjNTJiMTkzYWQ5NjU1YS4uY2VmM2MxOTA3OTgwNzA4MDM3MDczNzk1YTZlZTlhYjgyY2M3
ZWFiMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNv
cmUucHJvCkBAIC0xMDAwLDYgKzEwMDAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBsb2FkZXIvaWNv
bi9JY29uTG9hZGVyLmNwcCBcCiAgICAgbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBcCiAgICAgbG9h
ZGVyL2xvYWRlci5jcHAgXAorICAgIGxvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcCBcCiAg
ICAgbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAgXAogICAgIGxvYWRlci9OYXZpZ2F0aW9u
QWN0aW9uLmNwcCBcCiAgICAgbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCBc
CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlMjU2ODM1MzM2YjJkZWVm
OTVkZTFjYjc1YzUwZjA5MmY4ZDZlYjQwLi5lZGMzZmVhZTFkNGE0MzE2ZDIyMzI3MDE4Mzk0Yzc3
MjhlYTJiMDhmIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTIzNjI1
LDYgKzIzNjI1LDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGxvYWRlclxNaXhlZENvbnRlbnRDaGVja2VyLmNwcCINCisJCQkJPg0KKwkJ
CTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxNaXhlZENv
bnRlbnRDaGVja2VyLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlxsb2FkZXJcTWFpblJlc291cmNlTG9hZGVyLmNwcCINCiAJCQkJPg0KIAkJ
CTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDE3MWFmZGFiYzg4MWRmYmNmYjEwZTU1NGU5NTUzMzZhNTc5NTY0MDIuLjVkOWFiNTZlZTJlMTk3
MzY1MDJjZjkwYzQxMDc5YmQzMTRkOWM1MDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0zMTgzLDYgKzMxODMsOCBAQAogCQlBODI0QjQ2NTBFMkVGMkVB
MDA4MUE3QjcgLyogVGV4dFJ1bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTgyNEI0NjQwRTJFRjJFQTAwODFBN0I3IC8qIFRleHRSdW4uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBODI2RThBRTBBMUE4
RjIzMDBDRDFCQjYgLyogSlNPcHRpb25Db25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgyNkU4QUMwQTFBOEYyMzAwQ0QxQkI2IC8qIEpT
T3B0aW9uQ29uc3RydWN0b3IuaCAqLzsgfTsKIAkJQTgyNkVDNDgwQTFCMENCRTAwQ0QxQkI2IC8q
IEpTT3B0aW9uQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTgyNkU4QUQwQTFBOEYyMzAwQ0QxQkI2IC8qIEpTT3B0aW9uQ29uc3Ry
dWN0b3IuY3BwICovOyB9OworCQlBODJGNzE4QTEyM0RGNEExMDBFNzJCODggLyogTWl4ZWRDb250
ZW50Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTgyRjcxODgxMjNERjRBMTAwRTcyQjg4IC8qIE1peGVkQ29udGVudENoZWNrZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBODJGNzE4QjEy
M0RGNEExMDBFNzJCODggLyogTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODJGNzE4OTEyM0RGNEExMDBFNzJCODgg
LyogTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAgKi87IH07CiAJCUE4MzNDN0NBMEEyQ0YwNkIwMEQ1
NzY2NCAvKiBTVkdOYW1lcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2NTY1ODFFODA5RDE1MDhEMDAwRTYxRDcgLyogU1ZHTmFtZXMuY3BwICovOyB9
OwogCQlBODMzQzdDQzBBMkNGMDc0MDBENTc2NjQgLyogWExpbmtOYW1lcy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTY1ODFFQTA5RDE1MDhEMDAw
RTYxRDcgLyogWExpbmtOYW1lcy5jcHAgKi87IH07CiAJCUE4MzNDODBDMEEyQ0YyNTYwMEQ1NzY2
NCAvKiBYTUxOYW1lcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBODMzQzgwQTBBMkNGMjU2MDBENTc2NjQgLyogWE1MTmFtZXMuY3BwICovOyB9OwpA
QCAtODk1MCw2ICs4OTUyLDggQEAKIAkJQTgyNEI0NjQwRTJFRjJFQTAwODFBN0I3IC8qIFRleHRS
dW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFJ1bi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBODI2RThBQzBBMUE4RjIzMDBDRDFCQjYgLyogSlNPcHRp
b25Db25zdHJ1Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNPcHRp
b25Db25zdHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODI2RThBRDBB
MUE4RjIzMDBDRDFCQjYgLyogSlNPcHRpb25Db25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNPcHRpb25Db25zdHJ1Y3Rvci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MkY3MTg4MTIzREY0QTEwMEU3MkI4OCAvKiBNaXhlZENv
bnRlbnRDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1peGVkQ29u
dGVudENoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgyRjcxODkxMjNE
RjRBMTAwRTcyQjg4IC8qIE1peGVkQ29udGVudENoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWl4ZWRDb250ZW50Q2hlY2tlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4MzNDN0Y2MEEyQ0YxRDgwMEQ1NzY2NCAvKiB4bWxhdHRycy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0geG1sYXR0cnMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4MzNDODBBMEEyQ0YyNTYwMEQ1NzY2NCAvKiBYTUxOYW1lcy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWE1MTmFtZXMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBODMzQzgwQjBBMkNGMjU2MDBENTc2NjQgLyogWE1MTmFt
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTE5hbWVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjU3NSwxMSArMTY1NzksOCBAQAogCQlCQ0IxNkJG
QjA5NzlDMzg3MDA0Njc3NDEgLyogbG9hZGVyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKLQkJCQk2MjhEMjE0RDEyMTMxRUY0MDA1NURDRkMgLyogRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5oICovLAogCQkJCTFBOEY2QkIwMERCNTVDREMwMDFEQjc5NCAvKiBhcHBj
YWNoZSAqLywKIAkJCQk1MTJERDhFODBEOTFFNjkxMDAwRjg5RUUgLyogYXJjaGl2ZSAqLywKLQkJ
CQk1MTI2RTZCNjBBMkUzQUVGMDA1QzI5RkEgLyogaWNvbiAqLywKLQkJCQk5M0ExRUFBMjBBNTYz
NEQ4MDA2OTYwQTAgLyogbWFjICovLAogCQkJCUJDQjE2QkZFMDk3OUMzQkQwMDQ2Nzc0MSAvKiBD
YWNoZS5jcHAgKi8sCiAJCQkJQkNCMTZCRkYwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlLmggKi8s
CiAJCQkJQkNCMTZDMDAwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZENTU1N0eWxlU2hlZXQuY3Bw
ICovLApAQCAtMTY1OTUsNyArMTY1OTYsOCBAQAogCQkJCUJDQjE2QzA5MDk3OUMzQkQwMDQ2Nzc0
MSAvKiBDYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlci5oICovLAogCQkJCUU0N0I0QkU3MEU3MTI0
MTYwMDAzODg1NCAvKiBDYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAgKi8sCiAJCQkJRTQ3QjRCRTYw
RTcxMjQxNjAwMDM4ODU0IC8qIENhY2hlZFJlc291cmNlSGFuZGxlLmggKi8sCi0JCQkJRTQ3MjA1
M0EwRTVBMDUzQTAwMDZCQjREIC8qIENhY2hlZFJlc291cmNlSGFuZGxlLmggKi8sCisJCQkJQkNC
MTZDMTAwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCAqLywKKwkJ
CQlCQ0IxNkMxMTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCAqLywK
IAkJCQlCQ0IxNkMwQTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkU2NyaXB0LmNwcCAqLywKIAkJ
CQlCQ0IxNkMwQjA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkU2NyaXB0LmggKi8sCiAJCQkJQkNC
MTZDMEUwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFhTTFN0eWxlU2hlZXQuY3BwICovLApAQCAt
MTY2MDUsOCArMTY2MDcsNiBAQAogCQkJCUUxQzQxNjExMEY2NTYyRkQwMDkyRDJGQiAvKiBDcm9z
c09yaWdpbkFjY2Vzc0NvbnRyb2wuaCAqLywKIAkJCQlFMUM0MTVERDBGNjU1RDdDMDA5MkQyRkIg
LyogQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5jcHAgKi8sCiAJCQkJRTFDNDE1RDkw
RjY1NUQ2RjAwOTJEMkZCIC8qIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaCAqLywK
LQkJCQlCQ0IxNkMxMDA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
ICovLAotCQkJCUJDQjE2QzExMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRl
ci5oICovLAogCQkJCTkzRTIyN0RCMEFGNTg5QUQwMEQ0ODMyNCAvKiBEb2N1bWVudExvYWRlci5j
cHAgKi8sCiAJCQkJNjU2RDM3MUUwQURCQTVERTAwQTQ1NTREIC8qIERvY3VtZW50TG9hZGVyLmgg
Ki8sCiAJCQkJOEExMkUzNUMxMUZBMzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5o
ICovLApAQCAtMTY2MjUsMTYgKzE2NjI1LDIxIEBACiAJCQkJRDAwMEVCQTAxMUJEQUZENDAwQzQ3
NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmNwcCAqLywKIAkJCQlEMDAwRUJBMTExQkRB
RkQ0MDBDNDc3MjYgLyogRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCAqLywKIAkJCQk5M0I3N0Ez
NzBBREQ3OTI1MDBFQTRCODEgLyogRnJhbWVMb2FkZXJUeXBlcy5oICovLAorCQkJCTYyOEQyMTRE
MTIxMzFFRjQwMDU1RENGQyAvKiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi8sCiAJCQkJNTFD
ODFCODcwQzQ0MjJGNzAwMTlFQ0UzIC8qIEZUUERpcmVjdG9yeVBhcnNlci5jcHAgKi8sCiAJCQkJ
NTFDODFCODgwQzQ0MjJGNzAwMTlFQ0UzIC8qIEZUUERpcmVjdG9yeVBhcnNlci5oICovLAogCQkJ
CTk3RENFMUZGMTA4MDdDNzUwMDU3RDM5NCAvKiBIaXN0b3J5Q29udHJvbGxlci5jcHAgKi8sCiAJ
CQkJOTdEQ0UyMDAxMDgwN0M3NTAwNTdEMzk0IC8qIEhpc3RvcnlDb250cm9sbGVyLmggKi8sCisJ
CQkJNTEyNkU2QjYwQTJFM0FFRjAwNUMyOUZBIC8qIGljb24gKi8sCiAJCQkJMDg5NTgyNTMwRTg1
N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmNwcCAqLywKIAkJCQkwODk1ODI1NDBFODU3QTdF
MDBGODJDODMgLyogSW1hZ2VMb2FkZXIuaCAqLywKIAkJCQlCQ0IxNkMxMzA5NzlDM0JEMDA0Njc3
NDEgLyogbG9hZGVyLmNwcCAqLywKIAkJCQlCQ0IxNkMxNDA5NzlDM0JEMDA0Njc3NDEgLyogbG9h
ZGVyLmggKi8sCisJCQkJOTNBMUVBQTIwQTU2MzREODAwNjk2MEEwIC8qIG1hYyAqLywKIAkJCQk5
M0UyMjdEQzBBRjU4OUFEMDBENDgzMjQgLyogTWFpblJlc291cmNlTG9hZGVyLmNwcCAqLywKIAkJ
CQk2NTZEMzcyOTBBREJBNURFMDBBNDU1NEQgLyogTWFpblJlc291cmNlTG9hZGVyLmggKi8sCisJ
CQkJQTgyRjcxODkxMjNERjRBMTAwRTcyQjg4IC8qIE1peGVkQ29udGVudENoZWNrZXIuY3BwICov
LAorCQkJCUE4MkY3MTg4MTIzREY0QTEwMEU3MkI4OCAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmgg
Ki8sCiAJCQkJOTNDQ0YwNUYwQUY2Q0E3NjAwMDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uY3Bw
ICovLAogCQkJCTkzQ0NGMDI2MEFGNkM1MjkwMDAxOEU4OSAvKiBOYXZpZ2F0aW9uQWN0aW9uLmgg
Ki8sCiAJCQkJOTNFMjI3REQwQUY1ODlBRDAwRDQ4MzI0IC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFt
TG9hZGVyLmNwcCAqLywKQEAgLTE2NjczLDYgKzE2Njc4LDcgQEAKIAkJCQkwQjkwNTYxODBGMjU3
OEJFMDA5NUZGNkEgLyogVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oICovLAogCQkJCTBCOTA1NkY2
MEYyNjg1RjMwMDk1RkY2QSAvKiBXb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmNwcCAqLywKIAkJCQkw
QjkwNTZGNzBGMjY4NUYzMDA5NUZGNkEgLyogV29ya2VyVGhyZWFkYWJsZUxvYWRlci5oICovLAor
CQkJCUU0NzIwNTNBMEU1QTA1M0EwMDA2QkI0RCAvKiBDYWNoZWRSZXNvdXJjZUhhbmRsZS5oICov
LAogCQkJKTsKIAkJCXBhdGggPSBsb2FkZXI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtMjA1NTcsNiArMjA1NjMsNyBAQAogCQkJCTg5M0M0N0I4MTIzOEEwOTkwMDJCM0Q4NiAvKiBK
U0ZpbGVDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODkzQzQ3QkMxMjM4QTBBOTAwMkIz
RDg2IC8qIEpTRmlsZVdyaXRlckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTMwOUM5
RjEyMzk1MEJFMDBDQjkyMDQgLyogTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUE4MkY3MThBMTIzREY0QTEwMEU3MkI4OCAvKiBNaXhlZENvbnRlbnRDaGVja2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIzMDMxLDYgKzIzMDM4LDcgQEAKIAkJCQlBNjIyQThGQzEy
MkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4OTNDNDdCNzEyMzhBMDk5MDAyQjNEODYgLyogSlNGaWxlQ2FsbGJhY2suY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJODkzQzQ3QkIxMjM4QTBBOTAwMkIzRDg2IC8qIEpTRmlsZVdyaXRlckNh
bGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4MkY3MThCMTIzREY0QTEwMEU3MkI4OCAv
KiBNaXhlZENvbnRlbnRDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9sb2FkZXIvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGQ5MjVlYWIzOTVmZTNhOWNkOTk1MDAzYmQyODg0
ZmFlZDZiOTM0YTMuLjRkNDE4YWMwMGRlYzJhZTYxYjFiMTExYWFhYWIwM2QyZDkxM2VjOTQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9X
ZWJDb3JlL2xvYWRlci9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTIyMCw3ICsyMjAsNyBA
QCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpU
eXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVybAogI2VuZGlmCiAgICAgICAgIC8vIFRoZXNlIHJlc291
cmNlIGNhbiBpbmplY3Qgc2NyaXB0IGludG8gdGhlIGN1cnJlbnQgZG9jdW1lbnQuCiAgICAgICAg
IGlmIChGcmFtZSogZiA9IGZyYW1lKCkpCi0gICAgICAgICAgICBmLT5sb2FkZXIoKS0+Y2hlY2tJ
ZlJ1bkluc2VjdXJlQ29udGVudChtX2RvYy0+c2VjdXJpdHlPcmlnaW4oKSwgdXJsKTsKKyAgICAg
ICAgICAgIGYtPmxvYWRlcigpLT5taXhlZENvbnRlbnRDaGVja2VyKCktPmNoZWNrSWZSdW5JbnNl
Y3VyZUNvbnRlbnQobV9kb2MtPnNlY3VyaXR5T3JpZ2luKCksIHVybCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2U6CiAgICAgY2FzZSBDYWNo
ZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldDoKQEAgLTIyOCw3ICsyMjgsNyBAQCBib29sIENhY2hl
ZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNv
bnN0IEtVUkwmIHVybAogICAgICAgICAvLyBUaGVzZSByZXNvdXJjZXMgY2FuIGNvcnJ1cHQgb25s
eSB0aGUgZnJhbWUncyBwaXhlbHMuCiAgICAgICAgIGlmIChGcmFtZSogZiA9IGZyYW1lKCkpIHsK
ICAgICAgICAgICAgIEZyYW1lKiB0b3AgPSBmLT50cmVlKCktPnRvcCgpOwotICAgICAgICAgICAg
dG9wLT5sb2FkZXIoKS0+Y2hlY2tJZkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQodG9wLT5kb2N1bWVu
dCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmwpOworICAgICAgICAgICAgdG9wLT5sb2FkZXIoKS0+
bWl4ZWRDb250ZW50Q2hlY2tlcigpLT5jaGVja0lmRGlzcGxheUluc2VjdXJlQ29udGVudCh0b3At
PmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHVybCk7CiAgICAgICAgIH0KICAgICAgICAg
YnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
IGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDJlYzZmNzIwODJiZGQ4Nzgz
NmZmMmNkOTNjMDM5NDI2NzU1YTFhYjguLjkxZWI3YzBlNGUzNjg1N2RhZjkzYTI1MjM0ZmEwYTgx
ZDRkZThiYjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysg
Yi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTE4MCw2ICsxODAsNyBAQCBGcmFt
ZUxvYWRlcjo6RnJhbWVMb2FkZXIoRnJhbWUqIGZyYW1lLCBGcmFtZUxvYWRlckNsaWVudCogY2xp
ZW50KQogICAgICwgbV9ub3RpZmVyKGZyYW1lKQogICAgICwgbV93cml0ZXIoZnJhbWUpCiAgICAg
LCBtX3N1YmZyYW1lTG9hZGVyKGZyYW1lKQorICAgICwgbV9taXhlZENvbnRlbnRDaGVja2VyKGZy
YW1lKQogICAgICwgbV9zdGF0ZShGcmFtZVN0YXRlQ29tbWl0dGVkUGFnZSkKICAgICAsIG1fbG9h
ZFR5cGUoRnJhbWVMb2FkVHlwZVN0YW5kYXJkKQogICAgICwgbV9kZWxlZ2F0ZUlzSGFuZGxpbmdQ
cm92aXNpb25hbExvYWRFcnJvcihmYWxzZSkKQEAgLTk5OSw0MSArMTAwMCw2IEBAIFN0cmluZyBG
cmFtZUxvYWRlcjo6b3V0Z29pbmdPcmlnaW4oKSBjb25zdAogICAgIHJldHVybiBtX2ZyYW1lLT5k
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpOwogfQogCi1ib29sIEZyYW1l
TG9hZGVyOjppc01peGVkQ29udGVudChTZWN1cml0eU9yaWdpbiogY29udGV4dCwgY29uc3QgS1VS
TCYgdXJsKQotewotICAgIGlmIChjb250ZXh0LT5wcm90b2NvbCgpICE9ICJodHRwcyIpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsgIC8vIFdlIG9ubHkgY2FyZSBhYm91dCBIVFRQUyBzZWN1cml0eSBv
cmlnaW5zLgotCi0gICAgaWYgKCF1cmwuaXNWYWxpZCgpIHx8IFNjaGVtZVJlZ2lzdHJ5OjpzaG91
bGRUcmVhdFVSTFNjaGVtZUFzU2VjdXJlKHVybC5wcm90b2NvbCgpKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOyAgLy8gTG9hZGluZyB0aGVzZSBwcm90b2NvbHMgaXMgc2VjdXJlLgotCi0gICAgcmV0
dXJuIHRydWU7Ci19Ci0KLXZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrSWZEaXNwbGF5SW5zZWN1cmVD
b250ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJMJiB1cmwpCi17Ci0gICAg
aWYgKCFpc01peGVkQ29udGVudChjb250ZXh0LCB1cmwpKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBTdHJpbmcgbWVzc2FnZSA9IFN0cmluZzo6Zm9ybWF0KCJUaGUgcGFnZSBhdCAlcyBkaXNwbGF5
ZWQgaW5zZWN1cmUgY29udGVudCBmcm9tICVzLlxuIiwKLSAgICAgICAgbV9VUkwuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSwgdXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIG1fZnJhbWUt
PmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSFRNTE1lc3NhZ2VTb3VyY2UsIExv
Z01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAxLCBTdHJpbmcoKSk7
Ci0KLSAgICBtX2NsaWVudC0+ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgpOwotfQotCi12b2lk
IEZyYW1lTG9hZGVyOjpjaGVja0lmUnVuSW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBj
b250ZXh0LCBjb25zdCBLVVJMJiB1cmwpCi17Ci0gICAgaWYgKCFpc01peGVkQ29udGVudChjb250
ZXh0LCB1cmwpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBTdHJpbmcgbWVzc2FnZSA9IFN0cmlu
Zzo6Zm9ybWF0KCJUaGUgcGFnZSBhdCAlcyByYW4gaW5zZWN1cmUgY29udGVudCBmcm9tICVzLlxu
IiwKLSAgICAgICAgbV9VUkwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgdXJsLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwotICAgIG1fZnJhbWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1l
c3NhZ2UoSFRNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxl
dmVsLCBtZXNzYWdlLCAxLCBTdHJpbmcoKSk7Ci0KLSAgICBtX2NsaWVudC0+ZGlkUnVuSW5zZWN1
cmVDb250ZW50KGNvbnRleHQpOwotfQotCiBGcmFtZSogRnJhbWVMb2FkZXI6Om9wZW5lcigpCiB7
CiAgICAgcmV0dXJuIG1fb3BlbmVyOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuaCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggNDBmMzViZGNiNGJi
NTUwNTY0ODRlZDQ5ZjA4Y2U4MzU0Y2U2NDVhYi4uMDk2ODNjNjk4OGExOWVhZDllMDM5ZWJlMjFi
MWU4N2VhMTgxZjdmOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAor
KysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5j
bHVkZSAiRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5
cGVzLmgiCiAjaW5jbHVkZSAiSGlzdG9yeUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJNaXhlZENv
bnRlbnRDaGVja2VyLmgiCiAjaW5jbHVkZSAiUG9saWN5Q2FsbGJhY2suaCIKICNpbmNsdWRlICJQ
b2xpY3lDaGVja2VyLmgiCiAjaW5jbHVkZSAiUmVkaXJlY3RTY2hlZHVsZXIuaCIKQEAgLTEwMCw2
ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAgUmVzb3VyY2VMb2FkTm90aWZpZXIqIG5vdGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gJm1fbm90aWZlcjsgfQogICAgIERvY3VtZW50V3JpdGVyKiB3cml0ZXIo
KSBjb25zdCB7IHJldHVybiAmbV93cml0ZXI7IH0KICAgICBTdWJmcmFtZUxvYWRlciogc3ViZnJh
bWVMb2FkZXIoKSBjb25zdCB7IHJldHVybiAmbV9zdWJmcmFtZUxvYWRlcjsgfQorICAgIE1peGVk
Q29udGVudENoZWNrZXIqIG1peGVkQ29udGVudENoZWNrZXIoKSBjb25zdCB7IHJldHVybiAmbV9t
aXhlZENvbnRlbnRDaGVja2VyOyB9CiAKICAgICAvLyBGSVhNRTogVGhpcyBpcyBub3QgY29vbCwg
cGVvcGxlLiBUaGVyZSBhcmUgdG9vIG1hbnkgZGlmZmVyZW50IGZ1bmN0aW9ucyB0aGF0IGFsbCBz
dGFydCBsb2Fkcy4KICAgICAvLyBXZSBzaG91bGQgYWltIHRvIGNvbnNvbGlkYXRlIHRoZXNlIGlu
dG8gYSBzbWFsbGVyIHNldCBvZiBmdW5jdGlvbnMsIGFuZCB0cnkgdG8gcmV1c2UgbW9yZSBvZgpA
QCAtMjQ4LDExICsyNTAsNiBAQCBwdWJsaWM6CiAgICAgLy8gdGhlIHNhbmRib3ggYXR0cmlidXRl
IG9mIGFueSBwYXJlbnQgZnJhbWVzLgogICAgIHZvaWQgc2V0Rm9yY2VkU2FuZGJveEZsYWdzKFNh
bmRib3hGbGFncyBmbGFncykgeyBtX2ZvcmNlZFNhbmRib3hGbGFncyA9IGZsYWdzOyBtX3NhbmRi
b3hGbGFncyB8PSBmbGFnczsgfQogCi0gICAgLy8gTWl4ZWQgY29udGVudCByZWxhdGVkIGZ1bmN0
aW9ucy4KLSAgICBzdGF0aWMgYm9vbCBpc01peGVkQ29udGVudChTZWN1cml0eU9yaWdpbiogY29u
dGV4dCwgY29uc3QgS1VSTCYpOwotICAgIHZvaWQgY2hlY2tJZkRpc3BsYXlJbnNlY3VyZUNvbnRl
bnQoU2VjdXJpdHlPcmlnaW4qIGNvbnRleHQsIGNvbnN0IEtVUkwmKTsKLSAgICB2b2lkIGNoZWNr
SWZSdW5JbnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlPcmlnaW4qIGNvbnRleHQsIGNvbnN0IEtVUkwm
KTsKLQogICAgIEZyYW1lKiBvcGVuZXIoKTsKICAgICB2b2lkIHNldE9wZW5lcihGcmFtZSopOwog
CkBAIC00MzQsMTIgKzQzMSwxNiBAQCBwcml2YXRlOgogICAgIEZyYW1lKiBtX2ZyYW1lOwogICAg
IEZyYW1lTG9hZGVyQ2xpZW50KiBtX2NsaWVudDsKIAorICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91
bGQgYmUgT3duUHRyPFQ+IHRvIHJlZHVjZSBidWlsZCB0aW1lcyBhbmQgc2ltcGxpZnkKKyAgICAv
LyBoZWFkZXIgZGVwZW5kZW5jaWVzIHVubGVzcyBwZXJmb3JtYW5jZSB0ZXN0aW5nIHByb3ZlcyBv
dGhlcndpc2UuCisgICAgLy8gU29tZSBvZiB0aGVzZSBjb3VsZCBiZSBsYXppbHkgY3JlYXRlZCBm
b3IgbWVtb3J5IHNhdmluZ3Mgb24gZGV2aWNlcy4KICAgICBtdXRhYmxlIFBvbGljeUNoZWNrZXIg
bV9wb2xpY3lDaGVja2VyOwogICAgIG11dGFibGUgSGlzdG9yeUNvbnRyb2xsZXIgbV9oaXN0b3J5
OwogICAgIG11dGFibGUgUmVzb3VyY2VMb2FkTm90aWZpZXIgbV9ub3RpZmVyOwogICAgIG11dGFi
bGUgRG9jdW1lbnRXcml0ZXIgbV93cml0ZXI7CiAgICAgbXV0YWJsZSBTdWJmcmFtZUxvYWRlciBt
X3N1YmZyYW1lTG9hZGVyOwogICAgIG11dGFibGUgRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUgbV9z
dGF0ZU1hY2hpbmU7CisgICAgbXV0YWJsZSBNaXhlZENvbnRlbnRDaGVja2VyIG1fbWl4ZWRDb250
ZW50Q2hlY2tlcjsKIAogICAgIEZyYW1lU3RhdGUgbV9zdGF0ZTsKICAgICBGcmFtZUxvYWRUeXBl
IG1fbG9hZFR5cGU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2Fk
ZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAppbmRleCA2YTgy
MWNhZWU3ZjRkMmUwNTk2ZDZlNTc2NzkzMTAyZWFhZWRkNDlhLi5lYjE0ODlmMTQ2NDhmNDFjZTQ0
Y2Q2YTRkYWY3YTBkZTc5NDU0Zjk2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9NYWluUmVz
b3VyY2VMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5j
cHAKQEAgLTE5MCw3ICsxOTAsNyBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRS
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwgY29uc3QgUmVzbwogCiAgICAgRnJh
bWUqIHRvcCA9IG1fZnJhbWUtPnRyZWUoKS0+dG9wKCk7CiAgICAgaWYgKHRvcCAhPSBtX2ZyYW1l
KQotICAgICAgICBmcmFtZUxvYWRlcigpLT5jaGVja0lmRGlzcGxheUluc2VjdXJlQ29udGVudCh0
b3AtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIG5ld1JlcXVlc3QudXJsKCkpOworICAg
ICAgICBmcmFtZUxvYWRlcigpLT5taXhlZENvbnRlbnRDaGVja2VyKCktPmNoZWNrSWZEaXNwbGF5
SW5zZWN1cmVDb250ZW50KHRvcC0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgbmV3UmVx
dWVzdC51cmwoKSk7CiAKICAgICAvLyBGSVhNRTogSWRlYWxseSB3ZSdkIHN0b3AgdGhlIEkvTyB1
bnRpbCB3ZSBoZWFyIGJhY2sgZnJvbSB0aGUgbmF2aWdhdGlvbiBwb2xpY3kgZGVsZWdhdGUKICAg
ICAvLyBsaXN0ZW5lci4gQnV0IHRoZXJlJ3Mgbm8gd2F5IHRvIGRvIHRoYXQgaW4gcHJhY3RpY2Uu
IFNvIGluc3RlYWQgd2UgY2FuY2VsIGxhdGVyIGlmIHRoZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9s
b2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRl
bnRDaGVja2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MGJhOWNmN2Q2MDU2MjQ0ZjM3ZTZkZDA5NWY0ZGFm
ZGRhYzU2NTExCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50
Q2hlY2tlci5jcHAKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisgKiAz
LiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9y
IHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJNaXhlZENvbnRlbnRDaGVja2VyLmgiCisKKyNpbmNsdWRlICJGcmFtZS5oIgorI2lu
Y2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiU2NoZW1lUmVnaXN0cnkuaCIK
KyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01p
eGVkQ29udGVudENoZWNrZXI6Ok1peGVkQ29udGVudENoZWNrZXIoRnJhbWUqIGZyYW1lKQorICAg
IDogbV9mcmFtZShmcmFtZSkKK3sKK30KKworRnJhbWVMb2FkZXJDbGllbnQqIE1peGVkQ29udGVu
dENoZWNrZXI6OmNsaWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUtPmxvYWRlcigp
LT5jbGllbnQoKTsKK30KKworYm9vbCBNaXhlZENvbnRlbnRDaGVja2VyOjppc01peGVkQ29udGVu
dChTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIGNvbnN0IEtVUkwmIHVybCkKK3sKKyAg
ICBpZiAoc2VjdXJpdHlPcmlnaW4tPnByb3RvY29sKCkgIT0gImh0dHBzIikKKyAgICAgICAgcmV0
dXJuIGZhbHNlOyAvLyBXZSBvbmx5IGNhcmUgYWJvdXQgSFRUUFMgc2VjdXJpdHkgb3JpZ2lucy4K
KyAgICAKKyAgICBpZiAoIXVybC5pc1ZhbGlkKCkgfHwgU2NoZW1lUmVnaXN0cnk6OnNob3VsZFRy
ZWF0VVJMU2NoZW1lQXNTZWN1cmUodXJsLnByb3RvY29sKCkpKQorICAgICAgICByZXR1cm4gZmFs
c2U7IC8vIExvYWRpbmcgdGhlc2UgcHJvdG9jb2xzIGlzIHNlY3VyZS4KKyAgICAKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKworc3RhdGljIGlubGluZSBDU3RyaW5nIGFzVVRGOChjb25zdCBLVVJMJiB1
cmwpCit7CisgICAgcmV0dXJuIHVybC5zdHJpbmcoKS51dGY4KCk7Cit9CisKK3ZvaWQgTWl4ZWRD
b250ZW50Q2hlY2tlcjo6Y2hlY2tJZkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlPcmln
aW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBLVVJMJiB1cmwpIGNvbnN0Cit7CisgICAgaWYgKCFp
c01peGVkQ29udGVudChzZWN1cml0eU9yaWdpbiwgdXJsKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbG9nV2FybmluZyhTdHJpbmc6OmZvcm1hdCgiVGhlIHBhZ2UgYXQgJXMgZGlzcGxheWVkIGlu
c2VjdXJlIGNvbnRlbnQgZnJvbSAlcy5cbiIsCisgICAgICAgIGFzVVRGOChtX2ZyYW1lLT5kb2N1
bWVudCgpLT51cmwoKSkuZGF0YSgpLCBhc1VURjgodXJsKS5kYXRhKCkpKTsKKworICAgIGNsaWVu
dCgpLT5kaWREaXNwbGF5SW5zZWN1cmVDb250ZW50KCk7Cit9CisKK3ZvaWQgTWl4ZWRDb250ZW50
Q2hlY2tlcjo6Y2hlY2tJZlJ1bkluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiogc2VjdXJp
dHlPcmlnaW4sIGNvbnN0IEtVUkwmIHVybCkgY29uc3QKK3sKKyAgICBpZiAoIWlzTWl4ZWRDb250
ZW50KHNlY3VyaXR5T3JpZ2luLCB1cmwpKQorICAgICAgICByZXR1cm47CisKKyAgICBsb2dXYXJu
aW5nKFN0cmluZzo6Zm9ybWF0KCJUaGUgcGFnZSBhdCAlcyByYW4gaW5zZWN1cmUgY29udGVudCBm
cm9tICVzLlxuIiwKKyAgICAgICAgYXNVVEY4KG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpKS5k
YXRhKCksIGFzVVRGOCh1cmwpLmRhdGEoKSkpOworCisgICAgY2xpZW50KCktPmRpZFJ1bkluc2Vj
dXJlQ29udGVudChzZWN1cml0eU9yaWdpbik7Cit9CisKK3ZvaWQgTWl4ZWRDb250ZW50Q2hlY2tl
cjo6bG9nV2FybmluZyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0Cit7CisgICAgQ29uc29s
ZSogY29uc29sZSA9IG1fZnJhbWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCk7CisgICAgLy8gRklY
TUU6IFdoeSBkb2VzIHRoaXMgbWVzc2FnZSBub3QgaGF2ZSBhIHNvdXJjZSBVUkwgb3IgYSBsaW5l
IG51bWJlcj8KKyAgICBjb25zb2xlLT5hZGRNZXNzYWdlKEhUTUxNZXNzYWdlU291cmNlLCBMb2dN
ZXNzYWdlVHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwgU3RyaW5nKCkpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9N
aXhlZENvbnRlbnRDaGVja2VyLmggYi9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2Vy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTY5MjgzYjMzMDBhOGY1YzQxNzZlMTZhM2VlOTZjOGU5MmZmMjIxYgot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuaApA
QCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBNaXhlZENvbnRlbnRDaGVja2VyX2gKKyNkZWZpbmUgTWl4
ZWRDb250ZW50Q2hlY2tlcl9oCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZy
YW1lOworY2xhc3MgRnJhbWVMb2FkZXJDbGllbnQ7CitjbGFzcyBLVVJMOworY2xhc3MgU2VjdXJp
dHlPcmlnaW47CisKK2NsYXNzIE1peGVkQ29udGVudENoZWNrZXIgOiBwdWJsaWMgTm9uY29weWFi
bGUgeworcHVibGljOgorICAgIE1peGVkQ29udGVudENoZWNrZXIoRnJhbWUqKTsKKworICAgIHZv
aWQgY2hlY2tJZkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBL
VVJMJikgY29uc3Q7CisgICAgdm9pZCBjaGVja0lmUnVuSW5zZWN1cmVDb250ZW50KFNlY3VyaXR5
T3JpZ2luKiwgY29uc3QgS1VSTCYpIGNvbnN0OworCitwcml2YXRlOgorICAgIC8vIEZJWE1FOiBU
aGlzIHNob3VsZCBwcm9iYWJseSBoYXZlIGEgc2VwYXJhdGUgY2xpZW50IGZyb20gRnJhbWVMb2Fk
ZXIuCisgICAgRnJhbWVMb2FkZXJDbGllbnQqIGNsaWVudCgpIGNvbnN0OworCisgICAgc3RhdGlj
IGJvb2wgaXNNaXhlZENvbnRlbnQoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBLVVJMJik7CisgICAg
dm9pZCBsb2dXYXJuaW5nKGNvbnN0IFN0cmluZyYpIGNvbnN0OworCisgICAgRnJhbWUqIG1fZnJh
bWU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBNaXhlZENvbnRl
bnRDaGVja2VyX2gKKwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIu
Y3BwIGIvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCmluZGV4IGUyNDdlNWJjYzQx
YTNjNTMwNjRhNjZiZGY5NGY2ZmI1OGJhZDZiMGYuLjIwOTQ2NWEwMWFiYjI2Y2Q0YjZiMjZiYTE4
MTQ1ZGNjYjA4YjkyNDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVy
LmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKQEAgLTM1MSw3ICsz
NTEsNyBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpsb2FkUGx1Z2luKEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQqIHBsdWdpbkVsZW1lbnQsIGNvbnN0IEtVUgogICAgIH0KIAogICAgIEZyYW1lTG9hZGVy
KiBmcmFtZUxvYWRlciA9IG1fZnJhbWUtPmxvYWRlcigpOwotICAgIGZyYW1lTG9hZGVyLT5jaGVj
a0lmUnVuSW5zZWN1cmVDb250ZW50KGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHVybCk7
CisgICAgZnJhbWVMb2FkZXItPm1peGVkQ29udGVudENoZWNrZXIoKS0+Y2hlY2tJZlJ1bkluc2Vj
dXJlQ29udGVudChkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmwpOwogCiAgICAgSW50
U2l6ZSBjb250ZW50U2l6ZShyZW5kZXJlci0+Y29udGVudFdpZHRoKCksIHJlbmRlcmVyLT5jb250
ZW50SGVpZ2h0KCkpOwogICAgIGJvb2wgbG9hZE1hbnVhbGx5ID0gZG9jdW1lbnQoKS0+aXNQbHVn
aW5Eb2N1bWVudCgpICYmICFtX2NvbnRhaW5zUGx1Z2luczsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168596</attachid>
            <date>2012-10-14 15:46:55 -0700</date>
            <delta_ts>2012-10-17 02:47:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45638-20121015004546.patch</filename>
            <type>text/plain</type>
            <size>27980</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDdjM2MxNzY5ZGE4NmU4
N2NjN2YzMmNkYjJkYTIwYjc4ZTMzNDE0NC4uMzYwZmVhZjg0ODA0YmMzMDE1ZGNiOThjMTdhM2Qy
NTQ3MWUwOTA4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEyLTEwLTE0ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBtaXhlZCBjb250ZW50
IGxvZ2ljIG91dCBvZiBGcmFtZUxvYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDU2MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBtb3ZlcyBjaGVja3MgZm9yIG1peGVkIGNvbnRl
bnQgb3V0IG9mIEZyYW1lTG9hZGVyLCBhbmQgaW50bworICAgICAgICBhIG5ldyBNaXhlZENvbnRl
bnRDaGVja2VyIG9iamVjdC4gSXQncyBhIHByZXR0eSBzdHJhaWdodGZvcndhcmQKKyAgICAgICAg
cmVmYWN0b3Jpbmcgd2l0aCBubyBjaGFuZ2UgdG8gdGhlIG92ZXJhbGwgbG9naWMsIGFuZCBvbmx5
IG1pbm9yIGNoYW5nZXMKKyAgICAgICAgdG8gdGhlIGNvZGUgdG8gcmVkdWNlIHJlcGV0aXRpb24u
CisKKyAgICAgICAgVGhlIG9ubHkgc3Vic3RhbnRpdmUgY2hhbmdlIGlzIHJlbmFtaW5nIHRoZSBt
ZXRob2RzIGZyb20gJ2NoZWNrSWYqJyB0bworICAgICAgICAnY2FuKicgdG8gcmVmbGVjdCB0aGUg
dmFsdWUgb2YgdGhlIGJvb2xlYW4gdGhleSByZXR1cm4uCisKKyAgICAgICAgVGhlIHZpc2libGUg
ZnVuY3Rpb25hbGl0eSBzaG91bGRuJ3QgY2hhbmdlOyB0aGlzIGNoYW5nZSBzaG91bGQgYmUKKyAg
ICAgICAgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBpbiBodHRwL3Rlc3RzL3NlY3VyaXR5L21p
eGVkQ29udGVudC4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIG1vc3RseSBhIHJldml0YWxpemF0
aW9uIG9mIEVyaWMgU2lkZWwncyBvcmlnaW5hbAorICAgICAgICBwYXRjaDogaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9Njc0MzImYWN0aW9uPXByZXR0eXBhdGNoCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFt
OgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAg
ICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgICAgIEhleSwgbG9vayEgQSBuZXcgZmls
ZSEKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OkZyYW1lTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjptaXhlZENvbnRlbnRDaGVja2VyKToK
KyAgICAgICAgKEZyYW1lTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvTWl4ZWRDb250ZW50Q2hl
Y2tlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpN
aXhlZENvbnRlbnRDaGVja2VyOjpNaXhlZENvbnRlbnRDaGVja2VyKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1peGVkQ29udGVudENoZWNrZXI6OmNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjphc1VU
RjgpOgorICAgICAgICAoV2ViQ29yZTo6TWl4ZWRDb250ZW50Q2hlY2tlcjo6aXNNaXhlZENvbnRl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6TWl4ZWRDb250ZW50Q2hlY2tlcjo6Y2FuRGlzcGxheUlu
c2VjdXJlQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpNaXhlZENvbnRlbnRDaGVja2VyOjpj
YW5SdW5JbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWl4ZWRDb250ZW50Q2hl
Y2tlcjo6bG9nV2FybmluZyk6CisgICAgICAgICogbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE1peGVkQ29udGVudENoZWNr
ZXIpOgorICAgICAgICAgICAgTWlncmF0ZSBmdW5jdGlvbmFsaXR5IGZyb20gRnJhbWVMb2FkZXI6
OmNoZWNrSWYqIHRvCisgICAgICAgICAgICBNaXhlZENvbnRlbnRDaGVja2VyOjpjYW4qLgorICAg
ICAgICAqIGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWFpblJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9T
dWJmcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6cGx1
Z2luSXNMb2FkYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6bG9hZE1l
ZGlhUGxheWVyUHJveHlQbHVnaW4pOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
Y2hlY2tJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAgICAgVXNlIHRoZSBuZXcgbWV0aG9kIGxv
Y2F0aW9ucy4KKwogMjAxMi0xMC0xNCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29t
PgogCiAgICAgICAgIEluc3BlY3RvclBhZ2VBZ2VudCBzaG91bGQgZXhwb3NlIGEgbWV0aG9kIHRv
IGNvbnRyb2wgdGhlIGNvbXBvc2l0aW5nIGRlYnVnIHNldHRpbmdzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCA1MzI0M2NhYTVlZTJjYzFmMGY1ZjhlN2FhODBiZTkyODU0N2U1YzVmLi5k
OGIyYmZkYmY2NDUzMTUxYThlNGQxN2UyODBkMDBkODNmM2MxNjg2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTEwLTE0ICBNaWtlIFdlc3QgIDxta3dz
dEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBtaXhlZCBjb250ZW50IGxvZ2ljIG91dCBv
ZiBGcmFtZUxvYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDU2MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUlt
cGw6OmNoZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAgICAgVXNlIHRoZSBuZXcg
bWV0aG9kIGxvY2F0aW9uLgorCiAyMDEyLTEwLTEyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBSZW1vdmUgdXNlZCBmcmFtZUZvckVudGVyZWRD
b250ZXh0IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBlODYxZDgwNzQ4Y2U1OTU2NGZiMjZj
NjYwYjFlMDk1NzJkZDJmMDhkLi5jYzMzMjlkZDM0YTA4NWJkNGU2NTA1OTY2YjRkMzJkYzljZDQ1
MjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTYzMCw2ICsxNjMwLDcgQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIGxvYWRlci9JbWFnZUxvYWRlci5jcHAKICAgICBsb2FkZXIvTGlua0xv
YWRlci5jcHAKICAgICBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAorICAgIGxvYWRlci9N
aXhlZENvbnRlbnRDaGVja2VyLmNwcAogICAgIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcAog
ICAgIGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAKICAgICBsb2FkZXIvUGlu
Z0xvYWRlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGYwZWI3N2U5M2Zk
Y2QxYzAwOThkOGY2NTRkZWRhZjUwOTJhZDc3NTUuLmYwYmRmZGIwNjNkM2E0ZDZjMDlhMTA0ZjRi
MDIwMDdjY2YyY2VjZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzg5MCw2
ICszODkwLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TGlua0xvYWRlckNsaWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNl
TG9hZGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5o
IFwKKyAgICBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAgXAor
ICAgIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmggXAogCVNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
bG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNj
YXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA4ZmFlYjgwYzRjYTc2
MTRlNDI2NjM3MDQ2YTFiMDkwOTA2YjI0ZTZlLi5hMmQwMmIwZGQ0OTViNTg1NzU3MjhhM2YyYjhh
ZTFkOWRlNzEwMjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTgzMyw2ICs4MzMsNyBAQCBTT1VSQ0VTICs9
IFwKICAgICBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwIFwKICAgICBsb2FkZXIvTGlua0xvYWRlci5j
cHAgXAogICAgIGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwIFwKKyAgICBsb2FkZXIvTWl4
ZWRDb250ZW50Q2hlY2tlci5jcHAgXAogICAgIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcCBc
CiAgICAgbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCBcCiAgICAgbG9hZGVy
L1BpbmdMb2FkZXIuY3BwIFwKQEAgLTE5NTgsNiArMTk1OSw3IEBAIEhFQURFUlMgKz0gXAogICAg
IGxvYWRlci9MaW5rTG9hZGVyLmggXAogICAgIGxvYWRlci9MaW5rTG9hZGVyQ2xpZW50LmggXAog
ICAgIGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaCBcCisgICAgbG9hZGVyL01peGVkQ29udGVu
dENoZWNrZXIuaCBcCiAgICAgbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaCBcCiAgICAgbG9hZGVy
L05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmggXAogICAgIGxvYWRlci9QbGFjZWhvbGRlckRv
Y3VtZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDIxNGFjMjdlODMwOWZjZDZiYTcxYjAyZDYy
NDNmZmViMjg0Y2Q5OTYuLjQ3NTI0MGMwNWJiMzg2ZjNiYTA0MTZlNDIzZjQ0NjRlYTc2NWEwMWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKQEAgLTI5ODUsNiArMjk4NSw4IEBACiAgICAgICAgICAgICAnbG9h
ZGVyL0xpbmtMb2FkZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL01haW5SZXNvdXJj
ZUxvYWRlci5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaCcs
CisgICAgICAgICAgICAnbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwJywKKyAgICAgICAg
ICAgICdsb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5oJywKICAgICAgICAgICAgICdsb2FkZXIv
TmF2aWdhdGlvbkFjdGlvbi5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9OYXZpZ2F0aW9uU2No
ZWR1bGVyLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9h
ZGVyLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CmluZGV4IGIxYzgzMGM3ZGI0YzRkNTJjYTcyNWRhYjg5MWYwNzQ4MjA3NTVkMTAuLjBkM2E3MTY4
NjJmYzFhMTgyYTJmNmRlM2RjMjUwNWRmNTYzNWIzNmEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNzYxNSw2ICsyNzYxNSwxNCBAQAogCQkJ
CT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJcTWl4
ZWRDb250ZW50Q2hlY2tlci5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxNaXhlZENvbnRlbnRDaGVja2VyLmgiCisJCQkJPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxOYXZpZ2F0aW9u
QWN0aW9uLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2RiNjMxYzg5MzgzZGY5NTc5ZWU0
Nzk1YTYxMWU3MzBlMzcxZDhhZS4uYTM3MTkwNDk4NjA4MGMxODQ3YTAyZjJlZWIyZjZkYTEzY2Zk
ODUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTYzNCw2ICsxNjM0LDggQEAKIAkJNTJDQ0E5RTgxNUUzRjY0QzAwNTNDNzdG
IC8qIERPTURPTU5hbWVkRmxvd0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQ0NBOUU1MTVFM0Y2NEMwMDUzQzc3RiAvKiBET01ET01O
YW1lZEZsb3dDb2xsZWN0aW9uLmggKi87IH07CiAJCTUyQ0NBOUU5MTVFM0Y2NEMwMDUzQzc3RiAv
KiBET01ET01OYW1lZEZsb3dDb2xsZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTJDQ0E5RTYxNUUzRjY0QzAwNTNDNzdGIC8qIERPTURPTU5h
bWVkRmxvd0NvbGxlY3Rpb24ubW0gKi87IH07CiAJCTUyQ0NBOUVBMTVFM0Y2NEMwMDUzQzc3RiAv
KiBET01ET01OYW1lZEZsb3dDb2xsZWN0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQ0NBOUU3MTVFM0Y2NEMwMDUzQzc3RiAvKiBE
T01ET01OYW1lZEZsb3dDb2xsZWN0aW9uSW50ZXJuYWwuaCAqLzsgfTsKKwkJNTJGMTA4NjUxNjJC
NkRBNDAwOUFDODFFIC8qIE1peGVkQ29udGVudENoZWNrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJGMTA4NjIxNjJCNkQ4MjAwOUFDODFFIC8q
IE1peGVkQ29udGVudENoZWNrZXIuY3BwICovOyB9OworCQk1MkYxMDg2NjE2MkI2REE4MDA5QUM4
MUUgLyogTWl4ZWRDb250ZW50Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTJGMTA4NjMxNjJCNkQ4MjAwOUFDODFFIC8qIE1peGVkQ29udGVu
dENoZWNrZXIuaCAqLzsgfTsKIAkJNTJGNTJFMTExNEEwMTM0RjAwQUNDMzk3IC8qIE5TU2Nyb2xs
ZXJJbXBEZXRhaWxzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTJGNTJFMTAxNEEwMTM0RjAwQUNDMzk3IC8qIE5TU2Nyb2xsZXJJbXBEZXRhaWxzLm1t
ICovOyB9OwogCQk1MzE3NjEyMjEzQzUxNjY5MDAyNkU0NTQgLyogU3R5bGVGbGV4aWJsZUJveERh
dGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTMx
NzYxMjAxM0M1MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxleGlibGVCb3hEYXRhLmNwcCAqLzsgfTsK
IAkJNTMxNzYxMjMxM0M1MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxleGlibGVCb3hEYXRhLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzE3NjEyMTEzQzUx
NjY5MDAyNkU0NTQgLyogU3R5bGVGbGV4aWJsZUJveERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODgzMiw2ICs4ODM0LDggQEAKIAkJNTJD
Q0E5RTUxNUUzRjY0QzAwNTNDNzdGIC8qIERPTURPTU5hbWVkRmxvd0NvbGxlY3Rpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkNDQTlFNjE1RTNGNjRDMDA1M0M3N0Yg
LyogRE9NRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IERPTURPTU5hbWVkRmxvd0NvbGxlY3Rpb24ubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUyQ0NBOUU3MTVFM0Y2NEMwMDUzQzc3RiAvKiBET01ET01OYW1l
ZEZsb3dDb2xsZWN0aW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRE9NRE9NTmFtZWRGbG93Q29sbGVjdGlvbkludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTUyRjEwODYyMTYyQjZEODIwMDlBQzgxRSAvKiBNaXhlZENvbnRlbnRDaGVj
a2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1peGVkQ29udGVu
dENoZWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MkYxMDg2MzE2MkI2
RDgyMDA5QUM4MUUgLyogTWl4ZWRDb250ZW50Q2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNaXhlZENvbnRlbnRDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUyRjUyRTEwMTRBMDEzNEYwMEFDQzM5NyAvKiBOU1Njcm9sbGVySW1wRGV0YWls
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5TU2Nyb2xsZXJJ
bXBEZXRhaWxzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzE3NjEyMDEzQzUx
NjY5MDAyNkU0NTQgLyogU3R5bGVGbGV4aWJsZUJveERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gU3R5bGVGbGV4aWJsZUJveERhdGEuY3BwOyBwYXRoID0gc3R5
bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MzE3NjEyMTEzQzUxNjY5MDAyNkU0NTQgLyogU3R5bGVGbGV4aWJsZUJveERhdGEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3R5bGVGbGV4aWJsZUJveERhdGEuaDsgcGF0
aCA9IHN0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMDY2Niw2ICsyMDY3MCw4IEBACiAJCQkJOTg0MjY0RUYxMkQ1MjgwQTAwMEQ4OEE0
IC8qIExpbmtMb2FkZXJDbGllbnQuaCAqLywKIAkJCQk5M0UyMjdEQzBBRjU4OUFEMDBENDgzMjQg
LyogTWFpblJlc291cmNlTG9hZGVyLmNwcCAqLywKIAkJCQk2NTZEMzcyOTBBREJBNURFMDBBNDU1
NEQgLyogTWFpblJlc291cmNlTG9hZGVyLmggKi8sCisJCQkJNTJGMTA4NjIxNjJCNkQ4MjAwOUFD
ODFFIC8qIE1peGVkQ29udGVudENoZWNrZXIuY3BwICovLAorCQkJCTUyRjEwODYzMTYyQjZEODIw
MDlBQzgxRSAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmggKi8sCiAJCQkJOTNDQ0YwNUYwQUY2Q0E3
NjAwMDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uY3BwICovLAogCQkJCTkzQ0NGMDI2MEFGNkM1
MjkwMDAxOEU4OSAvKiBOYXZpZ2F0aW9uQWN0aW9uLmggKi8sCiAJCQkJOTc5RjQzRDExMDc1RTQ0
QTAwMDBGODNCIC8qIE5hdmlnYXRpb25TY2hlZHVsZXIuY3BwICovLApAQCAtMjQ0OTUsNiArMjQ1
MDEsNyBAQAogCQkJCTlCMzc1RURCMTQ0NzhBMDEwMEYzQ0FFNSAvKiBNaWNyb0RhdGFJdGVtTGlz
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdERENEOTUxMzg0NEZENTAwMDhCNzkzIC8qIE1JTUVI
ZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNzcyQzRGMEM0RUIzMDQwMDgzMjg1RiAvKiBN
SU1FVHlwZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MkYxMDg2NjE2MkI2REE4MDA5
QUM4MUUgLyogTWl4ZWRDb250ZW50Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjUwODI0
NkYxNTQ4RDk2MjAwQTExOUFCIC8qIE1vY2tQYWdlUG9wdXBEcml2ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUM2RDc0QUQ1MDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2
ZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREM2MTI1MUYxMkQwMDNFRjI2OSAvKiBNb250
aElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzgxMyw2ICsyNzgyMCw3IEBACiAJCQkJ
MzdERENEOTQxMzg0NEZENTAwMDhCNzkzIC8qIE1JTUVIZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkM3NzJDNEUwQzRFQjMwNDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM3NzJDNUUwQzRFQjM0NDAwODMyODVGIC8qIE1JTUVUeXBlUmVn
aXN0cnlNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MkYxMDg2NTE2MkI2REE0MDA5QUM4MUUg
LyogTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTA4MjQ2RTE1
NDhEOTYyMDBBMTE5QUIgLyogTW9ja1BhZ2VQb3B1cERyaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlDNkQ3NEFFNDA5QUEyOTBBMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVs
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREM1MTI1MUYxMkQwMDNFRjI2OSAvKiBNb250
aElucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCmluZGV4IDI1MjkxNTgxMDEzZmIzY2JiMzg4NTU4YWMwNDYyOGFmZjgzNDQ2ZmEuLmU5
ODEyNTM0ZWE0MGRhZTcxN2RlYjc4MmUzYWY1M2Q5YzBiN2EyYjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMjEyLDYgKzIxMiw3IEBAIEZyYW1lTG9hZGVyOjpGcmFt
ZUxvYWRlcihGcmFtZSogZnJhbWUsIEZyYW1lTG9hZGVyQ2xpZW50KiBjbGllbnQpCiAgICAgLCBt
X25vdGlmZXIoZnJhbWUpCiAgICAgLCBtX3N1YmZyYW1lTG9hZGVyKGZyYW1lKQogICAgICwgbV9p
Y29uKGZyYW1lKQorICAgICwgbV9taXhlZENvbnRlbnRDaGVja2VyKGZyYW1lKQogICAgICwgbV9z
dGF0ZShGcmFtZVN0YXRlQ29tbWl0dGVkUGFnZSkKICAgICAsIG1fbG9hZFR5cGUoRnJhbWVMb2Fk
VHlwZVN0YW5kYXJkKQogICAgICwgbV9kZWxlZ2F0ZUlzSGFuZGxpbmdQcm92aXNpb25hbExvYWRF
cnJvcihmYWxzZSkKQEAgLTkxNCw1MSArOTE1LDYgQEAgU3RyaW5nIEZyYW1lTG9hZGVyOjpvdXRn
b2luZ09yaWdpbigpIGNvbnN0CiAgICAgcmV0dXJuIG1fZnJhbWUtPmRvY3VtZW50KCktPnNlY3Vy
aXR5T3JpZ2luKCktPnRvU3RyaW5nKCk7CiB9CiAKLWJvb2wgRnJhbWVMb2FkZXI6OmlzTWl4ZWRD
b250ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJMJiB1cmwpCi17Ci0gICAg
aWYgKGNvbnRleHQtPnByb3RvY29sKCkgIT0gImh0dHBzIikKLSAgICAgICAgcmV0dXJuIGZhbHNl
OyAgLy8gV2Ugb25seSBjYXJlIGFib3V0IEhUVFBTIHNlY3VyaXR5IG9yaWdpbnMuCi0KLSAgICAv
LyBXZSdyZSBpbiBhIHNlY3VyZSBjb250ZXh0LCBzbyB8dXJsfCBpcyBtaXhlZCBjb250ZW50IGlm
IGl0J3MgaW5zZWN1cmUuCi0gICAgcmV0dXJuICFTZWN1cml0eU9yaWdpbjo6aXNTZWN1cmUodXJs
KTsKLX0KLQotYm9vbCBGcmFtZUxvYWRlcjo6Y2hlY2tJZkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQo
U2VjdXJpdHlPcmlnaW4qIGNvbnRleHQsIGNvbnN0IEtVUkwmIHVybCkKLXsKLSAgICBpZiAoIWlz
TWl4ZWRDb250ZW50KGNvbnRleHQsIHVybCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAg
U2V0dGluZ3MqIHNldHRpbmdzID0gbV9mcmFtZS0+c2V0dGluZ3MoKTsKLSAgICBib29sIGFsbG93
ZWQgPSBtX2NsaWVudC0+YWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KHNldHRpbmdzICYm
IHNldHRpbmdzLT5hbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCgpLCBjb250ZXh0LCB1cmwp
OwotICAgIFN0cmluZyBtZXNzYWdlID0gKGFsbG93ZWQgPyBlbXB0eVN0cmluZygpIDogIltibG9j
a2VkXSAiKSArICJUaGUgcGFnZSBhdCAiICsKLSAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
dXJsKCkuc3RyaW5nKCkgKyAiIGRpc3BsYXllZCBpbnNlY3VyZSBjb250ZW50IGZyb20gIiArIHVy
bC5zdHJpbmcoKSArICIuXG4iOwotICAgICAgICAKLSAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5k
b21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEhUTUxNZXNzYWdlU291cmNlLCBMb2dN
ZXNzYWdlVHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7Ci0KLSAgICBpZiAoYWxs
b3dlZCkKLSAgICAgICAgbV9jbGllbnQtPmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKTsKLQot
ICAgIHJldHVybiBhbGxvd2VkOwotfQotCi1ib29sIEZyYW1lTG9hZGVyOjpjaGVja0lmUnVuSW5z
ZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJMJiB1cmwpCi17
Ci0gICAgaWYgKCFpc01peGVkQ29udGVudChjb250ZXh0LCB1cmwpKQotICAgICAgICByZXR1cm4g
dHJ1ZTsKLQotICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fZnJhbWUtPnNldHRpbmdzKCk7Ci0g
ICAgYm9vbCBhbGxvd2VkID0gbV9jbGllbnQtPmFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudChz
ZXR0aW5ncyAmJiBzZXR0aW5ncy0+YWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQoKSwgY29u
dGV4dCwgdXJsKTsKLSAgICBTdHJpbmcgbWVzc2FnZSA9IChhbGxvd2VkID8gZW1wdHlTdHJpbmco
KSA6ICJbYmxvY2tlZF0gIikgKyAiVGhlIHBhZ2UgYXQgIiArCi0gICAgICAgIG1fZnJhbWUtPmRv
Y3VtZW50KCktPnVybCgpLnN0cmluZygpICsgIiByYW4gaW5zZWN1cmUgY29udGVudCBmcm9tICIg
KyB1cmwuc3RyaW5nKCkgKyAiLlxuIjsKLSAgICAgICAKLSAgICBtX2ZyYW1lLT5kb2N1bWVudCgp
LT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEhUTUxNZXNzYWdlU291cmNlLCBM
b2dNZXNzYWdlVHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7Ci0KLSAgICBpZiAo
YWxsb3dlZCkKLSAgICAgICAgbV9jbGllbnQtPmRpZFJ1bkluc2VjdXJlQ29udGVudChjb250ZXh0
LCB1cmwpOwotCi0gICAgcmV0dXJuIGFsbG93ZWQ7Ci19Ci0KIGJvb2wgRnJhbWVMb2FkZXI6OmNo
ZWNrSWZGb3JtQWN0aW9uQWxsb3dlZEJ5Q1NQKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKIHsKICAg
ICBpZiAobV9zdWJtaXR0ZWRGb3JtVVJMLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmgKaW5kZXggNGYxNDBhMTg0MDg3Yzk1ODg2MDZmZjI0Y2E4YTg4OTRkNjYzY2E4Yy4u
ZTc4ZWU0ZTllMTQwM2M5MGNkZTgxMWY0MWQ2YjhlMGY5MWQ4MjAzNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJJY29uQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIkljb25VUkwuaCIKICNpbmNsdWRlICJMYXlvdXRNaWxlc3RvbmVz
LmgiCisjaW5jbHVkZSAiTWl4ZWRDb250ZW50Q2hlY2tlci5oIgogI2luY2x1ZGUgIlBvbGljeUNo
ZWNrZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNl
TG9hZE5vdGlmaWVyLmgiCkBAIC05Myw2ICs5NCw3IEBAIHB1YmxpYzoKICAgICBSZXNvdXJjZUxv
YWROb3RpZmllciogbm90aWZpZXIoKSBjb25zdCB7IHJldHVybiAmbV9ub3RpZmVyOyB9CiAgICAg
U3ViZnJhbWVMb2FkZXIqIHN1YmZyYW1lTG9hZGVyKCkgY29uc3QgeyByZXR1cm4gJm1fc3ViZnJh
bWVMb2FkZXI7IH0KICAgICBJY29uQ29udHJvbGxlciogaWNvbigpIGNvbnN0IHsgcmV0dXJuICZt
X2ljb247IH0KKyAgICBNaXhlZENvbnRlbnRDaGVja2VyKiBtaXhlZENvbnRlbnRDaGVja2VyKCkg
Y29uc3QgeyByZXR1cm4gJm1fbWl4ZWRDb250ZW50Q2hlY2tlcjsgfQogCiAgICAgdm9pZCBwcmVw
YXJlRm9ySGlzdG9yeU5hdmlnYXRpb24oKTsKICAgICB2b2lkIHNldHVwRm9yUmVwbGFjZSgpOwpA
QCAtMjEzLDExICsyMTUsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBmb3JjZVNhbmRib3hGbGFncyhT
YW5kYm94RmxhZ3MgZmxhZ3MpIHsgbV9mb3JjZWRTYW5kYm94RmxhZ3MgfD0gZmxhZ3M7IH0KICAg
ICBTYW5kYm94RmxhZ3MgZWZmZWN0aXZlU2FuZGJveEZsYWdzKCkgY29uc3Q7CiAKLSAgICAvLyBN
aXhlZCBjb250ZW50IHJlbGF0ZWQgZnVuY3Rpb25zLgotICAgIHN0YXRpYyBib29sIGlzTWl4ZWRD
b250ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJMJik7Ci0gICAgYm9vbCBj
aGVja0lmRGlzcGxheUluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiogY29udGV4dCwgY29u
c3QgS1VSTCYpOwotICAgIGJvb2wgY2hlY2tJZlJ1bkluc2VjdXJlQ29udGVudChTZWN1cml0eU9y
aWdpbiogY29udGV4dCwgY29uc3QgS1VSTCYpOwotCiAgICAgYm9vbCBjaGVja0lmRm9ybUFjdGlv
bkFsbG93ZWRCeUNTUChjb25zdCBLVVJMJikgY29uc3Q7CiAKICAgICBGcmFtZSogb3BlbmVyKCk7
CkBAIC0zNzQsMTIgKzM3MSwxNiBAQCBwcml2YXRlOgogICAgIEZyYW1lKiBtX2ZyYW1lOwogICAg
IEZyYW1lTG9hZGVyQ2xpZW50KiBtX2NsaWVudDsKIAorICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91
bGQgYmUgT3duUHRyPFQ+IHRvIHJlZHVjZSBidWlsZCB0aW1lcyBhbmQgc2ltcGxpZnkKKyAgICAv
LyBoZWFkZXIgZGVwZW5kZW5jaWVzIHVubGVzcyBwZXJmb3JtYW5jZSB0ZXN0aW5nIHByb3ZlcyBv
dGhlcndpc2UuCisgICAgLy8gU29tZSBvZiB0aGVzZSBjb3VsZCBiZSBsYXppbHkgY3JlYXRlZCBm
b3IgbWVtb3J5IHNhdmluZ3Mgb24gZGV2aWNlcy4KICAgICBtdXRhYmxlIFBvbGljeUNoZWNrZXIg
bV9wb2xpY3lDaGVja2VyOwogICAgIG11dGFibGUgSGlzdG9yeUNvbnRyb2xsZXIgbV9oaXN0b3J5
OwogICAgIG11dGFibGUgUmVzb3VyY2VMb2FkTm90aWZpZXIgbV9ub3RpZmVyOwogICAgIG11dGFi
bGUgU3ViZnJhbWVMb2FkZXIgbV9zdWJmcmFtZUxvYWRlcjsKICAgICBtdXRhYmxlIEZyYW1lTG9h
ZGVyU3RhdGVNYWNoaW5lIG1fc3RhdGVNYWNoaW5lOwogICAgIG11dGFibGUgSWNvbkNvbnRyb2xs
ZXIgbV9pY29uOworICAgIG11dGFibGUgTWl4ZWRDb250ZW50Q2hlY2tlciBtX21peGVkQ29udGVu
dENoZWNrZXI7CiAKICAgICBjbGFzcyBGcmFtZVByb2dyZXNzVHJhY2tlcjsKICAgICBPd25QdHI8
RnJhbWVQcm9ncmVzc1RyYWNrZXI+IG1fcHJvZ3Jlc3NUcmFja2VyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAppbmRleCAxZjliYjQ2NTI1MzI1NTI3ODE5
YmFmMDJhZDFmNmVhZjA0NzBiNmZiLi40ODVhYWEyYzFiYjk0Zjk0NGU5ZmY0NDFhYTdlOWRlNjZj
YzllN2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNw
cApAQCAtMjM2LDcgKzIzNiw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBjb25zdCBSZXNvCiAKICAgICBGcmFt
ZSogdG9wID0gbV9mcmFtZS0+dHJlZSgpLT50b3AoKTsKICAgICBpZiAodG9wICE9IG1fZnJhbWUp
IHsKLSAgICAgICAgaWYgKCFmcmFtZUxvYWRlcigpLT5jaGVja0lmRGlzcGxheUluc2VjdXJlQ29u
dGVudCh0b3AtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIG5ld1JlcXVlc3QudXJsKCkp
KSB7CisgICAgICAgIGlmICghZnJhbWVMb2FkZXIoKS0+bWl4ZWRDb250ZW50Q2hlY2tlcigpLT5j
YW5EaXNwbGF5SW5zZWN1cmVDb250ZW50KHRvcC0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4o
KSwgbmV3UmVxdWVzdC51cmwoKSkpIHsKICAgICAgICAgICAgIGNhbmNlbCgpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TWl4ZWRDb250ZW50Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250
ZW50Q2hlY2tlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzFmZDJiMzZlYWJiMzkxYTY0ODMyZDk1NDFjNTJm
OTU5NTRiMTQ2OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhl
ZENvbnRlbnRDaGVja2VyLmNwcApAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4gCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4gCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJNaXhlZENvbnRlbnRDaGVja2VyLmgiCisKKyNpbmNsdWRlICJDb25z
b2xlLmgiCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVk
ZSAiU2NoZW1lUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1
ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01peGVkQ29u
dGVudENoZWNrZXI6Ok1peGVkQ29udGVudENoZWNrZXIoRnJhbWUqIGZyYW1lKQorICAgIDogbV9m
cmFtZShmcmFtZSkKK3sKK30KKworRnJhbWVMb2FkZXJDbGllbnQqIE1peGVkQ29udGVudENoZWNr
ZXI6OmNsaWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUtPmxvYWRlcigpLT5jbGll
bnQoKTsKK30KKworc3RhdGljIGlubGluZSBDU3RyaW5nIGFzVVRGOChjb25zdCBLVVJMJiB1cmwp
Cit7CisgICAgcmV0dXJuIHVybC5zdHJpbmcoKS51dGY4KCk7Cit9CisKK2Jvb2wgTWl4ZWRDb250
ZW50Q2hlY2tlcjo6aXNNaXhlZENvbnRlbnQoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2lu
LCBjb25zdCBLVVJMJiB1cmwpCit7CisgICAgaWYgKHNlY3VyaXR5T3JpZ2luLT5wcm90b2NvbCgp
ICE9ICJodHRwcyIpCisgICAgICAgIHJldHVybiBmYWxzZTsgLy8gV2Ugb25seSBjYXJlIGFib3V0
IEhUVFBTIHNlY3VyaXR5IG9yaWdpbnMuCisKKyAgICAvLyBXZSdyZSBpbiBhIHNlY3VyZSBjb250
ZXh0LCBzbyB8dXJsfCBpcyBtaXhlZCBjb250ZW50IGlmIGl0J3MgaW5zZWN1cmUuCisgICAgcmV0
dXJuICFTZWN1cml0eU9yaWdpbjo6aXNTZWN1cmUodXJsKTsKK30KKworYm9vbCBNaXhlZENvbnRl
bnRDaGVja2VyOjpjYW5EaXNwbGF5SW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBzZWN1
cml0eU9yaWdpbiwgY29uc3QgS1VSTCYgdXJsKSBjb25zdAoreworICAgIGlmICghaXNNaXhlZENv
bnRlbnQoc2VjdXJpdHlPcmlnaW4sIHVybCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAg
U2V0dGluZ3MqIHNldHRpbmdzID0gbV9mcmFtZS0+c2V0dGluZ3MoKTsKKyAgICBib29sIGFsbG93
ZWQgPSBjbGllbnQoKS0+YWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KHNldHRpbmdzICYm
IHNldHRpbmdzLT5hbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCgpLCBzZWN1cml0eU9yaWdp
biwgdXJsKTsKKyAgICBsb2dXYXJuaW5nKGFsbG93ZWQsICJkaXNwbGF5ZWQiLCB1cmwpOworCisg
ICAgaWYgKGFsbG93ZWQpCisgICAgICAgIGNsaWVudCgpLT5kaWREaXNwbGF5SW5zZWN1cmVDb250
ZW50KCk7CisKKyAgICByZXR1cm4gYWxsb3dlZDsKK30KKworYm9vbCBNaXhlZENvbnRlbnRDaGVj
a2VyOjpjYW5SdW5JbnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2lu
LCBjb25zdCBLVVJMJiB1cmwpIGNvbnN0Cit7CisgICAgaWYgKCFpc01peGVkQ29udGVudChzZWN1
cml0eU9yaWdpbiwgdXJsKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBTZXR0aW5ncyog
c2V0dGluZ3MgPSBtX2ZyYW1lLT5zZXR0aW5ncygpOworICAgIGJvb2wgYWxsb3dlZCA9IGNsaWVu
dCgpLT5hbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoc2V0dGluZ3MgJiYgc2V0dGluZ3MtPmFs
bG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KCksIHNlY3VyaXR5T3JpZ2luLCB1cmwpOworICAg
IGxvZ1dhcm5pbmcoYWxsb3dlZCwgInJhbiIsIHVybCk7CisKKyAgICBpZiAoYWxsb3dlZCkKKyAg
ICAgICAgY2xpZW50KCktPmRpZFJ1bkluc2VjdXJlQ29udGVudChzZWN1cml0eU9yaWdpbiwgdXJs
KTsKKworICAgIHJldHVybiBhbGxvd2VkOworfQorCit2b2lkIE1peGVkQ29udGVudENoZWNrZXI6
OmxvZ1dhcm5pbmcoYm9vbCBhbGxvd2VkLCBjb25zdCBTdHJpbmcmIGFjdGlvbiwgY29uc3QgS1VS
TCYgdGFyZ2V0KSBjb25zdAoreworICAgIENvbnNvbGUqIGNvbnNvbGUgPSBtX2ZyYW1lLT5kb2N1
bWVudCgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpOworICAgIC8vIEZJWE1FOiBXaHkgZG9lcyB0
aGlzIG1lc3NhZ2Ugbm90IGhhdmUgYSBzb3VyY2UgVVJMIG9yIGEgbGluZSBudW1iZXI/IHdlYmtp
dC5vcmcvYi85Nzk3OQorICAgIFN0cmluZyBtZXNzYWdlID0gU3RyaW5nOjpmb3JtYXQoIiVzVGhl
IHBhZ2UgYXQgJXMgJXMgaW5zZWN1cmUgY29udGVudCBmcm9tICVzLlxuIiwKKyAgICAgICAgKGFs
bG93ZWQgPyAiIiA6ICJbYmxvY2tlZF0gIiksIGFzVVRGOChtX2ZyYW1lLT5kb2N1bWVudCgpLT51
cmwoKSkuZGF0YSgpLCBhY3Rpb24udXRmOCgpLmRhdGEoKSwgYXNVVEY4KHRhcmdldCkuZGF0YSgp
KTsKKyAgICBjb25zb2xlLT5hZGRNZXNzYWdlKEhUTUxNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdl
VHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRD
aGVja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmVlN2RhZjYxOTUxNzA1ZmQ3Y2I2N2NiZGRhZmY5M2M1ZDE4YzI1YjYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5o
CkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1peGVkQ29udGVudENoZWNrZXJfaAorI2RlZmluZSBN
aXhlZENvbnRlbnRDaGVja2VyX2gKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lOworY2xhc3MgRnJhbWVMb2FkZXJD
bGllbnQ7CitjbGFzcyBLVVJMOworY2xhc3MgU2VjdXJpdHlPcmlnaW47CisKK2NsYXNzIE1peGVk
Q29udGVudENoZWNrZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1peGVkQ29udGVudENo
ZWNrZXIpOworcHVibGljOgorICAgIE1peGVkQ29udGVudENoZWNrZXIoRnJhbWUqKTsKKworICAg
IGJvb2wgY2FuRGlzcGxheUluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtV
UkwmKSBjb25zdDsKKyAgICBib29sIGNhblJ1bkluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdp
biosIGNvbnN0IEtVUkwmKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICAvLyBGSVhNRTogVGhpcyBz
aG91bGQgcHJvYmFibHkgaGF2ZSBhIHNlcGFyYXRlIGNsaWVudCBmcm9tIEZyYW1lTG9hZGVyLgor
ICAgIEZyYW1lTG9hZGVyQ2xpZW50KiBjbGllbnQoKSBjb25zdDsKKworICAgIHN0YXRpYyBib29s
IGlzTWl4ZWRDb250ZW50KFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYpOworICAgIHZvaWQg
bG9nV2FybmluZyhib29sIGFsbG93ZWQsIGNvbnN0IFN0cmluZyYgYWN0aW9uLCBjb25zdCBLVVJM
JikgY29uc3Q7CisKKyAgICBGcmFtZSogbV9mcmFtZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIE1peGVkQ29udGVudENoZWNrZXJfaAorCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAppbmRleCBjM2IzOGE4N2M4NDg3YzQwYTBjM2MzZWM5
OWU1NjljZjZlZDFmODZjLi5hYjQ2MWY2ZDZlNTk3ZWViMTMxYmMxOGNhOGY2NGQ2ZDFlMzVkZTgx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKQEAgLTEzNiw3ICsx
MzYsNyBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpwbHVnaW5Jc0xvYWRhYmxlKEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQqIHBsdWdpbkVsZW1lbnQsIGNvbgogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1fZnJhbWUtPmxvYWRlcigpICYmICFtX2ZyYW1l
LT5sb2FkZXIoKS0+Y2hlY2tJZlJ1bkluc2VjdXJlQ29udGVudChkb2N1bWVudCgpLT5zZWN1cml0
eU9yaWdpbigpLCB1cmwpKQorICAgICAgICBpZiAobV9mcmFtZS0+bG9hZGVyKCkgJiYgIW1fZnJh
bWUtPmxvYWRlcigpLT5taXhlZENvbnRlbnRDaGVja2VyKCktPmNhblJ1bkluc2VjdXJlQ29udGVu
dChkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmwpKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIApAQCAtMjY1LDcgKzI2NSw3IEBAIFBhc3NSZWZQdHI8V2lkZ2V0PiBT
dWJmcmFtZUxvYWRlcjo6bG9hZE1lZGlhUGxheWVyUHJveHlQbHVnaW4oTm9kZSogbm9kZSwgY29u
c3QKICAgICBlbHNlIGlmIChtZWRpYUVsZW1lbnQtPmlzVmlkZW8oKSkKICAgICAgICAgc2l6ZSA9
IFJlbmRlclZpZGVvOjpkZWZhdWx0U2l6ZSgpOwogCi0gICAgaWYgKCFtX2ZyYW1lLT5sb2FkZXIo
KS0+Y2hlY2tJZlJ1bkluc2VjdXJlQ29udGVudChtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0
eU9yaWdpbigpLCBjb21wbGV0ZWRVUkwpKQorICAgIGlmICghbV9mcmFtZS0+bG9hZGVyKCktPm1p
eGVkQ29udGVudENoZWNrZXIoKS0+Y2FuUnVuSW5zZWN1cmVDb250ZW50KG1fZnJhbWUtPmRvY3Vt
ZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGNvbXBsZXRlZFVSTCkpCiAgICAgICAgIHJldHVybiAw
OwogCiAgICAgUmVmUHRyPFdpZGdldD4gd2lkZ2V0ID0gbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVu
dCgpLT5jcmVhdGVNZWRpYVBsYXllclByb3h5UGx1Z2luKHNpemUsIG1lZGlhRWxlbWVudCwgY29t
cGxldGVkVVJMLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYzZjZTQwNmI2M2E2NzA1NzRjYzVjZGQ4NmU4MDk2NGVm
OWNlNjU3Ny4uN2M0MjBjMDY2OGY4ODNhYzY4OWIyZjBlZTU3MDJmZDgwODA4Nzc5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
Y3BwCkBAIC0yNjEsNyArMjYxLDcgQEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tJ
bnNlY3VyZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QKICAgICAgICAg
Ly8gVGhlc2UgcmVzb3VyY2UgY2FuIGluamVjdCBzY3JpcHQgaW50byB0aGUgY3VycmVudCBkb2N1
bWVudCAoU2NyaXB0LAogICAgICAgICAvLyBYU0wpIG9yIGV4ZmlsdHJhdGUgdGhlIGNvbnRlbnQg
b2YgdGhlIGN1cnJlbnQgZG9jdW1lbnQgKENTUykuCiAgICAgICAgIGlmIChGcmFtZSogZiA9IGZy
YW1lKCkpCi0gICAgICAgICAgICBpZiAoIWYtPmxvYWRlcigpLT5jaGVja0lmUnVuSW5zZWN1cmVD
b250ZW50KG1fZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIHVybCkpCisgICAgICAgICAgICBp
ZiAoIWYtPmxvYWRlcigpLT5taXhlZENvbnRlbnRDaGVja2VyKCktPmNhblJ1bkluc2VjdXJlQ29u
dGVudChtX2RvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCB1cmwpKQogICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpA
QCAtMjc2LDcgKzI3Niw3IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNoZWNrSW5zZWN1
cmVDb250ZW50KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0CiAgICAgICAgIC8vIFRo
ZXNlIHJlc291cmNlcyBjYW4gY29ycnVwdCBvbmx5IHRoZSBmcmFtZSdzIHBpeGVscy4KICAgICAg
ICAgaWYgKEZyYW1lKiBmID0gZnJhbWUoKSkgewogICAgICAgICAgICAgRnJhbWUqIHRvcCA9IGYt
PnRyZWUoKS0+dG9wKCk7Ci0gICAgICAgICAgICBpZiAoIXRvcC0+bG9hZGVyKCktPmNoZWNrSWZE
aXNwbGF5SW5zZWN1cmVDb250ZW50KHRvcC0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwg
dXJsKSkKKyAgICAgICAgICAgIGlmICghdG9wLT5sb2FkZXIoKS0+bWl4ZWRDb250ZW50Q2hlY2tl
cigpLT5jYW5EaXNwbGF5SW5zZWN1cmVDb250ZW50KHRvcC0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlP
cmlnaW4oKSwgdXJsKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0K
ICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJGcmFtZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBs
LmNwcAppbmRleCBlYzY4NzE0N2JiNzU3ZDg2MmEwOTYwMzZiNGQ1MTQzNDI3NTY2NGYxLi5mZjRh
MGI0NGM3MTQ0ZTQ4NjM0NTAwYTM1ZmM4OTM1ZjE0MDc5NWJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKQEAgLTg2Niw3ICs4NjYsNyBAQCB2b2lkIFdl
YkZyYW1lSW1wbDo6Y29sbGVjdEdhcmJhZ2UoKQogYm9vbCBXZWJGcmFtZUltcGw6OmNoZWNrSWZS
dW5JbnNlY3VyZUNvbnRlbnQoY29uc3QgV2ViVVJMJiB1cmwpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KGZyYW1lKCkpOwotICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS0+Y2hlY2tJZlJ1bkluc2Vj
dXJlQ29udGVudChmcmFtZSgpLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmwpOwor
ICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS0+bWl4ZWRDb250ZW50Q2hlY2tlcigpLT5jYW5S
dW5JbnNlY3VyZUNvbnRlbnQoZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwg
dXJsKTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFdlYkZyYW1lSW1wbDo6ZXhlY3V0ZVNj
cmlwdEFuZFJldHVyblZhbHVlKGNvbnN0IFdlYlNjcmlwdFNvdXJjZSYgc291cmNlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169142</attachid>
            <date>2012-10-17 02:47:38 -0700</date>
            <delta_ts>2012-10-17 07:09:41 -0700</delta_ts>
            <desc>XCode.</desc>
            <filename>bug-45638-20121017114626.patch</filename>
            <type>text/plain</type>
            <size>31853</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQ3OTlkMDIxYWI4NTc1
YjVkZTU1ZTIyMGU0MzA2Y2Q5NDU1NmM3Mi4uZWEwNWU5YmM4ODkzOGFlMGM4NzkxZDQxYWI0Mjkz
ZDI5NjRkNTdjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEyLTEwLTE3ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBtaXhlZCBjb250ZW50
IGxvZ2ljIG91dCBvZiBGcmFtZUxvYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDU2MzgKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRl
bC4KKworICAgICAgICBUaGlzIGNoYW5nZSBtb3ZlcyBjaGVja3MgZm9yIG1peGVkIGNvbnRlbnQg
b3V0IG9mIEZyYW1lTG9hZGVyLCBhbmQgaW50bworICAgICAgICBhIG5ldyBNaXhlZENvbnRlbnRD
aGVja2VyIG9iamVjdC4gSXQncyBhIHByZXR0eSBzdHJhaWdodGZvcndhcmQKKyAgICAgICAgcmVm
YWN0b3Jpbmcgd2l0aCBubyBjaGFuZ2UgdG8gdGhlIG92ZXJhbGwgbG9naWMsIGFuZCBvbmx5IG1p
bm9yIGNoYW5nZXMKKyAgICAgICAgdG8gdGhlIGNvZGUgdG8gcmVkdWNlIHJlcGV0aXRpb24uCisK
KyAgICAgICAgVGhlIG9ubHkgc3Vic3RhbnRpdmUgY2hhbmdlIGlzIHJlbmFtaW5nIHRoZSBtZXRo
b2RzIGZyb20gJ2NoZWNrSWYqJyB0bworICAgICAgICAnY2FuKicgdG8gcmVmbGVjdCB0aGUgdmFs
dWUgb2YgdGhlIGJvb2xlYW4gdGhleSByZXR1cm4uCisKKyAgICAgICAgVGhlIHZpc2libGUgZnVu
Y3Rpb25hbGl0eSBzaG91bGRuJ3QgY2hhbmdlOyB0aGlzIGNoYW5nZSBzaG91bGQgYmUKKyAgICAg
ICAgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBpbiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVk
Q29udGVudC4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIG1vc3RseSBhIHJldml0YWxpemF0aW9u
IG9mIEVyaWMgU2lkZWwncyBvcmlnaW5hbAorICAgICAgICBwYXRjaDogaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9Njc0MzImYWN0aW9uPXByZXR0eXBhdGNoCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgor
ICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAq
IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgICAgIEhleSwgbG9vayEgQSBuZXcgZmlsZSEK
KyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXI6OkZyYW1lTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjptaXhlZENvbnRlbnRDaGVja2VyKToKKyAg
ICAgICAgKEZyYW1lTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tl
ci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpNaXhl
ZENvbnRlbnRDaGVja2VyOjpNaXhlZENvbnRlbnRDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1peGVkQ29udGVudENoZWNrZXI6OmNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjphc1VURjgp
OgorICAgICAgICAoV2ViQ29yZTo6TWl4ZWRDb250ZW50Q2hlY2tlcjo6aXNNaXhlZENvbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6TWl4ZWRDb250ZW50Q2hlY2tlcjo6Y2FuRGlzcGxheUluc2Vj
dXJlQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpNaXhlZENvbnRlbnRDaGVja2VyOjpjYW5S
dW5JbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWl4ZWRDb250ZW50Q2hlY2tl
cjo6bG9nV2FybmluZyk6CisgICAgICAgICogbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE1peGVkQ29udGVudENoZWNrZXIp
OgorICAgICAgICAgICAgTWlncmF0ZSBmdW5jdGlvbmFsaXR5IGZyb20gRnJhbWVMb2FkZXI6OmNo
ZWNrSWYqIHRvCisgICAgICAgICAgICBNaXhlZENvbnRlbnRDaGVja2VyOjpjYW4qLgorICAgICAg
ICAqIGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFp
blJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9TdWJm
cmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6cGx1Z2lu
SXNMb2FkYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6bG9hZE1lZGlh
UGxheWVyUHJveHlQbHVnaW4pOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hl
Y2tJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAgICAgVXNlIHRoZSBuZXcgbWV0aG9kIGxvY2F0
aW9ucy4KKwogMjAxMi0xMC0xNyAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmVtb3ZlIHNoYWRvd0FuY2VzdG9yTm9kZSgpIGZyb20gVmlzaWJsZVNl
bGVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAzOTE2MzZmMDFjMzJiZjQyNTVh
M2Q0YmE3YjhhMDM4Yjk1YzMxNTU4Li5mMmVmNDlkNmY4NjRjYWI0ZDQ4MGEyMDU2M2RjNmI2ZjUw
MDQ3OTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEy
LTEwLTE3ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBt
aXhlZCBjb250ZW50IGxvZ2ljIG91dCBvZiBGcmFtZUxvYWRlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU2MzgKKworICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIFNlaWRlbC4KKworICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OmNoZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQpOgorICAg
ICAgICAgICAgVXNlIHRoZSBuZXcgbWV0aG9kIGxvY2F0aW9uLgorCiAyMDEyLTEwLTE2ICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAgIFtTaGFkb3cgRE9NXVtW
OF0gV2ViQ29yZTo6VjhET01XaW5kb3c6Omluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcygpIGlz
IHNsb3cgd2hlbiBzaGFkb3dET01FbmFibGVkIGZsYWcgaXMgb24uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CmluZGV4IGYwZmU0YTk0ZGQ4Nzc2MTI4ZjliNjcxOWE4OTZjMTkxNmJkY2FkOWIuLjMxMjYyZTdh
NWM5YTkwZWZmYzU1ZDM1ZTNjZmRhNjczYzU1OGNmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC0xNjM0LDYgKzE2MzQsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgbG9hZGVyL0ltYWdl
TG9hZGVyLmNwcAogICAgIGxvYWRlci9MaW5rTG9hZGVyLmNwcAogICAgIGxvYWRlci9NYWluUmVz
b3VyY2VMb2FkZXIuY3BwCisgICAgbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwCiAgICAg
bG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwCiAgICAgbG9hZGVyL05ldHNjYXBlUGx1Z0luU3Ry
ZWFtTG9hZGVyLmNwcAogICAgIGxvYWRlci9QaW5nTG9hZGVyLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KaW5kZXggNDBmMTM5MWYxOWJkZTdmZTk5YjFjZjJlZTc3NDRkMTRlN2Q3M2M4
YS4uM2FkODcwYTAwZWNjYTIzZTU5Y2M1ZjI5N2NkNzIwNzVmNjMxMTJkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zOTAwLDYgKzM5MDAsOCBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyQ2xpZW50LmggXAogCVNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmggXAorICAgIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcCBcCisgICAgU291cmNlL1dlYkNvcmUvbG9hZGVyL01p
eGVkQ29udGVudENoZWNrZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25B
Y3Rpb24uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCmluZGV4IDNhMDRmZWIwY2VjN2RjY2U1MDk3MzI5Y2M4MjYxN2IxOWI3MDIwZWUu
LmFmYjhkMjE2ZWViYmI4NTI3ZWY4NmZlMjk5ODE5ZDk5YzVhMDhkOTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpA
QCAtODMzLDYgKzgzMyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGxvYWRlci9JbWFnZUxvYWRlci5j
cHAgXAogICAgIGxvYWRlci9MaW5rTG9hZGVyLmNwcCBcCiAgICAgbG9hZGVyL01haW5SZXNvdXJj
ZUxvYWRlci5jcHAgXAorICAgIGxvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcCBcCiAgICAg
bG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwIFwKICAgICBsb2FkZXIvTmV0c2NhcGVQbHVnSW5T
dHJlYW1Mb2FkZXIuY3BwIFwKICAgICBsb2FkZXIvUGluZ0xvYWRlci5jcHAgXApAQCAtMTk1OCw2
ICsxOTU5LDcgQEAgSEVBREVSUyArPSBcCiAgICAgbG9hZGVyL0xpbmtMb2FkZXIuaCBcCiAgICAg
bG9hZGVyL0xpbmtMb2FkZXJDbGllbnQuaCBcCiAgICAgbG9hZGVyL01haW5SZXNvdXJjZUxvYWRl
ci5oIFwKKyAgICBsb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5oIFwKICAgICBsb2FkZXIvTmF2
aWdhdGlvbkFjdGlvbi5oIFwKICAgICBsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIu
aCBcCiAgICAgbG9hZGVyL1BsYWNlaG9sZGVyRG9jdW1lbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggMGE0NzdiODkzMGI5MmUxNmRhNmY0ODU0ODQxNWIxMTBiNGI0NjMwYS4uNWJkODIxNjdkM2Nm
ZGVjNTdlY2M1N2YxOWMxYjNjZDgzYTIxY2UxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjk5Myw2
ICsyOTkzLDggQEAKICAgICAgICAgICAgICdsb2FkZXIvTGlua0xvYWRlckNsaWVudC5oJywKICAg
ICAgICAgICAgICdsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCcsCiAgICAgICAgICAgICAn
bG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oJywKKyAgICAgICAgICAgICdsb2FkZXIvTWl4ZWRD
b250ZW50Q2hlY2tlci5jcHAnLAorICAgICAgICAgICAgJ2xvYWRlci9NaXhlZENvbnRlbnRDaGVj
a2VyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcCcsCiAgICAg
ICAgICAgICAnbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwJywKICAgICAgICAgICAgICds
b2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZTM4N2VmMzBhM2QxMTgzMGI2YzM3
MTgxNzg3Njg5NjdiZGIzYTk5My4uNjQwZDM0NzZhYTBiNjZlMTc3ZTNjOWMyNDAyZjVlYjQyN2Iw
YmFiMCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTI3NjE1LDYgKzI3NjE1LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxNaXhlZENvbnRlbnRDaGVja2VyLmNwcCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXE1peGVk
Q29udGVudENoZWNrZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5cbG9hZGVyXE5hdmlnYXRpb25BY3Rpb24uY3BwIgogCQkJCT4KIAkJCTwvRmls
ZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAwODQ5OGUzY2NlYTZiMTUxMTc2NDg1MTZmM2IzMTZlMzU3N2JlNWU4Li5lOGI1NzAx
NzUyOWQwYmYxOTljMjExNTFmYjk0N2Q1YTdmZmMyMzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNzU0LDYgKzE3NTQsNyBA
QAogCQk2NTZEMzczRTBBREJBNURFMDBBNDU1NEQgLyogRnJhbWVMb2FkZXJDbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NkQzNzI2MEFEQkE1
REUwMEE0NTU0RCAvKiBGcmFtZUxvYWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTY1NkQzNzNGMEFEQkE1REUwMEE0NTU0RCAvKiBS
ZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNjU2RDM3MjcwQURCQTVERTAwQTQ1NTREIC8qIFJlc291cmNlTG9hZGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNjU2RDM3NDEwQURC
QTVERTAwQTQ1NTREIC8qIE1haW5SZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2RDM3MjkwQURCQTVERTAwQTQ1NTREIC8qIE1h
aW5SZXNvdXJjZUxvYWRlci5oICovOyB9OworCQk1MkYxMDg2NjE2MkI2REE4MDA5QUM4MUUgLyog
TWl4ZWRDb250ZW50Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTJGMTA4NjMxNjJCNkQ4MjAwOUFDODFFIC8qIE1peGVkQ29udGVudENoZWNr
ZXIuaCAqLzsgfTsKIAkJNjU2RDM3NDMwQURCQTVERTAwQTQ1NTREIC8qIE5ldHNjYXBlUGx1Z0lu
U3RyZWFtTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2NTZEMzcyQjBBREJBNURFMDBBNDU1NEQgLyogTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2Fk
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2
NTZEMzc0ODBBREJBNURFMDBBNDU1NEQgLyogU3VicmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NkQzNzMwMEFEQkE1REUwMEE0
NTU0RCAvKiBTdWJyZXNvdXJjZUxvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTY1NzFEQ0M4MTM4NUU2QTQwMDcwMkREMCAvKiBNZW1vcnlQ
cmVzc3VyZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDY1N0VEQTA3MTM4NUNCOTcwMDRFMDY0NSAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzMz
NSw2ICszMzM2LDcgQEAKIAkJOTNEOUQ1M0MwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRh
cnlQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNEOUQ1M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTIyN0UwMEFGNTg5
QUQwMEQ0ODMyNCAvKiBEb2N1bWVudExvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyMjdEQjBBRjU4OUFEMDBENDgzMjQgLyogRG9jdW1l
bnRMb2FkZXIuY3BwICovOyB9OwogCQk5M0UyMjdFMTBBRjU4OUFEMDBENDgzMjQgLyogTWFpblJl
c291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzRTIyN0RDMEFGNTg5QUQwMEQ0ODMyNCAvKiBNYWluUmVzb3VyY2VMb2FkZXIuY3Bw
ICovOyB9OworCQk1MkYxMDg2NTE2MkI2REE0MDA5QUM4MUUgLyogTWl4ZWRDb250ZW50Q2hlY2tl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkYx
MDg2MjE2MkI2RDgyMDA5QUM4MUUgLyogTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAgKi87IH07CiAJ
CTkzRTIyN0UzMEFGNTg5QUQwMEQ0ODMyNCAvKiBSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyMjdERTBBRjU4OUFEMDBE
NDgzMjQgLyogUmVzb3VyY2VMb2FkZXIuY3BwICovOyB9OwogCQk5M0UyMjdFNDBBRjU4OUFEMDBE
NDgzMjQgLyogU3VicmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMjI3REYwQUY1ODlBRDAwRDQ4MzI0IC8qIFN1YnJlc291
cmNlTG9hZGVyLmNwcCAqLzsgfTsKIAkJOTNFMjQxRkYwQjJCNEU0MDAwQzczMkExIC8qIEhUTUxG
cmFtZU93bmVyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNFMjQxRkUwQjJCNEU0MDAwQzczMkExIC8qIEhUTUxGcmFtZU93bmVyRWxlbWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04
ODMyLDYgKzg4MzQsOCBAQAogCQk1MkNDQTlFNTE1RTNGNjRDMDA1M0M3N0YgLyogRE9NRE9NTmFt
ZWRGbG93Q29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01E
T01OYW1lZEZsb3dDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUy
Q0NBOUU2MTVFM0Y2NEMwMDUzQzc3RiAvKiBET01ET01OYW1lZEZsb3dDb2xsZWN0aW9uLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NRE9NTmFtZWRGbG93Q29s
bGVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQ0E5RTcxNUUzRjY0
QzAwNTNDNzdGIC8qIERPTURPTU5hbWVkRmxvd0NvbGxlY3Rpb25JbnRlcm5hbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01ET01OYW1lZEZsb3dDb2xsZWN0aW9uSW50ZXJu
YWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJGMTA4NjIxNjJCNkQ4MjAwOUFD
ODFFIC8qIE1peGVkQ29udGVudENoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTWl4ZWRDb250ZW50Q2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUyRjEwODYzMTYyQjZEODIwMDlBQzgxRSAvKiBNaXhlZENvbnRlbnRDaGVja2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1peGVkQ29udGVudENoZWNrZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJGNTJFMTAxNEEwMTM0RjAwQUNDMzk3
IC8qIE5TU2Nyb2xsZXJJbXBEZXRhaWxzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gTlNTY3JvbGxlckltcERldGFpbHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUzMTc2MTIwMTNDNTE2NjkwMDI2RTQ1NCAvKiBTdHlsZUZsZXhpYmxlQm94RGF0
YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdHlsZUZsZXhpYmxl
Qm94RGF0YS5jcHA7IHBhdGggPSBzdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzMTc2MTIxMTNDNTE2NjkwMDI2RTQ1NCAvKiBTdHls
ZUZsZXhpYmxlQm94RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdHls
ZUZsZXhpYmxlQm94RGF0YS5oOyBwYXRoID0gc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg5NjIsNiArODk2Niw3IEBACiAJCTY1NkQz
NzI2MEFEQkE1REUwMEE0NTU0RCAvKiBGcmFtZUxvYWRlckNsaWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRnJhbWVMb2FkZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNjU2RDM3MjcwQURCQTVERTAwQTQ1NTREIC8qIFJlc291cmNlTG9hZGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUxvYWRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTZEMzcyOTBBREJBNURFMDBBNDU1NEQgLyog
TWFpblJlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
YWluUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJGMTA4
NjYxNjJCNkRBODAwOUFDODFFIC8qIE1peGVkQ29udGVudENoZWNrZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRjEwODYzMTYyQjZEODIwMDlBQzgx
RSAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmggKi87IH07CiAJCTY1NkQzNzJCMEFEQkE1REUwMEE0
NTU0RCAvKiBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNjU2RDM3MzAwQURCQTVERTAwQTQ1NTREIC8qIFN1YnJlc291cmNl
TG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdWJyZXNvdXJjZUxv
YWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTdFREEwNjEzODVDQjk3MDA0
RTA2NDUgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lbW9yeVByZXNzdXJlSGFuZGxlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMDU0Nyw2ICsxMDU1Miw3IEBACiAJCTkzRDlENTNCMERBMjdFMTgw
MDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmFuZ2VCb3VuZGFyeVBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzRTIyN0RCMEFGNTg5QUQwMEQ0ODMyNCAvKiBEb2N1bWVudExvYWRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudExvYWRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTIyN0RDMEFGNTg5QUQwMEQ0ODMyNCAvKiBNYWlu
UmVzb3VyY2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TWFpblJlc291cmNlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJG
MTA4NjIxNjJCNkQ4MjAwOUFDODFFIC8qIE1peGVkQ29udGVudENoZWNrZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWl4ZWRDb250ZW50Q2hlY2tlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTIyN0REMEFGNTg5QUQwMEQ0ODMyNCAvKiBO
ZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzRTIyN0RFMEFGNTg5QUQwMEQ0ODMyNCAvKiBSZXNvdXJjZUxvYWRl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNvdXJjZUxvYWRl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTIyN0RGMEFGNTg5QUQwMEQ0
ODMyNCAvKiBTdWJyZXNvdXJjZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTdWJyZXNvdXJjZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMDY3Myw2ICsyMDY3OSw4IEBACiAJCQkJOTg0MjY0RUYxMkQ1MjgwQTAwMEQ4OEE0
IC8qIExpbmtMb2FkZXJDbGllbnQuaCAqLywKIAkJCQk5M0UyMjdEQzBBRjU4OUFEMDBENDgzMjQg
LyogTWFpblJlc291cmNlTG9hZGVyLmNwcCAqLywKIAkJCQk2NTZEMzcyOTBBREJBNURFMDBBNDU1
NEQgLyogTWFpblJlc291cmNlTG9hZGVyLmggKi8sCisJCQkJNTJGMTA4NjIxNjJCNkQ4MjAwOUFD
ODFFIC8qIE1peGVkQ29udGVudENoZWNrZXIuY3BwICovLAorCQkJCTUyRjEwODYzMTYyQjZEODIw
MDlBQzgxRSAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmggKi8sCiAJCQkJOTNDQ0YwNUYwQUY2Q0E3
NjAwMDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uY3BwICovLAogCQkJCTkzQ0NGMDI2MEFGNkM1
MjkwMDAxOEU4OSAvKiBOYXZpZ2F0aW9uQWN0aW9uLmggKi8sCiAJCQkJOTc5RjQzRDExMDc1RTQ0
QTAwMDBGODNCIC8qIE5hdmlnYXRpb25TY2hlZHVsZXIuY3BwICovLApAQCAtMjQ0NTAsNiArMjQ0
NTgsNyBAQAogCQkJCUJDRTFDNDFCMEQ5ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTgyMzlFMDEwOUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTY1NkQzNzQxMEFEQkE1REUwMEE0NTU0RCAvKiBNYWluUmVzb3VyY2VM
b2FkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTUyRjEwODY2MTYyQjZEQTgwMDlBQzgxRSAvKiBN
aXhlZENvbnRlbnRDaGVja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJDNjBEQjU1Q0RD
MDAxREI3OTQgLyogTWFuaWZlc3RQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REY4
MDk5RTY0OTIwMDU2RTU4MSAvKiBtYXJrdXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3MjhDMzE0
MTI2OEU0MzkwMDQxRTg5QiAvKiBNYXJrdXBBY2N1bXVsYXRvci5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNzc3Miw2ICsyNzc4MSw3IEBACiAJCQkJQTgyMzlFMDAwOUIzQ0Y4QTAwQjYwNjQxIC8qIExv
Z2dpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQwMjY0NUUwQUZEQzE5QjAwNTkxOUUyIC8q
IExvZ2dpbmdNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5M0UyMjdFMTBBRjU4OUFEMDBENDgz
MjQgLyogTWFpblJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUyRjEwODY1
MTYyQjZEQTQwMDlBQzgxRSAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBOEY2QkM1MERCNTVDREMwMDFEQjc5NCAvKiBNYW5pZmVzdFBhcnNlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5MzMwOURGNzA5OUU2NDkyMDA1NkU1ODEgLyogbWFya3VwLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTk3MjhDMzEzMTI2OEU0MzkwMDQxRTg5QiAvKiBNYXJrdXBBY2N1
bXVsYXRvci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCmluZGV4IDhhYjNkODkyMjlkYzlkMTI5ZDk3N2RjZTFlYzA3M2FjMTAwNjZlYjMuLmE4NGM1
MDhlYmJjOTNkZTg3Yzg4OWMzMDAzNjNjMDQ3OGIyYWQyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcApAQCAtMjEyLDYgKzIxMiw3IEBAIEZyYW1lTG9hZGVyOjpGcmFtZUxv
YWRlcihGcmFtZSogZnJhbWUsIEZyYW1lTG9hZGVyQ2xpZW50KiBjbGllbnQpCiAgICAgLCBtX25v
dGlmZXIoZnJhbWUpCiAgICAgLCBtX3N1YmZyYW1lTG9hZGVyKGZyYW1lKQogICAgICwgbV9pY29u
KGZyYW1lKQorICAgICwgbV9taXhlZENvbnRlbnRDaGVja2VyKGZyYW1lKQogICAgICwgbV9zdGF0
ZShGcmFtZVN0YXRlQ29tbWl0dGVkUGFnZSkKICAgICAsIG1fbG9hZFR5cGUoRnJhbWVMb2FkVHlw
ZVN0YW5kYXJkKQogICAgICwgbV9kZWxlZ2F0ZUlzSGFuZGxpbmdQcm92aXNpb25hbExvYWRFcnJv
cihmYWxzZSkKQEAgLTkxNCw1MSArOTE1LDYgQEAgU3RyaW5nIEZyYW1lTG9hZGVyOjpvdXRnb2lu
Z09yaWdpbigpIGNvbnN0CiAgICAgcmV0dXJuIG1fZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCktPnRvU3RyaW5nKCk7CiB9CiAKLWJvb2wgRnJhbWVMb2FkZXI6OmlzTWl4ZWRDb250
ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJMJiB1cmwpCi17Ci0gICAgaWYg
KGNvbnRleHQtPnByb3RvY29sKCkgIT0gImh0dHBzIikKLSAgICAgICAgcmV0dXJuIGZhbHNlOyAg
Ly8gV2Ugb25seSBjYXJlIGFib3V0IEhUVFBTIHNlY3VyaXR5IG9yaWdpbnMuCi0KLSAgICAvLyBX
ZSdyZSBpbiBhIHNlY3VyZSBjb250ZXh0LCBzbyB8dXJsfCBpcyBtaXhlZCBjb250ZW50IGlmIGl0
J3MgaW5zZWN1cmUuCi0gICAgcmV0dXJuICFTZWN1cml0eU9yaWdpbjo6aXNTZWN1cmUodXJsKTsK
LX0KLQotYm9vbCBGcmFtZUxvYWRlcjo6Y2hlY2tJZkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQoU2Vj
dXJpdHlPcmlnaW4qIGNvbnRleHQsIGNvbnN0IEtVUkwmIHVybCkKLXsKLSAgICBpZiAoIWlzTWl4
ZWRDb250ZW50KGNvbnRleHQsIHVybCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgU2V0
dGluZ3MqIHNldHRpbmdzID0gbV9mcmFtZS0+c2V0dGluZ3MoKTsKLSAgICBib29sIGFsbG93ZWQg
PSBtX2NsaWVudC0+YWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KHNldHRpbmdzICYmIHNl
dHRpbmdzLT5hbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCgpLCBjb250ZXh0LCB1cmwpOwot
ICAgIFN0cmluZyBtZXNzYWdlID0gKGFsbG93ZWQgPyBlbXB0eVN0cmluZygpIDogIltibG9ja2Vk
XSAiKSArICJUaGUgcGFnZSBhdCAiICsKLSAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJs
KCkuc3RyaW5nKCkgKyAiIGRpc3BsYXllZCBpbnNlY3VyZSBjb250ZW50IGZyb20gIiArIHVybC5z
dHJpbmcoKSArICIuXG4iOwotICAgICAgICAKLSAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5kb21X
aW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEhUTUxNZXNzYWdlU291cmNlLCBMb2dNZXNz
YWdlVHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7Ci0KLSAgICBpZiAoYWxsb3dl
ZCkKLSAgICAgICAgbV9jbGllbnQtPmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKTsKLQotICAg
IHJldHVybiBhbGxvd2VkOwotfQotCi1ib29sIEZyYW1lTG9hZGVyOjpjaGVja0lmUnVuSW5zZWN1
cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJMJiB1cmwpCi17Ci0g
ICAgaWYgKCFpc01peGVkQ29udGVudChjb250ZXh0LCB1cmwpKQotICAgICAgICByZXR1cm4gdHJ1
ZTsKLQotICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fZnJhbWUtPnNldHRpbmdzKCk7Ci0gICAg
Ym9vbCBhbGxvd2VkID0gbV9jbGllbnQtPmFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudChzZXR0
aW5ncyAmJiBzZXR0aW5ncy0+YWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQoKSwgY29udGV4
dCwgdXJsKTsKLSAgICBTdHJpbmcgbWVzc2FnZSA9IChhbGxvd2VkID8gZW1wdHlTdHJpbmcoKSA6
ICJbYmxvY2tlZF0gIikgKyAiVGhlIHBhZ2UgYXQgIiArCi0gICAgICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPnVybCgpLnN0cmluZygpICsgIiByYW4gaW5zZWN1cmUgY29udGVudCBmcm9tICIgKyB1
cmwuc3RyaW5nKCkgKyAiLlxuIjsKLSAgICAgICAKLSAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5k
b21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEhUTUxNZXNzYWdlU291cmNlLCBMb2dN
ZXNzYWdlVHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7Ci0KLSAgICBpZiAoYWxs
b3dlZCkKLSAgICAgICAgbV9jbGllbnQtPmRpZFJ1bkluc2VjdXJlQ29udGVudChjb250ZXh0LCB1
cmwpOwotCi0gICAgcmV0dXJuIGFsbG93ZWQ7Ci19Ci0KIGJvb2wgRnJhbWVMb2FkZXI6OmNoZWNr
SWZGb3JtQWN0aW9uQWxsb3dlZEJ5Q1NQKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKIHsKICAgICBp
ZiAobV9zdWJtaXR0ZWRGb3JtVVJMLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmgKaW5kZXggNGYxNDBhMTg0MDg3Yzk1ODg2MDZmZjI0Y2E4YTg4OTRkNjYzY2E4Yy4uZTc4
ZWU0ZTllMTQwM2M5MGNkZTgxMWY0MWQ2YjhlMGY5MWQ4MjAzNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJJY29uQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIkljb25VUkwuaCIKICNpbmNsdWRlICJMYXlvdXRNaWxlc3RvbmVzLmgi
CisjaW5jbHVkZSAiTWl4ZWRDb250ZW50Q2hlY2tlci5oIgogI2luY2x1ZGUgIlBvbGljeUNoZWNr
ZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9h
ZE5vdGlmaWVyLmgiCkBAIC05Myw2ICs5NCw3IEBAIHB1YmxpYzoKICAgICBSZXNvdXJjZUxvYWRO
b3RpZmllciogbm90aWZpZXIoKSBjb25zdCB7IHJldHVybiAmbV9ub3RpZmVyOyB9CiAgICAgU3Vi
ZnJhbWVMb2FkZXIqIHN1YmZyYW1lTG9hZGVyKCkgY29uc3QgeyByZXR1cm4gJm1fc3ViZnJhbWVM
b2FkZXI7IH0KICAgICBJY29uQ29udHJvbGxlciogaWNvbigpIGNvbnN0IHsgcmV0dXJuICZtX2lj
b247IH0KKyAgICBNaXhlZENvbnRlbnRDaGVja2VyKiBtaXhlZENvbnRlbnRDaGVja2VyKCkgY29u
c3QgeyByZXR1cm4gJm1fbWl4ZWRDb250ZW50Q2hlY2tlcjsgfQogCiAgICAgdm9pZCBwcmVwYXJl
Rm9ySGlzdG9yeU5hdmlnYXRpb24oKTsKICAgICB2b2lkIHNldHVwRm9yUmVwbGFjZSgpOwpAQCAt
MjEzLDExICsyMTUsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBmb3JjZVNhbmRib3hGbGFncyhTYW5k
Ym94RmxhZ3MgZmxhZ3MpIHsgbV9mb3JjZWRTYW5kYm94RmxhZ3MgfD0gZmxhZ3M7IH0KICAgICBT
YW5kYm94RmxhZ3MgZWZmZWN0aXZlU2FuZGJveEZsYWdzKCkgY29uc3Q7CiAKLSAgICAvLyBNaXhl
ZCBjb250ZW50IHJlbGF0ZWQgZnVuY3Rpb25zLgotICAgIHN0YXRpYyBib29sIGlzTWl4ZWRDb250
ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJMJik7Ci0gICAgYm9vbCBjaGVj
a0lmRGlzcGxheUluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiogY29udGV4dCwgY29uc3Qg
S1VSTCYpOwotICAgIGJvb2wgY2hlY2tJZlJ1bkluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdp
biogY29udGV4dCwgY29uc3QgS1VSTCYpOwotCiAgICAgYm9vbCBjaGVja0lmRm9ybUFjdGlvbkFs
bG93ZWRCeUNTUChjb25zdCBLVVJMJikgY29uc3Q7CiAKICAgICBGcmFtZSogb3BlbmVyKCk7CkBA
IC0zNzQsMTIgKzM3MSwxNiBAQCBwcml2YXRlOgogICAgIEZyYW1lKiBtX2ZyYW1lOwogICAgIEZy
YW1lTG9hZGVyQ2xpZW50KiBtX2NsaWVudDsKIAorICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQg
YmUgT3duUHRyPFQ+IHRvIHJlZHVjZSBidWlsZCB0aW1lcyBhbmQgc2ltcGxpZnkKKyAgICAvLyBo
ZWFkZXIgZGVwZW5kZW5jaWVzIHVubGVzcyBwZXJmb3JtYW5jZSB0ZXN0aW5nIHByb3ZlcyBvdGhl
cndpc2UuCisgICAgLy8gU29tZSBvZiB0aGVzZSBjb3VsZCBiZSBsYXppbHkgY3JlYXRlZCBmb3Ig
bWVtb3J5IHNhdmluZ3Mgb24gZGV2aWNlcy4KICAgICBtdXRhYmxlIFBvbGljeUNoZWNrZXIgbV9w
b2xpY3lDaGVja2VyOwogICAgIG11dGFibGUgSGlzdG9yeUNvbnRyb2xsZXIgbV9oaXN0b3J5Owog
ICAgIG11dGFibGUgUmVzb3VyY2VMb2FkTm90aWZpZXIgbV9ub3RpZmVyOwogICAgIG11dGFibGUg
U3ViZnJhbWVMb2FkZXIgbV9zdWJmcmFtZUxvYWRlcjsKICAgICBtdXRhYmxlIEZyYW1lTG9hZGVy
U3RhdGVNYWNoaW5lIG1fc3RhdGVNYWNoaW5lOwogICAgIG11dGFibGUgSWNvbkNvbnRyb2xsZXIg
bV9pY29uOworICAgIG11dGFibGUgTWl4ZWRDb250ZW50Q2hlY2tlciBtX21peGVkQ29udGVudENo
ZWNrZXI7CiAKICAgICBjbGFzcyBGcmFtZVByb2dyZXNzVHJhY2tlcjsKICAgICBPd25QdHI8RnJh
bWVQcm9ncmVzc1RyYWNrZXI+IG1fcHJvZ3Jlc3NUcmFja2VyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAppbmRleCAxZjliYjQ2NTI1MzI1NTI3ODE5YmFm
MDJhZDFmNmVhZjA0NzBiNmZiLi40ODVhYWEyYzFiYjk0Zjk0NGU5ZmY0NDFhYTdlOWRlNjZjYzll
N2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcApA
QCAtMjM2LDcgKzIzNiw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVl
c3QoUmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBjb25zdCBSZXNvCiAKICAgICBGcmFtZSog
dG9wID0gbV9mcmFtZS0+dHJlZSgpLT50b3AoKTsKICAgICBpZiAodG9wICE9IG1fZnJhbWUpIHsK
LSAgICAgICAgaWYgKCFmcmFtZUxvYWRlcigpLT5jaGVja0lmRGlzcGxheUluc2VjdXJlQ29udGVu
dCh0b3AtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIG5ld1JlcXVlc3QudXJsKCkpKSB7
CisgICAgICAgIGlmICghZnJhbWVMb2FkZXIoKS0+bWl4ZWRDb250ZW50Q2hlY2tlcigpLT5jYW5E
aXNwbGF5SW5zZWN1cmVDb250ZW50KHRvcC0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwg
bmV3UmVxdWVzdC51cmwoKSkpIHsKICAgICAgICAgICAgIGNhbmNlbCgpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4
ZWRDb250ZW50Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50
Q2hlY2tlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzFmZDJiMzZlYWJiMzkxYTY0ODMyZDk1NDFjNTJmOTU5
NTRiMTQ2OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENv
bnRlbnRDaGVja2VyLmNwcApAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4g
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4g
CisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxl
Iikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJNaXhlZENvbnRlbnRDaGVja2VyLmgiCisKKyNpbmNsdWRlICJDb25zb2xl
LmgiCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAi
U2NoZW1lUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUg
IlNldHRpbmdzLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01peGVkQ29udGVu
dENoZWNrZXI6Ok1peGVkQ29udGVudENoZWNrZXIoRnJhbWUqIGZyYW1lKQorICAgIDogbV9mcmFt
ZShmcmFtZSkKK3sKK30KKworRnJhbWVMb2FkZXJDbGllbnQqIE1peGVkQ29udGVudENoZWNrZXI6
OmNsaWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQo
KTsKK30KKworc3RhdGljIGlubGluZSBDU3RyaW5nIGFzVVRGOChjb25zdCBLVVJMJiB1cmwpCit7
CisgICAgcmV0dXJuIHVybC5zdHJpbmcoKS51dGY4KCk7Cit9CisKK2Jvb2wgTWl4ZWRDb250ZW50
Q2hlY2tlcjo6aXNNaXhlZENvbnRlbnQoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBj
b25zdCBLVVJMJiB1cmwpCit7CisgICAgaWYgKHNlY3VyaXR5T3JpZ2luLT5wcm90b2NvbCgpICE9
ICJodHRwcyIpCisgICAgICAgIHJldHVybiBmYWxzZTsgLy8gV2Ugb25seSBjYXJlIGFib3V0IEhU
VFBTIHNlY3VyaXR5IG9yaWdpbnMuCisKKyAgICAvLyBXZSdyZSBpbiBhIHNlY3VyZSBjb250ZXh0
LCBzbyB8dXJsfCBpcyBtaXhlZCBjb250ZW50IGlmIGl0J3MgaW5zZWN1cmUuCisgICAgcmV0dXJu
ICFTZWN1cml0eU9yaWdpbjo6aXNTZWN1cmUodXJsKTsKK30KKworYm9vbCBNaXhlZENvbnRlbnRD
aGVja2VyOjpjYW5EaXNwbGF5SW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0
eU9yaWdpbiwgY29uc3QgS1VSTCYgdXJsKSBjb25zdAoreworICAgIGlmICghaXNNaXhlZENvbnRl
bnQoc2VjdXJpdHlPcmlnaW4sIHVybCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgU2V0
dGluZ3MqIHNldHRpbmdzID0gbV9mcmFtZS0+c2V0dGluZ3MoKTsKKyAgICBib29sIGFsbG93ZWQg
PSBjbGllbnQoKS0+YWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KHNldHRpbmdzICYmIHNl
dHRpbmdzLT5hbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCgpLCBzZWN1cml0eU9yaWdpbiwg
dXJsKTsKKyAgICBsb2dXYXJuaW5nKGFsbG93ZWQsICJkaXNwbGF5ZWQiLCB1cmwpOworCisgICAg
aWYgKGFsbG93ZWQpCisgICAgICAgIGNsaWVudCgpLT5kaWREaXNwbGF5SW5zZWN1cmVDb250ZW50
KCk7CisKKyAgICByZXR1cm4gYWxsb3dlZDsKK30KKworYm9vbCBNaXhlZENvbnRlbnRDaGVja2Vy
OjpjYW5SdW5JbnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBj
b25zdCBLVVJMJiB1cmwpIGNvbnN0Cit7CisgICAgaWYgKCFpc01peGVkQ29udGVudChzZWN1cml0
eU9yaWdpbiwgdXJsKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBTZXR0aW5ncyogc2V0
dGluZ3MgPSBtX2ZyYW1lLT5zZXR0aW5ncygpOworICAgIGJvb2wgYWxsb3dlZCA9IGNsaWVudCgp
LT5hbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoc2V0dGluZ3MgJiYgc2V0dGluZ3MtPmFsbG93
UnVubmluZ09mSW5zZWN1cmVDb250ZW50KCksIHNlY3VyaXR5T3JpZ2luLCB1cmwpOworICAgIGxv
Z1dhcm5pbmcoYWxsb3dlZCwgInJhbiIsIHVybCk7CisKKyAgICBpZiAoYWxsb3dlZCkKKyAgICAg
ICAgY2xpZW50KCktPmRpZFJ1bkluc2VjdXJlQ29udGVudChzZWN1cml0eU9yaWdpbiwgdXJsKTsK
KworICAgIHJldHVybiBhbGxvd2VkOworfQorCit2b2lkIE1peGVkQ29udGVudENoZWNrZXI6Omxv
Z1dhcm5pbmcoYm9vbCBhbGxvd2VkLCBjb25zdCBTdHJpbmcmIGFjdGlvbiwgY29uc3QgS1VSTCYg
dGFyZ2V0KSBjb25zdAoreworICAgIENvbnNvbGUqIGNvbnNvbGUgPSBtX2ZyYW1lLT5kb2N1bWVu
dCgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpOworICAgIC8vIEZJWE1FOiBXaHkgZG9lcyB0aGlz
IG1lc3NhZ2Ugbm90IGhhdmUgYSBzb3VyY2UgVVJMIG9yIGEgbGluZSBudW1iZXI/IHdlYmtpdC5v
cmcvYi85Nzk3OQorICAgIFN0cmluZyBtZXNzYWdlID0gU3RyaW5nOjpmb3JtYXQoIiVzVGhlIHBh
Z2UgYXQgJXMgJXMgaW5zZWN1cmUgY29udGVudCBmcm9tICVzLlxuIiwKKyAgICAgICAgKGFsbG93
ZWQgPyAiIiA6ICJbYmxvY2tlZF0gIiksIGFzVVRGOChtX2ZyYW1lLT5kb2N1bWVudCgpLT51cmwo
KSkuZGF0YSgpLCBhY3Rpb24udXRmOCgpLmRhdGEoKSwgYXNVVEY4KHRhcmdldCkuZGF0YSgpKTsK
KyAgICBjb25zb2xlLT5hZGRNZXNzYWdlKEhUTUxNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlw
ZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVj
a2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmVlN2RhZjYxOTUxNzA1ZmQ3Y2I2N2NiZGRhZmY5M2M1ZDE4YzI1YjYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5oCkBA
IC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIE1peGVkQ29udGVudENoZWNrZXJfaAorI2RlZmluZSBNaXhl
ZENvbnRlbnRDaGVja2VyX2gKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lOworY2xhc3MgRnJhbWVMb2FkZXJDbGll
bnQ7CitjbGFzcyBLVVJMOworY2xhc3MgU2VjdXJpdHlPcmlnaW47CisKK2NsYXNzIE1peGVkQ29u
dGVudENoZWNrZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1peGVkQ29udGVudENoZWNr
ZXIpOworcHVibGljOgorICAgIE1peGVkQ29udGVudENoZWNrZXIoRnJhbWUqKTsKKworICAgIGJv
b2wgY2FuRGlzcGxheUluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwm
KSBjb25zdDsKKyAgICBib29sIGNhblJ1bkluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbios
IGNvbnN0IEtVUkwmKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICAvLyBGSVhNRTogVGhpcyBzaG91
bGQgcHJvYmFibHkgaGF2ZSBhIHNlcGFyYXRlIGNsaWVudCBmcm9tIEZyYW1lTG9hZGVyLgorICAg
IEZyYW1lTG9hZGVyQ2xpZW50KiBjbGllbnQoKSBjb25zdDsKKworICAgIHN0YXRpYyBib29sIGlz
TWl4ZWRDb250ZW50KFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYpOworICAgIHZvaWQgbG9n
V2FybmluZyhib29sIGFsbG93ZWQsIGNvbnN0IFN0cmluZyYgYWN0aW9uLCBjb25zdCBLVVJMJikg
Y29uc3Q7CisKKyAgICBGcmFtZSogbV9mcmFtZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIE1peGVkQ29udGVudENoZWNrZXJfaAorCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAppbmRleCBjM2IzOGE4N2M4NDg3YzQwYTBjM2MzZWM5OWU1
NjljZjZlZDFmODZjLi5hYjQ2MWY2ZDZlNTk3ZWViMTMxYmMxOGNhOGY2NGQ2ZDFlMzVkZTgxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKQEAgLTEzNiw3ICsxMzYs
NyBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpwbHVnaW5Jc0xvYWRhYmxlKEhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQqIHBsdWdpbkVsZW1lbnQsIGNvbgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1fZnJhbWUtPmxvYWRlcigpICYmICFtX2ZyYW1lLT5s
b2FkZXIoKS0+Y2hlY2tJZlJ1bkluc2VjdXJlQ29udGVudChkb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpLCB1cmwpKQorICAgICAgICBpZiAobV9mcmFtZS0+bG9hZGVyKCkgJiYgIW1fZnJhbWUt
PmxvYWRlcigpLT5taXhlZENvbnRlbnRDaGVja2VyKCktPmNhblJ1bkluc2VjdXJlQ29udGVudChk
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmwpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KIApAQCAtMjY1LDcgKzI2NSw3IEBAIFBhc3NSZWZQdHI8V2lkZ2V0PiBTdWJm
cmFtZUxvYWRlcjo6bG9hZE1lZGlhUGxheWVyUHJveHlQbHVnaW4oTm9kZSogbm9kZSwgY29uc3QK
ICAgICBlbHNlIGlmIChtZWRpYUVsZW1lbnQtPmlzVmlkZW8oKSkKICAgICAgICAgc2l6ZSA9IFJl
bmRlclZpZGVvOjpkZWZhdWx0U2l6ZSgpOwogCi0gICAgaWYgKCFtX2ZyYW1lLT5sb2FkZXIoKS0+
Y2hlY2tJZlJ1bkluc2VjdXJlQ29udGVudChtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpLCBjb21wbGV0ZWRVUkwpKQorICAgIGlmICghbV9mcmFtZS0+bG9hZGVyKCktPm1peGVk
Q29udGVudENoZWNrZXIoKS0+Y2FuUnVuSW5zZWN1cmVDb250ZW50KG1fZnJhbWUtPmRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCksIGNvbXBsZXRlZFVSTCkpCiAgICAgICAgIHJldHVybiAwOwog
CiAgICAgUmVmUHRyPFdpZGdldD4gd2lkZ2V0ID0gbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgp
LT5jcmVhdGVNZWRpYVBsYXllclByb3h5UGx1Z2luKHNpemUsIG1lZGlhRWxlbWVudCwgY29tcGxl
dGVkVVJMLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHAKaW5kZXggYzZjZTQwNmI2M2E2NzA1NzRjYzVjZGQ4NmU4MDk2NGVmOWNl
NjU3Ny4uN2M0MjBjMDY2OGY4ODNhYzY4OWIyZjBlZTU3MDJmZDgwODA4Nzc5NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
CkBAIC0yNjEsNyArMjYxLDcgQEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tJbnNl
Y3VyZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QKICAgICAgICAgLy8g
VGhlc2UgcmVzb3VyY2UgY2FuIGluamVjdCBzY3JpcHQgaW50byB0aGUgY3VycmVudCBkb2N1bWVu
dCAoU2NyaXB0LAogICAgICAgICAvLyBYU0wpIG9yIGV4ZmlsdHJhdGUgdGhlIGNvbnRlbnQgb2Yg
dGhlIGN1cnJlbnQgZG9jdW1lbnQgKENTUykuCiAgICAgICAgIGlmIChGcmFtZSogZiA9IGZyYW1l
KCkpCi0gICAgICAgICAgICBpZiAoIWYtPmxvYWRlcigpLT5jaGVja0lmUnVuSW5zZWN1cmVDb250
ZW50KG1fZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIHVybCkpCisgICAgICAgICAgICBpZiAo
IWYtPmxvYWRlcigpLT5taXhlZENvbnRlbnRDaGVja2VyKCktPmNhblJ1bkluc2VjdXJlQ29udGVu
dChtX2RvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCB1cmwpKQogICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpAQCAt
Mjc2LDcgKzI3Niw3IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNoZWNrSW5zZWN1cmVD
b250ZW50KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0CiAgICAgICAgIC8vIFRoZXNl
IHJlc291cmNlcyBjYW4gY29ycnVwdCBvbmx5IHRoZSBmcmFtZSdzIHBpeGVscy4KICAgICAgICAg
aWYgKEZyYW1lKiBmID0gZnJhbWUoKSkgewogICAgICAgICAgICAgRnJhbWUqIHRvcCA9IGYtPnRy
ZWUoKS0+dG9wKCk7Ci0gICAgICAgICAgICBpZiAoIXRvcC0+bG9hZGVyKCktPmNoZWNrSWZEaXNw
bGF5SW5zZWN1cmVDb250ZW50KHRvcC0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgdXJs
KSkKKyAgICAgICAgICAgIGlmICghdG9wLT5sb2FkZXIoKS0+bWl4ZWRDb250ZW50Q2hlY2tlcigp
LT5jYW5EaXNwbGF5SW5zZWN1cmVDb250ZW50KHRvcC0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmln
aW4oKSwgdXJsKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAg
ICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJG
cmFtZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNw
cAppbmRleCBlYzY4NzE0N2JiNzU3ZDg2MmEwOTYwMzZiNGQ1MTQzNDI3NTY2NGYxLi5mZjRhMGI0
NGM3MTQ0ZTQ4NjM0NTAwYTM1ZmM4OTM1ZjE0MDc5NWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKQEAgLTg2Niw3ICs4NjYsNyBAQCB2b2lkIFdlYkZy
YW1lSW1wbDo6Y29sbGVjdEdhcmJhZ2UoKQogYm9vbCBXZWJGcmFtZUltcGw6OmNoZWNrSWZSdW5J
bnNlY3VyZUNvbnRlbnQoY29uc3QgV2ViVVJMJiB1cmwpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGZy
YW1lKCkpOwotICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS0+Y2hlY2tJZlJ1bkluc2VjdXJl
Q29udGVudChmcmFtZSgpLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmwpOworICAg
IHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS0+bWl4ZWRDb250ZW50Q2hlY2tlcigpLT5jYW5SdW5J
bnNlY3VyZUNvbnRlbnQoZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgdXJs
KTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFdlYkZyYW1lSW1wbDo6ZXhlY3V0ZVNjcmlw
dEFuZFJldHVyblZhbHVlKGNvbnN0IFdlYlNjcmlwdFNvdXJjZSYgc291cmNlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169179</attachid>
            <date>2012-10-17 07:09:48 -0700</date>
            <delta_ts>2012-10-17 07:54:01 -0700</delta_ts>
            <desc>EWS is ignoring the previous patch. :/</desc>
            <filename>bug-45638-20121017160834.patch</filename>
            <type>text/plain</type>
            <size>31853</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQ3OTlkMDIxYWI4NTc1
YjVkZTU1ZTIyMGU0MzA2Y2Q5NDU1NmM3Mi4uZWEwNWU5YmM4ODkzOGFlMGM4NzkxZDQxYWI0Mjkz
ZDI5NjRkNTdjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEyLTEwLTE3ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBtaXhlZCBjb250ZW50
IGxvZ2ljIG91dCBvZiBGcmFtZUxvYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDU2MzgKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRl
bC4KKworICAgICAgICBUaGlzIGNoYW5nZSBtb3ZlcyBjaGVja3MgZm9yIG1peGVkIGNvbnRlbnQg
b3V0IG9mIEZyYW1lTG9hZGVyLCBhbmQgaW50bworICAgICAgICBhIG5ldyBNaXhlZENvbnRlbnRD
aGVja2VyIG9iamVjdC4gSXQncyBhIHByZXR0eSBzdHJhaWdodGZvcndhcmQKKyAgICAgICAgcmVm
YWN0b3Jpbmcgd2l0aCBubyBjaGFuZ2UgdG8gdGhlIG92ZXJhbGwgbG9naWMsIGFuZCBvbmx5IG1p
bm9yIGNoYW5nZXMKKyAgICAgICAgdG8gdGhlIGNvZGUgdG8gcmVkdWNlIHJlcGV0aXRpb24uCisK
KyAgICAgICAgVGhlIG9ubHkgc3Vic3RhbnRpdmUgY2hhbmdlIGlzIHJlbmFtaW5nIHRoZSBtZXRo
b2RzIGZyb20gJ2NoZWNrSWYqJyB0bworICAgICAgICAnY2FuKicgdG8gcmVmbGVjdCB0aGUgdmFs
dWUgb2YgdGhlIGJvb2xlYW4gdGhleSByZXR1cm4uCisKKyAgICAgICAgVGhlIHZpc2libGUgZnVu
Y3Rpb25hbGl0eSBzaG91bGRuJ3QgY2hhbmdlOyB0aGlzIGNoYW5nZSBzaG91bGQgYmUKKyAgICAg
ICAgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBpbiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVk
Q29udGVudC4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIG1vc3RseSBhIHJldml0YWxpemF0aW9u
IG9mIEVyaWMgU2lkZWwncyBvcmlnaW5hbAorICAgICAgICBwYXRjaDogaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9Njc0MzImYWN0aW9uPXByZXR0eXBhdGNoCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgor
ICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAq
IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgICAgIEhleSwgbG9vayEgQSBuZXcgZmlsZSEK
KyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXI6OkZyYW1lTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjptaXhlZENvbnRlbnRDaGVja2VyKToKKyAg
ICAgICAgKEZyYW1lTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tl
ci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpNaXhl
ZENvbnRlbnRDaGVja2VyOjpNaXhlZENvbnRlbnRDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1peGVkQ29udGVudENoZWNrZXI6OmNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjphc1VURjgp
OgorICAgICAgICAoV2ViQ29yZTo6TWl4ZWRDb250ZW50Q2hlY2tlcjo6aXNNaXhlZENvbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6TWl4ZWRDb250ZW50Q2hlY2tlcjo6Y2FuRGlzcGxheUluc2Vj
dXJlQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpNaXhlZENvbnRlbnRDaGVja2VyOjpjYW5S
dW5JbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWl4ZWRDb250ZW50Q2hlY2tl
cjo6bG9nV2FybmluZyk6CisgICAgICAgICogbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE1peGVkQ29udGVudENoZWNrZXIp
OgorICAgICAgICAgICAgTWlncmF0ZSBmdW5jdGlvbmFsaXR5IGZyb20gRnJhbWVMb2FkZXI6OmNo
ZWNrSWYqIHRvCisgICAgICAgICAgICBNaXhlZENvbnRlbnRDaGVja2VyOjpjYW4qLgorICAgICAg
ICAqIGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFp
blJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9TdWJm
cmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6cGx1Z2lu
SXNMb2FkYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6bG9hZE1lZGlh
UGxheWVyUHJveHlQbHVnaW4pOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hl
Y2tJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAgICAgVXNlIHRoZSBuZXcgbWV0aG9kIGxvY2F0
aW9ucy4KKwogMjAxMi0xMC0xNyAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmVtb3ZlIHNoYWRvd0FuY2VzdG9yTm9kZSgpIGZyb20gVmlzaWJsZVNl
bGVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAzOTE2MzZmMDFjMzJiZjQyNTVh
M2Q0YmE3YjhhMDM4Yjk1YzMxNTU4Li5mMmVmNDlkNmY4NjRjYWI0ZDQ4MGEyMDU2M2RjNmI2ZjUw
MDQ3OTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEy
LTEwLTE3ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBt
aXhlZCBjb250ZW50IGxvZ2ljIG91dCBvZiBGcmFtZUxvYWRlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU2MzgKKworICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIFNlaWRlbC4KKworICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OmNoZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQpOgorICAg
ICAgICAgICAgVXNlIHRoZSBuZXcgbWV0aG9kIGxvY2F0aW9uLgorCiAyMDEyLTEwLTE2ICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAgIFtTaGFkb3cgRE9NXVtW
OF0gV2ViQ29yZTo6VjhET01XaW5kb3c6Omluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcygpIGlz
IHNsb3cgd2hlbiBzaGFkb3dET01FbmFibGVkIGZsYWcgaXMgb24uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CmluZGV4IGYwZmU0YTk0ZGQ4Nzc2MTI4ZjliNjcxOWE4OTZjMTkxNmJkY2FkOWIuLjMxMjYyZTdh
NWM5YTkwZWZmYzU1ZDM1ZTNjZmRhNjczYzU1OGNmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC0xNjM0LDYgKzE2MzQsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgbG9hZGVyL0ltYWdl
TG9hZGVyLmNwcAogICAgIGxvYWRlci9MaW5rTG9hZGVyLmNwcAogICAgIGxvYWRlci9NYWluUmVz
b3VyY2VMb2FkZXIuY3BwCisgICAgbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwCiAgICAg
bG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwCiAgICAgbG9hZGVyL05ldHNjYXBlUGx1Z0luU3Ry
ZWFtTG9hZGVyLmNwcAogICAgIGxvYWRlci9QaW5nTG9hZGVyLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KaW5kZXggNDBmMTM5MWYxOWJkZTdmZTk5YjFjZjJlZTc3NDRkMTRlN2Q3M2M4
YS4uM2FkODcwYTAwZWNjYTIzZTU5Y2M1ZjI5N2NkNzIwNzVmNjMxMTJkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zOTAwLDYgKzM5MDAsOCBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyQ2xpZW50LmggXAogCVNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmggXAorICAgIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcCBcCisgICAgU291cmNlL1dlYkNvcmUvbG9hZGVyL01p
eGVkQ29udGVudENoZWNrZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25B
Y3Rpb24uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCmluZGV4IDNhMDRmZWIwY2VjN2RjY2U1MDk3MzI5Y2M4MjYxN2IxOWI3MDIwZWUu
LmFmYjhkMjE2ZWViYmI4NTI3ZWY4NmZlMjk5ODE5ZDk5YzVhMDhkOTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpA
QCAtODMzLDYgKzgzMyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGxvYWRlci9JbWFnZUxvYWRlci5j
cHAgXAogICAgIGxvYWRlci9MaW5rTG9hZGVyLmNwcCBcCiAgICAgbG9hZGVyL01haW5SZXNvdXJj
ZUxvYWRlci5jcHAgXAorICAgIGxvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcCBcCiAgICAg
bG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwIFwKICAgICBsb2FkZXIvTmV0c2NhcGVQbHVnSW5T
dHJlYW1Mb2FkZXIuY3BwIFwKICAgICBsb2FkZXIvUGluZ0xvYWRlci5jcHAgXApAQCAtMTk1OCw2
ICsxOTU5LDcgQEAgSEVBREVSUyArPSBcCiAgICAgbG9hZGVyL0xpbmtMb2FkZXIuaCBcCiAgICAg
bG9hZGVyL0xpbmtMb2FkZXJDbGllbnQuaCBcCiAgICAgbG9hZGVyL01haW5SZXNvdXJjZUxvYWRl
ci5oIFwKKyAgICBsb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5oIFwKICAgICBsb2FkZXIvTmF2
aWdhdGlvbkFjdGlvbi5oIFwKICAgICBsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIu
aCBcCiAgICAgbG9hZGVyL1BsYWNlaG9sZGVyRG9jdW1lbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggMGE0NzdiODkzMGI5MmUxNmRhNmY0ODU0ODQxNWIxMTBiNGI0NjMwYS4uNWJkODIxNjdkM2Nm
ZGVjNTdlY2M1N2YxOWMxYjNjZDgzYTIxY2UxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjk5Myw2
ICsyOTkzLDggQEAKICAgICAgICAgICAgICdsb2FkZXIvTGlua0xvYWRlckNsaWVudC5oJywKICAg
ICAgICAgICAgICdsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCcsCiAgICAgICAgICAgICAn
bG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oJywKKyAgICAgICAgICAgICdsb2FkZXIvTWl4ZWRD
b250ZW50Q2hlY2tlci5jcHAnLAorICAgICAgICAgICAgJ2xvYWRlci9NaXhlZENvbnRlbnRDaGVj
a2VyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcCcsCiAgICAg
ICAgICAgICAnbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwJywKICAgICAgICAgICAgICds
b2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZTM4N2VmMzBhM2QxMTgzMGI2YzM3
MTgxNzg3Njg5NjdiZGIzYTk5My4uNjQwZDM0NzZhYTBiNjZlMTc3ZTNjOWMyNDAyZjVlYjQyN2Iw
YmFiMCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTI3NjE1LDYgKzI3NjE1LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxNaXhlZENvbnRlbnRDaGVja2VyLmNwcCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXE1peGVk
Q29udGVudENoZWNrZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5cbG9hZGVyXE5hdmlnYXRpb25BY3Rpb24uY3BwIgogCQkJCT4KIAkJCTwvRmls
ZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAwODQ5OGUzY2NlYTZiMTUxMTc2NDg1MTZmM2IzMTZlMzU3N2JlNWU4Li5lOGI1NzAx
NzUyOWQwYmYxOTljMjExNTFmYjk0N2Q1YTdmZmMyMzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNzU0LDYgKzE3NTQsNyBA
QAogCQk2NTZEMzczRTBBREJBNURFMDBBNDU1NEQgLyogRnJhbWVMb2FkZXJDbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NkQzNzI2MEFEQkE1
REUwMEE0NTU0RCAvKiBGcmFtZUxvYWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTY1NkQzNzNGMEFEQkE1REUwMEE0NTU0RCAvKiBS
ZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNjU2RDM3MjcwQURCQTVERTAwQTQ1NTREIC8qIFJlc291cmNlTG9hZGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNjU2RDM3NDEwQURC
QTVERTAwQTQ1NTREIC8qIE1haW5SZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2RDM3MjkwQURCQTVERTAwQTQ1NTREIC8qIE1h
aW5SZXNvdXJjZUxvYWRlci5oICovOyB9OworCQk1MkYxMDg2NjE2MkI2REE4MDA5QUM4MUUgLyog
TWl4ZWRDb250ZW50Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTJGMTA4NjMxNjJCNkQ4MjAwOUFDODFFIC8qIE1peGVkQ29udGVudENoZWNr
ZXIuaCAqLzsgfTsKIAkJNjU2RDM3NDMwQURCQTVERTAwQTQ1NTREIC8qIE5ldHNjYXBlUGx1Z0lu
U3RyZWFtTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2NTZEMzcyQjBBREJBNURFMDBBNDU1NEQgLyogTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2Fk
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2
NTZEMzc0ODBBREJBNURFMDBBNDU1NEQgLyogU3VicmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NkQzNzMwMEFEQkE1REUwMEE0
NTU0RCAvKiBTdWJyZXNvdXJjZUxvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTY1NzFEQ0M4MTM4NUU2QTQwMDcwMkREMCAvKiBNZW1vcnlQ
cmVzc3VyZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDY1N0VEQTA3MTM4NUNCOTcwMDRFMDY0NSAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzMz
NSw2ICszMzM2LDcgQEAKIAkJOTNEOUQ1M0MwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRh
cnlQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNEOUQ1M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTIyN0UwMEFGNTg5
QUQwMEQ0ODMyNCAvKiBEb2N1bWVudExvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyMjdEQjBBRjU4OUFEMDBENDgzMjQgLyogRG9jdW1l
bnRMb2FkZXIuY3BwICovOyB9OwogCQk5M0UyMjdFMTBBRjU4OUFEMDBENDgzMjQgLyogTWFpblJl
c291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzRTIyN0RDMEFGNTg5QUQwMEQ0ODMyNCAvKiBNYWluUmVzb3VyY2VMb2FkZXIuY3Bw
ICovOyB9OworCQk1MkYxMDg2NTE2MkI2REE0MDA5QUM4MUUgLyogTWl4ZWRDb250ZW50Q2hlY2tl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkYx
MDg2MjE2MkI2RDgyMDA5QUM4MUUgLyogTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAgKi87IH07CiAJ
CTkzRTIyN0UzMEFGNTg5QUQwMEQ0ODMyNCAvKiBSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyMjdERTBBRjU4OUFEMDBE
NDgzMjQgLyogUmVzb3VyY2VMb2FkZXIuY3BwICovOyB9OwogCQk5M0UyMjdFNDBBRjU4OUFEMDBE
NDgzMjQgLyogU3VicmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMjI3REYwQUY1ODlBRDAwRDQ4MzI0IC8qIFN1YnJlc291
cmNlTG9hZGVyLmNwcCAqLzsgfTsKIAkJOTNFMjQxRkYwQjJCNEU0MDAwQzczMkExIC8qIEhUTUxG
cmFtZU93bmVyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNFMjQxRkUwQjJCNEU0MDAwQzczMkExIC8qIEhUTUxGcmFtZU93bmVyRWxlbWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04
ODMyLDYgKzg4MzQsOCBAQAogCQk1MkNDQTlFNTE1RTNGNjRDMDA1M0M3N0YgLyogRE9NRE9NTmFt
ZWRGbG93Q29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01E
T01OYW1lZEZsb3dDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUy
Q0NBOUU2MTVFM0Y2NEMwMDUzQzc3RiAvKiBET01ET01OYW1lZEZsb3dDb2xsZWN0aW9uLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NRE9NTmFtZWRGbG93Q29s
bGVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQ0E5RTcxNUUzRjY0
QzAwNTNDNzdGIC8qIERPTURPTU5hbWVkRmxvd0NvbGxlY3Rpb25JbnRlcm5hbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01ET01OYW1lZEZsb3dDb2xsZWN0aW9uSW50ZXJu
YWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJGMTA4NjIxNjJCNkQ4MjAwOUFD
ODFFIC8qIE1peGVkQ29udGVudENoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTWl4ZWRDb250ZW50Q2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUyRjEwODYzMTYyQjZEODIwMDlBQzgxRSAvKiBNaXhlZENvbnRlbnRDaGVja2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1peGVkQ29udGVudENoZWNrZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJGNTJFMTAxNEEwMTM0RjAwQUNDMzk3
IC8qIE5TU2Nyb2xsZXJJbXBEZXRhaWxzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gTlNTY3JvbGxlckltcERldGFpbHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUzMTc2MTIwMTNDNTE2NjkwMDI2RTQ1NCAvKiBTdHlsZUZsZXhpYmxlQm94RGF0
YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdHlsZUZsZXhpYmxl
Qm94RGF0YS5jcHA7IHBhdGggPSBzdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzMTc2MTIxMTNDNTE2NjkwMDI2RTQ1NCAvKiBTdHls
ZUZsZXhpYmxlQm94RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdHls
ZUZsZXhpYmxlQm94RGF0YS5oOyBwYXRoID0gc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg5NjIsNiArODk2Niw3IEBACiAJCTY1NkQz
NzI2MEFEQkE1REUwMEE0NTU0RCAvKiBGcmFtZUxvYWRlckNsaWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRnJhbWVMb2FkZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNjU2RDM3MjcwQURCQTVERTAwQTQ1NTREIC8qIFJlc291cmNlTG9hZGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUxvYWRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTZEMzcyOTBBREJBNURFMDBBNDU1NEQgLyog
TWFpblJlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
YWluUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJGMTA4
NjYxNjJCNkRBODAwOUFDODFFIC8qIE1peGVkQ29udGVudENoZWNrZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRjEwODYzMTYyQjZEODIwMDlBQzgx
RSAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmggKi87IH07CiAJCTY1NkQzNzJCMEFEQkE1REUwMEE0
NTU0RCAvKiBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNjU2RDM3MzAwQURCQTVERTAwQTQ1NTREIC8qIFN1YnJlc291cmNl
TG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdWJyZXNvdXJjZUxv
YWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTdFREEwNjEzODVDQjk3MDA0
RTA2NDUgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lbW9yeVByZXNzdXJlSGFuZGxlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMDU0Nyw2ICsxMDU1Miw3IEBACiAJCTkzRDlENTNCMERBMjdFMTgw
MDc3MjE2QyAvKiBSYW5nZUJvdW5kYXJ5UG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmFuZ2VCb3VuZGFyeVBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzRTIyN0RCMEFGNTg5QUQwMEQ0ODMyNCAvKiBEb2N1bWVudExvYWRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudExvYWRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTIyN0RDMEFGNTg5QUQwMEQ0ODMyNCAvKiBNYWlu
UmVzb3VyY2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TWFpblJlc291cmNlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJG
MTA4NjIxNjJCNkQ4MjAwOUFDODFFIC8qIE1peGVkQ29udGVudENoZWNrZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWl4ZWRDb250ZW50Q2hlY2tlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTIyN0REMEFGNTg5QUQwMEQ0ODMyNCAvKiBO
ZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzRTIyN0RFMEFGNTg5QUQwMEQ0ODMyNCAvKiBSZXNvdXJjZUxvYWRl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNvdXJjZUxvYWRl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTIyN0RGMEFGNTg5QUQwMEQ0
ODMyNCAvKiBTdWJyZXNvdXJjZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTdWJyZXNvdXJjZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMDY3Myw2ICsyMDY3OSw4IEBACiAJCQkJOTg0MjY0RUYxMkQ1MjgwQTAwMEQ4OEE0
IC8qIExpbmtMb2FkZXJDbGllbnQuaCAqLywKIAkJCQk5M0UyMjdEQzBBRjU4OUFEMDBENDgzMjQg
LyogTWFpblJlc291cmNlTG9hZGVyLmNwcCAqLywKIAkJCQk2NTZEMzcyOTBBREJBNURFMDBBNDU1
NEQgLyogTWFpblJlc291cmNlTG9hZGVyLmggKi8sCisJCQkJNTJGMTA4NjIxNjJCNkQ4MjAwOUFD
ODFFIC8qIE1peGVkQ29udGVudENoZWNrZXIuY3BwICovLAorCQkJCTUyRjEwODYzMTYyQjZEODIw
MDlBQzgxRSAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmggKi8sCiAJCQkJOTNDQ0YwNUYwQUY2Q0E3
NjAwMDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uY3BwICovLAogCQkJCTkzQ0NGMDI2MEFGNkM1
MjkwMDAxOEU4OSAvKiBOYXZpZ2F0aW9uQWN0aW9uLmggKi8sCiAJCQkJOTc5RjQzRDExMDc1RTQ0
QTAwMDBGODNCIC8qIE5hdmlnYXRpb25TY2hlZHVsZXIuY3BwICovLApAQCAtMjQ0NTAsNiArMjQ0
NTgsNyBAQAogCQkJCUJDRTFDNDFCMEQ5ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTgyMzlFMDEwOUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTY1NkQzNzQxMEFEQkE1REUwMEE0NTU0RCAvKiBNYWluUmVzb3VyY2VM
b2FkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTUyRjEwODY2MTYyQjZEQTgwMDlBQzgxRSAvKiBN
aXhlZENvbnRlbnRDaGVja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJDNjBEQjU1Q0RD
MDAxREI3OTQgLyogTWFuaWZlc3RQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REY4
MDk5RTY0OTIwMDU2RTU4MSAvKiBtYXJrdXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3MjhDMzE0
MTI2OEU0MzkwMDQxRTg5QiAvKiBNYXJrdXBBY2N1bXVsYXRvci5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNzc3Miw2ICsyNzc4MSw3IEBACiAJCQkJQTgyMzlFMDAwOUIzQ0Y4QTAwQjYwNjQxIC8qIExv
Z2dpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQwMjY0NUUwQUZEQzE5QjAwNTkxOUUyIC8q
IExvZ2dpbmdNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5M0UyMjdFMTBBRjU4OUFEMDBENDgz
MjQgLyogTWFpblJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUyRjEwODY1
MTYyQjZEQTQwMDlBQzgxRSAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBOEY2QkM1MERCNTVDREMwMDFEQjc5NCAvKiBNYW5pZmVzdFBhcnNlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5MzMwOURGNzA5OUU2NDkyMDA1NkU1ODEgLyogbWFya3VwLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTk3MjhDMzEzMTI2OEU0MzkwMDQxRTg5QiAvKiBNYXJrdXBBY2N1
bXVsYXRvci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCmluZGV4IDhhYjNkODkyMjlkYzlkMTI5ZDk3N2RjZTFlYzA3M2FjMTAwNjZlYjMuLmE4NGM1
MDhlYmJjOTNkZTg3Yzg4OWMzMDAzNjNjMDQ3OGIyYWQyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcApAQCAtMjEyLDYgKzIxMiw3IEBAIEZyYW1lTG9hZGVyOjpGcmFtZUxv
YWRlcihGcmFtZSogZnJhbWUsIEZyYW1lTG9hZGVyQ2xpZW50KiBjbGllbnQpCiAgICAgLCBtX25v
dGlmZXIoZnJhbWUpCiAgICAgLCBtX3N1YmZyYW1lTG9hZGVyKGZyYW1lKQogICAgICwgbV9pY29u
KGZyYW1lKQorICAgICwgbV9taXhlZENvbnRlbnRDaGVja2VyKGZyYW1lKQogICAgICwgbV9zdGF0
ZShGcmFtZVN0YXRlQ29tbWl0dGVkUGFnZSkKICAgICAsIG1fbG9hZFR5cGUoRnJhbWVMb2FkVHlw
ZVN0YW5kYXJkKQogICAgICwgbV9kZWxlZ2F0ZUlzSGFuZGxpbmdQcm92aXNpb25hbExvYWRFcnJv
cihmYWxzZSkKQEAgLTkxNCw1MSArOTE1LDYgQEAgU3RyaW5nIEZyYW1lTG9hZGVyOjpvdXRnb2lu
Z09yaWdpbigpIGNvbnN0CiAgICAgcmV0dXJuIG1fZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCktPnRvU3RyaW5nKCk7CiB9CiAKLWJvb2wgRnJhbWVMb2FkZXI6OmlzTWl4ZWRDb250
ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJMJiB1cmwpCi17Ci0gICAgaWYg
KGNvbnRleHQtPnByb3RvY29sKCkgIT0gImh0dHBzIikKLSAgICAgICAgcmV0dXJuIGZhbHNlOyAg
Ly8gV2Ugb25seSBjYXJlIGFib3V0IEhUVFBTIHNlY3VyaXR5IG9yaWdpbnMuCi0KLSAgICAvLyBX
ZSdyZSBpbiBhIHNlY3VyZSBjb250ZXh0LCBzbyB8dXJsfCBpcyBtaXhlZCBjb250ZW50IGlmIGl0
J3MgaW5zZWN1cmUuCi0gICAgcmV0dXJuICFTZWN1cml0eU9yaWdpbjo6aXNTZWN1cmUodXJsKTsK
LX0KLQotYm9vbCBGcmFtZUxvYWRlcjo6Y2hlY2tJZkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQoU2Vj
dXJpdHlPcmlnaW4qIGNvbnRleHQsIGNvbnN0IEtVUkwmIHVybCkKLXsKLSAgICBpZiAoIWlzTWl4
ZWRDb250ZW50KGNvbnRleHQsIHVybCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgU2V0
dGluZ3MqIHNldHRpbmdzID0gbV9mcmFtZS0+c2V0dGluZ3MoKTsKLSAgICBib29sIGFsbG93ZWQg
PSBtX2NsaWVudC0+YWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KHNldHRpbmdzICYmIHNl
dHRpbmdzLT5hbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCgpLCBjb250ZXh0LCB1cmwpOwot
ICAgIFN0cmluZyBtZXNzYWdlID0gKGFsbG93ZWQgPyBlbXB0eVN0cmluZygpIDogIltibG9ja2Vk
XSAiKSArICJUaGUgcGFnZSBhdCAiICsKLSAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJs
KCkuc3RyaW5nKCkgKyAiIGRpc3BsYXllZCBpbnNlY3VyZSBjb250ZW50IGZyb20gIiArIHVybC5z
dHJpbmcoKSArICIuXG4iOwotICAgICAgICAKLSAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5kb21X
aW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEhUTUxNZXNzYWdlU291cmNlLCBMb2dNZXNz
YWdlVHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7Ci0KLSAgICBpZiAoYWxsb3dl
ZCkKLSAgICAgICAgbV9jbGllbnQtPmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKTsKLQotICAg
IHJldHVybiBhbGxvd2VkOwotfQotCi1ib29sIEZyYW1lTG9hZGVyOjpjaGVja0lmUnVuSW5zZWN1
cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJMJiB1cmwpCi17Ci0g
ICAgaWYgKCFpc01peGVkQ29udGVudChjb250ZXh0LCB1cmwpKQotICAgICAgICByZXR1cm4gdHJ1
ZTsKLQotICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fZnJhbWUtPnNldHRpbmdzKCk7Ci0gICAg
Ym9vbCBhbGxvd2VkID0gbV9jbGllbnQtPmFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudChzZXR0
aW5ncyAmJiBzZXR0aW5ncy0+YWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQoKSwgY29udGV4
dCwgdXJsKTsKLSAgICBTdHJpbmcgbWVzc2FnZSA9IChhbGxvd2VkID8gZW1wdHlTdHJpbmcoKSA6
ICJbYmxvY2tlZF0gIikgKyAiVGhlIHBhZ2UgYXQgIiArCi0gICAgICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPnVybCgpLnN0cmluZygpICsgIiByYW4gaW5zZWN1cmUgY29udGVudCBmcm9tICIgKyB1
cmwuc3RyaW5nKCkgKyAiLlxuIjsKLSAgICAgICAKLSAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5k
b21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEhUTUxNZXNzYWdlU291cmNlLCBMb2dN
ZXNzYWdlVHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7Ci0KLSAgICBpZiAoYWxs
b3dlZCkKLSAgICAgICAgbV9jbGllbnQtPmRpZFJ1bkluc2VjdXJlQ29udGVudChjb250ZXh0LCB1
cmwpOwotCi0gICAgcmV0dXJuIGFsbG93ZWQ7Ci19Ci0KIGJvb2wgRnJhbWVMb2FkZXI6OmNoZWNr
SWZGb3JtQWN0aW9uQWxsb3dlZEJ5Q1NQKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKIHsKICAgICBp
ZiAobV9zdWJtaXR0ZWRGb3JtVVJMLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmgKaW5kZXggNGYxNDBhMTg0MDg3Yzk1ODg2MDZmZjI0Y2E4YTg4OTRkNjYzY2E4Yy4uZTc4
ZWU0ZTllMTQwM2M5MGNkZTgxMWY0MWQ2YjhlMGY5MWQ4MjAzNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJJY29uQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIkljb25VUkwuaCIKICNpbmNsdWRlICJMYXlvdXRNaWxlc3RvbmVzLmgi
CisjaW5jbHVkZSAiTWl4ZWRDb250ZW50Q2hlY2tlci5oIgogI2luY2x1ZGUgIlBvbGljeUNoZWNr
ZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9h
ZE5vdGlmaWVyLmgiCkBAIC05Myw2ICs5NCw3IEBAIHB1YmxpYzoKICAgICBSZXNvdXJjZUxvYWRO
b3RpZmllciogbm90aWZpZXIoKSBjb25zdCB7IHJldHVybiAmbV9ub3RpZmVyOyB9CiAgICAgU3Vi
ZnJhbWVMb2FkZXIqIHN1YmZyYW1lTG9hZGVyKCkgY29uc3QgeyByZXR1cm4gJm1fc3ViZnJhbWVM
b2FkZXI7IH0KICAgICBJY29uQ29udHJvbGxlciogaWNvbigpIGNvbnN0IHsgcmV0dXJuICZtX2lj
b247IH0KKyAgICBNaXhlZENvbnRlbnRDaGVja2VyKiBtaXhlZENvbnRlbnRDaGVja2VyKCkgY29u
c3QgeyByZXR1cm4gJm1fbWl4ZWRDb250ZW50Q2hlY2tlcjsgfQogCiAgICAgdm9pZCBwcmVwYXJl
Rm9ySGlzdG9yeU5hdmlnYXRpb24oKTsKICAgICB2b2lkIHNldHVwRm9yUmVwbGFjZSgpOwpAQCAt
MjEzLDExICsyMTUsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBmb3JjZVNhbmRib3hGbGFncyhTYW5k
Ym94RmxhZ3MgZmxhZ3MpIHsgbV9mb3JjZWRTYW5kYm94RmxhZ3MgfD0gZmxhZ3M7IH0KICAgICBT
YW5kYm94RmxhZ3MgZWZmZWN0aXZlU2FuZGJveEZsYWdzKCkgY29uc3Q7CiAKLSAgICAvLyBNaXhl
ZCBjb250ZW50IHJlbGF0ZWQgZnVuY3Rpb25zLgotICAgIHN0YXRpYyBib29sIGlzTWl4ZWRDb250
ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJMJik7Ci0gICAgYm9vbCBjaGVj
a0lmRGlzcGxheUluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiogY29udGV4dCwgY29uc3Qg
S1VSTCYpOwotICAgIGJvb2wgY2hlY2tJZlJ1bkluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdp
biogY29udGV4dCwgY29uc3QgS1VSTCYpOwotCiAgICAgYm9vbCBjaGVja0lmRm9ybUFjdGlvbkFs
bG93ZWRCeUNTUChjb25zdCBLVVJMJikgY29uc3Q7CiAKICAgICBGcmFtZSogb3BlbmVyKCk7CkBA
IC0zNzQsMTIgKzM3MSwxNiBAQCBwcml2YXRlOgogICAgIEZyYW1lKiBtX2ZyYW1lOwogICAgIEZy
YW1lTG9hZGVyQ2xpZW50KiBtX2NsaWVudDsKIAorICAgIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQg
YmUgT3duUHRyPFQ+IHRvIHJlZHVjZSBidWlsZCB0aW1lcyBhbmQgc2ltcGxpZnkKKyAgICAvLyBo
ZWFkZXIgZGVwZW5kZW5jaWVzIHVubGVzcyBwZXJmb3JtYW5jZSB0ZXN0aW5nIHByb3ZlcyBvdGhl
cndpc2UuCisgICAgLy8gU29tZSBvZiB0aGVzZSBjb3VsZCBiZSBsYXppbHkgY3JlYXRlZCBmb3Ig
bWVtb3J5IHNhdmluZ3Mgb24gZGV2aWNlcy4KICAgICBtdXRhYmxlIFBvbGljeUNoZWNrZXIgbV9w
b2xpY3lDaGVja2VyOwogICAgIG11dGFibGUgSGlzdG9yeUNvbnRyb2xsZXIgbV9oaXN0b3J5Owog
ICAgIG11dGFibGUgUmVzb3VyY2VMb2FkTm90aWZpZXIgbV9ub3RpZmVyOwogICAgIG11dGFibGUg
U3ViZnJhbWVMb2FkZXIgbV9zdWJmcmFtZUxvYWRlcjsKICAgICBtdXRhYmxlIEZyYW1lTG9hZGVy
U3RhdGVNYWNoaW5lIG1fc3RhdGVNYWNoaW5lOwogICAgIG11dGFibGUgSWNvbkNvbnRyb2xsZXIg
bV9pY29uOworICAgIG11dGFibGUgTWl4ZWRDb250ZW50Q2hlY2tlciBtX21peGVkQ29udGVudENo
ZWNrZXI7CiAKICAgICBjbGFzcyBGcmFtZVByb2dyZXNzVHJhY2tlcjsKICAgICBPd25QdHI8RnJh
bWVQcm9ncmVzc1RyYWNrZXI+IG1fcHJvZ3Jlc3NUcmFja2VyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAppbmRleCAxZjliYjQ2NTI1MzI1NTI3ODE5YmFm
MDJhZDFmNmVhZjA0NzBiNmZiLi40ODVhYWEyYzFiYjk0Zjk0NGU5ZmY0NDFhYTdlOWRlNjZjYzll
N2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcApA
QCAtMjM2LDcgKzIzNiw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVl
c3QoUmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBjb25zdCBSZXNvCiAKICAgICBGcmFtZSog
dG9wID0gbV9mcmFtZS0+dHJlZSgpLT50b3AoKTsKICAgICBpZiAodG9wICE9IG1fZnJhbWUpIHsK
LSAgICAgICAgaWYgKCFmcmFtZUxvYWRlcigpLT5jaGVja0lmRGlzcGxheUluc2VjdXJlQ29udGVu
dCh0b3AtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIG5ld1JlcXVlc3QudXJsKCkpKSB7
CisgICAgICAgIGlmICghZnJhbWVMb2FkZXIoKS0+bWl4ZWRDb250ZW50Q2hlY2tlcigpLT5jYW5E
aXNwbGF5SW5zZWN1cmVDb250ZW50KHRvcC0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwg
bmV3UmVxdWVzdC51cmwoKSkpIHsKICAgICAgICAgICAgIGNhbmNlbCgpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4
ZWRDb250ZW50Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50
Q2hlY2tlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzFmZDJiMzZlYWJiMzkxYTY0ODMyZDk1NDFjNTJmOTU5
NTRiMTQ2OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENv
bnRlbnRDaGVja2VyLmNwcApAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4g
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4g
CisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxl
Iikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJNaXhlZENvbnRlbnRDaGVja2VyLmgiCisKKyNpbmNsdWRlICJDb25zb2xl
LmgiCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAi
U2NoZW1lUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUg
IlNldHRpbmdzLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01peGVkQ29udGVu
dENoZWNrZXI6Ok1peGVkQ29udGVudENoZWNrZXIoRnJhbWUqIGZyYW1lKQorICAgIDogbV9mcmFt
ZShmcmFtZSkKK3sKK30KKworRnJhbWVMb2FkZXJDbGllbnQqIE1peGVkQ29udGVudENoZWNrZXI6
OmNsaWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQo
KTsKK30KKworc3RhdGljIGlubGluZSBDU3RyaW5nIGFzVVRGOChjb25zdCBLVVJMJiB1cmwpCit7
CisgICAgcmV0dXJuIHVybC5zdHJpbmcoKS51dGY4KCk7Cit9CisKK2Jvb2wgTWl4ZWRDb250ZW50
Q2hlY2tlcjo6aXNNaXhlZENvbnRlbnQoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBj
b25zdCBLVVJMJiB1cmwpCit7CisgICAgaWYgKHNlY3VyaXR5T3JpZ2luLT5wcm90b2NvbCgpICE9
ICJodHRwcyIpCisgICAgICAgIHJldHVybiBmYWxzZTsgLy8gV2Ugb25seSBjYXJlIGFib3V0IEhU
VFBTIHNlY3VyaXR5IG9yaWdpbnMuCisKKyAgICAvLyBXZSdyZSBpbiBhIHNlY3VyZSBjb250ZXh0
LCBzbyB8dXJsfCBpcyBtaXhlZCBjb250ZW50IGlmIGl0J3MgaW5zZWN1cmUuCisgICAgcmV0dXJu
ICFTZWN1cml0eU9yaWdpbjo6aXNTZWN1cmUodXJsKTsKK30KKworYm9vbCBNaXhlZENvbnRlbnRD
aGVja2VyOjpjYW5EaXNwbGF5SW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0
eU9yaWdpbiwgY29uc3QgS1VSTCYgdXJsKSBjb25zdAoreworICAgIGlmICghaXNNaXhlZENvbnRl
bnQoc2VjdXJpdHlPcmlnaW4sIHVybCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgU2V0
dGluZ3MqIHNldHRpbmdzID0gbV9mcmFtZS0+c2V0dGluZ3MoKTsKKyAgICBib29sIGFsbG93ZWQg
PSBjbGllbnQoKS0+YWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KHNldHRpbmdzICYmIHNl
dHRpbmdzLT5hbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCgpLCBzZWN1cml0eU9yaWdpbiwg
dXJsKTsKKyAgICBsb2dXYXJuaW5nKGFsbG93ZWQsICJkaXNwbGF5ZWQiLCB1cmwpOworCisgICAg
aWYgKGFsbG93ZWQpCisgICAgICAgIGNsaWVudCgpLT5kaWREaXNwbGF5SW5zZWN1cmVDb250ZW50
KCk7CisKKyAgICByZXR1cm4gYWxsb3dlZDsKK30KKworYm9vbCBNaXhlZENvbnRlbnRDaGVja2Vy
OjpjYW5SdW5JbnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBj
b25zdCBLVVJMJiB1cmwpIGNvbnN0Cit7CisgICAgaWYgKCFpc01peGVkQ29udGVudChzZWN1cml0
eU9yaWdpbiwgdXJsKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBTZXR0aW5ncyogc2V0
dGluZ3MgPSBtX2ZyYW1lLT5zZXR0aW5ncygpOworICAgIGJvb2wgYWxsb3dlZCA9IGNsaWVudCgp
LT5hbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoc2V0dGluZ3MgJiYgc2V0dGluZ3MtPmFsbG93
UnVubmluZ09mSW5zZWN1cmVDb250ZW50KCksIHNlY3VyaXR5T3JpZ2luLCB1cmwpOworICAgIGxv
Z1dhcm5pbmcoYWxsb3dlZCwgInJhbiIsIHVybCk7CisKKyAgICBpZiAoYWxsb3dlZCkKKyAgICAg
ICAgY2xpZW50KCktPmRpZFJ1bkluc2VjdXJlQ29udGVudChzZWN1cml0eU9yaWdpbiwgdXJsKTsK
KworICAgIHJldHVybiBhbGxvd2VkOworfQorCit2b2lkIE1peGVkQ29udGVudENoZWNrZXI6Omxv
Z1dhcm5pbmcoYm9vbCBhbGxvd2VkLCBjb25zdCBTdHJpbmcmIGFjdGlvbiwgY29uc3QgS1VSTCYg
dGFyZ2V0KSBjb25zdAoreworICAgIENvbnNvbGUqIGNvbnNvbGUgPSBtX2ZyYW1lLT5kb2N1bWVu
dCgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpOworICAgIC8vIEZJWE1FOiBXaHkgZG9lcyB0aGlz
IG1lc3NhZ2Ugbm90IGhhdmUgYSBzb3VyY2UgVVJMIG9yIGEgbGluZSBudW1iZXI/IHdlYmtpdC5v
cmcvYi85Nzk3OQorICAgIFN0cmluZyBtZXNzYWdlID0gU3RyaW5nOjpmb3JtYXQoIiVzVGhlIHBh
Z2UgYXQgJXMgJXMgaW5zZWN1cmUgY29udGVudCBmcm9tICVzLlxuIiwKKyAgICAgICAgKGFsbG93
ZWQgPyAiIiA6ICJbYmxvY2tlZF0gIiksIGFzVVRGOChtX2ZyYW1lLT5kb2N1bWVudCgpLT51cmwo
KSkuZGF0YSgpLCBhY3Rpb24udXRmOCgpLmRhdGEoKSwgYXNVVEY4KHRhcmdldCkuZGF0YSgpKTsK
KyAgICBjb25zb2xlLT5hZGRNZXNzYWdlKEhUTUxNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlw
ZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVj
a2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmVlN2RhZjYxOTUxNzA1ZmQ3Y2I2N2NiZGRhZmY5M2M1ZDE4YzI1YjYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5oCkBA
IC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIE1peGVkQ29udGVudENoZWNrZXJfaAorI2RlZmluZSBNaXhl
ZENvbnRlbnRDaGVja2VyX2gKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lOworY2xhc3MgRnJhbWVMb2FkZXJDbGll
bnQ7CitjbGFzcyBLVVJMOworY2xhc3MgU2VjdXJpdHlPcmlnaW47CisKK2NsYXNzIE1peGVkQ29u
dGVudENoZWNrZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1peGVkQ29udGVudENoZWNr
ZXIpOworcHVibGljOgorICAgIE1peGVkQ29udGVudENoZWNrZXIoRnJhbWUqKTsKKworICAgIGJv
b2wgY2FuRGlzcGxheUluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwm
KSBjb25zdDsKKyAgICBib29sIGNhblJ1bkluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbios
IGNvbnN0IEtVUkwmKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICAvLyBGSVhNRTogVGhpcyBzaG91
bGQgcHJvYmFibHkgaGF2ZSBhIHNlcGFyYXRlIGNsaWVudCBmcm9tIEZyYW1lTG9hZGVyLgorICAg
IEZyYW1lTG9hZGVyQ2xpZW50KiBjbGllbnQoKSBjb25zdDsKKworICAgIHN0YXRpYyBib29sIGlz
TWl4ZWRDb250ZW50KFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYpOworICAgIHZvaWQgbG9n
V2FybmluZyhib29sIGFsbG93ZWQsIGNvbnN0IFN0cmluZyYgYWN0aW9uLCBjb25zdCBLVVJMJikg
Y29uc3Q7CisKKyAgICBGcmFtZSogbV9mcmFtZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIE1peGVkQ29udGVudENoZWNrZXJfaAorCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAppbmRleCBjM2IzOGE4N2M4NDg3YzQwYTBjM2MzZWM5OWU1
NjljZjZlZDFmODZjLi5hYjQ2MWY2ZDZlNTk3ZWViMTMxYmMxOGNhOGY2NGQ2ZDFlMzVkZTgxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKQEAgLTEzNiw3ICsxMzYs
NyBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpwbHVnaW5Jc0xvYWRhYmxlKEhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQqIHBsdWdpbkVsZW1lbnQsIGNvbgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1fZnJhbWUtPmxvYWRlcigpICYmICFtX2ZyYW1lLT5s
b2FkZXIoKS0+Y2hlY2tJZlJ1bkluc2VjdXJlQ29udGVudChkb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpLCB1cmwpKQorICAgICAgICBpZiAobV9mcmFtZS0+bG9hZGVyKCkgJiYgIW1fZnJhbWUt
PmxvYWRlcigpLT5taXhlZENvbnRlbnRDaGVja2VyKCktPmNhblJ1bkluc2VjdXJlQ29udGVudChk
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmwpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KIApAQCAtMjY1LDcgKzI2NSw3IEBAIFBhc3NSZWZQdHI8V2lkZ2V0PiBTdWJm
cmFtZUxvYWRlcjo6bG9hZE1lZGlhUGxheWVyUHJveHlQbHVnaW4oTm9kZSogbm9kZSwgY29uc3QK
ICAgICBlbHNlIGlmIChtZWRpYUVsZW1lbnQtPmlzVmlkZW8oKSkKICAgICAgICAgc2l6ZSA9IFJl
bmRlclZpZGVvOjpkZWZhdWx0U2l6ZSgpOwogCi0gICAgaWYgKCFtX2ZyYW1lLT5sb2FkZXIoKS0+
Y2hlY2tJZlJ1bkluc2VjdXJlQ29udGVudChtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpLCBjb21wbGV0ZWRVUkwpKQorICAgIGlmICghbV9mcmFtZS0+bG9hZGVyKCktPm1peGVk
Q29udGVudENoZWNrZXIoKS0+Y2FuUnVuSW5zZWN1cmVDb250ZW50KG1fZnJhbWUtPmRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCksIGNvbXBsZXRlZFVSTCkpCiAgICAgICAgIHJldHVybiAwOwog
CiAgICAgUmVmUHRyPFdpZGdldD4gd2lkZ2V0ID0gbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgp
LT5jcmVhdGVNZWRpYVBsYXllclByb3h5UGx1Z2luKHNpemUsIG1lZGlhRWxlbWVudCwgY29tcGxl
dGVkVVJMLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHAKaW5kZXggYzZjZTQwNmI2M2E2NzA1NzRjYzVjZGQ4NmU4MDk2NGVmOWNl
NjU3Ny4uN2M0MjBjMDY2OGY4ODNhYzY4OWIyZjBlZTU3MDJmZDgwODA4Nzc5NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
CkBAIC0yNjEsNyArMjYxLDcgQEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tJbnNl
Y3VyZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QKICAgICAgICAgLy8g
VGhlc2UgcmVzb3VyY2UgY2FuIGluamVjdCBzY3JpcHQgaW50byB0aGUgY3VycmVudCBkb2N1bWVu
dCAoU2NyaXB0LAogICAgICAgICAvLyBYU0wpIG9yIGV4ZmlsdHJhdGUgdGhlIGNvbnRlbnQgb2Yg
dGhlIGN1cnJlbnQgZG9jdW1lbnQgKENTUykuCiAgICAgICAgIGlmIChGcmFtZSogZiA9IGZyYW1l
KCkpCi0gICAgICAgICAgICBpZiAoIWYtPmxvYWRlcigpLT5jaGVja0lmUnVuSW5zZWN1cmVDb250
ZW50KG1fZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIHVybCkpCisgICAgICAgICAgICBpZiAo
IWYtPmxvYWRlcigpLT5taXhlZENvbnRlbnRDaGVja2VyKCktPmNhblJ1bkluc2VjdXJlQ29udGVu
dChtX2RvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCB1cmwpKQogICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpAQCAt
Mjc2LDcgKzI3Niw3IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNoZWNrSW5zZWN1cmVD
b250ZW50KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0CiAgICAgICAgIC8vIFRoZXNl
IHJlc291cmNlcyBjYW4gY29ycnVwdCBvbmx5IHRoZSBmcmFtZSdzIHBpeGVscy4KICAgICAgICAg
aWYgKEZyYW1lKiBmID0gZnJhbWUoKSkgewogICAgICAgICAgICAgRnJhbWUqIHRvcCA9IGYtPnRy
ZWUoKS0+dG9wKCk7Ci0gICAgICAgICAgICBpZiAoIXRvcC0+bG9hZGVyKCktPmNoZWNrSWZEaXNw
bGF5SW5zZWN1cmVDb250ZW50KHRvcC0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgdXJs
KSkKKyAgICAgICAgICAgIGlmICghdG9wLT5sb2FkZXIoKS0+bWl4ZWRDb250ZW50Q2hlY2tlcigp
LT5jYW5EaXNwbGF5SW5zZWN1cmVDb250ZW50KHRvcC0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmln
aW4oKSwgdXJsKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAg
ICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJG
cmFtZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNw
cAppbmRleCBlYzY4NzE0N2JiNzU3ZDg2MmEwOTYwMzZiNGQ1MTQzNDI3NTY2NGYxLi5mZjRhMGI0
NGM3MTQ0ZTQ4NjM0NTAwYTM1ZmM4OTM1ZjE0MDc5NWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKQEAgLTg2Niw3ICs4NjYsNyBAQCB2b2lkIFdlYkZy
YW1lSW1wbDo6Y29sbGVjdEdhcmJhZ2UoKQogYm9vbCBXZWJGcmFtZUltcGw6OmNoZWNrSWZSdW5J
bnNlY3VyZUNvbnRlbnQoY29uc3QgV2ViVVJMJiB1cmwpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGZy
YW1lKCkpOwotICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS0+Y2hlY2tJZlJ1bkluc2VjdXJl
Q29udGVudChmcmFtZSgpLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmwpOworICAg
IHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS0+bWl4ZWRDb250ZW50Q2hlY2tlcigpLT5jYW5SdW5J
bnNlY3VyZUNvbnRlbnQoZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgdXJs
KTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFdlYkZyYW1lSW1wbDo6ZXhlY3V0ZVNjcmlw
dEFuZFJldHVyblZhbHVlKGNvbnN0IFdlYlNjcmlwdFNvdXJjZSYgc291cmNlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169184</attachid>
            <date>2012-10-17 07:54:08 -0700</date>
            <delta_ts>2012-10-17 11:38:17 -0700</delta_ts>
            <desc>XCode.</desc>
            <filename>bug-45638-20121017165255.patch</filename>
            <type>text/plain</type>
            <size>30181</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjY5YWVhMmZhZjVlMzYx
MGYzYmM2NjQzZDBjODBkYmEzZWRkY2E2ZS4uZDJkNjY3ZmU2YWU4YjY0YzM2MDQzZTA2MTVkNzJj
NjJlZjEyMGJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEyLTEwLTE3ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBtaXhlZCBjb250ZW50
IGxvZ2ljIG91dCBvZiBGcmFtZUxvYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDU2MzgKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRl
bC4KKworICAgICAgICBUaGlzIGNoYW5nZSBtb3ZlcyBjaGVja3MgZm9yIG1peGVkIGNvbnRlbnQg
b3V0IG9mIEZyYW1lTG9hZGVyLCBhbmQgaW50bworICAgICAgICBhIG5ldyBNaXhlZENvbnRlbnRD
aGVja2VyIG9iamVjdC4gSXQncyBhIHByZXR0eSBzdHJhaWdodGZvcndhcmQKKyAgICAgICAgcmVm
YWN0b3Jpbmcgd2l0aCBubyBjaGFuZ2UgdG8gdGhlIG92ZXJhbGwgbG9naWMsIGFuZCBvbmx5IG1p
bm9yIGNoYW5nZXMKKyAgICAgICAgdG8gdGhlIGNvZGUgdG8gcmVkdWNlIHJlcGV0aXRpb24uCisK
KyAgICAgICAgVGhlIG9ubHkgc3Vic3RhbnRpdmUgY2hhbmdlIGlzIHJlbmFtaW5nIHRoZSBtZXRo
b2RzIGZyb20gJ2NoZWNrSWYqJyB0bworICAgICAgICAnY2FuKicgdG8gcmVmbGVjdCB0aGUgdmFs
dWUgb2YgdGhlIGJvb2xlYW4gdGhleSByZXR1cm4uCisKKyAgICAgICAgVGhlIHZpc2libGUgZnVu
Y3Rpb25hbGl0eSBzaG91bGRuJ3QgY2hhbmdlOyB0aGlzIGNoYW5nZSBzaG91bGQgYmUKKyAgICAg
ICAgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBpbiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVk
Q29udGVudC4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIG1vc3RseSBhIHJldml0YWxpemF0aW9u
IG9mIEVyaWMgU2lkZWwncyBvcmlnaW5hbAorICAgICAgICBwYXRjaDogaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9Njc0MzImYWN0aW9uPXByZXR0eXBhdGNoCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgor
ICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAq
IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgICAgIEhleSwgbG9vayEgQSBuZXcgZmlsZSEK
KyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXI6OkZyYW1lTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjptaXhlZENvbnRlbnRDaGVja2VyKToKKyAg
ICAgICAgKEZyYW1lTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tl
ci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpNaXhl
ZENvbnRlbnRDaGVja2VyOjpNaXhlZENvbnRlbnRDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1peGVkQ29udGVudENoZWNrZXI6OmNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjphc1VURjgp
OgorICAgICAgICAoV2ViQ29yZTo6TWl4ZWRDb250ZW50Q2hlY2tlcjo6aXNNaXhlZENvbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6TWl4ZWRDb250ZW50Q2hlY2tlcjo6Y2FuRGlzcGxheUluc2Vj
dXJlQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpNaXhlZENvbnRlbnRDaGVja2VyOjpjYW5S
dW5JbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWl4ZWRDb250ZW50Q2hlY2tl
cjo6bG9nV2FybmluZyk6CisgICAgICAgICogbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE1peGVkQ29udGVudENoZWNrZXIp
OgorICAgICAgICAgICAgTWlncmF0ZSBmdW5jdGlvbmFsaXR5IGZyb20gRnJhbWVMb2FkZXI6OmNo
ZWNrSWYqIHRvCisgICAgICAgICAgICBNaXhlZENvbnRlbnRDaGVja2VyOjpjYW4qLgorICAgICAg
ICAqIGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFp
blJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9TdWJm
cmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6cGx1Z2lu
SXNMb2FkYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6bG9hZE1lZGlh
UGxheWVyUHJveHlQbHVnaW4pOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hl
Y2tJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAgICAgVXNlIHRoZSBuZXcgbWV0aG9kIGxvY2F0
aW9ucy4KKwogMjAxMi0xMC0xNyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUkVHUkVTU0lPTihyMTMxNDIxKTogVGV4dCBiYXNlbGluZSBiZWNvbWVzIGluY29y
cmVjdCBhZnRlciByZS1sYXlvdXQgb2YgaW5wdXRbdHlwZT10aW1lXQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCAzOTE2MzZmMDFjMzJiZjQyNTVhM2Q0YmE3YjhhMDM4Yjk1YzMxNTU4Li5m
MmVmNDlkNmY4NjRjYWI0ZDQ4MGEyMDU2M2RjNmI2ZjUwMDQ3OTA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTEwLTE3ICBNaWtlIFdlc3QgIDxta3dz
dEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBtaXhlZCBjb250ZW50IGxvZ2ljIG91dCBv
ZiBGcmFtZUxvYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDU2MzgKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KKworICAgICAg
ICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6
OmNoZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAgICAgVXNlIHRoZSBuZXcgbWV0
aG9kIGxvY2F0aW9uLgorCiAyMDEyLTEwLTE2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29n
bGUuY29tPgogCiAgICAgICAgIFtTaGFkb3cgRE9NXVtWOF0gV2ViQ29yZTo6VjhET01XaW5kb3c6
Omluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcygpIGlzIHNsb3cgd2hlbiBzaGFkb3dET01FbmFi
bGVkIGZsYWcgaXMgb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGYwZmU0YTk0ZGQ4Nzc2MTI4
ZjliNjcxOWE4OTZjMTkxNmJkY2FkOWIuLjMxMjYyZTdhNWM5YTkwZWZmYzU1ZDM1ZTNjZmRhNjcz
YzU1OGNmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNjM0LDYgKzE2MzQsNyBAQCBTRVQo
V2ViQ29yZV9TT1VSQ0VTCiAgICAgbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAogICAgIGxvYWRlci9M
aW5rTG9hZGVyLmNwcAogICAgIGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCisgICAgbG9h
ZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwCiAgICAgbG9hZGVyL05hdmlnYXRpb25BY3Rpb24u
Y3BwCiAgICAgbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcAogICAgIGxvYWRl
ci9QaW5nTG9hZGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNDBmMTM5
MWYxOWJkZTdmZTk5YjFjZjJlZTc3NDRkMTRlN2Q3M2M4YS4uM2FkODcwYTAwZWNjYTIzZTU5Y2M1
ZjI5N2NkNzIwNzVmNjMxMTJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0z
OTAwLDYgKzM5MDAsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2xv
YWRlci9MaW5rTG9hZGVyQ2xpZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVz
b3VyY2VMb2FkZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9h
ZGVyLmggXAorICAgIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNw
cCBcCisgICAgU291cmNlL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuaCBcCiAJ
U291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDNhMDRmZWIw
Y2VjN2RjY2U1MDk3MzI5Y2M4MjYxN2IxOWI3MDIwZWUuLmFmYjhkMjE2ZWViYmI4NTI3ZWY4NmZl
Mjk5ODE5ZDk5YzVhMDhkOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
KysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtODMzLDYgKzgzMyw3IEBAIFNPVVJD
RVMgKz0gXAogICAgIGxvYWRlci9JbWFnZUxvYWRlci5jcHAgXAogICAgIGxvYWRlci9MaW5rTG9h
ZGVyLmNwcCBcCiAgICAgbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAgXAorICAgIGxvYWRl
ci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcCBcCiAgICAgbG9hZGVyL05hdmlnYXRpb25BY3Rpb24u
Y3BwIFwKICAgICBsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwIFwKICAgICBs
b2FkZXIvUGluZ0xvYWRlci5jcHAgXApAQCAtMTk1OCw2ICsxOTU5LDcgQEAgSEVBREVSUyArPSBc
CiAgICAgbG9hZGVyL0xpbmtMb2FkZXIuaCBcCiAgICAgbG9hZGVyL0xpbmtMb2FkZXJDbGllbnQu
aCBcCiAgICAgbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oIFwKKyAgICBsb2FkZXIvTWl4ZWRD
b250ZW50Q2hlY2tlci5oIFwKICAgICBsb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oIFwKICAgICBs
b2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaCBcCiAgICAgbG9hZGVyL1BsYWNlaG9s
ZGVyRG9jdW1lbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMGE0NzdiODkzMGI5MmUxNmRhNmY0
ODU0ODQxNWIxMTBiNGI0NjMwYS4uNWJkODIxNjdkM2NmZGVjNTdlY2M1N2YxOWMxYjNjZDgzYTIx
Y2UxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjk5Myw2ICsyOTkzLDggQEAKICAgICAgICAgICAg
ICdsb2FkZXIvTGlua0xvYWRlckNsaWVudC5oJywKICAgICAgICAgICAgICdsb2FkZXIvTWFpblJl
c291cmNlTG9hZGVyLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL01haW5SZXNvdXJjZUxvYWRl
ci5oJywKKyAgICAgICAgICAgICdsb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAnLAorICAg
ICAgICAgICAgJ2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmgnLAogICAgICAgICAgICAgJ2xv
YWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL05hdmlnYXRp
b25TY2hlZHVsZXIuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJl
YW1Mb2FkZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKaW5kZXggZTM4N2VmMzBhM2QxMTgzMGI2YzM3MTgxNzg3Njg5NjdiZGIzYTk5My4uNjQw
ZDM0NzZhYTBiNjZlMTc3ZTNjOWMyNDAyZjVlYjQyN2IwYmFiMCAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI3NjE1LDYgKzI3NjE1LDE0IEBA
CiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRl
clxNaXhlZENvbnRlbnRDaGVja2VyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXE1peGVkQ29udGVudENoZWNrZXIuaCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXE5hdmln
YXRpb25BY3Rpb24uY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwODQ5OGUzY2NlYTZiMTUx
MTc2NDg1MTZmM2IzMTZlMzU3N2JlNWU4Li4wNjFmMmJkYmU1ZDBkZDI5ZTRmY2FjNWM2OGI4NjAx
ZjFkMDY4YjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xNzU0LDYgKzE3NTQsNyBAQAogCQk2NTZEMzczRTBBREJBNURFMDBB
NDU1NEQgLyogRnJhbWVMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDY1NkQzNzI2MEFEQkE1REUwMEE0NTU0RCAvKiBGcmFtZUxvYWRl
ckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTY1NkQzNzNGMEFEQkE1REUwMEE0NTU0RCAvKiBSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2RDM3MjcwQURCQTVERTAw
QTQ1NTREIC8qIFJlc291cmNlTG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNjU2RDM3NDEwQURCQTVERTAwQTQ1NTREIC8qIE1haW5SZXNv
dXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNjU2RDM3MjkwQURCQTVERTAwQTQ1NTREIC8qIE1haW5SZXNvdXJjZUxvYWRlci5oICovOyB9
OworCQk1MkYxMDg2NjE2MkI2REE4MDA5QUM4MUUgLyogTWl4ZWRDb250ZW50Q2hlY2tlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJGMTA4NjMxNjJC
NkQ4MjAwOUFDODFFIC8qIE1peGVkQ29udGVudENoZWNrZXIuaCAqLzsgfTsKIAkJNjU2RDM3NDMw
QURCQTVERTAwQTQ1NTREIC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTZEMzcyQjBBREJBNURFMDBB
NDU1NEQgLyogTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2NTZEMzc0ODBBREJBNURFMDBBNDU1NEQg
LyogU3VicmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDY1NkQzNzMwMEFEQkE1REUwMEE0NTU0RCAvKiBTdWJyZXNvdXJjZUxvYWRl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTY1
NzFEQ0M4MTM4NUU2QTQwMDcwMkREMCAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1N0VEQTA3MTM4NUNCOTcw
MDRFMDY0NSAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzMzNSw2ICszMzM2LDcgQEAKIAkJOTNEOUQ1
M0MwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNEOUQ1M0IwREEyN0UxODAwNzcyMTZD
IC8qIFJhbmdlQm91bmRhcnlQb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTkzRTIyN0UwMEFGNTg5QUQwMEQ0ODMyNCAvKiBEb2N1bWVudExv
YWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0UyMjdEQjBBRjU4OUFEMDBENDgzMjQgLyogRG9jdW1lbnRMb2FkZXIuY3BwICovOyB9OwogCQk5
M0UyMjdFMTBBRjU4OUFEMDBENDgzMjQgLyogTWFpblJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTIyN0RDMEFGNTg5QUQw
MEQ0ODMyNCAvKiBNYWluUmVzb3VyY2VMb2FkZXIuY3BwICovOyB9OworCQk1MkYxMDg2NTE2MkI2
REE0MDA5QUM4MUUgLyogTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkYxMDg2MjE2MkI2RDgyMDA5QUM4MUUgLyog
TWl4ZWRDb250ZW50Q2hlY2tlci5jcHAgKi87IH07CiAJCTkzRTIyN0UzMEFGNTg5QUQwMEQ0ODMy
NCAvKiBSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0UyMjdERTBBRjU4OUFEMDBENDgzMjQgLyogUmVzb3VyY2VMb2FkZXIu
Y3BwICovOyB9OwogCQk5M0UyMjdFNDBBRjU4OUFEMDBENDgzMjQgLyogU3VicmVzb3VyY2VMb2Fk
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNF
MjI3REYwQUY1ODlBRDAwRDQ4MzI0IC8qIFN1YnJlc291cmNlTG9hZGVyLmNwcCAqLzsgfTsKIAkJ
OTNFMjQxRkYwQjJCNEU0MDAwQzczMkExIC8qIEhUTUxGcmFtZU93bmVyRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMjQxRkUwQjJCNEU0
MDAwQzczMkExIC8qIEhUTUxGcmFtZU93bmVyRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04OTYyLDYgKzg5NjQsNyBAQAogCQk2NTZE
MzcyNjBBREJBNURFMDBBNDU1NEQgLyogRnJhbWVMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZyYW1lTG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTY1NkQzNzI3MEFEQkE1REUwMEE0NTU0RCAvKiBSZXNvdXJjZUxvYWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2RDM3MjkwQURCQTVERTAwQTQ1NTREIC8q
IE1haW5SZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWFpblJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyRjEw
ODYzMTYyQjZEODIwMDlBQzgxRSAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1peGVkQ29udGVudENoZWNrZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNjU2RDM3MkIwQURCQTVERTAwQTQ1NTREIC8qIE5ldHNjYXBlUGx1
Z0luU3RyZWFtTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXRz
Y2FwZVBsdWdJblN0cmVhbUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
NTZEMzczMDBBREJBNURFMDBBNDU1NEQgLyogU3VicmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN1YnJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTY1N0VEQTA2MTM4NUNCOTcwMDRFMDY0NSAvKiBNZW1vcnlQcmVz
c3VyZUhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVt
b3J5UHJlc3N1cmVIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEw
NTQ3LDYgKzEwNTUwLDcgQEAKIAkJOTNEOUQ1M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91
bmRhcnlQb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZUJvdW5k
YXJ5UG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjI3REIwQUY1ODlB
RDAwRDQ4MzI0IC8qIERvY3VtZW50TG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IERvY3VtZW50TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTNFMjI3REMwQUY1ODlBRDAwRDQ4MzI0IC8qIE1haW5SZXNvdXJjZUxvYWRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYWluUmVzb3VyY2VMb2FkZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MkYxMDg2MjE2MkI2RDgyMDA5QUM4
MUUgLyogTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNaXhlZENvbnRlbnRDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNFMjI3REQwQUY1ODlBRDAwRDQ4MzI0IC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFt
TG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNF
MjI3REUwQUY1ODlBRDAwRDQ4MzI0IC8qIFJlc291cmNlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjI3REYwQUY1ODlBRDAwRDQ4MzI0IC8qIFN1YnJlc291cmNl
TG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN1YnJlc291
cmNlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwNjczLDYgKzIw
Njc3LDggQEAKIAkJCQk5ODQyNjRFRjEyRDUyODBBMDAwRDg4QTQgLyogTGlua0xvYWRlckNsaWVu
dC5oICovLAogCQkJCTkzRTIyN0RDMEFGNTg5QUQwMEQ0ODMyNCAvKiBNYWluUmVzb3VyY2VMb2Fk
ZXIuY3BwICovLAogCQkJCTY1NkQzNzI5MEFEQkE1REUwMEE0NTU0RCAvKiBNYWluUmVzb3VyY2VM
b2FkZXIuaCAqLywKKwkJCQk1MkYxMDg2MjE2MkI2RDgyMDA5QUM4MUUgLyogTWl4ZWRDb250ZW50
Q2hlY2tlci5jcHAgKi8sCisJCQkJNTJGMTA4NjMxNjJCNkQ4MjAwOUFDODFFIC8qIE1peGVkQ29u
dGVudENoZWNrZXIuaCAqLywKIAkJCQk5M0NDRjA1RjBBRjZDQTc2MDAwMThFODkgLyogTmF2aWdh
dGlvbkFjdGlvbi5jcHAgKi8sCiAJCQkJOTNDQ0YwMjYwQUY2QzUyOTAwMDE4RTg5IC8qIE5hdmln
YXRpb25BY3Rpb24uaCAqLywKIAkJCQk5NzlGNDNEMTEwNzVFNDRBMDAwMEY4M0IgLyogTmF2aWdh
dGlvblNjaGVkdWxlci5jcHAgKi8sCkBAIC0yNDQ1MCw2ICsyNDQ1Niw3IEBACiAJCQkJQkNFMUM0
MUIwRDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODIz
OUUwMTA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2
RDM3NDEwQURCQTVERTAwQTQ1NTREIC8qIE1haW5SZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNTJGMTA4NjYxNjJCNkRBODAwOUFDODFFIC8qIE1peGVkQ29udGVudENoZWNrZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEY2QkM2MERCNTVDREMwMDFEQjc5NCAvKiBNYW5pZmVz
dFBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERjgwOTlFNjQ5MjAwNTZFNTgxIC8q
IG1hcmt1cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcyOEMzMTQxMjY4RTQzOTAwNDFFODlCIC8q
IE1hcmt1cEFjY3VtdWxhdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTI3NzcyLDYgKzI3Nzc5LDcg
QEAKIAkJCQlBODIzOUUwMDA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxNDAyNjQ1RTBBRkRDMTlCMDA1OTE5RTIgLyogTG9nZ2luZ01hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTkzRTIyN0UxMEFGNTg5QUQwMEQ0ODMyNCAvKiBNYWluUmVzb3VyY2VM
b2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTJGMTA4NjUxNjJCNkRBNDAwOUFDODFFIC8q
IE1peGVkQ29udGVudENoZWNrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE4RjZCQzUwREI1
NUNEQzAwMURCNzk0IC8qIE1hbmlmZXN0UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkz
MzA5REY3MDk5RTY0OTIwMDU2RTU4MSAvKiBtYXJrdXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTcyOEMzMTMxMjY4RTQzOTAwNDFFODlCIC8qIE1hcmt1cEFjY3VtdWxhdG9yLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggOGFiM2Q4OTIy
OWRjOWQxMjlkOTc3ZGNlMWVjMDczYWMxMDA2NmViMy4uYTg0YzUwOGViYmM5M2RlODdjODg5YzMw
MDM2M2MwNDc4YjJhZDJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBA
IC0yMTIsNiArMjEyLDcgQEAgRnJhbWVMb2FkZXI6OkZyYW1lTG9hZGVyKEZyYW1lKiBmcmFtZSwg
RnJhbWVMb2FkZXJDbGllbnQqIGNsaWVudCkKICAgICAsIG1fbm90aWZlcihmcmFtZSkKICAgICAs
IG1fc3ViZnJhbWVMb2FkZXIoZnJhbWUpCiAgICAgLCBtX2ljb24oZnJhbWUpCisgICAgLCBtX21p
eGVkQ29udGVudENoZWNrZXIoZnJhbWUpCiAgICAgLCBtX3N0YXRlKEZyYW1lU3RhdGVDb21taXR0
ZWRQYWdlKQogICAgICwgbV9sb2FkVHlwZShGcmFtZUxvYWRUeXBlU3RhbmRhcmQpCiAgICAgLCBt
X2RlbGVnYXRlSXNIYW5kbGluZ1Byb3Zpc2lvbmFsTG9hZEVycm9yKGZhbHNlKQpAQCAtOTE0LDUx
ICs5MTUsNiBAQCBTdHJpbmcgRnJhbWVMb2FkZXI6Om91dGdvaW5nT3JpZ2luKCkgY29uc3QKICAg
ICByZXR1cm4gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmco
KTsKIH0KIAotYm9vbCBGcmFtZUxvYWRlcjo6aXNNaXhlZENvbnRlbnQoU2VjdXJpdHlPcmlnaW4q
IGNvbnRleHQsIGNvbnN0IEtVUkwmIHVybCkKLXsKLSAgICBpZiAoY29udGV4dC0+cHJvdG9jb2wo
KSAhPSAiaHR0cHMiKQotICAgICAgICByZXR1cm4gZmFsc2U7ICAvLyBXZSBvbmx5IGNhcmUgYWJv
dXQgSFRUUFMgc2VjdXJpdHkgb3JpZ2lucy4KLQotICAgIC8vIFdlJ3JlIGluIGEgc2VjdXJlIGNv
bnRleHQsIHNvIHx1cmx8IGlzIG1peGVkIGNvbnRlbnQgaWYgaXQncyBpbnNlY3VyZS4KLSAgICBy
ZXR1cm4gIVNlY3VyaXR5T3JpZ2luOjppc1NlY3VyZSh1cmwpOwotfQotCi1ib29sIEZyYW1lTG9h
ZGVyOjpjaGVja0lmRGlzcGxheUluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiogY29udGV4
dCwgY29uc3QgS1VSTCYgdXJsKQotewotICAgIGlmICghaXNNaXhlZENvbnRlbnQoY29udGV4dCwg
dXJsKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBt
X2ZyYW1lLT5zZXR0aW5ncygpOwotICAgIGJvb2wgYWxsb3dlZCA9IG1fY2xpZW50LT5hbGxvd0Rp
c3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQoc2V0dGluZ3MgJiYgc2V0dGluZ3MtPmFsbG93RGlzcGxh
eU9mSW5zZWN1cmVDb250ZW50KCksIGNvbnRleHQsIHVybCk7Ci0gICAgU3RyaW5nIG1lc3NhZ2Ug
PSAoYWxsb3dlZCA/IGVtcHR5U3RyaW5nKCkgOiAiW2Jsb2NrZWRdICIpICsgIlRoZSBwYWdlIGF0
ICIgKwotICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKSArICIgZGlz
cGxheWVkIGluc2VjdXJlIGNvbnRlbnQgZnJvbSAiICsgdXJsLnN0cmluZygpICsgIi5cbiI7Ci0g
ICAgICAgIAotICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCkt
PmFkZE1lc3NhZ2UoSFRNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVz
c2FnZUxldmVsLCBtZXNzYWdlKTsKLQotICAgIGlmIChhbGxvd2VkKQotICAgICAgICBtX2NsaWVu
dC0+ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgpOwotCi0gICAgcmV0dXJuIGFsbG93ZWQ7Ci19
Ci0KLWJvb2wgRnJhbWVMb2FkZXI6OmNoZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlP
cmlnaW4qIGNvbnRleHQsIGNvbnN0IEtVUkwmIHVybCkKLXsKLSAgICBpZiAoIWlzTWl4ZWRDb250
ZW50KGNvbnRleHQsIHVybCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgU2V0dGluZ3Mq
IHNldHRpbmdzID0gbV9mcmFtZS0+c2V0dGluZ3MoKTsKLSAgICBib29sIGFsbG93ZWQgPSBtX2Ns
aWVudC0+YWxsb3dSdW5uaW5nSW5zZWN1cmVDb250ZW50KHNldHRpbmdzICYmIHNldHRpbmdzLT5h
bGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCgpLCBjb250ZXh0LCB1cmwpOwotICAgIFN0cmlu
ZyBtZXNzYWdlID0gKGFsbG93ZWQgPyBlbXB0eVN0cmluZygpIDogIltibG9ja2VkXSAiKSArICJU
aGUgcGFnZSBhdCAiICsKLSAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5n
KCkgKyAiIHJhbiBpbnNlY3VyZSBjb250ZW50IGZyb20gIiArIHVybC5zdHJpbmcoKSArICIuXG4i
OwotICAgICAgIAotICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5jb25zb2xl
KCktPmFkZE1lc3NhZ2UoSFRNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5n
TWVzc2FnZUxldmVsLCBtZXNzYWdlKTsKLQotICAgIGlmIChhbGxvd2VkKQotICAgICAgICBtX2Ns
aWVudC0+ZGlkUnVuSW5zZWN1cmVDb250ZW50KGNvbnRleHQsIHVybCk7Ci0KLSAgICByZXR1cm4g
YWxsb3dlZDsKLX0KLQogYm9vbCBGcmFtZUxvYWRlcjo6Y2hlY2tJZkZvcm1BY3Rpb25BbGxvd2Vk
QnlDU1AoY29uc3QgS1VSTCYgdXJsKSBjb25zdAogewogICAgIGlmIChtX3N1Ym1pdHRlZEZvcm1V
UkwuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCA0ZjE0MGEx
ODQwODdjOTU4ODYwNmZmMjRjYThhODg5NGQ2NjNjYThjLi5lNzhlZTRlOWUxNDAzYzkwY2RlODEx
ZjQxZDZiOGUwZjkxZDgyMDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAt
MzksNiArMzksNyBAQAogI2luY2x1ZGUgIkljb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSWNv
blVSTC5oIgogI2luY2x1ZGUgIkxheW91dE1pbGVzdG9uZXMuaCIKKyNpbmNsdWRlICJNaXhlZENv
bnRlbnRDaGVja2VyLmgiCiAjaW5jbHVkZSAiUG9saWN5Q2hlY2tlci5oIgogI2luY2x1ZGUgIlJl
c291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkTm90aWZpZXIuaCIKQEAgLTkz
LDYgKzk0LDcgQEAgcHVibGljOgogICAgIFJlc291cmNlTG9hZE5vdGlmaWVyKiBub3RpZmllcigp
IGNvbnN0IHsgcmV0dXJuICZtX25vdGlmZXI7IH0KICAgICBTdWJmcmFtZUxvYWRlciogc3ViZnJh
bWVMb2FkZXIoKSBjb25zdCB7IHJldHVybiAmbV9zdWJmcmFtZUxvYWRlcjsgfQogICAgIEljb25D
b250cm9sbGVyKiBpY29uKCkgY29uc3QgeyByZXR1cm4gJm1faWNvbjsgfQorICAgIE1peGVkQ29u
dGVudENoZWNrZXIqIG1peGVkQ29udGVudENoZWNrZXIoKSBjb25zdCB7IHJldHVybiAmbV9taXhl
ZENvbnRlbnRDaGVja2VyOyB9CiAKICAgICB2b2lkIHByZXBhcmVGb3JIaXN0b3J5TmF2aWdhdGlv
bigpOwogICAgIHZvaWQgc2V0dXBGb3JSZXBsYWNlKCk7CkBAIC0yMTMsMTEgKzIxNSw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIGZvcmNlU2FuZGJveEZsYWdzKFNhbmRib3hGbGFncyBmbGFncykgeyBt
X2ZvcmNlZFNhbmRib3hGbGFncyB8PSBmbGFnczsgfQogICAgIFNhbmRib3hGbGFncyBlZmZlY3Rp
dmVTYW5kYm94RmxhZ3MoKSBjb25zdDsKIAotICAgIC8vIE1peGVkIGNvbnRlbnQgcmVsYXRlZCBm
dW5jdGlvbnMuCi0gICAgc3RhdGljIGJvb2wgaXNNaXhlZENvbnRlbnQoU2VjdXJpdHlPcmlnaW4q
IGNvbnRleHQsIGNvbnN0IEtVUkwmKTsKLSAgICBib29sIGNoZWNrSWZEaXNwbGF5SW5zZWN1cmVD
b250ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJMJik7Ci0gICAgYm9vbCBj
aGVja0lmUnVuSW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBL
VVJMJik7Ci0KICAgICBib29sIGNoZWNrSWZGb3JtQWN0aW9uQWxsb3dlZEJ5Q1NQKGNvbnN0IEtV
UkwmKSBjb25zdDsKIAogICAgIEZyYW1lKiBvcGVuZXIoKTsKQEAgLTM3NCwxMiArMzcxLDE2IEBA
IHByaXZhdGU6CiAgICAgRnJhbWUqIG1fZnJhbWU7CiAgICAgRnJhbWVMb2FkZXJDbGllbnQqIG1f
Y2xpZW50OwogCisgICAgLy8gRklYTUU6IFRoZXNlIHNob3VsZCBiZSBPd25QdHI8VD4gdG8gcmVk
dWNlIGJ1aWxkIHRpbWVzIGFuZCBzaW1wbGlmeQorICAgIC8vIGhlYWRlciBkZXBlbmRlbmNpZXMg
dW5sZXNzIHBlcmZvcm1hbmNlIHRlc3RpbmcgcHJvdmVzIG90aGVyd2lzZS4KKyAgICAvLyBTb21l
IG9mIHRoZXNlIGNvdWxkIGJlIGxhemlseSBjcmVhdGVkIGZvciBtZW1vcnkgc2F2aW5ncyBvbiBk
ZXZpY2VzLgogICAgIG11dGFibGUgUG9saWN5Q2hlY2tlciBtX3BvbGljeUNoZWNrZXI7CiAgICAg
bXV0YWJsZSBIaXN0b3J5Q29udHJvbGxlciBtX2hpc3Rvcnk7CiAgICAgbXV0YWJsZSBSZXNvdXJj
ZUxvYWROb3RpZmllciBtX25vdGlmZXI7CiAgICAgbXV0YWJsZSBTdWJmcmFtZUxvYWRlciBtX3N1
YmZyYW1lTG9hZGVyOwogICAgIG11dGFibGUgRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUgbV9zdGF0
ZU1hY2hpbmU7CiAgICAgbXV0YWJsZSBJY29uQ29udHJvbGxlciBtX2ljb247CisgICAgbXV0YWJs
ZSBNaXhlZENvbnRlbnRDaGVja2VyIG1fbWl4ZWRDb250ZW50Q2hlY2tlcjsKIAogICAgIGNsYXNz
IEZyYW1lUHJvZ3Jlc3NUcmFja2VyOwogICAgIE93blB0cjxGcmFtZVByb2dyZXNzVHJhY2tlcj4g
bV9wcm9ncmVzc1RyYWNrZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFp
blJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VM
b2FkZXIuY3BwCmluZGV4IDFmOWJiNDY1MjUzMjU1Mjc4MTliYWYwMmFkMWY2ZWFmMDQ3MGI2ZmIu
LjQ4NWFhYTJjMWJiOTRmOTQ0ZTlmZjQ0MWFhN2U5ZGU2NmNjOWU3YWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yMzYsNyArMjM2LDcgQEAg
dm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qm
IG5ld1JlcXVlc3QsIGNvbnN0IFJlc28KIAogICAgIEZyYW1lKiB0b3AgPSBtX2ZyYW1lLT50cmVl
KCktPnRvcCgpOwogICAgIGlmICh0b3AgIT0gbV9mcmFtZSkgewotICAgICAgICBpZiAoIWZyYW1l
TG9hZGVyKCktPmNoZWNrSWZEaXNwbGF5SW5zZWN1cmVDb250ZW50KHRvcC0+ZG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKSwgbmV3UmVxdWVzdC51cmwoKSkpIHsKKyAgICAgICAgaWYgKCFmcmFt
ZUxvYWRlcigpLT5taXhlZENvbnRlbnRDaGVja2VyKCktPmNhbkRpc3BsYXlJbnNlY3VyZUNvbnRl
bnQodG9wLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBuZXdSZXF1ZXN0LnVybCgpKSkg
ewogICAgICAgICAgICAgY2FuY2VsKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43MWZkMmIzNmVhYmIzOTFhNjQ4MzJkOTU0MWM1MmY5NTk1NGIxNDY4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwCkBA
IC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAqIDMuICBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9m
CisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1peGVk
Q29udGVudENoZWNrZXIuaCIKKworI2luY2x1ZGUgIkNvbnNvbGUuaCIKKyNpbmNsdWRlICJET01X
aW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5j
bHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgor
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTWl4ZWRDb250ZW50Q2hlY2tlcjo6TWl4ZWRDb250
ZW50Q2hlY2tlcihGcmFtZSogZnJhbWUpCisgICAgOiBtX2ZyYW1lKGZyYW1lKQoreworfQorCitG
cmFtZUxvYWRlckNsaWVudCogTWl4ZWRDb250ZW50Q2hlY2tlcjo6Y2xpZW50KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpOworfQorCitzdGF0aWMgaW5s
aW5lIENTdHJpbmcgYXNVVEY4KGNvbnN0IEtVUkwmIHVybCkKK3sKKyAgICByZXR1cm4gdXJsLnN0
cmluZygpLnV0ZjgoKTsKK30KKworYm9vbCBNaXhlZENvbnRlbnRDaGVja2VyOjppc01peGVkQ29u
dGVudChTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIGNvbnN0IEtVUkwmIHVybCkKK3sK
KyAgICBpZiAoc2VjdXJpdHlPcmlnaW4tPnByb3RvY29sKCkgIT0gImh0dHBzIikKKyAgICAgICAg
cmV0dXJuIGZhbHNlOyAvLyBXZSBvbmx5IGNhcmUgYWJvdXQgSFRUUFMgc2VjdXJpdHkgb3JpZ2lu
cy4KKworICAgIC8vIFdlJ3JlIGluIGEgc2VjdXJlIGNvbnRleHQsIHNvIHx1cmx8IGlzIG1peGVk
IGNvbnRlbnQgaWYgaXQncyBpbnNlY3VyZS4KKyAgICByZXR1cm4gIVNlY3VyaXR5T3JpZ2luOjpp
c1NlY3VyZSh1cmwpOworfQorCitib29sIE1peGVkQ29udGVudENoZWNrZXI6OmNhbkRpc3BsYXlJ
bnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBLVVJM
JiB1cmwpIGNvbnN0Cit7CisgICAgaWYgKCFpc01peGVkQ29udGVudChzZWN1cml0eU9yaWdpbiwg
dXJsKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBt
X2ZyYW1lLT5zZXR0aW5ncygpOworICAgIGJvb2wgYWxsb3dlZCA9IGNsaWVudCgpLT5hbGxvd0Rp
c3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQoc2V0dGluZ3MgJiYgc2V0dGluZ3MtPmFsbG93RGlzcGxh
eU9mSW5zZWN1cmVDb250ZW50KCksIHNlY3VyaXR5T3JpZ2luLCB1cmwpOworICAgIGxvZ1dhcm5p
bmcoYWxsb3dlZCwgImRpc3BsYXllZCIsIHVybCk7CisKKyAgICBpZiAoYWxsb3dlZCkKKyAgICAg
ICAgY2xpZW50KCktPmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKTsKKworICAgIHJldHVybiBh
bGxvd2VkOworfQorCitib29sIE1peGVkQ29udGVudENoZWNrZXI6OmNhblJ1bkluc2VjdXJlQ29u
dGVudChTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIGNvbnN0IEtVUkwmIHVybCkgY29u
c3QKK3sKKyAgICBpZiAoIWlzTWl4ZWRDb250ZW50KHNlY3VyaXR5T3JpZ2luLCB1cmwpKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fZnJhbWUtPnNl
dHRpbmdzKCk7CisgICAgYm9vbCBhbGxvd2VkID0gY2xpZW50KCktPmFsbG93UnVubmluZ0luc2Vj
dXJlQ29udGVudChzZXR0aW5ncyAmJiBzZXR0aW5ncy0+YWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNv
bnRlbnQoKSwgc2VjdXJpdHlPcmlnaW4sIHVybCk7CisgICAgbG9nV2FybmluZyhhbGxvd2VkLCAi
cmFuIiwgdXJsKTsKKworICAgIGlmIChhbGxvd2VkKQorICAgICAgICBjbGllbnQoKS0+ZGlkUnVu
SW5zZWN1cmVDb250ZW50KHNlY3VyaXR5T3JpZ2luLCB1cmwpOworCisgICAgcmV0dXJuIGFsbG93
ZWQ7Cit9CisKK3ZvaWQgTWl4ZWRDb250ZW50Q2hlY2tlcjo6bG9nV2FybmluZyhib29sIGFsbG93
ZWQsIGNvbnN0IFN0cmluZyYgYWN0aW9uLCBjb25zdCBLVVJMJiB0YXJnZXQpIGNvbnN0Cit7Cisg
ICAgQ29uc29sZSogY29uc29sZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5j
b25zb2xlKCk7CisgICAgLy8gRklYTUU6IFdoeSBkb2VzIHRoaXMgbWVzc2FnZSBub3QgaGF2ZSBh
IHNvdXJjZSBVUkwgb3IgYSBsaW5lIG51bWJlcj8gd2Via2l0Lm9yZy9iLzk3OTc5CisgICAgU3Ry
aW5nIG1lc3NhZ2UgPSBTdHJpbmc6OmZvcm1hdCgiJXNUaGUgcGFnZSBhdCAlcyAlcyBpbnNlY3Vy
ZSBjb250ZW50IGZyb20gJXMuXG4iLAorICAgICAgICAoYWxsb3dlZCA/ICIiIDogIltibG9ja2Vk
XSAiKSwgYXNVVEY4KG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpKS5kYXRhKCksIGFjdGlvbi51
dGY4KCkuZGF0YSgpLCBhc1VURjgodGFyZ2V0KS5kYXRhKCkpOworICAgIGNvbnNvbGUtPmFkZE1l
c3NhZ2UoSFRNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxl
dmVsLCBtZXNzYWdlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWU3ZGFmNjE5NTE3
MDVmZDdjYjY3Y2JkZGFmZjkzYzVkMThjMjViNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmgKQEAgLTAsMCArMSw2NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgTWl4ZWRDb250ZW50Q2hlY2tlcl9oCisjZGVmaW5lIE1peGVkQ29udGVudENoZWNrZXJfaAor
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgRnJhbWU7CitjbGFzcyBGcmFtZUxvYWRlckNsaWVudDsKK2NsYXNzIEtVUkw7Citj
bGFzcyBTZWN1cml0eU9yaWdpbjsKKworY2xhc3MgTWl4ZWRDb250ZW50Q2hlY2tlciB7CisgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoTWl4ZWRDb250ZW50Q2hlY2tlcik7CitwdWJsaWM6CisgICAg
TWl4ZWRDb250ZW50Q2hlY2tlcihGcmFtZSopOworCisgICAgYm9vbCBjYW5EaXNwbGF5SW5zZWN1
cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYpIGNvbnN0OworICAgIGJvb2wg
Y2FuUnVuSW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYpIGNvbnN0
OworCitwcml2YXRlOgorICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSBoYXZlIGEg
c2VwYXJhdGUgY2xpZW50IGZyb20gRnJhbWVMb2FkZXIuCisgICAgRnJhbWVMb2FkZXJDbGllbnQq
IGNsaWVudCgpIGNvbnN0OworCisgICAgc3RhdGljIGJvb2wgaXNNaXhlZENvbnRlbnQoU2VjdXJp
dHlPcmlnaW4qLCBjb25zdCBLVVJMJik7CisgICAgdm9pZCBsb2dXYXJuaW5nKGJvb2wgYWxsb3dl
ZCwgY29uc3QgU3RyaW5nJiBhY3Rpb24sIGNvbnN0IEtVUkwmKSBjb25zdDsKKworICAgIEZyYW1l
KiBtX2ZyYW1lOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTWl4
ZWRDb250ZW50Q2hlY2tlcl9oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9T
dWJmcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIu
Y3BwCmluZGV4IGMzYjM4YTg3Yzg0ODdjNDBhMGMzYzNlYzk5ZTU2OWNmNmVkMWY4NmMuLmFiNDYx
ZjZkNmU1OTdlZWIxMzFiYzE4Y2E4ZjY0ZDZkMWUzNWRlODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YmZyYW1lTG9hZGVyLmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIGJvb2wgU3ViZnJhbWVM
b2FkZXI6OnBsdWdpbklzTG9hZGFibGUoSFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z2luRWxl
bWVudCwgY29uCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAg
ICBpZiAobV9mcmFtZS0+bG9hZGVyKCkgJiYgIW1fZnJhbWUtPmxvYWRlcigpLT5jaGVja0lmUnVu
SW5zZWN1cmVDb250ZW50KGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHVybCkpCisgICAg
ICAgIGlmIChtX2ZyYW1lLT5sb2FkZXIoKSAmJiAhbV9mcmFtZS0+bG9hZGVyKCktPm1peGVkQ29u
dGVudENoZWNrZXIoKS0+Y2FuUnVuSW5zZWN1cmVDb250ZW50KGRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCksIHVybCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0y
NjUsNyArMjY1LDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IFN1YmZyYW1lTG9hZGVyOjpsb2FkTWVk
aWFQbGF5ZXJQcm94eVBsdWdpbihOb2RlKiBub2RlLCBjb25zdAogICAgIGVsc2UgaWYgKG1lZGlh
RWxlbWVudC0+aXNWaWRlbygpKQogICAgICAgICBzaXplID0gUmVuZGVyVmlkZW86OmRlZmF1bHRT
aXplKCk7CiAKLSAgICBpZiAoIW1fZnJhbWUtPmxvYWRlcigpLT5jaGVja0lmUnVuSW5zZWN1cmVD
b250ZW50KG1fZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGNvbXBsZXRlZFVS
TCkpCisgICAgaWYgKCFtX2ZyYW1lLT5sb2FkZXIoKS0+bWl4ZWRDb250ZW50Q2hlY2tlcigpLT5j
YW5SdW5JbnNlY3VyZUNvbnRlbnQobV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4o
KSwgY29tcGxldGVkVVJMKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWZQdHI8V2lkZ2V0
PiB3aWRnZXQgPSBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmNyZWF0ZU1lZGlhUGxheWVy
UHJveHlQbHVnaW4oc2l6ZSwgbWVkaWFFbGVtZW50LCBjb21wbGV0ZWRVUkwsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRl
eCBjNmNlNDA2YjYzYTY3MDU3NGNjNWNkZDg2ZTgwOTY0ZWY5Y2U2NTc3Li43YzQyMGMwNjY4Zjg4
M2FjNjg5YjJmMGVlNTcwMmZkODA4MDg3Nzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTI2MSw3ICsyNjEsNyBA
QCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjaGVja0luc2VjdXJlQ29udGVudChDYWNoZWRS
ZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdAogICAgICAgICAvLyBUaGVzZSByZXNvdXJjZSBjYW4g
aW5qZWN0IHNjcmlwdCBpbnRvIHRoZSBjdXJyZW50IGRvY3VtZW50IChTY3JpcHQsCiAgICAgICAg
IC8vIFhTTCkgb3IgZXhmaWx0cmF0ZSB0aGUgY29udGVudCBvZiB0aGUgY3VycmVudCBkb2N1bWVu
dCAoQ1NTKS4KICAgICAgICAgaWYgKEZyYW1lKiBmID0gZnJhbWUoKSkKLSAgICAgICAgICAgIGlm
ICghZi0+bG9hZGVyKCktPmNoZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQobV9kb2N1bWVudC0+c2Vj
dXJpdHlPcmlnaW4oKSwgdXJsKSkKKyAgICAgICAgICAgIGlmICghZi0+bG9hZGVyKCktPm1peGVk
Q29udGVudENoZWNrZXIoKS0+Y2FuUnVuSW5zZWN1cmVDb250ZW50KG1fZG9jdW1lbnQtPnNlY3Vy
aXR5T3JpZ2luKCksIHVybCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICBicmVhazsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCkBAIC0yNzYsNyArMjc2LDcgQEAgYm9v
bCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tJbnNlY3VyZUNvbnRlbnQoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUgdHlwZSwgY29uc3QKICAgICAgICAgLy8gVGhlc2UgcmVzb3VyY2VzIGNhbiBjb3Jy
dXB0IG9ubHkgdGhlIGZyYW1lJ3MgcGl4ZWxzLgogICAgICAgICBpZiAoRnJhbWUqIGYgPSBmcmFt
ZSgpKSB7CiAgICAgICAgICAgICBGcmFtZSogdG9wID0gZi0+dHJlZSgpLT50b3AoKTsKLSAgICAg
ICAgICAgIGlmICghdG9wLT5sb2FkZXIoKS0+Y2hlY2tJZkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQo
dG9wLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmwpKQorICAgICAgICAgICAgaWYg
KCF0b3AtPmxvYWRlcigpLT5taXhlZENvbnRlbnRDaGVja2VyKCktPmNhbkRpc3BsYXlJbnNlY3Vy
ZUNvbnRlbnQodG9wLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmwpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCmluZGV4IGVjNjg3MTQ3YmI3
NTdkODYyYTA5NjAzNmI0ZDUxNDM0Mjc1NjY0ZjEuLmZmNGEwYjQ0YzcxNDRlNDg2MzQ1MDBhMzVm
Yzg5MzVmMTQwNzk1YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkZyYW1lSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJ
bXBsLmNwcApAQCAtODY2LDcgKzg2Niw3IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpjb2xsZWN0R2Fy
YmFnZSgpCiBib29sIFdlYkZyYW1lSW1wbDo6Y2hlY2tJZlJ1bkluc2VjdXJlQ29udGVudChjb25z
dCBXZWJVUkwmIHVybCkgY29uc3QKIHsKICAgICBBU1NFUlQoZnJhbWUoKSk7Ci0gICAgcmV0dXJu
IGZyYW1lKCktPmxvYWRlcigpLT5jaGVja0lmUnVuSW5zZWN1cmVDb250ZW50KGZyYW1lKCktPmRv
Y3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHVybCk7CisgICAgcmV0dXJuIGZyYW1lKCktPmxv
YWRlcigpLT5taXhlZENvbnRlbnRDaGVja2VyKCktPmNhblJ1bkluc2VjdXJlQ29udGVudChmcmFt
ZSgpLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmwpOwogfQogCiB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gV2ViRnJhbWVJbXBsOjpleGVjdXRlU2NyaXB0QW5kUmV0dXJuVmFsdWUoY29u
c3QgV2ViU2NyaXB0U291cmNlJiBzb3VyY2UpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169225</attachid>
            <date>2012-10-17 11:38:25 -0700</date>
            <delta_ts>2012-10-17 22:09:15 -0700</delta_ts>
            <desc>It compiles on OSX locally. Honest.</desc>
            <filename>bug-45638-20121017203712.patch</filename>
            <type>text/plain</type>
            <size>30121</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTBlYTE2YWU4YmRiZmE2
MTI2MjVjNDk0ZDUzYWM4ZGM4YjMzYTE2Mi4uMDQ0ZWI0OTVkYTc4ZWYxY2M4MTU5OGZkZDZjYWQw
NWQwMTQ1ZjUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEyLTEwLTE3ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBtaXhlZCBjb250ZW50
IGxvZ2ljIG91dCBvZiBGcmFtZUxvYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDU2MzgKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRl
bC4KKworICAgICAgICBUaGlzIGNoYW5nZSBtb3ZlcyBjaGVja3MgZm9yIG1peGVkIGNvbnRlbnQg
b3V0IG9mIEZyYW1lTG9hZGVyLCBhbmQgaW50bworICAgICAgICBhIG5ldyBNaXhlZENvbnRlbnRD
aGVja2VyIG9iamVjdC4gSXQncyBhIHByZXR0eSBzdHJhaWdodGZvcndhcmQKKyAgICAgICAgcmVm
YWN0b3Jpbmcgd2l0aCBubyBjaGFuZ2UgdG8gdGhlIG92ZXJhbGwgbG9naWMsIGFuZCBvbmx5IG1p
bm9yIGNoYW5nZXMKKyAgICAgICAgdG8gdGhlIGNvZGUgdG8gcmVkdWNlIHJlcGV0aXRpb24uCisK
KyAgICAgICAgVGhlIG9ubHkgc3Vic3RhbnRpdmUgY2hhbmdlIGlzIHJlbmFtaW5nIHRoZSBtZXRo
b2RzIGZyb20gJ2NoZWNrSWYqJyB0bworICAgICAgICAnY2FuKicgdG8gcmVmbGVjdCB0aGUgdmFs
dWUgb2YgdGhlIGJvb2xlYW4gdGhleSByZXR1cm4uCisKKyAgICAgICAgVGhlIHZpc2libGUgZnVu
Y3Rpb25hbGl0eSBzaG91bGRuJ3QgY2hhbmdlOyB0aGlzIGNoYW5nZSBzaG91bGQgYmUKKyAgICAg
ICAgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBpbiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVk
Q29udGVudC4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIG1vc3RseSBhIHJldml0YWxpemF0aW9u
IG9mIEVyaWMgU2lkZWwncyBvcmlnaW5hbAorICAgICAgICBwYXRjaDogaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9Njc0MzImYWN0aW9uPXByZXR0eXBhdGNoCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgor
ICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAq
IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgICAgIEhleSwgbG9vayEgQSBuZXcgZmlsZSEK
KyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXI6OkZyYW1lTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjptaXhlZENvbnRlbnRDaGVja2VyKToKKyAg
ICAgICAgKEZyYW1lTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tl
ci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpNaXhl
ZENvbnRlbnRDaGVja2VyOjpNaXhlZENvbnRlbnRDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1peGVkQ29udGVudENoZWNrZXI6OmNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjphc1VURjgp
OgorICAgICAgICAoV2ViQ29yZTo6TWl4ZWRDb250ZW50Q2hlY2tlcjo6aXNNaXhlZENvbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6TWl4ZWRDb250ZW50Q2hlY2tlcjo6Y2FuRGlzcGxheUluc2Vj
dXJlQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpNaXhlZENvbnRlbnRDaGVja2VyOjpjYW5S
dW5JbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWl4ZWRDb250ZW50Q2hlY2tl
cjo6bG9nV2FybmluZyk6CisgICAgICAgICogbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE1peGVkQ29udGVudENoZWNrZXIp
OgorICAgICAgICAgICAgTWlncmF0ZSBmdW5jdGlvbmFsaXR5IGZyb20gRnJhbWVMb2FkZXI6OmNo
ZWNrSWYqIHRvCisgICAgICAgICAgICBNaXhlZENvbnRlbnRDaGVja2VyOjpjYW4qLgorICAgICAg
ICAqIGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFp
blJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9TdWJm
cmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6cGx1Z2lu
SXNMb2FkYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6bG9hZE1lZGlh
UGxheWVyUHJveHlQbHVnaW4pOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hl
Y2tJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAgICAgVXNlIHRoZSBuZXcgbWV0aG9kIGxvY2F0
aW9ucy4KKwogMjAxMi0xMC0xNSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpA
aW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIFByb3ZpZGUgbG9nZ2luZyBmb3IgT25saW5lU3Rh
dGUgZGV0ZWN0aW9uIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNzQ4YjVkNzEw
OWZiYWJlMzNlZmM2M2UzNGQ4Nzc5MWIzZjEwYTM2MS4uNGMwZTE4ZDZmNTkwNzFlNGFiNjI2NmZj
MGJiNzYyOGU1OGNkNTYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxMi0xMC0xNyAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIE1vdmUgbWl4ZWQgY29udGVudCBsb2dpYyBvdXQgb2YgRnJhbWVMb2FkZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NjM4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCisKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpjaGVja0lmUnVuSW5zZWN1cmVDb250
ZW50KToKKyAgICAgICAgICAgIFVzZSB0aGUgbmV3IG1ldGhvZCBsb2NhdGlvbi4KKwogMjAxMi0x
MC0xNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZC4gIFJvbGxlZCBERVBTLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBlODYx
ZDgwNzQ4Y2U1OTU2NGZiMjZjNjYwYjFlMDk1NzJkZDJmMDhkLi5jYzMzMjlkZDM0YTA4NWJkNGU2
NTA1OTY2YjRkMzJkYzljZDQ1MjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTYzMCw2ICsx
NjMwLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGxvYWRlci9JbWFnZUxvYWRlci5jcHAK
ICAgICBsb2FkZXIvTGlua0xvYWRlci5jcHAKICAgICBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVy
LmNwcAorICAgIGxvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcAogICAgIGxvYWRlci9OYXZp
Z2F0aW9uQWN0aW9uLmNwcAogICAgIGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5j
cHAKICAgICBsb2FkZXIvUGluZ0xvYWRlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CmluZGV4IGYwZWI3N2U5M2ZkY2QxYzAwOThkOGY2NTRkZWRhZjUwOTJhZDc3NTUuLmYwYmRmZGIw
NjNkM2E0ZDZjMDlhMTA0ZjRiMDIwMDdjY2YyY2VjZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQpAQCAtMzg5MCw2ICszODkwLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlckNsaWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL01h
aW5SZXNvdXJjZUxvYWRlci5oIFwKKyAgICBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250
ZW50Q2hlY2tlci5jcHAgXAorICAgIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRD
aGVja2VyLmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaCBcCiAJU291cmNlL1dl
YkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpp
bmRleCA4ZmFlYjgwYzRjYTc2MTRlNDI2NjM3MDQ2YTFiMDkwOTA2YjI0ZTZlLi5hMmQwMmIwZGQ0
OTViNTg1NzU3MjhhM2YyYjhhZTFkOWRlNzEwMjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTgzMyw2ICs4
MzMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwIFwKICAgICBs
b2FkZXIvTGlua0xvYWRlci5jcHAgXAogICAgIGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3Bw
IFwKKyAgICBsb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAgXAogICAgIGxvYWRlci9OYXZp
Z2F0aW9uQWN0aW9uLmNwcCBcCiAgICAgbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVy
LmNwcCBcCiAgICAgbG9hZGVyL1BpbmdMb2FkZXIuY3BwIFwKQEAgLTE5NTgsNiArMTk1OSw3IEBA
IEhFQURFUlMgKz0gXAogICAgIGxvYWRlci9MaW5rTG9hZGVyLmggXAogICAgIGxvYWRlci9MaW5r
TG9hZGVyQ2xpZW50LmggXAogICAgIGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaCBcCisgICAg
bG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuaCBcCiAgICAgbG9hZGVyL05hdmlnYXRpb25BY3Rp
b24uaCBcCiAgICAgbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmggXAogICAgIGxv
YWRlci9QbGFjZWhvbGRlckRvY3VtZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDIxNGFjMjdl
ODMwOWZjZDZiYTcxYjAyZDYyNDNmZmViMjg0Y2Q5OTYuLjQ3NTI0MGMwNWJiMzg2ZjNiYTA0MTZl
NDIzZjQ0NjRlYTc2NWEwMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI5ODUsNiArMjk4NSw4IEBA
CiAgICAgICAgICAgICAnbG9hZGVyL0xpbmtMb2FkZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAn
bG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9NYWlu
UmVzb3VyY2VMb2FkZXIuaCcsCisgICAgICAgICAgICAnbG9hZGVyL01peGVkQ29udGVudENoZWNr
ZXIuY3BwJywKKyAgICAgICAgICAgICdsb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5oJywKICAg
ICAgICAgICAgICdsb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAnLAogICAgICAgICAgICAgJ2xv
YWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL05ldHNj
YXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGIxYzgzMGM3ZGI0YzRkNTJjYTcyNWRhYjg5MWYwNzQ4
MjA3NTVkMTAuLjBkM2E3MTY4NjJmYzFhMTgyYTJmNmRlM2RjMjUwNWRmNTYzNWIzNmEgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNzYxNSw2
ICsyNzYxNSwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxsb2FkZXJcTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAiCisJCQkJPgorCQkJPC9GaWxl
PgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxNaXhlZENvbnRlbnRDaGVj
a2VyLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGxvYWRlclxOYXZpZ2F0aW9uQWN0aW9uLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODdl
YzgwZjFmZTYyODU1ZjYwOTEzZDcxMTg1YjRkYzA0YmZlODA1NC4uZjU1NjY1ZTM1Mzc2ZDc3NzVh
ODQ0MWQwMTdlNjcwYWVhYzJkNTE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTc1Niw2ICsxNzU2LDcgQEAKIAkJNjU2RDM3
M0UwQURCQTVERTAwQTQ1NTREIC8qIEZyYW1lTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTZEMzcyNjBBREJBNURFMDBBNDU1NEQg
LyogRnJhbWVMb2FkZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk2NTZEMzczRjBBREJBNURFMDBBNDU1NEQgLyogUmVzb3VyY2VMb2Fk
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NkQz
NzI3MEFEQkE1REUwMEE0NTU0RCAvKiBSZXNvdXJjZUxvYWRlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTY1NkQzNzQxMEFEQkE1REUwMEE0NTU0
RCAvKiBNYWluUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDY1NkQzNzI5MEFEQkE1REUwMEE0NTU0RCAvKiBNYWluUmVzb3VyY2VM
b2FkZXIuaCAqLzsgfTsKKwkJNTJGMTA4NjYxNjJCNkRBODAwOUFDODFFIC8qIE1peGVkQ29udGVu
dENoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUyRjEwODYzMTYyQjZEODIwMDlBQzgxRSAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNjU2RDM3NDMwQURC
QTVERTAwQTQ1NTREIC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTZEMzcyQjBBREJBNURFMDBBNDU1
NEQgLyogTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2NTZEMzc0ODBBREJBNURFMDBBNDU1NEQgLyog
U3VicmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDY1NkQzNzMwMEFEQkE1REUwMEE0NTU0RCAvKiBTdWJyZXNvdXJjZUxvYWRlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTY1NzFE
Q0M4MTM4NUU2QTQwMDcwMkREMCAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1N0VEQTA3MTM4NUNCOTcwMDRF
MDY0NSAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzMzMyw2ICszMzM0LDcgQEAKIAkJOTNEOUQ1M0Mw
REEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRhcnlQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNEOUQ1M0IwREEyN0UxODAwNzcyMTZDIC8q
IFJhbmdlQm91bmRhcnlQb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTkzRTIyN0UwMEFGNTg5QUQwMEQ0ODMyNCAvKiBEb2N1bWVudExvYWRl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Uy
MjdEQjBBRjU4OUFEMDBENDgzMjQgLyogRG9jdW1lbnRMb2FkZXIuY3BwICovOyB9OwogCQk5M0Uy
MjdFMTBBRjU4OUFEMDBENDgzMjQgLyogTWFpblJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTIyN0RDMEFGNTg5QUQwMEQ0
ODMyNCAvKiBNYWluUmVzb3VyY2VMb2FkZXIuY3BwICovOyB9OworCQk1MkYxMDg2NTE2MkI2REE0
MDA5QUM4MUUgLyogTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkYxMDg2MjE2MkI2RDgyMDA5QUM4MUUgLyogTWl4
ZWRDb250ZW50Q2hlY2tlci5jcHAgKi87IH07CiAJCTkzRTIyN0UzMEFGNTg5QUQwMEQ0ODMyNCAv
KiBSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0UyMjdERTBBRjU4OUFEMDBENDgzMjQgLyogUmVzb3VyY2VMb2FkZXIuY3Bw
ICovOyB9OwogCQk5M0UyMjdFNDBBRjU4OUFEMDBENDgzMjQgLyogU3VicmVzb3VyY2VMb2FkZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMjI3
REYwQUY1ODlBRDAwRDQ4MzI0IC8qIFN1YnJlc291cmNlTG9hZGVyLmNwcCAqLzsgfTsKIAkJOTNF
MjQxRkYwQjJCNEU0MDAwQzczMkExIC8qIEhUTUxGcmFtZU93bmVyRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMjQxRkUwQjJCNEU0MDAw
QzczMkExIC8qIEhUTUxGcmFtZU93bmVyRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04OTYyLDYgKzg5NjQsNyBAQAogCQk2NTZEMzcy
NjBBREJBNURFMDBBNDU1NEQgLyogRnJhbWVMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEZyYW1lTG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTY1NkQzNzI3MEFEQkE1REUwMEE0NTU0RCAvKiBSZXNvdXJjZUxvYWRlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2RDM3MjkwQURCQTVERTAwQTQ1NTREIC8qIE1h
aW5SZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFp
blJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyRjEwODYz
MTYyQjZEODIwMDlBQzgxRSAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1peGVkQ29udGVudENoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNjU2RDM3MkIwQURCQTVERTAwQTQ1NTREIC8qIE5ldHNjYXBlUGx1Z0lu
U3RyZWFtTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXRzY2Fw
ZVBsdWdJblN0cmVhbUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTZE
MzczMDBBREJBNURFMDBBNDU1NEQgLyogU3VicmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN1YnJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTY1N0VEQTA2MTM4NUNCOTcwMDRFMDY0NSAvKiBNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNTQz
LDYgKzEwNTQ2LDcgQEAKIAkJOTNEOUQ1M0IwREEyN0UxODAwNzcyMTZDIC8qIFJhbmdlQm91bmRh
cnlQb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZUJvdW5kYXJ5
UG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjI3REIwQUY1ODlBRDAw
RDQ4MzI0IC8qIERvY3VtZW50TG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERvY3VtZW50TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNFMjI3REMwQUY1ODlBRDAwRDQ4MzI0IC8qIE1haW5SZXNvdXJjZUxvYWRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYWluUmVzb3VyY2VMb2FkZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MkYxMDg2MjE2MkI2RDgyMDA5QUM4MUUg
LyogTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBNaXhlZENvbnRlbnRDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTNFMjI3REQwQUY1ODlBRDAwRDQ4MzI0IC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9h
ZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHNjYXBlUGx1
Z0luU3RyZWFtTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjI3
REUwQUY1ODlBRDAwRDQ4MzI0IC8qIFJlc291cmNlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTNFMjI3REYwQUY1ODlBRDAwRDQ4MzI0IC8qIFN1YnJlc291cmNlTG9h
ZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN1YnJlc291cmNl
TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwNjY2LDYgKzIwNjcw
LDggQEAKIAkJCQk5ODQyNjRFRjEyRDUyODBBMDAwRDg4QTQgLyogTGlua0xvYWRlckNsaWVudC5o
ICovLAogCQkJCTkzRTIyN0RDMEFGNTg5QUQwMEQ0ODMyNCAvKiBNYWluUmVzb3VyY2VMb2FkZXIu
Y3BwICovLAogCQkJCTY1NkQzNzI5MEFEQkE1REUwMEE0NTU0RCAvKiBNYWluUmVzb3VyY2VMb2Fk
ZXIuaCAqLywKKwkJCQk1MkYxMDg2MjE2MkI2RDgyMDA5QUM4MUUgLyogTWl4ZWRDb250ZW50Q2hl
Y2tlci5jcHAgKi8sCisJCQkJNTJGMTA4NjMxNjJCNkQ4MjAwOUFDODFFIC8qIE1peGVkQ29udGVu
dENoZWNrZXIuaCAqLywKIAkJCQk5M0NDRjA1RjBBRjZDQTc2MDAwMThFODkgLyogTmF2aWdhdGlv
bkFjdGlvbi5jcHAgKi8sCiAJCQkJOTNDQ0YwMjYwQUY2QzUyOTAwMDE4RTg5IC8qIE5hdmlnYXRp
b25BY3Rpb24uaCAqLywKIAkJCQk5NzlGNDNEMTEwNzVFNDRBMDAwMEY4M0IgLyogTmF2aWdhdGlv
blNjaGVkdWxlci5jcHAgKi8sCkBAIC0yNDQ0MCw2ICsyNDQ0Niw3IEBACiAJCQkJQkNFMUM0MUIw
RDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODIzOUUw
MTA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3
NDEwQURCQTVERTAwQTQ1NTREIC8qIE1haW5SZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNTJGMTA4NjYxNjJCNkRBODAwOUFDODFFIC8qIE1peGVkQ29udGVudENoZWNrZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBOEY2QkM2MERCNTVDREMwMDFEQjc5NCAvKiBNYW5pZmVzdFBh
cnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERjgwOTlFNjQ5MjAwNTZFNTgxIC8qIG1h
cmt1cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcyOEMzMTQxMjY4RTQzOTAwNDFFODlCIC8qIE1h
cmt1cEFjY3VtdWxhdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTI3NzYyLDYgKzI3NzY5LDcgQEAK
IAkJCQlBODIzOUUwMDA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxNDAyNjQ1RTBBRkRDMTlCMDA1OTE5RTIgLyogTG9nZ2luZ01hYy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzRTIyN0UxMEFGNTg5QUQwMEQ0ODMyNCAvKiBNYWluUmVzb3VyY2VMb2Fk
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTJGMTA4NjUxNjJCNkRBNDAwOUFDODFFIC8qIE1p
eGVkQ29udGVudENoZWNrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE4RjZCQzUwREI1NUNE
QzAwMURCNzk0IC8qIE1hbmlmZXN0UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5
REY3MDk5RTY0OTIwMDU2RTU4MSAvKiBtYXJrdXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTcy
OEMzMTMxMjY4RTQzOTAwNDFFODlCIC8qIE1hcmt1cEFjY3VtdWxhdG9yLmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMjUyOTE1ODEwMTNm
YjNjYmIzODg1NThhYzA0NjI4YWZmODM0NDZmYS4uZTk4MTI1MzRlYTQwZGFlNzE3ZGViNzgyZTNh
ZjUzZDljMGI3YTJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0y
MTIsNiArMjEyLDcgQEAgRnJhbWVMb2FkZXI6OkZyYW1lTG9hZGVyKEZyYW1lKiBmcmFtZSwgRnJh
bWVMb2FkZXJDbGllbnQqIGNsaWVudCkKICAgICAsIG1fbm90aWZlcihmcmFtZSkKICAgICAsIG1f
c3ViZnJhbWVMb2FkZXIoZnJhbWUpCiAgICAgLCBtX2ljb24oZnJhbWUpCisgICAgLCBtX21peGVk
Q29udGVudENoZWNrZXIoZnJhbWUpCiAgICAgLCBtX3N0YXRlKEZyYW1lU3RhdGVDb21taXR0ZWRQ
YWdlKQogICAgICwgbV9sb2FkVHlwZShGcmFtZUxvYWRUeXBlU3RhbmRhcmQpCiAgICAgLCBtX2Rl
bGVnYXRlSXNIYW5kbGluZ1Byb3Zpc2lvbmFsTG9hZEVycm9yKGZhbHNlKQpAQCAtOTE0LDUxICs5
MTUsNiBAQCBTdHJpbmcgRnJhbWVMb2FkZXI6Om91dGdvaW5nT3JpZ2luKCkgY29uc3QKICAgICBy
ZXR1cm4gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKTsK
IH0KIAotYm9vbCBGcmFtZUxvYWRlcjo6aXNNaXhlZENvbnRlbnQoU2VjdXJpdHlPcmlnaW4qIGNv
bnRleHQsIGNvbnN0IEtVUkwmIHVybCkKLXsKLSAgICBpZiAoY29udGV4dC0+cHJvdG9jb2woKSAh
PSAiaHR0cHMiKQotICAgICAgICByZXR1cm4gZmFsc2U7ICAvLyBXZSBvbmx5IGNhcmUgYWJvdXQg
SFRUUFMgc2VjdXJpdHkgb3JpZ2lucy4KLQotICAgIC8vIFdlJ3JlIGluIGEgc2VjdXJlIGNvbnRl
eHQsIHNvIHx1cmx8IGlzIG1peGVkIGNvbnRlbnQgaWYgaXQncyBpbnNlY3VyZS4KLSAgICByZXR1
cm4gIVNlY3VyaXR5T3JpZ2luOjppc1NlY3VyZSh1cmwpOwotfQotCi1ib29sIEZyYW1lTG9hZGVy
OjpjaGVja0lmRGlzcGxheUluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiogY29udGV4dCwg
Y29uc3QgS1VSTCYgdXJsKQotewotICAgIGlmICghaXNNaXhlZENvbnRlbnQoY29udGV4dCwgdXJs
KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBtX2Zy
YW1lLT5zZXR0aW5ncygpOwotICAgIGJvb2wgYWxsb3dlZCA9IG1fY2xpZW50LT5hbGxvd0Rpc3Bs
YXlpbmdJbnNlY3VyZUNvbnRlbnQoc2V0dGluZ3MgJiYgc2V0dGluZ3MtPmFsbG93RGlzcGxheU9m
SW5zZWN1cmVDb250ZW50KCksIGNvbnRleHQsIHVybCk7Ci0gICAgU3RyaW5nIG1lc3NhZ2UgPSAo
YWxsb3dlZCA/IGVtcHR5U3RyaW5nKCkgOiAiW2Jsb2NrZWRdICIpICsgIlRoZSBwYWdlIGF0ICIg
KwotICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKSArICIgZGlzcGxh
eWVkIGluc2VjdXJlIGNvbnRlbnQgZnJvbSAiICsgdXJsLnN0cmluZygpICsgIi5cbiI7Ci0gICAg
ICAgIAotICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFk
ZE1lc3NhZ2UoSFRNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2Fn
ZUxldmVsLCBtZXNzYWdlKTsKLQotICAgIGlmIChhbGxvd2VkKQotICAgICAgICBtX2NsaWVudC0+
ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgpOwotCi0gICAgcmV0dXJuIGFsbG93ZWQ7Ci19Ci0K
LWJvb2wgRnJhbWVMb2FkZXI6OmNoZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlPcmln
aW4qIGNvbnRleHQsIGNvbnN0IEtVUkwmIHVybCkKLXsKLSAgICBpZiAoIWlzTWl4ZWRDb250ZW50
KGNvbnRleHQsIHVybCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgU2V0dGluZ3MqIHNl
dHRpbmdzID0gbV9mcmFtZS0+c2V0dGluZ3MoKTsKLSAgICBib29sIGFsbG93ZWQgPSBtX2NsaWVu
dC0+YWxsb3dSdW5uaW5nSW5zZWN1cmVDb250ZW50KHNldHRpbmdzICYmIHNldHRpbmdzLT5hbGxv
d1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCgpLCBjb250ZXh0LCB1cmwpOwotICAgIFN0cmluZyBt
ZXNzYWdlID0gKGFsbG93ZWQgPyBlbXB0eVN0cmluZygpIDogIltibG9ja2VkXSAiKSArICJUaGUg
cGFnZSBhdCAiICsKLSAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5nKCkg
KyAiIHJhbiBpbnNlY3VyZSBjb250ZW50IGZyb20gIiArIHVybC5zdHJpbmcoKSArICIuXG4iOwot
ICAgICAgIAotICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCkt
PmFkZE1lc3NhZ2UoSFRNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVz
c2FnZUxldmVsLCBtZXNzYWdlKTsKLQotICAgIGlmIChhbGxvd2VkKQotICAgICAgICBtX2NsaWVu
dC0+ZGlkUnVuSW5zZWN1cmVDb250ZW50KGNvbnRleHQsIHVybCk7Ci0KLSAgICByZXR1cm4gYWxs
b3dlZDsKLX0KLQogYm9vbCBGcmFtZUxvYWRlcjo6Y2hlY2tJZkZvcm1BY3Rpb25BbGxvd2VkQnlD
U1AoY29uc3QgS1VSTCYgdXJsKSBjb25zdAogewogICAgIGlmIChtX3N1Ym1pdHRlZEZvcm1VUkwu
aXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCA0ZjE0MGExODQw
ODdjOTU4ODYwNmZmMjRjYThhODg5NGQ2NjNjYThjLi5lNzhlZTRlOWUxNDAzYzkwY2RlODExZjQx
ZDZiOGUwZjkxZDgyMDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMzks
NiArMzksNyBAQAogI2luY2x1ZGUgIkljb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSWNvblVS
TC5oIgogI2luY2x1ZGUgIkxheW91dE1pbGVzdG9uZXMuaCIKKyNpbmNsdWRlICJNaXhlZENvbnRl
bnRDaGVja2VyLmgiCiAjaW5jbHVkZSAiUG9saWN5Q2hlY2tlci5oIgogI2luY2x1ZGUgIlJlc291
cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkTm90aWZpZXIuaCIKQEAgLTkzLDYg
Kzk0LDcgQEAgcHVibGljOgogICAgIFJlc291cmNlTG9hZE5vdGlmaWVyKiBub3RpZmllcigpIGNv
bnN0IHsgcmV0dXJuICZtX25vdGlmZXI7IH0KICAgICBTdWJmcmFtZUxvYWRlciogc3ViZnJhbWVM
b2FkZXIoKSBjb25zdCB7IHJldHVybiAmbV9zdWJmcmFtZUxvYWRlcjsgfQogICAgIEljb25Db250
cm9sbGVyKiBpY29uKCkgY29uc3QgeyByZXR1cm4gJm1faWNvbjsgfQorICAgIE1peGVkQ29udGVu
dENoZWNrZXIqIG1peGVkQ29udGVudENoZWNrZXIoKSBjb25zdCB7IHJldHVybiAmbV9taXhlZENv
bnRlbnRDaGVja2VyOyB9CiAKICAgICB2b2lkIHByZXBhcmVGb3JIaXN0b3J5TmF2aWdhdGlvbigp
OwogICAgIHZvaWQgc2V0dXBGb3JSZXBsYWNlKCk7CkBAIC0yMTMsMTEgKzIxNSw2IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGZvcmNlU2FuZGJveEZsYWdzKFNhbmRib3hGbGFncyBmbGFncykgeyBtX2Zv
cmNlZFNhbmRib3hGbGFncyB8PSBmbGFnczsgfQogICAgIFNhbmRib3hGbGFncyBlZmZlY3RpdmVT
YW5kYm94RmxhZ3MoKSBjb25zdDsKIAotICAgIC8vIE1peGVkIGNvbnRlbnQgcmVsYXRlZCBmdW5j
dGlvbnMuCi0gICAgc3RhdGljIGJvb2wgaXNNaXhlZENvbnRlbnQoU2VjdXJpdHlPcmlnaW4qIGNv
bnRleHQsIGNvbnN0IEtVUkwmKTsKLSAgICBib29sIGNoZWNrSWZEaXNwbGF5SW5zZWN1cmVDb250
ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJMJik7Ci0gICAgYm9vbCBjaGVj
a0lmUnVuSW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJM
Jik7Ci0KICAgICBib29sIGNoZWNrSWZGb3JtQWN0aW9uQWxsb3dlZEJ5Q1NQKGNvbnN0IEtVUkwm
KSBjb25zdDsKIAogICAgIEZyYW1lKiBvcGVuZXIoKTsKQEAgLTM3NCwxMiArMzcxLDE2IEBAIHBy
aXZhdGU6CiAgICAgRnJhbWUqIG1fZnJhbWU7CiAgICAgRnJhbWVMb2FkZXJDbGllbnQqIG1fY2xp
ZW50OwogCisgICAgLy8gRklYTUU6IFRoZXNlIHNob3VsZCBiZSBPd25QdHI8VD4gdG8gcmVkdWNl
IGJ1aWxkIHRpbWVzIGFuZCBzaW1wbGlmeQorICAgIC8vIGhlYWRlciBkZXBlbmRlbmNpZXMgdW5s
ZXNzIHBlcmZvcm1hbmNlIHRlc3RpbmcgcHJvdmVzIG90aGVyd2lzZS4KKyAgICAvLyBTb21lIG9m
IHRoZXNlIGNvdWxkIGJlIGxhemlseSBjcmVhdGVkIGZvciBtZW1vcnkgc2F2aW5ncyBvbiBkZXZp
Y2VzLgogICAgIG11dGFibGUgUG9saWN5Q2hlY2tlciBtX3BvbGljeUNoZWNrZXI7CiAgICAgbXV0
YWJsZSBIaXN0b3J5Q29udHJvbGxlciBtX2hpc3Rvcnk7CiAgICAgbXV0YWJsZSBSZXNvdXJjZUxv
YWROb3RpZmllciBtX25vdGlmZXI7CiAgICAgbXV0YWJsZSBTdWJmcmFtZUxvYWRlciBtX3N1YmZy
YW1lTG9hZGVyOwogICAgIG11dGFibGUgRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUgbV9zdGF0ZU1h
Y2hpbmU7CiAgICAgbXV0YWJsZSBJY29uQ29udHJvbGxlciBtX2ljb247CisgICAgbXV0YWJsZSBN
aXhlZENvbnRlbnRDaGVja2VyIG1fbWl4ZWRDb250ZW50Q2hlY2tlcjsKIAogICAgIGNsYXNzIEZy
YW1lUHJvZ3Jlc3NUcmFja2VyOwogICAgIE93blB0cjxGcmFtZVByb2dyZXNzVHJhY2tlcj4gbV9w
cm9ncmVzc1RyYWNrZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJl
c291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2Fk
ZXIuY3BwCmluZGV4IDFmOWJiNDY1MjUzMjU1Mjc4MTliYWYwMmFkMWY2ZWFmMDQ3MGI2ZmIuLjQ4
NWFhYTJjMWJiOTRmOTQ0ZTlmZjQ0MWFhN2U5ZGU2NmNjOWU3YWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yMzYsNyArMjM2LDcgQEAgdm9p
ZCBNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIG5l
d1JlcXVlc3QsIGNvbnN0IFJlc28KIAogICAgIEZyYW1lKiB0b3AgPSBtX2ZyYW1lLT50cmVlKCkt
PnRvcCgpOwogICAgIGlmICh0b3AgIT0gbV9mcmFtZSkgewotICAgICAgICBpZiAoIWZyYW1lTG9h
ZGVyKCktPmNoZWNrSWZEaXNwbGF5SW5zZWN1cmVDb250ZW50KHRvcC0+ZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSwgbmV3UmVxdWVzdC51cmwoKSkpIHsKKyAgICAgICAgaWYgKCFmcmFtZUxv
YWRlcigpLT5taXhlZENvbnRlbnRDaGVja2VyKCktPmNhbkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQo
dG9wLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBuZXdSZXF1ZXN0LnVybCgpKSkgewog
ICAgICAgICAgICAgY2FuY2VsKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43MWZkMmIzNmVhYmIzOTFhNjQ4MzJkOTU0MWM1MmY5NTk1NGIxNDY4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwCkBAIC0w
LDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAqIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisg
KiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1peGVkQ29u
dGVudENoZWNrZXIuaCIKKworI2luY2x1ZGUgIkNvbnNvbGUuaCIKKyNpbmNsdWRlICJET01XaW5k
b3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgorI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworTWl4ZWRDb250ZW50Q2hlY2tlcjo6TWl4ZWRDb250ZW50
Q2hlY2tlcihGcmFtZSogZnJhbWUpCisgICAgOiBtX2ZyYW1lKGZyYW1lKQoreworfQorCitGcmFt
ZUxvYWRlckNsaWVudCogTWl4ZWRDb250ZW50Q2hlY2tlcjo6Y2xpZW50KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpOworfQorCitzdGF0aWMgaW5saW5l
IENTdHJpbmcgYXNVVEY4KGNvbnN0IEtVUkwmIHVybCkKK3sKKyAgICByZXR1cm4gdXJsLnN0cmlu
ZygpLnV0ZjgoKTsKK30KKworYm9vbCBNaXhlZENvbnRlbnRDaGVja2VyOjppc01peGVkQ29udGVu
dChTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIGNvbnN0IEtVUkwmIHVybCkKK3sKKyAg
ICBpZiAoc2VjdXJpdHlPcmlnaW4tPnByb3RvY29sKCkgIT0gImh0dHBzIikKKyAgICAgICAgcmV0
dXJuIGZhbHNlOyAvLyBXZSBvbmx5IGNhcmUgYWJvdXQgSFRUUFMgc2VjdXJpdHkgb3JpZ2lucy4K
KworICAgIC8vIFdlJ3JlIGluIGEgc2VjdXJlIGNvbnRleHQsIHNvIHx1cmx8IGlzIG1peGVkIGNv
bnRlbnQgaWYgaXQncyBpbnNlY3VyZS4KKyAgICByZXR1cm4gIVNlY3VyaXR5T3JpZ2luOjppc1Nl
Y3VyZSh1cmwpOworfQorCitib29sIE1peGVkQ29udGVudENoZWNrZXI6OmNhbkRpc3BsYXlJbnNl
Y3VyZUNvbnRlbnQoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBLVVJMJiB1
cmwpIGNvbnN0Cit7CisgICAgaWYgKCFpc01peGVkQ29udGVudChzZWN1cml0eU9yaWdpbiwgdXJs
KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBtX2Zy
YW1lLT5zZXR0aW5ncygpOworICAgIGJvb2wgYWxsb3dlZCA9IGNsaWVudCgpLT5hbGxvd0Rpc3Bs
YXlpbmdJbnNlY3VyZUNvbnRlbnQoc2V0dGluZ3MgJiYgc2V0dGluZ3MtPmFsbG93RGlzcGxheU9m
SW5zZWN1cmVDb250ZW50KCksIHNlY3VyaXR5T3JpZ2luLCB1cmwpOworICAgIGxvZ1dhcm5pbmco
YWxsb3dlZCwgImRpc3BsYXllZCIsIHVybCk7CisKKyAgICBpZiAoYWxsb3dlZCkKKyAgICAgICAg
Y2xpZW50KCktPmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKTsKKworICAgIHJldHVybiBhbGxv
d2VkOworfQorCitib29sIE1peGVkQ29udGVudENoZWNrZXI6OmNhblJ1bkluc2VjdXJlQ29udGVu
dChTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIGNvbnN0IEtVUkwmIHVybCkgY29uc3QK
K3sKKyAgICBpZiAoIWlzTWl4ZWRDb250ZW50KHNlY3VyaXR5T3JpZ2luLCB1cmwpKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fZnJhbWUtPnNldHRp
bmdzKCk7CisgICAgYm9vbCBhbGxvd2VkID0gY2xpZW50KCktPmFsbG93UnVubmluZ0luc2VjdXJl
Q29udGVudChzZXR0aW5ncyAmJiBzZXR0aW5ncy0+YWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRl
bnQoKSwgc2VjdXJpdHlPcmlnaW4sIHVybCk7CisgICAgbG9nV2FybmluZyhhbGxvd2VkLCAicmFu
IiwgdXJsKTsKKworICAgIGlmIChhbGxvd2VkKQorICAgICAgICBjbGllbnQoKS0+ZGlkUnVuSW5z
ZWN1cmVDb250ZW50KHNlY3VyaXR5T3JpZ2luLCB1cmwpOworCisgICAgcmV0dXJuIGFsbG93ZWQ7
Cit9CisKK3ZvaWQgTWl4ZWRDb250ZW50Q2hlY2tlcjo6bG9nV2FybmluZyhib29sIGFsbG93ZWQs
IGNvbnN0IFN0cmluZyYgYWN0aW9uLCBjb25zdCBLVVJMJiB0YXJnZXQpIGNvbnN0Cit7CisgICAg
Q29uc29sZSogY29uc29sZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5jb25z
b2xlKCk7CisgICAgLy8gRklYTUU6IFdoeSBkb2VzIHRoaXMgbWVzc2FnZSBub3QgaGF2ZSBhIHNv
dXJjZSBVUkwgb3IgYSBsaW5lIG51bWJlcj8gd2Via2l0Lm9yZy9iLzk3OTc5CisgICAgU3RyaW5n
IG1lc3NhZ2UgPSBTdHJpbmc6OmZvcm1hdCgiJXNUaGUgcGFnZSBhdCAlcyAlcyBpbnNlY3VyZSBj
b250ZW50IGZyb20gJXMuXG4iLAorICAgICAgICAoYWxsb3dlZCA/ICIiIDogIltibG9ja2VkXSAi
KSwgYXNVVEY4KG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpKS5kYXRhKCksIGFjdGlvbi51dGY4
KCkuZGF0YSgpLCBhc1VURjgodGFyZ2V0KS5kYXRhKCkpOworICAgIGNvbnNvbGUtPmFkZE1lc3Nh
Z2UoSFRNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxldmVs
LCBtZXNzYWdlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWU3ZGFmNjE5NTE3MDVm
ZDdjYjY3Y2JkZGFmZjkzYzVkMThjMjViNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
TWl4ZWRDb250ZW50Q2hlY2tlcl9oCisjZGVmaW5lIE1peGVkQ29udGVudENoZWNrZXJfaAorCisj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRnJhbWU7CitjbGFzcyBGcmFtZUxvYWRlckNsaWVudDsKK2NsYXNzIEtVUkw7CitjbGFz
cyBTZWN1cml0eU9yaWdpbjsKKworY2xhc3MgTWl4ZWRDb250ZW50Q2hlY2tlciB7CisgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoTWl4ZWRDb250ZW50Q2hlY2tlcik7CitwdWJsaWM6CisgICAgTWl4
ZWRDb250ZW50Q2hlY2tlcihGcmFtZSopOworCisgICAgYm9vbCBjYW5EaXNwbGF5SW5zZWN1cmVD
b250ZW50KFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYpIGNvbnN0OworICAgIGJvb2wgY2Fu
UnVuSW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYpIGNvbnN0Owor
Citwcml2YXRlOgorICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSBoYXZlIGEgc2Vw
YXJhdGUgY2xpZW50IGZyb20gRnJhbWVMb2FkZXIuCisgICAgRnJhbWVMb2FkZXJDbGllbnQqIGNs
aWVudCgpIGNvbnN0OworCisgICAgc3RhdGljIGJvb2wgaXNNaXhlZENvbnRlbnQoU2VjdXJpdHlP
cmlnaW4qLCBjb25zdCBLVVJMJik7CisgICAgdm9pZCBsb2dXYXJuaW5nKGJvb2wgYWxsb3dlZCwg
Y29uc3QgU3RyaW5nJiBhY3Rpb24sIGNvbnN0IEtVUkwmKSBjb25zdDsKKworICAgIEZyYW1lKiBt
X2ZyYW1lOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTWl4ZWRD
b250ZW50Q2hlY2tlcl9oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJm
cmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3Bw
CmluZGV4IGMzYjM4YTg3Yzg0ODdjNDBhMGMzYzNlYzk5ZTU2OWNmNmVkMWY4NmMuLmFiNDYxZjZk
NmU1OTdlZWIxMzFiYzE4Y2E4ZjY0ZDZkMWUzNWRlODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1N1YmZyYW1lTG9hZGVyLmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIGJvb2wgU3ViZnJhbWVMb2Fk
ZXI6OnBsdWdpbklzTG9hZGFibGUoSFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z2luRWxlbWVu
dCwgY29uCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICBp
ZiAobV9mcmFtZS0+bG9hZGVyKCkgJiYgIW1fZnJhbWUtPmxvYWRlcigpLT5jaGVja0lmUnVuSW5z
ZWN1cmVDb250ZW50KGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHVybCkpCisgICAgICAg
IGlmIChtX2ZyYW1lLT5sb2FkZXIoKSAmJiAhbV9mcmFtZS0+bG9hZGVyKCktPm1peGVkQ29udGVu
dENoZWNrZXIoKS0+Y2FuUnVuSW5zZWN1cmVDb250ZW50KGRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCksIHVybCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0yNjUs
NyArMjY1LDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IFN1YmZyYW1lTG9hZGVyOjpsb2FkTWVkaWFQ
bGF5ZXJQcm94eVBsdWdpbihOb2RlKiBub2RlLCBjb25zdAogICAgIGVsc2UgaWYgKG1lZGlhRWxl
bWVudC0+aXNWaWRlbygpKQogICAgICAgICBzaXplID0gUmVuZGVyVmlkZW86OmRlZmF1bHRTaXpl
KCk7CiAKLSAgICBpZiAoIW1fZnJhbWUtPmxvYWRlcigpLT5jaGVja0lmUnVuSW5zZWN1cmVDb250
ZW50KG1fZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGNvbXBsZXRlZFVSTCkp
CisgICAgaWYgKCFtX2ZyYW1lLT5sb2FkZXIoKS0+bWl4ZWRDb250ZW50Q2hlY2tlcigpLT5jYW5S
dW5JbnNlY3VyZUNvbnRlbnQobV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwg
Y29tcGxldGVkVVJMKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWZQdHI8V2lkZ2V0PiB3
aWRnZXQgPSBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmNyZWF0ZU1lZGlhUGxheWVyUHJv
eHlQbHVnaW4oc2l6ZSwgbWVkaWFFbGVtZW50LCBjb21wbGV0ZWRVUkwsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCBj
NmNlNDA2YjYzYTY3MDU3NGNjNWNkZDg2ZTgwOTY0ZWY5Y2U2NTc3Li43YzQyMGMwNjY4Zjg4M2Fj
Njg5YjJmMGVlNTcwMmZkODA4MDg3Nzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTI2MSw3ICsyNjEsNyBAQCBi
b29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjaGVja0luc2VjdXJlQ29udGVudChDYWNoZWRSZXNv
dXJjZTo6VHlwZSB0eXBlLCBjb25zdAogICAgICAgICAvLyBUaGVzZSByZXNvdXJjZSBjYW4gaW5q
ZWN0IHNjcmlwdCBpbnRvIHRoZSBjdXJyZW50IGRvY3VtZW50IChTY3JpcHQsCiAgICAgICAgIC8v
IFhTTCkgb3IgZXhmaWx0cmF0ZSB0aGUgY29udGVudCBvZiB0aGUgY3VycmVudCBkb2N1bWVudCAo
Q1NTKS4KICAgICAgICAgaWYgKEZyYW1lKiBmID0gZnJhbWUoKSkKLSAgICAgICAgICAgIGlmICgh
Zi0+bG9hZGVyKCktPmNoZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQobV9kb2N1bWVudC0+c2VjdXJp
dHlPcmlnaW4oKSwgdXJsKSkKKyAgICAgICAgICAgIGlmICghZi0+bG9hZGVyKCktPm1peGVkQ29u
dGVudENoZWNrZXIoKS0+Y2FuUnVuSW5zZWN1cmVDb250ZW50KG1fZG9jdW1lbnQtPnNlY3VyaXR5
T3JpZ2luKCksIHVybCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBi
cmVhazsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCkBAIC0yNzYsNyArMjc2LDcgQEAgYm9vbCBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tJbnNlY3VyZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2U6
OlR5cGUgdHlwZSwgY29uc3QKICAgICAgICAgLy8gVGhlc2UgcmVzb3VyY2VzIGNhbiBjb3JydXB0
IG9ubHkgdGhlIGZyYW1lJ3MgcGl4ZWxzLgogICAgICAgICBpZiAoRnJhbWUqIGYgPSBmcmFtZSgp
KSB7CiAgICAgICAgICAgICBGcmFtZSogdG9wID0gZi0+dHJlZSgpLT50b3AoKTsKLSAgICAgICAg
ICAgIGlmICghdG9wLT5sb2FkZXIoKS0+Y2hlY2tJZkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQodG9w
LT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmwpKQorICAgICAgICAgICAgaWYgKCF0
b3AtPmxvYWRlcigpLT5taXhlZENvbnRlbnRDaGVja2VyKCktPmNhbkRpc3BsYXlJbnNlY3VyZUNv
bnRlbnQodG9wLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmwpKQogICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCmluZGV4IGVjNjg3MTQ3YmI3NTdk
ODYyYTA5NjAzNmI0ZDUxNDM0Mjc1NjY0ZjEuLmZmNGEwYjQ0YzcxNDRlNDg2MzQ1MDBhMzVmYzg5
MzVmMTQwNzk1YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZy
YW1lSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBs
LmNwcApAQCAtODY2LDcgKzg2Niw3IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpjb2xsZWN0R2FyYmFn
ZSgpCiBib29sIFdlYkZyYW1lSW1wbDo6Y2hlY2tJZlJ1bkluc2VjdXJlQ29udGVudChjb25zdCBX
ZWJVUkwmIHVybCkgY29uc3QKIHsKICAgICBBU1NFUlQoZnJhbWUoKSk7Ci0gICAgcmV0dXJuIGZy
YW1lKCktPmxvYWRlcigpLT5jaGVja0lmUnVuSW5zZWN1cmVDb250ZW50KGZyYW1lKCktPmRvY3Vt
ZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHVybCk7CisgICAgcmV0dXJuIGZyYW1lKCktPmxvYWRl
cigpLT5taXhlZENvbnRlbnRDaGVja2VyKCktPmNhblJ1bkluc2VjdXJlQ29udGVudChmcmFtZSgp
LT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmwpOwogfQogCiB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gV2ViRnJhbWVJbXBsOjpleGVjdXRlU2NyaXB0QW5kUmV0dXJuVmFsdWUoY29uc3Qg
V2ViU2NyaXB0U291cmNlJiBzb3VyY2UpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>