<?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>126626</bug_id>
          
          <creation_ts>2014-01-08 00:38:51 -0800</creation_ts>
          <short_desc>Stub for WebSession API</short_desc>
          <delta_ts>2014-01-08 19:57:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Hock">mhock</reporter>
          <assigned_to name="Martin Hock">mhock</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>965367</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-01-08 00:38:51 -0800</bug_when>
    <thetext>Stub for WebSession API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965368</commentid>
    <comment_count>1</comment_count>
      <attachid>220604</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-01-08 00:40:12 -0800</bug_when>
    <thetext>Created attachment 220604
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965369</commentid>
    <comment_count>2</comment_count>
      <attachid>220605</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-01-08 00:49:59 -0800</bug_when>
    <thetext>Created attachment 220605
rebase + style fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965371</commentid>
    <comment_count>3</comment_count>
      <attachid>220606</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-01-08 01:03:35 -0800</bug_when>
    <thetext>Created attachment 220606
ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965373</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-08 01:06:38 -0800</bug_when>
    <thetext>Attachment 220606 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/Shared/API/c/WKBase.h&apos;, u&apos;Source/WebKit2/Shared/API/c/WKSharedAPICast.h&apos;, u&apos;Source/WebKit2/Shared/APIObject.h&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKSessionRef.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKSessionRef.h&apos;, u&apos;Source/WebKit2/UIProcess/API/Cocoa/WKSession.h&apos;, u&apos;Source/WebKit2/UIProcess/API/Cocoa/WKSession.mm&apos;, u&apos;Source/WebKit2/UIProcess/API/Cocoa/WKSessionInternal.h&apos;, u&apos;Source/WebKit2/UIProcess/WebSession.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebSession.h&apos;, u&apos;Source/WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;, &apos;--commit-queue&apos;]&quot; exit_code: 1
ERROR: Source/WebKit2/UIProcess/WebSession.h:27:  WebSession_h is incorrect. #defined constants should use all uppercase names with words separated by underscores.  [readability/naming/define/constants] [4]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965379</commentid>
    <comment_count>5</comment_count>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-01-08 01:14:36 -0800</bug_when>
    <thetext>I don&apos;t understand this style error as it seems to follow the style guidelines for header guards.  Am I missing something?

(In reply to comment #4)
&gt; Attachment 220606 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/Shared/API/c/WKBase.h&apos;, u&apos;Source/WebKit2/Shared/API/c/WKSharedAPICast.h&apos;, u&apos;Source/WebKit2/Shared/APIObject.h&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKSessionRef.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKSessionRef.h&apos;, u&apos;Source/WebKit2/UIProcess/API/Cocoa/WKSession.h&apos;, u&apos;Source/WebKit2/UIProcess/API/Cocoa/WKSession.mm&apos;, u&apos;Source/WebKit2/UIProcess/API/Cocoa/WKSessionInternal.h&apos;, u&apos;Source/WebKit2/UIProcess/WebSession.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebSession.h&apos;, u&apos;Source/WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;, &apos;--commit-queue&apos;]&quot; exit_code: 1
&gt; ERROR: Source/WebKit2/UIProcess/WebSession.h:27:  WebSession_h is incorrect. #defined constants should use all uppercase names with words separated by underscores.  [readability/naming/define/constants] [4]
&gt; Total errors found: 1 in 12 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965526</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-08 09:43:44 -0800</bug_when>
    <thetext>&gt; I don&apos;t understand this style error as it seems to follow the style guidelines for header guards.  Am I missing something?

This is a newly introduced mistake in style checker, will roll out in bug 126645.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965529</commentid>
    <comment_count>7</comment_count>
      <attachid>220606</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-01-08 09:53:31 -0800</bug_when>
    <thetext>Comment on attachment 220606
ChangeLog

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

With those changes, r=me.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKSession.h:26
&gt; +#include &lt;WebKit2/WKSessionRef.h&gt;

This should not be included. It is in some of the objective-c headers as a temporary renaming mitigation.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKSession.h:28
&gt; +#ifdef __OBJC__

This is also not needed.

&gt; Source/WebKit2/UIProcess/WebSession.h:37
&gt; +    bool getEphemeral();

This should be called either isEphemeral() or just ephemeral() (I prefer the isEphemeral()).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965544</commentid>
    <comment_count>8</comment_count>
      <attachid>220642</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-01-08 10:38:45 -0800</bug_when>
    <thetext>Created attachment 220642
address comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965551</commentid>
    <comment_count>9</comment_count>
      <attachid>220642</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2014-01-08 10:58:56 -0800</bug_when>
    <thetext>Comment on attachment 220642
address comments

Attachment 220642 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/5178054582206464</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965553</commentid>
    <comment_count>10</comment_count>
      <attachid>220644</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-01-08 11:08:08 -0800</bug_when>
    <thetext>Created attachment 220644
rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965557</commentid>
    <comment_count>11</comment_count>
      <attachid>220645</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-01-08 11:15:59 -0800</bug_when>
    <thetext>Created attachment 220645
add reviewer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965563</commentid>
    <comment_count>12</comment_count>
      <attachid>220645</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-08 11:23:02 -0800</bug_when>
    <thetext>Comment on attachment 220645
add reviewer

Here are some high-level comments I though of yesterday:

- WKSession is a very generic and non-descriptive name. I think it should be named to reflect what type of session it is.
- I had to look up what ephemeral meant, and I suspect other developers that aren&apos;t fluent in english will have to do so too. Maybe we can come up with a better name?
- I think the C++ object should be in the API namespace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965565</commentid>
    <comment_count>13</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-01-08 11:31:40 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 220645 [details])
&gt; Here are some high-level comments I though of yesterday:
&gt; 
&gt; - WKSession is a very generic and non-descriptive name. I think it should be named to reflect what type of session it is.

In the end, I think the WKSession should have all the session specific information:
- Cookies
- Caches
- Local Storage
- Databases
- Etc.

&gt; - I had to look up what ephemeral meant, and I suspect other developers that aren&apos;t fluent in english will have to do so too. Maybe we can come up with a better name?
- This is the name CFNetwork uses. I think it is quite good :(.

&gt; - I think the C++ object should be in the API namespace.
Yeah, it should.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965573</commentid>
    <comment_count>14</comment_count>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-01-08 11:54:53 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; - I think the C++ object should be in the API namespace.
&gt; Yeah, it should.

So WebSession should be in namespace API instead of namespace WebKit?  I&apos;m not sure how this makes sense because API classes tend to be abstract concepts like Array, Number, Object, etc and the names all start with &quot;API&quot;.  Should I give WebSession the same treatment?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965580</commentid>
    <comment_count>15</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-08 11:59:27 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; (In reply to comment #12)
&gt; &gt; &gt; - I think the C++ object should be in the API namespace.
&gt; &gt; Yeah, it should.
&gt; 
&gt; So WebSession should be in namespace API instead of namespace WebKit?  I&apos;m not sure how this makes sense because API classes tend to be abstract concepts like Array, Number, Object, etc and the names all start with &quot;API&quot;.  

We&apos;ve started using the API namespaces for objects that are exposed as API. Right now that means most of the abstract objects but we&apos;re moving more of the Web* classes over to API*.

&gt; Should I give WebSession the same treatment?

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965593</commentid>
    <comment_count>16</comment_count>
      <attachid>220652</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-01-08 12:32:43 -0800</bug_when>
    <thetext>Created attachment 220652
move Session to API namespace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965595</commentid>
    <comment_count>17</comment_count>
      <attachid>220653</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-01-08 12:34:10 -0800</bug_when>
    <thetext>Created attachment 220653
style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965763</commentid>
    <comment_count>18</comment_count>
      <attachid>220653</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-08 19:57:50 -0800</bug_when>
    <thetext>Comment on attachment 220653
style

Clearing flags on attachment: 220653

Committed r161542: &lt;http://trac.webkit.org/changeset/161542&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965765</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-08 19:57:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220604</attachid>
            <date>2014-01-08 00:40:12 -0800</date>
            <delta_ts>2014-01-08 00:49:59 -0800</delta_ts>
            <desc>patch</desc>
            <filename>wksessionstub.01.diff</filename>
            <type>text/plain</type>
            <size>28992</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCAxOTdhZDlmLi5kNDE4OTRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0xMjYsNiArMTI2LDcgQEAgdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIqIFdLUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcmVmZXJl
bmNlcyogV0tQcmVmZXJlbmNlc1JlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUHJv
dGVjdGlvblNwYWNlKiBXS1Byb3RlY3Rpb25TcGFjZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLVGV4dENoZWNrZXIqIFdLVGV4dENoZWNrZXJSZWY7Cit0eXBlZGVmIGNvbnN0IHN0
cnVjdCBPcGFxdWVXS1Nlc3Npb24qIFdLU2Vzc2lvblJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLVmlicmF0aW9uKiBXS1ZpYnJhdGlvblJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLVmlld3BvcnRBdHRyaWJ1dGVzKiBXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCmluZGV4IGQ0
Y2JiNzcuLmQ5NThmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S1NoYXJlZEFQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFy
ZWRBUElDYXN0LmgKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2lu
Y2x1ZGUgIldlYkZpbmRPcHRpb25zLmgiCiAjaW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIK
KyNpbmNsdWRlICJXZWJTZXNzaW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZXh0TWVudUl0
ZW0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWVMb2FkZXJUeXBlcy5oPgpAQCAtMTEzLDYgKzExNCw3IEBAIFdLX0FERF9BUElfTUFQUElO
RyhXS1VSTFJlZiwgQVBJOjpVUkwpCiBXS19BRERfQVBJX01BUFBJTkcoV0tVUkxSZXF1ZXN0UmVm
LCBBUEk6OlVSTFJlcXVlc3QpCiBXS19BRERfQVBJX01BUFBJTkcoV0tVUkxSZXNwb25zZVJlZiwg
QVBJOjpVUkxSZXNwb25zZSkKIFdLX0FERF9BUElfTUFQUElORyhXS1VzZXJDb250ZW50VVJMUGF0
dGVyblJlZiwgV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuKQorV0tfQUREX0FQSV9NQVBQSU5HKFdL
U2Vzc2lvblJlZiwgV2ViU2Vzc2lvbikKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQVBJVHlwZUluZm88
V0tNdXRhYmxlQXJyYXlSZWY+IHsgdHlwZWRlZiBBUEk6OkFycmF5KiBJbXBsVHlwZTsgfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCmluZGV4IDAwNGViMGMuLjBkYTA0NjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJT2JqZWN0LmgKQEAgLTEyOSw2ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgICAg
IFBhZ2VHcm91cCwKICAgICAgICAgUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLAogICAgICAgICBQcmVm
ZXJlbmNlcywKKyAgICAgICAgU2Vzc2lvbiwKICAgICAgICAgVGV4dENoZWNrZXIsCiAgICAgICAg
IFZpYnJhdGlvbiwKICAgICAgICAgVmlld3BvcnRBdHRyaWJ1dGVzLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblJlZi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tTZXNzaW9uUmVmLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4xMzE2ODJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblJlZi5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS1Nlc3Npb25SZWYuaCIK
KworI2luY2x1ZGUgIldlYlNlc3Npb24uaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwordXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tTZXNzaW9uR2V0VHlwZUlEKCkKK3sK
KyAgICByZXR1cm4gdG9BUEkoV2ViU2Vzc2lvbjo6QVBJVHlwZSk7Cit9CisKK2Jvb2wgV0tTZXNz
aW9uR2V0RXBoZW1lcmFsKFdLU2Vzc2lvblJlZiBzZXNzaW9uUmVmKQoreworICAgIHJldHVybiB0
b0FQSSh0b0ltcGwoc2Vzc2lvblJlZiktPmdldEVwaGVtZXJhbCgpKTsKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5mYzBiNWU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblJlZi5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdLU2Vzc2lvblJlZl9oCisjZGVmaW5lIFdLU2Vzc2lvblJlZl9oCisK
KyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVy
biAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS1Nlc3Npb25HZXRUeXBlSUQo
KTsKKworV0tfRVhQT1JUIGJvb2wgV0tTZXNzaW9uR2V0RXBoZW1lcmFsKFdLU2Vzc2lvblJlZiBz
ZXNzaW9uKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdL
U2Vzc2lvblJlZl9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Nlc3Npb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTJkYjUwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nl
c3Npb24uaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgPFdlYktpdDIv
V0tTZXNzaW9uUmVmLmg+CisKKyNpZmRlZiBfX09CSkNfXworCisjaW1wb3J0IDxXZWJLaXQyL1dL
Rm91bmRhdGlvbi5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCA8Rm91bmRhdGlv
bi9Gb3VuZGF0aW9uLmg+CisKK1dLX0FQSV9DTEFTUworQGludGVyZmFjZSBXS1Nlc3Npb24gOiBO
U09iamVjdAorCitAcHJvcGVydHkgKHJlYWRvbmx5KSBib29sIGVwaGVtZXJhbDsKKworQGVuZAor
CisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKKworI2VuZGlmIC8vIGRlZmluZWQoX19PQkpDX18p
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Npb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLU2Vzc2lvbi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5lMTEyMjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Nlc3Npb24ubW0KQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tTZXNzaW9uSW50ZXJuYWwuaCIKKworI2lmIFdL
X0FQSV9FTkFCTEVECisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK0BpbXBsZW1lbnRhdGlv
biBXS1Nlc3Npb24geworICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxXZWJTZXNzaW9uPiBfc2Vzc2lv
bjsKK30KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgX3Nlc3Npb24tPn5XZWJTZXNzaW9uKCk7
CisKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKGJvb2wpZXBoZW1lcmFsCit7CisgICAg
cmV0dXJuIF9zZXNzaW9uLT5nZXRFcGhlbWVyYWwoKTsKK30KKworI3ByYWdtYSBtYXJrIFdLT2Jq
ZWN0IHByb3RvY29sIGltcGxlbWVudGF0aW9uCisKKy0gKEFQSTo6T2JqZWN0JilfYXBpT2JqZWN0
Cit7CisgICAgcmV0dXJuICpfc2Vzc2lvbjsKK30KKworQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJ
X0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tTZXNzaW9uSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tTZXNzaW9uSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j
ZGJmNDJlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Nlc3Npb25JbnRlcm5hbC5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJXS1Nlc3Npb24uaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgIldL
T2JqZWN0LmgiCisjaW1wb3J0ICJXZWJTZXNzaW9uLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitpbmxpbmUgV0tTZXNzaW9uICp3cmFwcGVyKFdlYlNlc3Npb24mIHNlc3Npb24pCit7CisgICAg
QVNTRVJUKFtzZXNzaW9uLndyYXBwZXIoKSBpc0tpbmRPZkNsYXNzOltXS1Nlc3Npb24gY2xhc3Nd
XSk7CisgICAgcmV0dXJuIChXS1Nlc3Npb24gKilzZXNzaW9uLndyYXBwZXIoKTsKK30KKworfQor
CitAaW50ZXJmYWNlIFdLU2Vzc2lvbiAoKSA8V0tPYmplY3Q+CitAZW5kCisKKyNlbmRpZiAvLyBX
S19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlNl
c3Npb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlNlc3Npb24uY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3NmZiZDYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViU2Vzc2lvbi5jcHAKQEAgLTAsMCArMSw1MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJTZXNzaW9u
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJTZXNzaW9uOjpXZWJTZXNzaW9uKGJvb2wg
aXNFcGhlbWVyYWwpCisgICAgOiBtX2lzRXBoZW1lcmFsKGlzRXBoZW1lcmFsKQoreworfQorCitQ
YXNzUmVmUHRyPFdlYlNlc3Npb24+IFdlYlNlc3Npb246OmNyZWF0ZShib29sIGlzRXBoZW1lcmFs
KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViU2Vzc2lvbihpc0VwaGVtZXJhbCkpOwor
fQorCitib29sIFdlYlNlc3Npb246OmdldEVwaGVtZXJhbCgpCit7CisgICAgcmV0dXJuIG1faXNF
cGhlbWVyYWw7Cit9CisKK1dlYlNlc3Npb246On5XZWJTZXNzaW9uKCkKK3sKK30KKworfSAgLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlNlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJTZXNzaW9uLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2UyNTdmOQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJTZXNzaW9uLmgKQEAgLTAsMCArMSw0NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV2ViU2Vzc2lvbl9oCisjZGVmaW5lIFdlYlNlc3Npb25faAor
CisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlNlc3Npb24gOiBwdWJsaWMgQVBJOjpPYmpl
Y3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpTZXNzaW9uPiB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8V2ViU2Vzc2lvbj4gY3JlYXRlKGJvb2wgaXNFcGhlbWVyYWwpOworICAgIGJv
b2wgZ2V0RXBoZW1lcmFsKCk7CisgICAgdmlydHVhbCB+V2ViU2Vzc2lvbigpOworCitwcml2YXRl
OgorICAgIGV4cGxpY2l0IFdlYlNlc3Npb24oYm9vbCBpc0VwaGVtZXJhbCk7CisgICAgYm9vbCBt
X2lzRXBoZW1lcmFsOworfTsKKworfSAgLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
V2ViU2Vzc2lvbl9oClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIzZDcwNDYuLmYx
OTlmNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTc1NSw2ICs3NTUsMTMgQEAKIAkJNzU5Q0NENTgxODA4RjE2NDAwNzhFOEE4
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU5Q0NENTQxODA4RjE2MDAwNzhF
OEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwICovOyB9Owog
CQk3NTlDQ0Q1OTE4MDhGMTY5MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNo
YW5nZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU5Q0NENTUxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlD
aGFuZ2VDbGllbnQuaCAqLzsgfTsKIAkJNzU5Q0NENUExODA4RjYxNjAwNzhFOEE4IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDc1NTQyMkJGMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5LmggKi87IH07CisJCTc1QThEMkM4MTg3Q0NGQUIwMEMzOUM5RSAvKiBXS1Nlc3Np
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1QThE
MkM0MTg3Q0NGOUYwMEMzOUM5RSAvKiBXS1Nlc3Npb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3NUE4RDJDOTE4N0NDRkFGMDBDMzlDOUUgLyog
V0tTZXNzaW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzVBOEQyQzUxODdDQ0Y5RjAwQzM5QzlFIC8qIFdLU2Vzc2lvbi5tbSAqLzsgfTsKKwkJNzVB
OEQyQ0UxODdEMEE3MDAwQzM5QzlFIC8qIFdlYlNlc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1QThEMkNCMTg3Q0ZDMEIwMEMzOUM5RSAvKiBX
ZWJTZXNzaW9uLmggKi87IH07CisJCTc1QThEMkNGMTg3RDBBNzMwMEMzOUM5RSAvKiBXZWJTZXNz
aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1
QThEMkNBMTg3Q0ZDMEIwMEMzOUM5RSAvKiBXZWJTZXNzaW9uLmNwcCAqLzsgfTsKKwkJNzVBOEQy
RDYxODdEMUMwRTAwQzM5QzlFIC8qIFdLU2Vzc2lvbkludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUE4RDJENDE4N0QxQzAxMDBDMzlDOUUg
LyogV0tTZXNzaW9uSW50ZXJuYWwuaCAqLzsgfTsKKwkJNzVBOEQyRDcxODdEMzAzQTAwQzM5QzlF
IC8qIFdLU2Vzc2lvblJlZi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzVBOEQyRDExODdEMTdCRjAwQzM5QzlFIC8qIFdLU2Vzc2lvblJlZi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTc1QThEMkQ4MTg3
RDMwNDAwMEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyRDAxODdEMTdCRjAwQzM5QzlFIC8qIFdLU2Vz
c2lvblJlZi5jcHAgKi87IH07CiAJCTc1RTc0OUU5MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmln
aW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUU3NDlFNTE4MERCQjk4MDAwODhCQTYgLyogV2ViT3Jp
Z2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk3NUU3NDlFQTE4MERC
Qjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVFNzQ5RTYxODBEQkI5ODAwMDg4
QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKIAkJNzVFNzQ5RUIx
ODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVF
NzQ5RTcxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OwpAQCAtMTYwNSw4ICsxNjEyLDggQEAKIAkJMEY1OTQ3OTcxODdC
M0I2MDAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ1RyZWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gUmVtb3RlU2Nyb2xsaW5nVHJlZS5oOyBwYXRoID0gU2Nyb2xsaW5nL1Jl
bW90ZVNjcm9sbGluZ1RyZWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1OTQ3
QTExODdCM0I3RDAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHA7IHBhdGggPSBTY3JvbGxpbmcvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGNTk0N0EyMTg3QjNCN0QwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclRyYW5zYWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaDsgcGF0aCA9IFNjcm9sbGluZy9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTBGNTk0N0E1MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBh
dGggPSBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGNTk0N0E2MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaDsgcGF0aCA9IFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEY1OTQ3QTUxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1OTQ3QTYxODdCNTE3NjAwNDM3ODU3IC8qIFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRkI2NTkyMjEyMDhCNERCMDA0NDgxNkMgLyogRHJhd2lu
Z0FyZWFJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYXdpbmdBcmVh
SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkYyNEEyQjE4NzlFNEJDMDAz
QUJGMEMgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEZGMjRBMkMxODc5RTRCQzAwM0FCRjBDIC8qIFJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIzODQsNiArMjM5MSwxMyBAQAogCQk3NTU0MjJDODE4MDY0RkZDMDA0
NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW47IHBhdGggPSBPcmlnaW5E
YXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3NTlDQ0Q1NDE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eUNoYW5nZUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU5Q0NENTUxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3NUE4RDJDNDE4N0NDRjlGMDBDMzlDOUUgLyogV0tTZXNz
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLU2Vzc2lvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUE4RDJDNTE4N0NDRjlGMDBDMzlDOUUgLyogV0tT
ZXNzaW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTZXNz
aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUE4RDJDQTE4N0NGQzBCMDBD
MzlDOUUgLyogV2ViU2Vzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJTZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVBOEQy
Q0IxODdDRkMwQjAwQzM5QzlFIC8qIFdlYlNlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViU2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3
NUE4RDJEMDE4N0QxN0JGMDBDMzlDOUUgLyogV0tTZXNzaW9uUmVmLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLU2Vzc2lvblJlZi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTc1QThEMkQxMTg3RDE3QkYwMEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTZXNzaW9uUmVmLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1QThEMkQ0MTg3RDFDMDEwMEMzOUM5RSAvKiBXS1Nl
c3Npb25JbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1Nlc3Np
b25JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NUU3NDlFNTE4MERC
Qjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NUU3NDlF
NjE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2Vz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1RTc0OUU3MTgwREJCOTgwMDA4OEJB
NiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzk3OSw2
ICszOTkzLDkgQEAKIAkJCQlCQ0JBQUNFNjE0NTIyNUNBMDA1M0Y4MkYgLyogV0tQcm9jZXNzR3Jv
dXAubW0gKi8sCiAJCQkJN0MxRkIzQkYxODQ2QUVGQzAwMUEwM0Q4IC8qIFdLUHJvY2Vzc0dyb3Vw
SW50ZXJuYWwuaCAqLywKIAkJCQlCQ0JBQUNFNzE0NTIyNUNCMDA1M0Y4MkYgLyogV0tQcm9jZXNz
R3JvdXBQcml2YXRlLmggKi8sCisJCQkJNzVBOEQyQzQxODdDQ0Y5RjAwQzM5QzlFIC8qIFdLU2Vz
c2lvbi5oICovLAorCQkJCTc1QThEMkM1MTg3Q0NGOUYwMEMzOUM5RSAvKiBXS1Nlc3Npb24ubW0g
Ki8sCisJCQkJNzVBOEQyRDQxODdEMUMwMTAwQzM5QzlFIC8qIFdLU2Vzc2lvbkludGVybmFsLmgg
Ki8sCiAJCQkJN0NENUVCQkQxNzQ2QjA0QzAwMEMxQzQ1IC8qIFdLVHlwZVJlZldyYXBwZXIuaCAq
LywKIAkJCQk3Q0Q1RUJCQzE3NDZCMDRDMDAwQzFDNDUgLyogV0tUeXBlUmVmV3JhcHBlci5tbSAq
LywKIAkJCQlCQzg2OTlCMjExNkFBREFBMDAyQTkyNUIgLyogV0tWaWV3LmggKi8sCkBAIC00NzA3
LDggKzQ3MjQsOCBAQAogCQkJCTMzRDNBM0I5MTMzOTYwNjIwMDcwOUJFNCAvKiBXZWJNZWRpYUNh
Y2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCUJDMURGRUEzMTJCMzFGODcwMDVE
RjczMCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCAqLywKIAkJCQlCQzFE
RkVBMjEyQjMxRjg3MDA1REY3MzAgLyogV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5o
ICovLAotCQkJCTc1NTQyMkJFMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5LmNwcCAqLywKIAkJCQk3NTU0MjJCRjE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eS5oICovLAorCQkJCTc1NTQyMkJFMTgwNjJCRTQwMDQ2RjZBOCAvKiBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcCAqLywKIAkJCQk3NTU0MjJDMDE4MDYyQkU0MDA0
NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQk3
NTlDQ0Q1NDE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5n
ZUNsaWVudC5jcHAgKi8sCiAJCQkJNzU5Q0NENTUxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCAqLywKQEAgLTQ3MzAsNiArNDc0Nyw4IEBA
CiAJCQkJMzMzNjc2MzIxMzBDOTlCMjAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHkuY3BwICovLAogCQkJCTMzMzY3NjMzMTMwQzk5QjIwMDZDOURFMiAvKiBXZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlclByb3h5LmggKi8sCiAJCQkJMzMzNjc2MzQxMzBDOTlCMjAwNkM5REUyIC8q
IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJNzVBOEQy
Q0ExODdDRkMwQjAwQzM5QzlFIC8qIFdlYlNlc3Npb24uY3BwICovLAorCQkJCTc1QThEMkNCMTg3
Q0ZDMEIwMEMzOUM5RSAvKiBXZWJTZXNzaW9uLmggKi8sCiAJCQkJMUE1OTRBQjgxMTJBMUZCNjAw
OURFN0M3IC8qIFdlYlVJQ2xpZW50LmNwcCAqLywKIAkJCQkxQTU5NEFCOTExMkExRkI2MDA5REU3
QzcgLyogV2ViVUlDbGllbnQuaCAqLywKIAkJCSk7CkBAIC00ODQ1LDYgKzQ4NjQsOCBAQAogCQkJ
CTUxOEFDQUU5MTJBRUU2QkIwMEIwNEI4MyAvKiBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmggKi8s
CiAJCQkJMzMzNjc2MzgxMzBDOTlEQzAwNkM5REUyIC8qIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIu
Y3BwICovLAogCQkJCTMzMzY3NjM5MTMwQzk5REMwMDZDOURFMiAvKiBXS1Jlc291cmNlQ2FjaGVN
YW5hZ2VyLmggKi8sCisJCQkJNzVBOEQyRDAxODdEMTdCRjAwQzM5QzlFIC8qIFdLU2Vzc2lvblJl
Zi5jcHAgKi8sCisJCQkJNzVBOEQyRDExODdEMTdCRjAwQzM5QzlFIC8qIFdLU2Vzc2lvblJlZi5o
ICovLAogCQkJKTsKIAkJCXBhdGggPSBDOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTYwNjIsNiArNjA4Myw3IEBACiAJCQkJNTE4RDJDQUUxMkQ1MTUzQjAwM0JCOTNCIC8qIFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNzJCOUZCMTFFNjQ3NkIw
MDFFQjRFQSAvKiBXZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzdGQzE5NEIxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzVBOEQyQzgxODdDQ0ZBQjAwQzM5QzlFIC8qIFdLU2Vz
c2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNGNTA3MjgxMjQzMjlBQTAwNTk1NUFFIC8qIFdl
YkNlcnRpZmljYXRlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJENzUxMEY0Mzc4RDAw
NThDMTVBIC8qIFdlYkNocm9tZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE1RTc3MzQx
ODQwMkQ1MTAwMDcyMDNGIC8qIFVuaXF1ZUlEQkRhdGFiYXNlSWRlbnRpZmllci5oIGluIEhlYWRl
cnMgKi8sCkBAIC02MTI0LDYgKzYxNDYsNyBAQAogCQkJCTFBOTBDMUVFMTI2NEZENTAwMDNFNDRE
NCAvKiBXZWJGaW5kT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNDY5NTQxMjE0RTZD
QjAwMEI5OEVCIC8qIFdlYkZvcm1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTQ2OTU2
MTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTc1QThEMkQ3MTg3RDMwM0EwMEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyRDhEMTBGNDM3QTAwMDU4QzE1QSAvKiBXZWJGcmFt
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNDY5NzcxMjE0RjI3QjAwMEI5OEVCIC8qIFdlYkZy
YW1lTGlzdGVuZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEN0YxMEY0Mzc4RDAw
NThDMTVBIC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTYyMTAs
NiArNjIzMyw3IEBACiAJCQkJMUFDMTMzODAxODU5MEFFNDAwRjNFQzA1IC8qIFJlbW90ZU9iamVj
dFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzMwNjZCRjEyNUE0NDIxMDBFNzEyNzgg
LyogV2ViUHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkRENTEwRjQz
ODlGMDA1OEMxNUEgLyogV2ViUHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NUE4
RDJENjE4N0QxQzBFMDBDMzlDOUUgLyogV0tTZXNzaW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxMDMyRjE5MTgwRjczQkIwMDk2MUJCNyAvKiBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nv
bm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUU3QUQxMTI4MTc5ODgwMDk4MjdEQSAv
KiBXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFMEU0MjUx
NjhCN0EyODAwNTdFNjZBIC8qIFdlYlByb2Nlc3NTdXBwbGVtZW50LmggaW4gSGVhZGVycyAqLywK
QEAgLTYzMDcsNiArNjMzMSw3IEBACiAJCQkJNTE4QUNGMTExMkIwMTVGODAwQjA0QjgzIC8qIFdL
Q3JlZGVudGlhbFR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzVGODEyNEZGMDI3MDA2
OEYyMEEgLyogV0tEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNjJBNzY2MjEyQjFBQkVEMDAw
NUYxQjYgLyogV0tEYXRhYmFzZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1QThEMkNF
MTg3RDBBNzAwMEMzOUM5RSAvKiBXZWJTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQw
NzVGQTEyNEZGMDI3MDA2OEYyMEEgLyogV0tEaWN0aW9uYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzAxN0QwNzE2MjYwRkY0MDA3MDU0RjUgLyogV0tET01Eb2N1bWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkMwMTdEMDkxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCkBAIC03MjI2LDkgKzcyNTEsMTEgQEAKIAkJCQlCQzY0Njk2RjExREJFNjAzMDA2
NDU1QjAgLyogQVBJQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCQ0IwQ0QxMjE1RTMz
QTAwREU1OUNBIC8qIEltbXV0YWJsZURpY3Rpb25hcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkMyMDRFRTIxMUM4M0U5ODAwOEYzMzc1IC8qIEluamVjdGVkQnVuZGxlLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTc1QThEMkNGMTg3RDBBNzMwMEMzOUM5RSAvKiBXZWJTZXNzaW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTM3QzRDMDkzMTgxNEIzQUYwMDM2ODhCOSAvKiBXS05TQXJyYXkubW0g
aW4gU291cmNlcyAqLywKIAkJCQk5MzVFRUJBMTEyNzc2MUNDMDAzMzIyQjggLyogSW5qZWN0ZWRC
dW5kbGVCYWNrRm9yd2FyZExpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM1RUVCQTMxMjc3
NjFEMzAwMzMyMkI4IC8qIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk3NUE4RDJDOTE4N0NDRkFGMDBDMzlDOUUgLyogV0tTZXNzaW9uLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFRTdEQzYxMjhCNjQ1RDAwOTgyN0RBIC8qIEluamVjdGVk
QnVuZGxlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRkEyRDc0MTUyMTJERjEwMEMx
QkEwQiAvKiBJbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzQ5ODYxOTEyNEQxMEUyMDBEODM0RTEgLyogSW5qZWN0ZWRCdW5kbGVIaXRUZXN0
UmVzdWx0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNzM2MSw2ICs3Mzg4LDcgQEAKIAkJCQkxQTJE
OTIyMTEyODFEQzFCMDAxRUI5NjIgLyogUGx1Z2luUHJveHlNYWMubW0gaW4gU291cmNlcyAqLywK
IAkJCQk3NTU0MjJDNDE4MDYyQkY5MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQThFRkE3MDEyNTJCODQxMDBGNzA2N0YgLyogUGx1
Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzVBOEQyRDgx
ODdEMzA0MDAwQzM5QzlFIC8qIFdLU2Vzc2lvblJlZi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkz
NzFBMTk0MTE4MjREMjkzMDBGMzJBNUUgLyogV0tOU0RpY3Rpb25hcnkubW0gaW4gU291cmNlcyAq
LywKIAkJCQk3Q0Q2MjI3NzE3MzlEODYzMDA1QkQ3RkYgLyogUGx1Z2luU2FuZGJveFByb2ZpbGUu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzgyODQ0RDE2QjUwODFDMDBBMjc4RkUgLyogUGx1Z2lu
U2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220605</attachid>
            <date>2014-01-08 00:49:59 -0800</date>
            <delta_ts>2014-01-08 01:03:35 -0800</delta_ts>
            <desc>rebase + style fixes</desc>
            <filename>sessionstub.02.diff</filename>
            <type>text/plain</type>
            <size>33122</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybS5oCmluZGV4IGJkNWFkODMuLjhjMzIzYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtNDk1LDYg
KzQ5NSw5IEBACiAjZGVmaW5lIFdURl9VU0VfUExVR0lOX0hPU1RfUFJPQ0VTUyAxCiAjZW5kaWYK
ICNkZWZpbmUgV1RGX1VTRV9DRiAxCisjZGVmaW5lIFdURl9VU0VfTlNVUkwgMQorLyogI2RlZmlu
ZSBXVEZfVVNFX05TVVJMQ09OTkVDVElPTiAxICovCisjZGVmaW5lIFdURl9VU0VfTlNVUkxTRVNT
SU9OIDEKICNkZWZpbmUgSEFWRV9SRUFETElORSAxCiAjZGVmaW5lIEhBVkVfUlVOTE9PUF9USU1F
UiAxCiAjZGVmaW5lIEhBVkVfU0VDX0lERU5USVRZIDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3ODkxYWFiLi5kNzU0OGJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0yMTU3LDYgKzIxNTcsNyBAQAogCQk3NTc5M0VEMzBEMENFODVCMDA3RkMwQUMgLyogRE9N
TWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3NTc5M0VEMDBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50LmggKi87IH07
CiAJCTc1NzkzRUQ0MEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZlbnQubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0VEMTBEMENFODVC
MDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50Lm1tICovOyB9OwogCQk3NTc5M0VENTBEMENFODVC
MDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRUQyMEQwQ0U4NUIwMDdGQzBBQyAvKiBE
T01NZXNzYWdlRXZlbnRJbnRlcm5hbC5oICovOyB9OworCQk3NUU0Q0MwMzE4NjEzN0NCMDA1NjJB
QzQgLyogUmVzb3VyY2VIYW5kbGVOU1VSTFNlc3Npb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUU0Q0MwMjE4NjEzN0JGMDA1NjJBQzQgLyogUmVz
b3VyY2VIYW5kbGVOU1VSTFNlc3Npb24ubW0gKi87IH07CiAJCTc2MzNBNzI2MTNEOEIzM0EwMDg1
MDFCNiAvKiBMb2NhbGVUb1NjcmlwdE1hcHBpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2MzNBNzI0MTNEOEIzM0EwMDg1MDFCNiAvKiBMb2NhbGVU
b1NjcmlwdE1hcHBpbmcuaCAqLzsgfTsKIAkJNzYzM0E3MjcxM0Q4QjMzQTAwODUwMUI2IC8qIExv
Y2FsZVRvU2NyaXB0TWFwcGluZ0RlZmF1bHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzYzM0E3MjUxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2FsZVRv
U2NyaXB0TWFwcGluZ0RlZmF1bHQuY3BwICovOyB9OwogCQk3NjgwOEI1MDE1OURBREZBMDAyQjUy
MzMgLyogSlNIVE1MRGlhbG9nRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzY4MDhCNEUxNTlEQURGQTAwMkI1MjMzIC8qIEpTSFRNTERpYWxv
Z0VsZW1lbnQuaCAqLzsgfTsKQEAgLTg5NzcsNiArODk3OCw3IEBACiAJCTc1NzkzRUQxMEQwQ0U4
NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gRE9NTWVzc2FnZUV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3NTc5M0VEMjBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50SW50
ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTU1lc3NhZ2VFdmVu
dEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1ODk3OEVCMTI3MDkw
RDYwMDc2RDVBOSAvKiBTcGVlY2hJbnB1dFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hJbnB1dFJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3NUU0Q0MwMjE4NjEzN0JGMDA1NjJBQzQgLyogUmVzb3VyY2VIYW5kbGVOU1VSTFNlc3Np
b24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZXNvdXJjZUhh
bmRsZU5TVVJMU2Vzc2lvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzYzM0E3
MjQxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2FsZVRvU2NyaXB0TWFwcGluZy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbGVUb1NjcmlwdE1hcHBpbmcuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzYzM0E3MjUxM0Q4QjMzQTAwODUwMUI2IC8qIExvY2FsZVRv
U2NyaXB0TWFwcGluZ0RlZmF1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTc2ODA4QjRFMTU5REFERkEwMDJCNTIzMyAvKiBKU0hUTUxEaWFsb2dFbGVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTERpYWxvZ0VsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NTYyLDYgKzE1NTY0LDcgQEAK
IAkJCWNoaWxkcmVuID0gKAogCQkJCUIyRjM0RkU3MEU4MkY4MTcwMEY2MjdDRCAvKiBjZiAqLywK
IAkJCQk2NTZCODRFNzBBRUExREFFMDBBMDk1QjQgLyogbWFjICovLAorCQkJCTc1RTRDQzAxMTg2
MTM3QkYwMDU2MkFDNCAvKiBuc3VybHNlc3Npb24gKi8sCiAJCQkJOTM0RjcxMzcwRDVBNkVGRjAw
MDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAgKi8sCiAJCQkJOTM0Rjcx
MzkwRDVBNkYxMDAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oICovLAog
CQkJCUUxMjQ3NDgzMTBBQTE2MUQwMEI3OTQ5MyAvKiBBdXRoZW50aWNhdGlvbkNsaWVudC5oICov
LApAQCAtMTU5NDQsNiArMTU5NDcsMTQgQEAKIAkJCXRhYldpZHRoID0gNDsKIAkJCXVzZXNUYWJz
ID0gMDsKIAkJfTsKKwkJNzVFNENDMDExODYxMzdCRjAwNTYyQUM0IC8qIG5zdXJsc2Vzc2lvbiAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNzVFNENDMDIx
ODYxMzdCRjAwNTYyQUM0IC8qIFJlc291cmNlSGFuZGxlTlNVUkxTZXNzaW9uLm1tICovLAorCQkJ
KTsKKwkJCXBhdGggPSBuc3VybHNlc3Npb247CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwor
CQl9OwogCQk3RUU2ODQ3MzEyRDI2RTU1MDBFNzk0MTUgLyogY2YgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjY4NzYsNiArMjY4ODcsNyBAQAogCQkJCTJF
MkQ5OUNEMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODkzMURFNUIxNEM0NEM0NDAwMERDOUQyIC8qIEpTQmxvYkN1c3RvbS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxNDQ5RTI4NzEwN0Q0REI0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNzVFNENDMDMxODYxMzdDQjAwNTYyQUM0IC8qIFJlc291cmNlSGFu
ZGxlTlNVUkxTZXNzaW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMyMzkwOUQxREU2NTAw
MEJFMzI1IC8qIEpTQ2FudmFzR3JhZGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBQjZE
MzIxN0M5MjU5NTAwQzYwQjM0IC8qIFVzZXJBZ2VudFNjcmlwdHNEYXRhLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTY1REYzMjNCMDlEMURFNjUwMDBCRTMyNSAvKiBKU0NhbnZhc1BhdHRlcm4uY3Bw
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlLmgKaW5kZXggMjE5ZTQ3ZS4uZmZiZGZmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaApAQCAtNjMsNiArNjMsMTAg
QEAgT0JKQ19DTEFTUyBOU0NhY2hlZFVSTFJlc3BvbnNlOwogT0JKQ19DTEFTUyBOU0RhdGE7CiBP
QkpDX0NMQVNTIE5TRXJyb3I7CiBPQkpDX0NMQVNTIE5TVVJMQ29ubmVjdGlvbjsKKyNpZiBVU0Uo
TlNVUkxTRVNTSU9OKQorT0JKQ19DTEFTUyBOU1VSTFNlc3Npb247CitPQkpDX0NMQVNTIE5TVVJM
U2Vzc2lvbkRhdGFUYXNrOworI2VuZGlmCiAjaWZuZGVmIF9fT0JKQ19fCiB0eXBlZGVmIHN0cnVj
dCBvYmpjX29iamVjdCAqaWQ7CiAjZW5kaWYKQEAgLTEyNSw5ICsxMjksMTQgQEAgcHVibGljOgog
I2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCiAgICAgYm9vbCBjYW5BdXRo
ZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYpOwog
I2VuZGlmCi0jaWYgIVVTRShDRk5FVFdPUkspCisjaWYgVVNFKE5TVVJMKQogICAgIHZvaWQgZGlk
Q2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmKTsKKyNpZiBVU0UoTlNVUkxDT05ORUNUSU9OKQogICAgIE5TVVJMQ29ubmVjdGlvbiAqY29u
bmVjdGlvbigpIGNvbnN0OworI2VsaWYgVVNFKE5TVVJMU0VTU0lPTikKKyAgICBOU1VSTFNlc3Np
b24gKnNlc3Npb24oKSBjb25zdDsKKyAgICBOU1VSTFNlc3Npb25EYXRhVGFzayAqZGF0YVRhc2so
KSBjb25zdDsKKyNlbmRpZgogICAgIGlkIGRlbGVnYXRlKCk7CiAgICAgdm9pZCByZWxlYXNlRGVs
ZWdhdGUoKTsKICNlbmRpZgpAQCAtMjc2LDggKzI4NSwxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCByZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIE9WRVJSSURFIHsgcmVmKCk7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZGVyZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIE9WRVJSSURFIHsgZGVy
ZWYoKTsgfQogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhVVNFKENGTkVUV09SSykKKyNpZiBVU0Uo
TlNVUkxDT05ORUNUSU9OKQogICAgIHZvaWQgY3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVn
YXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sIHNob3VsZENvbnRlbnRT
bmlmZik7CisjZWxpZiBVU0UoTlNVUkxTRVNTSU9OKQorICAgIHZvaWQgY3JlYXRlTlNVUkxTZXNz
aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sIHNo
b3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRVc2VEZWxlZ2F0ZVF1ZXVlKTsKICNlbGlmIFVT
RShDRk5FVFdPUkspCiAgICAgdm9pZCBjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRV
c2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIENGRGljdGlvbmFy
eVJlZiBjbGllbnRQcm9wZXJ0aWVzKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAppbmRleCA4YTVl
MWVjLi40MzNjMGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaApAQCAtMTUwLDggKzE1MCwxNCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFJlc291cmNlUmVxdWVzdCBtX2N1cnJlbnRSZXF1ZXN0
OwogICAgICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZT4g
bV9jb25uZWN0aW9uRGVsZWdhdGU7CiAjZW5kaWYKLSNpZiBQTEFURk9STShNQUMpICYmICFVU0Uo
Q0ZORVRXT1JLKQorI2lmIFVTRShOU1VSTENPTk5FQ1RJT04pCiAgICAgICAgIFJldGFpblB0cjxO
U1VSTENvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyNlbmRpZgorI2lmIFVTRShOU1VSTFNFU1NJ
T04pCisgICAgICAgIFJldGFpblB0cjxOU1VSTFNlc3Npb24+IG1fc2Vzc2lvbjsKKyAgICAgICAg
UmV0YWluUHRyPE5TVVJMU2Vzc2lvbkRhdGFUYXNrPiBtX2RhdGFUYXNrOworI2VuZGlmCisjaWYg
VVNFKE5TVVJMKQogICAgICAgICBSZXRhaW5QdHI8aWQ+IG1fZGVsZWdhdGU7CiAjZW5kaWYKICNp
ZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCmluZGV4IGU3M2M2NWQuLjIyNmI0ZGVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhh
bmRsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNv
dXJjZUhhbmRsZU1hYy5tbQpAQCAtMjYsNyArMjYsNyBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAj
aW1wb3J0ICJSZXNvdXJjZUhhbmRsZUludGVybmFsLmgiCiAKLSNpZiAhVVNFKENGTkVUV09SSykK
KyNpZiBVU0UoTlNVUkxDT05ORUNUSU9OKQogCiAjaW1wb3J0ICJBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZS5oIgogI2ltcG9ydCAiQXV0aGVudGljYXRpb25NYWMuaCIKQEAgLTYwMCw0ICs2MDAsNCBA
QCB2b2lkIFJlc291cmNlSGFuZGxlOjpjb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlKE5TQ2FjaGVk
VVJMUmVzcG9uc2UgKnJlc3BvbnNlKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRp
ZiAvLyAhVVNFKENGTkVUV09SSykKKyNlbmRpZiAvLyBVU0UoTlNVUkxDT05ORUNUSU9OKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9uc3VybHNlc3Npb24vUmVz
b3VyY2VIYW5kbGVOU1VSTFNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL25zdXJsc2Vzc2lvbi9SZXNvdXJjZUhhbmRsZU5TVVJMU2Vzc2lvbi5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTZiOGNhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9uc3VybHNlc3Npb24vUmVzb3VyY2VIYW5kbGVO
U1VSTFNlc3Npb24ubW0KQEAgLTAsMCArMSw1OTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
IlJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCIKKworI2lmIFVTRShOU1VSTFNFU1NJT04pCisKKyNp
bXBvcnQgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmgiCisjaW1wb3J0ICJBdXRoZW50aWNhdGlv
bk1hYy5oIgorI2ltcG9ydCAiQmxvY2tFeGNlcHRpb25zLmgiCisjaW1wb3J0ICJDb29raWVTdG9y
YWdlLmgiCisjaW1wb3J0ICJDcmVkZW50aWFsU3RvcmFnZS5oIgorI2ltcG9ydCAiQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaCIKKyNpbXBvcnQgIkZvcm1EYXRhU3RyZWFtTWFjLmgiCisjaW1wb3J0ICJG
cmFtZS5oIgorI2ltcG9ydCAiRnJhbWVMb2FkZXIuaCIKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNp
bXBvcnQgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbXBvcnQgIk5ldHdvcmtpbmdDb250ZXh0Lmgi
CisjaW1wb3J0ICJQYWdlLmgiCisjaW1wb3J0ICJSZXNvdXJjZUVycm9yLmgiCisjaW1wb3J0ICJS
ZXNvdXJjZVJlc3BvbnNlLmgiCisjaW1wb3J0ICJTZXR0aW5ncy5oIgorI2ltcG9ydCAiU2hhcmVk
QnVmZmVyLmgiCisjaW1wb3J0ICJTdWJyZXNvdXJjZUxvYWRlci5oIgorI2ltcG9ydCAiV2ViQ29y
ZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5oIgorI2ltcG9ydCAiV2ViQ29yZVJlc291cmNlSGFu
ZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLmgiCisjaW1wb3J0ICJTeW5jaHJvbm91c0xvYWRl
ckNsaWVudC5oIgorI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgorI2ltcG9ydCAi
V2ViQ29yZVVSTFJlc3BvbnNlLmgiCisjaW1wb3J0IDx3dGYvUmVmLmg+CisjaW1wb3J0IDx3dGYv
U2NoZWR1bGVQYWlyLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9CYXNlNjQuaD4KKyNpbXBvcnQgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK0BpbnRlcmZh
Y2UgTlNVUkxTZXNzaW9uIChEZXRhaWxzKQorLShpZClfaW5pdFdpdGhSZXF1ZXN0OihOU1VSTFJl
cXVlc3QgKilyZXF1ZXN0IGRlbGVnYXRlOihpZClkZWxlZ2F0ZSB1c2VzQ2FjaGU6KEJPT0wpdXNl
c0NhY2hlRmxhZyBtYXhDb250ZW50TGVuZ3RoOihsb25nIGxvbmcpbWF4Q29udGVudExlbmd0aCBz
dGFydEltbWVkaWF0ZWx5OihCT09MKXN0YXJ0SW1tZWRpYXRlbHkgY29ubmVjdGlvblByb3BlcnRp
ZXM6KE5TRGljdGlvbmFyeSAqKWNvbm5lY3Rpb25Qcm9wZXJ0aWVzOworQGVuZAorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3N0YXRpYyB2b2lkIGFwcGx5QmFzaWNBdXRob3JpemF0aW9uSGVhZGVy
KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkK
K3sKKyAgICBTdHJpbmcgYXV0aGVudGljYXRpb25IZWFkZXIgPSAiQmFzaWMgIiArIGJhc2U2NEVu
Y29kZShTdHJpbmcoY3JlZGVudGlhbC51c2VyKCkgKyAiOiIgKyBjcmVkZW50aWFsLnBhc3N3b3Jk
KCkpLnV0ZjgoKSk7CisgICAgcmVxdWVzdC5jbGVhckhUVFBBdXRob3JpemF0aW9uKCk7IC8vIEZJ
WE1FOiBTaG91bGQgYWRkSFRUUEhlYWRlckZpZWxkIGJlIHNtYXJ0IGVub3VnaCB0byBub3QgYnVp
bGQgY29tbWEtc2VwYXJhdGVkIGxpc3RzIGluIGhlYWRlcnMgbGlrZSBBdXRob3JpemF0aW9uPwor
ICAgIHJlcXVlc3QuYWRkSFRUUEhlYWRlckZpZWxkKCJBdXRob3JpemF0aW9uIiwgYXV0aGVudGlj
YXRpb25IZWFkZXIpOworfQorCitzdGF0aWMgTlNPcGVyYXRpb25RdWV1ZSAqb3BlcmF0aW9uUXVl
dWVGb3JBc3luY0NsaWVudHMoKQoreworICAgIHN0YXRpYyBOU09wZXJhdGlvblF1ZXVlICpxdWV1
ZTsKKyAgICBpZiAoIXF1ZXVlKSB7CisgICAgICAgIHF1ZXVlID0gW1tOU09wZXJhdGlvblF1ZXVl
IGFsbG9jXSBpbml0XTsKKyAgICAgICAgLy8gRGVmYXVsdCBjb25jdXJyZW50IG9wZXJhdGlvbiBj
b3VudCBkZXBlbmRzIG9uIGN1cnJlbnQgc3lzdGVtIHdvcmtsb2FkLCBidXQgZGVsZWdhdGUgbWV0
aG9kcyBhcmUgbW9zdGx5IGlkbGluZyBpbiBJUEMsIHNvIHdlIGNhbiBydW4gYXMgbWFueSBhcyBu
ZWVkZWQuCisgICAgICAgIFtxdWV1ZSBzZXRNYXhDb25jdXJyZW50T3BlcmF0aW9uQ291bnQ6TlNJ
bnRlZ2VyTWF4XTsKKyAgICB9CisgICAgcmV0dXJuIHF1ZXVlOworfQorCitSZXNvdXJjZUhhbmRs
ZUludGVybmFsOjp+UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCgpCit7Cit9CisKK1Jlc291cmNlSGFu
ZGxlOjp+UmVzb3VyY2VIYW5kbGUoKQoreworICAgIHJlbGVhc2VEZWxlZ2F0ZSgpOworICAgIGQt
Pm1fY3VycmVudFdlYkNoYWxsZW5nZS5zZXRBdXRoZW50aWNhdGlvbkNsaWVudCgwKTsKKworICAg
IExPRyhOZXR3b3JrLCAiSGFuZGxlICVwIGRlc3Ryb3llZCIsIHRoaXMpOworfQorCit2b2lkIFJl
c291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTFNlc3Npb24oYm9vbCBzaG91bGRVc2VDcmVkZW50aWFs
U3RvcmFnZSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkVXNlRGVsZWdhdGVR
dWV1ZSkKK3sKKyAgICAvLyBDcmVkZW50aWFscyBmb3IgZnRwIGNhbiBvbmx5IGJlIHBhc3NlZCBp
biBVUkwsIHRoZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTog
ZGVsZWdhdGUgY2FsbCB3b24ndCBiZSBtYWRlLgorICAgIGlmICgoIWQtPm1fdXNlci5pc0VtcHR5
KCkgfHwgIWQtPm1fcGFzcy5pc0VtcHR5KCkpICYmICFmaXJzdFJlcXVlc3QoKS51cmwoKS5wcm90
b2NvbElzSW5IVFRQRmFtaWx5KCkpIHsKKyAgICAgICAgVVJMIHVybFdpdGhDcmVkZW50aWFscyhm
aXJzdFJlcXVlc3QoKS51cmwoKSk7CisgICAgICAgIHVybFdpdGhDcmVkZW50aWFscy5zZXRVc2Vy
KGQtPm1fdXNlcik7CisgICAgICAgIHVybFdpdGhDcmVkZW50aWFscy5zZXRQYXNzKGQtPm1fcGFz
cyk7CisgICAgICAgIGZpcnN0UmVxdWVzdCgpLnNldFVSTCh1cmxXaXRoQ3JlZGVudGlhbHMpOwor
ICAgIH0KKworICAgIGlmIChzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSAmJiBmaXJzdFJlcXVl
c3QoKS51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpIHsKKyAgICAgICAgaWYgKGQtPm1f
dXNlci5pc0VtcHR5KCkgJiYgZC0+bV9wYXNzLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgLy8g
PHJkYXI6Ly9wcm9ibGVtLzcxNzQwNTA+IC0gRm9yIFVSTHMgdGhhdCBtYXRjaCB0aGUgcGF0aHMg
b2YgdGhvc2UgcHJldmlvdXNseSBjaGFsbGVuZ2VkIGZvciBIVFRQIEJhc2ljIGF1dGhlbnRpY2F0
aW9uLCAKKyAgICAgICAgICAgIC8vIHRyeSBhbmQgcmV1c2UgdGhlIGNyZWRlbnRpYWwgcHJlZW1w
dGl2ZWx5LCBhcyBhbGxvd2VkIGJ5IFJGQyAyNjE3LgorICAgICAgICAgICAgZC0+bV9pbml0aWFs
Q3JlZGVudGlhbCA9IENyZWRlbnRpYWxTdG9yYWdlOjpnZXQoZmlyc3RSZXF1ZXN0KCkudXJsKCkp
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYWxyZWFkeSBh
IHByb3RlY3Rpb24gc3BhY2Uga25vd24gZm9yIHRoZSBVUkwsIHVwZGF0ZSBzdG9yZWQgY3JlZGVu
dGlhbHMgYmVmb3JlIHNlbmRpbmcgYSByZXF1ZXN0LgorICAgICAgICAgICAgLy8gVGhpcyBtYWtl
cyBpdCBwb3NzaWJsZSB0byBpbXBsZW1lbnQgbG9nb3V0IGJ5IHNlbmRpbmcgYW4gWE1MSHR0cFJl
cXVlc3Qgd2l0aCBrbm93biBpbmNvcnJlY3QgY3JlZGVudGlhbHMsIGFuZCBhYm9ydGluZyBpdCBp
bW1lZGlhdGVseQorICAgICAgICAgICAgLy8gKHNvIHRoYXQgYW4gYXV0aGVudGljYXRpb24gZGlh
bG9nIGRvZXNuJ3QgcG9wIHVwKS4KKyAgICAgICAgICAgIENyZWRlbnRpYWxTdG9yYWdlOjpzZXQo
Q3JlZGVudGlhbChkLT5tX3VzZXIsIGQtPm1fcGFzcywgQ3JlZGVudGlhbFBlcnNpc3RlbmNlTm9u
ZSksIGZpcnN0UmVxdWVzdCgpLnVybCgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisg
ICAgaWYgKCFkLT5tX2luaXRpYWxDcmVkZW50aWFsLmlzRW1wdHkoKSkgeworICAgICAgICAvLyBG
SVhNRTogU3VwcG9ydCBEaWdlc3QgYXV0aGVudGljYXRpb24sIGFuZCBQcm94eS1BdXRob3JpemF0
aW9uLgorICAgICAgICBhcHBseUJhc2ljQXV0aG9yaXphdGlvbkhlYWRlcihmaXJzdFJlcXVlc3Qo
KSwgZC0+bV9pbml0aWFsQ3JlZGVudGlhbCk7CisgICAgfQorCisgICAgTlNVUkxSZXF1ZXN0ICpu
c1JlcXVlc3QgPSBmaXJzdFJlcXVlc3QoKS5uc1VSTFJlcXVlc3QoVXBkYXRlSFRUUEJvZHkpOwor
ICAgIGlmICghc2hvdWxkQ29udGVudFNuaWZmKSB7CisgICAgICAgIE5TTXV0YWJsZVVSTFJlcXVl
c3QgKm11dGFibGVSZXF1ZXN0ID0gW1tuc1JlcXVlc3QgbXV0YWJsZUNvcHldIGF1dG9yZWxlYXNl
XTsKKyAgICAgICAgd2tTZXROU1VSTFJlcXVlc3RTaG91bGRDb250ZW50U25pZmYobXV0YWJsZVJl
cXVlc3QsIE5PKTsKKyAgICAgICAgbnNSZXF1ZXN0ID0gbXV0YWJsZVJlcXVlc3Q7CisgICAgfQor
CisgICAgaWYgKGQtPm1fc3RvcmFnZVNlc3Npb24pCisgICAgICAgIG5zUmVxdWVzdCA9IFt3a0Nv
cHlSZXF1ZXN0V2l0aFN0b3JhZ2VTZXNzaW9uKGQtPm1fc3RvcmFnZVNlc3Npb24uZ2V0KCksIG5z
UmVxdWVzdCkgYXV0b3JlbGVhc2VdOworCisgICAgQVNTRVJUKFtOU1VSTFNlc3Npb24gaW5zdGFu
Y2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKF9pbml0V2l0aFJlcXVlc3Q6ZGVsZWdhdGU6
dXNlc0NhY2hlOm1heENvbnRlbnRMZW5ndGg6c3RhcnRJbW1lZGlhdGVseTpjb25uZWN0aW9uUHJv
cGVydGllczopXSk7CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpzdHJlYW1Qcm9wZXJ0aWVz
ID0gW05TTXV0YWJsZURpY3Rpb25hcnkgZGljdGlvbmFyeV07CisKKyAgICBpZiAoIXNob3VsZFVz
ZUNyZWRlbnRpYWxTdG9yYWdlKQorICAgICAgICBbc3RyZWFtUHJvcGVydGllcyBzZXRPYmplY3Q6
QCJXZWJLaXRQcml2YXRlU2Vzc2lvbiIgZm9yS2V5OkAiX2tDRlVSTENvbm5lY3Rpb25TZXNzaW9u
SUQiXTsKKworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorICAg
IFJldGFpblB0cjxDRkRhdGFSZWY+IHNvdXJjZUFwcGxpY2F0aW9uQXVkaXREYXRhID0gZC0+bV9j
b250ZXh0LT5zb3VyY2VBcHBsaWNhdGlvbkF1ZGl0RGF0YSgpOworICAgIGlmIChzb3VyY2VBcHBs
aWNhdGlvbkF1ZGl0RGF0YSkKKyAgICAgICAgW3N0cmVhbVByb3BlcnRpZXMgc2V0T2JqZWN0OihO
U0RhdGEgKilzb3VyY2VBcHBsaWNhdGlvbkF1ZGl0RGF0YS5nZXQoKSBmb3JLZXk6QCJrQ0ZTdHJl
YW1Qcm9wZXJ0eVNvdXJjZUFwcGxpY2F0aW9uIl07CisjZW5kaWYKKworICAgIE5TRGljdGlvbmFy
eSAqcHJvcGVydHlEaWN0aW9uYXJ5ID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVj
dDpzdHJlYW1Qcm9wZXJ0aWVzIGZvcktleTpAImtDRlVSTENvbm5lY3Rpb25Tb2NrZXRTdHJlYW1Q
cm9wZXJ0aWVzIl07CisgICAgTlNVUkxTZXNzaW9uICpzZXNzaW9uOworICAgIE5TVVJMU2Vzc2lv
bkNvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb247CisgICAgaWYgKCFzaG91bGRVc2VDcmVkZW50
aWFsU3RvcmFnZSkKKyAgICAgICAgY29uZmlndXJhdGlvbiA9IGVwaGVtZXJhbFNlc3Npb25Db25m
aWd1cmF0aW9uOworICAgIGVsc2UKKyAgICAgICAgY29uZmlndXJhdGlvbiA9IGRlZmF1bHRTZXNz
aW9uQ29uZmlndXJhdGlvbjsKKyAgICBpZiAoY2xpZW50KCkgJiYgY2xpZW50KCktPnVzZXNBc3lu
Y0NhbGxiYWNrcygpKSB7CisgICAgICAgIHNlc3Npb24gPSBbTlNVUkxTZXNzaW9uIHNlc3Npb25X
aXRoQ29uZmlndXJhdGlvbjogY29uZmlndXJhdGlvbiBkZWxlZ2F0ZTogZGVsZWdhdGUgZGVsZWdh
dGVRdWV1ZTogb3BlcmF0aW9uUXVldWVGb3JBc3luY0NsaWVudHMoKV07CisgICAgfSBlbHNlIHsK
KyAgICAgICAgc2Vzc2lvbiA9IFtOU1VSTFNlc3Npb24gc2Vzc2lvbldpdGhDb25maWd1cmF0aW9u
OiBjb25maWd1cmF0aW9uXTsKKyAgICB9CisgICAgZC0+bV9zZXNzaW9uID0gYWRvcHROUyhzZXNz
aW9uKTsKKyAgICBkLT5tX2RhdGFUYXNrID0gYWRvcHROUyhbc2Vzc2lvbiBkYXRhVGFza1dpdGhS
ZXF1ZXN0OiBuc1JlcXVlc3RdKTsKK30KKworYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQor
eworICAgIGlmICghZC0+bV9jb250ZXh0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisKKyAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4
dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCisg
ICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gdW5sb2FkIGV2ZW50
IGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCisgICAgaWYgKCFkLT5tX2NvbnRleHQt
PmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZC0+bV9zdG9yYWdlU2Vz
c2lvbiA9IGQtPm1fY29udGV4dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKTsK
KworICAgIC8vIEZJWE1FOiBEbyBub3QgdXNlIHRoZSBzeW5jIHZlcnNpb24gb2Ygc2hvdWxkVXNl
Q3JlZGVudGlhbFN0b3JhZ2Ugd2hlbiB0aGUgY2xpZW50IHJldHVybnMgdHJ1ZSBmcm9tIHVzZXNB
c3luY0NhbGxiYWNrcy4KKyAgICBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlID0gIWNs
aWVudCgpIHx8IGNsaWVudCgpLT5zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSh0aGlzKTsKKwor
ICAgIGQtPm1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgPSBkLT5tX2NvbnRleHQtPm5lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzKCk7CisKKyAgICBjcmVhdGVOU1VSTFNlc3Npb24oCisgICAgICAgIFJl
c291cmNlSGFuZGxlOjpkZWxlZ2F0ZSgpLAorICAgICAgICBzaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZSwKKyAgICAgICAgZC0+bV9zaG91bGRDb250ZW50U25pZmYgfHwgZC0+bV9jb250ZXh0LT5s
b2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCksCisgICAgICAgIGNsaWVudCgpICYmIGNs
aWVudCgpLT51c2VzQXN5bmNDYWxsYmFja3MoKSk7CisKKyAgICBpZiAoZGF0YVRhc2soKSkKKyAg
ICAgICAgW2RhdGFUYXNrKCkgcmVzdW1lXTsKKworICAgIExPRyhOZXR3b3JrLCAiSGFuZGxlICVw
IHN0YXJ0aW5nIGNvbm5lY3Rpb24gJXAgZm9yICVAIiwgdGhpcywgc2Vzc2lvbigpLCBmaXJzdFJl
cXVlc3QoKS5uc1VSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSkpOworCisgICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKKworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFJlc291
cmNlSGFuZGxlOjpjYW5jZWwoKQoreworICAgIExPRyhOZXR3b3JrLCAiSGFuZGxlICVwIGNhbmNl
bCBjb25uZWN0aW9uICVwIiwgdGhpcywgZC0+bV9zZXNzaW9uLmdldCgpKTsKKworICAgIC8vIExl
YWtzIHdlcmUgc2VlbiBvbiBIVFRQIHRlc3RzIHdpdGhvdXQgdGhpczsgY2FuIGJlIHJlbW92ZWQg
b25jZSA8cmRhcjovL3Byb2JsZW0vNjg4NjkzNz4gaXMgZml4ZWQuCisgICAgaWYgKGQtPm1fY3Vy
cmVudE1hY0NoYWxsZW5nZSkKKyAgICAgICAgW1tkLT5tX2N1cnJlbnRNYWNDaGFsbGVuZ2Ugc2Vu
ZGVyXSBjYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTpkLT5tX2N1cnJlbnRNYWNDaGFsbGVu
Z2VdOworCisgICAgW2QtPm1fc2Vzc2lvbi5nZXQoKSBjYW5jZWxdOworfQorCit2b2lkIFJlc291
cmNlSGFuZGxlOjpwbGF0Zm9ybVNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCit7CisgICAg
aWYgKGQtPm1fc2Vzc2lvbikKKyAgICAgICAgd2tTZXROU1VSTFNlc3Npb25EZWZlcnNDYWxsYmFj
a3MoZC0+bV9zZXNzaW9uLmdldCgpLCBkZWZlcnMpOworfQorCit2b2lkIFJlc291cmNlSGFuZGxl
OjpzY2hlZHVsZShTY2hlZHVsZVBhaXIqIHBhaXIpCit7CisgICAgTlNSdW5Mb29wICpydW5Mb29w
ID0gcGFpci0+bnNSdW5Mb29wKCk7CisgICAgaWYgKCFydW5Mb29wKQorICAgICAgICByZXR1cm47
CisgICAgW2QtPm1fc2Vzc2lvbi5nZXQoKSBzY2hlZHVsZUluUnVuTG9vcDpydW5Mb29wIGZvck1v
ZGU6KE5TU3RyaW5nICopcGFpci0+bW9kZSgpXTsKKyAgICBpZiAoZC0+bV9zdGFydFdoZW5TY2hl
ZHVsZWQpIHsKKyAgICAgICAgW2QtPm1fc2Vzc2lvbi5nZXQoKSBzdGFydF07CisgICAgICAgIGQt
Pm1fc3RhcnRXaGVuU2NoZWR1bGVkID0gZmFsc2U7CisgICAgfQorfQorCit2b2lkIFJlc291cmNl
SGFuZGxlOjp1bnNjaGVkdWxlKFNjaGVkdWxlUGFpciogcGFpcikKK3sKKyAgICBpZiAoTlNSdW5M
b29wICpydW5Mb29wID0gcGFpci0+bnNSdW5Mb29wKCkpCisgICAgICAgIFtkLT5tX3Nlc3Npb24u
Z2V0KCkgdW5zY2hlZHVsZUZyb21SdW5Mb29wOnJ1bkxvb3AgZm9yTW9kZTooTlNTdHJpbmcgKilw
YWlyLT5tb2RlKCldOworfQorCitpZCBSZXNvdXJjZUhhbmRsZTo6ZGVsZWdhdGUoKQoreworICAg
IGlmICghZC0+bV9kZWxlZ2F0ZSkgeworICAgICAgICBpZCA8TlNVUkxTZXNzaW9uRGVsZWdhdGU+
IGRlbGVnYXRlID0gKGNsaWVudCgpICYmIGNsaWVudCgpLT51c2VzQXN5bmNDYWxsYmFja3MoKSkg
PworICAgICAgICAgICAgW1tXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVs
ZWdhdGUgYWxsb2NdIGluaXRXaXRoSGFuZGxlOnRoaXNdCisgICAgICAgICAgOiBbW1dlYkNvcmVS
ZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoSGFuZGxlOnRoaXNdOworICAg
ICAgICBkLT5tX2RlbGVnYXRlID0gZGVsZWdhdGU7CisgICAgICAgIFtkZWxlZ2F0ZSByZWxlYXNl
XTsKKyAgICB9CisgICAgcmV0dXJuIGQtPm1fZGVsZWdhdGUuZ2V0KCk7Cit9CisKK3ZvaWQgUmVz
b3VyY2VIYW5kbGU6OnJlbGVhc2VEZWxlZ2F0ZSgpCit7CisgICAgaWYgKCFkLT5tX2RlbGVnYXRl
KQorICAgICAgICByZXR1cm47CisgICAgW2QtPm1fZGVsZWdhdGUuZ2V0KCkgZGV0YWNoSGFuZGxl
XTsKKyAgICBkLT5tX2RlbGVnYXRlID0gbmlsOworfQorCitOU1VSTFNlc3Npb24gKlJlc291cmNl
SGFuZGxlOjpzZXNzaW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZC0+bV9zZXNzaW9uLmdldCgp
OworfQorCitOU1VSTFNlc3Npb25EYXRhVGFzayAqUmVzb3VyY2VIYW5kbGU6OmRhdGFUYXNrKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gZC0+bV9kYXRhVGFzay5nZXQoKTsKK30KKworYm9vbCBSZXNv
dXJjZUhhbmRsZTo6bG9hZHNCbG9ja2VkKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0NG
U3RyaW5nUmVmIFJlc291cmNlSGFuZGxlOjpzeW5jaHJvbm91c0xvYWRSdW5Mb29wTW9kZSgpCit7
CisgICAgcmV0dXJuIENGU1RSKCJXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJSdW5Mb29wTW9kZSIp
OworfQorCit2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9u
b3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJy
b3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRh
KQoreworICAgIExPRyhOZXR3b3JrLCAiUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJlc291
cmNlU3luY2hyb25vdXNseTolQCBhbGxvd1N0b3JlZENyZWRlbnRpYWxzOiV1IiwgcmVxdWVzdC5u
c1VSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSksIHN0b3JlZENyZWRlbnRpYWxzKTsKKwor
ICAgIEFTU0VSVCghcmVxdWVzdC5pc0VtcHR5KCkpOworICAgIAorICAgIE93blB0cjxTeW5jaHJv
bm91c0xvYWRlckNsaWVudD4gY2xpZW50ID0gU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OmNyZWF0
ZSgpOworICAgIGNsaWVudC0+c2V0QWxsb3dTdG9yZWRDcmVkZW50aWFscyhzdG9yZWRDcmVkZW50
aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKKworICAgIFJlZlB0cjxSZXNvdXJjZUhh
bmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVl
c3QsIGNsaWVudC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRD
b250ZW50U25pZmYqLykpOworCisgICAgaGFuZGxlLT5kLT5tX3N0b3JhZ2VTZXNzaW9uID0gY29u
dGV4dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKTsKKworICAgIGlmIChjb250
ZXh0ICYmIGhhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpIHsK
KyAgICAgICAgZXJyb3IgPSBjb250ZXh0LT5ibG9ja2VkRXJyb3IocmVxdWVzdCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBoYW5kbGUtPmNyZWF0ZU5TVVJMU2Vzc2lvbigKKyAgICAg
ICAgaGFuZGxlLT5kZWxlZ2F0ZSgpLAorICAgICAgICBzdG9yZWRDcmVkZW50aWFscyA9PSBBbGxv
d1N0b3JlZENyZWRlbnRpYWxzLAorICAgICAgICBoYW5kbGUtPnNob3VsZENvbnRlbnRTbmlmZigp
IHx8IGNvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7CisKKyAgICBb
aGFuZGxlLT5zZXNzaW9uKCkgc2NoZWR1bGVJblJ1bkxvb3A6W05TUnVuTG9vcCBjdXJyZW50UnVu
TG9vcF0gZm9yTW9kZTooTlNTdHJpbmcgKilzeW5jaHJvbm91c0xvYWRSdW5Mb29wTW9kZSgpXTsK
KyAgICBbaGFuZGxlLT5zZXNzaW9uKCkgc3RhcnRdOworICAgIAorICAgIHdoaWxlICghY2xpZW50
LT5pc0RvbmUoKSkKKyAgICAgICAgW1tOU1J1bkxvb3AgY3VycmVudFJ1bkxvb3BdIHJ1bk1vZGU6
KE5TU3RyaW5nICopc3luY2hyb25vdXNMb2FkUnVuTG9vcE1vZGUoKSBiZWZvcmVEYXRlOltOU0Rh
dGUgZGlzdGFudEZ1dHVyZV1dOworCisgICAgZXJyb3IgPSBjbGllbnQtPmVycm9yKCk7CisgICAg
CisgICAgW2hhbmRsZS0+c2Vzc2lvbigpIGNhbmNlbF07CisKKyAgICBpZiAoZXJyb3IuaXNOdWxs
KCkpCisgICAgICAgIHJlc3BvbnNlID0gY2xpZW50LT5yZXNwb25zZSgpOworICAgIGVsc2Ugewor
ICAgICAgICAvLyBGSVhNRTogV2UgbWlnaHQgbm90IGV2ZXIgbmVlZCB0byBtYW51ZmFjdHVyZSBh
IHJlc3BvbnNlOiBUaGlzIG1pZ2h0IGFsbCBiZSBkZWFkIGNvZGUuCisgICAgICAgIC8vIFdoZW4g
ZXhwbG9yaW5nIHJlbW92YWwgb2YgdGhpcyBjb2RlLCB3ZSBzaG91bGQgc3Vic3RpdHV0ZSBhcHBy
b3ByaWF0ZSBBU1NFUlRzLgorICAgICAgICByZXNwb25zZSA9IFJlc291cmNlUmVzcG9uc2UocmVx
dWVzdC51cmwoKSwgU3RyaW5nKCksIDAsIFN0cmluZygpLCBTdHJpbmcoKSk7CisgICAgICAgIGlm
IChlcnJvci5kb21haW4oKSA9PSBTdHJpbmcoTlNVUkxFcnJvckRvbWFpbikpCisgICAgICAgICAg
ICBzd2l0Y2ggKGVycm9yLmVycm9yQ29kZSgpKSB7CisgICAgICAgICAgICBjYXNlIE5TVVJMRXJy
b3JVc2VyQ2FuY2VsbGVkQXV0aGVudGljYXRpb246CisgICAgICAgICAgICAgICAgLy8gRklYTUU6
IFdlIGRvbid0IG5lZWQgdG8gbWFudWZhY3R1cmUgYSA0MDEgcmVzcG9uc2UgaWYgd2Ugc2F5IGNv
bnRpbnVlV2l0aG91dENyZWRlbnRpYWxGb3JBdXRoZW50aWNhdGlvbkNoYWxsZW5nZToKKyAgICAg
ICAgICAgICAgICAvLyBpbiB3aGljaCBjYXNlIHdlJ2xsIGdldCB0aGUgcmVhbCBmYWlsdXJlIHJl
c3BvbnNlLiBBIHJlYWRpbmcgb2YgU3luY2hyb25vdXNMb2FkZXJDbGllbnQubW0gc3VnZ2VzdHMg
d2UgYWxyZWFkeSBkbyB0aGlzLgorICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0
dXNDb2RlKDQwMSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKGVycm9yLmVycm9y
Q29kZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBG
SVhNRTogVGhpcyBpcyB3cm9uZy4gV2Ugc2hvdWxkbid0IG5lZWQgdG8gZXZlciBtYWtlIHVwIGEg
NDA0LgorICAgICAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0NvZGUoNDA0KTsKKyAgICAg
ICAgfQorICAgICB9CisKKyAgICBkYXRhLnN3YXAoY2xpZW50LT5tdXRhYmxlRGF0YSgpKTsKK30K
Kwordm9pZCBSZXNvdXJjZUhhbmRsZTo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKK3sKKyAg
ICBBU1NFUlQoIXJlZGlyZWN0UmVzcG9uc2UuaXNOdWxsKCkpOworCisgICAgaWYgKHJlZGlyZWN0
UmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA9PSAzMDcpIHsKKyAgICAgICAgU3RyaW5nIGxhc3RI
VFRQTWV0aG9kID0gZC0+bV9sYXN0SFRUUE1ldGhvZDsKKyAgICAgICAgaWYgKCFlcXVhbElnbm9y
aW5nQ2FzZShsYXN0SFRUUE1ldGhvZCwgcmVxdWVzdC5odHRwTWV0aG9kKCkpKSB7CisgICAgICAg
ICAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QobGFzdEhUVFBNZXRob2QpOworICAgIAorICAgICAg
ICAgICAgRm9ybURhdGEqIGJvZHkgPSBkLT5tX2ZpcnN0UmVxdWVzdC5odHRwQm9keSgpOworICAg
ICAgICAgICAgaWYgKCFlcXVhbElnbm9yaW5nQ2FzZShsYXN0SFRUUE1ldGhvZCwgIkdFVCIpICYm
IGJvZHkgJiYgIWJvZHktPmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICByZXF1ZXN0LnNldEhU
VFBCb2R5KGJvZHkpOworCisgICAgICAgICAgICBTdHJpbmcgb3JpZ2luYWxDb250ZW50VHlwZSA9
IGQtPm1fZmlyc3RSZXF1ZXN0Lmh0dHBDb250ZW50VHlwZSgpOworICAgICAgICAgICAgaWYgKCFv
cmlnaW5hbENvbnRlbnRUeXBlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICByZXF1ZXN0LnNl
dEhUVFBIZWFkZXJGaWVsZCgiQ29udGVudC1UeXBlIiwgb3JpZ2luYWxDb250ZW50VHlwZSk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBTaG91bGQgbm90IHNldCBSZWZlcmVyIGFmdGVyIGEg
cmVkaXJlY3QgZnJvbSBhIHNlY3VyZSByZXNvdXJjZSB0byBub24tc2VjdXJlIG9uZS4KKyAgICBp
ZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKHJlcXVl
c3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIpICYmIGQtPm1fY29udGV4dC0+c2hvdWxkQ2xlYXJS
ZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpKQorICAgICAgICByZXF1ZXN0LmNsZWFySFRU
UFJlZmVycmVyKCk7CisKKyAgICBjb25zdCBVUkwmIHVybCA9IHJlcXVlc3QudXJsKCk7CisgICAg
ZC0+bV91c2VyID0gdXJsLnVzZXIoKTsKKyAgICBkLT5tX3Bhc3MgPSB1cmwucGFzcygpOworICAg
IGQtPm1fbGFzdEhUVFBNZXRob2QgPSByZXF1ZXN0Lmh0dHBNZXRob2QoKTsKKyAgICByZXF1ZXN0
LnJlbW92ZUNyZWRlbnRpYWxzKCk7CisKKyAgICBpZiAoIXByb3RvY29sSG9zdEFuZFBvcnRBcmVF
cXVhbChyZXF1ZXN0LnVybCgpLCByZWRpcmVjdFJlc3BvbnNlLnVybCgpKSkgeworICAgICAgICAv
LyBJZiB0aGUgbmV0d29yayBsYXllciBjYXJyaWVzIG92ZXIgYXV0aGVudGljYXRpb24gaGVhZGVy
cyBmcm9tIHRoZSBvcmlnaW5hbCByZXF1ZXN0CisgICAgICAgIC8vIGluIGEgY3Jvc3Mtb3JpZ2lu
IHJlZGlyZWN0LCB3ZSB3YW50IHRvIGNsZWFyIHRob3NlIGhlYWRlcnMgaGVyZS4KKyAgICAgICAg
Ly8gQXMgb2YgTGlvbiwgQ0ZOZXR3b3JrIG5vIGxvbmdlciBkb2VzIHRoaXMuCisgICAgICAgIHJl
cXVlc3QuY2xlYXJIVFRQQXV0aG9yaXphdGlvbigpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8v
IE9ubHkgY29uc2lkZXIgYXBwbHlpbmcgYXV0aGVudGljYXRpb24gY3JlZGVudGlhbHMgaWYgdGhp
cyBpcyBhY3R1YWxseSBhIHJlZGlyZWN0IGFuZCB0aGUgcmVkaXJlY3QKKyAgICAgICAgLy8gVVJM
IGRpZG4ndCBpbmNsdWRlIGNyZWRlbnRpYWxzIG9mIGl0cyBvd24uCisgICAgICAgIGlmIChkLT5t
X3VzZXIuaXNFbXB0eSgpICYmIGQtPm1fcGFzcy5pc0VtcHR5KCkgJiYgIXJlZGlyZWN0UmVzcG9u
c2UuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIENyZWRlbnRpYWwgY3JlZGVudGlhbCA9IENyZWRl
bnRpYWxTdG9yYWdlOjpnZXQocmVxdWVzdC51cmwoKSk7CisgICAgICAgICAgICBpZiAoIWNyZWRl
bnRpYWwuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgZC0+bV9pbml0aWFsQ3JlZGVudGlh
bCA9IGNyZWRlbnRpYWw7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gRklY
TUU6IFN1cHBvcnQgRGlnZXN0IGF1dGhlbnRpY2F0aW9uLCBhbmQgUHJveHktQXV0aG9yaXphdGlv
bi4KKyAgICAgICAgICAgICAgICBhcHBseUJhc2ljQXV0aG9yaXphdGlvbkhlYWRlcihyZXF1ZXN0
LCBkLT5tX2luaXRpYWxDcmVkZW50aWFsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0KKworICAgIGlmIChjbGllbnQoKS0+dXNlc0FzeW5jQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAg
Y2xpZW50KCktPndpbGxTZW5kUmVxdWVzdEFzeW5jKHRoaXMsIHJlcXVlc3QsIHJlZGlyZWN0UmVz
cG9uc2UpOworICAgIH0gZWxzZSB7CisgICAgICAgIFJlZjxSZXNvdXJjZUhhbmRsZT4gcHJvdGVj
dCgqdGhpcyk7CisgICAgICAgIGNsaWVudCgpLT53aWxsU2VuZFJlcXVlc3QodGhpcywgcmVxdWVz
dCwgcmVkaXJlY3RSZXNwb25zZSk7CisKKyAgICAgICAgLy8gQ2xpZW50IGNhbGwgbWF5IG5vdCBw
cmVzZXJ2ZSB0aGUgc2Vzc2lvbiwgZXNwZWNpYWxseSBpZiB0aGUgcmVxdWVzdCBpcyBzZW50IG92
ZXIgSVBDLgorICAgICAgICBpZiAoIXJlcXVlc3QuaXNOdWxsKCkpCisgICAgICAgICAgICByZXF1
ZXN0LnNldFN0b3JhZ2VTZXNzaW9uKGQtPm1fc3RvcmFnZVNlc3Npb24uZ2V0KCkpOworICAgIH0K
K30KKwordm9pZCBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVXaWxsU2VuZFJlcXVlc3QoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIEFTU0VSVChjbGllbnQoKSk7CisgICAg
QVNTRVJUKGNsaWVudCgpLT51c2VzQXN5bmNDYWxsYmFja3MoKSk7CisKKyAgICAvLyBDbGllbnQg
Y2FsbCBtYXkgbm90IHByZXNlcnZlIHRoZSBzZXNzaW9uLCBlc3BlY2lhbGx5IGlmIHRoZSByZXF1
ZXN0IGlzIHNlbnQgb3ZlciBJUEMuCisgICAgUmVzb3VyY2VSZXF1ZXN0IG5ld1JlcXVlc3QgPSBy
ZXF1ZXN0OworICAgIGlmICghbmV3UmVxdWVzdC5pc051bGwoKSkKKyAgICAgICAgbmV3UmVxdWVz
dC5zZXRTdG9yYWdlU2Vzc2lvbihkLT5tX3N0b3JhZ2VTZXNzaW9uLmdldCgpKTsKKyAgICBbKGlk
KWRlbGVnYXRlKCkgY29udGludWVXaWxsU2VuZFJlcXVlc3Q6bmV3UmVxdWVzdC5uc1VSTFJlcXVl
c3QoVXBkYXRlSFRUUEJvZHkpXTsKK30KKwordm9pZCBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVE
aWRSZWNlaXZlUmVzcG9uc2UoKQoreworICAgIEFTU0VSVChjbGllbnQoKSk7CisgICAgQVNTRVJU
KGNsaWVudCgpLT51c2VzQXN5bmNDYWxsYmFja3MoKSk7CisKKyAgICBbZGVsZWdhdGUoKSBjb250
aW51ZURpZFJlY2VpdmVSZXNwb25zZV07Cit9CisKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnNob3Vs
ZFVzZUNyZWRlbnRpYWxTdG9yYWdlKCkKK3sKKyAgICBpZiAoY2xpZW50KCktPnVzZXNBc3luY0Nh
bGxiYWNrcygpKSB7CisgICAgICAgIGlmIChjbGllbnQoKSkKKyAgICAgICAgICAgIGNsaWVudCgp
LT5zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZUFzeW5jKHRoaXMpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBjb250aW51ZVNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKGZhbHNlKTsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOyAvLyBJZ25vcmVkIGJ5IGNhbGxlci4KKyAgICB9IGVsc2UKKyAg
ICAgICAgcmV0dXJuIGNsaWVudCgpICYmIGNsaWVudCgpLT5zaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZSh0aGlzKTsKK30KKwordm9pZCBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVTaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZShib29sIHVzZUNyZWRlbnRpYWxTdG9yYWdlKQoreworICAgIEFTU0VS
VChjbGllbnQoKSk7CisgICAgQVNTRVJUKGNsaWVudCgpLT51c2VzQXN5bmNDYWxsYmFja3MoKSk7
CisKKyAgICBbKGlkKWRlbGVnYXRlKCkgY29udGludWVTaG91bGRVc2VDcmVkZW50aWFsU3RvcmFn
ZTp1c2VDcmVkZW50aWFsU3RvcmFnZV07Cit9CisKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYgY2hhbGxlbmdlKQoreworICAgIEFTU0VSVCghZC0+bV9jdXJyZW50TWFjQ2hhbGxlbmdlKTsK
KyAgICBBU1NFUlQoZC0+bV9jdXJyZW50V2ViQ2hhbGxlbmdlLmlzTnVsbCgpKTsKKyAgICAvLyBT
aW5jZSBOU1VSTFNlc3Npb24gbmV0d29ya2luZyByZWxpZXMgb24ga2VlcGluZyBhIHJlZmVyZW5j
ZSB0byB0aGUgb3JpZ2luYWwgTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwKKyAgICAvLyB3
ZSBtYWtlIHN1cmUgdGhhdCBpcyBhY3R1YWxseSBwcmVzZW50CisgICAgQVNTRVJUKGNoYWxsZW5n
ZS5uc1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCkpOworCisgICAgLy8gUHJveHkgYXV0aGVu
dGljYXRpb24gaXMgaGFuZGxlZCBieSBDRk5ldHdvcmsgaW50ZXJuYWxseS4gV2UgY2FuIGdldCBo
ZXJlIGlmIHRoZSB1c2VyIGNhbmNlbHMKKyAgICAvLyBDRk5ldHdvcmsgYXV0aGVudGljYXRpb24g
ZGlhbG9nLCBhbmQgd2Ugc2hvdWxkbid0IGFzayB0aGUgY2xpZW50IHRvIGRpc3BsYXkgYW5vdGhl
ciBvbmUgaW4gdGhhdCBjYXNlLgorICAgIGlmIChjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCku
aXNQcm94eSgpKSB7CisgICAgICAgIC8vIENhbm5vdCB1c2UgcmVjZWl2ZWRSZXF1ZXN0VG9Db250
aW51ZVdpdGhvdXRDcmVkZW50aWFsKCksIGJlY2F1c2UgY3VycmVudCBjaGFsbGVuZ2UgaXMgbm90
IHlldCBzZXQuCisgICAgICAgIFtjaGFsbGVuZ2Uuc2VuZGVyKCkgY29udGludWVXaXRob3V0Q3Jl
ZGVudGlhbEZvckF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOmNoYWxsZW5nZS5uc1VSTEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKCldOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFk
LT5tX3VzZXIuaXNOdWxsKCkgJiYgIWQtPm1fcGFzcy5pc051bGwoKSkgeworICAgICAgICBOU1VS
TENyZWRlbnRpYWwgKmNyZWRlbnRpYWwgPSBbW05TVVJMQ3JlZGVudGlhbCBhbGxvY10gaW5pdFdp
dGhVc2VyOmQtPm1fdXNlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkOmQtPm1fcGFzcworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBl
cnNpc3RlbmNlOk5TVVJMQ3JlZGVudGlhbFBlcnNpc3RlbmNlRm9yU2Vzc2lvbl07CisgICAgICAg
IGQtPm1fY3VycmVudE1hY0NoYWxsZW5nZSA9IGNoYWxsZW5nZS5uc1VSTEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKCk7CisgICAgICAgIGQtPm1fY3VycmVudFdlYkNoYWxsZW5nZSA9IGNoYWxsZW5n
ZTsKKyAgICAgICAgcmVjZWl2ZWRDcmVkZW50aWFsKGNoYWxsZW5nZSwgY29yZShjcmVkZW50aWFs
KSk7CisgICAgICAgIFtjcmVkZW50aWFsIHJlbGVhc2VdOworICAgICAgICAvLyBGSVhNRTogUGVy
IHRoZSBzcGVjaWZpY2F0aW9uLCB0aGUgdXNlciBzaG91bGRuJ3QgYmUgYXNrZWQgZm9yIGNyZWRl
bnRpYWxzIGlmIHRoZXJlIHdlcmUgaW5jb3JyZWN0IG9uZXMgcHJvdmlkZWQgZXhwbGljaXRseS4K
KyAgICAgICAgZC0+bV91c2VyID0gU3RyaW5nKCk7CisgICAgICAgIGQtPm1fcGFzcyA9IFN0cmlu
ZygpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gRklYTUU6IERvIG5vdCB1c2Ug
dGhlIHN5bmMgdmVyc2lvbiBvZiBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSB3aGVuIHRoZSBj
bGllbnQgcmV0dXJucyB0cnVlIGZyb20gdXNlc0FzeW5jQ2FsbGJhY2tzLgorICAgIGlmICghY2xp
ZW50KCkgfHwgY2xpZW50KCktPnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKHRoaXMpKSB7Cisg
ICAgICAgIGlmICghZC0+bV9pbml0aWFsQ3JlZGVudGlhbC5pc0VtcHR5KCkgfHwgY2hhbGxlbmdl
LnByZXZpb3VzRmFpbHVyZUNvdW50KCkpIHsKKyAgICAgICAgICAgIC8vIFRoZSBzdG9yZWQgY3Jl
ZGVudGlhbCB3YXNuJ3QgYWNjZXB0ZWQsIHN0b3AgdXNpbmcgaXQuCisgICAgICAgICAgICAvLyBU
aGVyZSBpcyBhIHJhY2UgY29uZGl0aW9uIGhlcmUsIHNpbmNlIGEgZGlmZmVyZW50IGNyZWRlbnRp
YWwgbWlnaHQgaGF2ZSBhbHJlYWR5IGJlZW4gc3RvcmVkIGJ5IGFub3RoZXIgUmVzb3VyY2VIYW5k
bGUsCisgICAgICAgICAgICAvLyBidXQgdGhlIG9ic2VydmFibGUgZWZmZWN0IHNob3VsZCBiZSB2
ZXJ5IG1pbm9yLCBpZiBhbnkuCisgICAgICAgICAgICBDcmVkZW50aWFsU3RvcmFnZTo6cmVtb3Zl
KGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAo
IWNoYWxsZW5nZS5wcmV2aW91c0ZhaWx1cmVDb3VudCgpKSB7CisgICAgICAgICAgICBDcmVkZW50
aWFsIGNyZWRlbnRpYWwgPSBDcmVkZW50aWFsU3RvcmFnZTo6Z2V0KGNoYWxsZW5nZS5wcm90ZWN0
aW9uU3BhY2UoKSk7CisgICAgICAgICAgICBpZiAoIWNyZWRlbnRpYWwuaXNFbXB0eSgpICYmIGNy
ZWRlbnRpYWwgIT0gZC0+bV9pbml0aWFsQ3JlZGVudGlhbCkgeworICAgICAgICAgICAgICAgIEFT
U0VSVChjcmVkZW50aWFsLnBlcnNpc3RlbmNlKCkgPT0gQ3JlZGVudGlhbFBlcnNpc3RlbmNlTm9u
ZSk7CisgICAgICAgICAgICAgICAgaWYgKGNoYWxsZW5nZS5mYWlsdXJlUmVzcG9uc2UoKS5odHRw
U3RhdHVzQ29kZSgpID09IDQwMSkgeworICAgICAgICAgICAgICAgICAgICAvLyBTdG9yZSB0aGUg
Y3JlZGVudGlhbCBiYWNrLCBwb3NzaWJseSBhZGRpbmcgaXQgYXMgYSBkZWZhdWx0IGZvciB0aGlz
IGRpcmVjdG9yeS4KKyAgICAgICAgICAgICAgICAgICAgQ3JlZGVudGlhbFN0b3JhZ2U6OnNldChj
cmVkZW50aWFsLCBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCksIGNoYWxsZW5nZS5mYWlsdXJl
UmVzcG9uc2UoKS51cmwoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFtj
aGFsbGVuZ2Uuc2VuZGVyKCkgdXNlQ3JlZGVudGlhbDptYWMoY3JlZGVudGlhbCkgZm9yQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2U6bWFjKGNoYWxsZW5nZSldOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGQtPm1fY3VycmVudE1h
Y0NoYWxsZW5nZSA9IGNoYWxsZW5nZS5uc1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCk7Cisg
ICAgZC0+bV9jdXJyZW50V2ViQ2hhbGxlbmdlID0gY29yZShkLT5tX2N1cnJlbnRNYWNDaGFsbGVu
Z2UpOworICAgIGQtPm1fY3VycmVudFdlYkNoYWxsZW5nZS5zZXRBdXRoZW50aWNhdGlvbkNsaWVu
dCh0aGlzKTsKKworICAgIC8vIEZJWE1FOiBTZXZlcmFsIGNvbmN1cnJlbnQgcmVxdWVzdHMgY2Fu
IHJldHVybiB3aXRoIHRoZSBhbiBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UgZm9yIHRoZSBzYW1l
IHByb3RlY3Rpb24gc3BhY2UuCisgICAgLy8gV2Ugc2hvdWxkIGF2b2lkIG1ha2luZyBhZGRpdGlv
bmFsIGNsaWVudCBjYWxscyBmb3IgdGhlIHNhbWUgcHJvdGVjdGlvbiBzcGFjZSB3aGVuIGFscmVh
ZHkgd2FpdGluZyBmb3IgdGhlIHVzZXIsCisgICAgLy8gYmVjYXVzZSB0eXBpbmcgdGhlIHNhbWUg
Y3JlZGVudGlhbHMgc2V2ZXJhbCB0aW1lcyBpcyBhbm5veWluZy4KKyAgICBpZiAoY2xpZW50KCkp
CisgICAgICAgIGNsaWVudCgpLT5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodGhp
cywgZC0+bV9jdXJyZW50V2ViQ2hhbGxlbmdlKTsKK30KKwordm9pZCBSZXNvdXJjZUhhbmRsZTo6
ZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmIGNoYWxsZW5nZSkKK3sKKyAgICBBU1NFUlQoZC0+bV9jdXJyZW50TWFjQ2hhbGxlbmdl
KTsKKyAgICBBU1NFUlQoZC0+bV9jdXJyZW50TWFjQ2hhbGxlbmdlID09IGNoYWxsZW5nZS5uc1VS
TEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCkpOworICAgIEFTU0VSVCghZC0+bV9jdXJyZW50V2Vi
Q2hhbGxlbmdlLmlzTnVsbCgpKTsKKworICAgIGlmIChjbGllbnQoKSkKKyAgICAgICAgY2xpZW50
KCktPmRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHRoaXMsIGNoYWxsZW5nZSk7Cit9
CisKKyNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQorYm9vbCBSZXNvdXJj
ZUhhbmRsZTo6Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShjb25zdCBQcm90
ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSkKK3sKKyAgICBpZiAoY2xpZW50KCktPnVzZXNB
c3luY0NhbGxiYWNrcygpKSB7CisgICAgICAgIGlmIChjbGllbnQoKSkKKyAgICAgICAgICAgIGNs
aWVudCgpLT5jYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlQXN5bmModGhpcywg
cHJvdGVjdGlvblNwYWNlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29udGludWVDYW5B
dXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKGZhbHNlKTsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOyAvLyBJZ25vcmVkIGJ5IGNhbGxlci4KKyAgICB9IGVsc2UKKyAgICAgICAgcmV0dXJu
IGNsaWVudCgpICYmIGNsaWVudCgpLT5jYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNw
YWNlKHRoaXMsIHByb3RlY3Rpb25TcGFjZSk7Cit9CisKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmNv
bnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShib29sIHJlc3VsdCkK
K3sKKyAgICBBU1NFUlQoY2xpZW50KCkpOworICAgIEFTU0VSVChjbGllbnQoKS0+dXNlc0FzeW5j
Q2FsbGJhY2tzKCkpOworCisgICAgWyhpZClkZWxlZ2F0ZSgpIGNvbnRpbnVlQ2FuQXV0aGVudGlj
YXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZTpyZXN1bHRdOworfQorI2VuZGlmCisKK3ZvaWQgUmVz
b3VyY2VIYW5kbGU6OnJlY2VpdmVkQ3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYgY2hhbGxlbmdlLCBjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50aWFsKQoreworICAgIExP
RyhOZXR3b3JrLCAiSGFuZGxlICVwIHJlY2VpdmVkQ3JlZGVudGlhbCIsIHRoaXMpOworCisgICAg
QVNTRVJUKCFjaGFsbGVuZ2UuaXNOdWxsKCkpOworICAgIGlmIChjaGFsbGVuZ2UgIT0gZC0+bV9j
dXJyZW50V2ViQ2hhbGxlbmdlKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhNRTogU3Vw
cG9ydCBlbXB0eSBjcmVkZW50aWFscy4gQ3VycmVudGx5LCBhbiBlbXB0eSBjcmVkZW50aWFsIGNh
bm5vdCBiZSBzdG9yZWQgaW4gV2ViQ29yZSBjcmVkZW50aWFsIHN0b3JhZ2UsIGFzIHRoYXQncyBl
bXB0eSB2YWx1ZSBmb3IgaXRzIG1hcC4KKyAgICBpZiAoY3JlZGVudGlhbC5pc0VtcHR5KCkpIHsK
KyAgICAgICAgcmVjZWl2ZWRSZXF1ZXN0VG9Db250aW51ZVdpdGhvdXRDcmVkZW50aWFsKGNoYWxs
ZW5nZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoY3JlZGVudGlhbC5wZXJz
aXN0ZW5jZSgpID09IENyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Npb24gJiYgKCFkLT5tX25l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzIHx8ICFbW1ttYWMoY2hhbGxlbmdlKSBwcm90ZWN0aW9uU3Bh
Y2VdIGhvc3RdIGlzRXF1YWxUb1N0cmluZzpAImdhbGxlcnkubWUuY29tIl0pKSB7CisgICAgICAg
IC8vIE1hbmFnZSBwZXItc2Vzc2lvbiBjcmVkZW50aWFscyBpbnRlcm5hbGx5LCBiZWNhdXNlIG9u
Y2UgTlNVUkxDcmVkZW50aWFsUGVyc2lzdGVuY2VGb3JTZXNzaW9uIGlzIHVzZWQsIHRoZXJlIGlz
IG5vIHdheQorICAgICAgICAvLyB0byBpZ25vcmUgaXQgZm9yIGEgcGFydGljdWxhciByZXF1ZXN0
IChzaG9ydCBvZiByZW1vdmluZyBpdCBhbHRvZ2V0aGVyKS4KKyAgICAgICAgLy8gPHJkYXI6Ly9w
cm9ibGVtLzY4Njc1OTg+IGdhbGxlcnkubWUuY29tIGlzIHRlbXBvcmFyaWx5IHdoaXRlbGlzdGVk
LCBzbyB0aGF0IFF1aWNrVGltZSBwbHVnLWluIGNvdWxkIHNlZSB0aGUgY3JlZGVudGlhbHMuCisg
ICAgICAgIENyZWRlbnRpYWwgd2ViQ3JlZGVudGlhbChjcmVkZW50aWFsLCBDcmVkZW50aWFsUGVy
c2lzdGVuY2VOb25lKTsKKyAgICAgICAgVVJMIHVybFRvU3RvcmU7CisgICAgICAgIGlmIChjaGFs
bGVuZ2UuZmFpbHVyZVJlc3BvbnNlKCkuaHR0cFN0YXR1c0NvZGUoKSA9PSA0MDEpCisgICAgICAg
ICAgICB1cmxUb1N0b3JlID0gY2hhbGxlbmdlLmZhaWx1cmVSZXNwb25zZSgpLnVybCgpOworICAg
ICAgICBDcmVkZW50aWFsU3RvcmFnZTo6c2V0KHdlYkNyZWRlbnRpYWwsIGNvcmUoW2QtPm1fY3Vy
cmVudE1hY0NoYWxsZW5nZSBwcm90ZWN0aW9uU3BhY2VdKSwgdXJsVG9TdG9yZSk7CisgICAgICAg
IFtbZC0+bV9jdXJyZW50TWFjQ2hhbGxlbmdlIHNlbmRlcl0gdXNlQ3JlZGVudGlhbDptYWMod2Vi
Q3JlZGVudGlhbCkgZm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6ZC0+bV9jdXJyZW50TWFjQ2hh
bGxlbmdlXTsKKyAgICB9IGVsc2UKKyAgICAgICAgW1tkLT5tX2N1cnJlbnRNYWNDaGFsbGVuZ2Ug
c2VuZGVyXSB1c2VDcmVkZW50aWFsOm1hYyhjcmVkZW50aWFsKSBmb3JBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZTpkLT5tX2N1cnJlbnRNYWNDaGFsbGVuZ2VdOworCisgICAgY2xlYXJBdXRoZW50aWNh
dGlvbigpOworfQorCit2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNlaXZlZFJlcXVlc3RUb0NvbnRp
bnVlV2l0aG91dENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxs
ZW5nZSkKK3sKKyAgICBMT0coTmV0d29yaywgIkhhbmRsZSAlcCByZWNlaXZlZFJlcXVlc3RUb0Nv
bnRpbnVlV2l0aG91dENyZWRlbnRpYWwiLCB0aGlzKTsKKworICAgIEFTU0VSVCghY2hhbGxlbmdl
LmlzTnVsbCgpKTsKKyAgICBpZiAoY2hhbGxlbmdlICE9IGQtPm1fY3VycmVudFdlYkNoYWxsZW5n
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW1tkLT5tX2N1cnJlbnRNYWNDaGFsbGVuZ2Ugc2Vu
ZGVyXSBjb250aW51ZVdpdGhvdXRDcmVkZW50aWFsRm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6
ZC0+bV9jdXJyZW50TWFjQ2hhbGxlbmdlXTsKKworICAgIGNsZWFyQXV0aGVudGljYXRpb24oKTsK
K30KKwordm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2ZWRDYW5jZWxsYXRpb24oY29uc3QgQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSkKK3sKKyAgICBMT0coTmV0d29yaywgIkhh
bmRsZSAlcCByZWNlaXZlZENhbmNlbGxhdGlvbiIsIHRoaXMpOworCisgICAgaWYgKGNoYWxsZW5n
ZSAhPSBkLT5tX2N1cnJlbnRXZWJDaGFsbGVuZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
IChjbGllbnQoKSkKKyAgICAgICAgY2xpZW50KCktPnJlY2VpdmVkQ2FuY2VsbGF0aW9uKHRoaXMs
IGNoYWxsZW5nZSk7Cit9CisKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlV2lsbENhY2hl
UmVzcG9uc2UoTlNDYWNoZWRVUkxSZXNwb25zZSAqcmVzcG9uc2UpCit7CisgICAgQVNTRVJUKGNs
aWVudCgpKTsKKyAgICBBU1NFUlQoY2xpZW50KCktPnVzZXNBc3luY0NhbGxiYWNrcygpKTsKKwor
ICAgIFsoaWQpZGVsZWdhdGUoKSBjb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlOnJlc3BvbnNlXTsK
K30KKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVU0UoTlNVUkxTRVNT
SU9OKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220606</attachid>
            <date>2014-01-08 01:03:35 -0800</date>
            <delta_ts>2014-01-08 10:38:45 -0800</delta_ts>
            <desc>ChangeLog</desc>
            <filename>wksessionstub.03.diff</filename>
            <type>text/plain</type>
            <size>27709</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA1NWJhODc5Li4yZmNjNjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMTQtMDEtMDggIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IFN0dWIgZm9yIFdlYlNlc3Npb24gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjY2MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAgICAgKiBTaGFy
ZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmg6CisgICAgICAgICogU2hhcmVkL0FQSU9iamVjdC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdLU2Vzc2lvbkdldFR5cGVJRCk6CisgICAgICAgIChXS1Nlc3Npb25HZXRFcGhlbWVy
YWwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuaDogQWRkZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Npb24uaDogQWRkZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Npb24ubW06IEFkZGVkLgorICAgICAgICAoLVtX
S1Nlc3Npb24gZGVhbGxvY10pOgorICAgICAgICAoLVtXS1Nlc3Npb24gZXBoZW1lcmFsXSk6Cisg
ICAgICAgICgtW1dLU2Vzc2lvbiBBUEk6Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tTZXNzaW9uSW50ZXJuYWwuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OndyYXBwZXIp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJTZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlNlc3Npb246OldlYlNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXNz
aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXNzaW9uOjpnZXRFcGhlbWVyYWwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJTZXNzaW9uOjp+V2ViU2Vzc2lvbik6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlNlc3Npb24uaDogQWRkZWQuCisgICAgICAgICogV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE0LTAxLTA3ICBFcmljIENhcmxzb24gIDxlcmljLmNh
cmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFRlYWNoIE1lZGlhU2Vzc2lvbk1hbmFnZXIgdG8g
bWFuYWdlIGludGVycnVwdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRl
eCAxOTdhZDlmLi5kNDE4OTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBA
IC0xMjYsNiArMTI2LDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQbHVnaW5TaXRl
RGF0YU1hbmFnZXIqIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBz
dHJ1Y3QgT3BhcXVlV0tQcmVmZXJlbmNlcyogV0tQcmVmZXJlbmNlc1JlZjsKIHR5cGVkZWYgY29u
c3Qgc3RydWN0IE9wYXF1ZVdLUHJvdGVjdGlvblNwYWNlKiBXS1Byb3RlY3Rpb25TcGFjZVJlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVGV4dENoZWNrZXIqIFdLVGV4dENoZWNrZXJS
ZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Nlc3Npb24qIFdLU2Vzc2lvblJlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlicmF0aW9uKiBXS1ZpYnJhdGlvblJlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlld3BvcnRBdHRyaWJ1dGVzKiBXS1ZpZXdw
b3J0QXR0cmlidXRlc1JlZjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLU2hhcmVkQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hh
cmVkQVBJQ2FzdC5oCmluZGV4IGQ0Y2JiNzcuLmQ5NThmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNs
dWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkZpbmRPcHRpb25zLmgiCiAjaW5jbHVkZSAi
V2ViU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJXZWJTZXNzaW9uLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9Db250ZXh0TWVudUl0ZW0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgpAQCAtMTEzLDYgKzExNCw3
IEBAIFdLX0FERF9BUElfTUFQUElORyhXS1VSTFJlZiwgQVBJOjpVUkwpCiBXS19BRERfQVBJX01B
UFBJTkcoV0tVUkxSZXF1ZXN0UmVmLCBBUEk6OlVSTFJlcXVlc3QpCiBXS19BRERfQVBJX01BUFBJ
TkcoV0tVUkxSZXNwb25zZVJlZiwgQVBJOjpVUkxSZXNwb25zZSkKIFdLX0FERF9BUElfTUFQUElO
RyhXS1VzZXJDb250ZW50VVJMUGF0dGVyblJlZiwgV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuKQor
V0tfQUREX0FQSV9NQVBQSU5HKFdLU2Vzc2lvblJlZiwgV2ViU2Vzc2lvbikKIAogdGVtcGxhdGU8
PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tNdXRhYmxlQXJyYXlSZWY+IHsgdHlwZWRlZiBBUEk6OkFy
cmF5KiBJbXBsVHlwZTsgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCmluZGV4IDAwNGVi
MGMuLjBkYTA0NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKQEAgLTEyOSw2ICsxMjks
NyBAQCBwdWJsaWM6CiAgICAgICAgIFBhZ2VHcm91cCwKICAgICAgICAgUGx1Z2luU2l0ZURhdGFN
YW5hZ2VyLAogICAgICAgICBQcmVmZXJlbmNlcywKKyAgICAgICAgU2Vzc2lvbiwKICAgICAgICAg
VGV4dENoZWNrZXIsCiAgICAgICAgIFZpYnJhdGlvbiwKICAgICAgICAgVmlld3BvcnRBdHRyaWJ1
dGVzLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lv
blJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tTZXNzaW9uUmVmLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MzVkNzY3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblJlZi5jcHAK
QEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXS1Nlc3Npb25SZWYuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUg
IldlYlNlc3Npb24uaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tT
ZXNzaW9uR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9BUEkoV2ViU2Vzc2lvbjo6QVBJVHlw
ZSk7Cit9CisKK2Jvb2wgV0tTZXNzaW9uR2V0RXBoZW1lcmFsKFdLU2Vzc2lvblJlZiBzZXNzaW9u
UmVmKQoreworICAgIHJldHVybiB0b0FQSSh0b0ltcGwoc2Vzc2lvblJlZiktPmdldEVwaGVtZXJh
bCgpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Nl
c3Npb25SZWYuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzBiNWU3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblJlZi5oCkBA
IC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLU2Vzc2lvblJlZl9oCisjZGVm
aW5lIFdLU2Vzc2lvblJlZl9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZk
ZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJ
RCBXS1Nlc3Npb25HZXRUeXBlSUQoKTsKKworV0tfRVhQT1JUIGJvb2wgV0tTZXNzaW9uR2V0RXBo
ZW1lcmFsKFdLU2Vzc2lvblJlZiBzZXNzaW9uKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9Cisj
ZW5kaWYKKworI2VuZGlmIC8qIFdLU2Vzc2lvblJlZl9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Npb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5lZjAwNTg3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Npb24uaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgPFdlYktpdDIvV0tTZXNzaW9uUmVmLmg+CisKKyNpZmRlZiBfX09CSkNfXwor
CisjaW1wb3J0IDxXZWJLaXQyL1dLRm91bmRhdGlvbi5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQK
KworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKK1dLX0FQSV9DTEFTUworQGlu
dGVyZmFjZSBXS1Nlc3Npb24gOiBOU09iamVjdAorCitAcHJvcGVydHkgKHJlYWRvbmx5KSBib29s
IGVwaGVtZXJhbDsKKworQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKKworI2VuZGlm
IC8vIGRlZmluZWQoX19PQkpDX18pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLU2Vzc2lvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tTZXNzaW9uLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUx
MTIyNzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLU2Vzc2lvbi5tbQpAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
Y29uZmlnLmgiCisjaW1wb3J0ICJXS1Nlc3Npb25JbnRlcm5hbC5oIgorCisjaWYgV0tfQVBJX0VO
QUJMRUQKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworQGltcGxlbWVudGF0aW9uIFdLU2Vz
c2lvbiB7CisgICAgQVBJOjpPYmplY3RTdG9yYWdlPFdlYlNlc3Npb24+IF9zZXNzaW9uOworfQor
CistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBfc2Vzc2lvbi0+fldlYlNlc3Npb24oKTsKKworICAg
IFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAoYm9vbCllcGhlbWVyYWwKK3sKKyAgICByZXR1cm4g
X3Nlc3Npb24tPmdldEVwaGVtZXJhbCgpOworfQorCisjcHJhZ21hIG1hcmsgV0tPYmplY3QgcHJv
dG9jb2wgaW1wbGVtZW50YXRpb24KKworLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKK3sKKyAg
ICByZXR1cm4gKl9zZXNzaW9uOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBXS19BUElfRU5BQkxF
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Np
b25JbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Np
b25JbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkYmY0MmUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
U2Vzc2lvbkludGVybmFsLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQg
IldLU2Vzc2lvbi5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCAiV0tPYmplY3Qu
aCIKKyNpbXBvcnQgIldlYlNlc3Npb24uaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2lubGlu
ZSBXS1Nlc3Npb24gKndyYXBwZXIoV2ViU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAgICBBU1NFUlQo
W3Nlc3Npb24ud3JhcHBlcigpIGlzS2luZE9mQ2xhc3M6W1dLU2Vzc2lvbiBjbGFzc11dKTsKKyAg
ICByZXR1cm4gKFdLU2Vzc2lvbiAqKXNlc3Npb24ud3JhcHBlcigpOworfQorCit9CisKK0BpbnRl
cmZhY2UgV0tTZXNzaW9uICgpIDxXS09iamVjdD4KK0BlbmQKKworI2VuZGlmIC8vIFdLX0FQSV9F
TkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViU2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViU2Vzc2lvbi5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjkzOWJhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJTZXNzaW9uLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlNlc3Npb24uaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlNlc3Npb246OldlYlNlc3Npb24oYm9vbCBpc0VwaGVt
ZXJhbCkKKyAgICA6IG1faXNFcGhlbWVyYWwoaXNFcGhlbWVyYWwpCit7Cit9CisKK1Bhc3NSZWZQ
dHI8V2ViU2Vzc2lvbj4gV2ViU2Vzc2lvbjo6Y3JlYXRlKGJvb2wgaXNFcGhlbWVyYWwpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTZXNzaW9uKGlzRXBoZW1lcmFsKSk7Cit9CisKK2Jv
b2wgV2ViU2Vzc2lvbjo6Z2V0RXBoZW1lcmFsKCkKK3sKKyAgICByZXR1cm4gbV9pc0VwaGVtZXJh
bDsKK30KKworV2ViU2Vzc2lvbjo6fldlYlNlc3Npb24oKQoreworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJTZXNzaW9u
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViU2Vzc2lvbi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkMzQxN2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViU2Vzc2lvbi5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFdlYlNlc3Npb25faAorI2RlZmluZSBXZWJTZXNzaW9uX2gKKworI2luY2x1
ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBXZWJTZXNzaW9uIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxB
UEk6Ok9iamVjdDo6VHlwZTo6U2Vzc2lvbj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFdlYlNlc3Npb24+IGNyZWF0ZShib29sIGlzRXBoZW1lcmFsKTsKKyAgICBib29sIGdldEVw
aGVtZXJhbCgpOworICAgIHZpcnR1YWwgfldlYlNlc3Npb24oKTsKKworcHJpdmF0ZToKKyAgICBl
eHBsaWNpdCBXZWJTZXNzaW9uKGJvb2wgaXNFcGhlbWVyYWwpOworICAgIGJvb2wgbV9pc0VwaGVt
ZXJhbDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViU2Vzc2lv
bl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggYmE0ZDcxNy4uOGVmMTBhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzU4LDYgKzc1OCwxMyBAQAogCQk3NTlD
Q0Q1ODE4MDhGMTY0MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNs
aWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NTlDQ0Q1NDE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5n
ZUNsaWVudC5jcHAgKi87IH07CiAJCTc1OUNDRDU5MTgwOEYxNjkwMDc4RThBOCAvKiBXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTlDQ0Q1NTE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oICovOyB9OwogCQk3NTlDQ0Q1QTE4MDhG
NjE2MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQkYxODA2MkJFNDAwNDZGNkE4
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCAqLzsgfTsKKwkJNzVBOEQyQzgxODdDQ0ZB
QjAwQzM5QzlFIC8qIFdLU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzVBOEQyQzQxODdDQ0Y5RjAwQzM5QzlFIC8qIFdLU2Vzc2lvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTc1QThEMkM5
MTg3Q0NGQUYwMEMzOUM5RSAvKiBXS1Nlc3Npb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUE4RDJDNTE4N0NDRjlGMDBDMzlDOUUgLyogV0tTZXNz
aW9uLm1tICovOyB9OworCQk3NUE4RDJDRTE4N0QwQTcwMDBDMzlDOUUgLyogV2ViU2Vzc2lvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyQ0Ix
ODdDRkMwQjAwQzM5QzlFIC8qIFdlYlNlc3Npb24uaCAqLzsgfTsKKwkJNzVBOEQyQ0YxODdEMEE3
MzAwQzM5QzlFIC8qIFdlYlNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyQ0ExODdDRkMwQjAwQzM5QzlFIC8qIFdlYlNlc3Npb24u
Y3BwICovOyB9OworCQk3NUE4RDJENjE4N0QxQzBFMDBDMzlDOUUgLyogV0tTZXNzaW9uSW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1QThE
MkQ0MTg3RDFDMDEwMEMzOUM5RSAvKiBXS1Nlc3Npb25JbnRlcm5hbC5oICovOyB9OworCQk3NUE4
RDJENzE4N0QzMDNBMDBDMzlDOUUgLyogV0tTZXNzaW9uUmVmLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUE4RDJEMTE4N0QxN0JGMDBDMzlDOUUgLyog
V0tTZXNzaW9uUmVmLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJNzVBOEQyRDgxODdEMzA0MDAwQzM5QzlFIC8qIFdLU2Vzc2lvblJlZi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUE4RDJEMDE4N0Qx
N0JGMDBDMzlDOUUgLyogV0tTZXNzaW9uUmVmLmNwcCAqLzsgfTsKIAkJNzVFNzQ5RTkxODBEQkI5
ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RTc0OUU1MTgwREJC
OTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87
IH07CiAJCTc1RTc0OUVBMTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NUU3NDlFNjE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5o
ICovOyB9OwogCQk3NUU3NDlFQjE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3NUU3NDlFNzE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC0yMzkzLDYgKzI0MDAs
MTMgQEAKIAkJNzU1NDIyQzgxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
Lm1lc3NhZ2VzLmluOyBwYXRoID0gT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU5Q0NENTQxODA4RjE2MDAw
NzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eUNoYW5nZUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1OUNDRDU1
MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHlDaGFuZ2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVBOEQy
QzQxODdDQ0Y5RjAwQzM5QzlFIC8qIFdLU2Vzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS1Nlc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVB
OEQyQzUxODdDQ0Y5RjAwQzM5QzlFIC8qIFdLU2Vzc2lvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLU2Vzc2lvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNzVBOEQyQ0ExODdDRkMwQjAwQzM5QzlFIC8qIFdlYlNlc3Npb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU2Vzc2lvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1QThEMkNCMTg3Q0ZDMEIwMEMzOUM5RSAvKiBXZWJTZXNz
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNlc3Npb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVBOEQyRDAxODdEMTdCRjAwQzM5QzlFIC8qIFdL
U2Vzc2lvblJlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1Nl
c3Npb25SZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUE4RDJEMTE4N0Qx
N0JGMDBDMzlDOUUgLyogV0tTZXNzaW9uUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLU2Vzc2lvblJlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUE4
RDJENDE4N0QxQzAxMDBDMzlDOUUgLyogV0tTZXNzaW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTZXNzaW9uSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzVFNzQ5RTUxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzVFNzQ5RTYxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3NUU3NDlFNzE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM5ODgsNiArNDAwMiw5IEBACiAJCQkJQkNCQUFDRTYxNDUy
MjVDQTAwNTNGODJGIC8qIFdLUHJvY2Vzc0dyb3VwLm1tICovLAogCQkJCTdDMUZCM0JGMTg0NkFF
RkMwMDFBMDNEOCAvKiBXS1Byb2Nlc3NHcm91cEludGVybmFsLmggKi8sCiAJCQkJQkNCQUFDRTcx
NDUyMjVDQjAwNTNGODJGIC8qIFdLUHJvY2Vzc0dyb3VwUHJpdmF0ZS5oICovLAorCQkJCTc1QThE
MkM0MTg3Q0NGOUYwMEMzOUM5RSAvKiBXS1Nlc3Npb24uaCAqLywKKwkJCQk3NUE4RDJDNTE4N0ND
RjlGMDBDMzlDOUUgLyogV0tTZXNzaW9uLm1tICovLAorCQkJCTc1QThEMkQ0MTg3RDFDMDEwMEMz
OUM5RSAvKiBXS1Nlc3Npb25JbnRlcm5hbC5oICovLAogCQkJCTdDRDVFQkJEMTc0NkIwNEMwMDBD
MUM0NSAvKiBXS1R5cGVSZWZXcmFwcGVyLmggKi8sCiAJCQkJN0NENUVCQkMxNzQ2QjA0QzAwMEMx
QzQ1IC8qIFdLVHlwZVJlZldyYXBwZXIubW0gKi8sCiAJCQkJQkM4Njk5QjIxMTZBQURBQTAwMkE5
MjVCIC8qIFdLVmlldy5oICovLApAQCAtNDcxNiw4ICs0NzMzLDggQEAKIAkJCQkzM0QzQTNCOTEz
Mzk2MDYyMDA3MDlCRTQgLyogV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAq
LywKIAkJCQlCQzFERkVBMzEyQjMxRjg3MDA1REY3MzAgLyogV2ViT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXJQcm94eS5jcHAgKi8sCiAJCQkJQkMxREZFQTIxMkIzMUY4NzAwNURGNzMwIC8qIFdlYk9w
ZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuaCAqLywKLQkJCQk3NTU0MjJCRTE4MDYyQkU0MDA0
NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAgKi8sCiAJCQkJNzU1NDIyQkYx
ODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCAqLywKKwkJCQk3
NTU0MjJCRTE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAg
Ki8sCiAJCQkJNzU1NDIyQzAxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJNzU5Q0NENTQxODA4RjE2MDAwNzhFOEE4IC8qIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwICovLAogCQkJCTc1OUNDRDU1
MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50
LmggKi8sCkBAIC00NzM5LDYgKzQ3NTYsOCBAQAogCQkJCTMzMzY3NjMyMTMwQzk5QjIwMDZDOURF
MiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcCAqLywKIAkJCQkzMzM2NzYzMzEz
MEM5OUIyMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oICovLAogCQkJ
CTMzMzY3NjM0MTMwQzk5QjIwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluICovLAorCQkJCTc1QThEMkNBMTg3Q0ZDMEIwMEMzOUM5RSAvKiBXZWJTZXNz
aW9uLmNwcCAqLywKKwkJCQk3NUE4RDJDQjE4N0NGQzBCMDBDMzlDOUUgLyogV2ViU2Vzc2lvbi5o
ICovLAogCQkJCTFBNTk0QUI4MTEyQTFGQjYwMDlERTdDNyAvKiBXZWJVSUNsaWVudC5jcHAgKi8s
CiAJCQkJMUE1OTRBQjkxMTJBMUZCNjAwOURFN0M3IC8qIFdlYlVJQ2xpZW50LmggKi8sCiAJCQkp
OwpAQCAtNDg1NCw2ICs0ODczLDggQEAKIAkJCQk1MThBQ0FFOTEyQUVFNkJCMDBCMDRCODMgLyog
V0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oICovLAogCQkJCTMzMzY3NjM4MTMwQzk5REMwMDZDOURF
MiAvKiBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcCAqLywKIAkJCQkzMzM2NzYzOTEzMEM5OURD
MDA2QzlERTIgLyogV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5oICovLAorCQkJCTc1QThEMkQwMTg3
RDE3QkYwMEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYuY3BwICovLAorCQkJCTc1QThEMkQxMTg3RDE3
QkYwMEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gQzsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC02MDc0LDYgKzYwOTUsNyBAQAogCQkJCTUxOEQy
Q0FFMTJENTE1M0IwMDNCQjkzQiAvKiBXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzcyQjlGQjExRTY0NzZCMDAxRUI0RUEgLyogV2ViQmFja0ZvcndhcmRMaXN0
UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3RkMxOTRCMTg1MTBENkEwMDhDRkE0NyAvKiBX
S05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1QThE
MkM4MTg3Q0NGQUIwMEMzOUM5RSAvKiBXS1Nlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
RjUwNzI4MTI0MzI5QUEwMDU5NTVBRSAvKiBXZWJDZXJ0aWZpY2F0ZUluZm8uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMDMyRDc1MTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDaHJvbWVDbGllbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxNUU3NzM0MTg0MDJENTEwMDA3MjAzRiAvKiBVbmlxdWVJREJE
YXRhYmFzZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLApAQCAtNjEzNiw2ICs2MTU4LDcgQEAK
IAkJCQkxQTkwQzFFRTEyNjRGRDUwMDAzRTQ0RDQgLyogV2ViRmluZE9wdGlvbnMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDRTQ2OTU0MTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQ0U0Njk1NjEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybVN1
Ym1pc3Npb25MaXN0ZW5lclByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NUE4RDJENzE4N0Qz
MDNBMDBDMzlDOUUgLyogV0tTZXNzaW9uUmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkQ4
RDEwRjQzN0EwMDA1OEMxNUEgLyogV2ViRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTQ2
OTc3MTIxNEYyN0IwMDBCOThFQiAvKiBXZWJGcmFtZUxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMDMyRDdGMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJGcmFtZUxvYWRlckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC02MjIyLDYgKzYyNDUsNyBAQAogCQkJCTFBQzEzMzgwMTg1
OTBBRTQwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMzMDY2QkYxMjVBNDQyMTAwRTcxMjc4IC8qIFdlYlByb2Nlc3NNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMwMzJERDUxMEY0Mzg5RjAwNThDMTVBIC8qIFdlYlByb2Nlc3NQcm94
eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzVBOEQyRDYxODdEMUMwRTAwQzM5QzlFIC8qIFdLU2Vz
c2lvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTAzMkYxOTE4MEY3M0JCMDA5NjFC
QjcgLyogV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0VFN0FEMTEyODE3OTg4MDA5ODI3REEgLyogV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDRTBFNDI1MTY4QjdBMjgwMDU3RTY2QSAvKiBXZWJQcm9jZXNz
U3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC02MzE5LDYgKzYzNDMsNyBAQAogCQkJCTUx
OEFDRjExMTJCMDE1RjgwMEIwNEI4MyAvKiBXS0NyZWRlbnRpYWxUeXBlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM0MDc1RjgxMjRGRjAyNzAwNjhGMjBBIC8qIFdLRGF0YS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRjYyQTc2NjIxMkIxQUJFRDAwMDVGMUI2IC8qIFdLRGF0YWJhc2VNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk3NUE4RDJDRTE4N0QwQTcwMDBDMzlDOUUgLyogV2ViU2Vzc2lv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc1RkExMjRGRjAyNzAwNjhGMjBBIC8qIFdLRGlj
dGlvbmFyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMTdEMDcxNjI2MEZGNDAwNzA1NEY1IC8q
IFdLRE9NRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDE3RDA5MTYyNjBGRjQwMDcw
NTRGNSAvKiBXS0RPTUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtNzIzOCw5ICs3MjYzLDEx
IEBACiAJCQkJQkM2NDY5NkYxMURCRTYwMzAwNjQ1NUIwIC8qIEFQSUFycmF5LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDQkNCMENEMTIxNUUzM0EwMERFNTlDQSAvKiBJbW11dGFibGVEaWN0aW9u
YXJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMjA0RUUyMTFDODNFOTgwMDhGMzM3NSAvKiBJ
bmplY3RlZEJ1bmRsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NUE4RDJDRjE4N0QwQTczMDBD
MzlDOUUgLyogV2ViU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzN0M0QzA5MzE4MTRC
M0FGMDAzNjg4QjkgLyogV0tOU0FycmF5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM1RUVCQTEx
Mjc3NjFDQzAwMzMyMkI4IC8qIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTkzNUVFQkEzMTI3NzYxRDMwMDMzMjJCOCAvKiBJbmplY3RlZEJ1bmRs
ZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzVBOEQyQzkxODdD
Q0ZBRjAwQzM5QzlFIC8qIFdLU2Vzc2lvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDRUU3REM2
MTI4QjY0NUQwMDk4MjdEQSAvKiBJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MUZBMkQ3NDE1MjEyREYxMDBDMUJBMEIgLyogSW5qZWN0ZWRCdW5kbGVET01XaW5k
b3dFeHRlbnNpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0OTg2MTkxMjREMTBFMjAwRDgz
NEUxIC8qIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTczNzMsNiArNzQwMCw3IEBACiAJCQkJMUEyRDkyMjExMjgxREMxQjAwMUVCOTYyIC8qIFBsdWdp
blByb3h5TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU1NDIyQzQxODA2MkJGOTAwNDZGNkE4
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE4
RUZBNzAxMjUyQjg0MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTc1QThEMkQ4MTg3RDMwNDAwMEMzOUM5RSAvKiBXS1Nlc3Npb25S
ZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzcxQTE5NDExODI0RDI5MzAwRjMyQTVFIC8qIFdL
TlNEaWN0aW9uYXJ5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NENjIyNzcxNzM5RDg2MzAwNUJE
N0ZGIC8qIFBsdWdpblNhbmRib3hQcm9maWxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4Mjg0
NEQxNkI1MDgxQzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tIGluIFNvdXJj
ZXMgKi8sCg==
</data>
<flag name="review"
          id="244350"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220642</attachid>
            <date>2014-01-08 10:38:45 -0800</date>
            <delta_ts>2014-01-08 11:08:08 -0800</delta_ts>
            <desc>address comments</desc>
            <filename>wksessionstub.04.diff</filename>
            <type>text/plain</type>
            <size>27618</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA1NWJhODc5Li4yZmNjNjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMTQtMDEtMDggIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IFN0dWIgZm9yIFdlYlNlc3Npb24gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjY2MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAgICAgKiBTaGFy
ZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmg6CisgICAgICAgICogU2hhcmVkL0FQSU9iamVjdC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdLU2Vzc2lvbkdldFR5cGVJRCk6CisgICAgICAgIChXS1Nlc3Npb25HZXRFcGhlbWVy
YWwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuaDogQWRkZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Npb24uaDogQWRkZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Npb24ubW06IEFkZGVkLgorICAgICAgICAoLVtX
S1Nlc3Npb24gZGVhbGxvY10pOgorICAgICAgICAoLVtXS1Nlc3Npb24gZXBoZW1lcmFsXSk6Cisg
ICAgICAgICgtW1dLU2Vzc2lvbiBBUEk6Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tTZXNzaW9uSW50ZXJuYWwuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OndyYXBwZXIp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJTZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlNlc3Npb246OldlYlNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXNz
aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXNzaW9uOjpnZXRFcGhlbWVyYWwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJTZXNzaW9uOjp+V2ViU2Vzc2lvbik6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlNlc3Npb24uaDogQWRkZWQuCisgICAgICAgICogV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE0LTAxLTA3ICBFcmljIENhcmxzb24gIDxlcmljLmNh
cmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFRlYWNoIE1lZGlhU2Vzc2lvbk1hbmFnZXIgdG8g
bWFuYWdlIGludGVycnVwdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRl
eCAxOTdhZDlmLi5kNDE4OTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBA
IC0xMjYsNiArMTI2LDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQbHVnaW5TaXRl
RGF0YU1hbmFnZXIqIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBz
dHJ1Y3QgT3BhcXVlV0tQcmVmZXJlbmNlcyogV0tQcmVmZXJlbmNlc1JlZjsKIHR5cGVkZWYgY29u
c3Qgc3RydWN0IE9wYXF1ZVdLUHJvdGVjdGlvblNwYWNlKiBXS1Byb3RlY3Rpb25TcGFjZVJlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVGV4dENoZWNrZXIqIFdLVGV4dENoZWNrZXJS
ZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Nlc3Npb24qIFdLU2Vzc2lvblJlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlicmF0aW9uKiBXS1ZpYnJhdGlvblJlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlld3BvcnRBdHRyaWJ1dGVzKiBXS1ZpZXdw
b3J0QXR0cmlidXRlc1JlZjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLU2hhcmVkQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hh
cmVkQVBJQ2FzdC5oCmluZGV4IGQ0Y2JiNzcuLmQ5NThmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNs
dWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkZpbmRPcHRpb25zLmgiCiAjaW5jbHVkZSAi
V2ViU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJXZWJTZXNzaW9uLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9Db250ZXh0TWVudUl0ZW0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgpAQCAtMTEzLDYgKzExNCw3
IEBAIFdLX0FERF9BUElfTUFQUElORyhXS1VSTFJlZiwgQVBJOjpVUkwpCiBXS19BRERfQVBJX01B
UFBJTkcoV0tVUkxSZXF1ZXN0UmVmLCBBUEk6OlVSTFJlcXVlc3QpCiBXS19BRERfQVBJX01BUFBJ
TkcoV0tVUkxSZXNwb25zZVJlZiwgQVBJOjpVUkxSZXNwb25zZSkKIFdLX0FERF9BUElfTUFQUElO
RyhXS1VzZXJDb250ZW50VVJMUGF0dGVyblJlZiwgV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuKQor
V0tfQUREX0FQSV9NQVBQSU5HKFdLU2Vzc2lvblJlZiwgV2ViU2Vzc2lvbikKIAogdGVtcGxhdGU8
PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tNdXRhYmxlQXJyYXlSZWY+IHsgdHlwZWRlZiBBUEk6OkFy
cmF5KiBJbXBsVHlwZTsgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCmluZGV4IDAwNGVi
MGMuLjBkYTA0NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKQEAgLTEyOSw2ICsxMjks
NyBAQCBwdWJsaWM6CiAgICAgICAgIFBhZ2VHcm91cCwKICAgICAgICAgUGx1Z2luU2l0ZURhdGFN
YW5hZ2VyLAogICAgICAgICBQcmVmZXJlbmNlcywKKyAgICAgICAgU2Vzc2lvbiwKICAgICAgICAg
VGV4dENoZWNrZXIsCiAgICAgICAgIFZpYnJhdGlvbiwKICAgICAgICAgVmlld3BvcnRBdHRyaWJ1
dGVzLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lv
blJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tTZXNzaW9uUmVmLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODFlNmRhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblJlZi5jcHAK
QEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXS1Nlc3Npb25SZWYuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUg
IldlYlNlc3Npb24uaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tT
ZXNzaW9uR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9BUEkoV2ViU2Vzc2lvbjo6QVBJVHlw
ZSk7Cit9CisKK2Jvb2wgV0tTZXNzaW9uR2V0RXBoZW1lcmFsKFdLU2Vzc2lvblJlZiBzZXNzaW9u
UmVmKQoreworICAgIHJldHVybiB0b0FQSSh0b0ltcGwoc2Vzc2lvblJlZiktPmlzRXBoZW1lcmFs
KCkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vz
c2lvblJlZi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblJlZi5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjMGI1ZTcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tTZXNzaW9uUmVmLmgKQEAg
LTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tTZXNzaW9uUmVmX2gKKyNkZWZp
bmUgV0tTZXNzaW9uUmVmX2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRl
ZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlE
IFdLU2Vzc2lvbkdldFR5cGVJRCgpOworCitXS19FWFBPUlQgYm9vbCBXS1Nlc3Npb25HZXRFcGhl
bWVyYWwoV0tTZXNzaW9uUmVmIHNlc3Npb24pOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNl
bmRpZgorCisjZW5kaWYgLyogV0tTZXNzaW9uUmVmX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLU2Vzc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjY0OTlhOTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLU2Vzc2lvbi5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0IDxXZWJLaXQyL1dLRm91bmRhdGlvbi5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQK
KworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKK1dLX0FQSV9DTEFTUworQGlu
dGVyZmFjZSBXS1Nlc3Npb24gOiBOU09iamVjdAorCitAcHJvcGVydHkgKHJlYWRvbmx5KSBib29s
IGVwaGVtZXJhbDsKKworQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTZXNzaW9uLm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Npb24ubW0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTIwMTY1NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTZXNzaW9uLm1tCkBAIC0wLDAgKzEsNTgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLU2Vzc2lvbklu
dGVybmFsLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRAorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OworCitAaW1wbGVtZW50YXRpb24gV0tTZXNzaW9uIHsKKyAgICBBUEk6Ok9iamVjdFN0b3JhZ2U8
V2ViU2Vzc2lvbj4gX3Nlc3Npb247Cit9CisKKy0gKHZvaWQpZGVhbGxvYworeworICAgIF9zZXNz
aW9uLT5+V2ViU2Vzc2lvbigpOworCisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistIChib29s
KWVwaGVtZXJhbAoreworICAgIHJldHVybiBfc2Vzc2lvbi0+aXNFcGhlbWVyYWwoKTsKK30KKwor
I3ByYWdtYSBtYXJrIFdLT2JqZWN0IHByb3RvY29sIGltcGxlbWVudGF0aW9uCisKKy0gKEFQSTo6
T2JqZWN0JilfYXBpT2JqZWN0Cit7CisgICAgcmV0dXJuICpfc2Vzc2lvbjsKK30KKworQGVuZAor
CisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tTZXNzaW9uSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tTZXNzaW9uSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5jZGJmNDJlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Npb25JbnRlcm5hbC5oCkBAIC0wLDAgKzEsNDYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJXS1Nlc3Npb24uaCIKKworI2lmIFdLX0FQSV9FTkFC
TEVECisKKyNpbXBvcnQgIldLT2JqZWN0LmgiCisjaW1wb3J0ICJXZWJTZXNzaW9uLmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitpbmxpbmUgV0tTZXNzaW9uICp3cmFwcGVyKFdlYlNlc3Npb24m
IHNlc3Npb24pCit7CisgICAgQVNTRVJUKFtzZXNzaW9uLndyYXBwZXIoKSBpc0tpbmRPZkNsYXNz
OltXS1Nlc3Npb24gY2xhc3NdXSk7CisgICAgcmV0dXJuIChXS1Nlc3Npb24gKilzZXNzaW9uLndy
YXBwZXIoKTsKK30KKworfQorCitAaW50ZXJmYWNlIFdLU2Vzc2lvbiAoKSA8V0tPYmplY3Q+CitA
ZW5kCisKKyNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlNlc3Npb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3NzFiYzUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViU2Vzc2lvbi5j
cHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJTZXNzaW9uLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJTZXNzaW9u
OjpXZWJTZXNzaW9uKGJvb2wgaXNFcGhlbWVyYWwpCisgICAgOiBtX2lzRXBoZW1lcmFsKGlzRXBo
ZW1lcmFsKQoreworfQorCitQYXNzUmVmUHRyPFdlYlNlc3Npb24+IFdlYlNlc3Npb246OmNyZWF0
ZShib29sIGlzRXBoZW1lcmFsKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViU2Vzc2lv
bihpc0VwaGVtZXJhbCkpOworfQorCitib29sIFdlYlNlc3Npb246OmlzRXBoZW1lcmFsKCkKK3sK
KyAgICByZXR1cm4gbV9pc0VwaGVtZXJhbDsKK30KKworV2ViU2Vzc2lvbjo6fldlYlNlc3Npb24o
KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
U2Vzc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmYWE4MDQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViU2Vzc2lvbi5oCkBA
IC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlNlc3Npb25faAorI2RlZmlu
ZSBXZWJTZXNzaW9uX2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTZXNzaW9uIDog
cHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6U2Vzc2lvbj4geworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlNlc3Npb24+IGNyZWF0ZShib29sIGlzRXBo
ZW1lcmFsKTsKKyAgICBib29sIGlzRXBoZW1lcmFsKCk7CisgICAgdmlydHVhbCB+V2ViU2Vzc2lv
bigpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYlNlc3Npb24oYm9vbCBpc0VwaGVtZXJh
bCk7CisgICAgYm9vbCBtX2lzRXBoZW1lcmFsOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBXZWJTZXNzaW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiYTRkNzE3Li44ZWYxMGEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03
NTgsNiArNzU4LDEzIEBACiAJCTc1OUNDRDU4MTgwOEYxNjQwMDc4RThBOCAvKiBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1OUNDRDU0MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCAqLzsgfTsKIAkJNzU5Q0NENTkxODA4
RjE2OTAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1OUNDRDU1MTgw
OEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50Lmgg
Ki87IH07CiAJCTc1OUNDRDVBMTgwOEY2MTYwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NTU0MjJCRjE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oICov
OyB9OworCQk3NUE4RDJDODE4N0NDRkFCMDBDMzlDOUUgLyogV0tTZXNzaW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUE4RDJDNDE4N0NDRjlGMDBD
MzlDOUUgLyogV0tTZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNzVBOEQyQzkxODdDQ0ZBRjAwQzM5QzlFIC8qIFdLU2Vzc2lvbi5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1QThEMkM1MTg3
Q0NGOUYwMEMzOUM5RSAvKiBXS1Nlc3Npb24ubW0gKi87IH07CisJCTc1QThEMkNFMTg3RDBBNzAw
MEMzOUM5RSAvKiBXZWJTZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NUE4RDJDQjE4N0NGQzBCMDBDMzlDOUUgLyogV2ViU2Vzc2lvbi5oICov
OyB9OworCQk3NUE4RDJDRjE4N0QwQTczMDBDMzlDOUUgLyogV2ViU2Vzc2lvbi5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUE4RDJDQTE4N0NGQzBC
MDBDMzlDOUUgLyogV2ViU2Vzc2lvbi5jcHAgKi87IH07CisJCTc1QThEMkQ2MTg3RDFDMEUwMEMz
OUM5RSAvKiBXS1Nlc3Npb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyRDQxODdEMUMwMTAwQzM5QzlFIC8qIFdLU2Vzc2lvbklu
dGVybmFsLmggKi87IH07CisJCTc1QThEMkQ3MTg3RDMwM0EwMEMzOUM5RSAvKiBXS1Nlc3Npb25S
ZWYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1QThE
MkQxMTg3RDE3QkYwMEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3NUE4RDJEODE4N0QzMDQwMDBDMzlDOUUg
LyogV0tTZXNzaW9uUmVmLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc1QThEMkQwMTg3RDE3QkYwMEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYuY3BwICov
OyB9OwogCQk3NUU3NDlFOTE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzVFNzQ5RTUxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNzVFNzQ5RUExODBEQkI5ODAwMDg4QkE2IC8q
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RTc0OUU2MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmln
aW5EYXRhTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CiAJCTc1RTc0OUVCMTgwREJCOTgwMDA4OEJB
NiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RTc0OUU3MTgwREJCOTgw
MDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAq
LzsgfTsKQEAgLTIzOTMsNiArMjQwMCwxMyBAQAogCQk3NTU0MjJDODE4MDY0RkZDMDA0NkY2QTgg
LyogV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW47IHBhdGggPSBPcmlnaW5EYXRhL1dl
Yk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3NTlDQ0Q1NDE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eUNoYW5nZUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzU5Q0NENTUxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3NUE4RDJDNDE4N0NDRjlGMDBDMzlDOUUgLyogV0tTZXNzaW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLU2Vzc2lvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3NUE4RDJDNTE4N0NDRjlGMDBDMzlDOUUgLyogV0tTZXNzaW9u
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTZXNzaW9uLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUE4RDJDQTE4N0NGQzBCMDBDMzlDOUUg
LyogV2ViU2Vzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJTZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVBOEQyQ0IxODdD
RkMwQjAwQzM5QzlFIC8qIFdlYlNlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViU2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUE4RDJE
MDE4N0QxN0JGMDBDMzlDOUUgLyogV0tTZXNzaW9uUmVmLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdLU2Vzc2lvblJlZi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTc1QThEMkQxMTg3RDE3QkYwMEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTZXNzaW9uUmVmLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTc1QThEMkQ0MTg3RDFDMDEwMEMzOUM5RSAvKiBXS1Nlc3Npb25J
bnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1Nlc3Npb25JbnRl
cm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NUU3NDlFNTE4MERCQjk4MDAw
ODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NUU3NDlFNjE4MERC
Qjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1RTc0OUU3MTgwREJCOTgwMDA4OEJBNiAvKiBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzk4OCw2ICs0MDAy
LDkgQEAKIAkJCQlCQ0JBQUNFNjE0NTIyNUNBMDA1M0Y4MkYgLyogV0tQcm9jZXNzR3JvdXAubW0g
Ki8sCiAJCQkJN0MxRkIzQkYxODQ2QUVGQzAwMUEwM0Q4IC8qIFdLUHJvY2Vzc0dyb3VwSW50ZXJu
YWwuaCAqLywKIAkJCQlCQ0JBQUNFNzE0NTIyNUNCMDA1M0Y4MkYgLyogV0tQcm9jZXNzR3JvdXBQ
cml2YXRlLmggKi8sCisJCQkJNzVBOEQyQzQxODdDQ0Y5RjAwQzM5QzlFIC8qIFdLU2Vzc2lvbi5o
ICovLAorCQkJCTc1QThEMkM1MTg3Q0NGOUYwMEMzOUM5RSAvKiBXS1Nlc3Npb24ubW0gKi8sCisJ
CQkJNzVBOEQyRDQxODdEMUMwMTAwQzM5QzlFIC8qIFdLU2Vzc2lvbkludGVybmFsLmggKi8sCiAJ
CQkJN0NENUVCQkQxNzQ2QjA0QzAwMEMxQzQ1IC8qIFdLVHlwZVJlZldyYXBwZXIuaCAqLywKIAkJ
CQk3Q0Q1RUJCQzE3NDZCMDRDMDAwQzFDNDUgLyogV0tUeXBlUmVmV3JhcHBlci5tbSAqLywKIAkJ
CQlCQzg2OTlCMjExNkFBREFBMDAyQTkyNUIgLyogV0tWaWV3LmggKi8sCkBAIC00NzE2LDggKzQ3
MzMsOCBAQAogCQkJCTMzRDNBM0I5MTMzOTYwNjIwMDcwOUJFNCAvKiBXZWJNZWRpYUNhY2hlTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCUJDMURGRUEzMTJCMzFGODcwMDVERjczMCAv
KiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCAqLywKIAkJCQlCQzFERkVBMjEy
QjMxRjg3MDA1REY3MzAgLyogV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oICovLAot
CQkJCTc1NTQyMkJFMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
LmNwcCAqLywKIAkJCQk3NTU0MjJCRjE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eS5oICovLAorCQkJCTc1NTQyMkJFMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5LmNwcCAqLywKIAkJCQk3NTU0MjJDMDE4MDYyQkU0MDA0NkY2QTgg
LyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQk3NTlDQ0Q1
NDE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVu
dC5jcHAgKi8sCiAJCQkJNzU5Q0NENTUxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCAqLywKQEAgLTQ3MzksNiArNDc1Niw4IEBACiAJCQkJ
MzMzNjc2MzIxMzBDOTlCMjAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHku
Y3BwICovLAogCQkJCTMzMzY3NjMzMTMwQzk5QjIwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hl
TWFuYWdlclByb3h5LmggKi8sCiAJCQkJMzMzNjc2MzQxMzBDOTlCMjAwNkM5REUyIC8qIFdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJNzVBOEQyQ0ExODdD
RkMwQjAwQzM5QzlFIC8qIFdlYlNlc3Npb24uY3BwICovLAorCQkJCTc1QThEMkNCMTg3Q0ZDMEIw
MEMzOUM5RSAvKiBXZWJTZXNzaW9uLmggKi8sCiAJCQkJMUE1OTRBQjgxMTJBMUZCNjAwOURFN0M3
IC8qIFdlYlVJQ2xpZW50LmNwcCAqLywKIAkJCQkxQTU5NEFCOTExMkExRkI2MDA5REU3QzcgLyog
V2ViVUlDbGllbnQuaCAqLywKIAkJCSk7CkBAIC00ODU0LDYgKzQ4NzMsOCBAQAogCQkJCTUxOEFD
QUU5MTJBRUU2QkIwMEIwNEI4MyAvKiBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmggKi8sCiAJCQkJ
MzMzNjc2MzgxMzBDOTlEQzAwNkM5REUyIC8qIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwICov
LAogCQkJCTMzMzY3NjM5MTMwQzk5REMwMDZDOURFMiAvKiBXS1Jlc291cmNlQ2FjaGVNYW5hZ2Vy
LmggKi8sCisJCQkJNzVBOEQyRDAxODdEMTdCRjAwQzM5QzlFIC8qIFdLU2Vzc2lvblJlZi5jcHAg
Ki8sCisJCQkJNzVBOEQyRDExODdEMTdCRjAwQzM5QzlFIC8qIFdLU2Vzc2lvblJlZi5oICovLAog
CQkJKTsKIAkJCXBhdGggPSBDOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTYwNzQs
NiArNjA5NSw3IEBACiAJCQkJNTE4RDJDQUUxMkQ1MTUzQjAwM0JCOTNCIC8qIFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNzJCOUZCMTFFNjQ3NkIwMDFFQjRF
QSAvKiBXZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdGQzE5
NEIxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNzVBOEQyQzgxODdDQ0ZBQjAwQzM5QzlFIC8qIFdLU2Vzc2lvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkNGNTA3MjgxMjQzMjlBQTAwNTk1NUFFIC8qIFdlYkNlcnRp
ZmljYXRlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJENzUxMEY0Mzc4RDAwNThDMTVB
IC8qIFdlYkNocm9tZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE1RTc3MzQxODQwMkQ1
MTAwMDcyMDNGIC8qIFVuaXF1ZUlEQkRhdGFiYXNlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8s
CkBAIC02MTM2LDYgKzYxNTgsNyBAQAogCQkJCTFBOTBDMUVFMTI2NEZENTAwMDNFNDRENCAvKiBX
ZWJGaW5kT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNDY5NTQxMjE0RTZDQjAwMEI5
OEVCIC8qIFdlYkZvcm1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTQ2OTU2MTIxNEU2
Q0IwMDBCOThFQiAvKiBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTc1QThEMkQ3MTg3RDMwM0EwMEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMDMyRDhEMTBGNDM3QTAwMDU4QzE1QSAvKiBXZWJGcmFtZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNFNDY5NzcxMjE0RjI3QjAwMEI5OEVCIC8qIFdlYkZyYW1lTGlz
dGVuZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEN0YxMEY0Mzc4RDAwNThDMTVB
IC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTYyMjIsNiArNjI0
NSw3IEBACiAJCQkJMUFDMTMzODAxODU5MEFFNDAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lz
dHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzMwNjZCRjEyNUE0NDIxMDBFNzEyNzggLyogV2Vi
UHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkRENTEwRjQzODlGMDA1
OEMxNUEgLyogV2ViUHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NUE4RDJENjE4
N0QxQzBFMDBDMzlDOUUgLyogV0tTZXNzaW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxMDMyRjE5MTgwRjczQkIwMDk2MUJCNyAvKiBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUU3QUQxMTI4MTc5ODgwMDk4MjdEQSAvKiBXZWJQ
cm9jZXNzUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFMEU0MjUxNjhCN0Ey
ODAwNTdFNjZBIC8qIFdlYlByb2Nlc3NTdXBwbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTYz
MTksNiArNjM0Myw3IEBACiAJCQkJNTE4QUNGMTExMkIwMTVGODAwQjA0QjgzIC8qIFdLQ3JlZGVu
dGlhbFR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzVGODEyNEZGMDI3MDA2OEYyMEEg
LyogV0tEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNjJBNzY2MjEyQjFBQkVEMDAwNUYxQjYg
LyogV0tEYXRhYmFzZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1QThEMkNFMTg3RDBB
NzAwMEMzOUM5RSAvKiBXZWJTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzVGQTEy
NEZGMDI3MDA2OEYyMEEgLyogV0tEaWN0aW9uYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAx
N0QwNzE2MjYwRkY0MDA3MDU0RjUgLyogV0tET01Eb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMwMTdEMDkxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC03MjM4LDkgKzcyNjMsMTEgQEAKIAkJCQlCQzY0Njk2RjExREJFNjAzMDA2NDU1QjAg
LyogQVBJQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCQ0IwQ0QxMjE1RTMzQTAwREU1
OUNBIC8qIEltbXV0YWJsZURpY3Rpb25hcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyMDRF
RTIxMUM4M0U5ODAwOEYzMzc1IC8qIEluamVjdGVkQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTc1QThEMkNGMTg3RDBBNzMwMEMzOUM5RSAvKiBXZWJTZXNzaW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTM3QzRDMDkzMTgxNEIzQUYwMDM2ODhCOSAvKiBXS05TQXJyYXkubW0gaW4gU291
cmNlcyAqLywKIAkJCQk5MzVFRUJBMTEyNzc2MUNDMDAzMzIyQjggLyogSW5qZWN0ZWRCdW5kbGVC
YWNrRm9yd2FyZExpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM1RUVCQTMxMjc3NjFEMzAw
MzMyMkI4IC8qIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk3NUE4RDJDOTE4N0NDRkFGMDBDMzlDOUUgLyogV0tTZXNzaW9uLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkNFRTdEQzYxMjhCNjQ1RDAwOTgyN0RBIC8qIEluamVjdGVkQnVuZGxl
Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRkEyRDc0MTUyMTJERjEwMEMxQkEwQiAv
KiBJbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQzQ5ODYxOTEyNEQxMEUyMDBEODM0RTEgLyogSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNzM3Myw2ICs3NDAwLDcgQEAKIAkJCQkxQTJEOTIyMTEy
ODFEQzFCMDAxRUI5NjIgLyogUGx1Z2luUHJveHlNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3
NTU0MjJDNDE4MDYyQkY5MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxQThFRkE3MDEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzVBOEQyRDgxODdEMzA0
MDAwQzM5QzlFIC8qIFdLU2Vzc2lvblJlZi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzFBMTk0
MTE4MjREMjkzMDBGMzJBNUUgLyogV0tOU0RpY3Rpb25hcnkubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk3Q0Q2MjI3NzE3MzlEODYzMDA1QkQ3RkYgLyogUGx1Z2luU2FuZGJveFByb2ZpbGUubW0gaW4g
U291cmNlcyAqLywKIAkJCQlCQzgyODQ0RDE2QjUwODFDMDBBMjc4RkUgLyogUGx1Z2luU2Vydmlj
ZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywK
</data>
<flag name="commit-queue"
          id="244398"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220644</attachid>
            <date>2014-01-08 11:08:08 -0800</date>
            <delta_ts>2014-01-08 11:15:59 -0800</delta_ts>
            <desc>rebase</desc>
            <filename>wksessionstub.05.diff</filename>
            <type>text/plain</type>
            <size>27653</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBjYjQyZDM1Li44MDIzZDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMTQtMDEtMDggIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IFN0dWIgZm9yIFdlYlNlc3Npb24gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjY2MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAgICAgKiBTaGFy
ZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmg6CisgICAgICAgICogU2hhcmVkL0FQSU9iamVjdC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdLU2Vzc2lvbkdldFR5cGVJRCk6CisgICAgICAgIChXS1Nlc3Npb25HZXRFcGhlbWVy
YWwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuaDogQWRkZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Npb24uaDogQWRkZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Npb24ubW06IEFkZGVkLgorICAgICAgICAoLVtX
S1Nlc3Npb24gZGVhbGxvY10pOgorICAgICAgICAoLVtXS1Nlc3Npb24gZXBoZW1lcmFsXSk6Cisg
ICAgICAgICgtW1dLU2Vzc2lvbiBBUEk6Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tTZXNzaW9uSW50ZXJuYWwuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OndyYXBwZXIp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJTZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlNlc3Npb246OldlYlNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXNz
aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXNzaW9uOjpnZXRFcGhlbWVyYWwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJTZXNzaW9uOjp+V2ViU2Vzc2lvbik6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlNlc3Npb24uaDogQWRkZWQuCisgICAgICAgICogV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE0LTAxLTA4ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJz
ZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbQXV0b21ha2VdIFNjcmlwdHMgZm9yIGdlbmVyYXRl
ZCBidWlsZCB0YXJnZXRzIGRvIG5vdCBuZWNlc3NhcmlseSBwcm9kdWNlIHRoZWlyIG91dHB1dApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCmluZGV4IDE5N2FkOWYuLmQ0MTg5NGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTEyNiw2ICsxMjYsNyBAQCB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BsdWdpblNpdGVEYXRhTWFuYWdlciogV0tQbHVnaW5T
aXRlRGF0YU1hbmFnZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ByZWZlcmVu
Y2VzKiBXS1ByZWZlcmVuY2VzUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcm90
ZWN0aW9uU3BhY2UqIFdLUHJvdGVjdGlvblNwYWNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tUZXh0Q2hlY2tlciogV0tUZXh0Q2hlY2tlclJlZjsKK3R5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLU2Vzc2lvbiogV0tTZXNzaW9uUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tWaWJyYXRpb24qIFdLVmlicmF0aW9uUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tWaWV3cG9ydEF0dHJpYnV0ZXMqIFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKaW5kZXggZDRj
YmI3Ny4uZDk1OGY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
U2hhcmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJl
ZEFQSUNhc3QuaApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5j
bHVkZSAiV2ViRmluZE9wdGlvbnMuaCIKICNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgor
I2luY2x1ZGUgIldlYlNlc3Npb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbnRleHRNZW51SXRl
bS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZUxvYWRlclR5cGVzLmg+CkBAIC0xMTMsNiArMTE0LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5H
KFdLVVJMUmVmLCBBUEk6OlVSTCkKIFdLX0FERF9BUElfTUFQUElORyhXS1VSTFJlcXVlc3RSZWYs
IEFQSTo6VVJMUmVxdWVzdCkKIFdLX0FERF9BUElfTUFQUElORyhXS1VSTFJlc3BvbnNlUmVmLCBB
UEk6OlVSTFJlc3BvbnNlKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVXNlckNvbnRlbnRVUkxQYXR0
ZXJuUmVmLCBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4pCitXS19BRERfQVBJX01BUFBJTkcoV0tT
ZXNzaW9uUmVmLCBXZWJTZXNzaW9uKQogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxX
S011dGFibGVBcnJheVJlZj4geyB0eXBlZGVmIEFQSTo6QXJyYXkqIEltcGxUeXBlOyB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggMDA0ZWIwYy4uMGRhMDQ2OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUElPYmplY3QuaApAQCAtMTI5LDYgKzEyOSw3IEBAIHB1YmxpYzoKICAgICAgICAg
UGFnZUdyb3VwLAogICAgICAgICBQbHVnaW5TaXRlRGF0YU1hbmFnZXIsCiAgICAgICAgIFByZWZl
cmVuY2VzLAorICAgICAgICBTZXNzaW9uLAogICAgICAgICBUZXh0Q2hlY2tlciwKICAgICAgICAg
VmlicmF0aW9uLAogICAgICAgICBWaWV3cG9ydEF0dHJpYnV0ZXMsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tTZXNzaW9uUmVmLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmU4MWU2ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tTZXNzaW9uUmVmLmNwcApAQCAtMCwwICsxLDQyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLU2Vzc2lvblJlZi5oIgor
CisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViU2Vzc2lvbi5oIgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS1Nlc3Npb25HZXRUeXBlSUQoKQorewor
ICAgIHJldHVybiB0b0FQSShXZWJTZXNzaW9uOjpBUElUeXBlKTsKK30KKworYm9vbCBXS1Nlc3Np
b25HZXRFcGhlbWVyYWwoV0tTZXNzaW9uUmVmIHNlc3Npb25SZWYpCit7CisgICAgcmV0dXJuIHRv
QVBJKHRvSW1wbChzZXNzaW9uUmVmKS0+aXNFcGhlbWVyYWwoKSk7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tTZXNzaW9uUmVmLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tTZXNzaW9uUmVmLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZmMwYjVlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuaApAQCAtMCwwICsxLDQzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBXS1Nlc3Npb25SZWZfaAorI2RlZmluZSBXS1Nlc3Npb25SZWZfaAorCisj
aW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4g
IkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tTZXNzaW9uR2V0VHlwZUlEKCk7
CisKK1dLX0VYUE9SVCBib29sIFdLU2Vzc2lvbkdldEVwaGVtZXJhbChXS1Nlc3Npb25SZWYgc2Vz
c2lvbik7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBXS1Nl
c3Npb25SZWZfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tT
ZXNzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQ5OWE5MgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTZXNz
aW9uLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdDIvV0tG
b3VuZGF0aW9uLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0IDxGb3VuZGF0aW9u
L0ZvdW5kYXRpb24uaD4KKworV0tfQVBJX0NMQVNTCitAaW50ZXJmYWNlIFdLU2Vzc2lvbiA6IE5T
T2JqZWN0CisKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIGJvb2wgZXBoZW1lcmFsOworCitAZW5kCisK
KyNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Npb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLU2Vzc2lvbi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li41MjAxNjU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1Nlc3Npb24ubW0KQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tTZXNzaW9uSW50ZXJuYWwuaCIKKworI2lmIFdLX0FQ
SV9FTkFCTEVECisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK0BpbXBsZW1lbnRhdGlvbiBX
S1Nlc3Npb24geworICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxXZWJTZXNzaW9uPiBfc2Vzc2lvbjsK
K30KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgX3Nlc3Npb24tPn5XZWJTZXNzaW9uKCk7CisK
KyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKGJvb2wpZXBoZW1lcmFsCit7CisgICAgcmV0
dXJuIF9zZXNzaW9uLT5pc0VwaGVtZXJhbCgpOworfQorCisjcHJhZ21hIG1hcmsgV0tPYmplY3Qg
cHJvdG9jb2wgaW1wbGVtZW50YXRpb24KKworLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKK3sK
KyAgICByZXR1cm4gKl9zZXNzaW9uOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBXS19BUElfRU5B
QkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nl
c3Npb25JbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nl
c3Npb25JbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkYmY0
MmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLU2Vzc2lvbkludGVybmFsLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgIldLU2Vzc2lvbi5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCAiV0tPYmpl
Y3QuaCIKKyNpbXBvcnQgIldlYlNlc3Npb24uaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2lu
bGluZSBXS1Nlc3Npb24gKndyYXBwZXIoV2ViU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAgICBBU1NF
UlQoW3Nlc3Npb24ud3JhcHBlcigpIGlzS2luZE9mQ2xhc3M6W1dLU2Vzc2lvbiBjbGFzc11dKTsK
KyAgICByZXR1cm4gKFdLU2Vzc2lvbiAqKXNlc3Npb24ud3JhcHBlcigpOworfQorCit9CisKK0Bp
bnRlcmZhY2UgV0tTZXNzaW9uICgpIDxXS09iamVjdD4KK0BlbmQKKworI2VuZGlmIC8vIFdLX0FQ
SV9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViU2Vzc2lv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViU2Vzc2lvbi5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDc3MWJjNQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJTZXNzaW9uLmNwcApAQCAtMCwwICsxLDUwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlNlc3Npb24uaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlNlc3Npb246OldlYlNlc3Npb24oYm9vbCBpc0Vw
aGVtZXJhbCkKKyAgICA6IG1faXNFcGhlbWVyYWwoaXNFcGhlbWVyYWwpCit7Cit9CisKK1Bhc3NS
ZWZQdHI8V2ViU2Vzc2lvbj4gV2ViU2Vzc2lvbjo6Y3JlYXRlKGJvb2wgaXNFcGhlbWVyYWwpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTZXNzaW9uKGlzRXBoZW1lcmFsKSk7Cit9CisK
K2Jvb2wgV2ViU2Vzc2lvbjo6aXNFcGhlbWVyYWwoKQoreworICAgIHJldHVybiBtX2lzRXBoZW1l
cmFsOworfQorCitXZWJTZXNzaW9uOjp+V2ViU2Vzc2lvbigpCit7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlNlc3Np
b24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJTZXNzaW9uLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGZhYTgwNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJTZXNzaW9uLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV2ViU2Vzc2lvbl9oCisjZGVmaW5lIFdlYlNlc3Npb25faAorCisjaW5j
bHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlNlc3Npb24gOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBs
PEFQSTo6T2JqZWN0OjpUeXBlOjpTZXNzaW9uPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8V2ViU2Vzc2lvbj4gY3JlYXRlKGJvb2wgaXNFcGhlbWVyYWwpOworICAgIGJvb2wgaXNF
cGhlbWVyYWwoKTsKKyAgICB2aXJ0dWFsIH5XZWJTZXNzaW9uKCk7CisKK3ByaXZhdGU6CisgICAg
ZXhwbGljaXQgV2ViU2Vzc2lvbihib29sIGlzRXBoZW1lcmFsKTsKKyAgICBib29sIG1faXNFcGhl
bWVyYWw7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlNlc3Np
b25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGJhNGQ3MTcuLjhlZjEwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc1OCw2ICs3NTgsMTMgQEAKIAkJNzU5
Q0NENTgxODA4RjE2NDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VD
bGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzU5Q0NENTQxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFu
Z2VDbGllbnQuY3BwICovOyB9OwogCQk3NTlDQ0Q1OTE4MDhGMTY5MDA3OEU4QTggLyogV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU5Q0NENTUxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCAqLzsgfTsKIAkJNzU5Q0NENUExODA4
RjYxNjAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkJGMTgwNjJCRTQwMDQ2RjZB
OCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggKi87IH07CisJCTc1QThEMkM4MTg3Q0NG
QUIwMEMzOUM5RSAvKiBXS1Nlc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc1QThEMkM0MTg3Q0NGOUYwMEMzOUM5RSAvKiBXS1Nlc3Npb24uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3NUE4RDJD
OTE4N0NDRkFGMDBDMzlDOUUgLyogV0tTZXNzaW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyQzUxODdDQ0Y5RjAwQzM5QzlFIC8qIFdLU2Vz
c2lvbi5tbSAqLzsgfTsKKwkJNzVBOEQyQ0UxODdEMEE3MDAwQzM5QzlFIC8qIFdlYlNlc3Npb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1QThEMkNC
MTg3Q0ZDMEIwMEMzOUM5RSAvKiBXZWJTZXNzaW9uLmggKi87IH07CisJCTc1QThEMkNGMTg3RDBB
NzMwMEMzOUM5RSAvKiBXZWJTZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc1QThEMkNBMTg3Q0ZDMEIwMEMzOUM5RSAvKiBXZWJTZXNzaW9u
LmNwcCAqLzsgfTsKKwkJNzVBOEQyRDYxODdEMUMwRTAwQzM5QzlFIC8qIFdLU2Vzc2lvbkludGVy
bmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUE4
RDJENDE4N0QxQzAxMDBDMzlDOUUgLyogV0tTZXNzaW9uSW50ZXJuYWwuaCAqLzsgfTsKKwkJNzVB
OEQyRDcxODdEMzAzQTAwQzM5QzlFIC8qIFdLU2Vzc2lvblJlZi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyRDExODdEMTdCRjAwQzM5QzlFIC8q
IFdLU2Vzc2lvblJlZi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTc1QThEMkQ4MTg3RDMwNDAwMEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyRDAxODdE
MTdCRjAwQzM5QzlFIC8qIFdLU2Vzc2lvblJlZi5jcHAgKi87IH07CiAJCTc1RTc0OUU5MTgwREJC
OTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUU3NDlFNTE4MERC
Qjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICov
OyB9OwogCQk3NUU3NDlFQTE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzVFNzQ5RTYxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMu
aCAqLzsgfTsKIAkJNzVFNzQ5RUIxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzVFNzQ5RTcxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwpAQCAtMjM5Myw2ICsyNDAw
LDEzIEBACiAJCTc1NTQyMkM4MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
ci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJPcmlnaW5EYXRhTWFuYWdl
ci5tZXNzYWdlcy5pbjsgcGF0aCA9IE9yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1OUNDRDU0MTgwOEYxNjAw
MDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHlDaGFuZ2VDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTlDQ0Q1
NTE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Q2hhbmdlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1QThE
MkM0MTg3Q0NGOUYwMEMzOUM5RSAvKiBXS1Nlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tTZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1
QThEMkM1MTg3Q0NGOUYwMEMzOUM5RSAvKiBXS1Nlc3Npb24ubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1Nlc3Npb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTc1QThEMkNBMTg3Q0ZDMEIwMEMzOUM5RSAvKiBXZWJTZXNzaW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNlc3Npb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3NUE4RDJDQjE4N0NGQzBCMDBDMzlDOUUgLyogV2ViU2Vz
c2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTZXNzaW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1QThEMkQwMTg3RDE3QkYwMEMzOUM5RSAvKiBX
S1Nlc3Npb25SZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tT
ZXNzaW9uUmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVBOEQyRDExODdE
MTdCRjAwQzM5QzlFIC8qIFdLU2Vzc2lvblJlZi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS1Nlc3Npb25SZWYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVB
OEQyRDQxODdEMUMwMTAwQzM5QzlFIC8qIFdLU2Vzc2lvbkludGVybmFsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLU2Vzc2lvbkludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc1RTc0OUU1MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRh
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1RTc0OUU2MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmln
aW5EYXRhTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzVFNzQ5RTcxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zOTg4LDYgKzQwMDIsOSBAQAogCQkJCUJDQkFBQ0U2MTQ1
MjI1Q0EwMDUzRjgyRiAvKiBXS1Byb2Nlc3NHcm91cC5tbSAqLywKIAkJCQk3QzFGQjNCRjE4NDZB
RUZDMDAxQTAzRDggLyogV0tQcm9jZXNzR3JvdXBJbnRlcm5hbC5oICovLAogCQkJCUJDQkFBQ0U3
MTQ1MjI1Q0IwMDUzRjgyRiAvKiBXS1Byb2Nlc3NHcm91cFByaXZhdGUuaCAqLywKKwkJCQk3NUE4
RDJDNDE4N0NDRjlGMDBDMzlDOUUgLyogV0tTZXNzaW9uLmggKi8sCisJCQkJNzVBOEQyQzUxODdD
Q0Y5RjAwQzM5QzlFIC8qIFdLU2Vzc2lvbi5tbSAqLywKKwkJCQk3NUE4RDJENDE4N0QxQzAxMDBD
MzlDOUUgLyogV0tTZXNzaW9uSW50ZXJuYWwuaCAqLywKIAkJCQk3Q0Q1RUJCRDE3NDZCMDRDMDAw
QzFDNDUgLyogV0tUeXBlUmVmV3JhcHBlci5oICovLAogCQkJCTdDRDVFQkJDMTc0NkIwNEMwMDBD
MUM0NSAvKiBXS1R5cGVSZWZXcmFwcGVyLm1tICovLAogCQkJCUJDODY5OUIyMTE2QUFEQUEwMDJB
OTI1QiAvKiBXS1ZpZXcuaCAqLywKQEAgLTQ3MTYsOCArNDczMyw4IEBACiAJCQkJMzNEM0EzQjkx
MzM5NjA2MjAwNzA5QkU0IC8qIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4g
Ki8sCiAJCQkJQkMxREZFQTMxMkIzMUY4NzAwNURGNzMwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyUHJveHkuY3BwICovLAogCQkJCUJDMURGRUEyMTJCMzFGODcwMDVERjczMCAvKiBXZWJP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmggKi8sCi0JCQkJNzU1NDIyQkUxODA2MkJFNDAw
NDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwICovLAogCQkJCTc1NTQyMkJG
MTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggKi8sCisJCQkJ
NzU1NDIyQkUxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3Bw
ICovLAogCQkJCTc1NTQyMkMwMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTc1OUNDRDU0MTgwOEYxNjAwMDc4RThBOCAvKiBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCAqLywKIAkJCQk3NTlDQ0Q1
NTE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVu
dC5oICovLApAQCAtNDczOSw2ICs0NzU2LDggQEAKIAkJCQkzMzM2NzYzMjEzMEM5OUIyMDA2QzlE
RTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAgKi8sCiAJCQkJMzMzNjc2MzMx
MzBDOTlCMjAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCAqLywKIAkJ
CQkzMzM2NzYzNDEzMEM5OUIyMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbiAqLywKKwkJCQk3NUE4RDJDQTE4N0NGQzBCMDBDMzlDOUUgLyogV2ViU2Vz
c2lvbi5jcHAgKi8sCisJCQkJNzVBOEQyQ0IxODdDRkMwQjAwQzM5QzlFIC8qIFdlYlNlc3Npb24u
aCAqLywKIAkJCQkxQTU5NEFCODExMkExRkI2MDA5REU3QzcgLyogV2ViVUlDbGllbnQuY3BwICov
LAogCQkJCTFBNTk0QUI5MTEyQTFGQjYwMDlERTdDNyAvKiBXZWJVSUNsaWVudC5oICovLAogCQkJ
KTsKQEAgLTQ4NTQsNiArNDg3Myw4IEBACiAJCQkJNTE4QUNBRTkxMkFFRTZCQjAwQjA0QjgzIC8q
IFdLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCAqLywKIAkJCQkzMzM2NzYzODEzMEM5OURDMDA2QzlE
RTIgLyogV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAgKi8sCiAJCQkJMzMzNjc2MzkxMzBDOTlE
QzAwNkM5REUyIC8qIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCAqLywKKwkJCQk3NUE4RDJEMDE4
N0QxN0JGMDBDMzlDOUUgLyogV0tTZXNzaW9uUmVmLmNwcCAqLywKKwkJCQk3NUE4RDJEMTE4N0Qx
N0JGMDBDMzlDOUUgLyogV0tTZXNzaW9uUmVmLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IEM7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNjA3NCw2ICs2MDk1LDcgQEAKIAkJCQk1MThE
MkNBRTEyRDUxNTNCMDAzQkI5M0IgLyogV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM3MkI5RkIxMUU2NDc2QjAwMUVCNEVBIC8qIFdlYkJhY2tGb3J3YXJkTGlz
dFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0ZDMTk0QjE4NTEwRDZBMDA4Q0ZBNDcgLyog
V0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3NUE4
RDJDODE4N0NDRkFCMDBDMzlDOUUgLyogV0tTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0Y1MDcyODEyNDMyOUFBMDA1OTU1QUUgLyogV2ViQ2VydGlmaWNhdGVJbmZvLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzAzMkQ3NTEwRjQzNzhEMDA1OEMxNUEgLyogV2ViQ2hyb21lQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTVFNzczNDE4NDAyRDUxMDAwNzIwM0YgLyogVW5pcXVlSURC
RGF0YWJhc2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKQEAgLTYxMzYsNiArNjE1OCw3IEBA
CiAJCQkJMUE5MEMxRUUxMjY0RkQ1MDAwM0U0NEQ0IC8qIFdlYkZpbmRPcHRpb25zLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0U0Njk1NDEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybUNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNDY5NTYxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1T
dWJtaXNzaW9uTGlzdGVuZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzVBOEQyRDcxODdE
MzAzQTAwQzM5QzlFIC8qIFdLU2Vzc2lvblJlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJE
OEQxMEY0MzdBMDAwNThDMTVBIC8qIFdlYkZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U0
Njk3NzEyMTRGMjdCMDAwQjk4RUIgLyogV2ViRnJhbWVMaXN0ZW5lclByb3h5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzAzMkQ3RjEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRnJhbWVMb2FkZXJDbGll
bnQuaCBpbiBIZWFkZXJzICovLApAQCAtNjIyMiw2ICs2MjQ1LDcgQEAKIAkJCQkxQUMxMzM4MDE4
NTkwQUU0MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDMzA2NkJGMTI1QTQ0MjEwMEU3MTI3OCAvKiBXZWJQcm9jZXNzTWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMDMyREQ1MTBGNDM4OUYwMDU4QzE1QSAvKiBXZWJQcm9jZXNzUHJv
eHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1QThEMkQ2MTg3RDFDMEUwMEMzOUM5RSAvKiBXS1Nl
c3Npb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEwMzJGMTkxODBGNzNCQjAwOTYx
QkI3IC8qIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNFRTdBRDExMjgxNzk4ODAwOTgyN0RBIC8qIFdlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQ0UwRTQyNTE2OEI3QTI4MDA1N0U2NkEgLyogV2ViUHJvY2Vz
c1N1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtNjMxOSw2ICs2MzQzLDcgQEAKIAkJCQk1
MThBQ0YxMTEyQjAxNUY4MDBCMDRCODMgLyogV0tDcmVkZW50aWFsVHlwZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNDA3NUY4MTI0RkYwMjcwMDY4RjIwQSAvKiBXS0RhdGEuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUY2MkE3NjYyMTJCMUFCRUQwMDA1RjFCNiAvKiBXS0RhdGFiYXNlTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNzVBOEQyQ0UxODdEMEE3MDAwQzM5QzlFIC8qIFdlYlNlc3Np
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NUZBMTI0RkYwMjcwMDY4RjIwQSAvKiBXS0Rp
Y3Rpb25hcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDE3RDA3MTYyNjBGRjQwMDcwNTRGNSAv
KiBXS0RPTURvY3VtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAxN0QwOTE2MjYwRkY0MDA3
MDU0RjUgLyogV0tET01FbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTcyMzgsOSArNzI2Mywx
MSBAQAogCQkJCUJDNjQ2OTZGMTFEQkU2MDMwMDY0NTVCMCAvKiBBUElBcnJheS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQ0JDQjBDRDEyMTVFMzNBMDBERTU5Q0EgLyogSW1tdXRhYmxlRGljdGlv
bmFyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzIwNEVFMjExQzgzRTk4MDA4RjMzNzUgLyog
SW5qZWN0ZWRCdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzVBOEQyQ0YxODdEMEE3MzAw
QzM5QzlFIC8qIFdlYlNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdDNEMwOTMxODE0
QjNBRjAwMzY4OEI5IC8qIFdLTlNBcnJheS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzNUVFQkEx
MTI3NzYxQ0MwMDMzMjJCOCAvKiBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5MzVFRUJBMzEyNzc2MUQzMDAzMzIyQjggLyogSW5qZWN0ZWRCdW5k
bGVCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1QThEMkM5MTg3
Q0NGQUYwMEMzOUM5RSAvKiBXS1Nlc3Npb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0VFN0RD
NjEyOEI2NDVEMDA5ODI3REEgLyogSW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNTFGQTJENzQxNTIxMkRGMTAwQzFCQTBCIC8qIEluamVjdGVkQnVuZGxlRE9NV2lu
ZG93RXh0ZW5zaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDk4NjE5MTI0RDEwRTIwMEQ4
MzRFMSAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC03MzczLDYgKzc0MDAsNyBAQAogCQkJCTFBMkQ5MjIxMTI4MURDMUIwMDFFQjk2MiAvKiBQbHVn
aW5Qcm94eU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTc1NTQyMkM0MTgwNjJCRjkwMDQ2RjZB
OCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
OEVGQTcwMTI1MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk3NUE4RDJEODE4N0QzMDQwMDBDMzlDOUUgLyogV0tTZXNzaW9u
UmVmLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3MUExOTQxMTgyNEQyOTMwMEYzMkE1RSAvKiBX
S05TRGljdGlvbmFyeS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDRDYyMjc3MTczOUQ4NjMwMDVC
RDdGRiAvKiBQbHVnaW5TYW5kYm94UHJvZmlsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDODI4
NDREMTZCNTA4MUMwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlRW50cnlQb2ludC5tbSBpbiBTb3Vy
Y2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220645</attachid>
            <date>2014-01-08 11:15:59 -0800</date>
            <delta_ts>2014-01-08 12:32:43 -0800</delta_ts>
            <desc>add reviewer</desc>
            <filename>wksessionstub.06.diff</filename>
            <type>text/plain</type>
            <size>27649</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBjYjQyZDM1Li5hM2RkNDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMTQtMDEtMDggIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IFN0dWIgZm9yIFdlYlNlc3Npb24gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjY2MjYKKworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2Vpbmln
LgorCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFNoYXJlZC9B
UEkvYy9XS1NoYXJlZEFQSUNhc3QuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblJlZi5jcHA6IEFkZGVkLgorICAgICAg
ICAoV0tTZXNzaW9uR2V0VHlwZUlEKToKKyAgICAgICAgKFdLU2Vzc2lvbkdldEVwaGVtZXJhbCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblJlZi5oOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLU2Vzc2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLU2Vzc2lvbi5tbTogQWRkZWQuCisgICAgICAgICgtW1dLU2Vz
c2lvbiBkZWFsbG9jXSk6CisgICAgICAgICgtW1dLU2Vzc2lvbiBlcGhlbWVyYWxdKToKKyAgICAg
ICAgKC1bV0tTZXNzaW9uIEFQSTo6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Nlc3Npb25JbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6d3JhcHBlcik6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlNlc3Npb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViU2Vzc2lvbjo6V2ViU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlNlc3Npb246
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlc3Npb246OmdldEVwaGVtZXJhbCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNlc3Npb246On5XZWJTZXNzaW9uKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViU2Vzc2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKIDIwMTQtMDEtMDggIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtBdXRvbWFrZV0gU2NyaXB0cyBmb3IgZ2VuZXJhdGVkIGJ1
aWxkIHRhcmdldHMgZG8gbm90IG5lY2Vzc2FyaWx5IHByb2R1Y2UgdGhlaXIgb3V0cHV0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggMTk3YWQ5Zi4uZDQxODk0YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtMTI2LDYgKzEyNiw3IEBAIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKiBXS1BsdWdpblNpdGVE
YXRhTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUHJlZmVyZW5jZXMq
IFdLUHJlZmVyZW5jZXNSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Byb3RlY3Rp
b25TcGFjZSogV0tQcm90ZWN0aW9uU3BhY2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS1RleHRDaGVja2VyKiBXS1RleHRDaGVja2VyUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tTZXNzaW9uKiBXS1Nlc3Npb25SZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS1ZpYnJhdGlvbiogV0tWaWJyYXRpb25SZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS1ZpZXdwb3J0QXR0cmlidXRlcyogV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWY7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAppbmRleCBkNGNiYjc3
Li5kOTU4ZjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFy
ZWRBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJ
Q2FzdC5oCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRl
ICJXZWJGaW5kT3B0aW9ucy5oIgogI2luY2x1ZGUgIldlYlNlY3VyaXR5T3JpZ2luLmgiCisjaW5j
bHVkZSAiV2ViU2Vzc2lvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGV4dE1lbnVJdGVtLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
TG9hZGVyVHlwZXMuaD4KQEAgLTExMyw2ICsxMTQsNyBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tV
UkxSZWYsIEFQSTo6VVJMKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVVJMUmVxdWVzdFJlZiwgQVBJ
OjpVUkxSZXF1ZXN0KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVVJMUmVzcG9uc2VSZWYsIEFQSTo6
VVJMUmVzcG9uc2UpCiBXS19BRERfQVBJX01BUFBJTkcoV0tVc2VyQ29udGVudFVSTFBhdHRlcm5S
ZWYsIFdlYlVzZXJDb250ZW50VVJMUGF0dGVybikKK1dLX0FERF9BUElfTUFQUElORyhXS1Nlc3Np
b25SZWYsIFdlYlNlc3Npb24pCiAKIHRlbXBsYXRlPD4gc3RydWN0IEFQSVR5cGVJbmZvPFdLTXV0
YWJsZUFycmF5UmVmPiB7IHR5cGVkZWYgQVBJOjpBcnJheSogSW1wbFR5cGU7IH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUElPYmplY3QuaAppbmRleCAwMDRlYjBjLi4wZGEwNDY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSU9iamVjdC5oCkBAIC0xMjksNiArMTI5LDcgQEAgcHVibGljOgogICAgICAgICBQYWdl
R3JvdXAsCiAgICAgICAgIFBsdWdpblNpdGVEYXRhTWFuYWdlciwKICAgICAgICAgUHJlZmVyZW5j
ZXMsCisgICAgICAgIFNlc3Npb24sCiAgICAgICAgIFRleHRDaGVja2VyLAogICAgICAgICBWaWJy
YXRpb24sCiAgICAgICAgIFZpZXdwb3J0QXR0cmlidXRlcywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblJlZi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZTgxZTZkYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tTZXNzaW9uUmVmLmgiCisKKyNp
bmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJTZXNzaW9uLmgiCisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLU2Vzc2lvbkdldFR5cGVJRCgpCit7CisgICAg
cmV0dXJuIHRvQVBJKFdlYlNlc3Npb246OkFQSVR5cGUpOworfQorCitib29sIFdLU2Vzc2lvbkdl
dEVwaGVtZXJhbChXS1Nlc3Npb25SZWYgc2Vzc2lvblJlZikKK3sKKyAgICByZXR1cm4gdG9BUEko
dG9JbXBsKHNlc3Npb25SZWYpLT5pc0VwaGVtZXJhbCgpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5mYzBiNWU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLU2Vzc2lvblJlZi5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdLU2Vzc2lvblJlZl9oCisjZGVmaW5lIFdLU2Vzc2lvblJlZl9oCisKKyNpbmNs
dWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIg
eworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS1Nlc3Npb25HZXRUeXBlSUQoKTsKKwor
V0tfRVhQT1JUIGJvb2wgV0tTZXNzaW9uR2V0RXBoZW1lcmFsKFdLU2Vzc2lvblJlZiBzZXNzaW9u
KTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdLU2Vzc2lv
blJlZl9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Np
b24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NDk5YTkyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Npb24u
aApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViS2l0Mi9XS0ZvdW5k
YXRpb24uaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91
bmRhdGlvbi5oPgorCitXS19BUElfQ0xBU1MKK0BpbnRlcmZhY2UgV0tTZXNzaW9uIDogTlNPYmpl
Y3QKKworQHByb3BlcnR5IChyZWFkb25seSkgYm9vbCBlcGhlbWVyYWw7CisKK0BlbmQKKworI2Vu
ZGlmIC8vIFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLU2Vzc2lvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tTZXNzaW9uLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUy
MDE2NTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLU2Vzc2lvbi5tbQpAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
Y29uZmlnLmgiCisjaW1wb3J0ICJXS1Nlc3Npb25JbnRlcm5hbC5oIgorCisjaWYgV0tfQVBJX0VO
QUJMRUQKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworQGltcGxlbWVudGF0aW9uIFdLU2Vz
c2lvbiB7CisgICAgQVBJOjpPYmplY3RTdG9yYWdlPFdlYlNlc3Npb24+IF9zZXNzaW9uOworfQor
CistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBfc2Vzc2lvbi0+fldlYlNlc3Npb24oKTsKKworICAg
IFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAoYm9vbCllcGhlbWVyYWwKK3sKKyAgICByZXR1cm4g
X3Nlc3Npb24tPmlzRXBoZW1lcmFsKCk7Cit9CisKKyNwcmFnbWEgbWFyayBXS09iamVjdCBwcm90
b2NvbCBpbXBsZW1lbnRhdGlvbgorCistIChBUEk6Ok9iamVjdCYpX2FwaU9iamVjdAoreworICAg
IHJldHVybiAqX3Nlc3Npb247Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVE
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2Vzc2lv
bkludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2Vzc2lv
bkludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2RiZjQyZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tT
ZXNzaW9uSW50ZXJuYWwuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
V0tTZXNzaW9uLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0ICJXS09iamVjdC5o
IgorI2ltcG9ydCAiV2ViU2Vzc2lvbi5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworaW5saW5l
IFdLU2Vzc2lvbiAqd3JhcHBlcihXZWJTZXNzaW9uJiBzZXNzaW9uKQoreworICAgIEFTU0VSVChb
c2Vzc2lvbi53cmFwcGVyKCkgaXNLaW5kT2ZDbGFzczpbV0tTZXNzaW9uIGNsYXNzXV0pOworICAg
IHJldHVybiAoV0tTZXNzaW9uICopc2Vzc2lvbi53cmFwcGVyKCk7Cit9CisKK30KKworQGludGVy
ZmFjZSBXS1Nlc3Npb24gKCkgPFdLT2JqZWN0PgorQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VO
QUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJTZXNzaW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJTZXNzaW9uLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzcxYmM1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlNlc3Npb24uY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU2Vzc2lvbi5oIgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworV2ViU2Vzc2lvbjo6V2ViU2Vzc2lvbihib29sIGlzRXBoZW1l
cmFsKQorICAgIDogbV9pc0VwaGVtZXJhbChpc0VwaGVtZXJhbCkKK3sKK30KKworUGFzc1JlZlB0
cjxXZWJTZXNzaW9uPiBXZWJTZXNzaW9uOjpjcmVhdGUoYm9vbCBpc0VwaGVtZXJhbCkKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlNlc3Npb24oaXNFcGhlbWVyYWwpKTsKK30KKworYm9v
bCBXZWJTZXNzaW9uOjppc0VwaGVtZXJhbCgpCit7CisgICAgcmV0dXJuIG1faXNFcGhlbWVyYWw7
Cit9CisKK1dlYlNlc3Npb246On5XZWJTZXNzaW9uKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViU2Vzc2lvbi5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlNlc3Npb24uaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi44ZmFhODA0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlNlc3Npb24uaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXZWJTZXNzaW9uX2gKKyNkZWZpbmUgV2ViU2Vzc2lvbl9oCisKKyNpbmNsdWRl
ICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgV2ViU2Vzc2lvbiA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJ
OjpPYmplY3Q6OlR5cGU6OlNlc3Npb24+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxXZWJTZXNzaW9uPiBjcmVhdGUoYm9vbCBpc0VwaGVtZXJhbCk7CisgICAgYm9vbCBpc0VwaGVt
ZXJhbCgpOworICAgIHZpcnR1YWwgfldlYlNlc3Npb24oKTsKKworcHJpdmF0ZToKKyAgICBleHBs
aWNpdCBXZWJTZXNzaW9uKGJvb2wgaXNFcGhlbWVyYWwpOworICAgIGJvb2wgbV9pc0VwaGVtZXJh
bDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViU2Vzc2lvbl9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggYmE0ZDcxNy4uOGVmMTBhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzU4LDYgKzc1OCwxMyBAQAogCQk3NTlDQ0Q1
ODE4MDhGMTY0MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTlD
Q0Q1NDE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNs
aWVudC5jcHAgKi87IH07CiAJCTc1OUNDRDU5MTgwOEYxNjkwMDc4RThBOCAvKiBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3NTlDQ0Q1NTE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oICovOyB9OwogCQk3NTlDQ0Q1QTE4MDhGNjE2
MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQkYxODA2MkJFNDAwNDZGNkE4IC8q
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCAqLzsgfTsKKwkJNzVBOEQyQzgxODdDQ0ZBQjAw
QzM5QzlFIC8qIFdLU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzVBOEQyQzQxODdDQ0Y5RjAwQzM5QzlFIC8qIFdLU2Vzc2lvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTc1QThEMkM5MTg3
Q0NGQUYwMEMzOUM5RSAvKiBXS1Nlc3Npb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3NUE4RDJDNTE4N0NDRjlGMDBDMzlDOUUgLyogV0tTZXNzaW9u
Lm1tICovOyB9OworCQk3NUE4RDJDRTE4N0QwQTcwMDBDMzlDOUUgLyogV2ViU2Vzc2lvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyQ0IxODdD
RkMwQjAwQzM5QzlFIC8qIFdlYlNlc3Npb24uaCAqLzsgfTsKKwkJNzVBOEQyQ0YxODdEMEE3MzAw
QzM5QzlFIC8qIFdlYlNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzVBOEQyQ0ExODdDRkMwQjAwQzM5QzlFIC8qIFdlYlNlc3Npb24uY3Bw
ICovOyB9OworCQk3NUE4RDJENjE4N0QxQzBFMDBDMzlDOUUgLyogV0tTZXNzaW9uSW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1QThEMkQ0
MTg3RDFDMDEwMEMzOUM5RSAvKiBXS1Nlc3Npb25JbnRlcm5hbC5oICovOyB9OworCQk3NUE4RDJE
NzE4N0QzMDNBMDBDMzlDOUUgLyogV0tTZXNzaW9uUmVmLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUE4RDJEMTE4N0QxN0JGMDBDMzlDOUUgLyogV0tT
ZXNzaW9uUmVmLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJNzVBOEQyRDgxODdEMzA0MDAwQzM5QzlFIC8qIFdLU2Vzc2lvblJlZi5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUE4RDJEMDE4N0QxN0JG
MDBDMzlDOUUgLyogV0tTZXNzaW9uUmVmLmNwcCAqLzsgfTsKIAkJNzVFNzQ5RTkxODBEQkI5ODAw
MDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RTc0OUU1MTgwREJCOTgw
MDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07
CiAJCTc1RTc0OUVBMTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUU3
NDlFNjE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oICov
OyB9OwogCQk3NUU3NDlFQjE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NUU3NDlFNzE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC0yMzkzLDYgKzI0MDAsMTMg
QEAKIAkJNzU1NDIyQzgxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyLm1l
c3NhZ2VzLmluOyBwYXRoID0gT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdl
cy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU5Q0NENTQxODA4RjE2MDAwNzhF
OEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNo
YW5nZUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1OUNDRDU1MTgw
OEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHlDaGFuZ2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVBOEQyQzQx
ODdDQ0Y5RjAwQzM5QzlFIC8qIFdLU2Vzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS1Nlc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVBOEQy
QzUxODdDQ0Y5RjAwQzM5QzlFIC8qIFdLU2Vzc2lvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdLU2Vzc2lvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNzVBOEQyQ0ExODdDRkMwQjAwQzM5QzlFIC8qIFdlYlNlc3Npb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU2Vzc2lvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTc1QThEMkNCMTg3Q0ZDMEIwMEMzOUM5RSAvKiBXZWJTZXNzaW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNlc3Npb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVBOEQyRDAxODdEMTdCRjAwQzM5QzlFIC8qIFdLU2Vz
c2lvblJlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1Nlc3Np
b25SZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUE4RDJEMTE4N0QxN0JG
MDBDMzlDOUUgLyogV0tTZXNzaW9uUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLU2Vzc2lvblJlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUE4RDJE
NDE4N0QxQzAxMDBDMzlDOUUgLyogV0tTZXNzaW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tTZXNzaW9uSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzVFNzQ5RTUxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzVFNzQ5RTYxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
T3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3NUU3NDlFNzE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTM5ODgsNiArNDAwMiw5IEBACiAJCQkJQkNCQUFDRTYxNDUyMjVD
QTAwNTNGODJGIC8qIFdLUHJvY2Vzc0dyb3VwLm1tICovLAogCQkJCTdDMUZCM0JGMTg0NkFFRkMw
MDFBMDNEOCAvKiBXS1Byb2Nlc3NHcm91cEludGVybmFsLmggKi8sCiAJCQkJQkNCQUFDRTcxNDUy
MjVDQjAwNTNGODJGIC8qIFdLUHJvY2Vzc0dyb3VwUHJpdmF0ZS5oICovLAorCQkJCTc1QThEMkM0
MTg3Q0NGOUYwMEMzOUM5RSAvKiBXS1Nlc3Npb24uaCAqLywKKwkJCQk3NUE4RDJDNTE4N0NDRjlG
MDBDMzlDOUUgLyogV0tTZXNzaW9uLm1tICovLAorCQkJCTc1QThEMkQ0MTg3RDFDMDEwMEMzOUM5
RSAvKiBXS1Nlc3Npb25JbnRlcm5hbC5oICovLAogCQkJCTdDRDVFQkJEMTc0NkIwNEMwMDBDMUM0
NSAvKiBXS1R5cGVSZWZXcmFwcGVyLmggKi8sCiAJCQkJN0NENUVCQkMxNzQ2QjA0QzAwMEMxQzQ1
IC8qIFdLVHlwZVJlZldyYXBwZXIubW0gKi8sCiAJCQkJQkM4Njk5QjIxMTZBQURBQTAwMkE5MjVC
IC8qIFdLVmlldy5oICovLApAQCAtNDcxNiw4ICs0NzMzLDggQEAKIAkJCQkzM0QzQTNCOTEzMzk2
MDYyMDA3MDlCRTQgLyogV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywK
IAkJCQlCQzFERkVBMzEyQjMxRjg3MDA1REY3MzAgLyogV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXJQcm94eS5jcHAgKi8sCiAJCQkJQkMxREZFQTIxMkIzMUY4NzAwNURGNzMwIC8qIFdlYk9wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyUHJveHkuaCAqLywKLQkJCQk3NTU0MjJCRTE4MDYyQkU0MDA0NkY2
QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAgKi8sCiAJCQkJNzU1NDIyQkYxODA2
MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCAqLywKKwkJCQk3NTU0
MjJCRTE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAgKi8s
CiAJCQkJNzU1NDIyQzAxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJNzU5Q0NENTQxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwICovLAogCQkJCTc1OUNDRDU1MTgw
OEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50Lmgg
Ki8sCkBAIC00NzM5LDYgKzQ3NTYsOCBAQAogCQkJCTMzMzY3NjMyMTMwQzk5QjIwMDZDOURFMiAv
KiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcCAqLywKIAkJCQkzMzM2NzYzMzEzMEM5
OUIyMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oICovLAogCQkJCTMz
MzY3NjM0MTMwQzk5QjIwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluICovLAorCQkJCTc1QThEMkNBMTg3Q0ZDMEIwMEMzOUM5RSAvKiBXZWJTZXNzaW9u
LmNwcCAqLywKKwkJCQk3NUE4RDJDQjE4N0NGQzBCMDBDMzlDOUUgLyogV2ViU2Vzc2lvbi5oICov
LAogCQkJCTFBNTk0QUI4MTEyQTFGQjYwMDlERTdDNyAvKiBXZWJVSUNsaWVudC5jcHAgKi8sCiAJ
CQkJMUE1OTRBQjkxMTJBMUZCNjAwOURFN0M3IC8qIFdlYlVJQ2xpZW50LmggKi8sCiAJCQkpOwpA
QCAtNDg1NCw2ICs0ODczLDggQEAKIAkJCQk1MThBQ0FFOTEyQUVFNkJCMDBCMDRCODMgLyogV0tQ
cm90ZWN0aW9uU3BhY2VUeXBlcy5oICovLAogCQkJCTMzMzY3NjM4MTMwQzk5REMwMDZDOURFMiAv
KiBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcCAqLywKIAkJCQkzMzM2NzYzOTEzMEM5OURDMDA2
QzlERTIgLyogV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5oICovLAorCQkJCTc1QThEMkQwMTg3RDE3
QkYwMEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYuY3BwICovLAorCQkJCTc1QThEMkQxMTg3RDE3QkYw
MEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gQzsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC02MDc0LDYgKzYwOTUsNyBAQAogCQkJCTUxOEQyQ0FF
MTJENTE1M0IwMDNCQjkzQiAvKiBXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzcyQjlGQjExRTY0NzZCMDAxRUI0RUEgLyogV2ViQmFja0ZvcndhcmRMaXN0UHJv
eHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3RkMxOTRCMTg1MTBENkEwMDhDRkE0NyAvKiBXS05T
VVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1QThEMkM4
MTg3Q0NGQUIwMEMzOUM5RSAvKiBXS1Nlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRjUw
NzI4MTI0MzI5QUEwMDU5NTVBRSAvKiBXZWJDZXJ0aWZpY2F0ZUluZm8uaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMDMyRDc1MTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDaHJvbWVDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxNUU3NzM0MTg0MDJENTEwMDA3MjAzRiAvKiBVbmlxdWVJREJEYXRh
YmFzZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLApAQCAtNjEzNiw2ICs2MTU4LDcgQEAKIAkJ
CQkxQTkwQzFFRTEyNjRGRDUwMDAzRTQ0RDQgLyogV2ViRmluZE9wdGlvbnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDRTQ2OTU0MTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQ0U0Njk1NjEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybVN1Ym1p
c3Npb25MaXN0ZW5lclByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NUE4RDJENzE4N0QzMDNB
MDBDMzlDOUUgLyogV0tTZXNzaW9uUmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkQ4RDEw
RjQzN0EwMDA1OEMxNUEgLyogV2ViRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTQ2OTc3
MTIxNEYyN0IwMDBCOThFQiAvKiBXZWJGcmFtZUxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMDMyRDdGMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCkBAIC02MjIyLDYgKzYyNDUsNyBAQAogCQkJCTFBQzEzMzgwMTg1OTBB
RTQwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMzMDY2QkYxMjVBNDQyMTAwRTcxMjc4IC8qIFdlYlByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMwMzJERDUxMEY0Mzg5RjAwNThDMTVBIC8qIFdlYlByb2Nlc3NQcm94eS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNzVBOEQyRDYxODdEMUMwRTAwQzM5QzlFIC8qIFdLU2Vzc2lv
bkludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTAzMkYxOTE4MEY3M0JCMDA5NjFCQjcg
LyogV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0VFN0FEMTEyODE3OTg4MDA5ODI3REEgLyogV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDRTBFNDI1MTY4QjdBMjgwMDU3RTY2QSAvKiBXZWJQcm9jZXNzU3Vw
cGxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC02MzE5LDYgKzYzNDMsNyBAQAogCQkJCTUxOEFD
RjExMTJCMDE1RjgwMEIwNEI4MyAvKiBXS0NyZWRlbnRpYWxUeXBlcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkM0MDc1RjgxMjRGRjAyNzAwNjhGMjBBIC8qIFdLRGF0YS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRjYyQTc2NjIxMkIxQUJFRDAwMDVGMUI2IC8qIFdLRGF0YWJhc2VNYW5hZ2VyLmggaW4g
SGVhZGVycyAqLywKKwkJCQk3NUE4RDJDRTE4N0QwQTcwMDBDMzlDOUUgLyogV2ViU2Vzc2lvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc1RkExMjRGRjAyNzAwNjhGMjBBIC8qIFdLRGljdGlv
bmFyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMTdEMDcxNjI2MEZGNDAwNzA1NEY1IC8qIFdL
RE9NRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDE3RDA5MTYyNjBGRjQwMDcwNTRG
NSAvKiBXS0RPTUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtNzIzOCw5ICs3MjYzLDExIEBA
CiAJCQkJQkM2NDY5NkYxMURCRTYwMzAwNjQ1NUIwIC8qIEFQSUFycmF5LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDQkNCMENEMTIxNUUzM0EwMERFNTlDQSAvKiBJbW11dGFibGVEaWN0aW9uYXJ5
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMjA0RUUyMTFDODNFOTgwMDhGMzM3NSAvKiBJbmpl
Y3RlZEJ1bmRsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NUE4RDJDRjE4N0QwQTczMDBDMzlD
OUUgLyogV2ViU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzN0M0QzA5MzE4MTRCM0FG
MDAzNjg4QjkgLyogV0tOU0FycmF5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM1RUVCQTExMjc3
NjFDQzAwMzMyMkI4IC8qIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzNUVFQkEzMTI3NzYxRDMwMDMzMjJCOCAvKiBJbmplY3RlZEJ1bmRsZUJh
Y2tGb3J3YXJkTGlzdEl0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzVBOEQyQzkxODdDQ0ZB
RjAwQzM5QzlFIC8qIFdLU2Vzc2lvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDRUU3REM2MTI4
QjY0NUQwMDk4MjdEQSAvKiBJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MUZBMkQ3NDE1MjEyREYxMDBDMUJBMEIgLyogSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dF
eHRlbnNpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0OTg2MTkxMjREMTBFMjAwRDgzNEUx
IC8qIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTcz
NzMsNiArNzQwMCw3IEBACiAJCQkJMUEyRDkyMjExMjgxREMxQjAwMUVCOTYyIC8qIFBsdWdpblBy
b3h5TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU1NDIyQzQxODA2MkJGOTAwNDZGNkE4IC8q
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE4RUZB
NzAxMjUyQjg0MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTc1QThEMkQ4MTg3RDMwNDAwMEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzcxQTE5NDExODI0RDI5MzAwRjMyQTVFIC8qIFdLTlNE
aWN0aW9uYXJ5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NENjIyNzcxNzM5RDg2MzAwNUJEN0ZG
IC8qIFBsdWdpblNhbmRib3hQcm9maWxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4Mjg0NEQx
NkI1MDgxQzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tIGluIFNvdXJjZXMg
Ki8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220652</attachid>
            <date>2014-01-08 12:32:43 -0800</date>
            <delta_ts>2014-01-08 12:34:10 -0800</delta_ts>
            <desc>move Session to API namespace</desc>
            <filename>wksessionstub.07.diff</filename>
            <type>text/plain</type>
            <size>27729</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBjYjQyZDM1Li5jMWUxMWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMTQtMDEtMDggIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IFN0dWIgZm9yIFNlc3Npb24gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjY2MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAgICAgKiBTaGFyZWQv
QVBJL2MvV0tTaGFyZWRBUElDYXN0Lmg6CisgICAgICAgICogU2hhcmVkL0FQSU9iamVjdC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdLU2Vzc2lvbkdldFR5cGVJRCk6CisgICAgICAgIChXS1Nlc3Npb25HZXRFcGhlbWVyYWwp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuaDogQWRkZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Npb24uaDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Npb24ubW06IEFkZGVkLgorICAgICAgICAoLVtXS1Nl
c3Npb24gZGVhbGxvY10pOgorICAgICAgICAoLVtXS1Nlc3Npb24gZXBoZW1lcmFsXSk6CisgICAg
ICAgICgtW1dLU2Vzc2lvbiBBUEk6Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tTZXNzaW9uSW50ZXJuYWwuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OndyYXBwZXIpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUElTZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChBUEk6
OlNlc3Npb246OlNlc3Npb24pOgorICAgICAgICAoQVBJOjpTZXNzaW9uOjpjcmVhdGUpOgorICAg
ICAgICAoQVBJOjpTZXNzaW9uOjppc0VwaGVtZXJhbCk6CisgICAgICAgIChBUEk6OlNlc3Npb246
On5TZXNzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJU2Vzc2lvbi5oOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTQtMDEtMDgg
IFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtBdXRvbWFr
ZV0gU2NyaXB0cyBmb3IgZ2VuZXJhdGVkIGJ1aWxkIHRhcmdldHMgZG8gbm90IG5lY2Vzc2FyaWx5
IHByb2R1Y2UgdGhlaXIgb3V0cHV0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5k
ZXggMTk3YWQ5Zi4uZDQxODk0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApA
QCAtMTI2LDYgKzEyNiw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUGx1Z2luU2l0
ZURhdGFNYW5hZ2VyKiBXS1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qg
c3RydWN0IE9wYXF1ZVdLUHJlZmVyZW5jZXMqIFdLUHJlZmVyZW5jZXNSZWY7CiB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS1Byb3RlY3Rpb25TcGFjZSogV0tQcm90ZWN0aW9uU3BhY2VSZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1RleHRDaGVja2VyKiBXS1RleHRDaGVja2Vy
UmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tTZXNzaW9uKiBXS1Nlc3Npb25SZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ZpYnJhdGlvbiogV0tWaWJyYXRpb25SZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ZpZXdwb3J0QXR0cmlidXRlcyogV0tWaWV3
cG9ydEF0dHJpYnV0ZXNSZWY7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS1NoYXJlZEFQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1No
YXJlZEFQSUNhc3QuaAppbmRleCBkNGNiYjc3Li44NDM5ZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlICJBUElFcnJvci5oIgogI2luY2x1ZGUgIkFQSU51bWJlci5oIgorI2luY2x1ZGUgIkFQ
SVNlc3Npb24uaCIKICNpbmNsdWRlICJBUElTdHJpbmcuaCIKICNpbmNsdWRlICJBUElVUkwuaCIK
ICNpbmNsdWRlICJBUElVUkxSZXF1ZXN0LmgiCkBAIC0xMTMsNiArMTE0LDcgQEAgV0tfQUREX0FQ
SV9NQVBQSU5HKFdLVVJMUmVmLCBBUEk6OlVSTCkKIFdLX0FERF9BUElfTUFQUElORyhXS1VSTFJl
cXVlc3RSZWYsIEFQSTo6VVJMUmVxdWVzdCkKIFdLX0FERF9BUElfTUFQUElORyhXS1VSTFJlc3Bv
bnNlUmVmLCBBUEk6OlVSTFJlc3BvbnNlKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVXNlckNvbnRl
bnRVUkxQYXR0ZXJuUmVmLCBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4pCitXS19BRERfQVBJX01B
UFBJTkcoV0tTZXNzaW9uUmVmLCBBUEk6OlNlc3Npb24pCiAKIHRlbXBsYXRlPD4gc3RydWN0IEFQ
SVR5cGVJbmZvPFdLTXV0YWJsZUFycmF5UmVmPiB7IHR5cGVkZWYgQVBJOjpBcnJheSogSW1wbFR5
cGU7IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAppbmRleCAwMDRlYjBjLi4wZGEwNDY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCkBAIC0xMjksNiArMTI5LDcgQEAgcHVibGlj
OgogICAgICAgICBQYWdlR3JvdXAsCiAgICAgICAgIFBsdWdpblNpdGVEYXRhTWFuYWdlciwKICAg
ICAgICAgUHJlZmVyZW5jZXMsCisgICAgICAgIFNlc3Npb24sCiAgICAgICAgIFRleHRDaGVja2Vy
LAogICAgICAgICBWaWJyYXRpb24sCiAgICAgICAgIFZpZXdwb3J0QXR0cmlidXRlcywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblJlZi5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2RhMGY3NQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuY3BwCkBAIC0wLDAgKzEs
NDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tTZXNz
aW9uUmVmLmgiCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJBUElTZXNzaW9u
LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLU2Vzc2lvbkdldFR5
cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKEFQSTo6U2Vzc2lvbjo6QVBJVHlwZSk7Cit9CisK
K2Jvb2wgV0tTZXNzaW9uR2V0RXBoZW1lcmFsKFdLU2Vzc2lvblJlZiBzZXNzaW9uUmVmKQorewor
ICAgIHJldHVybiB0b0FQSSh0b0ltcGwoc2Vzc2lvblJlZiktPmlzRXBoZW1lcmFsKCkpOworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblJlZi5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblJlZi5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjMGI1ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tTZXNzaW9uUmVmLmgKQEAgLTAsMCArMSw0
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tTZXNzaW9uUmVmX2gKKyNkZWZpbmUgV0tTZXNz
aW9uUmVmX2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVz
cGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLU2Vzc2lv
bkdldFR5cGVJRCgpOworCitXS19FWFBPUlQgYm9vbCBXS1Nlc3Npb25HZXRFcGhlbWVyYWwoV0tT
ZXNzaW9uUmVmIHNlc3Npb24pOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisj
ZW5kaWYgLyogV0tTZXNzaW9uUmVmX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLU2Vzc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjY0OTlhOTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLU2Vzc2lvbi5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
IDxXZWJLaXQyL1dLRm91bmRhdGlvbi5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9y
dCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKK1dLX0FQSV9DTEFTUworQGludGVyZmFjZSBX
S1Nlc3Npb24gOiBOU09iamVjdAorCitAcHJvcGVydHkgKHJlYWRvbmx5KSBib29sIGVwaGVtZXJh
bDsKKworQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTZXNzaW9uLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Npb24ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZjNiMTYxNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTZXNzaW9uLm1tCkBAIC0wLDAgKzEsNTggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLU2Vzc2lvbkludGVybmFsLmgi
CisKKyNpZiBXS19BUElfRU5BQkxFRAorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitAaW1w
bGVtZW50YXRpb24gV0tTZXNzaW9uIHsKKyAgICBBUEk6Ok9iamVjdFN0b3JhZ2U8QVBJOjpTZXNz
aW9uPiBfc2Vzc2lvbjsKK30KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgX3Nlc3Npb24tPkFQ
STo6U2Vzc2lvbjo6flNlc3Npb24oKTsKKworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAo
Ym9vbCllcGhlbWVyYWwKK3sKKyAgICByZXR1cm4gX3Nlc3Npb24tPmlzRXBoZW1lcmFsKCk7Cit9
CisKKyNwcmFnbWEgbWFyayBXS09iamVjdCBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbgorCistIChB
UEk6Ok9iamVjdCYpX2FwaU9iamVjdAoreworICAgIHJldHVybiAqX3Nlc3Npb247Cit9CisKK0Bl
bmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2Vzc2lvbkludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2Vzc2lvbkludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNjE3YWUwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTZXNzaW9uSW50ZXJuYWwuaApAQCAtMCwwICsx
LDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiV0tTZXNzaW9uLmgiCisKKyNpZiBXS19BUElf
RU5BQkxFRAorCisjaW1wb3J0ICJXS09iamVjdC5oIgorI2ltcG9ydCAiQVBJU2Vzc2lvbi5oIgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworaW5saW5lIFdLU2Vzc2lvbiAqd3JhcHBlcihBUEk6OlNl
c3Npb24mIHNlc3Npb24pCit7CisgICAgQVNTRVJUKFtzZXNzaW9uLndyYXBwZXIoKSBpc0tpbmRP
ZkNsYXNzOltXS1Nlc3Npb24gY2xhc3NdXSk7CisgICAgcmV0dXJuIChXS1Nlc3Npb24gKilzZXNz
aW9uLndyYXBwZXIoKTsKK30KKworfQorCitAaW50ZXJmYWNlIFdLU2Vzc2lvbiAoKSA8V0tPYmpl
Y3Q+CitAZW5kCisKKyNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSVNlc3Npb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQy
MzEyYmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vz
c2lvbi5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJBUElTZXNzaW9uLmgiCisKK25hbWVzcGFjZSBBUEkgeworCitTZXNzaW9u
OjpTZXNzaW9uKGJvb2wgaXNFcGhlbWVyYWwpCisgICAgOiBtX2lzRXBoZW1lcmFsKGlzRXBoZW1l
cmFsKQoreworfQorCitQYXNzUmVmUHRyPFNlc3Npb24+IFNlc3Npb246OmNyZWF0ZShib29sIGlz
RXBoZW1lcmFsKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2Vzc2lvbihpc0VwaGVtZXJh
bCkpOworfQorCitib29sIFNlc3Npb246OmlzRXBoZW1lcmFsKCkKK3sKKyAgICByZXR1cm4gbV9p
c0VwaGVtZXJhbDsKK30KKworU2Vzc2lvbjo6flNlc3Npb24oKQoreworfQorCit9IC8vIG5hbWVz
cGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9u
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmYjVmNjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIEFQSVNlc3Npb25faAorI2RlZmluZSBBUElTZXNzaW9uX2gKKworI2luY2x1
ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFj
ZSBBUEkgeworCitjbGFzcyBTZXNzaW9uIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9i
amVjdDo6VHlwZTo6U2Vzc2lvbj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNl
c3Npb24+IGNyZWF0ZShib29sIGlzRXBoZW1lcmFsKTsKKyAgICBib29sIGlzRXBoZW1lcmFsKCk7
CisgICAgdmlydHVhbCB+U2Vzc2lvbigpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFNlc3Np
b24oYm9vbCBpc0VwaGVtZXJhbCk7CisgICAgYm9vbCBtX2lzRXBoZW1lcmFsOworfTsKKworfSAv
LyBuYW1lc3BhY2UgQVBJCisKKyNlbmRpZiAvLyBBUElTZXNzaW9uX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiYTRkNzE3Li45
YzBkZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC03NTgsNiArNzU4LDEzIEBACiAJCTc1OUNDRDU4MTgwOEYxNjQwMDc4RThB
OCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1OUNDRDU0MTgwOEYxNjAwMDc4
RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCAqLzsgfTsK
IAkJNzU5Q0NENTkxODA4RjE2OTAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlD
aGFuZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc1OUNDRDU1MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
Q2hhbmdlQ2xpZW50LmggKi87IH07CiAJCTc1OUNDRDVBMTgwOEY2MTYwMDc4RThBOCAvKiBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NTU0MjJCRjE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eS5oICovOyB9OworCQk3NUE4RDJDODE4N0NDRkFCMDBDMzlDOUUgLyogV0tTZXNz
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUE4
RDJDNDE4N0NDRjlGMDBDMzlDOUUgLyogV0tTZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzVBOEQyQzkxODdDQ0ZBRjAwQzM5QzlFIC8q
IFdLU2Vzc2lvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc1QThEMkM1MTg3Q0NGOUYwMEMzOUM5RSAvKiBXS1Nlc3Npb24ubW0gKi87IH07CisJCTc1
QThEMkQ2MTg3RDFDMEUwMEMzOUM5RSAvKiBXS1Nlc3Npb25JbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyRDQxODdEMUMwMTAwQzM5
QzlFIC8qIFdLU2Vzc2lvbkludGVybmFsLmggKi87IH07CisJCTc1QThEMkQ3MTg3RDMwM0EwMEMz
OUM5RSAvKiBXS1Nlc3Npb25SZWYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDc1QThEMkQxMTg3RDE3QkYwMEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3NUE4RDJE
ODE4N0QzMDQwMDBDMzlDOUUgLyogV0tTZXNzaW9uUmVmLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1QThEMkQwMTg3RDE3QkYwMEMzOUM5RSAvKiBX
S1Nlc3Npb25SZWYuY3BwICovOyB9OworCQk3NUE4RDJFMTE4N0RFQzFBMDBDMzlDOUUgLyogQVBJ
U2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzVBOEQyREUxODdERTg3NDAwQzM5QzlFIC8qIEFQSVNlc3Npb24uaCAqLzsgfTsKKwkJNzVBOEQy
RTIxODdERUMxRTAwQzM5QzlFIC8qIEFQSVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyREQxODdERTg3NDAwQzM5QzlFIC8qIEFQ
SVNlc3Npb24uY3BwICovOyB9OwogCQk3NUU3NDlFOTE4MERCQjk4MDAwODhCQTYgLyogV2ViT3Jp
Z2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVFNzQ5RTUxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNzVFNzQ5RUExODBE
QkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RTc0OUU2MTgwREJCOTgwMDA4
OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CiAJCTc1RTc0OUVC
MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1
RTc0OUU3MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKQEAgLTIzOTMsNiArMjQwMCwxMyBAQAogCQk3NTU0MjJDODE4
MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBuYW1lID0gV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW47IHBhdGgg
PSBPcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3NTlDQ0Q1NDE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU5Q0NENTUxODA4RjE2MDAwNzhFOEE4IC8q
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUE4RDJDNDE4N0NDRjlGMDBDMzlDOUUg
LyogV0tTZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLU2Vzc2lv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUE4RDJDNTE4N0NDRjlGMDBDMzlD
OUUgLyogV0tTZXNzaW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV0tTZXNzaW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUE4RDJEMDE4
N0QxN0JGMDBDMzlDOUUgLyogV0tTZXNzaW9uUmVmLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdLU2Vzc2lvblJlZi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTc1QThEMkQxMTg3RDE3QkYwMEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTZXNzaW9uUmVmLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTc1QThEMkQ0MTg3RDFDMDEwMEMzOUM5RSAvKiBXS1Nlc3Npb25JbnRl
cm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1Nlc3Npb25JbnRlcm5h
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUE4RDJERDE4N0RFODc0MDBDMzlD
OUUgLyogQVBJU2Vzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBBUElTZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVBOEQyREUx
ODdERTg3NDAwQzM5QzlFIC8qIEFQSVNlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQVBJU2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NUU3
NDlFNTE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViT3JpZ2luRGF0
YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3NUU3NDlFNjE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdl
ck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1RTc0OUU3MTgwREJC
OTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMzk4OCw2ICs0MDAyLDkgQEAKIAkJCQlCQ0JBQUNFNjE0NTIyNUNBMDA1M0Y4MkYgLyogV0tQ
cm9jZXNzR3JvdXAubW0gKi8sCiAJCQkJN0MxRkIzQkYxODQ2QUVGQzAwMUEwM0Q4IC8qIFdLUHJv
Y2Vzc0dyb3VwSW50ZXJuYWwuaCAqLywKIAkJCQlCQ0JBQUNFNzE0NTIyNUNCMDA1M0Y4MkYgLyog
V0tQcm9jZXNzR3JvdXBQcml2YXRlLmggKi8sCisJCQkJNzVBOEQyQzQxODdDQ0Y5RjAwQzM5QzlF
IC8qIFdLU2Vzc2lvbi5oICovLAorCQkJCTc1QThEMkM1MTg3Q0NGOUYwMEMzOUM5RSAvKiBXS1Nl
c3Npb24ubW0gKi8sCisJCQkJNzVBOEQyRDQxODdEMUMwMTAwQzM5QzlFIC8qIFdLU2Vzc2lvbklu
dGVybmFsLmggKi8sCiAJCQkJN0NENUVCQkQxNzQ2QjA0QzAwMEMxQzQ1IC8qIFdLVHlwZVJlZldy
YXBwZXIuaCAqLywKIAkJCQk3Q0Q1RUJCQzE3NDZCMDRDMDAwQzFDNDUgLyogV0tUeXBlUmVmV3Jh
cHBlci5tbSAqLywKIAkJCQlCQzg2OTlCMjExNkFBREFBMDAyQTkyNUIgLyogV0tWaWV3LmggKi8s
CkBAIC00NjEzLDYgKzQ2MzAsOCBAQAogCQkJCTFBNDRCOTU4MTZCNzNGOEMwMEI3QkJEOCAvKiBT
dG9yYWdlICovLAogCQkJCUJDRjY5RkExMTE3NkQwMTQwMDQ3MUE1MiAvKiBBUElOYXZpZ2F0aW9u
RGF0YS5jcHAgKi8sCiAJCQkJQkNGNjlGQTAxMTc2RDAxNDAwNDcxQTUyIC8qIEFQSU5hdmlnYXRp
b25EYXRhLmggKi8sCisJCQkJNzVBOEQyREQxODdERTg3NDAwQzM5QzlFIC8qIEFQSVNlc3Npb24u
Y3BwICovLAorCQkJCTc1QThEMkRFMTg3REU4NzQwMEMzOUM5RSAvKiBBUElTZXNzaW9uLmggKi8s
CiAJCQkJN0NEMTAyRDkxODY2NzcwNjAwRUQ0MjlEIC8qIEF1dG9Db3JyZWN0aW9uQ2FsbGJhY2su
aCAqLywKIAkJCQlCQzI2NTIxMjExODI2MDgxMDAyNDNFMTIgLyogRHJhd2luZ0FyZWFQcm94eS5j
cHAgKi8sCiAJCQkJQkMyNjUyMTMxMTgyNjA4MTAwMjQzRTEyIC8qIERyYXdpbmdBcmVhUHJveHku
aCAqLywKQEAgLTQ3MTYsOCArNDczNSw4IEBACiAJCQkJMzNEM0EzQjkxMzM5NjA2MjAwNzA5QkU0
IC8qIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJQkMxREZF
QTMxMkIzMUY4NzAwNURGNzMwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3Bw
ICovLAogCQkJCUJDMURGRUEyMTJCMzFGODcwMDVERjczMCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lclByb3h5LmggKi8sCi0JCQkJNzU1NDIyQkUxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwICovLAogCQkJCTc1NTQyMkJGMTgwNjJCRTQwMDQ2RjZB
OCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggKi8sCisJCQkJNzU1NDIyQkUxODA2MkJF
NDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwICovLAogCQkJCTc1NTQy
MkMwMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluICovLAogCQkJCTc1OUNDRDU0MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCAqLywKIAkJCQk3NTlDQ0Q1NTE4MDhGMTYwMDA3OEU4
QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oICovLApAQCAtNDg1
NCw2ICs0ODczLDggQEAKIAkJCQk1MThBQ0FFOTEyQUVFNkJCMDBCMDRCODMgLyogV0tQcm90ZWN0
aW9uU3BhY2VUeXBlcy5oICovLAogCQkJCTMzMzY3NjM4MTMwQzk5REMwMDZDOURFMiAvKiBXS1Jl
c291cmNlQ2FjaGVNYW5hZ2VyLmNwcCAqLywKIAkJCQkzMzM2NzYzOTEzMEM5OURDMDA2QzlERTIg
LyogV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5oICovLAorCQkJCTc1QThEMkQwMTg3RDE3QkYwMEMz
OUM5RSAvKiBXS1Nlc3Npb25SZWYuY3BwICovLAorCQkJCTc1QThEMkQxMTg3RDE3QkYwMEMzOUM5
RSAvKiBXS1Nlc3Npb25SZWYuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gQzsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC02MDc0LDYgKzYwOTUsNyBAQAogCQkJCTUxOEQyQ0FFMTJENTE1
M0IwMDNCQjkzQiAvKiBXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzcyQjlGQjExRTY0NzZCMDAxRUI0RUEgLyogV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuaCBp
biBIZWFkZXJzICovLAogCQkJCTM3RkMxOTRCMTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1QThEMkM4MTg3Q0NG
QUIwMEMzOUM5RSAvKiBXS1Nlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRjUwNzI4MTI0
MzI5QUEwMDU5NTVBRSAvKiBXZWJDZXJ0aWZpY2F0ZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMDMyRDc1MTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDaHJvbWVDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxNUU3NzM0MTg0MDJENTEwMDA3MjAzRiAvKiBVbmlxdWVJREJEYXRhYmFzZUlk
ZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLApAQCAtNjEzNiw2ICs2MTU4LDcgQEAKIAkJCQkxQTkw
QzFFRTEyNjRGRDUwMDAzRTQ0RDQgLyogV2ViRmluZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDRTQ2OTU0MTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0U0Njk1NjEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybVN1Ym1pc3Npb25M
aXN0ZW5lclByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NUE4RDJENzE4N0QzMDNBMDBDMzlD
OUUgLyogV0tTZXNzaW9uUmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkQ4RDEwRjQzN0Ew
MDA1OEMxNUEgLyogV2ViRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTQ2OTc3MTIxNEYy
N0IwMDBCOThFQiAvKiBXZWJGcmFtZUxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMDMyRDdGMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCkBAIC02MjIyLDYgKzYyNDUsNyBAQAogCQkJCTFBQzEzMzgwMTg1OTBBRTQwMEYz
RUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzMDY2
QkYxMjVBNDQyMTAwRTcxMjc4IC8qIFdlYlByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMwMzJERDUxMEY0Mzg5RjAwNThDMTVBIC8qIFdlYlByb2Nlc3NQcm94eS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNzVBOEQyRDYxODdEMUMwRTAwQzM5QzlFIC8qIFdLU2Vzc2lvbkludGVy
bmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTAzMkYxOTE4MEY3M0JCMDA5NjFCQjcgLyogV2Vi
VG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VFN0FE
MTEyODE3OTg4MDA5ODI3REEgLyogV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDRTBFNDI1MTY4QjdBMjgwMDU3RTY2QSAvKiBXZWJQcm9jZXNzU3VwcGxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC02MzQ5LDYgKzYzNzMsNyBAQAogCQkJCUJDMDZGNDRFMTJE
QkRGM0YwMDJENzhERSAvKiBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDMEU2MTk4MTJENkNEMTIwMDEyQTcyQSAvKiBXS0dlb2xvY2F0aW9uUG9z
aXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTM3RkMxOTQ3MTg1MEZCRjIwMDhDRkE0NyAvKiBX
S0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTc1QThEMkUxMTg3REVDMUEwMEMzOUM5RSAvKiBBUElTZXNzaW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0M4QjM3NDEyNUZCNjkwMDBERTQ2QTQgLyogV0tHZW9tZXRyeS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjYyRTczMTIxNDMwNDdCMDAwNjlFQzM1IC8qIFdLSGl0VGVzdFJlc3VsdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTExMEFFMEQxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFi
YXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTcxNjAsNiArNzE4NSw3IEBACiAJCQlidWlsZEFjdGlv
bk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJNTFFMzUyMDAxODBGNUQwRjAw
RTUzQkU5IC8qIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk3NUE4RDJFMjE4N0RFQzFFMDBDMzlDOUUgLyogQVBJU2Vzc2lvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBN0Q3OTJENjE3NjdDQjZFMDA4ODFDQkUgLyogQWN0aXZpdHlBc3NlcnRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjYzNDAzRjkxNDkxMEQ1NzAwMTA3MEI1IC8qIEFQ
SU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTNENjEwNTEzQTdGMDNBMDBGOTVENEUg
LyogQXJndW1lbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC03MjQxLDYgKzcyNjcsNyBA
QAogCQkJCTM3QzRDMDkzMTgxNEIzQUYwMDM2ODhCOSAvKiBXS05TQXJyYXkubW0gaW4gU291cmNl
cyAqLywKIAkJCQk5MzVFRUJBMTEyNzc2MUNDMDAzMzIyQjggLyogSW5qZWN0ZWRCdW5kbGVCYWNr
Rm9yd2FyZExpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM1RUVCQTMxMjc3NjFEMzAwMzMy
MkI4IC8qIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk3NUE4RDJDOTE4N0NDRkFGMDBDMzlDOUUgLyogV0tTZXNzaW9uLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkNFRTdEQzYxMjhCNjQ1RDAwOTgyN0RBIC8qIEluamVjdGVkQnVuZGxlQ2xp
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRkEyRDc0MTUyMTJERjEwMEMxQkEwQiAvKiBJ
bmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzQ5ODYxOTEyNEQxMEUyMDBEODM0RTEgLyogSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNw
cCBpbiBTb3VyY2VzICovLApAQCAtNzM3Myw2ICs3NDAwLDcgQEAKIAkJCQkxQTJEOTIyMTEyODFE
QzFCMDAxRUI5NjIgLyogUGx1Z2luUHJveHlNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3NTU0
MjJDNDE4MDYyQkY5MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxQThFRkE3MDEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzVBOEQyRDgxODdEMzA0MDAw
QzM5QzlFIC8qIFdLU2Vzc2lvblJlZi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzFBMTk0MTE4
MjREMjkzMDBGMzJBNUUgLyogV0tOU0RpY3Rpb25hcnkubW0gaW4gU291cmNlcyAqLywKIAkJCQk3
Q0Q2MjI3NzE3MzlEODYzMDA1QkQ3RkYgLyogUGx1Z2luU2FuZGJveFByb2ZpbGUubW0gaW4gU291
cmNlcyAqLywKIAkJCQlCQzgyODQ0RDE2QjUwODFDMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZUVu
dHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220653</attachid>
            <date>2014-01-08 12:34:10 -0800</date>
            <delta_ts>2014-01-08 19:57:50 -0800</delta_ts>
            <desc>style</desc>
            <filename>wksessionstub.08.diff</filename>
            <type>text/plain</type>
            <size>27729</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBjYjQyZDM1Li5jMWUxMWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMTQtMDEtMDggIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IFN0dWIgZm9yIFNlc3Npb24gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjY2MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAgICAgKiBTaGFyZWQv
QVBJL2MvV0tTaGFyZWRBUElDYXN0Lmg6CisgICAgICAgICogU2hhcmVkL0FQSU9iamVjdC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdLU2Vzc2lvbkdldFR5cGVJRCk6CisgICAgICAgIChXS1Nlc3Npb25HZXRFcGhlbWVyYWwp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuaDogQWRkZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Npb24uaDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Npb24ubW06IEFkZGVkLgorICAgICAgICAoLVtXS1Nl
c3Npb24gZGVhbGxvY10pOgorICAgICAgICAoLVtXS1Nlc3Npb24gZXBoZW1lcmFsXSk6CisgICAg
ICAgICgtW1dLU2Vzc2lvbiBBUEk6Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tTZXNzaW9uSW50ZXJuYWwuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OndyYXBwZXIpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUElTZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChBUEk6
OlNlc3Npb246OlNlc3Npb24pOgorICAgICAgICAoQVBJOjpTZXNzaW9uOjpjcmVhdGUpOgorICAg
ICAgICAoQVBJOjpTZXNzaW9uOjppc0VwaGVtZXJhbCk6CisgICAgICAgIChBUEk6OlNlc3Npb246
On5TZXNzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJU2Vzc2lvbi5oOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTQtMDEtMDgg
IFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtBdXRvbWFr
ZV0gU2NyaXB0cyBmb3IgZ2VuZXJhdGVkIGJ1aWxkIHRhcmdldHMgZG8gbm90IG5lY2Vzc2FyaWx5
IHByb2R1Y2UgdGhlaXIgb3V0cHV0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5k
ZXggMTk3YWQ5Zi4uZDQxODk0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApA
QCAtMTI2LDYgKzEyNiw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUGx1Z2luU2l0
ZURhdGFNYW5hZ2VyKiBXS1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qg
c3RydWN0IE9wYXF1ZVdLUHJlZmVyZW5jZXMqIFdLUHJlZmVyZW5jZXNSZWY7CiB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS1Byb3RlY3Rpb25TcGFjZSogV0tQcm90ZWN0aW9uU3BhY2VSZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1RleHRDaGVja2VyKiBXS1RleHRDaGVja2Vy
UmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tTZXNzaW9uKiBXS1Nlc3Npb25SZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ZpYnJhdGlvbiogV0tWaWJyYXRpb25SZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ZpZXdwb3J0QXR0cmlidXRlcyogV0tWaWV3
cG9ydEF0dHJpYnV0ZXNSZWY7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS1NoYXJlZEFQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1No
YXJlZEFQSUNhc3QuaAppbmRleCBkNGNiYjc3Li44NDM5ZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlICJBUElFcnJvci5oIgogI2luY2x1ZGUgIkFQSU51bWJlci5oIgorI2luY2x1ZGUgIkFQ
SVNlc3Npb24uaCIKICNpbmNsdWRlICJBUElTdHJpbmcuaCIKICNpbmNsdWRlICJBUElVUkwuaCIK
ICNpbmNsdWRlICJBUElVUkxSZXF1ZXN0LmgiCkBAIC0xMTMsNiArMTE0LDcgQEAgV0tfQUREX0FQ
SV9NQVBQSU5HKFdLVVJMUmVmLCBBUEk6OlVSTCkKIFdLX0FERF9BUElfTUFQUElORyhXS1VSTFJl
cXVlc3RSZWYsIEFQSTo6VVJMUmVxdWVzdCkKIFdLX0FERF9BUElfTUFQUElORyhXS1VSTFJlc3Bv
bnNlUmVmLCBBUEk6OlVSTFJlc3BvbnNlKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVXNlckNvbnRl
bnRVUkxQYXR0ZXJuUmVmLCBXZWJVc2VyQ29udGVudFVSTFBhdHRlcm4pCitXS19BRERfQVBJX01B
UFBJTkcoV0tTZXNzaW9uUmVmLCBBUEk6OlNlc3Npb24pCiAKIHRlbXBsYXRlPD4gc3RydWN0IEFQ
SVR5cGVJbmZvPFdLTXV0YWJsZUFycmF5UmVmPiB7IHR5cGVkZWYgQVBJOjpBcnJheSogSW1wbFR5
cGU7IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAppbmRleCAwMDRlYjBjLi4wZGEwNDY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCkBAIC0xMjksNiArMTI5LDcgQEAgcHVibGlj
OgogICAgICAgICBQYWdlR3JvdXAsCiAgICAgICAgIFBsdWdpblNpdGVEYXRhTWFuYWdlciwKICAg
ICAgICAgUHJlZmVyZW5jZXMsCisgICAgICAgIFNlc3Npb24sCiAgICAgICAgIFRleHRDaGVja2Vy
LAogICAgICAgICBWaWJyYXRpb24sCiAgICAgICAgIFZpZXdwb3J0QXR0cmlidXRlcywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblJlZi5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjFmOGYyNwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25SZWYuY3BwCkBAIC0wLDAgKzEs
NDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tTZXNz
aW9uUmVmLmgiCisKKyNpbmNsdWRlICJBUElTZXNzaW9uLmgiCisjaW5jbHVkZSAiV0tBUElDYXN0
LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLU2Vzc2lvbkdldFR5
cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKEFQSTo6U2Vzc2lvbjo6QVBJVHlwZSk7Cit9CisK
K2Jvb2wgV0tTZXNzaW9uR2V0RXBoZW1lcmFsKFdLU2Vzc2lvblJlZiBzZXNzaW9uUmVmKQorewor
ICAgIHJldHVybiB0b0FQSSh0b0ltcGwoc2Vzc2lvblJlZiktPmlzRXBoZW1lcmFsKCkpOworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblJlZi5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblJlZi5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjMGI1ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tTZXNzaW9uUmVmLmgKQEAgLTAsMCArMSw0
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tTZXNzaW9uUmVmX2gKKyNkZWZpbmUgV0tTZXNz
aW9uUmVmX2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVz
cGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLU2Vzc2lv
bkdldFR5cGVJRCgpOworCitXS19FWFBPUlQgYm9vbCBXS1Nlc3Npb25HZXRFcGhlbWVyYWwoV0tT
ZXNzaW9uUmVmIHNlc3Npb24pOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisj
ZW5kaWYgLyogV0tTZXNzaW9uUmVmX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLU2Vzc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjY0OTlhOTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLU2Vzc2lvbi5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
IDxXZWJLaXQyL1dLRm91bmRhdGlvbi5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9y
dCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKK1dLX0FQSV9DTEFTUworQGludGVyZmFjZSBX
S1Nlc3Npb24gOiBOU09iamVjdAorCitAcHJvcGVydHkgKHJlYWRvbmx5KSBib29sIGVwaGVtZXJh
bDsKKworQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTZXNzaW9uLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Nlc3Npb24ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZjNiMTYxNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTZXNzaW9uLm1tCkBAIC0wLDAgKzEsNTggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLU2Vzc2lvbkludGVybmFsLmgi
CisKKyNpZiBXS19BUElfRU5BQkxFRAorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitAaW1w
bGVtZW50YXRpb24gV0tTZXNzaW9uIHsKKyAgICBBUEk6Ok9iamVjdFN0b3JhZ2U8QVBJOjpTZXNz
aW9uPiBfc2Vzc2lvbjsKK30KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgX3Nlc3Npb24tPkFQ
STo6U2Vzc2lvbjo6flNlc3Npb24oKTsKKworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAo
Ym9vbCllcGhlbWVyYWwKK3sKKyAgICByZXR1cm4gX3Nlc3Npb24tPmlzRXBoZW1lcmFsKCk7Cit9
CisKKyNwcmFnbWEgbWFyayBXS09iamVjdCBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbgorCistIChB
UEk6Ok9iamVjdCYpX2FwaU9iamVjdAoreworICAgIHJldHVybiAqX3Nlc3Npb247Cit9CisKK0Bl
bmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2Vzc2lvbkludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2Vzc2lvbkludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNjE3YWUwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTZXNzaW9uSW50ZXJuYWwuaApAQCAtMCwwICsx
LDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiV0tTZXNzaW9uLmgiCisKKyNpZiBXS19BUElf
RU5BQkxFRAorCisjaW1wb3J0ICJXS09iamVjdC5oIgorI2ltcG9ydCAiQVBJU2Vzc2lvbi5oIgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworaW5saW5lIFdLU2Vzc2lvbiAqd3JhcHBlcihBUEk6OlNl
c3Npb24mIHNlc3Npb24pCit7CisgICAgQVNTRVJUKFtzZXNzaW9uLndyYXBwZXIoKSBpc0tpbmRP
ZkNsYXNzOltXS1Nlc3Npb24gY2xhc3NdXSk7CisgICAgcmV0dXJuIChXS1Nlc3Npb24gKilzZXNz
aW9uLndyYXBwZXIoKTsKK30KKworfQorCitAaW50ZXJmYWNlIFdLU2Vzc2lvbiAoKSA8V0tPYmpl
Y3Q+CitAZW5kCisKKyNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSVNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSVNlc3Npb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQy
MzEyYmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vz
c2lvbi5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJBUElTZXNzaW9uLmgiCisKK25hbWVzcGFjZSBBUEkgeworCitTZXNzaW9u
OjpTZXNzaW9uKGJvb2wgaXNFcGhlbWVyYWwpCisgICAgOiBtX2lzRXBoZW1lcmFsKGlzRXBoZW1l
cmFsKQoreworfQorCitQYXNzUmVmUHRyPFNlc3Npb24+IFNlc3Npb246OmNyZWF0ZShib29sIGlz
RXBoZW1lcmFsKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2Vzc2lvbihpc0VwaGVtZXJh
bCkpOworfQorCitib29sIFNlc3Npb246OmlzRXBoZW1lcmFsKCkKK3sKKyAgICByZXR1cm4gbV9p
c0VwaGVtZXJhbDsKK30KKworU2Vzc2lvbjo6flNlc3Npb24oKQoreworfQorCit9IC8vIG5hbWVz
cGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9u
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmYjVmNjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIEFQSVNlc3Npb25faAorI2RlZmluZSBBUElTZXNzaW9uX2gKKworI2luY2x1
ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFj
ZSBBUEkgeworCitjbGFzcyBTZXNzaW9uIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9i
amVjdDo6VHlwZTo6U2Vzc2lvbj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNl
c3Npb24+IGNyZWF0ZShib29sIGlzRXBoZW1lcmFsKTsKKyAgICBib29sIGlzRXBoZW1lcmFsKCk7
CisgICAgdmlydHVhbCB+U2Vzc2lvbigpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFNlc3Np
b24oYm9vbCBpc0VwaGVtZXJhbCk7CisgICAgYm9vbCBtX2lzRXBoZW1lcmFsOworfTsKKworfSAv
LyBuYW1lc3BhY2UgQVBJCisKKyNlbmRpZiAvLyBBUElTZXNzaW9uX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiYTRkNzE3Li45
YzBkZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC03NTgsNiArNzU4LDEzIEBACiAJCTc1OUNDRDU4MTgwOEYxNjQwMDc4RThB
OCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1OUNDRDU0MTgwOEYxNjAwMDc4
RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCAqLzsgfTsK
IAkJNzU5Q0NENTkxODA4RjE2OTAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlD
aGFuZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc1OUNDRDU1MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
Q2hhbmdlQ2xpZW50LmggKi87IH07CiAJCTc1OUNDRDVBMTgwOEY2MTYwMDc4RThBOCAvKiBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NTU0MjJCRjE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eS5oICovOyB9OworCQk3NUE4RDJDODE4N0NDRkFCMDBDMzlDOUUgLyogV0tTZXNz
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUE4
RDJDNDE4N0NDRjlGMDBDMzlDOUUgLyogV0tTZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzVBOEQyQzkxODdDQ0ZBRjAwQzM5QzlFIC8q
IFdLU2Vzc2lvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc1QThEMkM1MTg3Q0NGOUYwMEMzOUM5RSAvKiBXS1Nlc3Npb24ubW0gKi87IH07CisJCTc1
QThEMkQ2MTg3RDFDMEUwMEMzOUM5RSAvKiBXS1Nlc3Npb25JbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyRDQxODdEMUMwMTAwQzM5
QzlFIC8qIFdLU2Vzc2lvbkludGVybmFsLmggKi87IH07CisJCTc1QThEMkQ3MTg3RDMwM0EwMEMz
OUM5RSAvKiBXS1Nlc3Npb25SZWYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDc1QThEMkQxMTg3RDE3QkYwMEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3NUE4RDJE
ODE4N0QzMDQwMDBDMzlDOUUgLyogV0tTZXNzaW9uUmVmLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1QThEMkQwMTg3RDE3QkYwMEMzOUM5RSAvKiBX
S1Nlc3Npb25SZWYuY3BwICovOyB9OworCQk3NUE4RDJFMTE4N0RFQzFBMDBDMzlDOUUgLyogQVBJ
U2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzVBOEQyREUxODdERTg3NDAwQzM5QzlFIC8qIEFQSVNlc3Npb24uaCAqLzsgfTsKKwkJNzVBOEQy
RTIxODdERUMxRTAwQzM5QzlFIC8qIEFQSVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyREQxODdERTg3NDAwQzM5QzlFIC8qIEFQ
SVNlc3Npb24uY3BwICovOyB9OwogCQk3NUU3NDlFOTE4MERCQjk4MDAwODhCQTYgLyogV2ViT3Jp
Z2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVFNzQ5RTUxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNzVFNzQ5RUExODBE
QkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RTc0OUU2MTgwREJCOTgwMDA4
OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CiAJCTc1RTc0OUVC
MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1
RTc0OUU3MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKQEAgLTIzOTMsNiArMjQwMCwxMyBAQAogCQk3NTU0MjJDODE4
MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBuYW1lID0gV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW47IHBhdGgg
PSBPcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3NTlDQ0Q1NDE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU5Q0NENTUxODA4RjE2MDAwNzhFOEE4IC8q
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUE4RDJDNDE4N0NDRjlGMDBDMzlDOUUg
LyogV0tTZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLU2Vzc2lv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUE4RDJDNTE4N0NDRjlGMDBDMzlD
OUUgLyogV0tTZXNzaW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV0tTZXNzaW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUE4RDJEMDE4
N0QxN0JGMDBDMzlDOUUgLyogV0tTZXNzaW9uUmVmLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdLU2Vzc2lvblJlZi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTc1QThEMkQxMTg3RDE3QkYwMEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTZXNzaW9uUmVmLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTc1QThEMkQ0MTg3RDFDMDEwMEMzOUM5RSAvKiBXS1Nlc3Npb25JbnRl
cm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1Nlc3Npb25JbnRlcm5h
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUE4RDJERDE4N0RFODc0MDBDMzlD
OUUgLyogQVBJU2Vzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBBUElTZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVBOEQyREUx
ODdERTg3NDAwQzM5QzlFIC8qIEFQSVNlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQVBJU2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NUU3
NDlFNTE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViT3JpZ2luRGF0
YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3NUU3NDlFNjE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdl
ck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1RTc0OUU3MTgwREJC
OTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMzk4OCw2ICs0MDAyLDkgQEAKIAkJCQlCQ0JBQUNFNjE0NTIyNUNBMDA1M0Y4MkYgLyogV0tQ
cm9jZXNzR3JvdXAubW0gKi8sCiAJCQkJN0MxRkIzQkYxODQ2QUVGQzAwMUEwM0Q4IC8qIFdLUHJv
Y2Vzc0dyb3VwSW50ZXJuYWwuaCAqLywKIAkJCQlCQ0JBQUNFNzE0NTIyNUNCMDA1M0Y4MkYgLyog
V0tQcm9jZXNzR3JvdXBQcml2YXRlLmggKi8sCisJCQkJNzVBOEQyQzQxODdDQ0Y5RjAwQzM5QzlF
IC8qIFdLU2Vzc2lvbi5oICovLAorCQkJCTc1QThEMkM1MTg3Q0NGOUYwMEMzOUM5RSAvKiBXS1Nl
c3Npb24ubW0gKi8sCisJCQkJNzVBOEQyRDQxODdEMUMwMTAwQzM5QzlFIC8qIFdLU2Vzc2lvbklu
dGVybmFsLmggKi8sCiAJCQkJN0NENUVCQkQxNzQ2QjA0QzAwMEMxQzQ1IC8qIFdLVHlwZVJlZldy
YXBwZXIuaCAqLywKIAkJCQk3Q0Q1RUJCQzE3NDZCMDRDMDAwQzFDNDUgLyogV0tUeXBlUmVmV3Jh
cHBlci5tbSAqLywKIAkJCQlCQzg2OTlCMjExNkFBREFBMDAyQTkyNUIgLyogV0tWaWV3LmggKi8s
CkBAIC00NjEzLDYgKzQ2MzAsOCBAQAogCQkJCTFBNDRCOTU4MTZCNzNGOEMwMEI3QkJEOCAvKiBT
dG9yYWdlICovLAogCQkJCUJDRjY5RkExMTE3NkQwMTQwMDQ3MUE1MiAvKiBBUElOYXZpZ2F0aW9u
RGF0YS5jcHAgKi8sCiAJCQkJQkNGNjlGQTAxMTc2RDAxNDAwNDcxQTUyIC8qIEFQSU5hdmlnYXRp
b25EYXRhLmggKi8sCisJCQkJNzVBOEQyREQxODdERTg3NDAwQzM5QzlFIC8qIEFQSVNlc3Npb24u
Y3BwICovLAorCQkJCTc1QThEMkRFMTg3REU4NzQwMEMzOUM5RSAvKiBBUElTZXNzaW9uLmggKi8s
CiAJCQkJN0NEMTAyRDkxODY2NzcwNjAwRUQ0MjlEIC8qIEF1dG9Db3JyZWN0aW9uQ2FsbGJhY2su
aCAqLywKIAkJCQlCQzI2NTIxMjExODI2MDgxMDAyNDNFMTIgLyogRHJhd2luZ0FyZWFQcm94eS5j
cHAgKi8sCiAJCQkJQkMyNjUyMTMxMTgyNjA4MTAwMjQzRTEyIC8qIERyYXdpbmdBcmVhUHJveHku
aCAqLywKQEAgLTQ3MTYsOCArNDczNSw4IEBACiAJCQkJMzNEM0EzQjkxMzM5NjA2MjAwNzA5QkU0
IC8qIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJQkMxREZF
QTMxMkIzMUY4NzAwNURGNzMwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3Bw
ICovLAogCQkJCUJDMURGRUEyMTJCMzFGODcwMDVERjczMCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lclByb3h5LmggKi8sCi0JCQkJNzU1NDIyQkUxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwICovLAogCQkJCTc1NTQyMkJGMTgwNjJCRTQwMDQ2RjZB
OCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggKi8sCisJCQkJNzU1NDIyQkUxODA2MkJF
NDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwICovLAogCQkJCTc1NTQy
MkMwMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluICovLAogCQkJCTc1OUNDRDU0MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCAqLywKIAkJCQk3NTlDQ0Q1NTE4MDhGMTYwMDA3OEU4
QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oICovLApAQCAtNDg1
NCw2ICs0ODczLDggQEAKIAkJCQk1MThBQ0FFOTEyQUVFNkJCMDBCMDRCODMgLyogV0tQcm90ZWN0
aW9uU3BhY2VUeXBlcy5oICovLAogCQkJCTMzMzY3NjM4MTMwQzk5REMwMDZDOURFMiAvKiBXS1Jl
c291cmNlQ2FjaGVNYW5hZ2VyLmNwcCAqLywKIAkJCQkzMzM2NzYzOTEzMEM5OURDMDA2QzlERTIg
LyogV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5oICovLAorCQkJCTc1QThEMkQwMTg3RDE3QkYwMEMz
OUM5RSAvKiBXS1Nlc3Npb25SZWYuY3BwICovLAorCQkJCTc1QThEMkQxMTg3RDE3QkYwMEMzOUM5
RSAvKiBXS1Nlc3Npb25SZWYuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gQzsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC02MDc0LDYgKzYwOTUsNyBAQAogCQkJCTUxOEQyQ0FFMTJENTE1
M0IwMDNCQjkzQiAvKiBXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzcyQjlGQjExRTY0NzZCMDAxRUI0RUEgLyogV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuaCBp
biBIZWFkZXJzICovLAogCQkJCTM3RkMxOTRCMTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1QThEMkM4MTg3Q0NG
QUIwMEMzOUM5RSAvKiBXS1Nlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRjUwNzI4MTI0
MzI5QUEwMDU5NTVBRSAvKiBXZWJDZXJ0aWZpY2F0ZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMDMyRDc1MTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDaHJvbWVDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxNUU3NzM0MTg0MDJENTEwMDA3MjAzRiAvKiBVbmlxdWVJREJEYXRhYmFzZUlk
ZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLApAQCAtNjEzNiw2ICs2MTU4LDcgQEAKIAkJCQkxQTkw
QzFFRTEyNjRGRDUwMDAzRTQ0RDQgLyogV2ViRmluZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDRTQ2OTU0MTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0U0Njk1NjEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybVN1Ym1pc3Npb25M
aXN0ZW5lclByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NUE4RDJENzE4N0QzMDNBMDBDMzlD
OUUgLyogV0tTZXNzaW9uUmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkQ4RDEwRjQzN0Ew
MDA1OEMxNUEgLyogV2ViRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTQ2OTc3MTIxNEYy
N0IwMDBCOThFQiAvKiBXZWJGcmFtZUxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMDMyRDdGMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCkBAIC02MjIyLDYgKzYyNDUsNyBAQAogCQkJCTFBQzEzMzgwMTg1OTBBRTQwMEYz
RUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzMDY2
QkYxMjVBNDQyMTAwRTcxMjc4IC8qIFdlYlByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMwMzJERDUxMEY0Mzg5RjAwNThDMTVBIC8qIFdlYlByb2Nlc3NQcm94eS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNzVBOEQyRDYxODdEMUMwRTAwQzM5QzlFIC8qIFdLU2Vzc2lvbkludGVy
bmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTAzMkYxOTE4MEY3M0JCMDA5NjFCQjcgLyogV2Vi
VG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VFN0FE
MTEyODE3OTg4MDA5ODI3REEgLyogV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDRTBFNDI1MTY4QjdBMjgwMDU3RTY2QSAvKiBXZWJQcm9jZXNzU3VwcGxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC02MzQ5LDYgKzYzNzMsNyBAQAogCQkJCUJDMDZGNDRFMTJE
QkRGM0YwMDJENzhERSAvKiBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDMEU2MTk4MTJENkNEMTIwMDEyQTcyQSAvKiBXS0dlb2xvY2F0aW9uUG9z
aXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTM3RkMxOTQ3MTg1MEZCRjIwMDhDRkE0NyAvKiBX
S0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTc1QThEMkUxMTg3REVDMUEwMEMzOUM5RSAvKiBBUElTZXNzaW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0M4QjM3NDEyNUZCNjkwMDBERTQ2QTQgLyogV0tHZW9tZXRyeS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjYyRTczMTIxNDMwNDdCMDAwNjlFQzM1IC8qIFdLSGl0VGVzdFJlc3VsdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTExMEFFMEQxMzNDMTZDQjAwNzI3MTdBIC8qIFdLSWNvbkRhdGFi
YXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTcxNjAsNiArNzE4NSw3IEBACiAJCQlidWlsZEFjdGlv
bk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJNTFFMzUyMDAxODBGNUQwRjAw
RTUzQkU5IC8qIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk3NUE4RDJFMjE4N0RFQzFFMDBDMzlDOUUgLyogQVBJU2Vzc2lvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBN0Q3OTJENjE3NjdDQjZFMDA4ODFDQkUgLyogQWN0aXZpdHlBc3NlcnRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjYzNDAzRjkxNDkxMEQ1NzAwMTA3MEI1IC8qIEFQ
SU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTNENjEwNTEzQTdGMDNBMDBGOTVENEUg
LyogQXJndW1lbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC03MjQxLDYgKzcyNjcsNyBA
QAogCQkJCTM3QzRDMDkzMTgxNEIzQUYwMDM2ODhCOSAvKiBXS05TQXJyYXkubW0gaW4gU291cmNl
cyAqLywKIAkJCQk5MzVFRUJBMTEyNzc2MUNDMDAzMzIyQjggLyogSW5qZWN0ZWRCdW5kbGVCYWNr
Rm9yd2FyZExpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM1RUVCQTMxMjc3NjFEMzAwMzMy
MkI4IC8qIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk3NUE4RDJDOTE4N0NDRkFGMDBDMzlDOUUgLyogV0tTZXNzaW9uLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkNFRTdEQzYxMjhCNjQ1RDAwOTgyN0RBIC8qIEluamVjdGVkQnVuZGxlQ2xp
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRkEyRDc0MTUyMTJERjEwMEMxQkEwQiAvKiBJ
bmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzQ5ODYxOTEyNEQxMEUyMDBEODM0RTEgLyogSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNw
cCBpbiBTb3VyY2VzICovLApAQCAtNzM3Myw2ICs3NDAwLDcgQEAKIAkJCQkxQTJEOTIyMTEyODFE
QzFCMDAxRUI5NjIgLyogUGx1Z2luUHJveHlNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3NTU0
MjJDNDE4MDYyQkY5MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxQThFRkE3MDEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzVBOEQyRDgxODdEMzA0MDAw
QzM5QzlFIC8qIFdLU2Vzc2lvblJlZi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzFBMTk0MTE4
MjREMjkzMDBGMzJBNUUgLyogV0tOU0RpY3Rpb25hcnkubW0gaW4gU291cmNlcyAqLywKIAkJCQk3
Q0Q2MjI3NzE3MzlEODYzMDA1QkQ3RkYgLyogUGx1Z2luU2FuZGJveFByb2ZpbGUubW0gaW4gU291
cmNlcyAqLywKIAkJCQlCQzgyODQ0RDE2QjUwODFDMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZUVu
dHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywK
</data>

          </attachment>
      

    </bug>

</bugzilla>