<?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>122884</bug_id>
          
          <creation_ts>2013-10-15 22:58:40 -0700</creation_ts>
          <short_desc>Flesh out the DatabaseProcess (and launch it!)</short_desc>
          <delta_ts>2013-10-16 12:26:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>philn</cc>
    
    <cc>sam</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>940276</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-15 22:58:40 -0700</bug_when>
    <thetext>Flesh out the DatabaseProcess (and launch it!)

This is followup to https://bugs.webkit.org/show_bug.cgi?id=122849</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940277</commentid>
    <comment_count>1</comment_count>
      <attachid>214341</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-15 23:24:11 -0700</bug_when>
    <thetext>Created attachment 214341
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940278</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-15 23:25:16 -0700</bug_when>
    <thetext>Attachment 214341 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/English.lproj/Localizable.strings&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp&apos;, u&apos;Source/WebKit2/DatabaseProcess/DatabaseProcess.h&apos;, u&apos;Source/WebKit2/DatabaseProcess/DatabaseProcess.messages.in&apos;, u&apos;Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.cpp&apos;, u&apos;Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.h&apos;, u&apos;Source/WebKit2/DerivedSources.make&apos;, u&apos;Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.messages.in&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.h&apos;, u&apos;Source/WebKit2/UIProcess/WebProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebProcessProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebProcessProxy.messages.in&apos;, u&apos;Source/WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp&apos;, u&apos;Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.cpp&apos;, u&apos;Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.h&apos;]&quot; exit_code: 1
Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.h:54:  Could not find a newline character at the end of the file.  [whitespace/ending_newline] [5]
Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.cpp:71:  Could not find a newline character at the end of the file.  [whitespace/ending_newline] [5]
Total errors found: 3 in 25 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>940279</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-15 23:27:15 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 214341 [details] did not pass style-queue:
&gt; Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
&gt; Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.h:54:  Could not find a newline character at the end of the file.  [whitespace/ending_newline] [5]
&gt; Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.cpp:71:  Could not find a newline character at the end of the file.  [whitespace/ending_newline] [5]

All fixed locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940283</commentid>
    <comment_count>4</comment_count>
      <attachid>214341</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-15 23:29:53 -0700</bug_when>
    <thetext>Comment on attachment 214341
Patch v1 

Attachment 214341 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/4106193</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940284</commentid>
    <comment_count>5</comment_count>
      <attachid>214341</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-15 23:39:12 -0700</bug_when>
    <thetext>Comment on attachment 214341
Patch v1 

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

Seems reasonable to me.

&gt; Source/WebCore/English.lproj/Localizable.strings:-39
&gt; -/* Visible name of the shared worker process. The argument is the application name. */
&gt; -&quot;%@ Shared Worker&quot; = &quot;%@ Shared Worker&quot;;
&gt; -

Why don&apos;t we need this one anymore? Why doesn&apos;t the changelog say why not?

&gt; Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp:93
&gt; +    // Grab the first pending connection reply.

Not sure this is a useful comment.

&gt; Source/WebKit2/UIProcess/WebContext.cpp:423
&gt; +    ASSERT(m_databaseProcess);

This seems unnecessary after an ensure()! At least, that&apos;s what ensure means :) And otherwise you&apos;re just gonna crash below, so you don&apos;t need this.

&gt; Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:56
&gt; +    // FIXME: Access the connection to the DatabaseProcess to make sure it has been created to assisted

To assisted?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940483</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-16 12:12:18 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 214341 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=214341&amp;action=review
&gt; 
&gt; Seems reasonable to me.
&gt; 
&gt; &gt; Source/WebCore/English.lproj/Localizable.strings:-39
&gt; &gt; -/* Visible name of the shared worker process. The argument is the application name. */
&gt; &gt; -&quot;%@ Shared Worker&quot; = &quot;%@ Shared Worker&quot;;
&gt; &gt; -
&gt; 
&gt; Why don&apos;t we need this one anymore? Why doesn&apos;t the changelog say why not?
&gt;

I ran the update-webkit-localizable-strings script and it noticed that the Shared Worker string had been removed.  This is because the Shared Worker process was removed.  And when it was removed, the patch authors didn&apos;t remove the localizable string.

This happens all the time (an obsolete localizable string being removed when a new one is added) and I don&apos;t think we call it out in change logs.
 
&gt; &gt; Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp:93
&gt; &gt; +    // Grab the first pending connection reply.
&gt; 
&gt; Not sure this is a useful comment.

Somewhat agreed, yet it follows the exact pattern from NetworkProcessProxy and PluginProcessProxy (which include the comment).  Not sure I want to make this new one different.

&gt; &gt; Source/WebKit2/UIProcess/WebContext.cpp:423
&gt; &gt; +    ASSERT(m_databaseProcess);
&gt; 
&gt; This seems unnecessary after an ensure()! At least, that&apos;s what ensure means :) And otherwise you&apos;re just gonna crash below, so you don&apos;t need this.

Ugh.  Yet another difference from the other two following the pattern.  Okay, will remove.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:56
&gt; &gt; +    // FIXME: Access the connection to the DatabaseProcess to make sure it has been created to assisted
&gt; 
&gt; To assisted?

s/assisted/assist/   fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940484</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-16 12:13:07 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 214341 [details])
&gt; Attachment 214341 [details] did not pass efl-wk2-ews (efl-wk2):
&gt; Output: http://webkit-queues.appspot.com/results/4106193

Weird that these failures are new, actually...  but I nuked the argument names for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940488</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-16 12:26:47 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/157524</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214341</attachid>
            <date>2013-10-15 23:24:11 -0700</date>
            <delta_ts>2013-10-15 23:39:12 -0700</delta_ts>
            <desc>Patch v1 </desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>66835</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxYmQ5Mjc5Li5mN2U0NGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTMtMTAtMTUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIEZsZXNoIG91dCB0aGUgRGF0YWJhc2VQcm9jZXNzIChhbmQgbGF1bmNoIGl0ISkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjg4NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRW5nbGlzaC5scHJv
ai9Mb2NhbGl6YWJsZS5zdHJpbmdzOiBBZGQgYSBsb2NhbGl6YWJsZSBzdHJpbmcuCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBFeHBvcnQgc29tZSBtb3JlIGhl
YWRlcnMuCisKIDIwMTMtMTAtMTQgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUkVHUkVTU0lPTjogQ3Jhc2ggaW4gWE1MRG9jdW1lbnRQYXJzZXI6OnN0YXJ0RWxl
bWVudE5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXph
YmxlLnN0cmluZ3MgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0
cmluZ3MKaW5kZXggYjZkMWEyMC4uYzM3Zjc4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Vu
Z2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpAQCAtMjUsNiArMjUsOSBAQAogLyogVGV4
dCB0cmFjayBjb250YWlucyBjbG9zZWQgY2FwdGlvbnMgKi8KICIlQCBDQyIgPSAiJUAgQ0MiOwog
CisvKiB2aXNpYmxlIG5hbWUgb2YgdGhlIGRhdGFiYXNlIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBp
cyB0aGUgYXBwbGljYXRpb24gbmFtZS4gKi8KKyIlQCBEYXRhYmFzZSBTdG9yYWdlIiA9ICIlQCBE
YXRhYmFzZSBTdG9yYWdlIjsKKwogLyogVGV4dCB0cmFjayBjb250YWlucyBzaW1wbGlmaWVkICgz
cmQgZ3JhZGUgbGV2ZWwpIHN1YnRpdGxlcyAqLwogIiVAIEVhc3kgUmVhZGVyIiA9ICIlQCBFYXN5
IFJlYWRlciI7CiAKQEAgLTM0LDkgKzM3LDYgQEAKIC8qIFRleHQgdHJhY2sgY29udGFpbnMgc3Vi
dGl0bGVzIGZvciB0aGUgZGVhZiBhbmQgaGFyZCBvZiBoZWFyaW5nICovCiAiJUAgU0RIIiA9ICIl
QCBTREgiOwogCi0vKiBWaXNpYmxlIG5hbWUgb2YgdGhlIHNoYXJlZCB3b3JrZXIgcHJvY2Vzcy4g
VGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiAqLwotIiVAIFNoYXJlZCBXb3Jr
ZXIiID0gIiVAIFNoYXJlZCBXb3JrZXIiOwotCiAvKiBWaXNpYmxlIG5hbWUgb2YgdGhlIHdlYiBw
cm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuICovCiAiJUAgV2Vi
IENvbnRlbnQiID0gIiVAIFdlYiBDb250ZW50IjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM0ZWUxOGEuLjk3ZTJlYjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTE3MzQsNiArMTczNCw3IEBACiAJCTUxNzQxRDEyMEIwNzI1OUEwMEVENDQyQyAvKiBIaXN0
b3J5SXRlbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTc0MUQwRTBCMDcyNTlBMDBFRDQ0MkMgLyogSGlzdG9yeUl0ZW0uY3BwICovOyB9OwogCQk1
MTc0RTIwQTEwQTFGNDRGMDBGOTVFNkYgLyogUG9wU3RhdGVFdmVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3NEUyMDgxMEExRjQ0RjAwRjk1RTZG
IC8qIFBvcFN0YXRlRXZlbnQuaCAqLzsgfTsKIAkJNTE3RkJBMUUxNTFBQjE3QzAwQjU3OTU5IC8q
IERPTVdpbmRvd0V4dGVuc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTdGQkExNzE1MUFBNzFCMDBCNTc5NTkgLyogRE9NV2luZG93RXh0ZW5z
aW9uLmNwcCAqLzsgfTsKKwkJNTE4OTAzMjExODA4QzczMTAwMzVFN0ExIC8qIEluZGV4ZWREQi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRUYyOTkx
N0YwRkE2RjAwRTRGQTE2IC8qIEluZGV4ZWREQi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxODlGMDFEMTBCMzdCRDkwMEYzQzczOSAvKiBKU1Bv
cFN0YXRlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTE4OUYwMUIxMEIzN0JEOTAwRjNDNzM5IC8qIEpTUG9wU3RhdGVFdmVudC5jcHAgKi87
IH07CiAJCTUxODlGMDFFMTBCMzdCRDkwMEYzQzczOSAvKiBKU1BvcFN0YXRlRXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxODlGMDFDMTBCMzdC
RDkwMEYzQzczOSAvKiBKU1BvcFN0YXRlRXZlbnQuaCAqLzsgfTsKIAkJNTE4OUYwREUxMEI0NkIw
RTAwRjNDNzM5IC8qIFBvcFN0YXRlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4OUYwREQxMEI0NkIwRTAwRjNDNzM5IC8qIFBvcFN0YXRl
RXZlbnQuY3BwICovOyB9OwpAQCAtMzA5NCwyNSArMzA5NSwyNSBAQAogCQk5NzEyQTVBRDE1MDA0
RURBMDA0OEFGMTAgLyogRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTU0MTUwMDRFREEwMDQ4QUYx
MCAvKiBET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwICovOyB9OwogCQk5NzEyQTVBRTE1MDA0
RURBMDA0OEFGMTAgLyogRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU1NTE1MDA0RURBMDA0OEFGMTAg
LyogRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmggKi87IH07CiAJCTk3MTJBNUIxMTUwMDRFREEw
MDQ4QUYxMCAvKiBJREJBbnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk3MTJBNTU4MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJBbnkuaCAqLzsgfTsKLQkJ
OTcxMkE1QjQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkNhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1NUIxNTAwNEVEQTAwNDhBRjEw
IC8qIElEQkNhbGxiYWNrcy5oICovOyB9OworCQk5NzEyQTVCNDE1MDA0RURBMDA0OEFGMTAgLyog
SURCQ2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NzEyQTU1QjE1MDA0RURBMDA0OEFGMTAgLyogSURCQ2FsbGJhY2tzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTcxMkE1QjYxNTAwNEVE
QTAwNDhBRjEwIC8qIElEQkN1cnNvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTcxMkE1NUQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkN1cnNvci5oICov
OyB9OwogCQk5NzEyQTVCQTE1MDA0RURBMDA0OEFGMTAgLyogSURCQ3Vyc29yQmFja2VuZEludGVy
ZmFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcx
MkE1NjExNTAwNEVEQTAwNDhBRjEwIC8qIElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaCAqLzsg
fTsKIAkJOTcxMkE1QkMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkN1cnNvcldpdGhWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1NjMxNTAw
NEVEQTAwNDhBRjEwIC8qIElEQkN1cnNvcldpdGhWYWx1ZS5oICovOyB9OwogCQk5NzEyQTVCRjE1
MDA0RURBMDA0OEFGMTAgLyogSURCRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTY2MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJEYXRh
YmFzZS5oICovOyB9OwotCQk5NzEyQTVDMzE1MDA0RURBMDA0OEFGMTAgLyogSURCRGF0YWJhc2VC
YWNrZW5kSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NzEyQTU2QTE1MDA0RURBMDA0OEFGMTAgLyogSURCRGF0YWJhc2VCYWNrZW5kSW50
ZXJmYWNlLmggKi87IH07Ci0JCTk3MTJBNUM0MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJEYXRhYmFz
ZUNhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTcxMkE1NkIxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkRhdGFiYXNlQ2FsbGJhY2tzLmggKi87
IH07CisJCTk3MTJBNUMzMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJEYXRhYmFzZUJhY2tlbmRJbnRl
cmZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3
MTJBNTZBMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NzEyQTVD
NDE1MDA0RURBMDA0OEFGMTAgLyogSURCRGF0YWJhc2VDYWxsYmFja3MuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTZCMTUwMDRFREEwMDQ4QUYx
MCAvKiBJREJEYXRhYmFzZUNhbGxiYWNrcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTk3MTJBNUM1MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJEYXRh
YmFzZUNhbGxiYWNrc0ltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTcxMkE1NkMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkRhdGFiYXNlQ2FsbGJh
Y2tzSW1wbC5jcHAgKi87IH07CiAJCTk3MTJBNUM2MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJEYXRh
YmFzZUNhbGxiYWNrc0ltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk3MTJBNTZEMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGwuaCAqLzsgfTsKLQkJOTcxMkE1QzcxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkRhdGFiYXNl
RXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3
MTJBNTZFMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJEYXRhYmFzZUVycm9yLmggKi87IH07CisJCTk3
MTJBNUM3MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJEYXRhYmFzZUVycm9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU2RTE1MDA0RURBMDA0OEFG
MTAgLyogSURCRGF0YWJhc2VFcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTk3MTJBNUM5MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJEYXRhYmFz
ZUV4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NzEyQTU3MDE1MDA0RURBMDA0OEFGMTAgLyogSURCRGF0YWJhc2VFeGNlcHRpb24uY3Bw
ICovOyB9OwotCQk5NzEyQTVDQTE1MDA0RURBMDA0OEFGMTAgLyogSURCRGF0YWJhc2VFeGNlcHRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJB
NTcxMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJEYXRhYmFzZUV4Y2VwdGlvbi5oICovOyB9OworCQk5
NzEyQTVDQTE1MDA0RURBMDA0OEFGMTAgLyogSURCRGF0YWJhc2VFeGNlcHRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTcxMTUwMDRFREEw
MDQ4QUYxMCAvKiBJREJEYXRhYmFzZUV4Y2VwdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3MTJBNUNEMTUwMDRFREEwMDQ4QUYxMCAvKiBJ
REJFdmVudERpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk3MTJBNTc0MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJFdmVudERpc3BhdGNoZXIu
aCAqLzsgfTsKIAkJOTcxMkE1Q0YxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkZhY3RvcnkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTc2MTUwMDRF
REEwMDQ4QUYxMCAvKiBJREJGYWN0b3J5LmggKi87IH07CiAJCTk3MTJBNUQzMTUwMDRFREEwMDQ4
QUYxMCAvKiBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU3QTE1MDA0RURBMDA0OEFGMTAgLyog
SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuY3BwICovOyB9OwogCQk5NzEyQTVENDE1MDA0RURB
MDA0OEFGMTAgLyogSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTdCMTUwMDRFREEwMDQ4QUYxMCAv
KiBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3MTJBNUQ2MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJJ
bmRleC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcx
MkE1N0QxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkluZGV4LmggKi87IH07Ci0JCTk3MTJBNURDMTUw
MDRFREEwMDQ4QUYxMCAvKiBJREJLZXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk3MTJBNTgzMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXkuaCAqLzsg
fTsKLQkJOTcxMkE1REYxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVBhdGguaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTg2MTUwMDRFREEwMDQ4
QUYxMCAvKiBJREJLZXlQYXRoLmggKi87IH07CisJCTk3MTJBNURDMTUwMDRFREEwMDQ4QUYxMCAv
KiBJREJLZXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk3MTJBNTgzMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NzEyQTVERjE1MDA0RURBMDA0OEFGMTAg
LyogSURCS2V5UGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTcxMkE1ODYxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVBhdGguaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzEyQTVFMzE1MDA0RURB
MDA0OEFGMTAgLyogSURCS2V5UmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk3MTJBNThBMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXlSYW5nZS5o
ICovOyB9OwogCQk5NzEyQTVFQTE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTkxMTUw
MDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZS5oICovOyB9OwogCQk5NzEyQTVFRjE1MDA0
RURBMDA0OEFGMTAgLyogSURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU5NjE1MDA0RURBMDA0
OEFGMTAgLyogSURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5jcHAgKi87IH07CkBAIC00ODU0
LDcgKzQ4NTUsNyBAQAogCQlCQzYwRDdDMDBEMjlBNDYzMDBCOTkxOEYgLyogSlNET01Db3JlRXhj
ZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDNjBEN0JFMEQyOUE0NjMwMEI5OTE4RiAvKiBKU0RPTUNvcmVFeGNlcHRpb24uY3BwICovOyB9
OwogCQlCQzYwRDdDMTBEMjlBNDYzMDBCOTkxOEYgLyogSlNET01Db3JlRXhjZXB0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzYwRDdCRjBEMjlB
NDYzMDBCOTkxOEYgLyogSlNET01Db3JlRXhjZXB0aW9uLmggKi87IH07CiAJCUJDNjBEOEYyMEQy
QTExRTAwMEI5OTE4RiAvKiBFeGNlcHRpb25CYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjBEOEYwMEQyQTExRTAwMEI5OTE4RiAvKiBFeGNl
cHRpb25CYXNlLmNwcCAqLzsgfTsKLQkJQkM2MEQ4RjMwRDJBMTFFMDAwQjk5MThGIC8qIEV4Y2Vw
dGlvbkJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDNjBEOEYxMEQyQTExRTAwMEI5OTE4RiAvKiBFeGNlcHRpb25CYXNlLmggKi87IH07CisJCUJD
NjBEOEYzMEQyQTExRTAwMEI5OTE4RiAvKiBFeGNlcHRpb25CYXNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzYwRDhGMTBEMkExMUUwMDBCOTkxOEYg
LyogRXhjZXB0aW9uQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUJDNjBEOTBDMEQyQTE3Q0UwMEI5OTE4RiAvKiBFdmVudEV4Y2VwdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM2MEQ5MDkw
RDJBMTdDRTAwQjk5MThGIC8qIEV2ZW50RXhjZXB0aW9uLmggKi87IH07CiAJCUJDNjBEOUJGMEQy
QTI2OUEwMEI5OTE4RiAvKiBKU0V2ZW50RXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjBEOUJEMEQyQTI2OUEwMEI5OTE4RiAvKiBK
U0V2ZW50RXhjZXB0aW9uLmNwcCAqLzsgfTsKIAkJQkM2MEQ5QzAwRDJBMjY5QTAwQjk5MThGIC8q
IEpTRXZlbnRFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNjBEOUJFMEQyQTI2OUEwMEI5OTE4RiAvKiBKU0V2ZW50RXhjZXB0aW9uLmgg
Ki87IH07CkBAIC04MzA2LDYgKzgzMDcsMjIgQEAKIAkJNTE3NEUyMEIxMEExRjQ5QTAwRjk1RTZG
IC8qIFBvcFN0YXRlRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBvcFN0YXRlRXZl
bnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdGQkExNzE1MUFBNzFCMDBC
NTc5NTkgLyogRE9NV2luZG93RXh0ZW5zaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IERPTVdpbmRvd0V4dGVuc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxN0ZCQTE4MTUxQUE3MUIwMEI1Nzk1OSAvKiBET01XaW5kb3dFeHRlbnNpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NV2luZG93RXh0ZW5zaW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxODkwMzA5MTgwOEJBOEMwMDM1RTdBMSAv
KiBJREJCYWNraW5nU3RvcmVMZXZlbERCLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IElEQkJhY2tp
bmdTdG9yZUxldmVsREIuY3BwOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJC
YWNraW5nU3RvcmVMZXZlbERCLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE4
OTAzMEExODA4QkE4QzAwMzVFN0ExIC8qIElEQkN1cnNvckJhY2tlbmRMZXZlbERCLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IElEQkN1cnNvckJhY2tlbmRMZXZlbERCLmNwcDsgcGF0aCA9IE1vZHVs
ZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQ3Vyc29yQmFja2VuZExldmVsREIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1MTg5MDMwQjE4MDhCQThDMDAzNUU3QTEgLyogSURCRGF0
YWJhc2VCYWNrZW5kTGV2ZWxEQi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBJREJEYXRhYmFzZUJh
Y2tlbmRMZXZlbERCLmNwcDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRGF0
YWJhc2VCYWNrZW5kTGV2ZWxEQi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUx
ODkwMzBDMTgwOEJBOEMwMDM1RTdBMSAvKiBJREJGYWN0b3J5QmFja2VuZExldmVsREIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gSURCRmFjdG9yeUJhY2tlbmRMZXZlbERCLmNwcDsgcGF0aCA9IE1v
ZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRmFjdG9yeUJhY2tlbmRMZXZlbERCLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE4OTAzMEQxODA4QkE4QzAwMzVFN0ExIC8qIElE
Qk9iamVjdFN0b3JlQmFja2VuZExldmVsREIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQi5jcHA7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9sZXZl
bGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MTg5MDMwRTE4MDhCQThDMDAzNUU3QTEgLyogSURCVHJhbnNhY3Rpb25CYWNr
ZW5kTGV2ZWxEQi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBJREJUcmFuc2FjdGlvbkJhY2tlbmRM
ZXZlbERCLmNwcDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rp
b25CYWNrZW5kTGV2ZWxEQi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxODkw
MzBGMTgwOEJBOEMwMDM1RTdBMSAvKiBJREJMZXZlbERCQ29kaW5nLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IElEQkxldmVsREJDb2RpbmcuY3BwOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvbGV2
ZWxkYi9JREJMZXZlbERCQ29kaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTE4OTAzMTAxODA4QkE4QzAwMzVFN0ExIC8qIElEQkN1cnNvckJhY2tlbmRMZXZlbERCLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IElEQkN1cnNvckJhY2tlbmRMZXZlbERCLmg7IHBhdGggPSBNb2R1bGVzL2lu
ZGV4ZWRkYi9sZXZlbGRiL0lEQkN1cnNvckJhY2tlbmRMZXZlbERCLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTUxODkwMzExMTgwOEJBOEMwMDM1RTdBMSAvKiBJREJUcmFuc2FjdGlv
bkJhY2tlbmRMZXZlbERCLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElEQlRyYW5zYWN0aW9uQmFja2VuZExl
dmVsREIuaDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCVHJhbnNhY3Rpb25C
YWNrZW5kTGV2ZWxEQi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTg5MDMxMjE4
MDhCQThDMDAzNUU3QTEgLyogSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBJREJCYWNraW5nU3RvcmVMZXZlbERCLmg7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9sZXZl
bGRiL0lEQkJhY2tpbmdTdG9yZUxldmVsREIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTE4OTAzMTMxODA4QkE4QzAwMzVFN0ExIC8qIElEQkRhdGFiYXNlQmFja2VuZExldmVsREIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQi5oOyBwYXRoID0gTW9k
dWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJEYXRhYmFzZUJhY2tlbmRMZXZlbERCLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxODkwMzE0MTgwOEJBOEMwMDM1RTdBMSAvKiBJREJG
YWN0b3J5QmFja2VuZExldmVsREIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSURCRmFjdG9yeUJhY2tlbmRM
ZXZlbERCLmg7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkZhY3RvcnlCYWNr
ZW5kTGV2ZWxEQi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTg5MDMxNTE4MDhC
QThDMDAzNUU3QTEgLyogSURCTGV2ZWxEQkNvZGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJREJMZXZl
bERCQ29kaW5nLmg7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkxldmVsREJD
b2RpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE4OTAzMTYxODA4QkE4QzAw
MzVFN0ExIC8qIElEQk9iamVjdFN0b3JlQmFja2VuZExldmVsREIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
SURCT2JqZWN0U3RvcmVCYWNrZW5kTGV2ZWxEQi5oOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIv
bGV2ZWxkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRMZXZlbERCLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTUxODkwMzE3MTgwOEJBOEMwMDM1RTdBMSAvKiBJREJUcmFuc2FjdGlvbkNv
b3JkaW5hdG9yTGV2ZWxEQi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBJREJUcmFuc2FjdGlvbkNv
b3JkaW5hdG9yTGV2ZWxEQi5jcHA7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lE
QlRyYW5zYWN0aW9uQ29vcmRpbmF0b3JMZXZlbERCLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTE4OTAzMTgxODA4QkE4QzAwMzVFN0ExIC8qIElEQlRyYW5zYWN0aW9uQ29vcmRp
bmF0b3JMZXZlbERCLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3JM
ZXZlbERCLmg7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQlRyYW5zYWN0aW9u
Q29vcmRpbmF0b3JMZXZlbERCLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODlG
MDFCMTBCMzdCRDkwMEYzQzczOSAvKiBKU1BvcFN0YXRlRXZlbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQb3BTdGF0ZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTE4OUYwMUMxMEIzN0JEOTAwRjNDNzM5IC8qIEpTUG9wU3RhdGVF
dmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1BvcFN0YXRlRXZlbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4OUYwREQxMEI0NkIwRTAwRjNDNzM5
IC8qIFBvcFN0YXRlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUG9wU3RhdGVFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDg5
MCw2ICsxNDkwNywyOSBAQAogCQkJdGFiV2lkdGggPSA0OwogCQkJdXNlc1RhYnMgPSAwOwogCQl9
OworCQk1MTg5MDMwODE4MDhCQTM3MDAzNUU3QTEgLyogbGV2ZWxkYiAqLyA9IHsKKwkJCWlzYSA9
IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNTE4OTAzMDkxODA4QkE4QzAwMzVFN0Ex
IC8qIElEQkJhY2tpbmdTdG9yZUxldmVsREIuY3BwICovLAorCQkJCTUxODkwMzBBMTgwOEJBOEMw
MDM1RTdBMSAvKiBJREJDdXJzb3JCYWNrZW5kTGV2ZWxEQi5jcHAgKi8sCisJCQkJNTE4OTAzMEIx
ODA4QkE4QzAwMzVFN0ExIC8qIElEQkRhdGFiYXNlQmFja2VuZExldmVsREIuY3BwICovLAorCQkJ
CTUxODkwMzBDMTgwOEJBOEMwMDM1RTdBMSAvKiBJREJGYWN0b3J5QmFja2VuZExldmVsREIuY3Bw
ICovLAorCQkJCTUxODkwMzBEMTgwOEJBOEMwMDM1RTdBMSAvKiBJREJPYmplY3RTdG9yZUJhY2tl
bmRMZXZlbERCLmNwcCAqLywKKwkJCQk1MTg5MDMwRTE4MDhCQThDMDAzNUU3QTEgLyogSURCVHJh
bnNhY3Rpb25CYWNrZW5kTGV2ZWxEQi5jcHAgKi8sCisJCQkJNTE4OTAzMEYxODA4QkE4QzAwMzVF
N0ExIC8qIElEQkxldmVsREJDb2RpbmcuY3BwICovLAorCQkJCTUxODkwMzEwMTgwOEJBOEMwMDM1
RTdBMSAvKiBJREJDdXJzb3JCYWNrZW5kTGV2ZWxEQi5oICovLAorCQkJCTUxODkwMzExMTgwOEJB
OEMwMDM1RTdBMSAvKiBJREJUcmFuc2FjdGlvbkJhY2tlbmRMZXZlbERCLmggKi8sCisJCQkJNTE4
OTAzMTIxODA4QkE4QzAwMzVFN0ExIC8qIElEQkJhY2tpbmdTdG9yZUxldmVsREIuaCAqLywKKwkJ
CQk1MTg5MDMxMzE4MDhCQThDMDAzNUU3QTEgLyogSURCRGF0YWJhc2VCYWNrZW5kTGV2ZWxEQi5o
ICovLAorCQkJCTUxODkwMzE0MTgwOEJBOEMwMDM1RTdBMSAvKiBJREJGYWN0b3J5QmFja2VuZExl
dmVsREIuaCAqLywKKwkJCQk1MTg5MDMxNTE4MDhCQThDMDAzNUU3QTEgLyogSURCTGV2ZWxEQkNv
ZGluZy5oICovLAorCQkJCTUxODkwMzE2MTgwOEJBOEMwMDM1RTdBMSAvKiBJREJPYmplY3RTdG9y
ZUJhY2tlbmRMZXZlbERCLmggKi8sCisJCQkJNTE4OTAzMTcxODA4QkE4QzAwMzVFN0ExIC8qIElE
QlRyYW5zYWN0aW9uQ29vcmRpbmF0b3JMZXZlbERCLmNwcCAqLywKKwkJCQk1MTg5MDMxODE4MDhC
QThDMDAzNUU3QTEgLyogSURCVHJhbnNhY3Rpb25Db29yZGluYXRvckxldmVsREIuaCAqLywKKwkJ
CSk7CisJCQluYW1lID0gbGV2ZWxkYjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CiAJCTU5QjU5NzcxMTEwODY1NTYwMDcxNTlFOCAvKiBqc2MgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTY2ODAsNiArMTY3MjAsNyBAQAogCQk5NzEyQTU1
MzE1MDA0RTNDMDA0OEFGMTAgLyogaW5kZXhlZGRiICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTg5MDMwODE4MDhCQTM3MDAzNUU3QTEgLyogbGV2ZWxk
YiAqLywKIAkJCQk5NzEyQTU1NDE1MDA0RURBMDA0OEFGMTAgLyogRE9NV2luZG93SW5kZXhlZERh
dGFiYXNlLmNwcCAqLywKIAkJCQk5NzEyQTU1NTE1MDA0RURBMDA0OEFGMTAgLyogRE9NV2luZG93
SW5kZXhlZERhdGFiYXNlLmggKi8sCiAJCQkJOTcxMkE1NTYxNTAwNEVEQTAwNDhBRjEwIC8qIERP
TVdpbmRvd0luZGV4ZWREYXRhYmFzZS5pZGwgKi8sCkBAIC0yMzMwOCw2ICsyMzM0OSw3IEBACiAJ
CQkJMzEwNjAzNzUxNDMyODE5QzAwQUJGNEJBIC8qIEpTV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTMxNkZFMDcyMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktpdENT
U0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwNzQwRTZDQ0JFRTAwQkY2
MDg4IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE4
OTAzMjExODA4QzczMTAwMzVFN0ExIC8qIEluZGV4ZWREQi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDk4MzkxNDAwRjFFNzY3NTAwQzIzNzgyIC8qIEpTV2ViS2l0Q1NTTWF0cml4LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxNUI4QjdDOTE2NTJDNTIyMDAzNkVGNTUgLyogSlNXZWJLaXRDU1NNaXhGdW5j
dGlvblZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QUQwQTU5NTE0Qzg4MzM2MDAwRDgzQzUg
LyogSlNXZWJLaXRDU1NSZWdpb25SdWxlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBj
MjYyMzhjLi42OTcwZWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNzkgQEAKIDIwMTMtMTAtMTUg
IEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAgICAgIEZsZXNoIG91dCB0
aGUgRGF0YWJhc2VQcm9jZXNzIChhbmQgbGF1bmNoIGl0ISkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjg4NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhY3R1YWwgcHJvY2Vz
cyBsYXVuY2hpbmcgYW5kIGJhc2ljIG1lc3NhZ2luZyBpbmZyYXN0cnVjdHVyZSBmb3IgdGhlIERh
dGFiYXNlUHJvY2Vzcy4KKworICAgICAgICBJdCBzdGlsbCBkb2VzIHZlcnkgbGl0dGxlIGV4Y2Vw
dCBleGlzdC4KKworICAgICAgICBQcm9qZWN0IGZpbGUgc3R1ZmY6CisgICAgICAgICogV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisKKyAgICAgICAgV2ViQ29udGV4dCBvd25zIHRoZSBEYXRhYmFzZVByb2Nlc3MgKG11Y2gg
bGlrZSB0aGUgTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6ZW5zdXJlRGF0YWJhc2VQcm9jZXNz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6Z2V0RGF0YWJhc2VQcm9jZXNzQ29ubmVj
dGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKworICAgICAgICBBZGQg
YSBiYXNpYyBEYXRhYmFzZVByb2Nlc3MgdGhhdCAtIGZvciBub3cgLSBjYW4gb25seSByZXR1cm4g
YSBuZXcgQ29ubmVjdGlvbiBmb3IgYSBXZWJQcm9jZXNzOgorICAgICAgICAqIERhdGFiYXNlUHJv
Y2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nl
c3M6OmNyZWF0ZURhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogRGF0
YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vz
cy9EYXRhYmFzZVByb2Nlc3MubWVzc2FnZXMuaW46IEFkZGVkLgorCisgICAgICAgIEFkZCBhbiBv
YmplY3QgdG8gcmVwcmVzZW50IGEgc2luZ2xlIGNvbm5lY3Rpb24gdG8gYSBzaW5nbGUgV2ViUHJv
Y2VzczoKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb246OkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6fkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29u
bmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAq
IERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKworICAg
ICAgICBCYXNpYyBEYXRhYmFzZVByb2Nlc3NQcm94eSB3aXRoIHRoZSBhYmlsaXR5IHRvIGFzayB0
aGUgRGF0YWJhc2VQcm9jZXNzIGZvciBhIGNvbm5lY3Rpb24gdG8gaGFuZCBiYWNrIHRvIGEgV2Vi
UHJvY2VzczoKKyAgICAgICAgKiBVSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzUHJveHk6OkRhdGFiYXNl
UHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzUHJveHk6Omdl
dERhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVBy
b2Nlc3NQcm94eTo6ZGlkQ3JlYXRlRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyk6
CisgICAgICAgICogVUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW46IEFkZGVkLgorCisgICAgICAgIEFkZCBhbiBvYmplY3QgdG8gcmVwcmVzZW50IGEgV2Vi
UHJvY2Vzc+KAmXMgY29ubmVjdGlvbiB0byBhIERhdGFiYXNlUHJvY2VzczoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OldlYlRvRGF0
YWJhc2VQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlRvRGF0YWJhc2VQ
cm9jZXNzQ29ubmVjdGlvbjo6fldlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1l
c3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0
aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0
YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbjo6Y29ubmVjdGlvbik6CisKKyAgICAg
ICAgR2l2ZSBXZWJQcm9jZXNzKFByb3h5KSBhbiBhY2Nlc3NvciBmb3IgYSBXZWIgLT4gRGF0YWJh
c2UgcHJvY2VzcyBjb25uZWN0aW9uOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OndlYlRvRGF0YWJhc2VQcm9jZXNzQ29u
bmVjdGlvbkNsb3NlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OndlYlRvRGF0YWJh
c2VQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3Vy
ZVdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Z2V0RGF0YWJhc2VQcm9jZXNzQ29ubmVj
dGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJREJGYWN0b3J5QmFja2VuZDo6b3Blbik6IEFjY2VzcyB0aGUgZGF0
YWJhc2UgcHJvY2VzcyBjb25uZWN0aW9uIHRvIHRlc3QgdGhhdCBpdCB3b3Jrcy4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVJREJGYWN0b3J5
QmFja2VuZCk6IEtlZXAgbm9uLURBVEFCQVNFX1BST0NFU1MgYnVpbGRzIHdvcmtpbmcuCisKKzIw
MTMtMTAtMTUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCiAgICAgICAgIE1v
dmUgV2ViUHJvY2Vzcy9JbmRleGVkREIgdG8gV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERC
CiAKICAgICAgICAgUnViYmVyc3RhbXBlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcAppbmRl
eCBiNDUwMzg3Li41MTI2OGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcApAQCAtMjYsNiArMjYsOSBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkRhdGFiYXNlUHJvY2Vzcy5oIgogCisjaW5jbHVkZSAiRGF0YWJh
c2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiRGF0YWJhc2VQcm9jZXNzUHJv
eHlNZXNzYWdlcy5oIgorCiAjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwpAQCAtNTYsMTQgKzU5LDYgQEAgYm9vbCBEYXRhYmFzZVByb2Nlc3M6
OnNob3VsZFRlcm1pbmF0ZSgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRGF0YWJhc2VQ
cm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9u
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBpZiAobWVzc2FnZVJl
Y2VpdmVyTWFwKCkuZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICAvLyBGSVhNRTogQ2FsbCB0aHJvdWdoIHRvIGEgbmV3IGRpZFJlY2Vp
dmVEYXRhYmFzZVByb2Nlc3NNZXNzYWdlIG1ldGhvZCB3aGVuIG1lc3NhZ2VzIGFjdHVhbGx5IGV4
aXN0LgotfQotCiB2b2lkIERhdGFiYXNlUHJvY2Vzczo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiopCiB7CiAgICAgUnVuTG9vcDo6Y3VycmVudCgpLT5zdG9wKCk7CkBAIC03NCw2ICs2OSwy
NCBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzczo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpTdAogICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS0+c3Rv
cCgpOwogfQogCit2b2lkIERhdGFiYXNlUHJvY2Vzczo6Y3JlYXRlRGF0YWJhc2VUb1dlYlByb2Nl
c3NDb25uZWN0aW9uKCkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgLy8gQ3JlYXRlIHRoZSBs
aXN0ZW5pbmcgcG9ydC4KKyAgICBtYWNoX3BvcnRfdCBsaXN0ZW5pbmdQb3J0OworICAgIG1hY2hf
cG9ydF9hbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBNQUNIX1BPUlRfUklHSFRfUkVDRUlWRSwg
Jmxpc3RlbmluZ1BvcnQpOworCisgICAgLy8gQ3JlYXRlIGEgbGlzdGVuaW5nIGNvbm5lY3Rpb24u
CisgICAgUmVmUHRyPERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbj4gY29ubmVjdGlvbiA9
IERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKENvcmVJUEM6OkNvbm5lY3Rp
b246OklkZW50aWZpZXIobGlzdGVuaW5nUG9ydCkpOworICAgIG1fZGF0YWJhc2VUb1dlYlByb2Nl
c3NDb25uZWN0aW9ucy5hcHBlbmQoY29ubmVjdGlvbi5yZWxlYXNlKCkpOworCisgICAgQ29yZUlQ
Qzo6QXR0YWNobWVudCBjbGllbnRQb3J0KGxpc3RlbmluZ1BvcnQsIE1BQ0hfTVNHX1RZUEVfTUFL
RV9TRU5EKTsKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpE
YXRhYmFzZVByb2Nlc3NQcm94eTo6RGlkQ3JlYXRlRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uKGNsaWVudFBvcnQpLCAwKTsKKyNlbHNlCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyNlbmRp
ZgorfQorCiAjaWYgIVBMQVRGT1JNKE1BQykKIHZvaWQgRGF0YWJhc2VQcm9jZXNzOjppbml0aWFs
aXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJv
Y2Vzcy5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5o
CmluZGV4IGE2MTQ0YjQuLjRiY2RiM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFz
ZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmgKQEAgLTMyLDYgKzMyLDggQEAKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKK2NsYXNzIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjsKKwogc3Ry
dWN0IERhdGFiYXNlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKIAogY2xhc3MgRGF0YWJhc2VQ
cm9jZXNzIDogcHVibGljIENoaWxkUHJvY2VzcyAgewpAQCAtNTQsNiArNTYsMTEgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgQ29yZUlQQzo6U3RyaW5nUmVm
ZXJlbmNlIG1lc3NhZ2VOYW1lKSBPVkVSUklERTsKKworICAgIC8vIE1lc3NhZ2UgSGFuZGxlcnMK
KyAgICB2b2lkIGNyZWF0ZURhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpOworCisgICAg
VmVjdG9yPFJlZlB0cjxEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+PiBtX2RhdGFiYXNl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3Mu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9j
ZXNzLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4NWRm
Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0
YWJhc2VQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKyMgQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMg
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQor
CittZXNzYWdlcyAtPiBEYXRhYmFzZVByb2Nlc3MgeworICAgICMgQ3JlYXRlcyBhIGNvbm5lY3Rp
b24gZm9yIGNvbW11bmljYXRpb24gd2l0aCBhIFdlYlByb2Nlc3MKKyAgICBDcmVhdGVEYXRhYmFz
ZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQorfQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEFCQVNF
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0
YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1ODQzZmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNw
cApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIgorCisjaW5jbHVkZSA8V2Vi
Q29yZS9SdW5Mb29wLmg+CisKKyNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKKwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXNzUmVmUHRyPERh
dGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbj4gRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uOjpjcmVhdGUoQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRl
bnRpZmllcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IERhdGFiYXNlVG9XZWJQcm9jZXNz
Q29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOworfQorCitEYXRhYmFzZVRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihDb3JlSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIG1fY29u
bmVjdGlvbiA9IENvcmVJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVNlcnZlckNvbm5lY3Rpb24oY29u
bmVjdGlvbklkZW50aWZpZXIsIHRoaXMsIFJ1bkxvb3A6Om1haW4oKSk7CisgICAgbV9jb25uZWN0
aW9uLT5zZXRPbmx5U2VuZE1lc3NhZ2VzQXNEaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5
V2hlblByb2Nlc3NpbmdTdWNoQU1lc3NhZ2UodHJ1ZSk7CisgICAgbV9jb25uZWN0aW9uLT5vcGVu
KCk7Cit9CisKK0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6fkRhdGFiYXNlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbigpCit7CisKK30KKwordm9pZCBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpCit7CisKK30KKwordm9pZCBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb246OmRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKQoreworCit9CisKK3ZvaWQg
RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVj
ZWl2ZXJOYW1lLCBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCit7CisKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0VfUFJP
Q0VTUykKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQyYjFiZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25faAorI2RlZmluZSBEYXRhYmFzZVRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25faAorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorCisjaWYgRU5B
QkxFKERBVEFCQVNFX1BST0NFU1MpCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBEYXRh
YmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxEYXRhYmFzZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24+LCBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQgeworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bj4gY3JlYXRlKENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworICAgIH5EYXRhYmFz
ZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKworcHJpdmF0ZToKKyAgICBEYXRhYmFzZVRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24oQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CisKKyAg
ICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rp
b24qKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJl
Y2VpdmVyTmFtZSwgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBPVkVSUklE
RTsKKworICAgIFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShEQVRBQkFTRV9QUk9D
RVNTKQorI2VuZGlmIC8vIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbl9oClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNv
dXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNTU1
MTc0Yi4uYjNmOTg4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMu
bWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yMiw2ICsy
Miw3IEBACiAKIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikgXAorICAgICQoV2ViS2l0MikvRGF0
YWJhc2VQcm9jZXNzIFwKICAgICAkKFdlYktpdDIpL05ldHdvcmtQcm9jZXNzIFwKICAgICAkKFdl
YktpdDIpL05ldHdvcmtQcm9jZXNzL21hYyBcCiAgICAgJChXZWJLaXQyKS9QbHVnaW5Qcm9jZXNz
IFwKQEAgLTQ2LDYgKzQ3LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNz
L1dlYlBhZ2UgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2VzcyBcCiAgICAgJChXZWJLaXQyKS9V
SVByb2Nlc3MgXAorICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL0RhdGFiYXNlcyBcCiAgICAgJChX
ZWJLaXQyKS9VSVByb2Nlc3MvRG93bmxvYWRzIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9O
ZXR3b3JrIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29s
cyBcCkBAIC01OSw2ICs2MSw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIEF1dGhlbnRp
Y2F0aW9uTWFuYWdlciBcCiAgICAgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyIFwKICAgICBDdXN0b21Q
cm90b2NvbE1hbmFnZXJQcm94eSBcCisgICAgRGF0YWJhc2VQcm9jZXNzIFwKKyAgICBEYXRhYmFz
ZVByb2Nlc3NQcm94eSBcCiAgICAgRHJhd2luZ0FyZWEgXAogICAgIERyYXdpbmdBcmVhUHJveHkg
XAogICAgIERvd25sb2FkUHJveHkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBjNWIzZGQ5
Li4zOGQ4ZWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2Vz
L0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRhdGFiYXNlUHJvY2Vzc1Byb3h5LmgiCiAKKyNp
bmNsdWRlICJEYXRhYmFzZVByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQu
aCIKIAogI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQpAQCAtNDEsNiArNDIsNyBAQCBQYXNz
UmVmUHRyPERhdGFiYXNlUHJvY2Vzc1Byb3h5PiBEYXRhYmFzZVByb2Nlc3NQcm94eTo6Y3JlYXRl
KFdlYkNvbnRleHQqIGNvbnRleAogCiBEYXRhYmFzZVByb2Nlc3NQcm94eTo6RGF0YWJhc2VQcm9j
ZXNzUHJveHkoV2ViQ29udGV4dCogY29udGV4dCkKICAgICA6IG1fd2ViQ29udGV4dChjb250ZXh0
KQorICAgICwgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzKDApCiB7CiAgICAgY29ubmVj
dCgpOwogfQpAQCAtNjQsMTUgKzY2LDE2IEBAIHZvaWQgRGF0YWJhc2VQcm9jZXNzUHJveHk6OmNv
bm5lY3Rpb25XaWxsQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCiB7CiB9CiAKLXZvaWQgRGF0
YWJhc2VQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQordm9pZCBEYXRh
YmFzZVByb2Nlc3NQcm94eTo6Z2V0RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbihQYXNzUmVmUHRy
PE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldERhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246
OkRlbGF5ZWRSZXBseT4gcmVwbHkpCiB7Ci0gICAgaWYgKGRpc3BhdGNoTWVzc2FnZShjb25uZWN0
aW9uLCBkZWNvZGVyKSkKLSAgICAgICAgcmV0dXJuOworICAgIG1fcGVuZGluZ0Nvbm5lY3Rpb25S
ZXBsaWVzLmFwcGVuZChyZXBseSk7CiAKLSAgICBpZiAobV93ZWJDb250ZXh0LT5kaXNwYXRjaE1l
c3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlcikpCisgICAgaWYgKGlzTGF1bmNoaW5nKCkpIHsKKyAg
ICAgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzKys7CiAgICAgICAgIHJldHVybjsK
KyAgICB9CiAKLSAgICAvLyBGSVhNRTogQ2FsbCB0aHJvdWdoIHRvIGEgbmV3IGRpZFJlY2VpdmVE
YXRhYmFzZVByb2Nlc3NQcm94eU1lc3NhZ2UgbWV0aG9kIHdoZW4gbWVzc2FnZXMgYWN0dWFsbHkg
ZXhpc3QuCisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpEYXRhYmFzZVByb2Nlc3M6
OkNyZWF0ZURhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpLCAwLCBDb3JlSVBDOjpEaXNw
YXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOwogfQogCiB2b2lkIERhdGFi
YXNlUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikKQEAgLTgzLDYg
Kzg2LDIwIEBAIHZvaWQgRGF0YWJhc2VQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQCiB7CiB9CiAKK3ZvaWQgRGF0YWJhc2VQ
cm9jZXNzUHJveHk6OmRpZENyZWF0ZURhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihjb25z
dCBDb3JlSVBDOjpBdHRhY2htZW50JiBjb25uZWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBBU1NF
UlQoIW1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzLmlzRW1wdHkoKSk7CisKKyAgICAvLyBHcmFi
IHRoZSBmaXJzdCBwZW5kaW5nIGNvbm5lY3Rpb24gcmVwbHkuCisgICAgUmVmUHRyPE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzUHJveHk6OkdldERhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRS
ZXBseT4gcmVwbHkgPSBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy50YWtlRmlyc3QoKTsKKwor
I2lmIFBMQVRGT1JNKE1BQykKKyAgICByZXBseS0+c2VuZChDb3JlSVBDOjpBdHRhY2htZW50KGNv
bm5lY3Rpb25JZGVudGlmaWVyLnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKKyNl
bHNlCisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyNlbmRpZgorfQorCiB2b2lkIERhdGFiYXNlUHJv
Y2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hlciwg
Q29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKIHsK
ICAgICBDaGlsZFByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKGxhdW5jaGVyLCBjb25u
ZWN0aW9uSWRlbnRpZmllcik7CkBAIC05MSw2ICsxMDgsMTEgQEAgdm9pZCBEYXRhYmFzZVByb2Nl
c3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNoZXIsIENv
cmVJUEMKICAgICAgICAgLy8gRklYTUU6IERvIGJldHRlciBjbGVhbnVwIGhlcmUuCiAgICAgICAg
IHJldHVybjsKICAgICB9CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9udW1QZW5k
aW5nQ29ubmVjdGlvblJlcXVlc3RzOyArK2kpCisgICAgICAgIGNvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6RGF0YWJhc2VQcm9jZXNzOjpDcmVhdGVEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24oKSwgMCk7CisgICAgCisgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzID0g
MDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmgKaW5kZXggM2Rl
ZDQzYi4uZTVhMTM1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RhdGFi
YXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuaApAQCAtMzAsNiArMzAsNyBAQAogCiAj
aW5jbHVkZSAiQ2hpbGRQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJQcm9jZXNzTGF1bmNoZXIu
aCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgPHd0Zi9E
ZXF1ZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQxLDYgKzQyLDggQEAgcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFiYXNlUHJvY2Vzc1Byb3h5PiBjcmVhdGUoV2ViQ29u
dGV4dCopOwogICAgIH5EYXRhYmFzZVByb2Nlc3NQcm94eSgpOwogCisgICAgdm9pZCBnZXREYXRh
YmFzZVByb2Nlc3NDb25uZWN0aW9uKFBhc3NSZWZQdHI8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94
eTo6R2V0RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5Pik7CisKIHByaXZh
dGU6CiAgICAgRGF0YWJhc2VQcm9jZXNzUHJveHkoV2ViQ29udGV4dCopOwogCkBAIC01NCwxMiAr
NTcsMTggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlUmVjZWl2ZXJOYW1lLCBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIE9W
RVJSSURFOwogCisgICAgLy8gTWVzc2FnZSBoYW5kbGVycworICAgIHZvaWQgZGlkQ3JlYXRlRGF0
YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IENvcmVJUEM6OkF0dGFjaG1lbnQmKTsK
KwogICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CiAgICAgdmlydHVhbCB2b2lkIGRpZEZp
bmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyKSBPVkVSUklERTsKIAogICAgIHZvaWQgcGxhdGZvcm1HZXRMYXVuY2hPcHRpb25zKFBy
b2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYpOwogCiAgICAgV2ViQ29udGV4dCogbV93ZWJD
b250ZXh0OworCisgICAgdW5zaWduZWQgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzOwor
ICAgIERlcXVlPFJlZlB0cjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXREYXRhYmFzZVBy
b2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+PiBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGll
czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzExMzAyNQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0
YWJhc2VQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOSBAQAorIyBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NF
U1MpCisKK21lc3NhZ2VzIC0+IERhdGFiYXNlUHJvY2Vzc1Byb3h5IHsKKyAgICBEaWRDcmVhdGVE
YXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oQ29yZUlQQzo6QXR0YWNobWVudCBjb25uZWN0
aW9uSWRlbnRpZmllcikKK30KKworI2VuZGlmIC8vIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IDk1ZDNiYzdlLi42ZTli
MDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBAIC00MDYsNiAr
NDA2LDI1IEBAIHZvaWQgV2ViQ29udGV4dDo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFBh
c3NSZWZQdHI8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShEQVRBQkFTRV9QUk9DRVNTKQordm9pZCBXZWJDb250ZXh0OjplbnN1cmVEYXRhYmFzZVByb2Nl
c3MoKQoreworICAgIGlmIChtX2RhdGFiYXNlUHJvY2VzcykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9kYXRhYmFzZVByb2Nlc3MgPSBEYXRhYmFzZVByb2Nlc3NQcm94eTo6Y3JlYXRlKHRoaXMp
OworfQorCit2b2lkIFdlYkNvbnRleHQ6OmdldERhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oUGFz
c1JlZlB0cjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXREYXRhYmFzZVByb2Nlc3NDb25u
ZWN0aW9uOjpEZWxheWVkUmVwbHk+IHJlcGx5KQoreworICAgIEFTU0VSVChyZXBseSk7CisKKyAg
ICBlbnN1cmVEYXRhYmFzZVByb2Nlc3MoKTsKKyAgICBBU1NFUlQobV9kYXRhYmFzZVByb2Nlc3Mp
OworCisgICAgbV9kYXRhYmFzZVByb2Nlc3MtPmdldERhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24o
cmVwbHkpOworfQorI2VuZGlmCiAKIHZvaWQgV2ViQ29udGV4dDo6d2lsbFN0YXJ0VXNpbmdQcml2
YXRlQnJvd3NpbmcoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKaW5kZXgg
N2NkODM2My4uZTAxMzc1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCkBA
IC01NCw2ICs1NCwxMCBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNT
KQorI2luY2x1ZGUgIkRhdGFiYXNlUHJvY2Vzc1Byb3h5LmgiCisjZW5kaWYKKwogI2lmIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eS5oIgogI2Vu
ZGlmCkBAIC0yNzYsNiArMjgwLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGdldE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbihQYXNzUmVmUHRyPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5Pik7CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShEQVRBQkFTRV9QUk9DRVNTKQorICAgIHZvaWQgZW5zdXJlRGF0YWJhc2VQcm9jZXNzKCk7
CisgICAgdm9pZCBnZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKFBhc3NSZWZQdHI8TWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXll
ZFJlcGx5Pik7CisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIHNldFByb2Nl
c3NTdXBwcmVzc2lvbkVuYWJsZWQoYm9vbCk7CkBAIC00ODQsNiArNDkyLDEwIEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3VzZXNOZXR3b3JrUHJvY2VzczsKICAgICBSZWZQdHI8TmV0d29ya1Byb2Nl
c3NQcm94eT4gbV9uZXR3b3JrUHJvY2VzczsKICNlbmRpZgorCisjaWYgRU5BQkxFKERBVEFCQVNF
X1BST0NFU1MpCisgICAgUmVmUHRyPERhdGFiYXNlUHJvY2Vzc1Byb3h5PiBtX2RhdGFiYXNlUHJv
Y2VzczsKKyNlbmRpZgogICAgIAogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxEaWN0aW9u
YXJ5Q2FsbGJhY2s+PiBtX2RpY3Rpb25hcnlDYWxsYmFja3M7CiAgICAgSGFzaE1hcDx1aW50NjRf
dCwgUmVmUHRyPFN0YXRpc3RpY3NSZXF1ZXN0Pj4gbV9zdGF0aXN0aWNzUmVxdWVzdHM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQ2YjY2YTcu
LjBjY2EzMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCkBAIC0zMzYsNiArMzM2LDEzIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXROZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJvY2VzCiB9CiAjZW5k
aWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKIAorI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9D
RVNTKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldERhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24o
UGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXREYXRhYmFzZVByb2Nlc3ND
b25uZWN0aW9uOjpEZWxheWVkUmVwbHk+IHJlcGx5KQoreworICAgIG1fY29udGV4dC0+Z2V0RGF0
YWJhc2VQcm9jZXNzQ29ubmVjdGlvbihyZXBseSk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKERBVEFC
QVNFX1BST0NFU1MpCisKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYg
ZGVjb2RlcikKIHsKICAgICBpZiAoZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDFmODQ5
NzMuLjgzZGQzOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmgKQEAgLTE1Miw2ICsxNTIsOSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShORVRXT1JLX1BST0NF
U1MpCiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oUGFzc1JlZlB0cjxNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5
ZWRSZXBseT4pOwogI2VuZGlmCisjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCisgICAgdm9p
ZCBnZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKFBhc3NSZWZQdHI8TWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6R2V0RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5Pik7
CisjZW5kaWYKIAogICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIGZyaWVu
ZCBjbGFzcyBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZGE2OTE5OS4u
ZDhkYTgwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC00NCw0ICs0NCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nl
c3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAg
ICBHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSAtPiAoQ29yZUlQQzo6QXR0YWNobWVudCBj
b25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCiAjZW5kaWYKKyNpZiBFTkFCTEUoREFUQUJBU0VfUFJP
Q0VTUykKKyAgICBHZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKCkgLT4gKENvcmVJUEM6OkF0
dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSkgRGVsYXllZAorI2VuZGlmCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMGZlNjI4
MS4uZjQzMTg3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNDI2LDYgKzQyNiwxNCBAQAogCQk1MTI5MzVEODEyODhEMTk0MDBB
NEI2OTUgLyogV2ViQ29udGV4dE1lbnVJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTI5MzVENjEyODhEMTk0MDBBNEI2OTUgLyogV2ViQ29udGV4
dE1lbnVJdGVtLmggKi87IH07CiAJCTUxMjkzNUUzMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3Rl
ZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTI5MzVFMTEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0
ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwICovOyB9OwogCQk1MTI5MzVFNDEyODhE
OTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjkzNUUyMTI4OEQ5
NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oICovOyB9
OworCQk1MTJBOTc1QjE4MERGQzg4MDAzOUExNDkgLyogV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25u
ZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMkE5NzU5MTgwREZDODgwMDM5QTE0OSAvKiBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwICovOyB9OworCQk1MTJBOTc1QzE4MERGQzg4MDAzOUExNDkgLyogV2ViVG9EYXRhYmFz
ZVByb2Nlc3NDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTJBOTc1QTE4MERGQzg4MDAzOUExNDkgLyogV2ViVG9EYXRhYmFzZVByb2Nl
c3NDb25uZWN0aW9uLmggKi87IH07CisJCTUxMkE5NzYwMTgwRTAzMUQwMDM5QTE0OSAvKiBEYXRh
YmFzZVByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyQTk3NUUxODBFMDMxNjAwMzlBMTQ5IC8qIERhdGFiYXNl
UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTUxMkE5NzYxMTgwRTAzMUQwMDM5
QTE0OSAvKiBEYXRhYmFzZVByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyQTk3NUYxODBFMDMxNjAwMzlBMTQ5IC8qIERhdGFi
YXNlUHJvY2Vzc01lc3NhZ2VzLmggKi87IH07CisJCTUxMkE5NzY0MTgwRTA0RDUwMDM5QTE0OSAv
KiBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyQTk3NjIxODBFMDRENTAwMzlBMTQ5IC8qIERh
dGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi87IH07CisJCTUxMkE5NzY1MTgwRTA0
RDUwMDM5QTE0OSAvKiBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkE5NzYzMTgwRTA0RDUwMDM5
QTE0OSAvKiBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLzsgfTsKKwkJNTEyQTk3
NjkxODBFMDlCODAwMzlBMTQ5IC8qIERhdGFiYXNlUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkE5
NzY3MTgwRTA5QjgwMDM5QTE0OSAvKiBEYXRhYmFzZVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07CisJCTUxMkE5NzZBMTgwRTA5QjgwMDM5QTE0OSAvKiBEYXRhYmFzZVByb2Nl
c3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTJBOTc2ODE4MEUwOUI4MDAzOUExNDkgLyogRGF0YWJhc2VQcm9jZXNzUHJveHlN
ZXNzYWdlcy5oICovOyB9OwogCQk1MTJDMDY4ODE2MzhGNjdFMDBBQkI5MTEgLyogSG9zdFJlY29y
ZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJD
MDY4NjE2MzhGNjdFMDBBQkI5MTEgLyogSG9zdFJlY29yZC5jcHAgKi87IH07CiAJCTUxMkMwNjg5
MTYzOEY2N0UwMEFCQjkxMSAvKiBIb3N0UmVjb3JkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJDMDY4NzE2MzhGNjdFMDBBQkI5MTEgLyogSG9zdFJl
Y29yZC5oICovOyB9OwogCQk1MTJDMDY5MDE2MzkwRTY5MDBBQkI5MTEgLyogTmV0d29ya1Jlc291
cmNlTG9hZFNjaGVkdWxlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMkMwNjhGMTYzOTBFNjkwMEFCQjkxMSAvKiBOZXR3b3JrUmVzb3VyY2VM
b2FkU2NoZWR1bGVyTWFjLm1tICovOyB9OwpAQCAtMTg2MCw2ICsxODY4LDE2IEBACiAJCTUxMjkz
NUQ2MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dE1lbnVJdGVtLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxMjkzNUUxMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRs
ZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUUyMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3Rl
ZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1MTJBOTc1OTE4MERGQzg4MDAzOUExNDkgLyogV2ViVG9EYXRh
YmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHBhdGggPSBEYXRhYmFz
ZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTEyQTk3NUExODBERkM4ODAwMzlBMTQ5IC8qIFdlYlRvRGF0YWJhc2VQcm9j
ZXNzQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJUb0Rh
dGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaDsgcGF0aCA9IERhdGFiYXNlcy9XZWJUb0RhdGFiYXNl
UHJvY2Vzc0Nvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyQTk3
NUQxODBFMDJBMDAwMzlBMTQ5IC8qIERhdGFiYXNlUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBE
YXRhYmFzZVByb2Nlc3MubWVzc2FnZXMuaW47IHBhdGggPSBEYXRhYmFzZVByb2Nlc3MvRGF0YWJh
c2VQcm9jZXNzLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJB
OTc1RTE4MEUwMzE2MDAzOUExNDkgLyogRGF0YWJhc2VQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGFiYXNlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMkE5NzVGMTgwRTAzMTYwMDM5QTE0OSAv
KiBEYXRhYmFzZVByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhYmFzZVByb2Nl
c3NNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJBOTc2MjE4MEUw
NEQ1MDAzOUExNDkgLyogRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5jcHA7IHBhdGggPSBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyQTk3NjMxODBFMDRE
NTAwMzlBMTQ5IC8qIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaDsg
cGF0aCA9IERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyQTk3NjYxODBFMDVEMjAwMzlBMTQ5IC8q
IERhdGFiYXNlUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IERhdGFiYXNlUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluOyBwYXRoID0gRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJBOTc2NzE4MEUwOUI4
MDAzOUExNDkgLyogRGF0YWJhc2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGF0YWJhc2VQcm9jZXNzUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJBOTc2ODE4
MEUwOUI4MDAzOUExNDkgLyogRGF0YWJhc2VQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhYmFzZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkMwNjg2MTYzOEY2N0UwMEFCQjkxMSAv
KiBIb3N0UmVjb3JkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEhv
c3RSZWNvcmQuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvSG9zdFJlY29yZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkMwNjg3MTYzOEY2N0UwMEFCQjkxMSAvKiBIb3N0
UmVjb3JkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEhvc3RSZWNvcmQuaDsg
cGF0aCA9IE5ldHdvcmtQcm9jZXNzL0hvc3RSZWNvcmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTEyQzA2OEYxNjM5MEU2OTAwQUJCOTExIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRT
Y2hlZHVsZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBO
ZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMzYyMCw2ICszNjM4LDggQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCiAJCQkJNTExRjhFREExODA4ODE2NjAwNDdEQTk2IC8qIEluZGV4ZWREQiAqLywKKwkJ
CQk1MTJBOTc1OTE4MERGQzg4MDAzOUExNDkgLyogV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0
aW9uLmNwcCAqLywKKwkJCQk1MTJBOTc1QTE4MERGQzg4MDAzOUExNDkgLyogV2ViVG9EYXRhYmFz
ZVByb2Nlc3NDb25uZWN0aW9uLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IERhdGFiYXNlczsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zNjcyLDYgKzM2OTIsNyBAQAogCQkJCTUxN0RE
NUMzMTgwREMzRDYwMDgxNjYwQiAvKiBtYWMgKi8sCiAJCQkJNTE3REQ1QkMxODBEQTdEMzAwODE2
NjBCIC8qIERhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcCAqLywKIAkJCQk1MTdERDVCRDE4MERBN0Qz
MDA4MTY2MEIgLyogRGF0YWJhc2VQcm9jZXNzUHJveHkuaCAqLywKKwkJCQk1MTJBOTc2NjE4MEUw
NUQyMDAzOUExNDkgLyogRGF0YWJhc2VQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkp
OwogCQkJbmFtZSA9IERhdGFiYXNlczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0z
Nzc0LDYgKzM3OTUsOSBAQAogCQkJCTUxN0RENUMwMTgwREI3QUEwMDgxNjYwQiAvKiBtYWMgKi8s
CiAJCQkJNTFGN0RDMTIxODBDQzRBRDAwMjEyQ0EzIC8qIERhdGFiYXNlUHJvY2Vzcy5jcHAgKi8s
CiAJCQkJNTFGN0RDMTMxODBDQzRBRDAwMjEyQ0EzIC8qIERhdGFiYXNlUHJvY2Vzcy5oICovLAor
CQkJCTUxMkE5NzVEMTgwRTAyQTAwMDM5QTE0OSAvKiBEYXRhYmFzZVByb2Nlc3MubWVzc2FnZXMu
aW4gKi8sCisJCQkJNTEyQTk3NjIxODBFMDRENTAwMzlBMTQ5IC8qIERhdGFiYXNlVG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgKi8sCisJCQkJNTEyQTk3NjMxODBFMDRENTAwMzlBMTQ5IC8qIERh
dGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBEYXRh
YmFzZVByb2Nlc3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNDkzNSw2ICs0OTU5
LDEwIEBACiAJCQkJMjk4NEY1ODcxNjRCQTA5NTAwNEJDMEM2IC8qIEN1c3RvbVByb3RvY29sTWFu
YWdlck1lc3NhZ2VzLmggKi8sCiAJCQkJMjk4NEY1N0ExNjRCOTE1RjAwNEJDMEM2IC8qIEN1c3Rv
bVByb3RvY29sTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkyOTg0RjU3
QjE2NEI5MTVGMDA0QkMwQzYgLyogQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNZXNzYWdlcy5o
ICovLAorCQkJCTUxMkE5NzVFMTgwRTAzMTYwMDM5QTE0OSAvKiBEYXRhYmFzZVByb2Nlc3NNZXNz
YWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTUxMkE5NzVGMTgwRTAzMTYwMDM5QTE0OSAvKiBEYXRh
YmFzZVByb2Nlc3NNZXNzYWdlcy5oICovLAorCQkJCTUxMkE5NzY3MTgwRTA5QjgwMDM5QTE0OSAv
KiBEYXRhYmFzZVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTEyQTk3
NjgxODBFMDlCODAwMzlBMTQ5IC8qIERhdGFiYXNlUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLywK
IAkJCQkxQUI3RDYxNzEyODhCOUQ5MDBDRkQwOEMgLyogRG93bmxvYWRQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8sCiAJCQkJMUFCN0Q2MTgxMjg4QjlEOTAwQ0ZEMDhDIC8qIERvd25sb2FkUHJv
eHlNZXNzYWdlcy5oICovLAogCQkJCTFBNjQyMjk3MTJERDAyOTIwMENBQUUyQyAvKiBEcmF3aW5n
QXJlYU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC01Mzk2LDYgKzU0MjQsNyBAQAogCQkJCUJD
NEE2MkE4MTQ3NDRFQzcwMDZDNjgxQSAvKiBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQ0I5RTI0MzExMjBEQUNBMDBBMTM3RTAgLyogV2ViQ29udGV4dC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzFBNTA1RkExNjgwMDI1NTAwQTkzMEVCIC8qIFdlYkNvbnRl
eHRDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMkE5NzYxMTgwRTAzMUQwMDM5QTE0OSAv
KiBEYXRhYmFzZVByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwOUI4Rjkx
NDc0NjBGNzAwNUY1NjI1IC8qIFdlYkNvbnRleHRDb25uZWN0aW9uQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0RFMDU5QjExQ0RBOEFFMDBFNDFBRjEgLyogV2ViQ29udGV4dEluamVjdGVk
QnVuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTg3MUI1QzEyN0NCODlEMDBGNzYy
MzIgLyogV2ViQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJzICovLApAQCAtNTUyMSw2ICs1NTUwLDcg
QEAKIAkJCQkzMzM2NzY1NjEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzMzNjc2MzYxMzBDOTlCMjAwNkM5REUy
IC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTMz
MzY3NjU4MTMwQzlFQ0IwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMkE5NzY1MTgwRTA0RDUwMDM5QTE0OSAvKiBE
YXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMEFG
RkJBMTY1NDIwNDgwMDFCQTA1RSAvKiBXZWJSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTFGMDYwRTAxNjU0MzE3RjAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUQzQjk0ODQ5MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJT
ZWFyY2hQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovLApAQCAtNTUzOCw2ICs1NTY4LDcgQEAKIAkJ
CQlCQzQwNzVGNDEyNEZGMDI3MDA2OEYyMEEgLyogV0tBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTEyRjU4RjYxMkE4OEE1NDAwNjI5NTMwIC8qIFdLQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkY1OEY4MTJBODhBNTQwMDYyOTUzMCAvKiBXS0F1dGhl
bnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTEyQTk3NkEx
ODBFMDlCODAwMzlBMTQ5IC8qIERhdGFiYXNlUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDNjQ2QzFCMTFERDM5OUYwMDY0NTVCMCAvKiBXS0JhY2tGb3J3YXJkTGlz
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2NDZDMUQxMUREMzk5RjAwNjQ1NUIwIC8qIFdLQmFj
a0ZvcndhcmRMaXN0SXRlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEREIzMTcxMjRFQkQxMzAw
NDhEMTNDIC8qIFdLQmFzZS5oIGluIEhlYWRlcnMgKi8sCkBAIC01NTkxLDYgKzU2MjIsNyBAQAog
CQkJCUJDNDA3NUZBMTI0RkYwMjcwMDY4RjIwQSAvKiBXS0RpY3Rpb25hcnkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMDE3RDA3MTYyNjBGRjQwMDcwNTRGNSAvKiBXS0RPTURvY3VtZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzAxN0QwOTE2MjYwRkY0MDA3MDU0RjUgLyogV0tET01FbGVtZW50
LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTJBOTc1QzE4MERGQzg4MDAzOUExNDkgLyogV2ViVG9E
YXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAxN0QwQjE2
MjYwRkY0MDA3MDU0RjUgLyogV0tET01JbnRlcm5hbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
MDE3RDBEMTYyNjBGRjQwMDcwNTRGNSAvKiBXS0RPTU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDNUQyNEMyMTZDRDcwNkQwMDdENTQ2MSAvKiBXS0RPTU5vZGVQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKQEAgLTY1MjUsNiArNjU1Nyw3IEBACiAJCQkJNTEzQTE2NEMxNjMwQTlCRjAwNUQ3RDIy
IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxREQ5RjI4MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
c01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTc5NTU2ODE2Mjg3NkNG
MDBGQTQzQjYgLyogTmV0d29ya1Byb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTEyQTk3
NjQxODBFMDRENTAwMzlBMTQ5IC8qIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1MTgzRERFQzE2MzBCREZDMDA4QkU1QzcgLyogTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxN0NGMEUzMTYzQTQ4NkMw
MEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTE3OTU1NzAxNjI4NzdDRjAwRkE0M0I2IC8qIE5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjY1MSw2ICs2Njg0
LDcgQEAKIAkJCQk1MTJFMzUyNDEzMEI1NTA2MDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTJFMzVGODEzMEI2NDJFMDBB
QkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDNUUxQUZFQzE2QjIxMDEyMDA2Q0MxRjIgLyogV2ViQXJj
aGl2ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTJBOTc2OTE4MEUwOUI4MDAzOUExNDkgLyog
RGF0YWJhc2VQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQzVFMUFGRUUxNkIyMTAyNTAwNkNDMUYyIC8qIFdlYkFyY2hpdmVSZXNvdXJjZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzcyQkExRDExRTY0OTA3MDAxRUI0RUEgLyogV2ViQmFja0Zvcndh
cmRMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQjMwMDUwMTI1MjlEMEUwMDBCNUNBMCAv
KiBXZWJCYWNrRm9yd2FyZExpc3RDRi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTY3NzQsNiArNjgw
OCw3IEBACiAJCQkJQkM3QjYyMTYxMkE0MjE5QTAwRDE3NEE0IC8qIFdlYlBhZ2VHcm91cFByb3h5
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI5RDU1REYxMTYxQkY5RjEwMDMxQTJFMyAvKiBXZWJQ
YWdlR3JvdXBQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzk2
M0Q2RTExM0REMUE1MDA1NzRCRTIgLyogV2ViUGFnZU1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CTUxMkE5NzVCMTgwREZDODgwMDM5QTE0OSAvKiBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzBDRTcyQTAxMjQ3RTcxRDAwQkMwRUM0IC8qIFdl
YlBhZ2VNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxMTFCMEYxMTJG
NUU0RjAwMzM3QkFCIC8qIFdlYlBhZ2VQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUIz
MDA1MTEyNTI5RDBFMDAwQjVDQTAgLyogV2ViUGFnZVByb3h5Q0YuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC02OTMwLDYgKzY5NjUsNyBAQAogCQkJCUJDNDA3NjFCMTI0RkYwMzcwMDY4RjIwQSAvKiBX
S1VSTENGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NjBCMTI0RkYwMjcwMDY4RjIwQSAv
KiBXS1VSTFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc2MkExMjRGRjA0MDAw
NjhGMjBBIC8qIFdLVVJMUmVxdWVzdE5TLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTEyQTk3NjAx
ODBFMDMxRDAwMzlBMTQ5IC8qIERhdGFiYXNlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzQwNzYwRDEyNEZGMDI3MDA2OEYyMEEgLyogV0tVUkxSZXNwb25z
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQwNzYyQzEyNEZGMDQwMDA2OEYyMEEgLyogV0tV
UkxSZXNwb25zZU5TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRjYxMTNFMjgxMjZDRTE5QjAwNTdE
MEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QkZhY3RvcnlCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2Vz
L0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5jcHAKaW5kZXggMDJhNjljNi4uZWExYWQ4
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhl
ZERCL1dlYklEQkZhY3RvcnlCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuY3BwCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViSURCRmFjdG9yeUJh
Y2tlbmQuaCIKIAorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05v
dEltcGxlbWVudGVkLmg+CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKQEAgLTUyLDcg
KzUzLDExIEBAIHZvaWQgV2ViSURCRmFjdG9yeUJhY2tlbmQ6OmdldERhdGFiYXNlTmFtZXMoUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyCiAKIHZvaWQgV2ViSURCRmFjdG9yeUJh
Y2tlbmQ6Om9wZW4oY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGludDY0X3QgdmVyc2lvbiwg
aW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICAvLyBGSVhNRTogQWNjZXNzIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBEYXRhYmFz
ZVByb2Nlc3MgdG8gbWFrZSBzdXJlIGl0IGhhcyBiZWVuIGNyZWF0ZWQgdG8gYXNzaXN0ZWQKKyAg
ICAvLyB3aXRoIGRldmVsb3BtZW50IG9mIGRhdGFiYXNlIHByb2Nlc3MgbWFuYWdlbWVudC4KKyAg
ICAvLyBMYXRlciwgd2UnbGwgYWN0dWFsbHkgdXNlIHRoYXQgY29ubmVjdGlvbiB0byBhY2NvbXBs
aXNoIGRhdGFiYXNleSBzdHVmZi4KKworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLndlYlRvRGF0
YWJhc2VQcm9jZXNzQ29ubmVjdGlvbigpOwogfQogCiB2b2lkIFdlYklEQkZhY3RvcnlCYWNrZW5k
OjpkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIGNvbnN0IFN0cmluZyYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25u
ZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNWU1NWQ1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2Vi
VG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlv
bi5oIgorCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9v
cC5oPgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25u
ZWN0aW9uOjpXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oQ29yZUlQQzo6Q29ubmVjdGlv
bjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBtX2Nvbm5lY3Rpb24g
PSBDb3JlSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVDbGllbnRDb25uZWN0aW9uKGNvbm5lY3Rpb25J
ZGVudGlmaWVyLCB0aGlzLCBSdW5Mb29wOjptYWluKCkpOworICAgIG1fY29ubmVjdGlvbi0+b3Bl
bigpOworfQorCitXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246On5XZWJUb0RhdGFiYXNl
UHJvY2Vzc0Nvbm5lY3Rpb24oKQoreworfQorCit2b2lkIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJikKK3sKK30KKwordm9pZCBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5l
Y3Rpb246OmRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKQoreworICAgIFdlYlByb2Nlc3M6
OnNoYXJlZCgpLndlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZCh0aGlzKTsKK30K
Kwordm9pZCBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlk
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG1l
c3NhZ2VSZWNlaXZlck5hbWUsIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkK
K3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJh
c2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDJiNjc4ZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNz
Q29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaWZuZGVmIFdlYlRvRGF0YWJhc2VQ
cm9jZXNzQ29ubmVjdGlvbl9oCisjZGVmaW5lIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlv
bl9oCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50
ZWQ8V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uPiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6
Q2xpZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJUb0RhdGFiYXNlUHJv
Y2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNv
bm5lY3Rpb25JZGVudGlmaWVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBX
ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKKyAg
ICB9CisgICAgfldlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbigpOworICAgIAorICAgIENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rp
b24uZ2V0KCk7IH0KKworICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bk1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7
CisKK3ByaXZhdGU6CisgICAgV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKENvcmVJUEM6
OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOworCisgICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6
Q2xpZW50CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIENvcmVJUEM6OlN0cmlu
Z1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgT1ZFUlJJREU7CisKKyAgICAvLyBUaGUgSVBDIGNvbm5l
Y3Rpb24gZnJvbSB0aGUgd2ViIHByb2Nlc3MgdG8gdGhlIGRhdGFiYXNlIHByb2Nlc3MuCisgICAg
UmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisjZW5k
aWYgLy8gV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmNwcAppbmRleCAyOTc2YWIwLi45ZjI3ODVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0yMTksNiArMjE5LDEwIEBAIEFic3RyYWN0RGF0YWJh
c2VTZXJ2ZXIqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Z2V0RGF0YWJhc2VTZXJ2ZXIoKQogI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogUGFzc1JlZlB0cjxJREJGYWN0b3J5QmFja2VuZElu
dGVyZmFjZT4gV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVJREJGYWN0b3J5QmFja2VuZCgp
CiB7CisjaWYgIUVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQorICAgIHJldHVybiBEYXRhYmFzZVN0
cmF0ZWd5OjpjcmVhdGVJREJGYWN0b3J5QmFja2VuZCgpOworI2VuZGlmCisKICAgICByZXR1cm4g
V2ViSURCRmFjdG9yeUJhY2tlbmQ6OmNyZWF0ZSgpOwogfQogI2VuZGlmIC8vIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5k
ZXggYjY0ZmQ0Ni4uZGM4OTkyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlci5oIgorI2luY2x1ZGUgIldlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVj
dGlvbi5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL01lbW9yeVN0YXRpc3RpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0FYT2Jq
ZWN0Q2FjaGUuaD4KQEAgLTEwMTYsNyArMTAxNyw0NyBAQCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXImIFdlYlByb2Nlc3M6OndlYlJlc291cmNlTG9hZFNjaGVkdWxlcigpCiB7CiAgICAgcmV0dXJu
ICptX3dlYlJlc291cmNlTG9hZFNjaGVkdWxlcjsKIH0KKyNlbmRpZiAvLyBFTkFCTEVEKE5FVFdP
UktfUFJPQ0VTUykKKworI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQordm9pZCBXZWJQcm9j
ZXNzOjp3ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2ViVG9EYXRhYmFzZVBy
b2Nlc3NDb25uZWN0aW9uKiBjb25uZWN0aW9uKQoreworICAgIEFTU0VSVChtX3dlYlRvRGF0YWJh
c2VQcm9jZXNzQ29ubmVjdGlvbik7CisgICAgQVNTRVJUKG1fd2ViVG9EYXRhYmFzZVByb2Nlc3ND
b25uZWN0aW9uID09IGNvbm5lY3Rpb24pOworCisgICAgbV93ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nv
bm5lY3Rpb24gPSAwOworfQorCitXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24qIFdlYlBy
b2Nlc3M6OndlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbigpCit7CisgICAgaWYgKCFtX3dl
YlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbikKKyAgICAgICAgZW5zdXJlV2ViVG9EYXRhYmFz
ZVByb2Nlc3NDb25uZWN0aW9uKCk7CisKKyAgICByZXR1cm4gbV93ZWJUb0RhdGFiYXNlUHJvY2Vz
c0Nvbm5lY3Rpb24uZ2V0KCk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzczo6ZW5zdXJlV2ViVG9EYXRh
YmFzZVByb2Nlc3NDb25uZWN0aW9uKCkKK3sKKyAgICBpZiAobV93ZWJUb0RhdGFiYXNlUHJvY2Vz
c0Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIENvcmVJUEM6OkF0dGFjaG1lbnQg
ZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyOworCisgICAgaWYgKCFwYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXREYXRhYmFz
ZVByb2Nlc3NDb25uZWN0aW9uKCksCisgICAgICAgIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6
OkdldERhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OlJlcGx5KGVuY29kZWRDb25uZWN0aW9uSWRl
bnRpZmllciksIDApKQorICAgICAgICByZXR1cm47CisKKyNpZiBQTEFURk9STShNQUMpCisgICAg
Q29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcihlbmNv
ZGVkQ29ubmVjdGlvbklkZW50aWZpZXIucG9ydCgpKTsKKyAgICBpZiAoQ29yZUlQQzo6Q29ubmVj
dGlvbjo6aWRlbnRpZmllcklzTnVsbChjb25uZWN0aW9uSWRlbnRpZmllcikpCisgICAgICAgIHJl
dHVybjsKKyNlbHNlCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjZW5kaWYKKyAgICBtX3dl
YlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbiA9IFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVj
dGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKK30KKworI2VuZGlmIC8vIEVOQUJM
RUQoREFUQUJBU0VfUFJPQ0VTUykKIAogdm9pZCBXZWJQcm9jZXNzOjpkb3dubG9hZFJlcXVlc3Qo
dWludDY0X3QgZG93bmxvYWRJRCwgdWludDY0X3QgaW5pdGlhdGluZ1BhZ2VJRCwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAppbmRleCA0MTY1YWIxLi4yN2Y4YjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaApAQCAtNzQsNiArNzQsMTAgQEAgY2xhc3MgTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uOwogY2xhc3MgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOwogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoREFUQUJBU0VfUFJPQ0VTUykKK2NsYXNzIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlv
bjsKKyNlbmRpZgorCiBjbGFzcyBXZWJQcm9jZXNzIDogcHVibGljIENoaWxkUHJvY2VzcywgcHJp
dmF0ZSBEb3dubG9hZE1hbmFnZXI6OkNsaWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFdlYlBy
b2Nlc3MmIHNoYXJlZCgpOwpAQCAtMTQ4LDYgKzE1MiwxMSBAQCBwdWJsaWM6CiAgICAgV2ViUmVz
b3VyY2VMb2FkU2NoZWR1bGVyJiB3ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIoKTsKICNlbmRpZgog
CisjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCisgICAgdm9pZCB3ZWJUb0RhdGFiYXNlUHJv
Y2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKik7Cisg
ICAgV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKiB3ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nv
bm5lY3Rpb24oKTsKKyNlbmRpZgorCiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKHVpbnQzMl90KTsK
IAogICAgIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpOwpAQCAtMjkxLDYgKzMw
MCwxMSBAQCBwcml2YXRlOgogICAgIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlciogbV93ZWJSZXNv
dXJjZUxvYWRTY2hlZHVsZXI7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNT
KQorICAgIHZvaWQgZW5zdXJlV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKCk7CisgICAg
UmVmUHRyPFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbj4gbV93ZWJUb0RhdGFiYXNlUHJv
Y2Vzc0Nvbm5lY3Rpb247CisjZW5kaWYKKwogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJ
KQogICAgIFJlZlB0cjxQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI+IG1fcGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOwogI2VuZGlmCg==
</data>
<flag name="review"
          id="236878"
          type_id="1"
          status="+"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="236880"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>