<?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>118367</bug_id>
          
          <creation_ts>2013-07-03 12:47:51 -0700</creation_ts>
          <short_desc>Nix upstreaming - Adding build files and supporting scripts</short_desc>
          <delta_ts>2013-11-26 22:02:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>118326</dependson>
    
    <dependson>118331</dependson>
    
    <dependson>118358</dependson>
    
    <dependson>118368</dependson>
          <blocked>117658</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Marcelo Lira">marcelo.lira</reporter>
          <assigned_to name="Marcelo Lira">marcelo.lira</assigned_to>
          <cc>ararunprasad</cc>
    
    <cc>arurajku</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>david.corvoysier</cc>
    
    <cc>dbates</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lauro.neto</cc>
    
    <cc>luciano.wolf</cc>
    
    <cc>nick.diego</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>sergio</cc>
    
    <cc>thiago.lacerda</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>905954</commentid>
    <comment_count>0</comment_count>
    <who name="Marcelo Lira">marcelo.lira</who>
    <bug_when>2013-07-03 12:47:51 -0700</bug_when>
    <thetext>All the cmake files needed to build Nix&apos;s WebCore, plus helper scripts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905961</commentid>
    <comment_count>1</comment_count>
      <attachid>206019</attachid>
    <who name="Marcelo Lira">marcelo.lira</who>
    <bug_when>2013-07-03 13:12:54 -0700</bug_when>
    <thetext>Created attachment 206019
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906286</commentid>
    <comment_count>2</comment_count>
      <attachid>206019</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-07-04 18:53:03 -0700</bug_when>
    <thetext>Comment on attachment 206019
Patch

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

It looks you need to take care of placing files by alphabetic order first.

&gt; Source/WebCore/PlatformNix.cmake:2
&gt; +    &quot;${WEBCORE_DIR}/platform/nix&quot;

Please place files according to alphabetic order.

&gt; Source/WebCore/PlatformNix.cmake:20
&gt; +    page/nix/EventHandlerNix.cpp

It would be good if you do grouping as below,

page/nix/EventHandlerNix.cpp
page/TouchAdjustment.cpp

platform/Cursor.cpp
platform/ContextMenuNone.cpp

&gt; Source/cmake/OptionsCommon.cmake:6
&gt; +

Unneeded line.

&gt; Tools/Scripts/build-webkit:153
&gt; +  --nix                             Build the Nix port

Wrong alphabetic order.

&gt; Tools/Scripts/run-javascriptcore-tests:60
&gt; +    # Tests failing when running in BRT timezone

I&apos;m not sure if you can skip these tests without considering other ports.

&gt; Tools/Scripts/webkitdirs.pm:993
&gt; +    # The presence of QTDIR only means Qt if --gtk or --efl or --blackberry or --wincairo or --nix are not on the command-line

Wrong line ?

&gt; Tools/Scripts/webkitdirs.pm:1154
&gt; +}

Missing a new line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906389</commentid>
    <comment_count>3</comment_count>
      <attachid>206146</attachid>
    <who name="Marcelo Lira">marcelo.lira</who>
    <bug_when>2013-07-05 06:40:07 -0700</bug_when>
    <thetext>Created attachment 206146
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906509</commentid>
    <comment_count>4</comment_count>
      <attachid>206146</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-07-05 16:44:16 -0700</bug_when>
    <thetext>Comment on attachment 206146
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests (OOPS!).

Remove this line.

&gt; Tools/Scripts/build-webkit:92
&gt; +# Update defaults for the Nix port

Period.

&gt; Tools/Scripts/run-javascriptcore-tests:60
&gt; +    # Tests failing when running in BRT timezone

period.

&gt; Tools/Scripts/run-javascriptcore-tests:63
&gt; +    &quot;ecma/Date/15.9.5.28-1.js&quot;,
&gt; +    &quot;ecma/Date/15.9.5.29-1.js&quot;,
&gt; +    &quot;ecma/Date/15.9.5.35-1.js&quot;,

What The Fuck?

&gt; Tools/Scripts/webkitdirs.pm:993
&gt; +    # The presence of QTDIR only means Qt if --gtk or --efl or --blackberry or --wincairo or --nix are not on the command-line

Period.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908539</commentid>
    <comment_count>5</comment_count>
      <attachid>206691</attachid>
    <who name="Lauro Moura Maranhao Neto">lauro.neto</who>
    <bug_when>2013-07-15 15:31:51 -0700</bug_when>
    <thetext>Created attachment 206691
Patch

Updated patch after last comments. The JSC test was a local commit related to timezone problems and will be fixed in another bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944996</commentid>
    <comment_count>6</comment_count>
      <attachid>215523</attachid>
    <who name="Lauro Moura Maranhao Neto">lauro.neto</who>
    <bug_when>2013-10-30 10:44:14 -0700</bug_when>
    <thetext>Created attachment 215523
Patch

Updated patch after some files were removed and making check-webkit-style happier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954104</commentid>
    <comment_count>7</comment_count>
      <attachid>217833</attachid>
    <who name="Thiago de Barros Lacerda">thiago.lacerda</who>
    <bug_when>2013-11-25 14:31:42 -0800</bug_when>
    <thetext>Created attachment 217833
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954105</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-25 14:34:32 -0800</bug_when>
    <thetext>Attachment 217833 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;CMakeLists.txt&apos;, u&apos;ChangeLog&apos;, u&apos;Source/CMakeLists.txt&apos;, u&apos;Source/Platform/CMakeLists.txt&apos;, u&apos;Source/Platform/ChangeLog&apos;, u&apos;Source/Platform/PlatformNix.cmake&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/FeatureDefines.h&apos;, u&apos;Source/WTF/wtf/Platform.h&apos;, u&apos;Source/WTF/wtf/PlatformNix.cmake&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/PlatformNix.cmake&apos;, u&apos;Source/cmake/FindEGL.cmake&apos;, u&apos;Source/cmake/FindOpenGLES2.cmake&apos;, u&apos;Source/cmake/OptionsCommon.cmake&apos;, u&apos;Source/cmake/OptionsNix.cmake&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/Scripts/build-webkit&apos;, u&apos;Tools/Scripts/run-nix-tests&apos;, u&apos;Tools/Scripts/run-webkit-tests&apos;, u&apos;Tools/Scripts/update-webkit-libs-jhbuild&apos;, u&apos;Tools/Scripts/update-webkitnix-libs&apos;, u&apos;Tools/Scripts/webkitdirs.pm&apos;, u&apos;Tools/Scripts/webkitpy/common/config/ports.py&apos;, u&apos;Tools/Scripts/webkitpy/port/factory.py&apos;, u&apos;Tools/Scripts/webkitpy/port/nix.py&apos;, u&apos;Tools/Scripts/webkitpy/port/nix_unittest.py&apos;, u&apos;Tools/jhbuild/jhbuild-wrapper&apos;, u&apos;Tools/nix/common.py&apos;, u&apos;Tools/nix/jhbuild.modules&apos;, u&apos;Tools/nix/jhbuildrc&apos;]&quot; exit_code: 1
Source/WebCore/PlatformNix.cmake:316:  Alphabetical sorting problem. &quot;# Uncomment it after https://bugs.webkit.org/show_bug.cgi?id=118598 is fixed and merged to Nix.&quot; should be before &quot;platform/network/soup/SynchronousLoaderClientSoup.cpp&quot;.  [list/order] [5]
Source/WebCore/PlatformNix.cmake:317:  There should be exactly one empty line instead of 0 between &quot;# Uncomment it after https://bugs.webkit.org/show_bug.cgi?id=118598 is fixed and merged to Nix.&quot; and &quot;# platform/soup/SharedBufferSoup.cpp&quot;.  [list/emptyline] [5]
Source/Platform/PlatformNix.cmake:3:  Alphabetical sorting problem. &quot;${CMAKE_BINARY_DIR} # For cmakeconfig.h&quot; should be before &quot;nix&quot;.  [list/order] [5]
Source/Platform/PlatformNix.cmake:4:  There should be exactly one empty line instead of 0 between &quot;${CMAKE_BINARY_DIR} # For cmakeconfig.h&quot; and &quot;${WEBCORE_DIR}/platform/graphics/ # For IntRect.h&quot;.  [list/emptyline] [5]
Source/Platform/PlatformNix.cmake:5:  Alphabetical sorting problem. &quot;${WTF_DIR} # For config.h&quot; should be before &quot;${WEBCORE_DIR}/platform/graphics/ # For IntRect.h&quot;.  [list/order] [5]
Source/WTF/wtf/PlatformNix.cmake:11:  Alphabetical sorting problem. &quot;${GLIB_LIBRARIES}&quot; should be before &quot;pthread&quot;.  [list/order] [5]
Source/WTF/wtf/PlatformNix.cmake:12:  Alphabetical sorting problem. &quot;${GLIB_GIO_LIBRARIES}&quot; should be before &quot;${GLIB_LIBRARIES}&quot;.  [list/order] [5]
Total errors found: 7 in 32 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>954198</commentid>
    <comment_count>9</comment_count>
      <attachid>217858</attachid>
    <who name="Thiago de Barros Lacerda">thiago.lacerda</who>
    <bug_when>2013-11-25 19:01:37 -0800</bug_when>
    <thetext>Created attachment 217858
Fixing wrong dates in ChangeLogs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954199</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-25 19:03:14 -0800</bug_when>
    <thetext>Attachment 217858 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;CMakeLists.txt&apos;, u&apos;ChangeLog&apos;, u&apos;Source/CMakeLists.txt&apos;, u&apos;Source/Platform/CMakeLists.txt&apos;, u&apos;Source/Platform/ChangeLog&apos;, u&apos;Source/Platform/PlatformNix.cmake&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/FeatureDefines.h&apos;, u&apos;Source/WTF/wtf/Platform.h&apos;, u&apos;Source/WTF/wtf/PlatformNix.cmake&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/PlatformNix.cmake&apos;, u&apos;Source/cmake/FindEGL.cmake&apos;, u&apos;Source/cmake/FindOpenGLES2.cmake&apos;, u&apos;Source/cmake/OptionsCommon.cmake&apos;, u&apos;Source/cmake/OptionsNix.cmake&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/Scripts/build-webkit&apos;, u&apos;Tools/Scripts/run-nix-tests&apos;, u&apos;Tools/Scripts/run-webkit-tests&apos;, u&apos;Tools/Scripts/update-webkit-libs-jhbuild&apos;, u&apos;Tools/Scripts/update-webkitnix-libs&apos;, u&apos;Tools/Scripts/webkitdirs.pm&apos;, u&apos;Tools/Scripts/webkitpy/common/config/ports.py&apos;, u&apos;Tools/Scripts/webkitpy/port/factory.py&apos;, u&apos;Tools/Scripts/webkitpy/port/nix.py&apos;, u&apos;Tools/Scripts/webkitpy/port/nix_unittest.py&apos;, u&apos;Tools/jhbuild/jhbuild-wrapper&apos;, u&apos;Tools/nix/common.py&apos;, u&apos;Tools/nix/jhbuild.modules&apos;, u&apos;Tools/nix/jhbuildrc&apos;]&quot; exit_code: 1
Source/WebCore/PlatformNix.cmake:316:  Alphabetical sorting problem. &quot;# Uncomment it after https://bugs.webkit.org/show_bug.cgi?id=118598 is fixed and merged to Nix.&quot; should be before &quot;platform/network/soup/SynchronousLoaderClientSoup.cpp&quot;.  [list/order] [5]
Source/WebCore/PlatformNix.cmake:317:  There should be exactly one empty line instead of 0 between &quot;# Uncomment it after https://bugs.webkit.org/show_bug.cgi?id=118598 is fixed and merged to Nix.&quot; and &quot;# platform/soup/SharedBufferSoup.cpp&quot;.  [list/emptyline] [5]
Source/Platform/PlatformNix.cmake:3:  Alphabetical sorting problem. &quot;${CMAKE_BINARY_DIR} # For cmakeconfig.h&quot; should be before &quot;nix&quot;.  [list/order] [5]
Source/Platform/PlatformNix.cmake:4:  There should be exactly one empty line instead of 0 between &quot;${CMAKE_BINARY_DIR} # For cmakeconfig.h&quot; and &quot;${WEBCORE_DIR}/platform/graphics/ # For IntRect.h&quot;.  [list/emptyline] [5]
Source/Platform/PlatformNix.cmake:5:  Alphabetical sorting problem. &quot;${WTF_DIR} # For config.h&quot; should be before &quot;${WEBCORE_DIR}/platform/graphics/ # For IntRect.h&quot;.  [list/order] [5]
Source/WTF/wtf/PlatformNix.cmake:11:  Alphabetical sorting problem. &quot;${GLIB_LIBRARIES}&quot; should be before &quot;pthread&quot;.  [list/order] [5]
Source/WTF/wtf/PlatformNix.cmake:12:  Alphabetical sorting problem. &quot;${GLIB_GIO_LIBRARIES}&quot; should be before &quot;${GLIB_LIBRARIES}&quot;.  [list/order] [5]
Total errors found: 7 in 32 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>954457</commentid>
    <comment_count>11</comment_count>
      <attachid>217858</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-11-26 21:34:52 -0800</bug_when>
    <thetext>Comment on attachment 217858
Fixing wrong dates in ChangeLogs

rs=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954463</commentid>
    <comment_count>12</comment_count>
      <attachid>217858</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-26 22:02:53 -0800</bug_when>
    <thetext>Comment on attachment 217858
Fixing wrong dates in ChangeLogs

Clearing flags on attachment: 217858

Committed r159806: &lt;http://trac.webkit.org/changeset/159806&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954464</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-26 22:02:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206019</attachid>
            <date>2013-07-03 13:12:54 -0700</date>
            <delta_ts>2013-07-05 06:40:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118367-20130703171050.patch</filename>
            <type>text/plain</type>
            <size>71366</size>
            <attacher name="Marcelo Lira">marcelo.lira</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBlY2I4NTg4N2RmMjc4
ZWEwOGU4ODM1ZjBlYjI4MTJkMmExZTE3MzNkLi5jNDdlM2VkNzE4ZGMwMTMxYTE3NzM2M2NkM2Rh
ZGE5MGYwZWVlNTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wNy0wMyAg
TWFyY2VsbyBMaXJhICA8bWFyY2Vsby5saXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgTml4
IHVwc3RyZWFtaW5nIC0gQWRkaW5nIGJ1aWxkIGZpbGVzIGFuZCBzdXBwb3J0aW5nIHNjcmlwdHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM2Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6IEFkZGVkLgorICAgICAgICAqIFBsYXRmb3JtTml4LmNtYWtlOiBBZGRlZC4KKwog
MjAxMy0wNi0xNCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCBHVEsgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA2MWNlOWY5M2FhOTQ1MTAzNjAzMGMx
M2I3ODgyOGQzOWVhNjkwMDczLi4wMjU5MWE1ODllNDQzNTUxNjBiM2FlNjI0OWU0ZTBhYjhlOTYz
MjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTA3LTAzICBNYXJjZWxvIExpcmEgIDxtYXJj
ZWxvLmxpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBOaXggdXBzdHJlYW1pbmcgLSBBZGRp
bmcgYnVpbGQgZmlsZXMgYW5kIHN1cHBvcnRpbmcgc2NyaXB0cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MzY3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvRmVhdHVyZURlZmluZXMuaDoKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1OaXguY21ha2U6
IEFkZGVkLgorCiAyMDEzLTA3LTAyICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRu
eWFrb3ZAaW50ZWwuY29tPgogCiAgICAgICAgIEF2b2lkIGNvZGUgZHVwbGljYXRpb24gaW5zaWRl
IFN0cmluZzo6YXBwZW5kKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNWM5YTgyODIwYjFmZDA3Yjk4YTUxNWEx
YmI2M2RmODFhNzhkNjEwLi44ODRiMTM2MzEwNWZhMDRlN2EzN2E0ZjBjYzE0MzhkNTA0NzY5ZTMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDctMDMgIE1hcmNlbG8gTGlyYSAg
PG1hcmNlbG8ubGlyYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIE5peCB1cHN0cmVhbWluZyAt
IEFkZGluZyBidWlsZCBmaWxlcyBhbmQgc3VwcG9ydGluZyBzY3JpcHRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgzNjcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFBsYXRmb3JtTml4LmNtYWtl
OiBBZGRlZC4KKwogMjAxMy0wNy0wMiAgcGVhdm9Ab3V0bG9vay5jb20gIDxwZWF2b0BvdXRsb29r
LmNvbT4KIAogICAgICAgICBbQ3VybF0gQ3Jhc2ggYWZ0ZXIgZG93bmxvYWQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvQ01ha2VMaXN0cy50eHQKaW5kZXggMzcz
NmVlYTE3YTQ1ZWY0YTFkNzUyMTY0ZmE5MjVhMmI4N2Y4YWFhNC4uMjY4YmEyZTI0OGRhNjc5YThm
M2VmMTBiMWU3OWY5MTU5Nzg1ZTFlZCAxMDA2NDQKLS0tIGEvU291cmNlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9DTWFrZUxpc3RzLnR4dApAQCAtNSw2ICs1LDEwIEBAIGFkZF9zdWJkaXJl
Y3RvcnkoV1RGKQogCiBhZGRfc3ViZGlyZWN0b3J5KEphdmFTY3JpcHRDb3JlKQogCitpZiAoIiR7
UE9SVH0iIFNUUkVRVUFMICJOaXgiKQorICAgIGFkZF9zdWJkaXJlY3RvcnkoUGxhdGZvcm0pCitl
bmRpZiAoKQorCiBpZiAoRU5BQkxFX0FQSV9URVNUUykKICAgICBhZGRfc3ViZGlyZWN0b3J5KGNt
YWtlL2d0ZXN0KQogZW5kaWYgKCkKQEAgLTI2LDYgKzMwLDEzIEBAIFdFQktJVF9JTkNMVURFX0NP
TkZJR19GSUxFU19JRl9FWElTVFMoKQogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBTZXQgY29t
cGlsZXIgZmxhZ3MgZm9yIGFsbCB0YXJnZXRzCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitpZiAo
IiR7UE9SVH0iIFNUUkVRVUFMICJOaXgiKQorICAgIGlmIChOT1QgRElTQUJMRV9TVFJJQ1RfQlVJ
TEQpCisgICAgICAgIHNldChBRERJVElPTkFMX0ZMQUdTIEVOQUJMRV9XRVJST1IpCisgICAgZW5k
aWYgKCkKKyAgICBXRUJLSVRfU0VUX0VYVFJBX0NPTVBJTEVSX0ZMQUdTKFBsYXRmb3JtICR7QURE
SVRJT05BTF9GTEFHU30pCitlbmRpZiAoKQorCiBpZiAoJHtQT1JUfSBTVFJFUVVBTCAiRWZsIikK
ICAgICBzZXQoQURESVRJT05BTF9GTEFHUyBFTkFCTEVfV0VSUk9SKQogZW5kaWYgKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9QbGF0Zm9ybS9D
TWFrZUxpc3RzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWY3Y2FiOWUzODNlNTgyNmY4ZTE4YzQzYmM1YzQ5
MDY0YjdhZjQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1BsYXRmb3JtL0NNYWtlTGlzdHMu
dHh0CkBAIC0wLDAgKzEsNSBAQAorV0VCS0lUX0lOQ0xVREVfQ09ORklHX0ZJTEVTX0lGX0VYSVNU
UygpCisKK2luY2x1ZGVfZGlyZWN0b3JpZXMoJHtQbGF0Zm9ybV9JTkNMVURFU30pCithZGRfbGli
cmFyeShQbGF0Zm9ybSBTVEFUSUMgJHtQbGF0Zm9ybV9TT1VSQ0VTfSkKK3NldF90YXJnZXRfcHJv
cGVydGllcyhQbGF0Zm9ybSBQUk9QRVJUSUVTIEZPTERFUiAiUGxhdGZvcm0iKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtTml4LmNtYWtlIGIvU291cmNlL1BsYXRmb3JtL1Bs
YXRmb3JtTml4LmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyZGU3MDVmMzE5NzZkOGExYTJmYzZhNDkwN2Zj
ZDgxMDMwYzYyNGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm1O
aXguY21ha2UKQEAgLTAsMCArMSwyOSBAQAorc2V0KFBsYXRmb3JtX0lOQ0xVREVTCisgICAgbml4
CisgICAgJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvICMgRm9yIEludFJlY3QuaAor
ICAgICR7V1RGX0RJUn0gIyBGb3IgY29uZmlnLmgKKyAgICAke0NNQUtFX0JJTkFSWV9ESVJ9ICMg
Rm9yIGNtYWtlY29uZmlnLmgKKykKKworc2V0KFBsYXRmb3JtX0hFQURFUlMKKyAgICBuaXgvcHVi
bGljL1BsYXRmb3JtLmgKKyAgICBuaXgvcHVibGljL1dlYkNvbG9yLmgKKyAgICBuaXgvcHVibGlj
L1dlYkZGVEZyYW1lLmgKKyAgICBuaXgvcHVibGljL1dlYlJlY3QuaAorICAgIG5peC9wdWJsaWMv
V2ViU2l6ZS5oCisgICAgbml4L3B1YmxpYy9XZWJUaGVtZUVuZ2luZS5oCisgICAgbml4L3B1Ymxp
Yy9XZWJBdWRpb0J1cy5oCisgICAgbml4L3B1YmxpYy9XZWJBdWRpb0RldmljZS5oCisgICAgbml4
L3B1YmxpYy9XZWJDb21tb24uaAorICAgIG5peC9wdWJsaWMvV2ViRGF0YS5oCisgICAgbml4L3B1
YmxpYy9XZWJHYW1lcGFkcy5oCisgICAgbml4L3B1YmxpYy9XZWJHYW1lcGFkLmgKKyAgICBuaXgv
cHVibGljL1dlYlZlY3Rvci5oCispCisKK3NldChQbGF0Zm9ybV9TT1VSQ0VTCisgICAgbml4L3Ny
Yy9QbGF0Zm9ybS5jcHAKKyAgICBuaXgvc3JjL0RlZmF1bHRXZWJUaGVtZUVuZ2luZS5jcHAKKykK
KworaW5zdGFsbChGSUxFUyAke1BsYXRmb3JtX0hFQURFUlN9IERFU1RJTkFUSU9OIGluY2x1ZGUv
JHtXZWJLaXQyX09VVFBVVF9OQU1FfS0ke1BST0pFQ1RfVkVSU0lPTl9NQUpPUn0vTml4UGxhdGZv
cm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oIGIvU291cmNl
L1dURi93dGYvRmVhdHVyZURlZmluZXMuaAppbmRleCA3MzI5Yzk1ZjU0NWMwZTRmODUyMzBhMjM2
NGM2ZWQ2ZDYxYjk5MjJiLi4yYTAyMDQ4MmJmMDY3YTg1MTFkY2Q5YTQwYjY5NGIzNDhhMjJmMGNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgKQEAgLTIzNSw2ICsyMzUsMTEgQEAKIAogI2VuZGlm
IC8qIFBMQVRGT1JNKFdJTl9DQUlSTykgKi8KIAorLyogLS0tLS0tLS0tIE5JWCBwb3J0IChVbml4
KSAtLS0tLS0tLS0gKi8KKyNpZiBQTEFURk9STShOSVgpCisjaW5jbHVkZSAibml4L0ZlYXR1cmVE
ZWZpbmVzTml4LmgiCisjZW5kaWYgLyogUExBVEZPUk0oTklYKSAqLworCiAvKiAtLS0tLS0tLS0g
RUZMIHBvcnQgKFVuaXgpIC0tLS0tLS0tLSAqLwogI2lmIFBMQVRGT1JNKEVGTCkKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
LmgKaW5kZXggMWMyZDIzOThkMzlhYzc5ZTFjNTlhZjFhNTYyMjk4ZjFiNTk4NWVhYS4uNTI2ZTYy
MGQ1NzU5NmQ3OTRkODExMjY4Mjc1YTZiNWZkMzMxYjlmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC00NDYs
NiArNDQ2LDggQEAKICNkZWZpbmUgV1RGX1BMQVRGT1JNX0dUSyAxCiAjZWxpZiBkZWZpbmVkKEJV
SUxESU5HX0JMQUNLQkVSUllfXykKICNkZWZpbmUgV1RGX1BMQVRGT1JNX0JMQUNLQkVSUlkgMQor
I2VsaWYgZGVmaW5lZChCVUlMRElOR19OSVhfXykKKyNpbmNsdWRlICJuaXgvUGxhdGZvcm1OaXgu
aCIKICNlbGlmIE9TKERBUldJTikKICNkZWZpbmUgV1RGX1BMQVRGT1JNX01BQyAxCiAjZWxpZiBP
UyhXSU5ET1dTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1OaXguY21ha2Ug
Yi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybU5peC5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzMyZTYwODE2
Y2I4MjBjMTllNTQzNTJlYmU1NmVlYWYxODlmMmRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm1OaXguY21ha2UKQEAgLTAsMCArMSwxNiBAQAorbGlzdChBUFBFTkQg
V1RGX1NPVVJDRVMKKyAgICBndGsvTWFpblRocmVhZEd0ay5jcHAKKyAgICBnb2JqZWN0L0dPd25Q
dHIuY3BwCisgICAgZ29iamVjdC9HUmVmUHRyLmNwcAorICAgIGdvYmplY3QvR2xpYlV0aWxpdGll
cy5jcHAKKykKKworbGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUworICAgIHB0aHJlYWQKKyAgICAk
e0dMSUJfTElCUkFSSUVTfQorICAgICR7R0xJQl9HSU9fTElCUkFSSUVTfQorKQorCitsaXN0KEFQ
UEVORCBXVEZfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICR7R0xJQl9JTkNMVURFX0RJUlN9Cisp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGJmODg3NWE1NzA4ZTM3MTE5OWY4MDk3YjI5ZTY5YTVh
ZGM0ZjJhYjYuLmY4ODkwZGNjNDNmNzZiYzk1YWRhOGZhNWQ0YmFmNGJmMjRlODliN2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0yODM4LDE2ICsyODM4LDE4IEBAIGVuZGlmICgpCiAKIGlmIChX
VEZfVVNFXzNEX0dSQVBISUNTKQogICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJF
Q1RPUklFUwotICAgICAgICAke09QRU5HTF9JTkNMVURFX0RJUn0KICAgICAgICAgIiR7VEhJUkRQ
QVJUWV9ESVJ9L0FOR0xFL3NyYyIKICAgICAgICAgIiR7VEhJUkRQQVJUWV9ESVJ9L0FOR0xFL2lu
Y2x1ZGUiCiAgICAgICAgICIke1RISVJEUEFSVFlfRElSfS9BTkdMRS9pbmNsdWRlL0tIUiIKICAg
ICAgICAgIiR7VEhJUkRQQVJUWV9ESVJ9L0FOR0xFL2luY2x1ZGUvR0xTTEFORyIKICAgICAgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2dwdSIKICAgICApCi0gICAgbGlzdChB
UFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMKLSAgICAgICAgJHtPUEVOR0xfZ2xfTElCUkFSWX0KLSAg
ICApCisKKyAgICAjIE5peCBtYXkgdXNlIGVpdGhlciBPcGVuR0wgb3IgT3BlbkdMRVMyIGhlYWRl
cnMsIHNvIHdlIGhhbmRsZSB0aGlzIGF0IFBsYXRmb3JtTml4LmNtYWtlLgorICAgIGlmIChOT1Qg
UE9SVCBTVFJFUVVBTCAiTml4IikKKyAgICAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURF
X0RJUkVDVE9SSUVTICR7T1BFTkdMX0lOQ0xVREVfRElSfSkKKyAgICAgICAgbGlzdChBUFBFTkQg
V2ViQ29yZV9MSUJSQVJJRVMgJHtPUEVOR0xfZ2xfTElCUkFSWX0pCisgICAgZW5kaWYgKCkKIAog
ICAgIGlmIChCSVNPTl9WRVJTSU9OIEVRVUFMICIyLjUiKQogICAgICAgICAjIEJpc29uIDIuNSBj
YW4gbm90IGNvbXBpbGUgZ2VuZXJhdGVkIGdsc2xhbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybU5peC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTml4LmNtYWtl
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmExYjQ0YmNiMGQwYzJkNTc1YjA5MTUwY2YwYTIzMTRmYzY5MjExNTQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU5peC5jbWFrZQpAQCAtMCww
ICsxLDI2NSBAQAorbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25peCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vY2Fpcm8iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvIgor
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZSIKKyAgICAiJHtX
RUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4IgorICAgICIke1dFQkNPUkVfRElSfS9w
bGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei8iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3Jt
L2dyYXBoaWNzL2hhcmZidXp6L25nIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAiCisgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2xpbnV4IgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIiCisgICAgIiR7UExBVEZPUk1fRElSfS9uaXgvIgor
KQorCitsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICBwYWdlL1RvdWNoQWRqdXN0bWVu
dC5jcHAKKworICAgIHBhZ2Uvbml4L0V2ZW50SGFuZGxlck5peC5jcHAKKyAgICBwbGF0Zm9ybS9D
dXJzb3IuY3BwCisgICAgcGxhdGZvcm0vQ29udGV4dE1lbnVOb25lLmNwcAorICAgIHBsYXRmb3Jt
L0NvbnRleHRNZW51SXRlbU5vbmUuY3BwCisgICAgcGxhdGZvcm0vbml4L0N1cnNvck5peC5jcHAK
KyAgICBwbGF0Zm9ybS9uaXgvRHJhZ0RhdGFOaXguY3BwCisgICAgcGxhdGZvcm0vbml4L0RyYWdJ
bWFnZU5peC5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvTml4S2V5Ym9hcmRVdGlsaXRpZXMuY3BwCisg
ICAgcGxhdGZvcm0vbml4L0Vycm9yc05peC5jcHAKKyAgICBwbGF0Zm9ybS9ndGsvRXZlbnRMb29w
R3RrLmNwcAorICAgIHBsYXRmb3JtL25peC9GaWxlU3lzdGVtTml4LmNwcAorICAgIHBsYXRmb3Jt
L25peC9MYW5ndWFnZU5peC5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvTG9jYWxpemVkU3RyaW5nc05p
eC5jcHAKKyAgICBwbGF0Zm9ybS9ndGsvTG9nZ2luZ0d0ay5jcHAKKyAgICBwbGF0Zm9ybS9uaXgv
TUlNRVR5cGVSZWdpc3RyeU5peC5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvUGFzdGVib2FyZE5peC5j
cHAKKyAgICBwbGF0Zm9ybS9uaXgvUGxhdGZvcm1TY3JlZW5OaXguY3BwCisgICAgcGxhdGZvcm0v
bml4L1BsYXRmb3JtS2V5Ym9hcmRFdmVudE5peC5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvUmVuZGVy
VGhlbWVOaXguY3BwCisgICAgcGxhdGZvcm0vbml4L1J1bkxvb3BOaXguY3BwCisgICAgcGxhdGZv
cm0vbml4L1Njcm9sbGJhclRoZW1lTml4LmNwcAorICAgIHBsYXRmb3JtL2d0ay9TaGFyZWRCdWZm
ZXJHdGsuY3BwCisgICAgcGxhdGZvcm0vbml4L1NvdW5kTml4LmNwcAorICAgIHBsYXRmb3JtL25p
eC9TaGFyZWRUaW1lck5peC5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvVGVtcG9yYXJ5TGlua1N0dWJz
LmNwcAorICAgIHBsYXRmb3JtL25peC9XaWRnZXROaXguY3BwCisKKyAgICBwbGF0Zm9ybS9jYWly
by9XaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9CaXRtYXBJbWFnZUNhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJv
VXRpbGl0aWVzLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyby5jcHAK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFkaWVudENhaXJvLmNwcAorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbnRS
ZWN0Q2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uY3Bw
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcAorICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL1BhdHRlcm5DYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9QbGF0Zm9ybVBhdGhDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9SZWZQ
dHJDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9UaWxlQ2Fpcm8uY3BwCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVGlsZWRCYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm8u
Y3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVHJhbnNmb3JtYXRpb25NYXRyaXhDYWly
by5jcHAKKworICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2NhaXJvL0ltYWdlRGVjb2RlckNh
aXJvLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvV09GRkZpbGVGb3JtYXQuY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKKyAgICBwbGF0Zm9y
bS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNw
cAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0dseXBoUGFnZVRyZWVOb2RlRnJlZVR5
cGUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvU2ltcGxlRm9udERhdGFGcmVl
VHlwZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6ekZhY2UuY3Bw
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpGYWNlQ2Fpcm8uY3BwCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpTaGFwZXIuY3BwCisKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9EcmF3aW5nQnVmZmVyQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvbml4L0lj
b25OaXguY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvbml4L0ltYWdlTml4LmNwcAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKKworICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwCisK
KyAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuY3BwCisgICAgcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5jcHAKKyAgICBwbGF0Zm9ybS9p
bWFnZS1kZWNvZGVycy9ibXAvQk1QSW1hZ2VSZWFkZXIuY3BwCisgICAgcGxhdGZvcm0vaW1hZ2Ut
ZGVjb2RlcnMvZ2lmL0dJRkltYWdlRGVjb2Rlci5jcHAKKyAgICBwbGF0Zm9ybS9pbWFnZS1kZWNv
ZGVycy9naWYvR0lGSW1hZ2VSZWFkZXIuY3BwCisgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
aWNvL0lDT0ltYWdlRGVjb2Rlci5jcHAKKyAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVn
L0pQRUdJbWFnZURlY29kZXIuY3BwCisgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BO
R0ltYWdlRGVjb2Rlci5jcHAKKyAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy93ZWJwL1dFQlBJ
bWFnZURlY29kZXIuY3BwCisgICAgcGxhdGZvcm0vbGludXgvR2FtZXBhZERldmljZUxpbnV4LmNw
cAorICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdT
dHJlYW1lci5jcHAKKyAgICBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisgICAgcGxh
dGZvcm0vdGV4dC9uaXgvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU5peC5jcHAKKworICAg
IHBsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwCisgICAgcGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAK
KyAgICBwbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwCisgICAgcGx1Z2lucy9QbHVnaW5TdHJlYW0u
Y3BwCisgICAgcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorICAgIHBsdWdpbnMvUGx1Z2luUGFja2Fn
ZU5vbmUuY3BwCisgICAgcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAKKworICAgIGVkaXRpbmcv
U21hcnRSZXBsYWNlSUNVLmNwcAorICAgIHBsYXRmb3JtL3RleHQvTG9jYWxlTm9uZS5jcHAKKwor
ICAgIHBsYXRmb3JtL25peC9zdXBwb3J0L1dlYkF1ZGlvQnVzLmNwcAorICAgIHBsYXRmb3JtL25p
eC9zdXBwb3J0L1dlYkRhdGEuY3BwCisKKyAgICBjc3MvV2ViS2l0Q1NTQXJyYXlGdW5jdGlvblZh
bHVlLmNwcAorICAgIGNzcy9XZWJLaXRDU1NNaXhGdW5jdGlvblZhbHVlLmNwcAorICAgIGNzcy9X
ZWJLaXRDU1NNYXRyaXguY3BwCisgICAgY3NzL1dlYktpdENTU01hdEZ1bmN0aW9uVmFsdWUuY3Bw
CisgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkU2hhZGVyLmNwcAorICAgIHJlbmRlcmlu
Zy9zdHlsZS9TdHlsZUN1c3RvbUZpbHRlclByb2dyYW0uY3BwCisgICAgcmVuZGVyaW5nL3N0eWxl
L1N0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbUNhY2hlLmNwcAorKQorCitpZiAoV1RGX1VTRV9PUEVO
R0xfRVNfMikKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmNwcAorICAgICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xFUy5jcHAKKyAgICAp
CisgICAgbGlzdChJTlNFUlQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTIDAgJHtPUEVOR0xF
UzJfSU5DTFVERV9ESVJTfSkKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUyAke09Q
RU5HTEVTMl9MSUJSQVJJRVN9KQorICAgIGFkZF9kZWZpbml0aW9ucygke09QRU5HTEVTMl9ERUZJ
TklUSU9OU30pCitlbHNlICgpCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAg
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCisgICAg
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAK
KyAgICApCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMKKyAgICAgICAgJHtPUEVO
R0xfZ2xfTElCUkFSWX0KKyAgICApCitlbmRpZiAoKQorCitpZiAoV1RGX1VTRV9FR0wpCisgICAg
bGlzdChJTlNFUlQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTIDAKKyAgICAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZWdsCisgICAgICAgICR7RUdMX0lOQ0xVREVfRElSfQorICAgICkKKyAgICBs
aXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR0xDb250ZXh0LmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGlj
c0NvbnRleHQzRENhaXJvLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHQzRFByaXZhdGUuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9H
TENvbnRleHRGcm9tQ3VycmVudEVHTC5jcHAKKyAgICApCisgICAgbGlzdChBUFBFTkQgV2ViQ29y
ZV9MSUJSQVJJRVMgJHtFR0xfTElCUkFSWX0pCitlbHNlICgpCisgICAgbGlzdChBUFBFTkQgV2Vi
Q29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL2dseAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZmwKKyAgICAgICAg
JHtYMTFfWDExX0lOQ0xVREVfUEFUSH0KKyAgICApCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9T
T1VSQ0VTCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzREVm
bC5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250
ZXh0LmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZh
Y2UuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VmbC9HTFRyYW5zcG9y
dFN1cmZhY2UuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VmbC9HcmFw
aGljc1N1cmZhY2VDb21tb24uY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L0dyYXBoaWNzU3VyZmFjZS5jcHAKKworICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNl
cy9nbHgvWDExSGVscGVyLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9n
bHgvR0xYQ29udGV4dC5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4
L0dMWFN1cmZhY2UuY3BwCisgICAgKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVT
ICR7WDExX1gxMV9MSUJ9ICR7WDExX1hjb21wb3NpdGVfTElCfSAke1gxMV9YcmVuZGVyX0xJQn0p
CitlbmRpZiAoKQorCitsaXN0KEFQUEVORCBXZWJDb3JlX1VTRVJfQUdFTlRfU1RZTEVfU0hFRVRT
CisgICAgJHtXRUJDT1JFX0RJUn0vY3NzL21lZGlhQ29udHJvbHNOaXguY3NzCisgICAgJHtXRUJD
T1JFX0RJUn0vY3NzL21lZGlhQ29udHJvbHNOaXhGdWxsc2NyZWVuLmNzcworKQorCitsaXN0KEFQ
UEVORCBXZWJDb3JlX0xJQlJBUklFUworICAgICR7Q0FJUk9fTElCUkFSSUVTfQorICAgICR7Rk9O
VENPTkZJR19MSUJSQVJJRVN9CisgICAgJHtGUkVFVFlQRV9MSUJSQVJJRVN9CisgICAgJHtKUEVH
X0xJQlJBUll9CisgICAgJHtMSUJYTUwyX0xJQlJBUklFU30KKyAgICAke0xJQlhTTFRfTElCUkFS
SUVTfQorICAgICR7UE5HX0xJQlJBUll9CisgICAgJHtTUUxJVEVfTElCUkFSSUVTfQorICAgICR7
R0xJQl9MSUJSQVJJRVN9CisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CisgICAgJHtHTElCX0dN
T0RVTEVfTElCUkFSSUVTfQorICAgICR7R0xJQl9HT0JKRUNUX0xJQlJBUklFU30KKyAgICAke1pM
SUJfTElCUkFSSUVTfQorICAgIFBsYXRmb3JtCisgICAgJHtIQVJGQlVaWl9MSUJSQVJJRVN9Cisp
CisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICR7Rk9OVENP
TkZJR19JTkNMVURFX0RJUn0KKyAgICAke0NBSVJPX0lOQ0xVREVfRElSU30KKyAgICAke0ZSRUVU
WVBFX0lOQ0xVREVfRElSU30KKyAgICAke0xJQlhNTDJfSU5DTFVERV9ESVJ9CisgICAgJHtMSUJY
U0xUX0lOQ0xVREVfRElSfQorICAgICR7U1FMSVRFX0lOQ0xVREVfRElSfQorICAgICR7R0xJQl9J
TkNMVURFX0RJUlN9CisgICAgJHtaTElCX0lOQ0xVREVfRElSU30KKyAgICAke0hBUkZCVVpaX0lO
Q0xVREVfRElSU30KKykKKworYWRkX2RlZmluaXRpb25zKC1EREFUQV9ESVI9IiR7Q01BS0VfSU5T
VEFMTF9QUkVGSVh9LyR7REFUQV9JTlNUQUxMX0RJUn0iKQorCitpZiAoRU5BQkxFX1dFQl9BVURJ
TykKKyAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgIiR7V0VC
Q09SRV9ESVJ9L3BsYXRmb3JtL2F1ZGlvL25peCIKKyAgKQorICBsaXN0KEFQUEVORCBXZWJDb3Jl
X1NPVVJDRVMKKyAgICBwbGF0Zm9ybS9hdWRpby9uaXgvQXVkaW9CdXNOaXguY3BwCisgICAgcGxh
dGZvcm0vYXVkaW8vbml4L0F1ZGlvRGVzdGluYXRpb25OaXguY3BwCisgICAgcGxhdGZvcm0vYXVk
aW8vbml4L0ZGVEZyYW1lTml4LmNwcAorICApCisgIHNldChXRUJfQVVESU9fRElSICR7Q01BS0Vf
SU5TVEFMTF9QUkVGSVh9LyR7REFUQV9JTlNUQUxMX0RJUn0vd2ViYXVkaW8vcmVzb3VyY2VzKQor
ICBmaWxlKEdMT0IgV0VCX0FVRElPX0RBVEEgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2F1ZGlv
L3Jlc291cmNlcy8qLndhdiIpCisgIGluc3RhbGwoRklMRVMgJHtXRUJfQVVESU9fREFUQX0gREVT
VElOQVRJT04gJHtXRUJfQVVESU9fRElSfSkKKyAgYWRkX2RlZmluaXRpb25zKC1EVU5JTlNUQUxM
RURfQVVESU9fUkVTT1VSQ0VTX0RJUj0iJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vYXVkaW8vcmVz
b3VyY2VzIikKK2VuZGlmICgpCisKK2lmIChFTkFCTEVfR0FNRVBBRCkKKyAgICBsaXN0KEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgcGxhdGZvcm0vbml4L0dhbWVwYWRzTml4LmNwcAor
ICAgICkKK2VuZGlmICgpCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgIHBsYXRm
b3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNvdXAuY3BwCisgICAgcGxh
dGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29y
ay9zb3VwL0Nvb2tpZVN0b3JhZ2VTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9D
cmVkZW50aWFsU3RvcmFnZVNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0ROU1Nv
dXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0dPd25QdHJTb3VwLmNwcAorICAgIHBs
YXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorICAgIHBs
YXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVJlc29sdmVyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvUHJveHlTZXJ2ZXJTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZUVycm9yU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VIYW5kbGVTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVl
c3RTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291
cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlU291cC5j
cHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cFVSSVV0aWxzLmNwcAorKQorCitsaXN0
KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAiJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vbmV0d29yay9zb3VwIgorICAgICR7TElCU09VUF9JTkNMVURFX0RJUlN9CispCisK
K2xpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTCisgICAgJHtMSUJTT1VQX0xJQlJBUklFU30K
KykKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5kRUdMLmNtYWtlIGIvU291cmNlL2NtYWtl
L0ZpbmRFR0wuY21ha2UKaW5kZXggNTI2YzViYTA4NTYyODhjODMyNGJiZjU0ZjZkMTdlYzUxNzhj
NmViOS4uMDZkZTU1NmE4NWExN2EyMGFhYjA5YTFmYzU5MTU5ZTk4MDI4ZmE4YiAxMDA2NDQKLS0t
IGEvU291cmNlL2NtYWtlL0ZpbmRFR0wuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL0ZpbmRFR0wu
Y21ha2UKQEAgLTM0LDQgKzM0LDYgQEAgc2V0KEVHTF9OQU1FUyAke0VHTF9OQU1FU30gZWdsIEVH
TCkKIGZpbmRfbGlicmFyeShFR0xfTElCUkFSWSBOQU1FUyAke0VHTF9OQU1FU30pCiAKIGluY2x1
ZGUoRmluZFBhY2thZ2VIYW5kbGVTdGFuZGFyZEFyZ3MpCi1GSU5EX1BBQ0tBR0VfSEFORExFX1NU
QU5EQVJEX0FSR1MoRUdMIERFRkFVTFRfTVNHIEVHTF9JTkNMVURFX0RJUiBFR0xfTElCUkFSWSkK
K2ZpbmRfcGFja2FnZV9oYW5kbGVfc3RhbmRhcmRfYXJncyhFR0wgREVGQVVMVF9NU0cgRUdMX0lO
Q0xVREVfRElSIEVHTF9MSUJSQVJZKQorCittYXJrX2FzX2FkdmFuY2VkKEVHTF9JTkNMVURFX0RJ
UiBFR0xfTElCUkFSWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5kT3BlbkdMRVMyLmNt
YWtlIGIvU291cmNlL2NtYWtlL0ZpbmRPcGVuR0xFUzIuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI2OWI4
ZDJkMTE0YjViNzEzYjc2NGNlMDg2NWEzZDc1MGQ3NzJlZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9jbWFrZS9GaW5kT3BlbkdMRVMyLmNtYWtlCkBAIC0wLDAgKzEsMjUgQEAKKyMgVHJ5IHRv
IGZpbmQgT3BlbkdMRVMyLiBPbmNlIGRvbmUgdGhpcyB3aWxsIGRlZmluZToKKyMgICAgIE9QRU5H
TEVTMl9GT1VORAorIyAgICAgT1BFTkdMRVMyX0lOQ0xVREVfRElSUworIyAgICAgT1BFTkdMRVMy
X0xJQlJBUklFUworIyAgICAgT1BFTkdMRVMyX0RFRklOSVRJT05TCisKK2ZpbmRfcGFja2FnZShQ
a2dDb25maWcpCisKK3BrZ19jaGVja19tb2R1bGVzKFBDX09QRU5HTEVTMiBnbGVzdjIpCisKK2lm
IChQQ19PUEVOR0xFUzJfRk9VTkQpCisgICAgc2V0KE9QRU5HTEVTMl9JTkNMVURFX0RJUlMgJHtQ
Q19PUEVOR0xFUzJfSU5DTFVERV9ESVJTfSkKKyAgICBzZXQoT1BFTkdMRVMyX0RFRklOSVRJT05T
ICR7UENfT1BFTkdMRVMyX0NGTEFHU19PVEhFUn0pCitlbHNlICgpCisgICAgZmluZF9wYXRoKE9Q
RU5HTEVTMl9JTkNMVURFX0RJUlMgTkFNRVMgR0xFUzIvZ2wyLmgpCitlbmRpZiAoKQorCitmaW5k
X2xpYnJhcnkoT1BFTkdMRVMyX0xJQlJBUklFUyBHTEVTdjIKKyAgICBISU5UUyAke1BDX09QRU5H
TEVTMl9MSUJSQVJZX0RJUlN9ICR7UENfT1BFTkdMRVMyX0xJQkRJUn0KKykKKworaW5jbHVkZShG
aW5kUGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK2ZpbmRfcGFja2FnZV9oYW5kbGVfc3RhbmRh
cmRfYXJncyhPcGVuR0xFUzIgREVGQVVMVF9NU0cgT1BFTkdMRVMyX0xJQlJBUklFUyBPUEVOR0xF
UzJfSU5DTFVERV9ESVJTKQorCittYXJrX2FzX2FkdmFuY2VkKE9QRU5HTEVTMl9JTkNMVURFX0RJ
UlMgT1BFTkdMRVMyX0xJQlJBUlkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0Nv
bW1vbi5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zQ29tbW9uLmNtYWtlCmluZGV4IDBhY2Jj
ZmM3ZDMxOWViZjAxZWY5NjhkZWY1YzA5NDMxZDJiM2Q1NGQuLjI5NGUyMjg1N2RhMTA5MjQ5MDVj
YTA4OTYyYzkwNzVjY2NmNTRjNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zQ29t
bW9uLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zQ29tbW9uLmNtYWtlCkBAIC0xLDgg
KzEsMTYgQEAKLWFkZF9kZWZpbml0aW9ucygtREJVSUxESU5HX1dJVEhfQ01BS0U9MSkKLWFkZF9k
ZWZpbml0aW9ucygtREhBVkVfQ09ORklHX0g9MSkKKyMgTml4IGRvZXNuJ3QgdXNlIGNtYWtlY29u
ZmlnLmgKK2lmIChOT1QgUE9SVCBTVFJFUVVBTCAiTml4IikKKyAgICBhZGRfZGVmaW5pdGlvbnMo
LURCVUlMRElOR19XSVRIX0NNQUtFPTEpCisgICAgYWRkX2RlZmluaXRpb25zKC1ESEFWRV9DT05G
SUdfSD0xKQorZW5kaWYgKCkKKwogCiBpZiAoV1RGX09TX1VOSVgpCiAgICAgYWRkX2RlZmluaXRp
b25zKC1EWFBfVU5JWCkKKyAgICAjVE9ETzogY2hlY2sgZm9yIFgxMSB0YXJnZXQKKyAgICBpZiAo
Tk9UIFBPUlQgU1RSRVFVQUwgIk5peCIpCisgICAgICAgIGFkZF9kZWZpbml0aW9ucygtRE1PWl9Y
MTEpCisgICAgZW5kaWYgKCkKIGVuZGlmIChXVEZfT1NfVU5JWCkKIAogIyBDT0RFX0dFTkVSQVRP
Ul9QUkVQUk9DRVNTT1JfV0lUSF9MSU5FTUFSS0VSUyBvbmx5IG1hdHRlcnMgd2l0aCBHQ0MgPj0g
NC43LjAuICBTaW5jZSB0aGlzCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc05peC5j
bWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zTml4LmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjMWE4MjNj
Nzc5NWM1MzVkZTAxNjkyZDljY2VjZjI0NGYxYjA1NmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvY21ha2UvT3B0aW9uc05peC5jbWFrZQpAQCAtMCwwICsxLDE0OCBAQAorIyBOaXggdXNlcyBh
IGRpZmZlcmVudCB3YXkgdG8gc2V0L3Vuc2V0IGRlZmF1bHQgZmVhdHVyZXMgYmFzZWQgb24gV0sg
YnVnIDExMDcxNyAobm90IHlldCBsYW5kZWQpLgorIyBTbyB0aGUgaW1wbGVtZW50YXRpb24sIGku
ZS4gdGhlIG5leHQgdHdvIG1hY3Jvcywgd2FzIG1vdmVkIHRvIGhlcmUgdG8ga2VlcCBhIG1pbmlt
YWwgYXMgcG9zc2libGUKKyMgaW50ZXJmZXJlbmNlIG9uIG90aGVyIHBvcnRzIHVudGlsIHNvbWUg
ZGF5IHdoZW4vaWYgYnVnIDExMDcxNyBnZXQgbGFuZGVkLgorCisjIENvbXB1dGUgYW5kIHNldCBk
ZWZhdWx0IHZhbHVlcyBmb3IgZmVhdHVyZSBkZWZpbmVzCittYWNybyhXRUJLSVRfT1BUSU9OX0RF
RkFVTFRTIF9wb3J0KQorICAgICMgVXNlIHRoZSBwcmVwcm9jZXNzb3IgdG8gZ2V0IHRoZSBkZWZh
dWx0IHZhbHVlcyBmb3IgZmVhdHVyZSBkZWZpbmVzCisgICAgRVhFQ19QUk9HUkFNKCJnY2MgLUUg
LVAgLWRNIC1EQlVJTERJTkdfJHtfcG9ydH1fXyAtSSAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJj
ZS9XVEYgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIHwgZ3Jl
cCAnXiNkZWZpbmUgRU5BQkxFX1xcd1xcKyBbMDFdJCcgfCBjdXQgLWQnICcgLWYyLTMgfCBzb3J0
IiBPVVRQVVRfVkFSSUFCTEUgREVGSU5JVElPTlMpCisgICAgc3RyaW5nKFJFR0VYIE1BVENIQUxM
ICIoW15cbl0rfFteXG5dKyQpIiBERUZJTklUSU9OU19MSVNUICR7REVGSU5JVElPTlN9KQorCisg
ICAgZm9yZWFjaCAoREVGSU5JVElPTiAke0RFRklOSVRJT05TX0xJU1R9KQorICAgICAgICBzdHJp
bmcoUkVHRVggUkVQTEFDRSAiXihbXiBdKykgKFteIF0rKSQiICJcXDEiIERFRklOSVRJT05fTkFN
RSAiJHtERUZJTklUSU9OfSIpCisgICAgICAgIHN0cmluZyhSRUdFWCBSRVBMQUNFICJeKFteIF0r
KSAoW14gXSspJCIgIlxcMiIgREVGSU5JVElPTl9WQUxVRSAiJHtERUZJTklUSU9OfSIpCisgICAg
ICAgIFdFQktJVF9PUFRJT05fREVGSU5FKCR7REVGSU5JVElPTl9OQU1FfSAiVG9nZ2xlICR7REVG
SU5JVElPTl9OQU1FfSIgJHtERUZJTklUSU9OX1ZBTFVFfSkKKyAgICAgICAgb3B0aW9uKCR7REVG
SU5JVElPTl9OQU1FfSAiVG9nZ2xlICR7REVGSU5JVElPTl9OQU1FfSIgJHtERUZJTklUSU9OX1ZB
TFVFfSkKKyAgICBlbmRmb3JlYWNoICgpCitlbmRtYWNybygpCisKKyMgU2hvdyBXZWJLaXQgb3B0
aW9ucyBzdW1tYXJ5IGFuZCBhZGQgLURGT09CQVIgdG8gZWFjaCBvcHRpb24gd2l0aCBhIHZhbHVl
IGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IHZhbHVlLgorbWFjcm8oUFJPQ0VTU19XRUJLSVRf
T1BUSU9OUykKKyAgICBtZXNzYWdlKFNUQVRVUyAiRW5hYmxlZCBmZWF0dXJlczoiKQorCisgICAg
c2V0KF9NQVhfRkVBVFVSRV9MRU5HVEggMCkKKyAgICBmb3JlYWNoIChfbmFtZSAke19XRUJLSVRf
QVZBSUxBQkxFX09QVElPTlN9KQorICAgICAgICBzdHJpbmcoTEVOR1RIICR7X25hbWV9IF9OQU1F
X0xFTkdUSCkKKyAgICAgICAgaWYgKF9OQU1FX0xFTkdUSCBHUkVBVEVSIF9NQVhfRkVBVFVSRV9M
RU5HVEgpCisgICAgICAgICAgICBzZXQoX01BWF9GRUFUVVJFX0xFTkdUSCAke19OQU1FX0xFTkdU
SH0pCisgICAgICAgIGVuZGlmICgpCisgICAgZW5kZm9yZWFjaCAoKQorCisgICAgc2V0KF9TSE9V
TERfUFJJTlRfUE9JTlRTIE9GRikKKyAgICBmb3JlYWNoIChfbmFtZSAke19XRUJLSVRfQVZBSUxB
QkxFX09QVElPTlN9KQorICAgICAgICBzdHJpbmcoTEVOR1RIICR7X25hbWV9IF9OQU1FX0xFTkdU
SCkKKworICAgICAgICBzZXQoX01FU1NBR0UgIiAke19uYW1lfSAiKQorCisgICAgICAgIGlmIChf
U0hPVUxEX1BSSU5UX1BPSU5UUykKKyAgICAgICAgICAgIGZvcmVhY2ggKElHTk9SRSBSQU5HRSAk
e19OQU1FX0xFTkdUSH0gJHtfTUFYX0ZFQVRVUkVfTEVOR1RIfSkKKyAgICAgICAgICAgICAgICBz
ZXQoX01FU1NBR0UgIiR7X01FU1NBR0V9ICIpCisgICAgICAgICAgICBlbmRmb3JlYWNoICgpCisg
ICAgICAgICAgICBzZXQoX1NIT1VMRF9QUklOVF9QT0lOVFMgT0ZGKQorICAgICAgICBlbHNlICgp
CisgICAgICAgICAgICBmb3JlYWNoIChJR05PUkUgUkFOR0UgJHtfTkFNRV9MRU5HVEh9ICR7X01B
WF9GRUFUVVJFX0xFTkdUSH0pCisgICAgICAgICAgICAgICAgc2V0KF9NRVNTQUdFICIke19NRVNT
QUdFfS4iKQorICAgICAgICAgICAgZW5kZm9yZWFjaCAoKQorICAgICAgICAgICAgc2V0KF9TSE9V
TERfUFJJTlRfUE9JTlRTIE9OKQorICAgICAgICBlbmRpZiAoKQorCisgICAgICAgIGlmICgke19u
YW1lfSkKKyAgICAgICAgICAgIGxpc3QoQVBQRU5EIEZFQVRVUkVfREVGSU5FUyAke19uYW1lfSkK
KyAgICAgICAgICAgIHNldChGRUFUVVJFX0RFRklORVNfV0lUSF9TUEFDRV9TRVBBUkFUT1IgIiR7
RkVBVFVSRV9ERUZJTkVTX1dJVEhfU1BBQ0VfU0VQQVJBVE9SfSAke19uYW1lfSIpCisgICAgICAg
IGVuZGlmICgpCisKKyAgICAgICAgc2V0KF9NRVNTQUdFICIke19NRVNTQUdFfSAkeyR7X25hbWV9
fSIpCisgICAgICAgIG1lc3NhZ2UoU1RBVFVTICIke19NRVNTQUdFfSIpCisgICAgZW5kZm9yZWFj
aCAoKQorCisgICAgIyBBZGQgYWRkX2RlZmluaXRpb25zIHRvIHZhbHVlcyBkaWZmZXJlbnQgZnJv
bSB0aGUgZGVmYXVsdHMKKyAgICBmb3JlYWNoIChfbmFtZSAke19XRUJLSVRfQVZBSUxBQkxFX09Q
VElPTlN9KQorICAgICAgICAjIENvbnZlcnQgdmFsdWVzIGZyb20gT04vT0ZGIHRvIDEvMCBiZWNh
dXNlCisgICAgICAgICMgQ01ha2Ugc2F5cyAiMSBFUVVBTCBPTiIgaXMgZmFsc2UuCisgICAgICAg
IGlmICgke19XRUJLSVRfQVZBSUxBQkxFX09QVElPTlNfSU5JVEFMVkFMVUVfJHtfbmFtZX19KQor
ICAgICAgICAgICAgc2V0KF9hIDEpCisgICAgICAgIGVsc2UgKCkKKyAgICAgICAgICAgIHNldChf
YSAwKQorICAgICAgICBlbmRpZiAoKQorICAgICAgICBpZiAoJHske19uYW1lfX0pCisgICAgICAg
ICAgICBzZXQoX2IgMSkKKyAgICAgICAgZWxzZSAoKQorICAgICAgICAgICAgc2V0KF9iIDApCisg
ICAgICAgIGVuZGlmICgpCisgICAgICAgIGlmIChOT1QgX2EgRVFVQUwgX2IpCisgICAgICAgICAg
ICBhZGRfZGVmaW5pdGlvbnMoIi1EJHtfbmFtZX09JHtfYn0iKQorICAgICAgICBlbmRpZiAoKQor
ICAgIGVuZGZvcmVhY2ggKCkKK2VuZG1hY3JvKCkKKworCitzZXQoUFJPSkVDVF9WRVJTSU9OX01B
Sk9SIDApCitzZXQoUFJPSkVDVF9WRVJTSU9OX01JTk9SIDEpCitzZXQoUFJPSkVDVF9WRVJTSU9O
X1BBVENIIDApCitzZXQoUFJPSkVDVF9WRVJTSU9OICR7UFJPSkVDVF9WRVJTSU9OX01BSk9SfS4k
e1BST0pFQ1RfVkVSU0lPTl9NSU5PUn0uJHtQUk9KRUNUX1ZFUlNJT05fUEFUQ0h9KQorCitpZiAo
Q01BS0VfQ1hYX0NPTVBJTEVSX0lEIFNUUkVRVUFMICJHTlUiKQorICAgICMgVXNlIC1mZW1pdC1z
dHJ1Y3QtZGVidWctYmFzZW9ubHkgdG8gcmVkdWNlIHRoZSBzaXplIG9mIFdlYkNvcmUgc3RhdGlj
IGxpYnJhcnkKKyAgICBzZXQoQ01BS0VfQ1hYX0ZMQUdTX0RFQlVHICItZyAtZmVtaXQtc3RydWN0
LWRlYnVnLWJhc2Vvbmx5IiBDQUNIRSBTVFJJTkcgIkZsYWdzIHVzZWQgYnkgdGhlIGNvbXBpbGVy
IGR1cmluZyBkZWJ1ZyBidWlsZHMuIiBGT1JDRSkKK2VuZGlmICgpCisKK3NldChTSEFSRURfQ09S
RSBPRkYpCitzZXQoRU5BQkxFX1dFQktJVCBPRkYpCitzZXQoRU5BQkxFX1dFQktJVDIgT0ZGKQor
c2V0KEVOQUJMRV9UT09MUyBPRkYpCisKK3NldChXZWJLaXQyX09VVFBVVF9OQU1FIFdlYktpdE5p
eCkKKworYWRkX2RlZmluaXRpb25zKC1EQlVJTERJTkdfTklYX189MSkKKworZmluZF9wYWNrYWdl
KENhaXJvIDEuMTIuOCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShGb250Y29uZmlnIDIuOC4wIFJF
UVVJUkVEKQorZmluZF9wYWNrYWdlKEZyZWV0eXBlIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEdM
SUIgMi4zNi4wIFJFUVVJUkVEIENPTVBPTkVOVFMgZ2lvIGdvYmplY3QgZ21vZHVsZSBndGhyZWFk
KQorZmluZF9wYWNrYWdlKEhhcmZCdXp6KQorZmluZF9wYWNrYWdlKElDVSBSRVFVSVJFRCkKK2Zp
bmRfcGFja2FnZShKUEVHIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKExpYlhtbDIgMi42IFJFUVVJ
UkVEKQorZmluZF9wYWNrYWdlKExpYlhzbHQgMS4xLjcgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2Uo
UE5HIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKFNxbGl0ZSBSRVFVSVJFRCkKK2ZpbmRfcGFja2Fn
ZShUaHJlYWRzIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKFpMSUIgUkVRVUlSRUQpCisKKyMgVmFy
aWFibGVzIHRoYXQgbXVzdCBleGlzdHMgb24gQ01ha2Ugc3BhY2UKKyMgdG8ga2VlcCBjb21tb24g
Q01ha2UgZmlsZXMgd29ya2luZyBhcyBkZXNpcmVkIGZvciB1cworc2V0KFdURl9VU0VfSUNVX1VO
SUNPREUgT04pCitzZXQoV1RGX1VTRV9MRVZFTERCIE9OKQorc2V0KEVOQUJMRV9BUElfVEVTVFMg
T0ZGKQorCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRTKCJOSVgiKQorV0VCS0lUX09QVElPTl9ERUZJ
TkUoV1RGX1VTRV9PUEVOR0xfRVNfMiAiVXNlIEVHTCArIE9wZW5HTEVTMiIgT0ZGKQorV0VCS0lU
X09QVElPTl9ERUZJTkUoV1RGX1VTRV9DVVJMICJVc2UgbGliQ3VybCBhcyBuZXR3b3JrIGJhY2tl
bmQiIE9GRikKKworaWYgKFdURl9VU0VfQ1VSTCkKKyAgICBmaW5kX3BhY2thZ2UoQ1VSTCBSRVFV
SVJFRCkKKyAgICBzZXQoUkVRVUlSRURfTkVUV09SSyBsaWJjdXJsKQorZWxzZSAoKQorICAgIGZp
bmRfcGFja2FnZShMaWJTb3VwIDIuNDIuMCBSRVFVSVJFRCkKKyAgICBzZXQoUkVRVUlSRURfTkVU
V09SSyBsaWJzb3VwLTIuNCkKK2VuZGlmICgpCisKK2lmIChXVEZfVVNFX09QRU5HTF9FU18yKQor
ICAgIGZpbmRfcGFja2FnZShPcGVuR0xFUzIgUkVRVUlSRUQpCisgICAgZmluZF9wYWNrYWdlKEVH
TCBSRVFVSVJFRCkKKyAgICBzZXQoV1RGX1VTRV9FR0wgT04pCisgICAgYWRkX2RlZmluaXRpb25z
KC1EV1RGX1VTRV9PUEVOR0xfRVNfMj0xKQorZWxzZSAoKQorICAgIGZpbmRfcGFja2FnZShYMTEg
UkVRVUlSRUQpCisgICAgZmluZF9wYWNrYWdlKE9wZW5HTCBSRVFVSVJFRCkKKyAgICBhZGRfZGVm
aW5pdGlvbnMoLURIQVZFX0dMWD0xKQorZW5kaWYgKCkKKworaWYgKE5PVCBFTkFCTEVfU1ZHKQor
ICAgIHNldChFTkFCTEVfU1ZHX0ZPTlRTIE9GRikKK2VuZGlmICgpCisKK1BST0NFU1NfV0VCS0lU
X09QVElPTlMoKQorCisKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDM4NjY5M2M1MTM3MWVhMzdlZGUzMDY3MGIzZThjN2ZlZjBhM2MwMDYuLmZi
MzM0OGZkNDU0NGVmOWU1YTk0Njg4MWYxN2Q2N2EzYTE0MWZjNDEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OCBAQAorMjAxMy0w
Ny0wMyAgTWFyY2VsbyBMaXJhICA8bWFyY2Vsby5saXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAg
ICAgTml4IHVwc3RyZWFtaW5nIC0gQWRkaW5nIGJ1aWxkIGZpbGVzIGFuZCBzdXBwb3J0aW5nIHNj
cmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
ODM2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U2NyaXB0cy9idWlsZC1kdW1wcmVuZGVydHJlZToKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdl
YmtpdDoKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdHRlc3RydW5uZXI6CisgICAgICAg
ICogU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHM6CisgICAgICAgICogU2NyaXB0cy9y
dW4tbGF1bmNoZXI6CisgICAgICAgICogU2NyaXB0cy9ydW4tbml4LXRlc3RzOiBBZGRlZC4KKyAg
ICAgICAgKiBTY3JpcHRzL3J1bi13ZWJraXQtdGVzdHM6CisgICAgICAgICogU2NyaXB0cy91cGRh
dGUtd2Via2l0LWxpYnMtamhidWlsZDoKKyAgICAgICAgKiBTY3JpcHRzL3VwZGF0ZS13ZWJraXRu
aXgtbGliczogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRkaXJzLnBtOgorICAgICAg
ICAoZGV0ZXJtaW5lQXJjaGl0ZWN0dXJlKToKKyAgICAgICAgKGFyZ3VtZW50c0ZvckNvbmZpZ3Vy
YXRpb24pOgorICAgICAgICAoanNjUHJvZHVjdERpcik6CisgICAgICAgIChidWlsdER5bGliUGF0
aEZvck5hbWUpOgorICAgICAgICAoZGV0ZXJtaW5lSXNRdCk6CisgICAgICAgIChkZXRlcm1pbmVJ
c05peCk6CisgICAgICAgIChpc05peCk6CisgICAgICAgIChpc0FwcGxlV2ViS2l0KToKKyAgICAg
ICAgKGxhdW5jaGVyUGF0aCk6CisgICAgICAgIChsYXVuY2hlck5hbWUpOgorICAgICAgICAoY2hl
Y2tSZXF1aXJlZFN5c3RlbUNvbmZpZyk6CisgICAgICAgIChjb3B5SW5zcGVjdG9yRnJvbnRlbmRG
aWxlcyk6CisgICAgICAgIChqaGJ1aWxkV3JhcHBlclByZWZpeElmTmVlZGVkKToKKyAgICAgICAg
KGJ1aWxkQ01ha2VQcm9qZWN0T3JFeGl0KToKKyAgICAgICAgKGNtYWtlQmFzZWRQb3J0TmFtZSk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5OgorICAg
ICAgICAoRGVwcmVjYXRlZFBvcnQucG9ydCk6CisgICAgICAgIChEZXByZWNhdGVkUG9ydC5tYWtl
QXJncyk6CisgICAgICAgIChFZmxXSzJQb3J0LmJ1aWxkX3dlYmtpdF9jb21tYW5kKToKKyAgICAg
ICAgKE5peFBvcnQpOgorICAgICAgICAoTml4UG9ydC5idWlsZF93ZWJraXRfY29tbWFuZCk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHk6CisgICAgICAgIChwbGF0
Zm9ybV9vcHRpb25zKToKKyAgICAgICAgKFBvcnRGYWN0b3J5KToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3BvcnQvbml4LnB5OiBBZGRlZC4KKyAgICAgICAgKE5peFBvcnQpOgorICAgICAg
ICAoTml4UG9ydC5fd2syX3BvcnRfbmFtZSk6CisgICAgICAgIChOaXhQb3J0LmRldGVybWluZV9m
dWxsX3BvcnRfbmFtZSk6CisgICAgICAgIChOaXhQb3J0Ll9faW5pdF9fKToKKyAgICAgICAgKE5p
eFBvcnQuX3BvcnRfZmxhZ19mb3Jfc2NyaXB0cyk6CisgICAgICAgIChOaXhQb3J0LnNldHVwX3Rl
c3RfcnVuKToKKyAgICAgICAgKE5peFBvcnQuc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKToKKyAg
ICAgICAgKE5peFBvcnQuZGVmYXVsdF90aW1lb3V0X21zKToKKyAgICAgICAgKE5peFBvcnQuY2xl
YW5fdXBfdGVzdF9ydW4pOgorICAgICAgICAoTml4UG9ydC5fZ2VuZXJhdGVfYWxsX3Rlc3RfY29u
ZmlndXJhdGlvbnMpOgorICAgICAgICAoTml4UG9ydC5fcGF0aF90b19kcml2ZXIpOgorICAgICAg
ICAoTml4UG9ydC5fcGF0aF90b19pbWFnZV9kaWZmKToKKyAgICAgICAgKE5peFBvcnQuX2ltYWdl
X2RpZmZfY29tbWFuZCk6CisgICAgICAgIChOaXhQb3J0Ll9zZWFyY2hfcGF0aHMpOgorICAgICAg
ICAoTml4UG9ydC5zaG93X3Jlc3VsdHNfaHRtbF9maWxlKToKKyAgICAgICAgKE5peFBvcnQuX3Bv
cnRfc3BlY2lmaWNfZXhwZWN0YXRpb25zX2ZpbGVzKToKKyAgICAgICAgKE5peFBvcnQuZGVmYXVs
dF9iYXNlbGluZV9zZWFyY2hfcGF0aCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0
L25peF91bml0dGVzdC5weTogQWRkZWQuCisgICAgICAgIChOaXhQb3J0VGVzdCk6CisgICAgICAg
IChOaXhQb3J0VGVzdC5fYXNzZXJ0X3NlYXJjaF9wYXRoKToKKyAgICAgICAgKE5peFBvcnRUZXN0
Ll9hc3NlcnRfZXhwZWN0YXRpb25zX2ZpbGVzKToKKyAgICAgICAgKE5peFBvcnRUZXN0LnRlc3Rf
YmFzZWxpbmVfc2VhcmNoX3BhdGgpOgorICAgICAgICAoTml4UG9ydFRlc3QudGVzdF9leHBlY3Rh
dGlvbnNfZmlsZXMpOgorICAgICAgICAoTml4UG9ydFRlc3QudGVzdF9kZWZhdWx0X3RpbWVvdXRf
bXMpOgorICAgICAgICAqIGpoYnVpbGQvamhidWlsZC13cmFwcGVyOgorICAgICAgICAoZGV0ZXJt
aW5lX3BsYXRmb3JtKToKKyAgICAgICAgKiBuaXgvY29tbW9uLnB5OiBBZGRlZC4KKyAgICAgICAg
KHNjcmlwdF9wYXRoKToKKyAgICAgICAgKHRvcF9sZXZlbF9wYXRoKToKKyAgICAgICAgKiBuaXgv
amhidWlsZC5tb2R1bGVzOiBBZGRlZC4KKyAgICAgICAgKiBuaXgvamhidWlsZHJjOiBBZGRlZC4K
KyAgICAgICAgKiBuaXgvcnVuLXdpdGgtamhidWlsZDogQWRkZWQuCisKIDIwMTMtMDctMDIgIEJ5
dW5nd29vIExlZSAgPGJ3ODAubGVlQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEZpeCBXZWJLaXRU
ZXN0UnVubmVyIGNyYXNoZXMuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2J1aWxkLWR1bXBy
ZW5kZXJ0cmVlIGIvVG9vbHMvU2NyaXB0cy9idWlsZC1kdW1wcmVuZGVydHJlZQppbmRleCAxZmY3
NWY3ZDNiYzA4ZmJhYWE3ZjM1Zjg5NjkzZGE5ZDgyNjM3NWU1Li45MWY1NDgyMWVhYzY4ODM1M2Zm
Mjk0YWY5NWEwYmI3Nzg4YTkxNDkxIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2J1aWxkLWR1
bXByZW5kZXJ0cmVlCisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtZHVtcHJlbmRlcnRyZWUKQEAg
LTcwLDcgKzcwLDcgQEAgaWYgKGlzQXBwbGVNYWNXZWJLaXQoKSkgewogfSBlbHNpZiAoaXNBcHBs
ZVdpbldlYktpdCgpKSB7CiAgICAgbXkgJGRydFNvbHV0aW9uUGF0aCA9ICJEdW1wUmVuZGVyVHJl
ZS52Y3hwcm9qL0R1bXBSZW5kZXJUcmVlLnNsbiI7CiAgICAgJHJlc3VsdCA9IGJ1aWxkVmlzdWFs
U3R1ZGlvUHJvamVjdCgkZHJ0U29sdXRpb25QYXRoLCAkY2xlYW4pOwotfSBlbHNpZiAoaXNRdCgp
IHx8IGlzR3RrKCkgfHwgaXNFZmwoKSkgeworfSBlbHNpZiAoaXNRdCgpIHx8IGlzR3RrKCkgfHwg
aXNFZmwoKSB8fCBpc05peCgpKSB7CiAgICAgIyBRdCwgR3RrIGFuZCBFRkwgYnVpbGQgZXZlcnl0
aGluZyBpbiBvbmUgc2hvdC4gTm8gbmVlZCB0byBidWlsZCBhbnl0aGluZyBoZXJlLgogICAgICRy
ZXN1bHQgPSAwOwogfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Vi
a2l0IGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKaW5kZXggODdjNTA0MzMwYTlkZDY1NDQ0
Nzk3ODVjNTE4YmZjMTI4NDg3OTc4MS4uMDEwYTAwOGQ0NWQyMmU2OTA2ZmI1MTdjYTM3Nzk1MWNj
NmJhMWNkOCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKKysrIGIvVG9v
bHMvU2NyaXB0cy9idWlsZC13ZWJraXQKQEAgLTM2LDcgKzM2LDcgQEAgdXNlIEZpbGU6OkJhc2Vu
YW1lOwogdXNlIEZpbGU6OkZpbmQ7CiB1c2UgRmlsZTo6U3BlYzsKIHVzZSBGaW5kQmluOwotdXNl
IEdldG9wdDo6TG9uZyBxdyg6Y29uZmlnIHBhc3NfdGhyb3VnaCk7Cit1c2UgR2V0b3B0OjpMb25n
IHF3KDpjb25maWcgcGFzc190aHJvdWdoIG5vX2F1dG9fYWJicmV2KTsKIHVzZSBsaWIgJEZpbmRC
aW46OkJpbjsKIHVzZSB3ZWJraXRkaXJzOwogdXNlIHdlYmtpdHBlcmw6OkZlYXR1cmVMaXN0IHF3
KGdldEZlYXR1cmVPcHRpb25MaXN0KTsKQEAgLTYyLDYgKzYyLDggQEAgbXkgJG5vV2ViS2l0MSA9
IDA7CiBteSAkbm9XZWJLaXQyID0gMDsKIG15ICRjb3ZlcmFnZVN1cHBvcnQgPSAwOwogbXkgJHN0
YXJ0VGltZSA9IHRpbWUoKTsKK215ICRjdXJsID0gMDsKK215ICRvcGVuZ2xlczIgPSAwOwogCiBt
eSBAZmVhdHVyZXMgPSBnZXRGZWF0dXJlT3B0aW9uTGlzdCgpOwogCkBAIC04Nyw2ICs4OSwzOCBA
QCBpZiAoaXNRdCgpKSB7CiAgICAgfQogfQogCisjIFVwZGF0ZSBkZWZhdWx0cyBmb3IgdGhlIE5p
eCBwb3J0CitpZiAoaXNOaXgoKSkgeworICAgICMgSW5zdGVhZCBvZiB1c2UgRmVhdHVyZUxpc3Qu
cG0gdG8gbGlzdCBlbmFibGVkIGZlYXR1cmVzLCB0ZWxsIHRoZSBjb21waWxlciB0bworICAgICMg
cGFyc2UgU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBhbmQgZ2V0IHRoZSBkZWZhdWx0IHZhbHVl
cyBvZiBhbGwgZmVhdHVyZSBmbGFncworICAgICMgZnJvbSB0aGUgcmVzdWx0LgorICAgIG15ICRw
b3J0RGVmaW5lID0gIkJVSUxESU5HXyIudWMoY21ha2VCYXNlZFBvcnROYW1lKCkpLiJfXyI7Cisg
ICAgbXkgJGRlZmluaXRpb25zID0gYGdjYyAtRSAtUCAtZE0gLUQkcG9ydERlZmluZSAtSSBTb3Vy
Y2UvV1RGIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggfCBncmVwICdeI2RlZmluZSBFTkFCTEVf
XFx3XFwrIFxbMDFcXVwkJyB8IGN1dCAtZCcgJyAtZjItM2A7CisKKyAgICBteSAlZmVhdHVyZURl
ZmF1bHRzOworICAgIGZvcmVhY2ggKHNwbGl0KC9cbi8sICRkZWZpbml0aW9ucykpIHsKKyAgICAg
ICAgbXkgQG1hY3JvRGVmaW5pdGlvbiA9IHNwbGl0KC8gLyk7CisgICAgICAgICRmZWF0dXJlRGVm
YXVsdHN7JG1hY3JvRGVmaW5pdGlvblswXX0gPSAkbWFjcm9EZWZpbml0aW9uWzFdOworICAgIH0K
KworICAgIEBmZWF0dXJlcyA9ICgpOworICAgIGZvcmVhY2ggKHNvcnQga2V5cyAlZmVhdHVyZURl
ZmF1bHRzKSB7CisgICAgICAgIG5leHQgaWYgKCEvXkVOQUJMRS8pOworICAgICAgICBteSAkb3B0
aW9uTmFtZSA9IGxjICRfOworICAgICAgICAkb3B0aW9uTmFtZSA9fiBzL15lbmFibGVfLy87Cisg
ICAgICAgICRvcHRpb25OYW1lID1+IHMvXy8tL2c7CisgICAgICAgIG15ICRkZXNjTmFtZSA9ICRv
cHRpb25OYW1lOworICAgICAgICAkZGVzY05hbWUgPX4gcy8tLyAvZzsKKworICAgICAgICBwdXNo
IEBmZWF0dXJlcywgeworICAgICAgICAgICAgb3B0aW9uID0+ICRvcHRpb25OYW1lLAorICAgICAg
ICAgICAgZGVzYyA9PiAiVG9nZ2xlICRkZXNjTmFtZSBzdXBwb3J0IiwKKyAgICAgICAgICAgIGRl
ZmluZSA9PiAkXywKKyAgICAgICAgICAgIGRlZmF1bHQgPT4gJGZlYXR1cmVEZWZhdWx0c3skX30K
KyAgICAgICAgfTsKKyAgICB9Cit9CisKICMgQWRkaXRpb25hbCBlbnZpcm9ubWVudCBwYXJhbWV0
ZXJzCiBwdXNoIEBBUkdWLCBzcGxpdCgvIC8sICRFTlZ7J0JVSUxEX1dFQktJVF9BUkdTJ30pIGlm
ICgkRU5WeydCVUlMRF9XRUJLSVRfQVJHUyd9KTsKIApAQCAtMTE2LDYgKzE1MCw3IEBAIFVzYWdl
OiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFtvcHRpb25zIHRvIHBhc3MgdG8gYnVpbGQgc3lzdGVt
XQogCiAgIC0tYmxhY2tiZXJyeSAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB0aGUgQmxhY2tC
ZXJyeSBwb3J0IG9uIE1hYy9MaW51eAogICAtLWVmbCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQnVpbGQgdGhlIEVGTCBwb3J0CisgIC0tbml4ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBCdWlsZCB0aGUgTml4IHBvcnQKICAgLS1ndGsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEJ1aWxkIHRoZSBHVEsrIHBvcnQKICAgLS1xdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEJ1aWxkIHRoZSBRdCBwb3J0CiAgIC0td2luY2Fpcm8gICAgICAgICAgICAgICAgICAgICAgICBC
dWlsZCB1c2luZyBDYWlybyAocmF0aGVyIHRoYW4gQ29yZUdyYXBoaWNzKSBvbiBXaW5kb3dzCkBA
IC0xMzcsNiArMTcyLDkgQEAgVXNhZ2U6ICRwcm9ncmFtTmFtZSBbb3B0aW9uc10gW29wdGlvbnMg
dG8gcGFzcyB0byBidWlsZCBzeXN0ZW1dCiAgIC0tbm8td2Via2l0MSAgICAgICAgICAgICAgICAg
ICAgICBPbWl0IFdlYktpdDEgY29kZSBmcm9tIHRoZSBidWlsZCAoUXQvRUZML0dUSyBvbmx5KQog
ICAtLW5vLXdlYmtpdDIgICAgICAgICAgICAgICAgICAgICAgT21pdCBXZWJLaXQyIGNvZGUgZnJv
bSB0aGUgYnVpbGQKIAorICAtLWN1cmwgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlIGxp
YkN1cmwgYXMgbmV0d29yayBiYWNrZW5kIChOaXggb25seSkKKyAgLS1vcGVuZ2xlczIgICAgICAg
ICAgICAgICAgICAgICAgIFVzZSBFR0wgYW5kIE9wZW5HTEVTMiBpbnN0ZWFkIG9mIEdMWCAoTml4
IG9ubHkpCisKIEVPRgogCiBteSAlb3B0aW9ucyA9ICgKQEAgLTE1Miw2ICsxOTAsOCBAQCBteSAl
b3B0aW9ucyA9ICgKICAgICAnbm8td2Via2l0MScgPT4gXCRub1dlYktpdDEsCiAgICAgJ25vLXdl
YmtpdDInID0+IFwkbm9XZWJLaXQyLAogICAgICdjb3ZlcmFnZScgPT4gXCRjb3ZlcmFnZVN1cHBv
cnQsCisgICAgJ2N1cmwnID0+IFwkY3VybCwKKyAgICAnb3BlbmdsZXMyJyA9PiBcJG9wZW5nbGVz
MiwKICk7CiAKICMgQnVpbGQgdXNhZ2UgdGV4dCBhbmQgb3B0aW9ucyBsaXN0IGZyb20gZmVhdHVy
ZXMKQEAgLTI3NCw2ICszMTQsMjQgQEAgaWYgKGlzSW5zcGVjdG9yRnJvbnRlbmQoKSkgewogCiBt
eSAkcmVzdWx0ID0gMDsKIAoraWYgKGlzTml4KCkpIHsKKyAgICBpZiAoJG5vV2ViS2l0Mikgewor
ICAgICAgICBwcmludCBTVERFUlIgIk5peCBpcyBhIFdlYktpdDIgcG9ydCwgeW91IGNhbid0IGRp
c2FibGUgV2ViS2l0MiBvbiBpdCFcbiI7CisgICAgICAgIGV4aXQgMTsKKyAgICB9CisKKyAgICAj
IEJ5IGRlZmF1bHQgd2UgYnVpbGQgdXNpbmcgYWxsIG9mIHRoZSBhdmFpbGFibGUgQ1BVcy4KKyAg
ICAkbWFrZUFyZ3MgLj0gKCRtYWtlQXJncyA/ICIgIiA6ICIiKSAuICItaiIgLiBudW1iZXJPZkNQ
VXMoKSBpZiAkbWFrZUFyZ3MgIX4gLy1qXHMqXGQrLzsKKyAgICAkY21ha2VBcmdzID0gIi1EV1RG
X1VTRV9DVVJMPU9OICIgLiAkY21ha2VBcmdzIGlmICRjdXJsOworICAgICRjbWFrZUFyZ3MgPSAi
LURXVEZfVVNFX09QRU5HTF9FU18yPU9OICIgLiAkY21ha2VBcmdzIGlmICRvcGVuZ2xlczI7CisK
KyAgICAjIFdlIHJlbW92ZSBDTWFrZUNhY2hlIHRvIGF2b2lkIHRoZSBib3RzIHRvIHJldXNlIGNh
Y2hlZCBmbGFncyB3aGVuCisgICAgIyB3ZSBlbmFibGUgbmV3IGZlYXR1cmVzLiBUaGlzIGZvcmNl
cyBhIHJlY29uZmlndXJhdGlvbi4KKyAgICByZW1vdmVDTWFrZUNhY2hlKCk7CisKKyAgICBidWls
ZENNYWtlUHJvamVjdE9yRXhpdCgkY2xlYW4sICJOaXgiLCAkcHJlZml4UGF0aCwgJG1ha2VBcmdz
LCAoY21ha2VCYXNlZFBvcnRBcmd1bWVudHMoKSwgY01ha2VBcmdzRnJvbUZlYXR1cmVzKCkpLCAk
Y21ha2VBcmdzKTsKK30KKwogaWYgKGlzRWZsKCkpIHsKICAgICAjIEJ5IGRlZmF1bHQgd2UgYnVp
bGQgdXNpbmcgYWxsIG9mIHRoZSBhdmFpbGFibGUgQ1BVcy4KICAgICAkbWFrZUFyZ3MgLj0gKCRt
YWtlQXJncyA/ICIgIiA6ICIiKSAuICItaiIgLiBudW1iZXJPZkNQVXMoKSBpZiAkbWFrZUFyZ3Mg
IX4gLy1qXHMqXGQrLzsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0dGVz
dHJ1bm5lciBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0dGVzdHJ1bm5lcgppbmRleCBlNWIy
MzU0NWI3N2U2ZTc4YjRjZTQxNjlmNDI4N2E4NWM0YmI1YzI5Li5jOGEzNDJiOTA2MTQ1NDNhNmM0
MTI4Zjg0Y2UwMTM3YzE2NjUwNWI1IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2J1aWxkLXdl
YmtpdHRlc3RydW5uZXIKKysrIGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXR0ZXN0cnVubmVy
CkBAIC02Myw3ICs2Myw3IEBAIGlmIChpc0FwcGxlTWFjV2ViS2l0KCkpIHsKICAgICAkcmVzdWx0
ID0gYnVpbGRYQ29kZVByb2plY3QoIldlYktpdFRlc3RSdW5uZXIiLCAkY2xlYW4sIFhjb2RlT3B0
aW9ucygpLCBAQVJHVik7CiB9IGVsc2lmIChpc0FwcGxlV2luV2ViS2l0KCkpIHsKICAgICAkcmVz
dWx0ID0gYnVpbGRWaXN1YWxTdHVkaW9Qcm9qZWN0KCJXZWJLaXRUZXN0UnVubmVyLnNsbiIsICRj
bGVhbik7Ci19IGVsc2lmIChpc1F0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpKSB7Cit9IGVsc2lm
IChpc1F0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpIHx8IGlzTml4KCkpIHsKICAgICAjIFF0IGFu
ZCBHVEsrIGJ1aWxkIGV2ZXJ5dGhpbmcgaW4gb25lIHNob3QuIE5vIG5lZWQgdG8gYnVpbGQgYW55
dGhpbmcgaGVyZS4KICAgICAkcmVzdWx0ID0gMDsKIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWph
dmFzY3JpcHRjb3JlLXRlc3RzCmluZGV4IDhiNzlmMjUxNDc4NzlhNjQ0ZDg4MjVkM2NhNWNiNTU4
ODQ4ZTcwYzcuLjQ0ODI5ZmY4YTQzOGE4MDllMzYwMTQwZWVmMmY0Yjk2OTE2ZjdiODUgMTAwNzU1
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzCisrKyBiL1Rvb2xz
L1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzCkBAIC01Nyw2ICs1NywxMCBAQCBteSBA
dGVzdHNUb1NraXAgPSAoCiAgICAgImVjbWEvRGF0ZS8xNS45LjUuMTQuanMiLAogICAgICJlY21h
L0RhdGUvMTUuOS41LjMxLTEuanMiLAogICAgICJlY21hL0RhdGUvMTUuOS41LjM0LTEuanMiLAor
ICAgICMgVGVzdHMgZmFpbGluZyB3aGVuIHJ1bm5pbmcgaW4gQlJUIHRpbWV6b25lCisgICAgImVj
bWEvRGF0ZS8xNS45LjUuMjgtMS5qcyIsCisgICAgImVjbWEvRGF0ZS8xNS45LjUuMjktMS5qcyIs
CisgICAgImVjbWEvRGF0ZS8xNS45LjUuMzUtMS5qcyIsCiApOwogCiBteSAkanNEcml2ZXJBcmdz
ID0gIi1MICIgLiBqb2luKCIgIiwgQHRlc3RzVG9Ta2lwKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvcnVuLWxhdW5jaGVyIGIvVG9vbHMvU2NyaXB0cy9ydW4tbGF1bmNoZXIKaW5kZXggNjY4
ODZmZTBiMTk3NGIyMzE5Mzg0MWRjN2M5N2UzODE5OGI4OTljNy4uZTgzOWI1YWMzNGY5MTUxYzll
NGIwY2U2ZGZjNzJlMmFlNWRhZjcyYiAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4tbGF1
bmNoZXIKKysrIGIvVG9vbHMvU2NyaXB0cy9ydW4tbGF1bmNoZXIKQEAgLTczLDYgKzczLDEyIEBA
IGlmIChpc1F0KCkpIHsKICAgICAgICAgdW5zaGlmdChAQVJHViwgKCItLWd0ayIsICJydW4iKSk7
CiAgICAgfQogCisgICAgaWYgKGlzTml4KCkpIHsKKyAgICAgICAgdW5zaGlmdChAQVJHViwgY2F0
ZGlyKCRsYXVuY2hlclBhdGgsICJiaW4iLCAiTWluaUJyb3dzZXIiKSk7CisgICAgICAgICRsYXVu
Y2hlclBhdGggPSBjYXRkaXIoc291cmNlRGlyKCksICJUb29scyIsICJqaGJ1aWxkIiwgImpoYnVp
bGQtd3JhcHBlciIpOworICAgICAgICB1bnNoaWZ0KEBBUkdWLCAoIi0tbml4IiwgInJ1biIpKTsK
KyAgICB9CisKICAgICBpZiAoaXNFZmwoKSkgewogICAgICAgICBpZiAoaXNXSzIoKSkgewogICAg
ICAgICAgICAgdW5zaGlmdChAQVJHViwgY2F0ZGlyKCRsYXVuY2hlclBhdGgsICJiaW4iLCAiTWlu
aUJyb3dzZXIiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi1uaXgtdGVzdHMgYi9U
b29scy9TY3JpcHRzL3J1bi1uaXgtdGVzdHMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjc5OGUxMDkzNDcxMjlmZGVl
YWUwZWQ5ZTVlNmU4Y2E0YTQ2ZTRmOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMv
cnVuLW5peC10ZXN0cwpAQCAtMCwwICsxLDQ0IEBACisjIS91c3IvYmluL3BlcmwgLXcKKyMgQ29w
eXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IyBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisj
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMg
ZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEludGVsIENvcnBvcmF0
aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwordXNlIHN0cmljdDsKK3VzZSBG
aW5kQmluOwordXNlIGxpYiAkRmluZEJpbjo6QmluOwordXNlIHdlYmtpdGRpcnM7CisKK3NldENv
bmZpZ3VyYXRpb24oKTsKKworIyBNYW51YWxseSBhZGQgdGhpcyBmb3IgamhidWlsZFdyYXBwZXJQ
cmVmaXhJZk5lZWRlZCgpLgorcHVzaChAQVJHViwgIi0tbml4Iik7CisKKyMgVGVsbCBDVGVzdCB0
byBkdW1wIGd0ZXN0IG91dHB1dCBpbiBjYXNlIG9mIGZhaWx1cmUuCiskRU5We0NURVNUX09VVFBV
VF9PTl9GQUlMVVJFfSA9ICIxIjsKKworYnVpbGRDTWFrZVByb2plY3RPckV4aXQoMCwgIk5peCIs
IHVuZGVmLCAidGVzdCIsIGNtYWtlQmFzZWRQb3J0QXJndW1lbnRzKCkpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9ydW4td2Via2l0
LXRlc3RzCmluZGV4IGZkNTA3ZTQ5YTlhZTNhNzYzNTczYjdkMDA0NDk4Mzk4YTQ1YzE4YTYuLmRj
NmZmYmRhMTVlZDFiZmZmM2VjNmU5Yzk3MjdkMWFiMjI5NzViNzAgMTAwNzU1Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cworKysgYi9Ub29scy9TY3JpcHRzL3J1bi13ZWJraXQt
dGVzdHMKQEAgLTkwLDYgKzkwLDggQEAgaWYgKGlzUXQoKSkgewogICAgIHB1c2goQEFSR1YsICIt
LWd0ayIpOwogfSBlbHNpZiAoaXNFZmwoKSkgewogICAgIHB1c2goQEFSR1YsICItLWVmbCIpOwor
fSBlbHNpZiAoaXNOaXgoKSkgeworICAgIHB1c2goQEFSR1YsICItLW5peCIpOwogfSBlbHNpZiAo
aXNXaW5DYWlybygpKSB7CiAgICAgcHVzaChAQVJHViwgIi0td2luY2Fpcm8iKTsKIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQgYi9Ub29scy9T
Y3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkCmluZGV4IGExNDg4ODc2YTk1YWZjMGM4
NGQwY2UyMmZhNjQ2MjQ1ZTRkOTg4NTIuLmEwNzc1YWIxYTMwYWM3ODhhNzU5OTk0ZWY3Nzg4M2Vj
NjVmMmNhNjQgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpo
YnVpbGQKKysrIGIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZApAQCAt
MjMsMTUgKzIzLDE3IEBAIHVzZSBHZXRvcHQ6Okxvbmc7CiAKIG15ICRwbGF0Zm9ybUVmbCA9IDA7
CiBteSAkcGxhdGZvcm1HdGsgPSAwOworbXkgJHBsYXRmb3JtTml4ID0gMDsKIAogbXkgJGdldE9w
dGlvbnNSZXN1bHQgPSBHZXRPcHRpb25zKAogICAgICdlZmwnID0+IFwkcGxhdGZvcm1FZmwsCi0g
ICAgJ2d0aycgPT4gXCRwbGF0Zm9ybUd0aworICAgICdndGsnID0+IFwkcGxhdGZvcm1HdGssCisg
ICAgJ25peCcgPT4gXCRwbGF0Zm9ybU5peAogICAgICk7CiAKIG15ICRwbGF0Zm9ybSA9ICIiOwog
aWYgKCEkZ2V0T3B0aW9uc1Jlc3VsdCkgewotICAgIGRpZSAiTm8gcGxhdGZvcm0gc3BlY2lmaWVk
IGZvciAiIC4gYmFzZW5hbWUoJDApIC4iLiBVc2UgLS1ndGsgb3IgLS1lZmwuXG4iOworICAgIGRp
ZSAiTm8gcGxhdGZvcm0gc3BlY2lmaWVkIGZvciAiIC4gYmFzZW5hbWUoJDApIC4iLiBVc2UgLS1n
dGssIC0tZWZsIG9yIC0tbml4LlxuIjsKIH0gZWxzZSB7CiAgICAgaWYgKCRwbGF0Zm9ybUVmbCkg
ewogICAgICAgICAkcGxhdGZvcm0gPSAiZWZsIjsKQEAgLTM5LDYgKzQxLDkgQEAgaWYgKCEkZ2V0
T3B0aW9uc1Jlc3VsdCkgewogICAgIGlmICgkcGxhdGZvcm1HdGspIHsKICAgICAgICAgJHBsYXRm
b3JtID0gImd0ayI7CiAgICAgfQorICAgIGlmICgkcGxhdGZvcm1OaXgpIHsKKyAgICAgICAgJHBs
YXRmb3JtID0gIm5peCI7CisgICAgfQogfQogCiBzdWIgZ2V0TUQ1SGFzaEZvckZpbGUoJCkKQEAg
LTExOCw3ICsxMjMsNyBAQCBkZWxldGUgJEVOVntBUl9GTEFHU30gaWYgZXhpc3RzICRFTlZ7QVJf
RkxBR1N9OwogCiBjaGRpcihyZWxhdGl2ZVNjcmlwdHNEaXIoKSAuICIvLi4vamhidWlsZCIpIG9y
IGRpZSAkITsKIAotbXkgJXByZXR0eVBsYXRmb3JtID0gKCAiZWZsIiA9PiAiRUZMIiwgImd0ayIg
PT4gIkdUSysiICk7CitteSAlcHJldHR5UGxhdGZvcm0gPSAoICJlZmwiID0+ICJFRkwiLCAiZ3Rr
IiA9PiAiR1RLKyIsICJuaXgiID0+ICJOaXgiICk7CiAKIGlmICgtZSBnZXRKaGJ1aWxkUGF0aCgp
ICYmIGpoYnVpbGRDb25maWd1cmF0aW9uQ2hhbmdlZCgpKSB7CiAgICAgY2xlYW5KaGJ1aWxkKCk7
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXRuaXgtbGlicyBiL1Rvb2xz
L1NjcmlwdHMvdXBkYXRlLXdlYmtpdG5peC1saWJzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzZjM2YmRhZjcxZTk4
ZjZhMjg4NzVhOTRjMmM0YjNjMmJjZWVhMzUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3Jp
cHRzL3VwZGF0ZS13ZWJraXRuaXgtbGlicwpAQCAtMCwwICsxLDI0IEBACisjIS91c3IvYmluL3Bl
cmwgLXcKKyMgQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uCisjIENvcHlyaWdo
dCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
CisjCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyMgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBp
ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVT
QQorCit1c2UgRmluZEJpbjsKK3VzZSBsaWIgJEZpbmRCaW46OkJpbjsKK3VzZSB3ZWJraXRkaXJz
OworCitteSAkc2NyaXB0c0RpciA9IHJlbGF0aXZlU2NyaXB0c0RpcigpOworc3lzdGVtKCJwZXJs
IiwgIiRzY3JpcHRzRGlyL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkIiwgIi0tbml4IikgPT0g
MCBvciBkaWUgJCE7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0gYi9U
b29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KaW5kZXggNTg5ODBkNzJmNDcwMzE1ZWUzNGE3ZGFm
ODY1OGMxZDJhZTBhYmVkYy4uOTQwN2Q1ZThjMjg5Y2QyODc4MDE1YzlkNmNhYTUzNmIwMDc5OTZl
NCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0ZGlycy5wbQpAQCAtOTUsNiArOTUsNyBAQCBteSAkaXNHdGs7CiBteSAkaXNX
aW5DRTsKIG15ICRpc1dpbkNhaXJvOwogbXkgJGlzRWZsOworbXkgJGlzTml4OwogbXkgJGlzQmxh
Y2tCZXJyeTsKIG15ICRpc0luc3BlY3RvckZyb250ZW5kOwogbXkgJGlzV0syOwpAQCAtMzE3LDcg
KzMxOCw3IEBAIHN1YiBkZXRlcm1pbmVBcmNoaXRlY3R1cmUKICAgICAgICAgICAgICAgICAkYXJj
aGl0ZWN0dXJlID0gJ2FybXY3JzsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgIH0gZWxz
aWYgKGlzRWZsKCkpIHsKKyAgICB9IGVsc2lmIChpc0VmbCgpIHx8IGlzTml4KCkpIHsKICAgICAg
ICAgbXkgJGhvc3RfcHJvY2Vzc29yID0gIiI7CiAgICAgICAgICRob3N0X3Byb2Nlc3NvciA9IGBj
bWFrZSAtLXN5c3RlbS1pbmZvcm1hdGlvbiB8IGdyZXAgQ01BS0VfU1lTVEVNX1BST0NFU1NPUmA7
CiAgICAgICAgIGlmICgkaG9zdF9wcm9jZXNzb3IgPX4gbS9eQ01BS0VfU1lTVEVNX1BST0NFU1NP
UiBcIihbXiJdKylcIi8pIHsKQEAgLTMyNywxMyArMzI4LDEzIEBAIHN1YiBkZXRlcm1pbmVBcmNo
aXRlY3R1cmUKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICghJGFyY2hpdGVjdHVyZSAmJiAo
aXNHdGsoKSB8fCBpc0FwcGxlTWFjV2ViS2l0KCkgfHwgaXNFZmwoKSkpIHsKKyAgICBpZiAoISRh
cmNoaXRlY3R1cmUgJiYgKGlzR3RrKCkgfHwgaXNBcHBsZU1hY1dlYktpdCgpIHx8IGlzRWZsKCkg
fHwgaXNOaXgoKSkpIHsKICAgICAgICAgIyBGYWxsIGJhY2sgdG8gb3V0cHV0IG9mIGBhcmNoJywg
aWYgaXQgaXMgcHJlc2VudC4KICAgICAgICAgJGFyY2hpdGVjdHVyZSA9IGBhcmNoYDsKICAgICAg
ICAgY2hvbXAgJGFyY2hpdGVjdHVyZTsKICAgICB9CiAKLSAgICBpZiAoISRhcmNoaXRlY3R1cmUg
JiYgKGlzR3RrKCkgfHwgaXNBcHBsZU1hY1dlYktpdCgpIHx8IGlzRWZsKCkpKSB7CisgICAgaWYg
KCEkYXJjaGl0ZWN0dXJlICYmIChpc0d0aygpIHx8IGlzQXBwbGVNYWNXZWJLaXQoKSB8fCBpc0Vm
bCgpIHx8IGlzTml4KCkpKSB7CiAgICAgICAgICMgRmFsbCBiYWNrIHRvIG91dHB1dCBvZiBgdW5h
bWUgLW0nLCBpZiBpdCBpcyBwcmVzZW50LgogICAgICAgICAkYXJjaGl0ZWN0dXJlID0gYHVuYW1l
IC1tYDsKICAgICAgICAgY2hvbXAgJGFyY2hpdGVjdHVyZTsKQEAgLTM4Miw2ICszODMsNyBAQCBz
dWIgYXJndW1lbnRzRm9yQ29uZmlndXJhdGlvbigpCiAgICAgcHVzaChAYXJncywgJy0tcXQnKSBp
ZiBpc1F0KCk7CiAgICAgcHVzaChAYXJncywgJy0tZ3RrJykgaWYgaXNHdGsoKTsKICAgICBwdXNo
KEBhcmdzLCAnLS1lZmwnKSBpZiBpc0VmbCgpOworICAgIHB1c2goQGFyZ3MsICctLW5peCcpIGlm
IGlzTml4KCk7CiAgICAgcHVzaChAYXJncywgJy0td2luY2Fpcm8nKSBpZiBpc1dpbkNhaXJvKCk7
CiAgICAgcHVzaChAYXJncywgJy0td2luY2UnKSBpZiBpc1dpbkNFKCk7CiAgICAgcHVzaChAYXJn
cywgJy0tYmxhY2tiZXJyeScpIGlmIGlzQmxhY2tCZXJyeSgpOwpAQCAtNTI1LDcgKzUyNyw3IEBA
IHN1YiBwcm9kdWN0RGlyCiBzdWIganNjUHJvZHVjdERpcgogewogICAgIG15ICRwcm9kdWN0RGly
ID0gcHJvZHVjdERpcigpOwotICAgICRwcm9kdWN0RGlyIC49ICIvYmluIiBpZiAoaXNRdCgpIHx8
IGlzRWZsKCkpOworICAgICRwcm9kdWN0RGlyIC49ICIvYmluIiBpZiAoaXNRdCgpIHx8IGlzRWZs
KCkgfHwgaXNOaXgoKSk7CiAgICAgJHByb2R1Y3REaXIgLj0gIi9Qcm9ncmFtcyIgaWYgaXNHdGso
KTsKIAogICAgIHJldHVybiAkcHJvZHVjdERpcjsKQEAgLTg0MSw2ICs4NDMsOSBAQCBzdWIgYnVp
bHREeWxpYlBhdGhGb3JOYW1lCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuICIkY29uZmlndXJh
dGlvblByb2R1Y3REaXIvbGliL2xpYmV3ZWJraXQuc28iOwogICAgIH0KKyAgICBpZiAoaXNOaXgo
KSkgeworICAgICAgICByZXR1cm4gIiRjb25maWd1cmF0aW9uUHJvZHVjdERpci9saWIvbGliV2Vi
S2l0Tml4LnNvIjsKKyAgICB9CiAgICAgaWYgKGlzV2luQ0UoKSkgewogICAgICAgICByZXR1cm4g
IiRjb25maWd1cmF0aW9uUHJvZHVjdERpci8kbGlicmFyeU5hbWUiOwogICAgIH0KQEAgLTk4NCw4
ICs5ODksOCBAQCBzdWIgZGV0ZXJtaW5lSXNRdCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICAjIFRoZSBwcmVzZW5jZSBvZiBRVERJUiBvbmx5IG1lYW5zIFF0IGlmIC0tZ3RrIG9yIC0t
ZWZsIG9yIC0tYmxhY2tiZXJyeSBvciAtLXdpbmNhaXJvIGFyZSBub3Qgb24gdGhlIGNvbW1hbmQt
bGluZQotICAgIGlmIChpc0d0aygpIHx8IGlzRWZsKCkgfHwgaXNCbGFja0JlcnJ5KCkgfHwgaXNX
aW5DYWlybygpKSB7CisgICAgaWYgKGlzR3RrKCkgfHwgaXNFZmwoKSB8fCBpc0JsYWNrQmVycnko
KSB8fCBpc1dpbkNhaXJvKCkgfHwgaXNOaXgoKSkgeworICAgICMgVGhlIHByZXNlbmNlIG9mIFFU
RElSIG9ubHkgbWVhbnMgUXQgaWYgLS1ndGsgb3IgLS1lZmwgb3IgLS1ibGFja2JlcnJ5IG9yIC0t
d2luY2Fpcm8gb3IgLS1uaXggYXJlIG5vdCBvbiB0aGUgY29tbWFuZC1saW5lCiAgICAgICAgICRp
c1F0ID0gMDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTExMzYsNiArMTE0MSwxNyBAQCBz
dWIgaXNFZmwoKQogICAgIHJldHVybiAkaXNFZmw7CiB9CiAKK3N1YiBkZXRlcm1pbmVJc05peCgp
Cit7CisgICAgcmV0dXJuIGlmIGRlZmluZWQoJGlzTml4KTsKKyAgICAkaXNOaXggPSBjaGVja0Zv
ckFyZ3VtZW50QW5kUmVtb3ZlRnJvbUFSR1YoIi0tbml4Iik7Cit9CisKK3N1YiBpc05peCgpCit7
CisgICAgZGV0ZXJtaW5lSXNOaXgoKTsKKyAgICByZXR1cm4gJGlzTml4OworfQogc3ViIGlzR3Rr
KCkKIHsKICAgICBkZXRlcm1pbmVJc0d0aygpOwpAQCAtMTI3NCw3ICsxMjkwLDcgQEAgc3ViIGlz
Q3Jvc3NDb21waWxhdGlvbigpCiAKIHN1YiBpc0FwcGxlV2ViS2l0KCkKIHsKLSAgICByZXR1cm4g
IShpc1F0KCkgb3IgaXNHdGsoKSBvciBpc0VmbCgpIG9yIGlzV2luQ0UoKSBvciBpc0JsYWNrQmVy
cnkoKSk7CisgICAgcmV0dXJuICEoaXNRdCgpIG9yIGlzR3RrKCkgb3IgaXNFZmwoKSBvciBpc1dp
bkNFKCkgb3IgaXNCbGFja0JlcnJ5KCkgb3IgaXNOaXgoKSk7CiB9CiAKIHN1YiBpc0FwcGxlTWFj
V2ViS2l0KCkKQEAgLTE0NDksNyArMTQ2NSw3IEBAIHN1YiByZWxhdGl2ZVNjcmlwdHNEaXIoKQog
c3ViIGxhdW5jaGVyUGF0aCgpCiB7CiAgICAgbXkgJHJlbGF0aXZlU2NyaXB0c1BhdGggPSByZWxh
dGl2ZVNjcmlwdHNEaXIoKTsKLSAgICBpZiAoaXNHdGsoKSB8fCBpc1F0KCkgfHwgaXNFZmwoKSB8
fCBpc1dpbkNFKCkpIHsKKyAgICBpZiAoaXNHdGsoKSB8fCBpc1F0KCkgfHwgaXNFZmwoKSB8fCBp
c1dpbkNFKCkgfHwgaXNOaXgoKSkgewogICAgICAgICByZXR1cm4gIiRyZWxhdGl2ZVNjcmlwdHNQ
YXRoL3J1bi1sYXVuY2hlciI7CiAgICAgfSBlbHNpZiAoaXNBcHBsZVdlYktpdCgpKSB7CiAgICAg
ICAgIHJldHVybiAiJHJlbGF0aXZlU2NyaXB0c1BhdGgvcnVuLXNhZmFyaSI7CkBAIC0xNDY4LDYg
KzE0ODQsOCBAQCBzdWIgbGF1bmNoZXJOYW1lKCkKICAgICAgICAgcmV0dXJuICJFV2ViTGF1bmNo
ZXIvTWluaUJyb3dzZXIiOwogICAgIH0gZWxzaWYgKGlzV2luQ0UoKSkgewogICAgICAgICByZXR1
cm4gIldpbkNFTGF1bmNoZXIiOworICAgIH0gZWxzaWYgKGlzTml4KCkpIHsKKyAgICAgICAgcmV0
dXJuICJNaW5pQnJvd3NlciI7CiAgICAgfQogfQogCkBAIC0xNDk0LDcgKzE1MTIsNyBAQCBzdWIg
Y2hlY2tSZXF1aXJlZFN5c3RlbUNvbmZpZwogICAgICAgICAgICAgcHJpbnQgImh0dHA6Ly9kZXZl
bG9wZXIuYXBwbGUuY29tL3Rvb2xzL3hjb2RlXG4iOwogICAgICAgICAgICAgcHJpbnQgIioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipc
biI7CiAgICAgICAgIH0KLSAgICB9IGVsc2lmIChpc0d0aygpIG9yIGlzUXQoKSBvciBpc0VmbCgp
KSB7CisgICAgfSBlbHNpZiAoaXNHdGsoKSBvciBpc1F0KCkgb3IgaXNFZmwoKSBvciBpc05peCgp
KSB7CiAgICAgICAgIG15IEBjbWRzID0gcXcoYmlzb24gZ3BlcmYpOwogICAgICAgICBpZiAoaXNR
dCgpIGFuZCBpc1dpbmRvd3MoKSkgewogICAgICAgICAgICAgcHVzaCBAY21kcywgIndpbl9mbGV4
IjsKQEAgLTE2ODksNyArMTcwNyw3IEBAIHN1YiBjb3B5SW5zcGVjdG9yRnJvbnRlbmRGaWxlcwog
ICAgICAgICAkaW5zcGVjdG9yUmVzb3VyY2VzRGlyUGF0aCA9ICRwcm9kdWN0RGlyIC4gIi9XZWJD
b3JlLmZyYW1ld29yay9SZXNvdXJjZXMvaW5zcGVjdG9yIjsKICAgICB9IGVsc2lmIChpc0FwcGxl
V2luV2ViS2l0KCkpIHsKICAgICAgICAgJGluc3BlY3RvclJlc291cmNlc0RpclBhdGggPSAkcHJv
ZHVjdERpciAuICIvV2ViS2l0LnJlc291cmNlcy9pbnNwZWN0b3IiOwotICAgIH0gZWxzaWYgKGlz
UXQoKSB8fCBpc0d0aygpKSB7CisgICAgfSBlbHNpZiAoaXNRdCgpIHx8IGlzR3RrKCkgfHwgaXNO
aXgoKSkgewogICAgICAgICBteSAkcHJlZml4ID0gJEVOVnsiV2ViS2l0SW5zdGFsbGF0aW9uUHJl
Zml4In07CiAgICAgICAgICRpbnNwZWN0b3JSZXNvdXJjZXNEaXJQYXRoID0gKGRlZmluZWQoJHBy
ZWZpeCkgPyAkcHJlZml4IDogIi91c3Ivc2hhcmUiKSAuICIvd2Via2l0LTEuMC93ZWJpbnNwZWN0
b3IiOwogICAgIH0gZWxzaWYgKGlzRWZsKCkpIHsKQEAgLTIwMzUsNiArMjA1Myw4IEBAIHN1YiBq
aGJ1aWxkV3JhcHBlclByZWZpeElmTmVlZGVkKCkKICAgICAgICAgICAgIHB1c2goQHByZWZpeCwg
Ii0tZWZsIik7CiAgICAgICAgIH0gZWxzaWYgKGlzR3RrKCkpIHsKICAgICAgICAgICAgIHB1c2go
QHByZWZpeCwgIi0tZ3RrIik7CisgICAgICAgIH0gZWxzaWYgKGlzTml4KCkpIHsKKyAgICAgICAg
ICAgIHB1c2goQHByZWZpeCwgIi0tbml4Iik7CiAgICAgICAgIH0KICAgICAgICAgcHVzaChAcHJl
Zml4LCAicnVuIik7CiAKQEAgLTIxMjksNiArMjE0OSw5IEBAIHN1YiBidWlsZENNYWtlUHJvamVj
dE9yRXhpdCgkJCQkQCkKICAgICAgICAgc3lzdGVtKCJwZXJsIiwgIiRzb3VyY2VEaXIvVG9vbHMv
U2NyaXB0cy91cGRhdGUtd2Via2l0ZWZsLWxpYnMiKSA9PSAwIG9yIGRpZSAkITsKICAgICB9CiAK
KyAgICBpZiAoaXNOaXgoKSAmJiBjaGVja0ZvckFyZ3VtZW50QW5kUmVtb3ZlRnJvbUFSR1YoIi0t
dXBkYXRlLW5peCIpKSB7CisgICAgICAgIHN5c3RlbSgicGVybCIsICIkc291cmNlRGlyL1Rvb2xz
L1NjcmlwdHMvdXBkYXRlLXdlYmtpdG5peC1saWJzIikgPT0gMCBvciBkaWUgJCE7CisgICAgfQog
CiAgICAgJHJldHVybkNvZGUgPSBleGl0U3RhdHVzKGdlbmVyYXRlQnVpbGRTeXN0ZW1Gcm9tQ01h
a2VQcm9qZWN0KCRwb3J0LCAkcHJlZml4UGF0aCwgQGNtYWtlQXJncykpOwogICAgIGV4aXQoJHJl
dHVybkNvZGUpIGlmICRyZXR1cm5Db2RlOwpAQCAtMjE1Miw2ICsyMTc1LDcgQEAgc3ViIGNtYWtl
QmFzZWRQb3J0TmFtZSgpCiAgICAgcmV0dXJuICJCbGFja0JlcnJ5IiBpZiBpc0JsYWNrQmVycnko
KTsKICAgICByZXR1cm4gIkVmbCIgaWYgaXNFZmwoKTsKICAgICByZXR1cm4gIldpbkNFIiBpZiBp
c1dpbkNFKCk7CisgICAgcmV0dXJuICJOaXgiIGlmIGlzTml4KCk7CiAgICAgcmV0dXJuICIiOwog
fQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9y
dHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkKaW5k
ZXggMGMyMGRhZTUxMjRhMjdkNTdiODZlN2RhYzUyZjczNGNjNTY2NGY5Ny4uM2M2YmNiNGM3MGMz
NWEzMTI2NzU3ODcyODQ5MmFlYThjMGY1NmQ3MyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weQpAQCAtNzAsNiArNzAsNyBAQCBjbGFzcyBEZXByZWNh
dGVkUG9ydChvYmplY3QpOgogICAgICAgICAgICAgInF0LXdrMiI6IFF0V0syUG9ydCwKICAgICAg
ICAgICAgICJlZmwiOiBFZmxQb3J0LAogICAgICAgICAgICAgImVmbC13azIiOiBFZmxXSzJQb3J0
LAorICAgICAgICAgICAgIm5peCI6IE5peFBvcnQsCiAgICAgICAgIH0KICAgICAgICAgZGVmYXVs
dF9wb3J0ID0gewogICAgICAgICAgICAgIldpbmRvd3MiOiBXaW5Qb3J0LApAQCAtODEsNyArODIs
NyBAQCBjbGFzcyBEZXByZWNhdGVkUG9ydChvYmplY3QpOgogICAgIGRlZiBtYWtlQXJncyhzZWxm
KToKICAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGRuJ3QgdXNlIGEgc3RhdGljIEV4ZWN1dGl2
ZSgpLgogICAgICAgICBhcmdzID0gJy0tbWFrZWFyZ3M9Ii1qJXMiJyAlIEV4ZWN1dGl2ZSgpLmNw
dV9jb3VudCgpCi0gICAgICAgIGlmIG9zLmVudmlyb24uaGFzX2tleSgnTUFLRUZMQUdTJyk6Cisg
ICAgICAgIGlmICdNQUtFRkxBR1MnIGluIG9zLmVudmlyb246CiAgICAgICAgICAgICBhcmdzID0g
Jy0tbWFrZWFyZ3M9IiVzIicgJSBvcy5lbnZpcm9uWydNQUtFRkxBR1MnXQogICAgICAgICByZXR1
cm4gYXJncwogCkBAIC0yMzAsMyArMjMxLDE0IEBAIGNsYXNzIEVmbFdLMlBvcnQoRGVwcmVjYXRl
ZFBvcnQpOgogICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1uby13ZWJraXQxIikKICAgICAgICAg
Y29tbWFuZC5hcHBlbmQoc3VwZXIoRWZsV0syUG9ydCwgc2VsZikubWFrZUFyZ3MoKSkKICAgICAg
ICAgcmV0dXJuIGNvbW1hbmQKKworCitjbGFzcyBOaXhQb3J0KERlcHJlY2F0ZWRQb3J0KToKKyAg
ICBwb3J0X2ZsYWdfbmFtZSA9ICJuaXgiCisKKyAgICBkZWYgYnVpbGRfd2Via2l0X2NvbW1hbmQo
c2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CisgICAgICAgIGNvbW1hbmQgPSBzdXBlcihOaXhQb3J0
LCBzZWxmKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSkKKyAg
ICAgICAgY29tbWFuZC5hcHBlbmQoIi0tbml4IikKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0t
dXBkYXRlLW5peCIpCisgICAgICAgIGNvbW1hbmQuYXBwZW5kKHN1cGVyKE5peFBvcnQsIHNlbGYp
Lm1ha2VBcmdzKCkpCisgICAgICAgIHJldHVybiBjb21tYW5kCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cG9ydC9mYWN0b3J5LnB5CmluZGV4IGU5ZjE0NjU2MzAwNzdjMmQxZDc2NGUyOWJhNDY0YTUzYmM0
MWU2NmUuLjgwMzkxNTllMDZhMjMxZmIwN2ZmZTY3NThkZWFhNWI4NTExN2NlMmEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5CkBAIC00Miw2ICs0Miw4IEBAIGRlZiBwbGF0
Zm9ybV9vcHRpb25zKHVzZV9nbG9icz1GYWxzZSk6CiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0
aW9uKCctLWVmbCcsIGFjdGlvbj0nc3RvcmVfY29uc3QnLCBkZXN0PSdwbGF0Zm9ybScsCiAgICAg
ICAgICAgICBjb25zdD0oJ2VmbConIGlmIHVzZV9nbG9icyBlbHNlICdlZmwnKSwKICAgICAgICAg
ICAgIGhlbHA9KCdBbGlhcyBmb3IgLS1wbGF0Zm9ybT1lZmwqJyBpZiB1c2VfZ2xvYnMgZWxzZSAn
QWxpYXMgZm9yIC0tcGxhdGZvcm09ZWZsJykpLAorICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlv
bignLS1uaXgnLCBhY3Rpb249J3N0b3JlX2NvbnN0JywgZGVzdD0ncGxhdGZvcm0nLAorICAgICAg
ICAgICAgY29uc3Q9KCduaXgnKSwgaGVscD0oJ0FsaWFzIGZvciAtLXBsYXRmb3JtPW5peCcpKSwK
ICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tZ3RrJywgYWN0aW9uPSdzdG9yZV9jb25z
dCcsIGRlc3Q9J3BsYXRmb3JtJywKICAgICAgICAgICAgIGNvbnN0PSgnZ3RrKicgaWYgdXNlX2ds
b2JzIGVsc2UgJ2d0aycpLAogICAgICAgICAgICAgaGVscD0oJ0FsaWFzIGZvciAtLXBsYXRmb3Jt
PWd0ayonIGlmIHVzZV9nbG9icyBlbHNlICdBbGlhcyBmb3IgLS1wbGF0Zm9ybT1ndGsnKSksCkBA
IC03NSw2ICs3Nyw3IEBAIGRlZiBfYnVpbGRlcl9vcHRpb25zKGJ1aWxkZXJfbmFtZSk6CiBjbGFz
cyBQb3J0RmFjdG9yeShvYmplY3QpOgogICAgIFBPUlRfQ0xBU1NFUyA9ICgKICAgICAgICAgJ2Vm
bC5FZmxQb3J0JywKKyAgICAgICAgJ25peC5OaXhQb3J0JywKICAgICAgICAgJ2d0ay5HdGtQb3J0
JywKICAgICAgICAgJ21hYy5NYWNQb3J0JywKICAgICAgICAgJ21vY2tfZHJ0Lk1vY2tEUlRQb3J0
JywKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9uaXgucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbml4LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5MWI1ZTE4ZmUzMzQ4
ZjlmZmYxYmY2MjdkNTI5MTFjYzYzYTVlNDgKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvbml4LnB5CkBAIC0wLDAgKzEsMTE5IEBACisjIENvcHlyaWdodCAo
QykgMjAxMSBQcm9GVVNJT04gRW1iZWRkZWQgU3lzdGVtcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMgQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgorIyBDb3B5cmln
aHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
KyIiIldlYktpdCBOaXggaW1wbGVtZW50YXRpb24gb2YgdGhlIFBvcnQgaW50ZXJmYWNlLiIiIgor
CitpbXBvcnQgb3MKKworZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzLnRlc3RfY29u
ZmlndXJhdGlvbiBpbXBvcnQgVGVzdENvbmZpZ3VyYXRpb24KK2Zyb20gd2Via2l0cHkucG9ydC5i
YXNlIGltcG9ydCBQb3J0Citmcm9tIHdlYmtpdHB5LnBvcnQucHVsc2VhdWRpb19zYW5pdGl6ZXIg
aW1wb3J0IFB1bHNlQXVkaW9TYW5pdGl6ZXIKKworCitjbGFzcyBOaXhQb3J0KFBvcnQpOgorICAg
IHBvcnRfbmFtZSA9ICduaXgnCisKKyAgICBkZWYgX3drMl9wb3J0X25hbWUoc2VsZik6CisgICAg
ICAgIHJldHVybiAnbml4JworCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGRldGVybWluZV9m
dWxsX3BvcnRfbmFtZShjbHMsIGhvc3QsIG9wdGlvbnMsIHBvcnRfbmFtZSk6CisgICAgICAgICIi
IkRldGVybWluZSB0aGUgcG9ydCBuYW1lIGJhc2VkIG9uIGhvc3QgYW5kIG9wdGlvbnMgdmFsdWVz
LiIiIgorICAgICAgICAjIEN1cnJlbnRseSB0aGUgb25seSAicG9ydCIgaW5zdGFuY2Ugc3VwcG9y
dGVkIGJ5IE5peCBpcyAibml4Ii4gUmVpbXBsZW1lbnRpbmcKKyAgICAgICAgIyB0aGlzIG1ldGhv
ZCBhdm9pZHMgY2hhbmdpbmcgcG9ydCBuYW1lIHRvIG5peC13azIsIHdoaWNoIGlzIHRoZSBkZWZh
dWx0CisgICAgICAgICMgYmVoYXZpb3IgaW4gYmFzZS5weS4KKyAgICAgICAgcmV0dXJuIHBvcnRf
bmFtZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAg
IHN1cGVyKE5peFBvcnQsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKworICAgICAg
ICBzZWxmLl9qaGJ1aWxkX3dyYXBwZXJfcGF0aCA9IHNlbGYucGF0aF9mcm9tX3dlYmtpdF9iYXNl
KCdUb29scycsICduaXgnLCAncnVuLXdpdGgtamhidWlsZCcpCisKKyAgICAgICAgc2VsZi5zZXRf
b3B0aW9uX2RlZmF1bHQoJ3dyYXBwZXInLCBzZWxmLl9qaGJ1aWxkX3dyYXBwZXJfcGF0aCkKKyAg
ICAgICAgc2VsZi5zZXRfb3B0aW9uX2RlZmF1bHQoJ3dlYmtpdF90ZXN0X3J1bm5lcicsIFRydWUp
CisgICAgICAgIHNlbGYud2VicHJvY2Vzc19jbWRfcHJlZml4ID0gc2VsZi5nZXRfb3B0aW9uKCd3
ZWJwcm9jZXNzX2NtZF9wcmVmaXgnKQorCisgICAgICAgIHNlbGYuX3B1bHNlYXVkaW9fc2FuaXRp
emVyID0gUHVsc2VBdWRpb1Nhbml0aXplcigpCisKKyAgICBkZWYgX3BvcnRfZmxhZ19mb3Jfc2Ny
aXB0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuICItLW5peCIKKworICAgIGRlZiBzZXR1cF90ZXN0
X3J1bihzZWxmKToKKyAgICAgICAgc2VsZi5fcHVsc2VhdWRpb19zYW5pdGl6ZXIudW5sb2FkX3B1
bHNlYXVkaW9fbW9kdWxlKCkKKworICAgIGRlZiBzZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2Vs
Ziwgc2VydmVyX25hbWU9Tm9uZSk6CisgICAgICAgIGVudiA9IHN1cGVyKE5peFBvcnQsIHNlbGYp
LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihzZXJ2ZXJfbmFtZSkKKyAgICAgICAgIyBJZiBESVNQ
TEFZIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHVuc2V0IGluIHRoZSBzeXN0ZW0KKyAgICAgICAg
IyBlLmcuIG9uIGJ1aWxkIGJvdCwgcmVtb3ZlIERJU1BMQVkgdmFyaWFibGUgZnJvbSB0aGUgZGlj
dGlvbmFyeQorICAgICAgICBpZiBub3QgJ0RJU1BMQVknIGluIG9zLmVudmlyb246CisgICAgICAg
ICAgICBkZWwgZW52WydESVNQTEFZJ10KKyAgICAgICAgZW52WydURVNUX1JVTk5FUl9JTkpFQ1RF
RF9CVU5ETEVfRklMRU5BTUUnXSA9IHNlbGYuX2J1aWxkX3BhdGgoJ2xpYicsICdsaWJUZXN0UnVu
bmVySW5qZWN0ZWRCdW5kbGUuc28nKQorICAgICAgICBlbnZbJ1RFU1RfUlVOTkVSX1BMVUdJTl9Q
QVRIJ10gPSBzZWxmLl9idWlsZF9wYXRoKCdsaWInKQorICAgICAgICBpZiBzZWxmLndlYnByb2Nl
c3NfY21kX3ByZWZpeDoKKyAgICAgICAgICAgIGVudlsnV0VCX1BST0NFU1NfQ01EX1BSRUZJWCdd
ID0gc2VsZi53ZWJwcm9jZXNzX2NtZF9wcmVmaXgKKworICAgICAgICByZXR1cm4gZW52CisKKyAg
ICBkZWYgZGVmYXVsdF90aW1lb3V0X21zKHNlbGYpOgorICAgICAgICAjIFRlc3RzIHJ1biBjb25z
aWRlcmFibHkgc2xvd2VyIHVuZGVyIGdkYgorICAgICAgICAjIG9yIHZhbGdyaW5kLgorICAgICAg
ICBpZiBzZWxmLmdldF9vcHRpb24oJ3dlYnByb2Nlc3NfY21kX3ByZWZpeCcpOgorICAgICAgICAg
ICAgcmV0dXJuIDM1MCAqIDEwMDAKKyAgICAgICAgcmV0dXJuIHN1cGVyKE5peFBvcnQsIHNlbGYp
LmRlZmF1bHRfdGltZW91dF9tcygpCisKKyAgICBkZWYgY2xlYW5fdXBfdGVzdF9ydW4oc2VsZik6
CisgICAgICAgIHN1cGVyKE5peFBvcnQsIHNlbGYpLmNsZWFuX3VwX3Rlc3RfcnVuKCkKKyAgICAg
ICAgc2VsZi5fcHVsc2VhdWRpb19zYW5pdGl6ZXIucmVzdG9yZV9wdWxzZWF1ZGlvX21vZHVsZSgp
CisKKyAgICBkZWYgX2dlbmVyYXRlX2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKHNlbGYpOgorICAg
ICAgICByZXR1cm4gW1Rlc3RDb25maWd1cmF0aW9uKHZlcnNpb249c2VsZi5fdmVyc2lvbiwgYXJj
aGl0ZWN0dXJlPSd4ODYnLCBidWlsZF90eXBlPWJ1aWxkX3R5cGUpIGZvciBidWlsZF90eXBlIGlu
IHNlbGYuQUxMX0JVSUxEX1RZUEVTXQorCisgICAgZGVmIF9wYXRoX3RvX2RyaXZlcihzZWxmKToK
KyAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWxkX3BhdGgoJ2JpbicsIHNlbGYuZHJpdmVyX25hbWUo
KSkKKworICAgIGRlZiBfcGF0aF90b19pbWFnZV9kaWZmKHNlbGYpOgorICAgICAgICByZXR1cm4g
c2VsZi5fYnVpbGRfcGF0aCgnYmluJywgJ0ltYWdlRGlmZicpCisKKyAgICBkZWYgX2ltYWdlX2Rp
ZmZfY29tbWFuZChzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICByZXR1cm4gW3NlbGYu
X2poYnVpbGRfd3JhcHBlcl9wYXRoXSArIHN1cGVyKE5peFBvcnQsIHNlbGYpLl9pbWFnZV9kaWZm
X2NvbW1hbmQoKmFyZ3MsICoqa3dhcmdzKQorCisgICAgZGVmIF9zZWFyY2hfcGF0aHMoc2VsZik6
CisgICAgICAgIHJldHVybiBbc2VsZi5wb3J0X25hbWVdCisKKyAgICBkZWYgc2hvd19yZXN1bHRz
X2h0bWxfZmlsZShzZWxmLCByZXN1bHRzX2ZpbGVuYW1lKToKKyAgICAgICAgcnVuX2xhdW5jaGVy
X2FyZ3MgPSBbImZpbGU6Ly8lcyIgJSByZXN1bHRzX2ZpbGVuYW1lXQorICAgICAgICBzZWxmLl9y
dW5fc2NyaXB0KCJydW4tbGF1bmNoZXIiLCBydW5fbGF1bmNoZXJfYXJncykKKworICAgIGRlZiBf
cG9ydF9zcGVjaWZpY19leHBlY3RhdGlvbnNfZmlsZXMoc2VsZik6CisgICAgICAgIHBhdGhzID0g
c2VsZi5fc2VhcmNoX3BhdGhzKCkKKyAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd3ZWJraXRf
dGVzdF9ydW5uZXInKToKKyAgICAgICAgICAgIHBhdGhzLmFwcGVuZCgnd2syJykKKyAgICAgICAg
cmV0dXJuIGxpc3QoKFtzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fd2Via2l0X2Jhc2VsaW5l
X3BhdGgocCksICdUZXN0RXhwZWN0YXRpb25zJykgZm9yIHAgaW4gcGF0aHNdKSkKKworICAgIGRl
ZiBkZWZhdWx0X2Jhc2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYpOgorICAgICAgICByZXR1cm4gbWFw
KHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoLCBbJ25peCcsICd3azInXSkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9uaXhfdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvbml4X3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1MmEwNGY5ZjIz
MTY1ZWM1NzdjNzMyOGI0ZDJlYWM3ZTFhY2JhNWEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvbml4X3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNjggQEAKKyMg
Q29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6Cisj
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorIyBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBPUgorIyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyMgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorIyBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2lt
cG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKK2ltcG9ydCBvcworZnJvbSBjb3B5IGltcG9ydCBk
ZWVwY29weQorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlX21vY2sgaW1w
b3J0IE1vY2tFeGVjdXRpdmUsIE1vY2tFeGVjdXRpdmUyCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5z
eXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQorZnJvbSB3ZWJraXRweS5j
b21tb24uc3lzdGVtLnN5c3RlbWhvc3RfbW9jayBpbXBvcnQgTW9ja1N5c3RlbUhvc3QKK2Zyb20g
d2Via2l0cHkucG9ydCBpbXBvcnQgcG9ydF90ZXN0Y2FzZQorZnJvbSB3ZWJraXRweS5wb3J0Lm5p
eCBpbXBvcnQgTml4UG9ydAorZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2Nr
T3B0aW9ucworCisKK2NsYXNzIE5peFBvcnRUZXN0KHBvcnRfdGVzdGNhc2UuUG9ydFRlc3RDYXNl
KToKKyAgICBwb3J0X25hbWUgPSAnbml4JworICAgIHBvcnRfbWFrZXIgPSBOaXhQb3J0CisgICAg
c2VhcmNoX3BhdGhzX2Nhc2VzID0gWworICAgICAgICAgICAgeydzZWFyY2hfcGF0aHMnOiBbJ25p
eCcsICd3azInXSwgJ29zX25hbWUnOidsaW51eCd9XQorICAgIGV4cGVjdGF0aW9uX2ZpbGVzX2Nh
c2VzID0gWworICAgICAgICB7J3NlYXJjaF9wYXRocyc6IFsnJywgJ25peCcsICd3azInXSwgJ29z
X25hbWUnOidsaW51eCd9XQorCisgICAgZGVmIF9hc3NlcnRfc2VhcmNoX3BhdGgoc2VsZiwgc2Vh
cmNoX3BhdGhzLCBvc19uYW1lKToKKyAgICAgICAgaG9zdCA9IE1vY2tTeXN0ZW1Ib3N0KG9zX25h
bWU9b3NfbmFtZSkKKyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KHBvcnRfbmFtZT1zZWxm
LnBvcnRfbmFtZSwgaG9zdD1ob3N0LCBvcHRpb25zPU1vY2tPcHRpb25zKHdlYmtpdF90ZXN0X3J1
bm5lcj1UcnVlKSkKKyAgICAgICAgYWJzb2x1dGVfc2VhcmNoX3BhdGhzID0gbWFwKHBvcnQuX3dl
YmtpdF9iYXNlbGluZV9wYXRoLCBzZWFyY2hfcGF0aHMpCisKKyAgICAgICAgdW5pdHRlc3QuVGVz
dENhc2UuYXNzZXJ0RXF1YWwocG9ydC5iYXNlbGluZV9zZWFyY2hfcGF0aCgpLCBhYnNvbHV0ZV9z
ZWFyY2hfcGF0aHMpCisKKyAgICBkZWYgX2Fzc2VydF9leHBlY3RhdGlvbnNfZmlsZXMoc2VsZiwg
c2VhcmNoX3BhdGhzLCBvc19uYW1lKToKKyAgICAgICAgaG9zdCA9IE1vY2tTeXN0ZW1Ib3N0KG9z
X25hbWU9b3NfbmFtZSkKKyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KHBvcnRfbmFtZT1z
ZWxmLnBvcnRfbmFtZSwgaG9zdD1ob3N0LCBvcHRpb25zPU1vY2tPcHRpb25zKHdlYmtpdF90ZXN0
X3J1bm5lcj1UcnVlKSkKKyAgICAgICAgdW5pdHRlc3QuVGVzdENhc2UuYXNzZXJ0RXF1YWwocG9y
dC5leHBlY3RhdGlvbnNfZmlsZXMoKSwgc2VhcmNoX3BhdGhzKQorCisgICAgZGVmIHRlc3RfYmFz
ZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6CisgICAgICAgIGZvciBjYXNlIGluIHNlbGYuc2VhcmNo
X3BhdGhzX2Nhc2VzOgorICAgICAgICAgICAgc2VsZi5fYXNzZXJ0X3NlYXJjaF9wYXRoKCoqY2Fz
ZSkKKworICAgIGRlZiB0ZXN0X2V4cGVjdGF0aW9uc19maWxlcyhzZWxmKToKKyAgICAgICAgZm9y
IGNhc2UgaW4gc2VsZi5leHBlY3RhdGlvbl9maWxlc19jYXNlczoKKyAgICAgICAgICAgIGV4cGVj
dGF0aW9uc19jYXNlID0gZGVlcGNvcHkoY2FzZSkKKyAgICAgICAgICAgIGV4cGVjdGF0aW9uc19j
YXNlWydzZWFyY2hfcGF0aHMnXSA9IG1hcChsYW1iZGEgcGF0aDogJy9tb2NrLWNoZWNrb3V0L0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMnICBpZiBub3QgcGF0aCBlbHNlICcvbW9jay1jaGVj
a291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS8lcy9UZXN0RXhwZWN0YXRpb25zJyAlIChwYXRoKSwg
ZXhwZWN0YXRpb25zX2Nhc2VbJ3NlYXJjaF9wYXRocyddKQorICAgICAgICAgICAgc2VsZi5fYXNz
ZXJ0X2V4cGVjdGF0aW9uc19maWxlcygqKmV4cGVjdGF0aW9uc19jYXNlKQorCisgICAgZGVmIHRl
c3RfZGVmYXVsdF90aW1lb3V0X21zKHNlbGYpOgorICAgICAgICB1bml0dGVzdC5UZXN0Q2FzZS5h
c3NlcnRFcXVhbChzZWxmLm1ha2VfcG9ydChvcHRpb25zPU1vY2tPcHRpb25zKGNvbmZpZ3VyYXRp
b249J1JlbGVhc2UnKSkuZGVmYXVsdF90aW1lb3V0X21zKCksIDgwMDAwKQorICAgICAgICB1bml0
dGVzdC5UZXN0Q2FzZS5hc3NlcnRFcXVhbChzZWxmLm1ha2VfcG9ydChvcHRpb25zPU1vY2tPcHRp
b25zKGNvbmZpZ3VyYXRpb249J0RlYnVnJykpLmRlZmF1bHRfdGltZW91dF9tcygpLCA4MDAwMCkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL2poYnVpbGQvamhidWlsZC13cmFwcGVyIGIvVG9vbHMvamhidWls
ZC9qaGJ1aWxkLXdyYXBwZXIKaW5kZXggOWQzYTg3YjQ0YWE4MTkwZGFhYTRjNTM3YWEyOGM2YzQy
ZjcyNTk1Zi4uYTNhNzU1YmYyYjVmZjNhMTdjNmY0ZmFmNTBkYzE1YWIzNjE0ODZkYSAxMDA3NTUK
LS0tIGEvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBwZXIKKysrIGIvVG9vbHMvamhidWlsZC9q
aGJ1aWxkLXdyYXBwZXIKQEAgLTk1LDYgKzk1LDggQEAgZGVmIGRldGVybWluZV9wbGF0Zm9ybSgp
OgogICAgICAgICByZXR1cm4gImVmbCI7CiAgICAgaWYgJy0tZ3RrJyBpbiBzeXMuYXJndjoKICAg
ICAgICAgcmV0dXJuICJndGsiOworICAgIGlmICctLW5peCcgaW4gc3lzLmFyZ3Y6CisgICAgICAg
IHJldHVybiAibml4IjsKICAgICByYWlzZSBWYWx1ZUVycm9yKCdObyBwbGF0Zm9ybSBzcGVjaWZp
ZWQgZm9yIGpoYnVpbGQtd3JhcHBlci4nKQogCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL25peC9jb21t
b24ucHkgYi9Ub29scy9uaXgvY29tbW9uLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmODM1N2UzNzhlOGI5M2Q5
OGExNWVjZDM2OTcxZGJkMDAwMjc2YzQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9uaXgvY29t
bW9uLnB5CkBAIC0wLDAgKzEsMzIgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmln
aHQgKEMpIDIwMTEgSWdhbGlhIFMuTC4KKyMgQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorIyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisjCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisj
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisKK2ltcG9ydCBvcworCitzY3Jp
cHRfZGlyID0gTm9uZQorCisKK2RlZiBzY3JpcHRfcGF0aCgqYXJncyk6CisgICAgZ2xvYmFsIHNj
cmlwdF9kaXIKKyAgICBpZiBub3Qgc2NyaXB0X2RpcjoKKyAgICAgICAgc2NyaXB0X2RpciA9IG9z
LnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAnLi4nLCAnU2NyaXB0cycpCisg
ICAgcmV0dXJuIG9zLnBhdGguam9pbigqKHNjcmlwdF9kaXIsKSArIGFyZ3MpCisKKworZGVmIHRv
cF9sZXZlbF9wYXRoKCphcmdzKToKKyAgICByZXR1cm4gb3MucGF0aC5qb2luKCooKHNjcmlwdF9w
YXRoKCcuLicsICcuLicpLCkgKyBhcmdzKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL25peC9qaGJ1aWxk
Lm1vZHVsZXMgYi9Ub29scy9uaXgvamhidWlsZC5tb2R1bGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3OThjMGU1
MTM5NGVlOWIyZmRlYzdmNTcxODM2Y2ZjZTU5Y2UwODUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9uaXgvamhidWlsZC5tb2R1bGVzCkBAIC0wLDAgKzEsMTI3IEBACis8P3htbCB2ZXJzaW9uPSIx
LjAiPz4KKzwhRE9DVFlQRSBtb2R1bGVzZXQgU1lTVEVNICJtb2R1bGVzZXQuZHRkIj4KKzw/eG1s
LXN0eWxlc2hlZXQgdHlwZT0idGV4dC94c2wiIGhyZWY9Im1vZHVsZXNldC54c2wiPz4KKzxtb2R1
bGVzZXQ+CisKKyAgPG1ldGFtb2R1bGUgaWQ9IndlYmtpdG5peC10ZXN0aW5nLWRlcGVuZGVuY2ll
cyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iY2Fpcm8iLz4KKyAg
ICAgIDxkZXAgcGFja2FnZT0iZm9udHMiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZm9udGNvbmZp
ZyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJmcmVldHlwZTYiLz4KKyAgICAgIDxkZXAgcGFja2Fn
ZT0iaGFyZmJ1enoiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYiIvPgorICAgICAgPGRlcCBw
YWNrYWdlPSJnbGliLW5ldHdvcmtpbmciLz4KKyAgICAgIDxkZXAgcGFja2FnZT0ibGlic291cCIv
PgorICAgIDwvZGVwZW5kZW5jaWVzPgorICA8L21ldGFtb2R1bGU+CisKKyAgPHJlcG9zaXRvcnkg
dHlwZT0idGFyYmFsbCIgbmFtZT0iZ2l0aHViLmNvbSIKKyAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0
aHViLmNvbSIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJzb3VyY2V3YXJl
Lm9yZyIKKyAgICAgIGhyZWY9ImZ0cDovL3NvdXJjZXdhcmUub3JnIi8+CisgIDxyZXBvc2l0b3J5
IHR5cGU9InRhcmJhbGwiIG5hbWU9ImZ0cC5nbm9tZS5vcmciCisgICAgICBocmVmPSJodHRwOi8v
ZnRwLmdub21lLm9yZyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJnaXQiIG5hbWU9ImdpdC5nbm9t
ZS5vcmciCisgICAgICBocmVmPSJnaXQ6Ly9naXQuZ25vbWUub3JnLyIvPgorICA8cmVwb3NpdG9y
eSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJjYWlyb2dyYXBoaWNzLm9yZyIKKyAgICAgIGhyZWY9Imh0
dHA6Ly9jYWlyb2dyYXBoaWNzLm9yZyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBu
YW1lPSJmcmVlZGVza3RvcC5vcmciCisgICAgICBocmVmPSJodHRwOi8vd3d3LmZyZWVkZXNrdG9w
Lm9yZyIvPgorCisgIDxhdXRvdG9vbHMgaWQ9ImNhaXJvIiBhdXRvZ2VuLXNoPSJjb25maWd1cmUi
PgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZvbnRjb25maWciLz4K
KyAgICAgIDxkZXAgcGFja2FnZT0icGl4bWFuIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAg
PGJyYW5jaCBtb2R1bGU9InJlbGVhc2VzL2NhaXJvLTEuMTIuOC50YXIueHoiIHZlcnNpb249IjEu
MTIuOCIKKyAgICAgICAgICAgIHJlcG89ImNhaXJvZ3JhcGhpY3Mub3JnIgorICAgICAgICAgICAg
aGFzaD0ic2hhMjU2OjhmYmI2ZmM2NjExN2FiNDEwMGJhZDgzMGNiNDQ3OTQ5N2U1M2M2ZjNmYWNi
OThiZjA1YzhkMjk4NTU0ZWJkZDkiCisgICAgICAgICAgICBtZDVzdW09IjhiM2RjYWRlODU5YzQ0
ZmI3ZTU2ZmM2OGVkZmU5YTQ1Ij4KKyAgICA8L2JyYW5jaD4KKyAgPC9hdXRvdG9vbHM+CisKKyAg
PGF1dG90b29scyBpZD0icGl4bWFuIiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiCisgICAgICAgICAg
ICAgYXV0b2dlbmFyZ3M9Ii0tZW5hYmxlLWd0az1ubyI+CisgICAgPGJyYW5jaCBtb2R1bGU9InNu
YXBzaG90cy9waXhtYW4tMC4yOS4yLnRhci5neiIgdmVyc2lvbj0iMC4yOS4yIgorICAgICAgICAg
ICAgcmVwbz0iY2Fpcm9ncmFwaGljcy5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6NGM0
ZTkyMTQzYTQ1NTdhNDYxN2I4MGNhZjBhNThjY2IwMTJkODI5Mzc0MWU3NTM4OTAzN2NkNTEzM2Iz
MzVkYiIKKyAgICAgICAgICAgIG1kNXN1bT0iOGY1Nzk1ZWE5OGNhZGQ3YjdmMTJlNGIzNzM1MDBl
ZWYiPgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJm
b250cyIKKyAgICAgICAgICAgICBza2lwLWF1dG9nZW49InRydWUiPgorICAgIDxicmFuY2ggbW9k
dWxlPSJkb3dubG9hZHMvbXJvYmluc29uL3dlYmtpdGd0ay10ZXN0LWZvbnRzL3dlYmtpdGd0ay10
ZXN0LWZvbnRzLTAuMC4zLnRhci5neiIgdmVyc2lvbj0iMC4wLjMiCisgICAgICAgICAgICByZXBv
PSJnaXRodWIuY29tIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjRhMGEwMWYwMDg1NTk5N2Nk
Y2M3MjAxZjE2NGIzM2E0ZTQxNDRlOGVhZGY0MGE1ZTU0MmExYzQ0OGUwMzVkZTUiCisgICAgICAg
ICAgICBtZDVzdW09IjEwZTc0ZGUxYThiYTk2MWQ5MDM3OTk0ZDQyN2IxZGQyIiBzaXplPSIxNjk4
MTY0MiI+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9
ImxpYmZmaSIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0iL3B1
Yi9saWJmZmkvbGliZmZpLTMuMC4xMS50YXIuZ3oiIHZlcnNpb249IjMuMC4xMSIKKyAgICAgICAg
ICAgICByZXBvPSJzb3VyY2V3YXJlLm9yZyIKKyAgICAgICAgICAgICBoYXNoPSJzaGEyNTY6NzBi
ZmIwMTM1NjM2MDA4OWFhOTdkM2U3MWUzZWRmMDVkMTk1NTk5ZmQ4MjJlOTIyZTUwZDQ2YTAwNTVh
NjI4MyIKKyAgICAgICAgICAgICBtZDVzdW09ImY2OWI5NjkzMjI3ZDk3NjgzNWI0ODU3YjFiYTdk
MGUzIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDx0YXJiYWxsIGlkPSJmcmVldHlwZTYiPgorICAg
IDxzb3VyY2UgaHJlZj0iZG93bmxvYWQuc2F2YW5uYWguZ251Lm9yZy9yZWxlYXNlcy9mcmVldHlw
ZS9mcmVldHlwZS0yLjQuMi50YXIuYnoyIiB2ZXJzaW9uPSIyLjQuMiIKKyAgICAgICAgICAgIGhh
c2g9InNoYTI1Njo5YTk4N2FlZjhjNTBkOWJjZmRmZGM5ZjAxMmY4YmQwZGU2MDk1Y2MxYTU1MjRl
NjJjMWEwMzdkZWI4ZGFjYmZlIgorICAgICAgICAgICAgbWQ1c3VtPSI2NDdlZThlZDI2NmY5YTQx
MTdjOGQwYTQ4NTViM2QzZSIgLz4KKyAgPC90YXJiYWxsPgorCisgIDxhdXRvdG9vbHMgaWQ9Imds
aWIiCisgICAgICAgICAgICAgYXV0b2dlbi1zaD0iY29uZmlndXJlIgorICAgICAgICAgICAgIGF1
dG9nZW5hcmdzPSItLWRpc2FibGUtZHRyYWNlIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAg
PGRlcCBwYWNrYWdlPSJsaWJmZmkiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNo
IG1vZHVsZT0iL3B1Yi9HTk9NRS9zb3VyY2VzL2dsaWIvMi4zNi9nbGliLTIuMzYuMC50YXIueHoi
IHZlcnNpb249IjIuMzYuMCIKKyAgICAgICAgICAgIHJlcG89ImZ0cC5nbm9tZS5vcmciCisgICAg
ICAgICAgICBoYXNoPSJzaGEyNTY6NDU1YThhYmU4NjkyYzUxNzRiY2M3ZmZhMTViOTZhNzUyMWEy
ZjJmOWZiNDc1OTQ0MDU5MjdjMzVjYjliYjIyNyIvPgorICA8L2F1dG90b29scz4KKworICA8YXV0
b3Rvb2xzIGlkPSJnbGliLW5ldHdvcmtpbmciPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8
ZGVwIHBhY2thZ2U9ImdsaWIiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1v
ZHVsZT0iL3B1Yi9HTk9NRS9zb3VyY2VzL2dsaWItbmV0d29ya2luZy8yLjMzL2dsaWItbmV0d29y
a2luZy0yLjMzLjIudGFyLnh6IiB2ZXJzaW9uPSIyLjMzLjIiCisgICAgICAgICAgICByZXBvPSJm
dHAuZ25vbWUub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OmUyOThjZmYzOTM1ZWI3NTJi
ZTI5MGJiZjczNGU0NTdmMTg3MGJkYjUzNzBlZTI5MjYwNmU2MDQwYTgyMDc0ZTciCisgICAgICAg
ICAgICBtZDVzdW09IjVhYmIzNjRmMmEwYmFiZTJlYzFlM2E2ZDU5ZjY5MDQzIi8+CisgIDwvYXV0
b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImxpYnNvdXAiCisgICAgICAgICAgICAgYXV0b2dl
bmFyZ3M9Ii0td2l0aG91dC1nbm9tZSAtLWRpc2FibGUtaW50cm9zcGVjdGlvbiI+CisgICAgPGRl
cGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYi1uZXR3b3JraW5nIi8+CisgICAg
PC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUvc291cmNlcy9s
aWJzb3VwLzIuNDIvbGlic291cC0yLjQyLjAudGFyLnh6IiB2ZXJzaW9uPSIyLjQyLjAiCisgICAg
ICAgICAgICByZXBvPSJmdHAuZ25vbWUub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2Ojll
MGU3ZWI1ZDNmNzQwMWNjZjUyMWZiYzI4OWZjMWZhMDkyM2I3Yzc4MzM3MjllMmVkNzY5NmY3Yjg0
ODg5M2UiCisgICAgICAgICAgICBtZDVzdW09ImE2MzJhMzhkMjk4M2MyYTg4Njc5NjcyZDAwOTQw
MTI4Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImZvbnRjb25maWciIGF1
dG9nZW4tc2g9ImNvbmZpZ3VyZSI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFj
a2FnZT0iZnJlZXR5cGU2Ii8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1
bGU9InNvZnR3YXJlL2ZvbnRjb25maWcvcmVsZWFzZS9mb250Y29uZmlnLTIuOC4wLnRhci5neiIg
dmVyc2lvbj0iMi44LjAiCisgICAgICAgICAgICByZXBvPSJmcmVlZGVza3RvcC5vcmciCisgICAg
ICAgICAgICBoYXNoPSJzaGEyNTY6ZmEyYTFjNmVlYTY1NGQ5ZmNlN2E0YjEyMjBmMTBjOTljZGVj
ODQ4ZGNjYWYxNjI1YzAxZjA3NmIzMTM4MjMzNSIKKyAgICAgICAgICAgIG1kNXN1bT0iNzdlMTVh
OTIwMDZkZGMyYWRiYjA2Zjg0MGQ1OTFjMGUiPgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29s
cz4KKworIDxhdXRvdG9vbHMgaWQ9ImhhcmZidXp6IiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiPgor
ICAgPGJyYW5jaCBtb2R1bGU9InNvZnR3YXJlL2hhcmZidXp6L3JlbGVhc2UvaGFyZmJ1enotMC45
LjE0LnRhci5iejIiIHZlcnNpb249IjAuOS4xNCIKKyAgICAgICAgICAgY2hlY2tvdXRkaXI9Imhh
cmZidXp6LTAuOS4xNCIKKyAgICAgICAgICAgcmVwbz0iZnJlZWRlc2t0b3Aub3JnIgorICAgICAg
ICAgICBoYXNoPSJzaGEyNTY6ZDA3YzBmZmRiYmJmZGZiYjZjNjVlNzNmZTljNzY0NjZlODdkYmYw
NGIwOTRjYmQwYWJmNWZkN2Q1NzFhNDAwNCIKKyAgICAgICAgICAgbWQ1c3VtPSI3ZTE5OTBiNzkw
NjBlOThlMmQzMWY2NzdhMGFjOWVlZCI+CisgICA8L2JyYW5jaD4KKyA8L2F1dG90b29scz4KKwor
PC9tb2R1bGVzZXQ+CmRpZmYgLS1naXQgYS9Ub29scy9uaXgvamhidWlsZHJjIGIvVG9vbHMvbml4
L2poYnVpbGRyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZmQzYjliODRmZDBhOTY2Yjk1MDEyNDk0M2VmZjA2NjAy
YTE4OGExCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvbml4L2poYnVpbGRyYwpAQCAtMCwwICsx
LDcxIEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0IChDKSAyMDExIElnYWxp
YSBTLkwuCisjIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgorIyBDb3B5cmln
aHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisjIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBV
U0EKKworaW1wb3J0IG11bHRpcHJvY2Vzc2luZworaW1wb3J0IHN5cworCitfX25peF90b29sc19k
aXJlY3RvcnkgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKK3N5
cy5wYXRoID0gW19fbml4X3Rvb2xzX2RpcmVjdG9yeV0gKyBzeXMucGF0aAoraW1wb3J0IGNvbW1v
bgorCitidWlsZF9wb2xpY3kgPSAndXBkYXRlZCcKKworIyBGSVhNRTogbW92ZSBzaGFyZWQgcGFy
dHMgaW50byAuLi9qaGJ1aWxkIGZvbGRlci4KKworX19tb2R1bGVzZXRfZmlsZV91cmkgPSAnZmls
ZTovLycgKyBvcy5wYXRoLmpvaW4oX19uaXhfdG9vbHNfZGlyZWN0b3J5LCAnamhidWlsZC5tb2R1
bGVzJykKK19fZXh0cmFfbW9kdWxlc2V0cyA9IG9zLmVudmlyb24uZ2V0KCJXRUJLSVRfRVhUUkFf
TU9EVUxFU0VUUyIsICIiKS5zcGxpdCgiLCIpCittb2R1bGVzZXQgPSBbIF9fbW9kdWxlc2V0X2Zp
bGVfdXJpLCBdCitpZiBfX2V4dHJhX21vZHVsZXNldHMgIT0gWycnXToKKyAgICBtb2R1bGVzZXQu
ZXh0ZW5kKF9fZXh0cmFfbW9kdWxlc2V0cykKKworX19leHRyYV9tb2R1bGVzID0gb3MuZW52aXJv
bi5nZXQoIldFQktJVF9FWFRSQV9NT0RVTEVTIiwgIiIpLnNwbGl0KCIsIikKK21vZHVsZXMgPSBb
ICd3ZWJraXRuaXgtdGVzdGluZy1kZXBlbmRlbmNpZXMnLCBdCitpZiBfX2V4dHJhX21vZHVsZXMg
IT0gWycnXToKKyAgICBtb2R1bGVzLmV4dGVuZChfX2V4dHJhX21vZHVsZXMpCisKK2lmIG9zLmVu
dmlyb24uaGFzX2tleSgnV0VCS0lUX09VVFBVVERJUicpOgorICAgIGNoZWNrb3V0cm9vdCA9IG9z
LnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ob3MuZW52aXJvblsnV0VCS0lUX09VVFBVVERJUidd
LCAnRGVwZW5kZW5jaWVzJywgJ1NvdXJjZScpKQorICAgIHByZWZpeCA9IG9zLnBhdGguYWJzcGF0
aChvcy5wYXRoLmpvaW4ob3MuZW52aXJvblsnV0VCS0lUX09VVFBVVERJUiddLCAnRGVwZW5kZW5j
aWVzJywgJ1Jvb3QnKSkKK2Vsc2U6CisgICAgY2hlY2tvdXRyb290ID0gb3MucGF0aC5hYnNwYXRo
KGNvbW1vbi50b3BfbGV2ZWxfcGF0aCgnV2ViS2l0QnVpbGQnLCdEZXBlbmRlbmNpZXMnLCAnU291
cmNlJykpCisgICAgcHJlZml4ID0gb3MucGF0aC5hYnNwYXRoKGNvbW1vbi50b3BfbGV2ZWxfcGF0
aCgnV2ViS2l0QnVpbGQnLCdEZXBlbmRlbmNpZXMnLCAnUm9vdCcpKQorCitub25vdGlmeSA9IFRy
dWUKK25vdHJheWljb24gPSBUcnVlCitpZiAnTUFLRUZMQUdTJyBub3QgaW4gb3MuZW52aXJvbjoK
KyAgICBvcy5lbnZpcm9uWydNQUtFRkxBR1MnXSA9ICctaiVkJyAlIG11bHRpcHJvY2Vzc2luZy5j
cHVfY291bnQoKQorCisjIFVzZSBzeXN0ZW0gbGlicmFyaWVzIHdoaWxlIGJ1aWxkaW5nLgoraWYg
dXNlX2xpYjY0OgorICAgIF9saWJkaXIgPSAnbGliNjQnCitlbHNlOgorICAgIF9saWJkaXIgPSAn
bGliJworYWRkcGF0aCgnUEtHX0NPTkZJR19QQVRIJywgb3MucGF0aC5qb2luKG9zLnNlcCwgJ3Vz
cicsIF9saWJkaXIsICdwa2djb25maWcnKSkKK2FkZHBhdGgoJ1BLR19DT05GSUdfUEFUSCcsIG9z
LnBhdGguam9pbihvcy5zZXAsICd1c3InLCAnc2hhcmUnLCAncGtnY29uZmlnJykpCisKK2FkZHBh
dGgoJ1hER19EQVRBX0RJUlMnLCAnL3Vzci9zaGFyZScpCithZGRwYXRoKCdYREdfQ09ORklHX0RJ
UlMnLCAnL2V0Yy94ZGcnKQorCisjIEF2b2lkIG92ZXJsYXBwaW5nIHNlYXJjaCBwYXRoIENNQUtF
IHdhcm5pbmcgb24gNjRiaXQgc3lzdGVtcy4KK2lmICh1c2VfbGliNjQpOgorICAgIGFkZHBhdGgo
J0NNQUtFX1BSRUZJWF9QQVRIJywgb3MucGF0aC5qb2luKG9zLnNlcCwgcHJlZml4LCAnbGliNjQn
KSkKK2Vsc2U6CisgICAgYWRkcGF0aCgnQ01BS0VfUFJFRklYX1BBVEgnLCBwcmVmaXgpCisKK3Bh
cnRpYWxfYnVpbGQgPSBGYWxzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvbml4L3J1bi13aXRoLWpoYnVp
bGQgYi9Ub29scy9uaXgvcnVuLXdpdGgtamhidWlsZApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTlmMmUyODU0NzBl
OTMzOTZlODhmYTdhMDNhNGVhMTE1Njc3ZTIwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvbml4
L3J1bi13aXRoLWpoYnVpbGQKQEAgLTAsMCArMSwyNiBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9u
CisjIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgorIyBDb3B5cmlnaHQgKEMpIDIwMTIg
SW50ZWwgQ29ycG9yYXRpb24KKyMgQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisjCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vu
c2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m
dHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisKK2ltcG9ydCBjb21tb24KK2ltcG9ydCBv
cworaW1wb3J0IHN5cworCisKK2poYnVpbGRfd3JhcHBlciA9IGNvbW1vbi50b3BfbGV2ZWxfcGF0
aCgnVG9vbHMnLCAnamhidWlsZCcsICdqaGJ1aWxkLXdyYXBwZXInKQorb3MuZXhlY3ZlKGpoYnVp
bGRfd3JhcHBlciwgW2poYnVpbGRfd3JhcHBlciwgJy0tbml4JywgJ3J1biddICsgc3lzLmFyZ3Zb
MTpdLCBvcy5lbnZpcm9uKQpkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3Rz
LnR4dAppbmRleCAyODFmOTRhNTA3NTY4Mjc0YzdkNDE2ZTRiYzZjZTMzMWYxZjgyNThlLi5iZmM0
OWQ4MmZjNWNlZTkwMDdlN2RiOGIwYTE4ZmUyOTM3NTU3YjQ1IDEwMDY0NAotLS0gYS9DTWFrZUxp
c3RzLnR4dAorKysgYi9DTWFrZUxpc3RzLnR4dApAQCAtMTAsNiArMTAsNyBAQCBzZXQoV0VCQ09S
RV9ESVIgIiR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkNvcmUiKQogc2V0KFdFQktJVF9E
SVIgIiR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYktpdCIpCiBzZXQoV0VCS0lUMl9ESVIg
IiR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYktpdDIiKQogc2V0KFRISVJEUEFSVFlfRElS
ICIke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9UaGlyZFBhcnR5IikKK3NldChQTEFURk9STV9E
SVIgIiR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1BsYXRmb3JtIikKIAogc2V0KFRPT0xTX0RJ
UiAiJHtDTUFLRV9TT1VSQ0VfRElSfS9Ub29scyIpCiAKQEAgLTM5LDcgKzQwLDcgQEAgaW5jbHVk
ZShXZWJLaXRGZWF0dXJlcykKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgRGV0ZXJtaW5lIHdo
aWNoIHBvcnQgd2lsbCBiZSBidWlsdAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotc2V0KEFMTF9Q
T1JUUyBFZmwgV2luQ0UgQmxhY2tCZXJyeSBHVEspCitzZXQoQUxMX1BPUlRTIEVmbCBXaW5DRSBC
bGFja0JlcnJ5IEdUSyBOaXgpCiBzZXQoUE9SVCAiTk9QT1JUIiBDQUNIRSBTVFJJTkcgImNob29z
ZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCAob25lIG9mICR7QUxMX1BPUlRTfSkiKQogCiBs
aXN0KEZJTkQgQUxMX1BPUlRTICR7UE9SVH0gUkVUKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIv
Q2hhbmdlTG9nCmluZGV4IDVkMmVhYjYwZTJiMjIzMTM0ZDA3ZmJiOWJkMzE4MWJkMzcwZTA4NTcu
LjMxOTljZjdjMGRjZTk5MzMyYjIzM2YwODAzNDBlM2FhNmMyYjlhY2UgMTAwNjQ0Ci0tLSBhL0No
YW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0wNy0wMyAgTWFy
Y2VsbyBMaXJhICA8bWFyY2Vsby5saXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgTml4IHVw
c3RyZWFtaW5nIC0gQWRkaW5nIGJ1aWxkIGZpbGVzIGFuZCBzdXBwb3J0aW5nIHNjcmlwdHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM2NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6CisgICAgICAgICogU291cmNlL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFNvdXJj
ZS9jbWFrZS9GaW5kRUdMLmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9GaW5kT3BlbkdM
RVMyLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0NvbW1vbi5j
bWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc05peC5jbWFrZTogQWRkZWQuCisK
IDIwMTMtMDctMDEgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xs
YWJvcmEuY29tPgogCiAgICAgICAgIFtHVEtdIFJlbW92ZSB1bnN1cHBvcnRlZCBBQyBiYWNrZW5k
cwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206146</attachid>
            <date>2013-07-05 06:40:07 -0700</date>
            <delta_ts>2013-07-15 15:31:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118367-20130705103758.patch</filename>
            <type>text/plain</type>
            <size>71390</size>
            <attacher name="Marcelo Lira">marcelo.lira</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBlY2I4NTg4N2RmMjc4
ZWEwOGU4ODM1ZjBlYjI4MTJkMmExZTE3MzNkLi40MTExZGEzMzk0MTE4MzljMjQyYjVhMDIyOTc0
NzRiNGJjNGRjYTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wNy0wNSAg
TWFyY2VsbyBMaXJhICA8bWFyY2Vsby5saXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgTml4
IHVwc3RyZWFtaW5nIC0gQWRkaW5nIGJ1aWxkIGZpbGVzIGFuZCBzdXBwb3J0aW5nIHNjcmlwdHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM2Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6IEFkZGVkLgorICAgICAgICAqIFBsYXRmb3JtTml4LmNtYWtlOiBBZGRlZC4KKwog
MjAxMy0wNi0xNCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCBHVEsgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA2MWNlOWY5M2FhOTQ1MTAzNjAzMGMx
M2I3ODgyOGQzOWVhNjkwMDczLi4zMzBhYTJlOTM3MGE4ZDI1MGEwZTY0OGM0ODkzMDMxMjc3NDc2
ZDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTA3LTA1ICBNYXJjZWxvIExpcmEgIDxtYXJj
ZWxvLmxpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBOaXggdXBzdHJlYW1pbmcgLSBBZGRp
bmcgYnVpbGQgZmlsZXMgYW5kIHN1cHBvcnRpbmcgc2NyaXB0cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MzY3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvRmVhdHVyZURlZmluZXMuaDoKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1OaXguY21ha2U6
IEFkZGVkLgorCiAyMDEzLTA3LTAyICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRu
eWFrb3ZAaW50ZWwuY29tPgogCiAgICAgICAgIEF2b2lkIGNvZGUgZHVwbGljYXRpb24gaW5zaWRl
IFN0cmluZzo6YXBwZW5kKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNWM5YTgyODIwYjFmZDA3Yjk4YTUxNWEx
YmI2M2RmODFhNzhkNjEwLi40NGVlMzFlODU5ZDQ5N2Q0NGQ0ZjkxNTRlZjU1YTRiZmFlZjM3YzA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDctMDUgIE1hcmNlbG8gTGlyYSAg
PG1hcmNlbG8ubGlyYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIE5peCB1cHN0cmVhbWluZyAt
IEFkZGluZyBidWlsZCBmaWxlcyBhbmQgc3VwcG9ydGluZyBzY3JpcHRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgzNjcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFBsYXRmb3JtTml4LmNtYWtl
OiBBZGRlZC4KKwogMjAxMy0wNy0wMiAgcGVhdm9Ab3V0bG9vay5jb20gIDxwZWF2b0BvdXRsb29r
LmNvbT4KIAogICAgICAgICBbQ3VybF0gQ3Jhc2ggYWZ0ZXIgZG93bmxvYWQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvQ01ha2VMaXN0cy50eHQKaW5kZXggMzcz
NmVlYTE3YTQ1ZWY0YTFkNzUyMTY0ZmE5MjVhMmI4N2Y4YWFhNC4uMjY4YmEyZTI0OGRhNjc5YThm
M2VmMTBiMWU3OWY5MTU5Nzg1ZTFlZCAxMDA2NDQKLS0tIGEvU291cmNlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9DTWFrZUxpc3RzLnR4dApAQCAtNSw2ICs1LDEwIEBAIGFkZF9zdWJkaXJl
Y3RvcnkoV1RGKQogCiBhZGRfc3ViZGlyZWN0b3J5KEphdmFTY3JpcHRDb3JlKQogCitpZiAoIiR7
UE9SVH0iIFNUUkVRVUFMICJOaXgiKQorICAgIGFkZF9zdWJkaXJlY3RvcnkoUGxhdGZvcm0pCitl
bmRpZiAoKQorCiBpZiAoRU5BQkxFX0FQSV9URVNUUykKICAgICBhZGRfc3ViZGlyZWN0b3J5KGNt
YWtlL2d0ZXN0KQogZW5kaWYgKCkKQEAgLTI2LDYgKzMwLDEzIEBAIFdFQktJVF9JTkNMVURFX0NP
TkZJR19GSUxFU19JRl9FWElTVFMoKQogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBTZXQgY29t
cGlsZXIgZmxhZ3MgZm9yIGFsbCB0YXJnZXRzCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitpZiAo
IiR7UE9SVH0iIFNUUkVRVUFMICJOaXgiKQorICAgIGlmIChOT1QgRElTQUJMRV9TVFJJQ1RfQlVJ
TEQpCisgICAgICAgIHNldChBRERJVElPTkFMX0ZMQUdTIEVOQUJMRV9XRVJST1IpCisgICAgZW5k
aWYgKCkKKyAgICBXRUJLSVRfU0VUX0VYVFJBX0NPTVBJTEVSX0ZMQUdTKFBsYXRmb3JtICR7QURE
SVRJT05BTF9GTEFHU30pCitlbmRpZiAoKQorCiBpZiAoJHtQT1JUfSBTVFJFUVVBTCAiRWZsIikK
ICAgICBzZXQoQURESVRJT05BTF9GTEFHUyBFTkFCTEVfV0VSUk9SKQogZW5kaWYgKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9QbGF0Zm9ybS9D
TWFrZUxpc3RzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWY3Y2FiOWUzODNlNTgyNmY4ZTE4YzQzYmM1YzQ5
MDY0YjdhZjQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1BsYXRmb3JtL0NNYWtlTGlzdHMu
dHh0CkBAIC0wLDAgKzEsNSBAQAorV0VCS0lUX0lOQ0xVREVfQ09ORklHX0ZJTEVTX0lGX0VYSVNU
UygpCisKK2luY2x1ZGVfZGlyZWN0b3JpZXMoJHtQbGF0Zm9ybV9JTkNMVURFU30pCithZGRfbGli
cmFyeShQbGF0Zm9ybSBTVEFUSUMgJHtQbGF0Zm9ybV9TT1VSQ0VTfSkKK3NldF90YXJnZXRfcHJv
cGVydGllcyhQbGF0Zm9ybSBQUk9QRVJUSUVTIEZPTERFUiAiUGxhdGZvcm0iKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtTml4LmNtYWtlIGIvU291cmNlL1BsYXRmb3JtL1Bs
YXRmb3JtTml4LmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyZGU3MDVmMzE5NzZkOGExYTJmYzZhNDkwN2Zj
ZDgxMDMwYzYyNGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm1O
aXguY21ha2UKQEAgLTAsMCArMSwyOSBAQAorc2V0KFBsYXRmb3JtX0lOQ0xVREVTCisgICAgbml4
CisgICAgJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvICMgRm9yIEludFJlY3QuaAor
ICAgICR7V1RGX0RJUn0gIyBGb3IgY29uZmlnLmgKKyAgICAke0NNQUtFX0JJTkFSWV9ESVJ9ICMg
Rm9yIGNtYWtlY29uZmlnLmgKKykKKworc2V0KFBsYXRmb3JtX0hFQURFUlMKKyAgICBuaXgvcHVi
bGljL1BsYXRmb3JtLmgKKyAgICBuaXgvcHVibGljL1dlYkNvbG9yLmgKKyAgICBuaXgvcHVibGlj
L1dlYkZGVEZyYW1lLmgKKyAgICBuaXgvcHVibGljL1dlYlJlY3QuaAorICAgIG5peC9wdWJsaWMv
V2ViU2l6ZS5oCisgICAgbml4L3B1YmxpYy9XZWJUaGVtZUVuZ2luZS5oCisgICAgbml4L3B1Ymxp
Yy9XZWJBdWRpb0J1cy5oCisgICAgbml4L3B1YmxpYy9XZWJBdWRpb0RldmljZS5oCisgICAgbml4
L3B1YmxpYy9XZWJDb21tb24uaAorICAgIG5peC9wdWJsaWMvV2ViRGF0YS5oCisgICAgbml4L3B1
YmxpYy9XZWJHYW1lcGFkcy5oCisgICAgbml4L3B1YmxpYy9XZWJHYW1lcGFkLmgKKyAgICBuaXgv
cHVibGljL1dlYlZlY3Rvci5oCispCisKK3NldChQbGF0Zm9ybV9TT1VSQ0VTCisgICAgbml4L3Ny
Yy9QbGF0Zm9ybS5jcHAKKyAgICBuaXgvc3JjL0RlZmF1bHRXZWJUaGVtZUVuZ2luZS5jcHAKKykK
KworaW5zdGFsbChGSUxFUyAke1BsYXRmb3JtX0hFQURFUlN9IERFU1RJTkFUSU9OIGluY2x1ZGUv
JHtXZWJLaXQyX09VVFBVVF9OQU1FfS0ke1BST0pFQ1RfVkVSU0lPTl9NQUpPUn0vTml4UGxhdGZv
cm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oIGIvU291cmNl
L1dURi93dGYvRmVhdHVyZURlZmluZXMuaAppbmRleCA3MzI5Yzk1ZjU0NWMwZTRmODUyMzBhMjM2
NGM2ZWQ2ZDYxYjk5MjJiLi4yYTAyMDQ4MmJmMDY3YTg1MTFkY2Q5YTQwYjY5NGIzNDhhMjJmMGNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgKQEAgLTIzNSw2ICsyMzUsMTEgQEAKIAogI2VuZGlm
IC8qIFBMQVRGT1JNKFdJTl9DQUlSTykgKi8KIAorLyogLS0tLS0tLS0tIE5JWCBwb3J0IChVbml4
KSAtLS0tLS0tLS0gKi8KKyNpZiBQTEFURk9STShOSVgpCisjaW5jbHVkZSAibml4L0ZlYXR1cmVE
ZWZpbmVzTml4LmgiCisjZW5kaWYgLyogUExBVEZPUk0oTklYKSAqLworCiAvKiAtLS0tLS0tLS0g
RUZMIHBvcnQgKFVuaXgpIC0tLS0tLS0tLSAqLwogI2lmIFBMQVRGT1JNKEVGTCkKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
LmgKaW5kZXggMWMyZDIzOThkMzlhYzc5ZTFjNTlhZjFhNTYyMjk4ZjFiNTk4NWVhYS4uNTI2ZTYy
MGQ1NzU5NmQ3OTRkODExMjY4Mjc1YTZiNWZkMzMxYjlmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC00NDYs
NiArNDQ2LDggQEAKICNkZWZpbmUgV1RGX1BMQVRGT1JNX0dUSyAxCiAjZWxpZiBkZWZpbmVkKEJV
SUxESU5HX0JMQUNLQkVSUllfXykKICNkZWZpbmUgV1RGX1BMQVRGT1JNX0JMQUNLQkVSUlkgMQor
I2VsaWYgZGVmaW5lZChCVUlMRElOR19OSVhfXykKKyNpbmNsdWRlICJuaXgvUGxhdGZvcm1OaXgu
aCIKICNlbGlmIE9TKERBUldJTikKICNkZWZpbmUgV1RGX1BMQVRGT1JNX01BQyAxCiAjZWxpZiBP
UyhXSU5ET1dTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1OaXguY21ha2Ug
Yi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybU5peC5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzMyZTYwODE2
Y2I4MjBjMTllNTQzNTJlYmU1NmVlYWYxODlmMmRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm1OaXguY21ha2UKQEAgLTAsMCArMSwxNiBAQAorbGlzdChBUFBFTkQg
V1RGX1NPVVJDRVMKKyAgICBndGsvTWFpblRocmVhZEd0ay5jcHAKKyAgICBnb2JqZWN0L0dPd25Q
dHIuY3BwCisgICAgZ29iamVjdC9HUmVmUHRyLmNwcAorICAgIGdvYmplY3QvR2xpYlV0aWxpdGll
cy5jcHAKKykKKworbGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUworICAgIHB0aHJlYWQKKyAgICAk
e0dMSUJfTElCUkFSSUVTfQorICAgICR7R0xJQl9HSU9fTElCUkFSSUVTfQorKQorCitsaXN0KEFQ
UEVORCBXVEZfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICR7R0xJQl9JTkNMVURFX0RJUlN9Cisp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGJmODg3NWE1NzA4ZTM3MTE5OWY4MDk3YjI5ZTY5YTVh
ZGM0ZjJhYjYuLmY4ODkwZGNjNDNmNzZiYzk1YWRhOGZhNWQ0YmFmNGJmMjRlODliN2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0yODM4LDE2ICsyODM4LDE4IEBAIGVuZGlmICgpCiAKIGlmIChX
VEZfVVNFXzNEX0dSQVBISUNTKQogICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJF
Q1RPUklFUwotICAgICAgICAke09QRU5HTF9JTkNMVURFX0RJUn0KICAgICAgICAgIiR7VEhJUkRQ
QVJUWV9ESVJ9L0FOR0xFL3NyYyIKICAgICAgICAgIiR7VEhJUkRQQVJUWV9ESVJ9L0FOR0xFL2lu
Y2x1ZGUiCiAgICAgICAgICIke1RISVJEUEFSVFlfRElSfS9BTkdMRS9pbmNsdWRlL0tIUiIKICAg
ICAgICAgIiR7VEhJUkRQQVJUWV9ESVJ9L0FOR0xFL2luY2x1ZGUvR0xTTEFORyIKICAgICAgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2dwdSIKICAgICApCi0gICAgbGlzdChB
UFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMKLSAgICAgICAgJHtPUEVOR0xfZ2xfTElCUkFSWX0KLSAg
ICApCisKKyAgICAjIE5peCBtYXkgdXNlIGVpdGhlciBPcGVuR0wgb3IgT3BlbkdMRVMyIGhlYWRl
cnMsIHNvIHdlIGhhbmRsZSB0aGlzIGF0IFBsYXRmb3JtTml4LmNtYWtlLgorICAgIGlmIChOT1Qg
UE9SVCBTVFJFUVVBTCAiTml4IikKKyAgICAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURF
X0RJUkVDVE9SSUVTICR7T1BFTkdMX0lOQ0xVREVfRElSfSkKKyAgICAgICAgbGlzdChBUFBFTkQg
V2ViQ29yZV9MSUJSQVJJRVMgJHtPUEVOR0xfZ2xfTElCUkFSWX0pCisgICAgZW5kaWYgKCkKIAog
ICAgIGlmIChCSVNPTl9WRVJTSU9OIEVRVUFMICIyLjUiKQogICAgICAgICAjIEJpc29uIDIuNSBj
YW4gbm90IGNvbXBpbGUgZ2VuZXJhdGVkIGdsc2xhbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybU5peC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTml4LmNtYWtl
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmExYjQ0YmNiMGQwYzJkNTc1YjA5MTUwY2YwYTIzMTRmYzY5MjExNTQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU5peC5jbWFrZQpAQCAtMCww
ICsxLDI2NSBAQAorbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25peCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vY2Fpcm8iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvIgor
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZSIKKyAgICAiJHtX
RUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4IgorICAgICIke1dFQkNPUkVfRElSfS9w
bGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei8iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3Jt
L2dyYXBoaWNzL2hhcmZidXp6L25nIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAiCisgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2xpbnV4IgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIiCisgICAgIiR7UExBVEZPUk1fRElSfS9uaXgvIgor
KQorCitsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICBwYWdlL1RvdWNoQWRqdXN0bWVu
dC5jcHAKKworICAgIHBhZ2Uvbml4L0V2ZW50SGFuZGxlck5peC5jcHAKKyAgICBwbGF0Zm9ybS9D
dXJzb3IuY3BwCisgICAgcGxhdGZvcm0vQ29udGV4dE1lbnVOb25lLmNwcAorICAgIHBsYXRmb3Jt
L0NvbnRleHRNZW51SXRlbU5vbmUuY3BwCisgICAgcGxhdGZvcm0vbml4L0N1cnNvck5peC5jcHAK
KyAgICBwbGF0Zm9ybS9uaXgvRHJhZ0RhdGFOaXguY3BwCisgICAgcGxhdGZvcm0vbml4L0RyYWdJ
bWFnZU5peC5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvTml4S2V5Ym9hcmRVdGlsaXRpZXMuY3BwCisg
ICAgcGxhdGZvcm0vbml4L0Vycm9yc05peC5jcHAKKyAgICBwbGF0Zm9ybS9ndGsvRXZlbnRMb29w
R3RrLmNwcAorICAgIHBsYXRmb3JtL25peC9GaWxlU3lzdGVtTml4LmNwcAorICAgIHBsYXRmb3Jt
L25peC9MYW5ndWFnZU5peC5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvTG9jYWxpemVkU3RyaW5nc05p
eC5jcHAKKyAgICBwbGF0Zm9ybS9ndGsvTG9nZ2luZ0d0ay5jcHAKKyAgICBwbGF0Zm9ybS9uaXgv
TUlNRVR5cGVSZWdpc3RyeU5peC5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvUGFzdGVib2FyZE5peC5j
cHAKKyAgICBwbGF0Zm9ybS9uaXgvUGxhdGZvcm1TY3JlZW5OaXguY3BwCisgICAgcGxhdGZvcm0v
bml4L1BsYXRmb3JtS2V5Ym9hcmRFdmVudE5peC5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvUmVuZGVy
VGhlbWVOaXguY3BwCisgICAgcGxhdGZvcm0vbml4L1J1bkxvb3BOaXguY3BwCisgICAgcGxhdGZv
cm0vbml4L1Njcm9sbGJhclRoZW1lTml4LmNwcAorICAgIHBsYXRmb3JtL2d0ay9TaGFyZWRCdWZm
ZXJHdGsuY3BwCisgICAgcGxhdGZvcm0vbml4L1NvdW5kTml4LmNwcAorICAgIHBsYXRmb3JtL25p
eC9TaGFyZWRUaW1lck5peC5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvVGVtcG9yYXJ5TGlua1N0dWJz
LmNwcAorICAgIHBsYXRmb3JtL25peC9XaWRnZXROaXguY3BwCisKKyAgICBwbGF0Zm9ybS9jYWly
by9XaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9CaXRtYXBJbWFnZUNhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJv
VXRpbGl0aWVzLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyby5jcHAK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFkaWVudENhaXJvLmNwcAorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbnRS
ZWN0Q2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uY3Bw
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcAorICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL1BhdHRlcm5DYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9QbGF0Zm9ybVBhdGhDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9SZWZQ
dHJDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9UaWxlQ2Fpcm8uY3BwCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVGlsZWRCYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm8u
Y3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVHJhbnNmb3JtYXRpb25NYXRyaXhDYWly
by5jcHAKKworICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2NhaXJvL0ltYWdlRGVjb2RlckNh
aXJvLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvV09GRkZpbGVGb3JtYXQuY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKKyAgICBwbGF0Zm9y
bS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNw
cAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0dseXBoUGFnZVRyZWVOb2RlRnJlZVR5
cGUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvU2ltcGxlRm9udERhdGFGcmVl
VHlwZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6ekZhY2UuY3Bw
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpGYWNlQ2Fpcm8uY3BwCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpTaGFwZXIuY3BwCisKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9EcmF3aW5nQnVmZmVyQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvbml4L0lj
b25OaXguY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvbml4L0ltYWdlTml4LmNwcAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKKworICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwCisK
KyAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuY3BwCisgICAgcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5jcHAKKyAgICBwbGF0Zm9ybS9p
bWFnZS1kZWNvZGVycy9ibXAvQk1QSW1hZ2VSZWFkZXIuY3BwCisgICAgcGxhdGZvcm0vaW1hZ2Ut
ZGVjb2RlcnMvZ2lmL0dJRkltYWdlRGVjb2Rlci5jcHAKKyAgICBwbGF0Zm9ybS9pbWFnZS1kZWNv
ZGVycy9naWYvR0lGSW1hZ2VSZWFkZXIuY3BwCisgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
aWNvL0lDT0ltYWdlRGVjb2Rlci5jcHAKKyAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVn
L0pQRUdJbWFnZURlY29kZXIuY3BwCisgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BO
R0ltYWdlRGVjb2Rlci5jcHAKKyAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy93ZWJwL1dFQlBJ
bWFnZURlY29kZXIuY3BwCisgICAgcGxhdGZvcm0vbGludXgvR2FtZXBhZERldmljZUxpbnV4LmNw
cAorICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdT
dHJlYW1lci5jcHAKKyAgICBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisgICAgcGxh
dGZvcm0vdGV4dC9uaXgvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU5peC5jcHAKKworICAg
IHBsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwCisgICAgcGx1Z2lucy9QbHVnaW5EZWJ1Zy5jcHAK
KyAgICBwbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwCisgICAgcGx1Z2lucy9QbHVnaW5TdHJlYW0u
Y3BwCisgICAgcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorICAgIHBsdWdpbnMvUGx1Z2luUGFja2Fn
ZU5vbmUuY3BwCisgICAgcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAKKworICAgIGVkaXRpbmcv
U21hcnRSZXBsYWNlSUNVLmNwcAorICAgIHBsYXRmb3JtL3RleHQvTG9jYWxlTm9uZS5jcHAKKwor
ICAgIHBsYXRmb3JtL25peC9zdXBwb3J0L1dlYkF1ZGlvQnVzLmNwcAorICAgIHBsYXRmb3JtL25p
eC9zdXBwb3J0L1dlYkRhdGEuY3BwCisKKyAgICBjc3MvV2ViS2l0Q1NTQXJyYXlGdW5jdGlvblZh
bHVlLmNwcAorICAgIGNzcy9XZWJLaXRDU1NNaXhGdW5jdGlvblZhbHVlLmNwcAorICAgIGNzcy9X
ZWJLaXRDU1NNYXRyaXguY3BwCisgICAgY3NzL1dlYktpdENTU01hdEZ1bmN0aW9uVmFsdWUuY3Bw
CisgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkU2hhZGVyLmNwcAorICAgIHJlbmRlcmlu
Zy9zdHlsZS9TdHlsZUN1c3RvbUZpbHRlclByb2dyYW0uY3BwCisgICAgcmVuZGVyaW5nL3N0eWxl
L1N0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbUNhY2hlLmNwcAorKQorCitpZiAoV1RGX1VTRV9PUEVO
R0xfRVNfMikKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmNwcAorICAgICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xFUy5jcHAKKyAgICAp
CisgICAgbGlzdChJTlNFUlQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTIDAgJHtPUEVOR0xF
UzJfSU5DTFVERV9ESVJTfSkKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUyAke09Q
RU5HTEVTMl9MSUJSQVJJRVN9KQorICAgIGFkZF9kZWZpbml0aW9ucygke09QRU5HTEVTMl9ERUZJ
TklUSU9OU30pCitlbHNlICgpCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAg
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCisgICAg
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAK
KyAgICApCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMKKyAgICAgICAgJHtPUEVO
R0xfZ2xfTElCUkFSWX0KKyAgICApCitlbmRpZiAoKQorCitpZiAoV1RGX1VTRV9FR0wpCisgICAg
bGlzdChJTlNFUlQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTIDAKKyAgICAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZWdsCisgICAgICAgICR7RUdMX0lOQ0xVREVfRElSfQorICAgICkKKyAgICBs
aXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR0xDb250ZXh0LmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGlj
c0NvbnRleHQzRENhaXJvLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHQzRFByaXZhdGUuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9H
TENvbnRleHRGcm9tQ3VycmVudEVHTC5jcHAKKyAgICApCisgICAgbGlzdChBUFBFTkQgV2ViQ29y
ZV9MSUJSQVJJRVMgJHtFR0xfTElCUkFSWX0pCitlbHNlICgpCisgICAgbGlzdChBUFBFTkQgV2Vi
Q29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL2dseAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZmwKKyAgICAgICAg
JHtYMTFfWDExX0lOQ0xVREVfUEFUSH0KKyAgICApCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9T
T1VSQ0VTCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzREVm
bC5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250
ZXh0LmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZh
Y2UuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VmbC9HTFRyYW5zcG9y
dFN1cmZhY2UuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VmbC9HcmFw
aGljc1N1cmZhY2VDb21tb24uY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L0dyYXBoaWNzU3VyZmFjZS5jcHAKKworICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNl
cy9nbHgvWDExSGVscGVyLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9n
bHgvR0xYQ29udGV4dC5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4
L0dMWFN1cmZhY2UuY3BwCisgICAgKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVT
ICR7WDExX1gxMV9MSUJ9ICR7WDExX1hjb21wb3NpdGVfTElCfSAke1gxMV9YcmVuZGVyX0xJQn0p
CitlbmRpZiAoKQorCitsaXN0KEFQUEVORCBXZWJDb3JlX1VTRVJfQUdFTlRfU1RZTEVfU0hFRVRT
CisgICAgJHtXRUJDT1JFX0RJUn0vY3NzL21lZGlhQ29udHJvbHNOaXguY3NzCisgICAgJHtXRUJD
T1JFX0RJUn0vY3NzL21lZGlhQ29udHJvbHNOaXhGdWxsc2NyZWVuLmNzcworKQorCitsaXN0KEFQ
UEVORCBXZWJDb3JlX0xJQlJBUklFUworICAgICR7Q0FJUk9fTElCUkFSSUVTfQorICAgICR7Rk9O
VENPTkZJR19MSUJSQVJJRVN9CisgICAgJHtGUkVFVFlQRV9MSUJSQVJJRVN9CisgICAgJHtKUEVH
X0xJQlJBUll9CisgICAgJHtMSUJYTUwyX0xJQlJBUklFU30KKyAgICAke0xJQlhTTFRfTElCUkFS
SUVTfQorICAgICR7UE5HX0xJQlJBUll9CisgICAgJHtTUUxJVEVfTElCUkFSSUVTfQorICAgICR7
R0xJQl9MSUJSQVJJRVN9CisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CisgICAgJHtHTElCX0dN
T0RVTEVfTElCUkFSSUVTfQorICAgICR7R0xJQl9HT0JKRUNUX0xJQlJBUklFU30KKyAgICAke1pM
SUJfTElCUkFSSUVTfQorICAgIFBsYXRmb3JtCisgICAgJHtIQVJGQlVaWl9MSUJSQVJJRVN9Cisp
CisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICR7Rk9OVENP
TkZJR19JTkNMVURFX0RJUn0KKyAgICAke0NBSVJPX0lOQ0xVREVfRElSU30KKyAgICAke0ZSRUVU
WVBFX0lOQ0xVREVfRElSU30KKyAgICAke0xJQlhNTDJfSU5DTFVERV9ESVJ9CisgICAgJHtMSUJY
U0xUX0lOQ0xVREVfRElSfQorICAgICR7U1FMSVRFX0lOQ0xVREVfRElSfQorICAgICR7R0xJQl9J
TkNMVURFX0RJUlN9CisgICAgJHtaTElCX0lOQ0xVREVfRElSU30KKyAgICAke0hBUkZCVVpaX0lO
Q0xVREVfRElSU30KKykKKworYWRkX2RlZmluaXRpb25zKC1EREFUQV9ESVI9IiR7Q01BS0VfSU5T
VEFMTF9QUkVGSVh9LyR7REFUQV9JTlNUQUxMX0RJUn0iKQorCitpZiAoRU5BQkxFX1dFQl9BVURJ
TykKKyAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgIiR7V0VC
Q09SRV9ESVJ9L3BsYXRmb3JtL2F1ZGlvL25peCIKKyAgKQorICBsaXN0KEFQUEVORCBXZWJDb3Jl
X1NPVVJDRVMKKyAgICBwbGF0Zm9ybS9hdWRpby9uaXgvQXVkaW9CdXNOaXguY3BwCisgICAgcGxh
dGZvcm0vYXVkaW8vbml4L0F1ZGlvRGVzdGluYXRpb25OaXguY3BwCisgICAgcGxhdGZvcm0vYXVk
aW8vbml4L0ZGVEZyYW1lTml4LmNwcAorICApCisgIHNldChXRUJfQVVESU9fRElSICR7Q01BS0Vf
SU5TVEFMTF9QUkVGSVh9LyR7REFUQV9JTlNUQUxMX0RJUn0vd2ViYXVkaW8vcmVzb3VyY2VzKQor
ICBmaWxlKEdMT0IgV0VCX0FVRElPX0RBVEEgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2F1ZGlv
L3Jlc291cmNlcy8qLndhdiIpCisgIGluc3RhbGwoRklMRVMgJHtXRUJfQVVESU9fREFUQX0gREVT
VElOQVRJT04gJHtXRUJfQVVESU9fRElSfSkKKyAgYWRkX2RlZmluaXRpb25zKC1EVU5JTlNUQUxM
RURfQVVESU9fUkVTT1VSQ0VTX0RJUj0iJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vYXVkaW8vcmVz
b3VyY2VzIikKK2VuZGlmICgpCisKK2lmIChFTkFCTEVfR0FNRVBBRCkKKyAgICBsaXN0KEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgcGxhdGZvcm0vbml4L0dhbWVwYWRzTml4LmNwcAor
ICAgICkKK2VuZGlmICgpCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgIHBsYXRm
b3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNvdXAuY3BwCisgICAgcGxh
dGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29y
ay9zb3VwL0Nvb2tpZVN0b3JhZ2VTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9D
cmVkZW50aWFsU3RvcmFnZVNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0ROU1Nv
dXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0dPd25QdHJTb3VwLmNwcAorICAgIHBs
YXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorICAgIHBs
YXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVJlc29sdmVyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvUHJveHlTZXJ2ZXJTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZUVycm9yU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VIYW5kbGVTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVl
c3RTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291
cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlU291cC5j
cHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cFVSSVV0aWxzLmNwcAorKQorCitsaXN0
KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAiJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vbmV0d29yay9zb3VwIgorICAgICR7TElCU09VUF9JTkNMVURFX0RJUlN9CispCisK
K2xpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTCisgICAgJHtMSUJTT1VQX0xJQlJBUklFU30K
KykKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5kRUdMLmNtYWtlIGIvU291cmNlL2NtYWtl
L0ZpbmRFR0wuY21ha2UKaW5kZXggNTI2YzViYTA4NTYyODhjODMyNGJiZjU0ZjZkMTdlYzUxNzhj
NmViOS4uMDZkZTU1NmE4NWExN2EyMGFhYjA5YTFmYzU5MTU5ZTk4MDI4ZmE4YiAxMDA2NDQKLS0t
IGEvU291cmNlL2NtYWtlL0ZpbmRFR0wuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL0ZpbmRFR0wu
Y21ha2UKQEAgLTM0LDQgKzM0LDYgQEAgc2V0KEVHTF9OQU1FUyAke0VHTF9OQU1FU30gZWdsIEVH
TCkKIGZpbmRfbGlicmFyeShFR0xfTElCUkFSWSBOQU1FUyAke0VHTF9OQU1FU30pCiAKIGluY2x1
ZGUoRmluZFBhY2thZ2VIYW5kbGVTdGFuZGFyZEFyZ3MpCi1GSU5EX1BBQ0tBR0VfSEFORExFX1NU
QU5EQVJEX0FSR1MoRUdMIERFRkFVTFRfTVNHIEVHTF9JTkNMVURFX0RJUiBFR0xfTElCUkFSWSkK
K2ZpbmRfcGFja2FnZV9oYW5kbGVfc3RhbmRhcmRfYXJncyhFR0wgREVGQVVMVF9NU0cgRUdMX0lO
Q0xVREVfRElSIEVHTF9MSUJSQVJZKQorCittYXJrX2FzX2FkdmFuY2VkKEVHTF9JTkNMVURFX0RJ
UiBFR0xfTElCUkFSWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5kT3BlbkdMRVMyLmNt
YWtlIGIvU291cmNlL2NtYWtlL0ZpbmRPcGVuR0xFUzIuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI2OWI4
ZDJkMTE0YjViNzEzYjc2NGNlMDg2NWEzZDc1MGQ3NzJlZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9jbWFrZS9GaW5kT3BlbkdMRVMyLmNtYWtlCkBAIC0wLDAgKzEsMjUgQEAKKyMgVHJ5IHRv
IGZpbmQgT3BlbkdMRVMyLiBPbmNlIGRvbmUgdGhpcyB3aWxsIGRlZmluZToKKyMgICAgIE9QRU5H
TEVTMl9GT1VORAorIyAgICAgT1BFTkdMRVMyX0lOQ0xVREVfRElSUworIyAgICAgT1BFTkdMRVMy
X0xJQlJBUklFUworIyAgICAgT1BFTkdMRVMyX0RFRklOSVRJT05TCisKK2ZpbmRfcGFja2FnZShQ
a2dDb25maWcpCisKK3BrZ19jaGVja19tb2R1bGVzKFBDX09QRU5HTEVTMiBnbGVzdjIpCisKK2lm
IChQQ19PUEVOR0xFUzJfRk9VTkQpCisgICAgc2V0KE9QRU5HTEVTMl9JTkNMVURFX0RJUlMgJHtQ
Q19PUEVOR0xFUzJfSU5DTFVERV9ESVJTfSkKKyAgICBzZXQoT1BFTkdMRVMyX0RFRklOSVRJT05T
ICR7UENfT1BFTkdMRVMyX0NGTEFHU19PVEhFUn0pCitlbHNlICgpCisgICAgZmluZF9wYXRoKE9Q
RU5HTEVTMl9JTkNMVURFX0RJUlMgTkFNRVMgR0xFUzIvZ2wyLmgpCitlbmRpZiAoKQorCitmaW5k
X2xpYnJhcnkoT1BFTkdMRVMyX0xJQlJBUklFUyBHTEVTdjIKKyAgICBISU5UUyAke1BDX09QRU5H
TEVTMl9MSUJSQVJZX0RJUlN9ICR7UENfT1BFTkdMRVMyX0xJQkRJUn0KKykKKworaW5jbHVkZShG
aW5kUGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK2ZpbmRfcGFja2FnZV9oYW5kbGVfc3RhbmRh
cmRfYXJncyhPcGVuR0xFUzIgREVGQVVMVF9NU0cgT1BFTkdMRVMyX0xJQlJBUklFUyBPUEVOR0xF
UzJfSU5DTFVERV9ESVJTKQorCittYXJrX2FzX2FkdmFuY2VkKE9QRU5HTEVTMl9JTkNMVURFX0RJ
UlMgT1BFTkdMRVMyX0xJQlJBUlkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0Nv
bW1vbi5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zQ29tbW9uLmNtYWtlCmluZGV4IDBhY2Jj
ZmM3ZDMxOWViZjAxZWY5NjhkZWY1YzA5NDMxZDJiM2Q1NGQuLjI5NGUyMjg1N2RhMTA5MjQ5MDVj
YTA4OTYyYzkwNzVjY2NmNTRjNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zQ29t
bW9uLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zQ29tbW9uLmNtYWtlCkBAIC0xLDgg
KzEsMTYgQEAKLWFkZF9kZWZpbml0aW9ucygtREJVSUxESU5HX1dJVEhfQ01BS0U9MSkKLWFkZF9k
ZWZpbml0aW9ucygtREhBVkVfQ09ORklHX0g9MSkKKyMgTml4IGRvZXNuJ3QgdXNlIGNtYWtlY29u
ZmlnLmgKK2lmIChOT1QgUE9SVCBTVFJFUVVBTCAiTml4IikKKyAgICBhZGRfZGVmaW5pdGlvbnMo
LURCVUlMRElOR19XSVRIX0NNQUtFPTEpCisgICAgYWRkX2RlZmluaXRpb25zKC1ESEFWRV9DT05G
SUdfSD0xKQorZW5kaWYgKCkKKwogCiBpZiAoV1RGX09TX1VOSVgpCiAgICAgYWRkX2RlZmluaXRp
b25zKC1EWFBfVU5JWCkKKyAgICAjVE9ETzogY2hlY2sgZm9yIFgxMSB0YXJnZXQKKyAgICBpZiAo
Tk9UIFBPUlQgU1RSRVFVQUwgIk5peCIpCisgICAgICAgIGFkZF9kZWZpbml0aW9ucygtRE1PWl9Y
MTEpCisgICAgZW5kaWYgKCkKIGVuZGlmIChXVEZfT1NfVU5JWCkKIAogIyBDT0RFX0dFTkVSQVRP
Ul9QUkVQUk9DRVNTT1JfV0lUSF9MSU5FTUFSS0VSUyBvbmx5IG1hdHRlcnMgd2l0aCBHQ0MgPj0g
NC43LjAuICBTaW5jZSB0aGlzCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc05peC5j
bWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zTml4LmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjMWE4MjNj
Nzc5NWM1MzVkZTAxNjkyZDljY2VjZjI0NGYxYjA1NmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvY21ha2UvT3B0aW9uc05peC5jbWFrZQpAQCAtMCwwICsxLDE0OCBAQAorIyBOaXggdXNlcyBh
IGRpZmZlcmVudCB3YXkgdG8gc2V0L3Vuc2V0IGRlZmF1bHQgZmVhdHVyZXMgYmFzZWQgb24gV0sg
YnVnIDExMDcxNyAobm90IHlldCBsYW5kZWQpLgorIyBTbyB0aGUgaW1wbGVtZW50YXRpb24sIGku
ZS4gdGhlIG5leHQgdHdvIG1hY3Jvcywgd2FzIG1vdmVkIHRvIGhlcmUgdG8ga2VlcCBhIG1pbmlt
YWwgYXMgcG9zc2libGUKKyMgaW50ZXJmZXJlbmNlIG9uIG90aGVyIHBvcnRzIHVudGlsIHNvbWUg
ZGF5IHdoZW4vaWYgYnVnIDExMDcxNyBnZXQgbGFuZGVkLgorCisjIENvbXB1dGUgYW5kIHNldCBk
ZWZhdWx0IHZhbHVlcyBmb3IgZmVhdHVyZSBkZWZpbmVzCittYWNybyhXRUJLSVRfT1BUSU9OX0RF
RkFVTFRTIF9wb3J0KQorICAgICMgVXNlIHRoZSBwcmVwcm9jZXNzb3IgdG8gZ2V0IHRoZSBkZWZh
dWx0IHZhbHVlcyBmb3IgZmVhdHVyZSBkZWZpbmVzCisgICAgRVhFQ19QUk9HUkFNKCJnY2MgLUUg
LVAgLWRNIC1EQlVJTERJTkdfJHtfcG9ydH1fXyAtSSAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJj
ZS9XVEYgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIHwgZ3Jl
cCAnXiNkZWZpbmUgRU5BQkxFX1xcd1xcKyBbMDFdJCcgfCBjdXQgLWQnICcgLWYyLTMgfCBzb3J0
IiBPVVRQVVRfVkFSSUFCTEUgREVGSU5JVElPTlMpCisgICAgc3RyaW5nKFJFR0VYIE1BVENIQUxM
ICIoW15cbl0rfFteXG5dKyQpIiBERUZJTklUSU9OU19MSVNUICR7REVGSU5JVElPTlN9KQorCisg
ICAgZm9yZWFjaCAoREVGSU5JVElPTiAke0RFRklOSVRJT05TX0xJU1R9KQorICAgICAgICBzdHJp
bmcoUkVHRVggUkVQTEFDRSAiXihbXiBdKykgKFteIF0rKSQiICJcXDEiIERFRklOSVRJT05fTkFN
RSAiJHtERUZJTklUSU9OfSIpCisgICAgICAgIHN0cmluZyhSRUdFWCBSRVBMQUNFICJeKFteIF0r
KSAoW14gXSspJCIgIlxcMiIgREVGSU5JVElPTl9WQUxVRSAiJHtERUZJTklUSU9OfSIpCisgICAg
ICAgIFdFQktJVF9PUFRJT05fREVGSU5FKCR7REVGSU5JVElPTl9OQU1FfSAiVG9nZ2xlICR7REVG
SU5JVElPTl9OQU1FfSIgJHtERUZJTklUSU9OX1ZBTFVFfSkKKyAgICAgICAgb3B0aW9uKCR7REVG
SU5JVElPTl9OQU1FfSAiVG9nZ2xlICR7REVGSU5JVElPTl9OQU1FfSIgJHtERUZJTklUSU9OX1ZB
TFVFfSkKKyAgICBlbmRmb3JlYWNoICgpCitlbmRtYWNybygpCisKKyMgU2hvdyBXZWJLaXQgb3B0
aW9ucyBzdW1tYXJ5IGFuZCBhZGQgLURGT09CQVIgdG8gZWFjaCBvcHRpb24gd2l0aCBhIHZhbHVl
IGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IHZhbHVlLgorbWFjcm8oUFJPQ0VTU19XRUJLSVRf
T1BUSU9OUykKKyAgICBtZXNzYWdlKFNUQVRVUyAiRW5hYmxlZCBmZWF0dXJlczoiKQorCisgICAg
c2V0KF9NQVhfRkVBVFVSRV9MRU5HVEggMCkKKyAgICBmb3JlYWNoIChfbmFtZSAke19XRUJLSVRf
QVZBSUxBQkxFX09QVElPTlN9KQorICAgICAgICBzdHJpbmcoTEVOR1RIICR7X25hbWV9IF9OQU1F
X0xFTkdUSCkKKyAgICAgICAgaWYgKF9OQU1FX0xFTkdUSCBHUkVBVEVSIF9NQVhfRkVBVFVSRV9M
RU5HVEgpCisgICAgICAgICAgICBzZXQoX01BWF9GRUFUVVJFX0xFTkdUSCAke19OQU1FX0xFTkdU
SH0pCisgICAgICAgIGVuZGlmICgpCisgICAgZW5kZm9yZWFjaCAoKQorCisgICAgc2V0KF9TSE9V
TERfUFJJTlRfUE9JTlRTIE9GRikKKyAgICBmb3JlYWNoIChfbmFtZSAke19XRUJLSVRfQVZBSUxB
QkxFX09QVElPTlN9KQorICAgICAgICBzdHJpbmcoTEVOR1RIICR7X25hbWV9IF9OQU1FX0xFTkdU
SCkKKworICAgICAgICBzZXQoX01FU1NBR0UgIiAke19uYW1lfSAiKQorCisgICAgICAgIGlmIChf
U0hPVUxEX1BSSU5UX1BPSU5UUykKKyAgICAgICAgICAgIGZvcmVhY2ggKElHTk9SRSBSQU5HRSAk
e19OQU1FX0xFTkdUSH0gJHtfTUFYX0ZFQVRVUkVfTEVOR1RIfSkKKyAgICAgICAgICAgICAgICBz
ZXQoX01FU1NBR0UgIiR7X01FU1NBR0V9ICIpCisgICAgICAgICAgICBlbmRmb3JlYWNoICgpCisg
ICAgICAgICAgICBzZXQoX1NIT1VMRF9QUklOVF9QT0lOVFMgT0ZGKQorICAgICAgICBlbHNlICgp
CisgICAgICAgICAgICBmb3JlYWNoIChJR05PUkUgUkFOR0UgJHtfTkFNRV9MRU5HVEh9ICR7X01B
WF9GRUFUVVJFX0xFTkdUSH0pCisgICAgICAgICAgICAgICAgc2V0KF9NRVNTQUdFICIke19NRVNT
QUdFfS4iKQorICAgICAgICAgICAgZW5kZm9yZWFjaCAoKQorICAgICAgICAgICAgc2V0KF9TSE9V
TERfUFJJTlRfUE9JTlRTIE9OKQorICAgICAgICBlbmRpZiAoKQorCisgICAgICAgIGlmICgke19u
YW1lfSkKKyAgICAgICAgICAgIGxpc3QoQVBQRU5EIEZFQVRVUkVfREVGSU5FUyAke19uYW1lfSkK
KyAgICAgICAgICAgIHNldChGRUFUVVJFX0RFRklORVNfV0lUSF9TUEFDRV9TRVBBUkFUT1IgIiR7
RkVBVFVSRV9ERUZJTkVTX1dJVEhfU1BBQ0VfU0VQQVJBVE9SfSAke19uYW1lfSIpCisgICAgICAg
IGVuZGlmICgpCisKKyAgICAgICAgc2V0KF9NRVNTQUdFICIke19NRVNTQUdFfSAkeyR7X25hbWV9
fSIpCisgICAgICAgIG1lc3NhZ2UoU1RBVFVTICIke19NRVNTQUdFfSIpCisgICAgZW5kZm9yZWFj
aCAoKQorCisgICAgIyBBZGQgYWRkX2RlZmluaXRpb25zIHRvIHZhbHVlcyBkaWZmZXJlbnQgZnJv
bSB0aGUgZGVmYXVsdHMKKyAgICBmb3JlYWNoIChfbmFtZSAke19XRUJLSVRfQVZBSUxBQkxFX09Q
VElPTlN9KQorICAgICAgICAjIENvbnZlcnQgdmFsdWVzIGZyb20gT04vT0ZGIHRvIDEvMCBiZWNh
dXNlCisgICAgICAgICMgQ01ha2Ugc2F5cyAiMSBFUVVBTCBPTiIgaXMgZmFsc2UuCisgICAgICAg
IGlmICgke19XRUJLSVRfQVZBSUxBQkxFX09QVElPTlNfSU5JVEFMVkFMVUVfJHtfbmFtZX19KQor
ICAgICAgICAgICAgc2V0KF9hIDEpCisgICAgICAgIGVsc2UgKCkKKyAgICAgICAgICAgIHNldChf
YSAwKQorICAgICAgICBlbmRpZiAoKQorICAgICAgICBpZiAoJHske19uYW1lfX0pCisgICAgICAg
ICAgICBzZXQoX2IgMSkKKyAgICAgICAgZWxzZSAoKQorICAgICAgICAgICAgc2V0KF9iIDApCisg
ICAgICAgIGVuZGlmICgpCisgICAgICAgIGlmIChOT1QgX2EgRVFVQUwgX2IpCisgICAgICAgICAg
ICBhZGRfZGVmaW5pdGlvbnMoIi1EJHtfbmFtZX09JHtfYn0iKQorICAgICAgICBlbmRpZiAoKQor
ICAgIGVuZGZvcmVhY2ggKCkKK2VuZG1hY3JvKCkKKworCitzZXQoUFJPSkVDVF9WRVJTSU9OX01B
Sk9SIDApCitzZXQoUFJPSkVDVF9WRVJTSU9OX01JTk9SIDEpCitzZXQoUFJPSkVDVF9WRVJTSU9O
X1BBVENIIDApCitzZXQoUFJPSkVDVF9WRVJTSU9OICR7UFJPSkVDVF9WRVJTSU9OX01BSk9SfS4k
e1BST0pFQ1RfVkVSU0lPTl9NSU5PUn0uJHtQUk9KRUNUX1ZFUlNJT05fUEFUQ0h9KQorCitpZiAo
Q01BS0VfQ1hYX0NPTVBJTEVSX0lEIFNUUkVRVUFMICJHTlUiKQorICAgICMgVXNlIC1mZW1pdC1z
dHJ1Y3QtZGVidWctYmFzZW9ubHkgdG8gcmVkdWNlIHRoZSBzaXplIG9mIFdlYkNvcmUgc3RhdGlj
IGxpYnJhcnkKKyAgICBzZXQoQ01BS0VfQ1hYX0ZMQUdTX0RFQlVHICItZyAtZmVtaXQtc3RydWN0
LWRlYnVnLWJhc2Vvbmx5IiBDQUNIRSBTVFJJTkcgIkZsYWdzIHVzZWQgYnkgdGhlIGNvbXBpbGVy
IGR1cmluZyBkZWJ1ZyBidWlsZHMuIiBGT1JDRSkKK2VuZGlmICgpCisKK3NldChTSEFSRURfQ09S
RSBPRkYpCitzZXQoRU5BQkxFX1dFQktJVCBPRkYpCitzZXQoRU5BQkxFX1dFQktJVDIgT0ZGKQor
c2V0KEVOQUJMRV9UT09MUyBPRkYpCisKK3NldChXZWJLaXQyX09VVFBVVF9OQU1FIFdlYktpdE5p
eCkKKworYWRkX2RlZmluaXRpb25zKC1EQlVJTERJTkdfTklYX189MSkKKworZmluZF9wYWNrYWdl
KENhaXJvIDEuMTIuOCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShGb250Y29uZmlnIDIuOC4wIFJF
UVVJUkVEKQorZmluZF9wYWNrYWdlKEZyZWV0eXBlIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEdM
SUIgMi4zNi4wIFJFUVVJUkVEIENPTVBPTkVOVFMgZ2lvIGdvYmplY3QgZ21vZHVsZSBndGhyZWFk
KQorZmluZF9wYWNrYWdlKEhhcmZCdXp6KQorZmluZF9wYWNrYWdlKElDVSBSRVFVSVJFRCkKK2Zp
bmRfcGFja2FnZShKUEVHIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKExpYlhtbDIgMi42IFJFUVVJ
UkVEKQorZmluZF9wYWNrYWdlKExpYlhzbHQgMS4xLjcgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2Uo
UE5HIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKFNxbGl0ZSBSRVFVSVJFRCkKK2ZpbmRfcGFja2Fn
ZShUaHJlYWRzIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKFpMSUIgUkVRVUlSRUQpCisKKyMgVmFy
aWFibGVzIHRoYXQgbXVzdCBleGlzdHMgb24gQ01ha2Ugc3BhY2UKKyMgdG8ga2VlcCBjb21tb24g
Q01ha2UgZmlsZXMgd29ya2luZyBhcyBkZXNpcmVkIGZvciB1cworc2V0KFdURl9VU0VfSUNVX1VO
SUNPREUgT04pCitzZXQoV1RGX1VTRV9MRVZFTERCIE9OKQorc2V0KEVOQUJMRV9BUElfVEVTVFMg
T0ZGKQorCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRTKCJOSVgiKQorV0VCS0lUX09QVElPTl9ERUZJ
TkUoV1RGX1VTRV9PUEVOR0xfRVNfMiAiVXNlIEVHTCArIE9wZW5HTEVTMiIgT0ZGKQorV0VCS0lU
X09QVElPTl9ERUZJTkUoV1RGX1VTRV9DVVJMICJVc2UgbGliQ3VybCBhcyBuZXR3b3JrIGJhY2tl
bmQiIE9GRikKKworaWYgKFdURl9VU0VfQ1VSTCkKKyAgICBmaW5kX3BhY2thZ2UoQ1VSTCBSRVFV
SVJFRCkKKyAgICBzZXQoUkVRVUlSRURfTkVUV09SSyBsaWJjdXJsKQorZWxzZSAoKQorICAgIGZp
bmRfcGFja2FnZShMaWJTb3VwIDIuNDIuMCBSRVFVSVJFRCkKKyAgICBzZXQoUkVRVUlSRURfTkVU
V09SSyBsaWJzb3VwLTIuNCkKK2VuZGlmICgpCisKK2lmIChXVEZfVVNFX09QRU5HTF9FU18yKQor
ICAgIGZpbmRfcGFja2FnZShPcGVuR0xFUzIgUkVRVUlSRUQpCisgICAgZmluZF9wYWNrYWdlKEVH
TCBSRVFVSVJFRCkKKyAgICBzZXQoV1RGX1VTRV9FR0wgT04pCisgICAgYWRkX2RlZmluaXRpb25z
KC1EV1RGX1VTRV9PUEVOR0xfRVNfMj0xKQorZWxzZSAoKQorICAgIGZpbmRfcGFja2FnZShYMTEg
UkVRVUlSRUQpCisgICAgZmluZF9wYWNrYWdlKE9wZW5HTCBSRVFVSVJFRCkKKyAgICBhZGRfZGVm
aW5pdGlvbnMoLURIQVZFX0dMWD0xKQorZW5kaWYgKCkKKworaWYgKE5PVCBFTkFCTEVfU1ZHKQor
ICAgIHNldChFTkFCTEVfU1ZHX0ZPTlRTIE9GRikKK2VuZGlmICgpCisKK1BST0NFU1NfV0VCS0lU
X09QVElPTlMoKQorCisKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDM4NjY5M2M1MTM3MWVhMzdlZGUzMDY3MGIzZThjN2ZlZjBhM2MwMDYuLjJl
ODJhNGUxZjdjYzNkNGFmNmQxZDY3ZDRhMmQ1YmQyOWY5ZTRmYWMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OCBAQAorMjAxMy0w
Ny0wNSAgTWFyY2VsbyBMaXJhICA8bWFyY2Vsby5saXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAg
ICAgTml4IHVwc3RyZWFtaW5nIC0gQWRkaW5nIGJ1aWxkIGZpbGVzIGFuZCBzdXBwb3J0aW5nIHNj
cmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
ODM2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U2NyaXB0cy9idWlsZC1kdW1wcmVuZGVydHJlZToKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdl
YmtpdDoKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdHRlc3RydW5uZXI6CisgICAgICAg
ICogU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHM6CisgICAgICAgICogU2NyaXB0cy9y
dW4tbGF1bmNoZXI6CisgICAgICAgICogU2NyaXB0cy9ydW4tbml4LXRlc3RzOiBBZGRlZC4KKyAg
ICAgICAgKiBTY3JpcHRzL3J1bi13ZWJraXQtdGVzdHM6CisgICAgICAgICogU2NyaXB0cy91cGRh
dGUtd2Via2l0LWxpYnMtamhidWlsZDoKKyAgICAgICAgKiBTY3JpcHRzL3VwZGF0ZS13ZWJraXRu
aXgtbGliczogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRkaXJzLnBtOgorICAgICAg
ICAoZGV0ZXJtaW5lQXJjaGl0ZWN0dXJlKToKKyAgICAgICAgKGFyZ3VtZW50c0ZvckNvbmZpZ3Vy
YXRpb24pOgorICAgICAgICAoanNjUHJvZHVjdERpcik6CisgICAgICAgIChidWlsdER5bGliUGF0
aEZvck5hbWUpOgorICAgICAgICAoZGV0ZXJtaW5lSXNRdCk6CisgICAgICAgIChkZXRlcm1pbmVJ
c05peCk6CisgICAgICAgIChpc05peCk6CisgICAgICAgIChpc0FwcGxlV2ViS2l0KToKKyAgICAg
ICAgKGxhdW5jaGVyUGF0aCk6CisgICAgICAgIChsYXVuY2hlck5hbWUpOgorICAgICAgICAoY2hl
Y2tSZXF1aXJlZFN5c3RlbUNvbmZpZyk6CisgICAgICAgIChjb3B5SW5zcGVjdG9yRnJvbnRlbmRG
aWxlcyk6CisgICAgICAgIChqaGJ1aWxkV3JhcHBlclByZWZpeElmTmVlZGVkKToKKyAgICAgICAg
KGJ1aWxkQ01ha2VQcm9qZWN0T3JFeGl0KToKKyAgICAgICAgKGNtYWtlQmFzZWRQb3J0TmFtZSk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5OgorICAg
ICAgICAoRGVwcmVjYXRlZFBvcnQucG9ydCk6CisgICAgICAgIChEZXByZWNhdGVkUG9ydC5tYWtl
QXJncyk6CisgICAgICAgIChFZmxXSzJQb3J0LmJ1aWxkX3dlYmtpdF9jb21tYW5kKToKKyAgICAg
ICAgKE5peFBvcnQpOgorICAgICAgICAoTml4UG9ydC5idWlsZF93ZWJraXRfY29tbWFuZCk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHk6CisgICAgICAgIChwbGF0
Zm9ybV9vcHRpb25zKToKKyAgICAgICAgKFBvcnRGYWN0b3J5KToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3BvcnQvbml4LnB5OiBBZGRlZC4KKyAgICAgICAgKE5peFBvcnQpOgorICAgICAg
ICAoTml4UG9ydC5fd2syX3BvcnRfbmFtZSk6CisgICAgICAgIChOaXhQb3J0LmRldGVybWluZV9m
dWxsX3BvcnRfbmFtZSk6CisgICAgICAgIChOaXhQb3J0Ll9faW5pdF9fKToKKyAgICAgICAgKE5p
eFBvcnQuX3BvcnRfZmxhZ19mb3Jfc2NyaXB0cyk6CisgICAgICAgIChOaXhQb3J0LnNldHVwX3Rl
c3RfcnVuKToKKyAgICAgICAgKE5peFBvcnQuc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKToKKyAg
ICAgICAgKE5peFBvcnQuZGVmYXVsdF90aW1lb3V0X21zKToKKyAgICAgICAgKE5peFBvcnQuY2xl
YW5fdXBfdGVzdF9ydW4pOgorICAgICAgICAoTml4UG9ydC5fZ2VuZXJhdGVfYWxsX3Rlc3RfY29u
ZmlndXJhdGlvbnMpOgorICAgICAgICAoTml4UG9ydC5fcGF0aF90b19kcml2ZXIpOgorICAgICAg
ICAoTml4UG9ydC5fcGF0aF90b19pbWFnZV9kaWZmKToKKyAgICAgICAgKE5peFBvcnQuX2ltYWdl
X2RpZmZfY29tbWFuZCk6CisgICAgICAgIChOaXhQb3J0Ll9zZWFyY2hfcGF0aHMpOgorICAgICAg
ICAoTml4UG9ydC5zaG93X3Jlc3VsdHNfaHRtbF9maWxlKToKKyAgICAgICAgKE5peFBvcnQuX3Bv
cnRfc3BlY2lmaWNfZXhwZWN0YXRpb25zX2ZpbGVzKToKKyAgICAgICAgKE5peFBvcnQuZGVmYXVs
dF9iYXNlbGluZV9zZWFyY2hfcGF0aCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0
L25peF91bml0dGVzdC5weTogQWRkZWQuCisgICAgICAgIChOaXhQb3J0VGVzdCk6CisgICAgICAg
IChOaXhQb3J0VGVzdC5fYXNzZXJ0X3NlYXJjaF9wYXRoKToKKyAgICAgICAgKE5peFBvcnRUZXN0
Ll9hc3NlcnRfZXhwZWN0YXRpb25zX2ZpbGVzKToKKyAgICAgICAgKE5peFBvcnRUZXN0LnRlc3Rf
YmFzZWxpbmVfc2VhcmNoX3BhdGgpOgorICAgICAgICAoTml4UG9ydFRlc3QudGVzdF9leHBlY3Rh
dGlvbnNfZmlsZXMpOgorICAgICAgICAoTml4UG9ydFRlc3QudGVzdF9kZWZhdWx0X3RpbWVvdXRf
bXMpOgorICAgICAgICAqIGpoYnVpbGQvamhidWlsZC13cmFwcGVyOgorICAgICAgICAoZGV0ZXJt
aW5lX3BsYXRmb3JtKToKKyAgICAgICAgKiBuaXgvY29tbW9uLnB5OiBBZGRlZC4KKyAgICAgICAg
KHNjcmlwdF9wYXRoKToKKyAgICAgICAgKHRvcF9sZXZlbF9wYXRoKToKKyAgICAgICAgKiBuaXgv
amhidWlsZC5tb2R1bGVzOiBBZGRlZC4KKyAgICAgICAgKiBuaXgvamhidWlsZHJjOiBBZGRlZC4K
KyAgICAgICAgKiBuaXgvcnVuLXdpdGgtamhidWlsZDogQWRkZWQuCisKIDIwMTMtMDctMDIgIEJ5
dW5nd29vIExlZSAgPGJ3ODAubGVlQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEZpeCBXZWJLaXRU
ZXN0UnVubmVyIGNyYXNoZXMuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2J1aWxkLWR1bXBy
ZW5kZXJ0cmVlIGIvVG9vbHMvU2NyaXB0cy9idWlsZC1kdW1wcmVuZGVydHJlZQppbmRleCAxZmY3
NWY3ZDNiYzA4ZmJhYWE3ZjM1Zjg5NjkzZGE5ZDgyNjM3NWU1Li45MWY1NDgyMWVhYzY4ODM1M2Zm
Mjk0YWY5NWEwYmI3Nzg4YTkxNDkxIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2J1aWxkLWR1
bXByZW5kZXJ0cmVlCisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtZHVtcHJlbmRlcnRyZWUKQEAg
LTcwLDcgKzcwLDcgQEAgaWYgKGlzQXBwbGVNYWNXZWJLaXQoKSkgewogfSBlbHNpZiAoaXNBcHBs
ZVdpbldlYktpdCgpKSB7CiAgICAgbXkgJGRydFNvbHV0aW9uUGF0aCA9ICJEdW1wUmVuZGVyVHJl
ZS52Y3hwcm9qL0R1bXBSZW5kZXJUcmVlLnNsbiI7CiAgICAgJHJlc3VsdCA9IGJ1aWxkVmlzdWFs
U3R1ZGlvUHJvamVjdCgkZHJ0U29sdXRpb25QYXRoLCAkY2xlYW4pOwotfSBlbHNpZiAoaXNRdCgp
IHx8IGlzR3RrKCkgfHwgaXNFZmwoKSkgeworfSBlbHNpZiAoaXNRdCgpIHx8IGlzR3RrKCkgfHwg
aXNFZmwoKSB8fCBpc05peCgpKSB7CiAgICAgIyBRdCwgR3RrIGFuZCBFRkwgYnVpbGQgZXZlcnl0
aGluZyBpbiBvbmUgc2hvdC4gTm8gbmVlZCB0byBidWlsZCBhbnl0aGluZyBoZXJlLgogICAgICRy
ZXN1bHQgPSAwOwogfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Vi
a2l0IGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKaW5kZXggODdjNTA0MzMwYTlkZDY1NDQ0
Nzk3ODVjNTE4YmZjMTI4NDg3OTc4MS4uMDEwYTAwOGQ0NWQyMmU2OTA2ZmI1MTdjYTM3Nzk1MWNj
NmJhMWNkOCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKKysrIGIvVG9v
bHMvU2NyaXB0cy9idWlsZC13ZWJraXQKQEAgLTM2LDcgKzM2LDcgQEAgdXNlIEZpbGU6OkJhc2Vu
YW1lOwogdXNlIEZpbGU6OkZpbmQ7CiB1c2UgRmlsZTo6U3BlYzsKIHVzZSBGaW5kQmluOwotdXNl
IEdldG9wdDo6TG9uZyBxdyg6Y29uZmlnIHBhc3NfdGhyb3VnaCk7Cit1c2UgR2V0b3B0OjpMb25n
IHF3KDpjb25maWcgcGFzc190aHJvdWdoIG5vX2F1dG9fYWJicmV2KTsKIHVzZSBsaWIgJEZpbmRC
aW46OkJpbjsKIHVzZSB3ZWJraXRkaXJzOwogdXNlIHdlYmtpdHBlcmw6OkZlYXR1cmVMaXN0IHF3
KGdldEZlYXR1cmVPcHRpb25MaXN0KTsKQEAgLTYyLDYgKzYyLDggQEAgbXkgJG5vV2ViS2l0MSA9
IDA7CiBteSAkbm9XZWJLaXQyID0gMDsKIG15ICRjb3ZlcmFnZVN1cHBvcnQgPSAwOwogbXkgJHN0
YXJ0VGltZSA9IHRpbWUoKTsKK215ICRjdXJsID0gMDsKK215ICRvcGVuZ2xlczIgPSAwOwogCiBt
eSBAZmVhdHVyZXMgPSBnZXRGZWF0dXJlT3B0aW9uTGlzdCgpOwogCkBAIC04Nyw2ICs4OSwzOCBA
QCBpZiAoaXNRdCgpKSB7CiAgICAgfQogfQogCisjIFVwZGF0ZSBkZWZhdWx0cyBmb3IgdGhlIE5p
eCBwb3J0CitpZiAoaXNOaXgoKSkgeworICAgICMgSW5zdGVhZCBvZiB1c2UgRmVhdHVyZUxpc3Qu
cG0gdG8gbGlzdCBlbmFibGVkIGZlYXR1cmVzLCB0ZWxsIHRoZSBjb21waWxlciB0bworICAgICMg
cGFyc2UgU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBhbmQgZ2V0IHRoZSBkZWZhdWx0IHZhbHVl
cyBvZiBhbGwgZmVhdHVyZSBmbGFncworICAgICMgZnJvbSB0aGUgcmVzdWx0LgorICAgIG15ICRw
b3J0RGVmaW5lID0gIkJVSUxESU5HXyIudWMoY21ha2VCYXNlZFBvcnROYW1lKCkpLiJfXyI7Cisg
ICAgbXkgJGRlZmluaXRpb25zID0gYGdjYyAtRSAtUCAtZE0gLUQkcG9ydERlZmluZSAtSSBTb3Vy
Y2UvV1RGIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggfCBncmVwICdeI2RlZmluZSBFTkFCTEVf
XFx3XFwrIFxbMDFcXVwkJyB8IGN1dCAtZCcgJyAtZjItM2A7CisKKyAgICBteSAlZmVhdHVyZURl
ZmF1bHRzOworICAgIGZvcmVhY2ggKHNwbGl0KC9cbi8sICRkZWZpbml0aW9ucykpIHsKKyAgICAg
ICAgbXkgQG1hY3JvRGVmaW5pdGlvbiA9IHNwbGl0KC8gLyk7CisgICAgICAgICRmZWF0dXJlRGVm
YXVsdHN7JG1hY3JvRGVmaW5pdGlvblswXX0gPSAkbWFjcm9EZWZpbml0aW9uWzFdOworICAgIH0K
KworICAgIEBmZWF0dXJlcyA9ICgpOworICAgIGZvcmVhY2ggKHNvcnQga2V5cyAlZmVhdHVyZURl
ZmF1bHRzKSB7CisgICAgICAgIG5leHQgaWYgKCEvXkVOQUJMRS8pOworICAgICAgICBteSAkb3B0
aW9uTmFtZSA9IGxjICRfOworICAgICAgICAkb3B0aW9uTmFtZSA9fiBzL15lbmFibGVfLy87Cisg
ICAgICAgICRvcHRpb25OYW1lID1+IHMvXy8tL2c7CisgICAgICAgIG15ICRkZXNjTmFtZSA9ICRv
cHRpb25OYW1lOworICAgICAgICAkZGVzY05hbWUgPX4gcy8tLyAvZzsKKworICAgICAgICBwdXNo
IEBmZWF0dXJlcywgeworICAgICAgICAgICAgb3B0aW9uID0+ICRvcHRpb25OYW1lLAorICAgICAg
ICAgICAgZGVzYyA9PiAiVG9nZ2xlICRkZXNjTmFtZSBzdXBwb3J0IiwKKyAgICAgICAgICAgIGRl
ZmluZSA9PiAkXywKKyAgICAgICAgICAgIGRlZmF1bHQgPT4gJGZlYXR1cmVEZWZhdWx0c3skX30K
KyAgICAgICAgfTsKKyAgICB9Cit9CisKICMgQWRkaXRpb25hbCBlbnZpcm9ubWVudCBwYXJhbWV0
ZXJzCiBwdXNoIEBBUkdWLCBzcGxpdCgvIC8sICRFTlZ7J0JVSUxEX1dFQktJVF9BUkdTJ30pIGlm
ICgkRU5WeydCVUlMRF9XRUJLSVRfQVJHUyd9KTsKIApAQCAtMTE2LDYgKzE1MCw3IEBAIFVzYWdl
OiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFtvcHRpb25zIHRvIHBhc3MgdG8gYnVpbGQgc3lzdGVt
XQogCiAgIC0tYmxhY2tiZXJyeSAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB0aGUgQmxhY2tC
ZXJyeSBwb3J0IG9uIE1hYy9MaW51eAogICAtLWVmbCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQnVpbGQgdGhlIEVGTCBwb3J0CisgIC0tbml4ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBCdWlsZCB0aGUgTml4IHBvcnQKICAgLS1ndGsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEJ1aWxkIHRoZSBHVEsrIHBvcnQKICAgLS1xdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEJ1aWxkIHRoZSBRdCBwb3J0CiAgIC0td2luY2Fpcm8gICAgICAgICAgICAgICAgICAgICAgICBC
dWlsZCB1c2luZyBDYWlybyAocmF0aGVyIHRoYW4gQ29yZUdyYXBoaWNzKSBvbiBXaW5kb3dzCkBA
IC0xMzcsNiArMTcyLDkgQEAgVXNhZ2U6ICRwcm9ncmFtTmFtZSBbb3B0aW9uc10gW29wdGlvbnMg
dG8gcGFzcyB0byBidWlsZCBzeXN0ZW1dCiAgIC0tbm8td2Via2l0MSAgICAgICAgICAgICAgICAg
ICAgICBPbWl0IFdlYktpdDEgY29kZSBmcm9tIHRoZSBidWlsZCAoUXQvRUZML0dUSyBvbmx5KQog
ICAtLW5vLXdlYmtpdDIgICAgICAgICAgICAgICAgICAgICAgT21pdCBXZWJLaXQyIGNvZGUgZnJv
bSB0aGUgYnVpbGQKIAorICAtLWN1cmwgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlIGxp
YkN1cmwgYXMgbmV0d29yayBiYWNrZW5kIChOaXggb25seSkKKyAgLS1vcGVuZ2xlczIgICAgICAg
ICAgICAgICAgICAgICAgIFVzZSBFR0wgYW5kIE9wZW5HTEVTMiBpbnN0ZWFkIG9mIEdMWCAoTml4
IG9ubHkpCisKIEVPRgogCiBteSAlb3B0aW9ucyA9ICgKQEAgLTE1Miw2ICsxOTAsOCBAQCBteSAl
b3B0aW9ucyA9ICgKICAgICAnbm8td2Via2l0MScgPT4gXCRub1dlYktpdDEsCiAgICAgJ25vLXdl
YmtpdDInID0+IFwkbm9XZWJLaXQyLAogICAgICdjb3ZlcmFnZScgPT4gXCRjb3ZlcmFnZVN1cHBv
cnQsCisgICAgJ2N1cmwnID0+IFwkY3VybCwKKyAgICAnb3BlbmdsZXMyJyA9PiBcJG9wZW5nbGVz
MiwKICk7CiAKICMgQnVpbGQgdXNhZ2UgdGV4dCBhbmQgb3B0aW9ucyBsaXN0IGZyb20gZmVhdHVy
ZXMKQEAgLTI3NCw2ICszMTQsMjQgQEAgaWYgKGlzSW5zcGVjdG9yRnJvbnRlbmQoKSkgewogCiBt
eSAkcmVzdWx0ID0gMDsKIAoraWYgKGlzTml4KCkpIHsKKyAgICBpZiAoJG5vV2ViS2l0Mikgewor
ICAgICAgICBwcmludCBTVERFUlIgIk5peCBpcyBhIFdlYktpdDIgcG9ydCwgeW91IGNhbid0IGRp
c2FibGUgV2ViS2l0MiBvbiBpdCFcbiI7CisgICAgICAgIGV4aXQgMTsKKyAgICB9CisKKyAgICAj
IEJ5IGRlZmF1bHQgd2UgYnVpbGQgdXNpbmcgYWxsIG9mIHRoZSBhdmFpbGFibGUgQ1BVcy4KKyAg
ICAkbWFrZUFyZ3MgLj0gKCRtYWtlQXJncyA/ICIgIiA6ICIiKSAuICItaiIgLiBudW1iZXJPZkNQ
VXMoKSBpZiAkbWFrZUFyZ3MgIX4gLy1qXHMqXGQrLzsKKyAgICAkY21ha2VBcmdzID0gIi1EV1RG
X1VTRV9DVVJMPU9OICIgLiAkY21ha2VBcmdzIGlmICRjdXJsOworICAgICRjbWFrZUFyZ3MgPSAi
LURXVEZfVVNFX09QRU5HTF9FU18yPU9OICIgLiAkY21ha2VBcmdzIGlmICRvcGVuZ2xlczI7CisK
KyAgICAjIFdlIHJlbW92ZSBDTWFrZUNhY2hlIHRvIGF2b2lkIHRoZSBib3RzIHRvIHJldXNlIGNh
Y2hlZCBmbGFncyB3aGVuCisgICAgIyB3ZSBlbmFibGUgbmV3IGZlYXR1cmVzLiBUaGlzIGZvcmNl
cyBhIHJlY29uZmlndXJhdGlvbi4KKyAgICByZW1vdmVDTWFrZUNhY2hlKCk7CisKKyAgICBidWls
ZENNYWtlUHJvamVjdE9yRXhpdCgkY2xlYW4sICJOaXgiLCAkcHJlZml4UGF0aCwgJG1ha2VBcmdz
LCAoY21ha2VCYXNlZFBvcnRBcmd1bWVudHMoKSwgY01ha2VBcmdzRnJvbUZlYXR1cmVzKCkpLCAk
Y21ha2VBcmdzKTsKK30KKwogaWYgKGlzRWZsKCkpIHsKICAgICAjIEJ5IGRlZmF1bHQgd2UgYnVp
bGQgdXNpbmcgYWxsIG9mIHRoZSBhdmFpbGFibGUgQ1BVcy4KICAgICAkbWFrZUFyZ3MgLj0gKCRt
YWtlQXJncyA/ICIgIiA6ICIiKSAuICItaiIgLiBudW1iZXJPZkNQVXMoKSBpZiAkbWFrZUFyZ3Mg
IX4gLy1qXHMqXGQrLzsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0dGVz
dHJ1bm5lciBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0dGVzdHJ1bm5lcgppbmRleCBlNWIy
MzU0NWI3N2U2ZTc4YjRjZTQxNjlmNDI4N2E4NWM0YmI1YzI5Li5jOGEzNDJiOTA2MTQ1NDNhNmM0
MTI4Zjg0Y2UwMTM3YzE2NjUwNWI1IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2J1aWxkLXdl
YmtpdHRlc3RydW5uZXIKKysrIGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXR0ZXN0cnVubmVy
CkBAIC02Myw3ICs2Myw3IEBAIGlmIChpc0FwcGxlTWFjV2ViS2l0KCkpIHsKICAgICAkcmVzdWx0
ID0gYnVpbGRYQ29kZVByb2plY3QoIldlYktpdFRlc3RSdW5uZXIiLCAkY2xlYW4sIFhjb2RlT3B0
aW9ucygpLCBAQVJHVik7CiB9IGVsc2lmIChpc0FwcGxlV2luV2ViS2l0KCkpIHsKICAgICAkcmVz
dWx0ID0gYnVpbGRWaXN1YWxTdHVkaW9Qcm9qZWN0KCJXZWJLaXRUZXN0UnVubmVyLnNsbiIsICRj
bGVhbik7Ci19IGVsc2lmIChpc1F0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpKSB7Cit9IGVsc2lm
IChpc1F0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpIHx8IGlzTml4KCkpIHsKICAgICAjIFF0IGFu
ZCBHVEsrIGJ1aWxkIGV2ZXJ5dGhpbmcgaW4gb25lIHNob3QuIE5vIG5lZWQgdG8gYnVpbGQgYW55
dGhpbmcgaGVyZS4KICAgICAkcmVzdWx0ID0gMDsKIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWph
dmFzY3JpcHRjb3JlLXRlc3RzCmluZGV4IDhiNzlmMjUxNDc4NzlhNjQ0ZDg4MjVkM2NhNWNiNTU4
ODQ4ZTcwYzcuLjQ0ODI5ZmY4YTQzOGE4MDllMzYwMTQwZWVmMmY0Yjk2OTE2ZjdiODUgMTAwNzU1
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzCisrKyBiL1Rvb2xz
L1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzCkBAIC01Nyw2ICs1NywxMCBAQCBteSBA
dGVzdHNUb1NraXAgPSAoCiAgICAgImVjbWEvRGF0ZS8xNS45LjUuMTQuanMiLAogICAgICJlY21h
L0RhdGUvMTUuOS41LjMxLTEuanMiLAogICAgICJlY21hL0RhdGUvMTUuOS41LjM0LTEuanMiLAor
ICAgICMgVGVzdHMgZmFpbGluZyB3aGVuIHJ1bm5pbmcgaW4gQlJUIHRpbWV6b25lCisgICAgImVj
bWEvRGF0ZS8xNS45LjUuMjgtMS5qcyIsCisgICAgImVjbWEvRGF0ZS8xNS45LjUuMjktMS5qcyIs
CisgICAgImVjbWEvRGF0ZS8xNS45LjUuMzUtMS5qcyIsCiApOwogCiBteSAkanNEcml2ZXJBcmdz
ID0gIi1MICIgLiBqb2luKCIgIiwgQHRlc3RzVG9Ta2lwKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvcnVuLWxhdW5jaGVyIGIvVG9vbHMvU2NyaXB0cy9ydW4tbGF1bmNoZXIKaW5kZXggNjY4
ODZmZTBiMTk3NGIyMzE5Mzg0MWRjN2M5N2UzODE5OGI4OTljNy4uZTgzOWI1YWMzNGY5MTUxYzll
NGIwY2U2ZGZjNzJlMmFlNWRhZjcyYiAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4tbGF1
bmNoZXIKKysrIGIvVG9vbHMvU2NyaXB0cy9ydW4tbGF1bmNoZXIKQEAgLTczLDYgKzczLDEyIEBA
IGlmIChpc1F0KCkpIHsKICAgICAgICAgdW5zaGlmdChAQVJHViwgKCItLWd0ayIsICJydW4iKSk7
CiAgICAgfQogCisgICAgaWYgKGlzTml4KCkpIHsKKyAgICAgICAgdW5zaGlmdChAQVJHViwgY2F0
ZGlyKCRsYXVuY2hlclBhdGgsICJiaW4iLCAiTWluaUJyb3dzZXIiKSk7CisgICAgICAgICRsYXVu
Y2hlclBhdGggPSBjYXRkaXIoc291cmNlRGlyKCksICJUb29scyIsICJqaGJ1aWxkIiwgImpoYnVp
bGQtd3JhcHBlciIpOworICAgICAgICB1bnNoaWZ0KEBBUkdWLCAoIi0tbml4IiwgInJ1biIpKTsK
KyAgICB9CisKICAgICBpZiAoaXNFZmwoKSkgewogICAgICAgICBpZiAoaXNXSzIoKSkgewogICAg
ICAgICAgICAgdW5zaGlmdChAQVJHViwgY2F0ZGlyKCRsYXVuY2hlclBhdGgsICJiaW4iLCAiTWlu
aUJyb3dzZXIiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi1uaXgtdGVzdHMgYi9U
b29scy9TY3JpcHRzL3J1bi1uaXgtdGVzdHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjc5OGUxMDkzNDcxMjlmZGVl
YWUwZWQ5ZTVlNmU4Y2E0YTQ2ZTRmOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMv
cnVuLW5peC10ZXN0cwpAQCAtMCwwICsxLDQ0IEBACisjIS91c3IvYmluL3BlcmwgLXcKKyMgQ29w
eXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IyBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisj
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMg
ZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEludGVsIENvcnBvcmF0
aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwordXNlIHN0cmljdDsKK3VzZSBG
aW5kQmluOwordXNlIGxpYiAkRmluZEJpbjo6QmluOwordXNlIHdlYmtpdGRpcnM7CisKK3NldENv
bmZpZ3VyYXRpb24oKTsKKworIyBNYW51YWxseSBhZGQgdGhpcyBmb3IgamhidWlsZFdyYXBwZXJQ
cmVmaXhJZk5lZWRlZCgpLgorcHVzaChAQVJHViwgIi0tbml4Iik7CisKKyMgVGVsbCBDVGVzdCB0
byBkdW1wIGd0ZXN0IG91dHB1dCBpbiBjYXNlIG9mIGZhaWx1cmUuCiskRU5We0NURVNUX09VVFBV
VF9PTl9GQUlMVVJFfSA9ICIxIjsKKworYnVpbGRDTWFrZVByb2plY3RPckV4aXQoMCwgIk5peCIs
IHVuZGVmLCAidGVzdCIsIGNtYWtlQmFzZWRQb3J0QXJndW1lbnRzKCkpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9ydW4td2Via2l0
LXRlc3RzCmluZGV4IGZkNTA3ZTQ5YTlhZTNhNzYzNTczYjdkMDA0NDk4Mzk4YTQ1YzE4YTYuLmRj
NmZmYmRhMTVlZDFiZmZmM2VjNmU5Yzk3MjdkMWFiMjI5NzViNzAgMTAwNzU1Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cworKysgYi9Ub29scy9TY3JpcHRzL3J1bi13ZWJraXQt
dGVzdHMKQEAgLTkwLDYgKzkwLDggQEAgaWYgKGlzUXQoKSkgewogICAgIHB1c2goQEFSR1YsICIt
LWd0ayIpOwogfSBlbHNpZiAoaXNFZmwoKSkgewogICAgIHB1c2goQEFSR1YsICItLWVmbCIpOwor
fSBlbHNpZiAoaXNOaXgoKSkgeworICAgIHB1c2goQEFSR1YsICItLW5peCIpOwogfSBlbHNpZiAo
aXNXaW5DYWlybygpKSB7CiAgICAgcHVzaChAQVJHViwgIi0td2luY2Fpcm8iKTsKIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQgYi9Ub29scy9T
Y3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkCmluZGV4IGExNDg4ODc2YTk1YWZjMGM4
NGQwY2UyMmZhNjQ2MjQ1ZTRkOTg4NTIuLmEwNzc1YWIxYTMwYWM3ODhhNzU5OTk0ZWY3Nzg4M2Vj
NjVmMmNhNjQgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpo
YnVpbGQKKysrIGIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZApAQCAt
MjMsMTUgKzIzLDE3IEBAIHVzZSBHZXRvcHQ6Okxvbmc7CiAKIG15ICRwbGF0Zm9ybUVmbCA9IDA7
CiBteSAkcGxhdGZvcm1HdGsgPSAwOworbXkgJHBsYXRmb3JtTml4ID0gMDsKIAogbXkgJGdldE9w
dGlvbnNSZXN1bHQgPSBHZXRPcHRpb25zKAogICAgICdlZmwnID0+IFwkcGxhdGZvcm1FZmwsCi0g
ICAgJ2d0aycgPT4gXCRwbGF0Zm9ybUd0aworICAgICdndGsnID0+IFwkcGxhdGZvcm1HdGssCisg
ICAgJ25peCcgPT4gXCRwbGF0Zm9ybU5peAogICAgICk7CiAKIG15ICRwbGF0Zm9ybSA9ICIiOwog
aWYgKCEkZ2V0T3B0aW9uc1Jlc3VsdCkgewotICAgIGRpZSAiTm8gcGxhdGZvcm0gc3BlY2lmaWVk
IGZvciAiIC4gYmFzZW5hbWUoJDApIC4iLiBVc2UgLS1ndGsgb3IgLS1lZmwuXG4iOworICAgIGRp
ZSAiTm8gcGxhdGZvcm0gc3BlY2lmaWVkIGZvciAiIC4gYmFzZW5hbWUoJDApIC4iLiBVc2UgLS1n
dGssIC0tZWZsIG9yIC0tbml4LlxuIjsKIH0gZWxzZSB7CiAgICAgaWYgKCRwbGF0Zm9ybUVmbCkg
ewogICAgICAgICAkcGxhdGZvcm0gPSAiZWZsIjsKQEAgLTM5LDYgKzQxLDkgQEAgaWYgKCEkZ2V0
T3B0aW9uc1Jlc3VsdCkgewogICAgIGlmICgkcGxhdGZvcm1HdGspIHsKICAgICAgICAgJHBsYXRm
b3JtID0gImd0ayI7CiAgICAgfQorICAgIGlmICgkcGxhdGZvcm1OaXgpIHsKKyAgICAgICAgJHBs
YXRmb3JtID0gIm5peCI7CisgICAgfQogfQogCiBzdWIgZ2V0TUQ1SGFzaEZvckZpbGUoJCkKQEAg
LTExOCw3ICsxMjMsNyBAQCBkZWxldGUgJEVOVntBUl9GTEFHU30gaWYgZXhpc3RzICRFTlZ7QVJf
RkxBR1N9OwogCiBjaGRpcihyZWxhdGl2ZVNjcmlwdHNEaXIoKSAuICIvLi4vamhidWlsZCIpIG9y
IGRpZSAkITsKIAotbXkgJXByZXR0eVBsYXRmb3JtID0gKCAiZWZsIiA9PiAiRUZMIiwgImd0ayIg
PT4gIkdUSysiICk7CitteSAlcHJldHR5UGxhdGZvcm0gPSAoICJlZmwiID0+ICJFRkwiLCAiZ3Rr
IiA9PiAiR1RLKyIsICJuaXgiID0+ICJOaXgiICk7CiAKIGlmICgtZSBnZXRKaGJ1aWxkUGF0aCgp
ICYmIGpoYnVpbGRDb25maWd1cmF0aW9uQ2hhbmdlZCgpKSB7CiAgICAgY2xlYW5KaGJ1aWxkKCk7
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXRuaXgtbGlicyBiL1Rvb2xz
L1NjcmlwdHMvdXBkYXRlLXdlYmtpdG5peC1saWJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzZjM2YmRhZjcxZTk4
ZjZhMjg4NzVhOTRjMmM0YjNjMmJjZWVhMzUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3Jp
cHRzL3VwZGF0ZS13ZWJraXRuaXgtbGlicwpAQCAtMCwwICsxLDI0IEBACisjIS91c3IvYmluL3Bl
cmwgLXcKKyMgQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uCisjIENvcHlyaWdo
dCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
CisjCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyMgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBp
ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVT
QQorCit1c2UgRmluZEJpbjsKK3VzZSBsaWIgJEZpbmRCaW46OkJpbjsKK3VzZSB3ZWJraXRkaXJz
OworCitteSAkc2NyaXB0c0RpciA9IHJlbGF0aXZlU2NyaXB0c0RpcigpOworc3lzdGVtKCJwZXJs
IiwgIiRzY3JpcHRzRGlyL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkIiwgIi0tbml4IikgPT0g
MCBvciBkaWUgJCE7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0gYi9U
b29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KaW5kZXggNTg5ODBkNzJmNDcwMzE1ZWUzNGE3ZGFm
ODY1OGMxZDJhZTBhYmVkYy4uOTQwN2Q1ZThjMjg5Y2QyODc4MDE1YzlkNmNhYTUzNmIwMDc5OTZl
NCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0ZGlycy5wbQpAQCAtOTUsNiArOTUsNyBAQCBteSAkaXNHdGs7CiBteSAkaXNX
aW5DRTsKIG15ICRpc1dpbkNhaXJvOwogbXkgJGlzRWZsOworbXkgJGlzTml4OwogbXkgJGlzQmxh
Y2tCZXJyeTsKIG15ICRpc0luc3BlY3RvckZyb250ZW5kOwogbXkgJGlzV0syOwpAQCAtMzE3LDcg
KzMxOCw3IEBAIHN1YiBkZXRlcm1pbmVBcmNoaXRlY3R1cmUKICAgICAgICAgICAgICAgICAkYXJj
aGl0ZWN0dXJlID0gJ2FybXY3JzsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgIH0gZWxz
aWYgKGlzRWZsKCkpIHsKKyAgICB9IGVsc2lmIChpc0VmbCgpIHx8IGlzTml4KCkpIHsKICAgICAg
ICAgbXkgJGhvc3RfcHJvY2Vzc29yID0gIiI7CiAgICAgICAgICRob3N0X3Byb2Nlc3NvciA9IGBj
bWFrZSAtLXN5c3RlbS1pbmZvcm1hdGlvbiB8IGdyZXAgQ01BS0VfU1lTVEVNX1BST0NFU1NPUmA7
CiAgICAgICAgIGlmICgkaG9zdF9wcm9jZXNzb3IgPX4gbS9eQ01BS0VfU1lTVEVNX1BST0NFU1NP
UiBcIihbXiJdKylcIi8pIHsKQEAgLTMyNywxMyArMzI4LDEzIEBAIHN1YiBkZXRlcm1pbmVBcmNo
aXRlY3R1cmUKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICghJGFyY2hpdGVjdHVyZSAmJiAo
aXNHdGsoKSB8fCBpc0FwcGxlTWFjV2ViS2l0KCkgfHwgaXNFZmwoKSkpIHsKKyAgICBpZiAoISRh
cmNoaXRlY3R1cmUgJiYgKGlzR3RrKCkgfHwgaXNBcHBsZU1hY1dlYktpdCgpIHx8IGlzRWZsKCkg
fHwgaXNOaXgoKSkpIHsKICAgICAgICAgIyBGYWxsIGJhY2sgdG8gb3V0cHV0IG9mIGBhcmNoJywg
aWYgaXQgaXMgcHJlc2VudC4KICAgICAgICAgJGFyY2hpdGVjdHVyZSA9IGBhcmNoYDsKICAgICAg
ICAgY2hvbXAgJGFyY2hpdGVjdHVyZTsKICAgICB9CiAKLSAgICBpZiAoISRhcmNoaXRlY3R1cmUg
JiYgKGlzR3RrKCkgfHwgaXNBcHBsZU1hY1dlYktpdCgpIHx8IGlzRWZsKCkpKSB7CisgICAgaWYg
KCEkYXJjaGl0ZWN0dXJlICYmIChpc0d0aygpIHx8IGlzQXBwbGVNYWNXZWJLaXQoKSB8fCBpc0Vm
bCgpIHx8IGlzTml4KCkpKSB7CiAgICAgICAgICMgRmFsbCBiYWNrIHRvIG91dHB1dCBvZiBgdW5h
bWUgLW0nLCBpZiBpdCBpcyBwcmVzZW50LgogICAgICAgICAkYXJjaGl0ZWN0dXJlID0gYHVuYW1l
IC1tYDsKICAgICAgICAgY2hvbXAgJGFyY2hpdGVjdHVyZTsKQEAgLTM4Miw2ICszODMsNyBAQCBz
dWIgYXJndW1lbnRzRm9yQ29uZmlndXJhdGlvbigpCiAgICAgcHVzaChAYXJncywgJy0tcXQnKSBp
ZiBpc1F0KCk7CiAgICAgcHVzaChAYXJncywgJy0tZ3RrJykgaWYgaXNHdGsoKTsKICAgICBwdXNo
KEBhcmdzLCAnLS1lZmwnKSBpZiBpc0VmbCgpOworICAgIHB1c2goQGFyZ3MsICctLW5peCcpIGlm
IGlzTml4KCk7CiAgICAgcHVzaChAYXJncywgJy0td2luY2Fpcm8nKSBpZiBpc1dpbkNhaXJvKCk7
CiAgICAgcHVzaChAYXJncywgJy0td2luY2UnKSBpZiBpc1dpbkNFKCk7CiAgICAgcHVzaChAYXJn
cywgJy0tYmxhY2tiZXJyeScpIGlmIGlzQmxhY2tCZXJyeSgpOwpAQCAtNTI1LDcgKzUyNyw3IEBA
IHN1YiBwcm9kdWN0RGlyCiBzdWIganNjUHJvZHVjdERpcgogewogICAgIG15ICRwcm9kdWN0RGly
ID0gcHJvZHVjdERpcigpOwotICAgICRwcm9kdWN0RGlyIC49ICIvYmluIiBpZiAoaXNRdCgpIHx8
IGlzRWZsKCkpOworICAgICRwcm9kdWN0RGlyIC49ICIvYmluIiBpZiAoaXNRdCgpIHx8IGlzRWZs
KCkgfHwgaXNOaXgoKSk7CiAgICAgJHByb2R1Y3REaXIgLj0gIi9Qcm9ncmFtcyIgaWYgaXNHdGso
KTsKIAogICAgIHJldHVybiAkcHJvZHVjdERpcjsKQEAgLTg0MSw2ICs4NDMsOSBAQCBzdWIgYnVp
bHREeWxpYlBhdGhGb3JOYW1lCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuICIkY29uZmlndXJh
dGlvblByb2R1Y3REaXIvbGliL2xpYmV3ZWJraXQuc28iOwogICAgIH0KKyAgICBpZiAoaXNOaXgo
KSkgeworICAgICAgICByZXR1cm4gIiRjb25maWd1cmF0aW9uUHJvZHVjdERpci9saWIvbGliV2Vi
S2l0Tml4LnNvIjsKKyAgICB9CiAgICAgaWYgKGlzV2luQ0UoKSkgewogICAgICAgICByZXR1cm4g
IiRjb25maWd1cmF0aW9uUHJvZHVjdERpci8kbGlicmFyeU5hbWUiOwogICAgIH0KQEAgLTk4NCw4
ICs5ODksOCBAQCBzdWIgZGV0ZXJtaW5lSXNRdCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICAjIFRoZSBwcmVzZW5jZSBvZiBRVERJUiBvbmx5IG1lYW5zIFF0IGlmIC0tZ3RrIG9yIC0t
ZWZsIG9yIC0tYmxhY2tiZXJyeSBvciAtLXdpbmNhaXJvIGFyZSBub3Qgb24gdGhlIGNvbW1hbmQt
bGluZQotICAgIGlmIChpc0d0aygpIHx8IGlzRWZsKCkgfHwgaXNCbGFja0JlcnJ5KCkgfHwgaXNX
aW5DYWlybygpKSB7CisgICAgaWYgKGlzR3RrKCkgfHwgaXNFZmwoKSB8fCBpc0JsYWNrQmVycnko
KSB8fCBpc1dpbkNhaXJvKCkgfHwgaXNOaXgoKSkgeworICAgICMgVGhlIHByZXNlbmNlIG9mIFFU
RElSIG9ubHkgbWVhbnMgUXQgaWYgLS1ndGsgb3IgLS1lZmwgb3IgLS1ibGFja2JlcnJ5IG9yIC0t
d2luY2Fpcm8gb3IgLS1uaXggYXJlIG5vdCBvbiB0aGUgY29tbWFuZC1saW5lCiAgICAgICAgICRp
c1F0ID0gMDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTExMzYsNiArMTE0MSwxNyBAQCBz
dWIgaXNFZmwoKQogICAgIHJldHVybiAkaXNFZmw7CiB9CiAKK3N1YiBkZXRlcm1pbmVJc05peCgp
Cit7CisgICAgcmV0dXJuIGlmIGRlZmluZWQoJGlzTml4KTsKKyAgICAkaXNOaXggPSBjaGVja0Zv
ckFyZ3VtZW50QW5kUmVtb3ZlRnJvbUFSR1YoIi0tbml4Iik7Cit9CisKK3N1YiBpc05peCgpCit7
CisgICAgZGV0ZXJtaW5lSXNOaXgoKTsKKyAgICByZXR1cm4gJGlzTml4OworfQogc3ViIGlzR3Rr
KCkKIHsKICAgICBkZXRlcm1pbmVJc0d0aygpOwpAQCAtMTI3NCw3ICsxMjkwLDcgQEAgc3ViIGlz
Q3Jvc3NDb21waWxhdGlvbigpCiAKIHN1YiBpc0FwcGxlV2ViS2l0KCkKIHsKLSAgICByZXR1cm4g
IShpc1F0KCkgb3IgaXNHdGsoKSBvciBpc0VmbCgpIG9yIGlzV2luQ0UoKSBvciBpc0JsYWNrQmVy
cnkoKSk7CisgICAgcmV0dXJuICEoaXNRdCgpIG9yIGlzR3RrKCkgb3IgaXNFZmwoKSBvciBpc1dp
bkNFKCkgb3IgaXNCbGFja0JlcnJ5KCkgb3IgaXNOaXgoKSk7CiB9CiAKIHN1YiBpc0FwcGxlTWFj
V2ViS2l0KCkKQEAgLTE0NDksNyArMTQ2NSw3IEBAIHN1YiByZWxhdGl2ZVNjcmlwdHNEaXIoKQog
c3ViIGxhdW5jaGVyUGF0aCgpCiB7CiAgICAgbXkgJHJlbGF0aXZlU2NyaXB0c1BhdGggPSByZWxh
dGl2ZVNjcmlwdHNEaXIoKTsKLSAgICBpZiAoaXNHdGsoKSB8fCBpc1F0KCkgfHwgaXNFZmwoKSB8
fCBpc1dpbkNFKCkpIHsKKyAgICBpZiAoaXNHdGsoKSB8fCBpc1F0KCkgfHwgaXNFZmwoKSB8fCBp
c1dpbkNFKCkgfHwgaXNOaXgoKSkgewogICAgICAgICByZXR1cm4gIiRyZWxhdGl2ZVNjcmlwdHNQ
YXRoL3J1bi1sYXVuY2hlciI7CiAgICAgfSBlbHNpZiAoaXNBcHBsZVdlYktpdCgpKSB7CiAgICAg
ICAgIHJldHVybiAiJHJlbGF0aXZlU2NyaXB0c1BhdGgvcnVuLXNhZmFyaSI7CkBAIC0xNDY4LDYg
KzE0ODQsOCBAQCBzdWIgbGF1bmNoZXJOYW1lKCkKICAgICAgICAgcmV0dXJuICJFV2ViTGF1bmNo
ZXIvTWluaUJyb3dzZXIiOwogICAgIH0gZWxzaWYgKGlzV2luQ0UoKSkgewogICAgICAgICByZXR1
cm4gIldpbkNFTGF1bmNoZXIiOworICAgIH0gZWxzaWYgKGlzTml4KCkpIHsKKyAgICAgICAgcmV0
dXJuICJNaW5pQnJvd3NlciI7CiAgICAgfQogfQogCkBAIC0xNDk0LDcgKzE1MTIsNyBAQCBzdWIg
Y2hlY2tSZXF1aXJlZFN5c3RlbUNvbmZpZwogICAgICAgICAgICAgcHJpbnQgImh0dHA6Ly9kZXZl
bG9wZXIuYXBwbGUuY29tL3Rvb2xzL3hjb2RlXG4iOwogICAgICAgICAgICAgcHJpbnQgIioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipc
biI7CiAgICAgICAgIH0KLSAgICB9IGVsc2lmIChpc0d0aygpIG9yIGlzUXQoKSBvciBpc0VmbCgp
KSB7CisgICAgfSBlbHNpZiAoaXNHdGsoKSBvciBpc1F0KCkgb3IgaXNFZmwoKSBvciBpc05peCgp
KSB7CiAgICAgICAgIG15IEBjbWRzID0gcXcoYmlzb24gZ3BlcmYpOwogICAgICAgICBpZiAoaXNR
dCgpIGFuZCBpc1dpbmRvd3MoKSkgewogICAgICAgICAgICAgcHVzaCBAY21kcywgIndpbl9mbGV4
IjsKQEAgLTE2ODksNyArMTcwNyw3IEBAIHN1YiBjb3B5SW5zcGVjdG9yRnJvbnRlbmRGaWxlcwog
ICAgICAgICAkaW5zcGVjdG9yUmVzb3VyY2VzRGlyUGF0aCA9ICRwcm9kdWN0RGlyIC4gIi9XZWJD
b3JlLmZyYW1ld29yay9SZXNvdXJjZXMvaW5zcGVjdG9yIjsKICAgICB9IGVsc2lmIChpc0FwcGxl
V2luV2ViS2l0KCkpIHsKICAgICAgICAgJGluc3BlY3RvclJlc291cmNlc0RpclBhdGggPSAkcHJv
ZHVjdERpciAuICIvV2ViS2l0LnJlc291cmNlcy9pbnNwZWN0b3IiOwotICAgIH0gZWxzaWYgKGlz
UXQoKSB8fCBpc0d0aygpKSB7CisgICAgfSBlbHNpZiAoaXNRdCgpIHx8IGlzR3RrKCkgfHwgaXNO
aXgoKSkgewogICAgICAgICBteSAkcHJlZml4ID0gJEVOVnsiV2ViS2l0SW5zdGFsbGF0aW9uUHJl
Zml4In07CiAgICAgICAgICRpbnNwZWN0b3JSZXNvdXJjZXNEaXJQYXRoID0gKGRlZmluZWQoJHBy
ZWZpeCkgPyAkcHJlZml4IDogIi91c3Ivc2hhcmUiKSAuICIvd2Via2l0LTEuMC93ZWJpbnNwZWN0
b3IiOwogICAgIH0gZWxzaWYgKGlzRWZsKCkpIHsKQEAgLTIwMzUsNiArMjA1Myw4IEBAIHN1YiBq
aGJ1aWxkV3JhcHBlclByZWZpeElmTmVlZGVkKCkKICAgICAgICAgICAgIHB1c2goQHByZWZpeCwg
Ii0tZWZsIik7CiAgICAgICAgIH0gZWxzaWYgKGlzR3RrKCkpIHsKICAgICAgICAgICAgIHB1c2go
QHByZWZpeCwgIi0tZ3RrIik7CisgICAgICAgIH0gZWxzaWYgKGlzTml4KCkpIHsKKyAgICAgICAg
ICAgIHB1c2goQHByZWZpeCwgIi0tbml4Iik7CiAgICAgICAgIH0KICAgICAgICAgcHVzaChAcHJl
Zml4LCAicnVuIik7CiAKQEAgLTIxMjksNiArMjE0OSw5IEBAIHN1YiBidWlsZENNYWtlUHJvamVj
dE9yRXhpdCgkJCQkQCkKICAgICAgICAgc3lzdGVtKCJwZXJsIiwgIiRzb3VyY2VEaXIvVG9vbHMv
U2NyaXB0cy91cGRhdGUtd2Via2l0ZWZsLWxpYnMiKSA9PSAwIG9yIGRpZSAkITsKICAgICB9CiAK
KyAgICBpZiAoaXNOaXgoKSAmJiBjaGVja0ZvckFyZ3VtZW50QW5kUmVtb3ZlRnJvbUFSR1YoIi0t
dXBkYXRlLW5peCIpKSB7CisgICAgICAgIHN5c3RlbSgicGVybCIsICIkc291cmNlRGlyL1Rvb2xz
L1NjcmlwdHMvdXBkYXRlLXdlYmtpdG5peC1saWJzIikgPT0gMCBvciBkaWUgJCE7CisgICAgfQog
CiAgICAgJHJldHVybkNvZGUgPSBleGl0U3RhdHVzKGdlbmVyYXRlQnVpbGRTeXN0ZW1Gcm9tQ01h
a2VQcm9qZWN0KCRwb3J0LCAkcHJlZml4UGF0aCwgQGNtYWtlQXJncykpOwogICAgIGV4aXQoJHJl
dHVybkNvZGUpIGlmICRyZXR1cm5Db2RlOwpAQCAtMjE1Miw2ICsyMTc1LDcgQEAgc3ViIGNtYWtl
QmFzZWRQb3J0TmFtZSgpCiAgICAgcmV0dXJuICJCbGFja0JlcnJ5IiBpZiBpc0JsYWNrQmVycnko
KTsKICAgICByZXR1cm4gIkVmbCIgaWYgaXNFZmwoKTsKICAgICByZXR1cm4gIldpbkNFIiBpZiBp
c1dpbkNFKCk7CisgICAgcmV0dXJuICJOaXgiIGlmIGlzTml4KCk7CiAgICAgcmV0dXJuICIiOwog
fQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9y
dHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkKaW5k
ZXggMGMyMGRhZTUxMjRhMjdkNTdiODZlN2RhYzUyZjczNGNjNTY2NGY5Ny4uM2M2YmNiNGM3MGMz
NWEzMTI2NzU3ODcyODQ5MmFlYThjMGY1NmQ3MyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weQpAQCAtNzAsNiArNzAsNyBAQCBjbGFzcyBEZXByZWNh
dGVkUG9ydChvYmplY3QpOgogICAgICAgICAgICAgInF0LXdrMiI6IFF0V0syUG9ydCwKICAgICAg
ICAgICAgICJlZmwiOiBFZmxQb3J0LAogICAgICAgICAgICAgImVmbC13azIiOiBFZmxXSzJQb3J0
LAorICAgICAgICAgICAgIm5peCI6IE5peFBvcnQsCiAgICAgICAgIH0KICAgICAgICAgZGVmYXVs
dF9wb3J0ID0gewogICAgICAgICAgICAgIldpbmRvd3MiOiBXaW5Qb3J0LApAQCAtODEsNyArODIs
NyBAQCBjbGFzcyBEZXByZWNhdGVkUG9ydChvYmplY3QpOgogICAgIGRlZiBtYWtlQXJncyhzZWxm
KToKICAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGRuJ3QgdXNlIGEgc3RhdGljIEV4ZWN1dGl2
ZSgpLgogICAgICAgICBhcmdzID0gJy0tbWFrZWFyZ3M9Ii1qJXMiJyAlIEV4ZWN1dGl2ZSgpLmNw
dV9jb3VudCgpCi0gICAgICAgIGlmIG9zLmVudmlyb24uaGFzX2tleSgnTUFLRUZMQUdTJyk6Cisg
ICAgICAgIGlmICdNQUtFRkxBR1MnIGluIG9zLmVudmlyb246CiAgICAgICAgICAgICBhcmdzID0g
Jy0tbWFrZWFyZ3M9IiVzIicgJSBvcy5lbnZpcm9uWydNQUtFRkxBR1MnXQogICAgICAgICByZXR1
cm4gYXJncwogCkBAIC0yMzAsMyArMjMxLDE0IEBAIGNsYXNzIEVmbFdLMlBvcnQoRGVwcmVjYXRl
ZFBvcnQpOgogICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1uby13ZWJraXQxIikKICAgICAgICAg
Y29tbWFuZC5hcHBlbmQoc3VwZXIoRWZsV0syUG9ydCwgc2VsZikubWFrZUFyZ3MoKSkKICAgICAg
ICAgcmV0dXJuIGNvbW1hbmQKKworCitjbGFzcyBOaXhQb3J0KERlcHJlY2F0ZWRQb3J0KToKKyAg
ICBwb3J0X2ZsYWdfbmFtZSA9ICJuaXgiCisKKyAgICBkZWYgYnVpbGRfd2Via2l0X2NvbW1hbmQo
c2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CisgICAgICAgIGNvbW1hbmQgPSBzdXBlcihOaXhQb3J0
LCBzZWxmKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSkKKyAg
ICAgICAgY29tbWFuZC5hcHBlbmQoIi0tbml4IikKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0t
dXBkYXRlLW5peCIpCisgICAgICAgIGNvbW1hbmQuYXBwZW5kKHN1cGVyKE5peFBvcnQsIHNlbGYp
Lm1ha2VBcmdzKCkpCisgICAgICAgIHJldHVybiBjb21tYW5kCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cG9ydC9mYWN0b3J5LnB5CmluZGV4IGU5ZjE0NjU2MzAwNzdjMmQxZDc2NGUyOWJhNDY0YTUzYmM0
MWU2NmUuLjgwMzkxNTllMDZhMjMxZmIwN2ZmZTY3NThkZWFhNWI4NTExN2NlMmEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5CkBAIC00Miw2ICs0Miw4IEBAIGRlZiBwbGF0
Zm9ybV9vcHRpb25zKHVzZV9nbG9icz1GYWxzZSk6CiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0
aW9uKCctLWVmbCcsIGFjdGlvbj0nc3RvcmVfY29uc3QnLCBkZXN0PSdwbGF0Zm9ybScsCiAgICAg
ICAgICAgICBjb25zdD0oJ2VmbConIGlmIHVzZV9nbG9icyBlbHNlICdlZmwnKSwKICAgICAgICAg
ICAgIGhlbHA9KCdBbGlhcyBmb3IgLS1wbGF0Zm9ybT1lZmwqJyBpZiB1c2VfZ2xvYnMgZWxzZSAn
QWxpYXMgZm9yIC0tcGxhdGZvcm09ZWZsJykpLAorICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlv
bignLS1uaXgnLCBhY3Rpb249J3N0b3JlX2NvbnN0JywgZGVzdD0ncGxhdGZvcm0nLAorICAgICAg
ICAgICAgY29uc3Q9KCduaXgnKSwgaGVscD0oJ0FsaWFzIGZvciAtLXBsYXRmb3JtPW5peCcpKSwK
ICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tZ3RrJywgYWN0aW9uPSdzdG9yZV9jb25z
dCcsIGRlc3Q9J3BsYXRmb3JtJywKICAgICAgICAgICAgIGNvbnN0PSgnZ3RrKicgaWYgdXNlX2ds
b2JzIGVsc2UgJ2d0aycpLAogICAgICAgICAgICAgaGVscD0oJ0FsaWFzIGZvciAtLXBsYXRmb3Jt
PWd0ayonIGlmIHVzZV9nbG9icyBlbHNlICdBbGlhcyBmb3IgLS1wbGF0Zm9ybT1ndGsnKSksCkBA
IC03NSw2ICs3Nyw3IEBAIGRlZiBfYnVpbGRlcl9vcHRpb25zKGJ1aWxkZXJfbmFtZSk6CiBjbGFz
cyBQb3J0RmFjdG9yeShvYmplY3QpOgogICAgIFBPUlRfQ0xBU1NFUyA9ICgKICAgICAgICAgJ2Vm
bC5FZmxQb3J0JywKKyAgICAgICAgJ25peC5OaXhQb3J0JywKICAgICAgICAgJ2d0ay5HdGtQb3J0
JywKICAgICAgICAgJ21hYy5NYWNQb3J0JywKICAgICAgICAgJ21vY2tfZHJ0Lk1vY2tEUlRQb3J0
JywKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9uaXgucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbml4LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5MWI1ZTE4ZmUzMzQ4
ZjlmZmYxYmY2MjdkNTI5MTFjYzYzYTVlNDgKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvbml4LnB5CkBAIC0wLDAgKzEsMTE5IEBACisjIENvcHlyaWdodCAo
QykgMjAxMSBQcm9GVVNJT04gRW1iZWRkZWQgU3lzdGVtcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMgQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgorIyBDb3B5cmln
aHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
KyIiIldlYktpdCBOaXggaW1wbGVtZW50YXRpb24gb2YgdGhlIFBvcnQgaW50ZXJmYWNlLiIiIgor
CitpbXBvcnQgb3MKKworZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzLnRlc3RfY29u
ZmlndXJhdGlvbiBpbXBvcnQgVGVzdENvbmZpZ3VyYXRpb24KK2Zyb20gd2Via2l0cHkucG9ydC5i
YXNlIGltcG9ydCBQb3J0Citmcm9tIHdlYmtpdHB5LnBvcnQucHVsc2VhdWRpb19zYW5pdGl6ZXIg
aW1wb3J0IFB1bHNlQXVkaW9TYW5pdGl6ZXIKKworCitjbGFzcyBOaXhQb3J0KFBvcnQpOgorICAg
IHBvcnRfbmFtZSA9ICduaXgnCisKKyAgICBkZWYgX3drMl9wb3J0X25hbWUoc2VsZik6CisgICAg
ICAgIHJldHVybiAnbml4JworCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGRldGVybWluZV9m
dWxsX3BvcnRfbmFtZShjbHMsIGhvc3QsIG9wdGlvbnMsIHBvcnRfbmFtZSk6CisgICAgICAgICIi
IkRldGVybWluZSB0aGUgcG9ydCBuYW1lIGJhc2VkIG9uIGhvc3QgYW5kIG9wdGlvbnMgdmFsdWVz
LiIiIgorICAgICAgICAjIEN1cnJlbnRseSB0aGUgb25seSAicG9ydCIgaW5zdGFuY2Ugc3VwcG9y
dGVkIGJ5IE5peCBpcyAibml4Ii4gUmVpbXBsZW1lbnRpbmcKKyAgICAgICAgIyB0aGlzIG1ldGhv
ZCBhdm9pZHMgY2hhbmdpbmcgcG9ydCBuYW1lIHRvIG5peC13azIsIHdoaWNoIGlzIHRoZSBkZWZh
dWx0CisgICAgICAgICMgYmVoYXZpb3IgaW4gYmFzZS5weS4KKyAgICAgICAgcmV0dXJuIHBvcnRf
bmFtZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAg
IHN1cGVyKE5peFBvcnQsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKworICAgICAg
ICBzZWxmLl9qaGJ1aWxkX3dyYXBwZXJfcGF0aCA9IHNlbGYucGF0aF9mcm9tX3dlYmtpdF9iYXNl
KCdUb29scycsICduaXgnLCAncnVuLXdpdGgtamhidWlsZCcpCisKKyAgICAgICAgc2VsZi5zZXRf
b3B0aW9uX2RlZmF1bHQoJ3dyYXBwZXInLCBzZWxmLl9qaGJ1aWxkX3dyYXBwZXJfcGF0aCkKKyAg
ICAgICAgc2VsZi5zZXRfb3B0aW9uX2RlZmF1bHQoJ3dlYmtpdF90ZXN0X3J1bm5lcicsIFRydWUp
CisgICAgICAgIHNlbGYud2VicHJvY2Vzc19jbWRfcHJlZml4ID0gc2VsZi5nZXRfb3B0aW9uKCd3
ZWJwcm9jZXNzX2NtZF9wcmVmaXgnKQorCisgICAgICAgIHNlbGYuX3B1bHNlYXVkaW9fc2FuaXRp
emVyID0gUHVsc2VBdWRpb1Nhbml0aXplcigpCisKKyAgICBkZWYgX3BvcnRfZmxhZ19mb3Jfc2Ny
aXB0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuICItLW5peCIKKworICAgIGRlZiBzZXR1cF90ZXN0
X3J1bihzZWxmKToKKyAgICAgICAgc2VsZi5fcHVsc2VhdWRpb19zYW5pdGl6ZXIudW5sb2FkX3B1
bHNlYXVkaW9fbW9kdWxlKCkKKworICAgIGRlZiBzZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2Vs
Ziwgc2VydmVyX25hbWU9Tm9uZSk6CisgICAgICAgIGVudiA9IHN1cGVyKE5peFBvcnQsIHNlbGYp
LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihzZXJ2ZXJfbmFtZSkKKyAgICAgICAgIyBJZiBESVNQ
TEFZIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHVuc2V0IGluIHRoZSBzeXN0ZW0KKyAgICAgICAg
IyBlLmcuIG9uIGJ1aWxkIGJvdCwgcmVtb3ZlIERJU1BMQVkgdmFyaWFibGUgZnJvbSB0aGUgZGlj
dGlvbmFyeQorICAgICAgICBpZiBub3QgJ0RJU1BMQVknIGluIG9zLmVudmlyb246CisgICAgICAg
ICAgICBkZWwgZW52WydESVNQTEFZJ10KKyAgICAgICAgZW52WydURVNUX1JVTk5FUl9JTkpFQ1RF
RF9CVU5ETEVfRklMRU5BTUUnXSA9IHNlbGYuX2J1aWxkX3BhdGgoJ2xpYicsICdsaWJUZXN0UnVu
bmVySW5qZWN0ZWRCdW5kbGUuc28nKQorICAgICAgICBlbnZbJ1RFU1RfUlVOTkVSX1BMVUdJTl9Q
QVRIJ10gPSBzZWxmLl9idWlsZF9wYXRoKCdsaWInKQorICAgICAgICBpZiBzZWxmLndlYnByb2Nl
c3NfY21kX3ByZWZpeDoKKyAgICAgICAgICAgIGVudlsnV0VCX1BST0NFU1NfQ01EX1BSRUZJWCdd
ID0gc2VsZi53ZWJwcm9jZXNzX2NtZF9wcmVmaXgKKworICAgICAgICByZXR1cm4gZW52CisKKyAg
ICBkZWYgZGVmYXVsdF90aW1lb3V0X21zKHNlbGYpOgorICAgICAgICAjIFRlc3RzIHJ1biBjb25z
aWRlcmFibHkgc2xvd2VyIHVuZGVyIGdkYgorICAgICAgICAjIG9yIHZhbGdyaW5kLgorICAgICAg
ICBpZiBzZWxmLmdldF9vcHRpb24oJ3dlYnByb2Nlc3NfY21kX3ByZWZpeCcpOgorICAgICAgICAg
ICAgcmV0dXJuIDM1MCAqIDEwMDAKKyAgICAgICAgcmV0dXJuIHN1cGVyKE5peFBvcnQsIHNlbGYp
LmRlZmF1bHRfdGltZW91dF9tcygpCisKKyAgICBkZWYgY2xlYW5fdXBfdGVzdF9ydW4oc2VsZik6
CisgICAgICAgIHN1cGVyKE5peFBvcnQsIHNlbGYpLmNsZWFuX3VwX3Rlc3RfcnVuKCkKKyAgICAg
ICAgc2VsZi5fcHVsc2VhdWRpb19zYW5pdGl6ZXIucmVzdG9yZV9wdWxzZWF1ZGlvX21vZHVsZSgp
CisKKyAgICBkZWYgX2dlbmVyYXRlX2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKHNlbGYpOgorICAg
ICAgICByZXR1cm4gW1Rlc3RDb25maWd1cmF0aW9uKHZlcnNpb249c2VsZi5fdmVyc2lvbiwgYXJj
aGl0ZWN0dXJlPSd4ODYnLCBidWlsZF90eXBlPWJ1aWxkX3R5cGUpIGZvciBidWlsZF90eXBlIGlu
IHNlbGYuQUxMX0JVSUxEX1RZUEVTXQorCisgICAgZGVmIF9wYXRoX3RvX2RyaXZlcihzZWxmKToK
KyAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWxkX3BhdGgoJ2JpbicsIHNlbGYuZHJpdmVyX25hbWUo
KSkKKworICAgIGRlZiBfcGF0aF90b19pbWFnZV9kaWZmKHNlbGYpOgorICAgICAgICByZXR1cm4g
c2VsZi5fYnVpbGRfcGF0aCgnYmluJywgJ0ltYWdlRGlmZicpCisKKyAgICBkZWYgX2ltYWdlX2Rp
ZmZfY29tbWFuZChzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICByZXR1cm4gW3NlbGYu
X2poYnVpbGRfd3JhcHBlcl9wYXRoXSArIHN1cGVyKE5peFBvcnQsIHNlbGYpLl9pbWFnZV9kaWZm
X2NvbW1hbmQoKmFyZ3MsICoqa3dhcmdzKQorCisgICAgZGVmIF9zZWFyY2hfcGF0aHMoc2VsZik6
CisgICAgICAgIHJldHVybiBbc2VsZi5wb3J0X25hbWVdCisKKyAgICBkZWYgc2hvd19yZXN1bHRz
X2h0bWxfZmlsZShzZWxmLCByZXN1bHRzX2ZpbGVuYW1lKToKKyAgICAgICAgcnVuX2xhdW5jaGVy
X2FyZ3MgPSBbImZpbGU6Ly8lcyIgJSByZXN1bHRzX2ZpbGVuYW1lXQorICAgICAgICBzZWxmLl9y
dW5fc2NyaXB0KCJydW4tbGF1bmNoZXIiLCBydW5fbGF1bmNoZXJfYXJncykKKworICAgIGRlZiBf
cG9ydF9zcGVjaWZpY19leHBlY3RhdGlvbnNfZmlsZXMoc2VsZik6CisgICAgICAgIHBhdGhzID0g
c2VsZi5fc2VhcmNoX3BhdGhzKCkKKyAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd3ZWJraXRf
dGVzdF9ydW5uZXInKToKKyAgICAgICAgICAgIHBhdGhzLmFwcGVuZCgnd2syJykKKyAgICAgICAg
cmV0dXJuIGxpc3QoKFtzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fd2Via2l0X2Jhc2VsaW5l
X3BhdGgocCksICdUZXN0RXhwZWN0YXRpb25zJykgZm9yIHAgaW4gcGF0aHNdKSkKKworICAgIGRl
ZiBkZWZhdWx0X2Jhc2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYpOgorICAgICAgICByZXR1cm4gbWFw
KHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoLCBbJ25peCcsICd3azInXSkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9uaXhfdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvbml4X3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViOWZkYjk2OGRh
OWM5ZDYzNWVmOTgyYmU4N2I3Mjc1MDE4MGM5ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvbml4X3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNjggQEAKKyMg
Q29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6Cisj
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorIyBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBPUgorIyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyMgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorIyBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2lt
cG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKK2ltcG9ydCBvcworZnJvbSBjb3B5IGltcG9ydCBk
ZWVwY29weQorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlX21vY2sgaW1w
b3J0IE1vY2tFeGVjdXRpdmUsIE1vY2tFeGVjdXRpdmUyCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5z
eXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQorZnJvbSB3ZWJraXRweS5j
b21tb24uc3lzdGVtLnN5c3RlbWhvc3RfbW9jayBpbXBvcnQgTW9ja1N5c3RlbUhvc3QKK2Zyb20g
d2Via2l0cHkucG9ydCBpbXBvcnQgcG9ydF90ZXN0Y2FzZQorZnJvbSB3ZWJraXRweS5wb3J0Lm5p
eCBpbXBvcnQgTml4UG9ydAorZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2Nr
T3B0aW9ucworCisKK2NsYXNzIE5peFBvcnRUZXN0KHBvcnRfdGVzdGNhc2UuUG9ydFRlc3RDYXNl
KToKKyAgICBwb3J0X25hbWUgPSAnbml4JworICAgIHBvcnRfbWFrZXIgPSBOaXhQb3J0CisgICAg
c2VhcmNoX3BhdGhzX2Nhc2VzID0gWworICAgICAgICAgICAgeydzZWFyY2hfcGF0aHMnOiBbJ25p
eCcsICd3azInXSwgJ29zX25hbWUnOidsaW51eCd9XQorICAgIGV4cGVjdGF0aW9uX2ZpbGVzX2Nh
c2VzID0gWworICAgICAgICB7J3NlYXJjaF9wYXRocyc6IFsnJywgJ25peCcsICd3azInXSwgJ29z
X25hbWUnOidsaW51eCd9XQorCisgICAgZGVmIF9hc3NlcnRfc2VhcmNoX3BhdGgoc2VsZiwgc2Vh
cmNoX3BhdGhzLCBvc19uYW1lKToKKyAgICAgICAgaG9zdCA9IE1vY2tTeXN0ZW1Ib3N0KG9zX25h
bWU9b3NfbmFtZSkKKyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KHBvcnRfbmFtZT1zZWxm
LnBvcnRfbmFtZSwgaG9zdD1ob3N0LCBvcHRpb25zPU1vY2tPcHRpb25zKHdlYmtpdF90ZXN0X3J1
bm5lcj1UcnVlKSkKKyAgICAgICAgYWJzb2x1dGVfc2VhcmNoX3BhdGhzID0gbWFwKHBvcnQuX3dl
YmtpdF9iYXNlbGluZV9wYXRoLCBzZWFyY2hfcGF0aHMpCisKKyAgICAgICAgdW5pdHRlc3QuVGVz
dENhc2UuYXNzZXJ0RXF1YWwoc2VsZiwgcG9ydC5iYXNlbGluZV9zZWFyY2hfcGF0aCgpLCBhYnNv
bHV0ZV9zZWFyY2hfcGF0aHMpCisKKyAgICBkZWYgX2Fzc2VydF9leHBlY3RhdGlvbnNfZmlsZXMo
c2VsZiwgc2VhcmNoX3BhdGhzLCBvc19uYW1lKToKKyAgICAgICAgaG9zdCA9IE1vY2tTeXN0ZW1I
b3N0KG9zX25hbWU9b3NfbmFtZSkKKyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KHBvcnRf
bmFtZT1zZWxmLnBvcnRfbmFtZSwgaG9zdD1ob3N0LCBvcHRpb25zPU1vY2tPcHRpb25zKHdlYmtp
dF90ZXN0X3J1bm5lcj1UcnVlKSkKKyAgICAgICAgdW5pdHRlc3QuVGVzdENhc2UuYXNzZXJ0RXF1
YWwoc2VsZiwgcG9ydC5leHBlY3RhdGlvbnNfZmlsZXMoKSwgc2VhcmNoX3BhdGhzKQorCisgICAg
ZGVmIHRlc3RfYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6CisgICAgICAgIGZvciBjYXNlIGlu
IHNlbGYuc2VhcmNoX3BhdGhzX2Nhc2VzOgorICAgICAgICAgICAgc2VsZi5fYXNzZXJ0X3NlYXJj
aF9wYXRoKCoqY2FzZSkKKworICAgIGRlZiB0ZXN0X2V4cGVjdGF0aW9uc19maWxlcyhzZWxmKToK
KyAgICAgICAgZm9yIGNhc2UgaW4gc2VsZi5leHBlY3RhdGlvbl9maWxlc19jYXNlczoKKyAgICAg
ICAgICAgIGV4cGVjdGF0aW9uc19jYXNlID0gZGVlcGNvcHkoY2FzZSkKKyAgICAgICAgICAgIGV4
cGVjdGF0aW9uc19jYXNlWydzZWFyY2hfcGF0aHMnXSA9IG1hcChsYW1iZGEgcGF0aDogJy9tb2Nr
LWNoZWNrb3V0L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMnICBpZiBub3QgcGF0aCBlbHNl
ICcvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS8lcy9UZXN0RXhwZWN0YXRpb25z
JyAlIChwYXRoKSwgZXhwZWN0YXRpb25zX2Nhc2VbJ3NlYXJjaF9wYXRocyddKQorICAgICAgICAg
ICAgc2VsZi5fYXNzZXJ0X2V4cGVjdGF0aW9uc19maWxlcygqKmV4cGVjdGF0aW9uc19jYXNlKQor
CisgICAgZGVmIHRlc3RfZGVmYXVsdF90aW1lb3V0X21zKHNlbGYpOgorICAgICAgICB1bml0dGVz
dC5UZXN0Q2FzZS5hc3NlcnRFcXVhbChzZWxmLCBzZWxmLm1ha2VfcG9ydChvcHRpb25zPU1vY2tP
cHRpb25zKGNvbmZpZ3VyYXRpb249J1JlbGVhc2UnKSkuZGVmYXVsdF90aW1lb3V0X21zKCksIDgw
MDAwKQorICAgICAgICB1bml0dGVzdC5UZXN0Q2FzZS5hc3NlcnRFcXVhbChzZWxmLCBzZWxmLm1h
a2VfcG9ydChvcHRpb25zPU1vY2tPcHRpb25zKGNvbmZpZ3VyYXRpb249J0RlYnVnJykpLmRlZmF1
bHRfdGltZW91dF9tcygpLCA4MDAwMCkKZGlmZiAtLWdpdCBhL1Rvb2xzL2poYnVpbGQvamhidWls
ZC13cmFwcGVyIGIvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBwZXIKaW5kZXggOWQzYTg3YjQ0
YWE4MTkwZGFhYTRjNTM3YWEyOGM2YzQyZjcyNTk1Zi4uYTNhNzU1YmYyYjVmZjNhMTdjNmY0ZmFm
NTBkYzE1YWIzNjE0ODZkYSAxMDA3NTUKLS0tIGEvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBw
ZXIKKysrIGIvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBwZXIKQEAgLTk1LDYgKzk1LDggQEAg
ZGVmIGRldGVybWluZV9wbGF0Zm9ybSgpOgogICAgICAgICByZXR1cm4gImVmbCI7CiAgICAgaWYg
Jy0tZ3RrJyBpbiBzeXMuYXJndjoKICAgICAgICAgcmV0dXJuICJndGsiOworICAgIGlmICctLW5p
eCcgaW4gc3lzLmFyZ3Y6CisgICAgICAgIHJldHVybiAibml4IjsKICAgICByYWlzZSBWYWx1ZUVy
cm9yKCdObyBwbGF0Zm9ybSBzcGVjaWZpZWQgZm9yIGpoYnVpbGQtd3JhcHBlci4nKQogCiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL25peC9jb21tb24ucHkgYi9Ub29scy9uaXgvY29tbW9uLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmVmODM1N2UzNzhlOGI5M2Q5OGExNWVjZDM2OTcxZGJkMDAwMjc2YzQKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9uaXgvY29tbW9uLnB5CkBAIC0wLDAgKzEsMzIgQEAKKyMhL3Vzci9i
aW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTEgSWdhbGlhIFMuTC4KKyMgQ29weXJp
Z2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KS4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAg
VVNBCisKK2ltcG9ydCBvcworCitzY3JpcHRfZGlyID0gTm9uZQorCisKK2RlZiBzY3JpcHRfcGF0
aCgqYXJncyk6CisgICAgZ2xvYmFsIHNjcmlwdF9kaXIKKyAgICBpZiBub3Qgc2NyaXB0X2RpcjoK
KyAgICAgICAgc2NyaXB0X2RpciA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxl
X18pLCAnLi4nLCAnU2NyaXB0cycpCisgICAgcmV0dXJuIG9zLnBhdGguam9pbigqKHNjcmlwdF9k
aXIsKSArIGFyZ3MpCisKKworZGVmIHRvcF9sZXZlbF9wYXRoKCphcmdzKToKKyAgICByZXR1cm4g
b3MucGF0aC5qb2luKCooKHNjcmlwdF9wYXRoKCcuLicsICcuLicpLCkgKyBhcmdzKSkKZGlmZiAt
LWdpdCBhL1Rvb2xzL25peC9qaGJ1aWxkLm1vZHVsZXMgYi9Ub29scy9uaXgvamhidWlsZC5tb2R1
bGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg3OThjMGU1MTM5NGVlOWIyZmRlYzdmNTcxODM2Y2ZjZTU5Y2UwODUK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9uaXgvamhidWlsZC5tb2R1bGVzCkBAIC0wLDAgKzEs
MTI3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBtb2R1bGVzZXQgU1lTVEVN
ICJtb2R1bGVzZXQuZHRkIj4KKzw/eG1sLXN0eWxlc2hlZXQgdHlwZT0idGV4dC94c2wiIGhyZWY9
Im1vZHVsZXNldC54c2wiPz4KKzxtb2R1bGVzZXQ+CisKKyAgPG1ldGFtb2R1bGUgaWQ9IndlYmtp
dG5peC10ZXN0aW5nLWRlcGVuZGVuY2llcyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxk
ZXAgcGFja2FnZT0iY2Fpcm8iLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZm9udHMiLz4KKyAgICAg
IDxkZXAgcGFja2FnZT0iZm9udGNvbmZpZyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJmcmVldHlw
ZTYiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iaGFyZmJ1enoiLz4KKyAgICAgIDxkZXAgcGFja2Fn
ZT0iZ2xpYiIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnbGliLW5ldHdvcmtpbmciLz4KKyAgICAg
IDxkZXAgcGFja2FnZT0ibGlic291cCIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICA8L21ldGFt
b2R1bGU+CisKKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZ2l0aHViLmNvbSIK
KyAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbSIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0
YXJiYWxsIiBuYW1lPSJzb3VyY2V3YXJlLm9yZyIKKyAgICAgIGhyZWY9ImZ0cDovL3NvdXJjZXdh
cmUub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImZ0cC5nbm9tZS5v
cmciCisgICAgICBocmVmPSJodHRwOi8vZnRwLmdub21lLm9yZyIvPgorICA8cmVwb3NpdG9yeSB0
eXBlPSJnaXQiIG5hbWU9ImdpdC5nbm9tZS5vcmciCisgICAgICBocmVmPSJnaXQ6Ly9naXQuZ25v
bWUub3JnLyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJjYWlyb2dyYXBo
aWNzLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9jYWlyb2dyYXBoaWNzLm9yZyIvPgorICA8cmVw
b3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJmcmVlZGVza3RvcC5vcmciCisgICAgICBocmVm
PSJodHRwOi8vd3d3LmZyZWVkZXNrdG9wLm9yZyIvPgorCisgIDxhdXRvdG9vbHMgaWQ9ImNhaXJv
IiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVw
IHBhY2thZ2U9ImZvbnRjb25maWciLz4KKyAgICAgIDxkZXAgcGFja2FnZT0icGl4bWFuIi8+Cisg
ICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9InJlbGVhc2VzL2NhaXJvLTEu
MTIuOC50YXIueHoiIHZlcnNpb249IjEuMTIuOCIKKyAgICAgICAgICAgIHJlcG89ImNhaXJvZ3Jh
cGhpY3Mub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjhmYmI2ZmM2NjExN2FiNDEwMGJh
ZDgzMGNiNDQ3OTQ5N2U1M2M2ZjNmYWNiOThiZjA1YzhkMjk4NTU0ZWJkZDkiCisgICAgICAgICAg
ICBtZDVzdW09IjhiM2RjYWRlODU5YzQ0ZmI3ZTU2ZmM2OGVkZmU5YTQ1Ij4KKyAgICA8L2JyYW5j
aD4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0icGl4bWFuIiBhdXRvZ2VuLXNo
PSJjb25maWd1cmUiCisgICAgICAgICAgICAgYXV0b2dlbmFyZ3M9Ii0tZW5hYmxlLWd0az1ubyI+
CisgICAgPGJyYW5jaCBtb2R1bGU9InNuYXBzaG90cy9waXhtYW4tMC4yOS4yLnRhci5neiIgdmVy
c2lvbj0iMC4yOS4yIgorICAgICAgICAgICAgcmVwbz0iY2Fpcm9ncmFwaGljcy5vcmciCisgICAg
ICAgICAgICBoYXNoPSJzaGEyNTY6NGM0ZTkyMTQzYTQ1NTdhNDYxN2I4MGNhZjBhNThjY2IwMTJk
ODI5Mzc0MWU3NTM4OTAzN2NkNTEzM2IzMzVkYiIKKyAgICAgICAgICAgIG1kNXN1bT0iOGY1Nzk1
ZWE5OGNhZGQ3YjdmMTJlNGIzNzM1MDBlZWYiPgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29s
cz4KKworICA8YXV0b3Rvb2xzIGlkPSJmb250cyIKKyAgICAgICAgICAgICBza2lwLWF1dG9nZW49
InRydWUiPgorICAgIDxicmFuY2ggbW9kdWxlPSJkb3dubG9hZHMvbXJvYmluc29uL3dlYmtpdGd0
ay10ZXN0LWZvbnRzL3dlYmtpdGd0ay10ZXN0LWZvbnRzLTAuMC4zLnRhci5neiIgdmVyc2lvbj0i
MC4wLjMiCisgICAgICAgICAgICByZXBvPSJnaXRodWIuY29tIgorICAgICAgICAgICAgaGFzaD0i
c2hhMjU2OjRhMGEwMWYwMDg1NTk5N2NkY2M3MjAxZjE2NGIzM2E0ZTQxNDRlOGVhZGY0MGE1ZTU0
MmExYzQ0OGUwMzVkZTUiCisgICAgICAgICAgICBtZDVzdW09IjEwZTc0ZGUxYThiYTk2MWQ5MDM3
OTk0ZDQyN2IxZGQyIiBzaXplPSIxNjk4MTY0MiI+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rv
b2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImxpYmZmaSIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4K
KyAgICA8YnJhbmNoIG1vZHVsZT0iL3B1Yi9saWJmZmkvbGliZmZpLTMuMC4xMS50YXIuZ3oiIHZl
cnNpb249IjMuMC4xMSIKKyAgICAgICAgICAgICByZXBvPSJzb3VyY2V3YXJlLm9yZyIKKyAgICAg
ICAgICAgICBoYXNoPSJzaGEyNTY6NzBiZmIwMTM1NjM2MDA4OWFhOTdkM2U3MWUzZWRmMDVkMTk1
NTk5ZmQ4MjJlOTIyZTUwZDQ2YTAwNTVhNjI4MyIKKyAgICAgICAgICAgICBtZDVzdW09ImY2OWI5
NjkzMjI3ZDk3NjgzNWI0ODU3YjFiYTdkMGUzIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDx0YXJi
YWxsIGlkPSJmcmVldHlwZTYiPgorICAgIDxzb3VyY2UgaHJlZj0iZG93bmxvYWQuc2F2YW5uYWgu
Z251Lm9yZy9yZWxlYXNlcy9mcmVldHlwZS9mcmVldHlwZS0yLjQuMi50YXIuYnoyIiB2ZXJzaW9u
PSIyLjQuMiIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1Njo5YTk4N2FlZjhjNTBkOWJjZmRmZGM5
ZjAxMmY4YmQwZGU2MDk1Y2MxYTU1MjRlNjJjMWEwMzdkZWI4ZGFjYmZlIgorICAgICAgICAgICAg
bWQ1c3VtPSI2NDdlZThlZDI2NmY5YTQxMTdjOGQwYTQ4NTViM2QzZSIgLz4KKyAgPC90YXJiYWxs
PgorCisgIDxhdXRvdG9vbHMgaWQ9ImdsaWIiCisgICAgICAgICAgICAgYXV0b2dlbi1zaD0iY29u
ZmlndXJlIgorICAgICAgICAgICAgIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZHRyYWNlIj4KKyAg
ICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJsaWJmZmkiLz4KKyAgICA8L2Rl
cGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0iL3B1Yi9HTk9NRS9zb3VyY2VzL2dsaWIv
Mi4zNi9nbGliLTIuMzYuMC50YXIueHoiIHZlcnNpb249IjIuMzYuMCIKKyAgICAgICAgICAgIHJl
cG89ImZ0cC5nbm9tZS5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6NDU1YThhYmU4Njky
YzUxNzRiY2M3ZmZhMTViOTZhNzUyMWEyZjJmOWZiNDc1OTQ0MDU5MjdjMzVjYjliYjIyNyIvPgor
ICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJnbGliLW5ldHdvcmtpbmciPgorICAg
IDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4KKyAgICA8L2RlcGVu
ZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0iL3B1Yi9HTk9NRS9zb3VyY2VzL2dsaWItbmV0
d29ya2luZy8yLjMzL2dsaWItbmV0d29ya2luZy0yLjMzLjIudGFyLnh6IiB2ZXJzaW9uPSIyLjMz
LjIiCisgICAgICAgICAgICByZXBvPSJmdHAuZ25vbWUub3JnIgorICAgICAgICAgICAgaGFzaD0i
c2hhMjU2OmUyOThjZmYzOTM1ZWI3NTJiZTI5MGJiZjczNGU0NTdmMTg3MGJkYjUzNzBlZTI5MjYw
NmU2MDQwYTgyMDc0ZTciCisgICAgICAgICAgICBtZDVzdW09IjVhYmIzNjRmMmEwYmFiZTJlYzFl
M2E2ZDU5ZjY5MDQzIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImxpYnNv
dXAiCisgICAgICAgICAgICAgYXV0b2dlbmFyZ3M9Ii0td2l0aG91dC1nbm9tZSAtLWRpc2FibGUt
aW50cm9zcGVjdGlvbiI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0i
Z2xpYi1uZXR3b3JraW5nIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1
bGU9Ii9wdWIvR05PTUUvc291cmNlcy9saWJzb3VwLzIuNDIvbGlic291cC0yLjQyLjAudGFyLnh6
IiB2ZXJzaW9uPSIyLjQyLjAiCisgICAgICAgICAgICByZXBvPSJmdHAuZ25vbWUub3JnIgorICAg
ICAgICAgICAgaGFzaD0ic2hhMjU2OjllMGU3ZWI1ZDNmNzQwMWNjZjUyMWZiYzI4OWZjMWZhMDky
M2I3Yzc4MzM3MjllMmVkNzY5NmY3Yjg0ODg5M2UiCisgICAgICAgICAgICBtZDVzdW09ImE2MzJh
MzhkMjk4M2MyYTg4Njc5NjcyZDAwOTQwMTI4Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRv
dG9vbHMgaWQ9ImZvbnRjb25maWciIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSI+CisgICAgPGRlcGVu
ZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZnJlZXR5cGU2Ii8+CisgICAgPC9kZXBlbmRl
bmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9InNvZnR3YXJlL2ZvbnRjb25maWcvcmVsZWFzZS9m
b250Y29uZmlnLTIuOC4wLnRhci5neiIgdmVyc2lvbj0iMi44LjAiCisgICAgICAgICAgICByZXBv
PSJmcmVlZGVza3RvcC5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6ZmEyYTFjNmVlYTY1
NGQ5ZmNlN2E0YjEyMjBmMTBjOTljZGVjODQ4ZGNjYWYxNjI1YzAxZjA3NmIzMTM4MjMzNSIKKyAg
ICAgICAgICAgIG1kNXN1bT0iNzdlMTVhOTIwMDZkZGMyYWRiYjA2Zjg0MGQ1OTFjMGUiPgorICAg
IDwvYnJhbmNoPgorICA8L2F1dG90b29scz4KKworIDxhdXRvdG9vbHMgaWQ9ImhhcmZidXp6IiBh
dXRvZ2VuLXNoPSJjb25maWd1cmUiPgorICAgPGJyYW5jaCBtb2R1bGU9InNvZnR3YXJlL2hhcmZi
dXp6L3JlbGVhc2UvaGFyZmJ1enotMC45LjE0LnRhci5iejIiIHZlcnNpb249IjAuOS4xNCIKKyAg
ICAgICAgICAgY2hlY2tvdXRkaXI9ImhhcmZidXp6LTAuOS4xNCIKKyAgICAgICAgICAgcmVwbz0i
ZnJlZWRlc2t0b3Aub3JnIgorICAgICAgICAgICBoYXNoPSJzaGEyNTY6ZDA3YzBmZmRiYmJmZGZi
YjZjNjVlNzNmZTljNzY0NjZlODdkYmYwNGIwOTRjYmQwYWJmNWZkN2Q1NzFhNDAwNCIKKyAgICAg
ICAgICAgbWQ1c3VtPSI3ZTE5OTBiNzkwNjBlOThlMmQzMWY2NzdhMGFjOWVlZCI+CisgICA8L2Jy
YW5jaD4KKyA8L2F1dG90b29scz4KKworPC9tb2R1bGVzZXQ+CmRpZmYgLS1naXQgYS9Ub29scy9u
aXgvamhidWlsZHJjIGIvVG9vbHMvbml4L2poYnVpbGRyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZmQzYjliODRm
ZDBhOTY2Yjk1MDEyNDk0M2VmZjA2NjAyYTE4OGExCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
bml4L2poYnVpbGRyYwpAQCAtMCwwICsxLDcxIEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMg
Q29weXJpZ2h0IChDKSAyMDExIElnYWxpYSBTLkwuCisjIENvcHlyaWdodCAoQykgMjAxMiBJbnRl
bCBDb3Jwb3JhdGlvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIExlc3NlciBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2Fy
ZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKworaW1wb3J0IG11bHRpcHJvY2Vzc2luZworaW1w
b3J0IHN5cworCitfX25peF90b29sc19kaXJlY3RvcnkgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0
aC5kaXJuYW1lKF9fZmlsZV9fKSkKK3N5cy5wYXRoID0gW19fbml4X3Rvb2xzX2RpcmVjdG9yeV0g
KyBzeXMucGF0aAoraW1wb3J0IGNvbW1vbgorCitidWlsZF9wb2xpY3kgPSAndXBkYXRlZCcKKwor
IyBGSVhNRTogbW92ZSBzaGFyZWQgcGFydHMgaW50byAuLi9qaGJ1aWxkIGZvbGRlci4KKworX19t
b2R1bGVzZXRfZmlsZV91cmkgPSAnZmlsZTovLycgKyBvcy5wYXRoLmpvaW4oX19uaXhfdG9vbHNf
ZGlyZWN0b3J5LCAnamhidWlsZC5tb2R1bGVzJykKK19fZXh0cmFfbW9kdWxlc2V0cyA9IG9zLmVu
dmlyb24uZ2V0KCJXRUJLSVRfRVhUUkFfTU9EVUxFU0VUUyIsICIiKS5zcGxpdCgiLCIpCittb2R1
bGVzZXQgPSBbIF9fbW9kdWxlc2V0X2ZpbGVfdXJpLCBdCitpZiBfX2V4dHJhX21vZHVsZXNldHMg
IT0gWycnXToKKyAgICBtb2R1bGVzZXQuZXh0ZW5kKF9fZXh0cmFfbW9kdWxlc2V0cykKKworX19l
eHRyYV9tb2R1bGVzID0gb3MuZW52aXJvbi5nZXQoIldFQktJVF9FWFRSQV9NT0RVTEVTIiwgIiIp
LnNwbGl0KCIsIikKK21vZHVsZXMgPSBbICd3ZWJraXRuaXgtdGVzdGluZy1kZXBlbmRlbmNpZXMn
LCBdCitpZiBfX2V4dHJhX21vZHVsZXMgIT0gWycnXToKKyAgICBtb2R1bGVzLmV4dGVuZChfX2V4
dHJhX21vZHVsZXMpCisKK2lmIG9zLmVudmlyb24uaGFzX2tleSgnV0VCS0lUX09VVFBVVERJUicp
OgorICAgIGNoZWNrb3V0cm9vdCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ob3MuZW52
aXJvblsnV0VCS0lUX09VVFBVVERJUiddLCAnRGVwZW5kZW5jaWVzJywgJ1NvdXJjZScpKQorICAg
IHByZWZpeCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ob3MuZW52aXJvblsnV0VCS0lU
X09VVFBVVERJUiddLCAnRGVwZW5kZW5jaWVzJywgJ1Jvb3QnKSkKK2Vsc2U6CisgICAgY2hlY2tv
dXRyb290ID0gb3MucGF0aC5hYnNwYXRoKGNvbW1vbi50b3BfbGV2ZWxfcGF0aCgnV2ViS2l0QnVp
bGQnLCdEZXBlbmRlbmNpZXMnLCAnU291cmNlJykpCisgICAgcHJlZml4ID0gb3MucGF0aC5hYnNw
YXRoKGNvbW1vbi50b3BfbGV2ZWxfcGF0aCgnV2ViS2l0QnVpbGQnLCdEZXBlbmRlbmNpZXMnLCAn
Um9vdCcpKQorCitub25vdGlmeSA9IFRydWUKK25vdHJheWljb24gPSBUcnVlCitpZiAnTUFLRUZM
QUdTJyBub3QgaW4gb3MuZW52aXJvbjoKKyAgICBvcy5lbnZpcm9uWydNQUtFRkxBR1MnXSA9ICct
aiVkJyAlIG11bHRpcHJvY2Vzc2luZy5jcHVfY291bnQoKQorCisjIFVzZSBzeXN0ZW0gbGlicmFy
aWVzIHdoaWxlIGJ1aWxkaW5nLgoraWYgdXNlX2xpYjY0OgorICAgIF9saWJkaXIgPSAnbGliNjQn
CitlbHNlOgorICAgIF9saWJkaXIgPSAnbGliJworYWRkcGF0aCgnUEtHX0NPTkZJR19QQVRIJywg
b3MucGF0aC5qb2luKG9zLnNlcCwgJ3VzcicsIF9saWJkaXIsICdwa2djb25maWcnKSkKK2FkZHBh
dGgoJ1BLR19DT05GSUdfUEFUSCcsIG9zLnBhdGguam9pbihvcy5zZXAsICd1c3InLCAnc2hhcmUn
LCAncGtnY29uZmlnJykpCisKK2FkZHBhdGgoJ1hER19EQVRBX0RJUlMnLCAnL3Vzci9zaGFyZScp
CithZGRwYXRoKCdYREdfQ09ORklHX0RJUlMnLCAnL2V0Yy94ZGcnKQorCisjIEF2b2lkIG92ZXJs
YXBwaW5nIHNlYXJjaCBwYXRoIENNQUtFIHdhcm5pbmcgb24gNjRiaXQgc3lzdGVtcy4KK2lmICh1
c2VfbGliNjQpOgorICAgIGFkZHBhdGgoJ0NNQUtFX1BSRUZJWF9QQVRIJywgb3MucGF0aC5qb2lu
KG9zLnNlcCwgcHJlZml4LCAnbGliNjQnKSkKK2Vsc2U6CisgICAgYWRkcGF0aCgnQ01BS0VfUFJF
RklYX1BBVEgnLCBwcmVmaXgpCisKK3BhcnRpYWxfYnVpbGQgPSBGYWxzZQpkaWZmIC0tZ2l0IGEv
VG9vbHMvbml4L3J1bi13aXRoLWpoYnVpbGQgYi9Ub29scy9uaXgvcnVuLXdpdGgtamhidWlsZApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44NTlmMmUyODU0NzBlOTMzOTZlODhmYTdhMDNhNGVhMTE1Njc3ZTIwCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvbml4L3J1bi13aXRoLWpoYnVpbGQKQEAgLTAsMCArMSwyNiBA
QAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5M
LgorIyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KKyMgQ29weXJpZ2h0IChD
KSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyMK
KyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5v
dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisK
K2ltcG9ydCBjb21tb24KK2ltcG9ydCBvcworaW1wb3J0IHN5cworCisKK2poYnVpbGRfd3JhcHBl
ciA9IGNvbW1vbi50b3BfbGV2ZWxfcGF0aCgnVG9vbHMnLCAnamhidWlsZCcsICdqaGJ1aWxkLXdy
YXBwZXInKQorb3MuZXhlY3ZlKGpoYnVpbGRfd3JhcHBlciwgW2poYnVpbGRfd3JhcHBlciwgJy0t
bml4JywgJ3J1biddICsgc3lzLmFyZ3ZbMTpdLCBvcy5lbnZpcm9uKQpkaWZmIC0tZ2l0IGEvQ01h
a2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAppbmRleCAyODFmOTRhNTA3NTY4Mjc0YzdkNDE2
ZTRiYzZjZTMzMWYxZjgyNThlLi5iZmM0OWQ4MmZjNWNlZTkwMDdlN2RiOGIwYTE4ZmUyOTM3NTU3
YjQ1IDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysgYi9DTWFrZUxpc3RzLnR4dApAQCAt
MTAsNiArMTAsNyBAQCBzZXQoV0VCQ09SRV9ESVIgIiR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNl
L1dlYkNvcmUiKQogc2V0KFdFQktJVF9ESVIgIiR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dl
YktpdCIpCiBzZXQoV0VCS0lUMl9ESVIgIiR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYktp
dDIiKQogc2V0KFRISVJEUEFSVFlfRElSICIke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9UaGly
ZFBhcnR5IikKK3NldChQTEFURk9STV9ESVIgIiR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1Bs
YXRmb3JtIikKIAogc2V0KFRPT0xTX0RJUiAiJHtDTUFLRV9TT1VSQ0VfRElSfS9Ub29scyIpCiAK
QEAgLTM5LDcgKzQwLDcgQEAgaW5jbHVkZShXZWJLaXRGZWF0dXJlcykKICMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KICMgRGV0ZXJtaW5lIHdoaWNoIHBvcnQgd2lsbCBiZSBidWlsdAogIyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotc2V0KEFMTF9QT1JUUyBFZmwgV2luQ0UgQmxhY2tCZXJyeSBHVEspCitz
ZXQoQUxMX1BPUlRTIEVmbCBXaW5DRSBCbGFja0JlcnJ5IEdUSyBOaXgpCiBzZXQoUE9SVCAiTk9Q
T1JUIiBDQUNIRSBTVFJJTkcgImNob29zZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCAob25l
IG9mICR7QUxMX1BPUlRTfSkiKQogCiBsaXN0KEZJTkQgQUxMX1BPUlRTICR7UE9SVH0gUkVUKQpk
aWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDVkMmVhYjYwZTJiMjIzMTM0
ZDA3ZmJiOWJkMzE4MWJkMzcwZTA4NTcuLmNlYTI3Y2VhZGE2OTc5ZTA5OWFkNTQ5MzQ0NGVmODI0
ZTQwODUxZjggMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMy0wNy0wNSAgTWFyY2VsbyBMaXJhICA8bWFyY2Vsby5saXJhQG9wZW5ib3Nz
YS5vcmc+CisKKyAgICAgICAgTml4IHVwc3RyZWFtaW5nIC0gQWRkaW5nIGJ1aWxkIGZpbGVzIGFu
ZCBzdXBwb3J0aW5nIHNjcmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExODM2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogU291cmNlL0NNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9GaW5kRUdMLmNtYWtlOgorICAgICAgICAq
IFNvdXJjZS9jbWFrZS9GaW5kT3BlbkdMRVMyLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBTb3Vy
Y2UvY21ha2UvT3B0aW9uc0NvbW1vbi5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0
aW9uc05peC5jbWFrZTogQWRkZWQuCisKIDIwMTMtMDctMDEgIEd1c3Rhdm8gTm9yb25oYSBTaWx2
YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY29tPgogCiAgICAgICAgIFtHVEtdIFJlbW92
ZSB1bnN1cHBvcnRlZCBBQyBiYWNrZW5kcwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206691</attachid>
            <date>2013-07-15 15:31:51 -0700</date>
            <delta_ts>2013-10-30 10:44:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118367-20130715193108.patch</filename>
            <type>text/plain</type>
            <size>70791</size>
            <attacher name="Lauro Moura Maranhao Neto">lauro.neto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyNjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBlY2I4NTg4N2RmMjc4
ZWEwOGU4ODM1ZjBlYjI4MTJkMmExZTE3MzNkLi40MTExZGEzMzk0MTE4MzljMjQyYjVhMDIyOTc0
NzRiNGJjNGRjYTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wNy0wNSAg
TWFyY2VsbyBMaXJhICA8bWFyY2Vsby5saXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgTml4
IHVwc3RyZWFtaW5nIC0gQWRkaW5nIGJ1aWxkIGZpbGVzIGFuZCBzdXBwb3J0aW5nIHNjcmlwdHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM2Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6IEFkZGVkLgorICAgICAgICAqIFBsYXRmb3JtTml4LmNtYWtlOiBBZGRlZC4KKwog
MjAxMy0wNi0xNCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCBHVEsgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBmMzgyNTMwZmYyYjljZTUzMWI0NjVk
Yjk0NTgzZjIwZWViMGZkMGEzLi5hYjBjNDJmZDI4MGJjYTdhY2M4M2IzZTk4NzM0YTk4MWQyYmRh
NWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTA3LTA1ICBNYXJjZWxvIExpcmEgIDxtYXJj
ZWxvLmxpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBOaXggdXBzdHJlYW1pbmcgLSBBZGRp
bmcgYnVpbGQgZmlsZXMgYW5kIHN1cHBvcnRpbmcgc2NyaXB0cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MzY3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvRmVhdHVyZURlZmluZXMuaDoKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1OaXguY21ha2U6
IEFkZGVkLgorCiAyMDEzLTA3LTE1ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBNaW5vciBjbGVhbmluZyBvZiBBdG9taWNTdHJpbmc6OmFkZFNsb3dD
YXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggYzcwMzkyNzM2NDIzNjIxZDIzMzBhNzUxOTA0OGEzZmFhOGM3MWQz
Ni4uYzk5ZGE0MTMzOWIzMDNhOTM0OWVkZTljMGUxMGY0NzUxNjc0YTRmYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDEzLTA3LTA1ICBNYXJjZWxvIExpcmEgIDxtYXJjZWxvLmxpcmFA
b3BlbmJvc3NhLm9yZz4KKworICAgICAgICBOaXggdXBzdHJlYW1pbmcgLSBBZGRpbmcgYnVpbGQg
ZmlsZXMgYW5kIHN1cHBvcnRpbmcgc2NyaXB0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBQbGF0Zm9y
bU5peC5jbWFrZTogQWRkZWQuCisKIDIwMTMtMDctMTUgIEx1Y2lhbm8gV29sZiAgPGx1Y2lhbm8u
d29sZkBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFtDb29yZGluYXRlZEdyYXBoaWNzXSBDcmFz
aCBhdCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnVwZGF0ZUltYWdlQmFja2luZwpkaWZmIC0t
Z2l0IGEvU291cmNlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDM3MzZlZWExN2E0NWVmNGExZDc1MjE2NGZhOTI1YTJiODdmOGFhYTQuLjI2OGJhMmUyNDhkYTY3
OWE4ZjNlZjEwYjFlNzlmOTE1OTc4NWUxZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvQ01ha2VMaXN0cy50eHQKQEAgLTUsNiArNSwxMCBAQCBhZGRfc3Vi
ZGlyZWN0b3J5KFdURikKIAogYWRkX3N1YmRpcmVjdG9yeShKYXZhU2NyaXB0Q29yZSkKIAoraWYg
KCIke1BPUlR9IiBTVFJFUVVBTCAiTml4IikKKyAgICBhZGRfc3ViZGlyZWN0b3J5KFBsYXRmb3Jt
KQorZW5kaWYgKCkKKwogaWYgKEVOQUJMRV9BUElfVEVTVFMpCiAgICAgYWRkX3N1YmRpcmVjdG9y
eShjbWFrZS9ndGVzdCkKIGVuZGlmICgpCkBAIC0yNiw2ICszMCwxMyBAQCBXRUJLSVRfSU5DTFVE
RV9DT05GSUdfRklMRVNfSUZfRVhJU1RTKCkKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgU2V0
IGNvbXBpbGVyIGZsYWdzIGZvciBhbGwgdGFyZ2V0cwogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
aWYgKCIke1BPUlR9IiBTVFJFUVVBTCAiTml4IikKKyAgICBpZiAoTk9UIERJU0FCTEVfU1RSSUNU
X0JVSUxEKQorICAgICAgICBzZXQoQURESVRJT05BTF9GTEFHUyBFTkFCTEVfV0VSUk9SKQorICAg
IGVuZGlmICgpCisgICAgV0VCS0lUX1NFVF9FWFRSQV9DT01QSUxFUl9GTEFHUyhQbGF0Zm9ybSAk
e0FERElUSU9OQUxfRkxBR1N9KQorZW5kaWYgKCkKKwogaWYgKCR7UE9SVH0gU1RSRVFVQUwgIkVm
bCIpCiAgICAgc2V0KEFERElUSU9OQUxfRkxBR1MgRU5BQkxFX1dFUlJPUikKIGVuZGlmICgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvUGxhdGZv
cm0vQ01ha2VMaXN0cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFmN2NhYjllMzgzZTU4MjZmOGUxOGM0M2Jj
NWM0OTA2NGI3YWY0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9DTWFrZUxp
c3RzLnR4dApAQCAtMCwwICsxLDUgQEAKK1dFQktJVF9JTkNMVURFX0NPTkZJR19GSUxFU19JRl9F
WElTVFMoKQorCitpbmNsdWRlX2RpcmVjdG9yaWVzKCR7UGxhdGZvcm1fSU5DTFVERVN9KQorYWRk
X2xpYnJhcnkoUGxhdGZvcm0gU1RBVElDICR7UGxhdGZvcm1fU09VUkNFU30pCitzZXRfdGFyZ2V0
X3Byb3BlcnRpZXMoUGxhdGZvcm0gUFJPUEVSVElFUyBGT0xERVIgIlBsYXRmb3JtIikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybU5peC5jbWFrZSBiL1NvdXJjZS9QbGF0Zm9y
bS9QbGF0Zm9ybU5peC5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MmRlNzA1ZjMxOTc2ZDhhMWEyZmM2YTQ5
MDdmY2Q4MTAzMGM2MjRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1BsYXRmb3JtL1BsYXRm
b3JtTml4LmNtYWtlCkBAIC0wLDAgKzEsMjkgQEAKK3NldChQbGF0Zm9ybV9JTkNMVURFUworICAg
IG5peAorICAgICR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzLyAjIEZvciBJbnRSZWN0
LmgKKyAgICAke1dURl9ESVJ9ICMgRm9yIGNvbmZpZy5oCisgICAgJHtDTUFLRV9CSU5BUllfRElS
fSAjIEZvciBjbWFrZWNvbmZpZy5oCispCisKK3NldChQbGF0Zm9ybV9IRUFERVJTCisgICAgbml4
L3B1YmxpYy9QbGF0Zm9ybS5oCisgICAgbml4L3B1YmxpYy9XZWJDb2xvci5oCisgICAgbml4L3B1
YmxpYy9XZWJGRlRGcmFtZS5oCisgICAgbml4L3B1YmxpYy9XZWJSZWN0LmgKKyAgICBuaXgvcHVi
bGljL1dlYlNpemUuaAorICAgIG5peC9wdWJsaWMvV2ViVGhlbWVFbmdpbmUuaAorICAgIG5peC9w
dWJsaWMvV2ViQXVkaW9CdXMuaAorICAgIG5peC9wdWJsaWMvV2ViQXVkaW9EZXZpY2UuaAorICAg
IG5peC9wdWJsaWMvV2ViQ29tbW9uLmgKKyAgICBuaXgvcHVibGljL1dlYkRhdGEuaAorICAgIG5p
eC9wdWJsaWMvV2ViR2FtZXBhZHMuaAorICAgIG5peC9wdWJsaWMvV2ViR2FtZXBhZC5oCisgICAg
bml4L3B1YmxpYy9XZWJWZWN0b3IuaAorKQorCitzZXQoUGxhdGZvcm1fU09VUkNFUworICAgIG5p
eC9zcmMvUGxhdGZvcm0uY3BwCisgICAgbml4L3NyYy9EZWZhdWx0V2ViVGhlbWVFbmdpbmUuY3Bw
CispCisKK2luc3RhbGwoRklMRVMgJHtQbGF0Zm9ybV9IRUFERVJTfSBERVNUSU5BVElPTiBpbmNs
dWRlLyR7V2ViS2l0Ml9PVVRQVVRfTkFNRX0tJHtQUk9KRUNUX1ZFUlNJT05fTUFKT1J9L05peFBs
YXRmb3JtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMuaCBiL1Nv
dXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgKaW5kZXggNzMyOWM5NWY1NDVjMGU0Zjg1MjMw
YTIzNjRjNmVkNmQ2MWI5OTIyYi4uMmEwMjA0ODJiZjA2N2E4NTExZGNkOWE0MGI2OTRiMzQ4YTIy
ZjBjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oCkBAIC0yMzUsNiArMjM1LDExIEBACiAKICNl
bmRpZiAvKiBQTEFURk9STShXSU5fQ0FJUk8pICovCiAKKy8qIC0tLS0tLS0tLSBOSVggcG9ydCAo
VW5peCkgLS0tLS0tLS0tICovCisjaWYgUExBVEZPUk0oTklYKQorI2luY2x1ZGUgIm5peC9GZWF0
dXJlRGVmaW5lc05peC5oIgorI2VuZGlmIC8qIFBMQVRGT1JNKE5JWCkgKi8KKwogLyogLS0tLS0t
LS0tIEVGTCBwb3J0IChVbml4KSAtLS0tLS0tLS0gKi8KICNpZiBQTEFURk9STShFRkwpCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybS5oCmluZGV4IDA4NDkzZjA2YTBhOGJmZTlhY2FmYWE0MzIzZGJlNWI0MWNiMjIxMGYuLjFm
YzhlMjZiNmQyZWJhZWJiODIwOGFlMTJkYWIxYTRlMjkwZmNhODQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAt
NDQ2LDYgKzQ0Niw4IEBACiAjZGVmaW5lIFdURl9QTEFURk9STV9HVEsgMQogI2VsaWYgZGVmaW5l
ZChCVUlMRElOR19CTEFDS0JFUlJZX18pCiAjZGVmaW5lIFdURl9QTEFURk9STV9CTEFDS0JFUlJZ
IDEKKyNlbGlmIGRlZmluZWQoQlVJTERJTkdfTklYX18pCisjaW5jbHVkZSAibml4L1BsYXRmb3Jt
Tml4LmgiCiAjZWxpZiBPUyhEQVJXSU4pCiAjZGVmaW5lIFdURl9QTEFURk9STV9NQUMgMQogI2Vs
aWYgT1MoV0lORE9XUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtTml4LmNt
YWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1OaXguY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjczMmU2
MDgxNmNiODIwYzE5ZTU0MzUyZWJlNTZlZWFmMTg5ZjJkYQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtTml4LmNtYWtlCkBAIC0wLDAgKzEsMTYgQEAKK2xpc3QoQVBQ
RU5EIFdURl9TT1VSQ0VTCisgICAgZ3RrL01haW5UaHJlYWRHdGsuY3BwCisgICAgZ29iamVjdC9H
T3duUHRyLmNwcAorICAgIGdvYmplY3QvR1JlZlB0ci5jcHAKKyAgICBnb2JqZWN0L0dsaWJVdGls
aXRpZXMuY3BwCispCisKK2xpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMKKyAgICBwdGhyZWFkCisg
ICAgJHtHTElCX0xJQlJBUklFU30KKyAgICAke0dMSUJfR0lPX0xJQlJBUklFU30KKykKKworbGlz
dChBUFBFTkQgV1RGX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAke0dMSUJfSU5DTFVERV9ESVJT
fQorKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBiZjBlOTYyZTE1N2MyMGFmODQ4MTE5ZGQ3OWIx
ZmJjZmM0MTNlNjZmLi42NzQ0MjdjNThjMGRkZTdiOWYyYzIxZjA2M2I4ZjFmNDU3ODU3MTUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjg0MCwxNiArMjg0MCwxOCBAQCBlbmRpZiAoKQogCiBp
ZiAoV1RGX1VTRV8zRF9HUkFQSElDUykKICAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVf
RElSRUNUT1JJRVMKLSAgICAgICAgJHtPUEVOR0xfSU5DTFVERV9ESVJ9CiAgICAgICAgICIke1RI
SVJEUEFSVFlfRElSfS9BTkdMRS9zcmMiCiAgICAgICAgICIke1RISVJEUEFSVFlfRElSfS9BTkdM
RS9pbmNsdWRlIgogICAgICAgICAiJHtUSElSRFBBUlRZX0RJUn0vQU5HTEUvaW5jbHVkZS9LSFIi
CiAgICAgICAgICIke1RISVJEUEFSVFlfRElSfS9BTkdMRS9pbmNsdWRlL0dMU0xBTkciCiAgICAg
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUiCiAgICAgKQotICAgIGxp
c3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTCi0gICAgICAgICR7T1BFTkdMX2dsX0xJQlJBUll9
Ci0gICAgKQorCisgICAgIyBOaXggbWF5IHVzZSBlaXRoZXIgT3BlbkdMIG9yIE9wZW5HTEVTMiBo
ZWFkZXJzLCBzbyB3ZSBoYW5kbGUgdGhpcyBhdCBQbGF0Zm9ybU5peC5jbWFrZS4KKyAgICBpZiAo
Tk9UIFBPUlQgU1RSRVFVQUwgIk5peCIpCisgICAgICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5D
TFVERV9ESVJFQ1RPUklFUyAke09QRU5HTF9JTkNMVURFX0RJUn0pCisgICAgICAgIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfTElCUkFSSUVTICR7T1BFTkdMX2dsX0xJQlJBUll9KQorICAgIGVuZGlmICgp
CiAKICAgICBpZiAoQklTT05fVkVSU0lPTiBFUVVBTCAiMi41IikKICAgICAgICAgIyBCaXNvbiAy
LjUgY2FuIG5vdCBjb21waWxlIGdlbmVyYXRlZCBnbHNsYW5nLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1OaXguY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU5peC5j
bWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hMWI0NGJjYjBkMGMyZDU3NWIwOTE1MGNmMGEyMzE0ZmM2OTIxMTU0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1OaXguY21ha2UKQEAg
LTAsMCArMSwyNjUgQEAKK2xpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwor
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uaXgiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3Bs
YXRmb3JtL2NhaXJvIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
byIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUiCisgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2dseCIKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0
Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9uZyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwIgor
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9saW51eCIKKyAgICAiJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyIgorICAgICIke1BMQVRGT1JNX0RJUn0vbml4
LyIKKykKKworbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgcGFnZS9Ub3VjaEFkanVz
dG1lbnQuY3BwCisKKyAgICBwYWdlL25peC9FdmVudEhhbmRsZXJOaXguY3BwCisgICAgcGxhdGZv
cm0vQ3Vyc29yLmNwcAorICAgIHBsYXRmb3JtL0NvbnRleHRNZW51Tm9uZS5jcHAKKyAgICBwbGF0
Zm9ybS9Db250ZXh0TWVudUl0ZW1Ob25lLmNwcAorICAgIHBsYXRmb3JtL25peC9DdXJzb3JOaXgu
Y3BwCisgICAgcGxhdGZvcm0vbml4L0RyYWdEYXRhTml4LmNwcAorICAgIHBsYXRmb3JtL25peC9E
cmFnSW1hZ2VOaXguY3BwCisgICAgcGxhdGZvcm0vbml4L05peEtleWJvYXJkVXRpbGl0aWVzLmNw
cAorICAgIHBsYXRmb3JtL25peC9FcnJvcnNOaXguY3BwCisgICAgcGxhdGZvcm0vZ3RrL0V2ZW50
TG9vcEd0ay5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvRmlsZVN5c3RlbU5peC5jcHAKKyAgICBwbGF0
Zm9ybS9uaXgvTGFuZ3VhZ2VOaXguY3BwCisgICAgcGxhdGZvcm0vbml4L0xvY2FsaXplZFN0cmlu
Z3NOaXguY3BwCisgICAgcGxhdGZvcm0vZ3RrL0xvZ2dpbmdHdGsuY3BwCisgICAgcGxhdGZvcm0v
bml4L01JTUVUeXBlUmVnaXN0cnlOaXguY3BwCisgICAgcGxhdGZvcm0vbml4L1Bhc3RlYm9hcmRO
aXguY3BwCisgICAgcGxhdGZvcm0vbml4L1BsYXRmb3JtU2NyZWVuTml4LmNwcAorICAgIHBsYXRm
b3JtL25peC9QbGF0Zm9ybUtleWJvYXJkRXZlbnROaXguY3BwCisgICAgcGxhdGZvcm0vbml4L1Jl
bmRlclRoZW1lTml4LmNwcAorICAgIHBsYXRmb3JtL25peC9SdW5Mb29wTml4LmNwcAorICAgIHBs
YXRmb3JtL25peC9TY3JvbGxiYXJUaGVtZU5peC5jcHAKKyAgICBwbGF0Zm9ybS9ndGsvU2hhcmVk
QnVmZmVyR3RrLmNwcAorICAgIHBsYXRmb3JtL25peC9Tb3VuZE5peC5jcHAKKyAgICBwbGF0Zm9y
bS9uaXgvU2hhcmVkVGltZXJOaXguY3BwCisgICAgcGxhdGZvcm0vbml4L1RlbXBvcmFyeUxpbmtT
dHVicy5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvV2lkZ2V0Tml4LmNwcAorCisgICAgcGxhdGZvcm0v
Y2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9D
YWlyb1V0aWxpdGllcy5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8u
Y3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhZGllbnRDYWlyby5jcHAKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
SW50UmVjdENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJv
LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9QYXR0ZXJuQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vUGxhdGZvcm1QYXRoQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
UmVmUHRyQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVGlsZUNhaXJvLmNw
cAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RpbGVkQmFja2luZ1N0b3JlQmFja2VuZENh
aXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RyYW5zZm9ybWF0aW9uTWF0cml4
Q2Fpcm8uY3BwCisKKyAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9jYWlyby9JbWFnZURlY29k
ZXJDYWlyby5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL1dPRkZGaWxlRm9ybWF0LmNwcAor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6TkcuY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNw
cAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlw
ZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9HbHlwaFBhZ2VUcmVlTm9kZUZy
ZWVUeXBlLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL1NpbXBsZUZvbnREYXRh
RnJlZVR5cGUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpGYWNl
LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZUNhaXJvLmNw
cAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6U2hhcGVyLmNwcAorCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vRHJhd2luZ0J1ZmZlckNhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL25p
eC9JY29uTml4LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL25peC9JbWFnZU5peC5jcHAKKyAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKKyAgICBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCisKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck1lc2hHZW5lcmF0b3IuY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNw
cAorCisgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmNwcAorICAgIHBs
YXRmb3JtL2ltYWdlLWRlY29kZXJzL2JtcC9CTVBJbWFnZURlY29kZXIuY3BwCisgICAgcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlUmVhZGVyLmNwcAorICAgIHBsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL2dpZi9HSUZJbWFnZURlY29kZXIuY3BwCisgICAgcGxhdGZvcm0vaW1hZ2Ut
ZGVjb2RlcnMvZ2lmL0dJRkltYWdlUmVhZGVyLmNwcAorICAgIHBsYXRmb3JtL2ltYWdlLWRlY29k
ZXJzL2ljby9JQ09JbWFnZURlY29kZXIuY3BwCisgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
anBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcAorICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3Bu
Zy9QTkdJbWFnZURlY29kZXIuY3BwCisgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9X
RUJQSW1hZ2VEZWNvZGVyLmNwcAorICAgIHBsYXRmb3JtL2xpbnV4L0dhbWVwYWREZXZpY2VMaW51
eC5jcHAKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50
ZXJHU3RyZWFtZXIuY3BwCisgICAgcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorICAg
IHBsYXRmb3JtL3RleHQvbml4L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VOaXguY3BwCisK
KyAgICBwbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcAorICAgIHBsdWdpbnMvUGx1Z2luRGVidWcu
Y3BwCisgICAgcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcAorICAgIHBsdWdpbnMvUGx1Z2luU3Ry
ZWFtLmNwcAorICAgIHBsdWdpbnMvUGx1Z2luVmlldy5jcHAKKyAgICBwbHVnaW5zL1BsdWdpblBh
Y2thZ2VOb25lLmNwcAorICAgIHBsdWdpbnMvUGx1Z2luVmlld05vbmUuY3BwCisKKyAgICBlZGl0
aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAKKyAgICBwbGF0Zm9ybS90ZXh0L0xvY2FsZU5vbmUuY3Bw
CisKKyAgICBwbGF0Zm9ybS9uaXgvc3VwcG9ydC9XZWJBdWRpb0J1cy5jcHAKKyAgICBwbGF0Zm9y
bS9uaXgvc3VwcG9ydC9XZWJEYXRhLmNwcAorCisgICAgY3NzL1dlYktpdENTU0FycmF5RnVuY3Rp
b25WYWx1ZS5jcHAKKyAgICBjc3MvV2ViS2l0Q1NTTWl4RnVuY3Rpb25WYWx1ZS5jcHAKKyAgICBj
c3MvV2ViS2l0Q1NTTWF0cml4LmNwcAorICAgIGNzcy9XZWJLaXRDU1NNYXRGdW5jdGlvblZhbHVl
LmNwcAorICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZFNoYWRlci5jcHAKKyAgICByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmNwcAorICAgIHJlbmRlcmluZy9z
dHlsZS9TdHlsZUN1c3RvbUZpbHRlclByb2dyYW1DYWNoZS5jcHAKKykKKworaWYgKFdURl9VU0Vf
T1BFTkdMX0VTXzIpCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgIHBs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5jcHAKKyAgICAgICAg
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwCisg
ICAgKQorICAgIGxpc3QoSU5TRVJUIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUyAwICR7T1BF
TkdMRVMyX0lOQ0xVREVfRElSU30pCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMg
JHtPUEVOR0xFUzJfTElCUkFSSUVTfSkKKyAgICBhZGRfZGVmaW5pdGlvbnMoJHtPUEVOR0xFUzJf
REVGSU5JVElPTlN9KQorZWxzZSAoKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwor
ICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcAor
ICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0wu
Y3BwCisgICAgKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTCisgICAgICAgICR7
T1BFTkdMX2dsX0xJQlJBUll9CisgICAgKQorZW5kaWYgKCkKKworaWYgKFdURl9VU0VfRUdMKQor
ICAgIGxpc3QoSU5TRVJUIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUyAwCisgICAgICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2VnbAorICAgICAgICAke0VHTF9JTkNMVURFX0RJUn0KKyAgICApCisg
ICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0dMQ29udGV4dC5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3Jh
cGhpY3NDb250ZXh0M0RDYWlyby5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9l
Z2wvR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wuY3BwCisgICAgKQorICAgIGxpc3QoQVBQRU5EIFdl
YkNvcmVfTElCUkFSSUVTICR7RUdMX0xJQlJBUll9KQorZWxzZSAoKQorICAgIGxpc3QoQVBQRU5E
IFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9nbHgKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWZsCisgICAg
ICAgICR7WDExX1gxMV9JTkNMVURFX1BBVEh9CisgICAgKQorICAgIGxpc3QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUworICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0
M0RFZmwuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQz
RFByaXZhdGUuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3Jt
Q29udGV4dC5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1T
dXJmYWNlLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZmwvR0xUcmFu
c3BvcnRTdXJmYWNlLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZmwv
R3JhcGhpY3NTdXJmYWNlQ29tbW9uLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9HcmFwaGljc1N1cmZhY2UuY3BwCisKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvc3Vy
ZmFjZXMvZ2x4L1gxMUhlbHBlci5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZ2x4L0dMWENvbnRleHQuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L2dseC9HTFhTdXJmYWNlLmNwcAorICAgICkKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJB
UklFUyAke1gxMV9YMTFfTElCfSAke1gxMV9YY29tcG9zaXRlX0xJQn0gJHtYMTFfWHJlbmRlcl9M
SUJ9KQorZW5kaWYgKCkKKworbGlzdChBUFBFTkQgV2ViQ29yZV9VU0VSX0FHRU5UX1NUWUxFX1NI
RUVUUworICAgICR7V0VCQ09SRV9ESVJ9L2Nzcy9tZWRpYUNvbnRyb2xzTml4LmNzcworICAgICR7
V0VCQ09SRV9ESVJ9L2Nzcy9tZWRpYUNvbnRyb2xzTml4RnVsbHNjcmVlbi5jc3MKKykKKworbGlz
dChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMKKyAgICAke0NBSVJPX0xJQlJBUklFU30KKyAgICAk
e0ZPTlRDT05GSUdfTElCUkFSSUVTfQorICAgICR7RlJFRVRZUEVfTElCUkFSSUVTfQorICAgICR7
SlBFR19MSUJSQVJZfQorICAgICR7TElCWE1MMl9MSUJSQVJJRVN9CisgICAgJHtMSUJYU0xUX0xJ
QlJBUklFU30KKyAgICAke1BOR19MSUJSQVJZfQorICAgICR7U1FMSVRFX0xJQlJBUklFU30KKyAg
ICAke0dMSUJfTElCUkFSSUVTfQorICAgICR7R0xJQl9HSU9fTElCUkFSSUVTfQorICAgICR7R0xJ
Ql9HTU9EVUxFX0xJQlJBUklFU30KKyAgICAke0dMSUJfR09CSkVDVF9MSUJSQVJJRVN9CisgICAg
JHtaTElCX0xJQlJBUklFU30KKyAgICBQbGF0Zm9ybQorICAgICR7SEFSRkJVWlpfTElCUkFSSUVT
fQorKQorCitsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAke0ZP
TlRDT05GSUdfSU5DTFVERV9ESVJ9CisgICAgJHtDQUlST19JTkNMVURFX0RJUlN9CisgICAgJHtG
UkVFVFlQRV9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJYTUwyX0lOQ0xVREVfRElSfQorICAgICR7
TElCWFNMVF9JTkNMVURFX0RJUn0KKyAgICAke1NRTElURV9JTkNMVURFX0RJUn0KKyAgICAke0dM
SUJfSU5DTFVERV9ESVJTfQorICAgICR7WkxJQl9JTkNMVURFX0RJUlN9CisgICAgJHtIQVJGQlVa
Wl9JTkNMVURFX0RJUlN9CispCisKK2FkZF9kZWZpbml0aW9ucygtRERBVEFfRElSPSIke0NNQUtF
X0lOU1RBTExfUFJFRklYfS8ke0RBVEFfSU5TVEFMTF9ESVJ9IikKKworaWYgKEVOQUJMRV9XRUJf
QVVESU8pCisgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICIk
e1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9hdWRpby9uaXgiCisgICkKKyAgbGlzdChBUFBFTkQgV2Vi
Q29yZV9TT1VSQ0VTCisgICAgcGxhdGZvcm0vYXVkaW8vbml4L0F1ZGlvQnVzTml4LmNwcAorICAg
IHBsYXRmb3JtL2F1ZGlvL25peC9BdWRpb0Rlc3RpbmF0aW9uTml4LmNwcAorICAgIHBsYXRmb3Jt
L2F1ZGlvL25peC9GRlRGcmFtZU5peC5jcHAKKyAgKQorICBzZXQoV0VCX0FVRElPX0RJUiAke0NN
QUtFX0lOU1RBTExfUFJFRklYfS8ke0RBVEFfSU5TVEFMTF9ESVJ9L3dlYmF1ZGlvL3Jlc291cmNl
cykKKyAgZmlsZShHTE9CIFdFQl9BVURJT19EQVRBICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9h
dWRpby9yZXNvdXJjZXMvKi53YXYiKQorICBpbnN0YWxsKEZJTEVTICR7V0VCX0FVRElPX0RBVEF9
IERFU1RJTkFUSU9OICR7V0VCX0FVRElPX0RJUn0pCisgIGFkZF9kZWZpbml0aW9ucygtRFVOSU5T
VEFMTEVEX0FVRElPX1JFU09VUkNFU19ESVI9IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2F1ZGlv
L3Jlc291cmNlcyIpCitlbmRpZiAoKQorCitpZiAoRU5BQkxFX0dBTUVQQUQpCisgICAgbGlzdChB
UFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgIHBsYXRmb3JtL25peC9HYW1lcGFkc05peC5j
cHAKKyAgICApCitlbmRpZiAoKQorCitsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICBw
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTb3VwLmNwcAorICAg
IHBsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcAorICAgIHBsYXRmb3JtL25l
dHdvcmsvc291cC9Db29raWVTdG9yYWdlU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvQ3JlZGVudGlhbFN0b3JhZ2VTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9E
TlNTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9HT3duUHRyU291cC5jcHAKKyAg
ICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKKyAg
ICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUHJveHlSZXNvbHZlclNvdXAuY3BwCisgICAgcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Byb3h5U2VydmVyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlSGFuZGxlU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VS
ZXF1ZXN0U291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25z
ZVNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZVNv
dXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBVUklVdGlscy5jcHAKKykKKwor
bGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgIiR7V0VCQ09SRV9E
SVJ9L3BsYXRmb3JtL25ldHdvcmsvc291cCIKKyAgICAke0xJQlNPVVBfSU5DTFVERV9ESVJTfQor
KQorCitsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUworICAgICR7TElCU09VUF9MSUJSQVJJ
RVN9CispCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZEVHTC5jbWFrZSBiL1NvdXJjZS9j
bWFrZS9GaW5kRUdMLmNtYWtlCmluZGV4IDUyNmM1YmEwODU2Mjg4YzgzMjRiYmY1NGY2ZDE3ZWM1
MTc4YzZlYjkuLjA2ZGU1NTZhODVhMTdhMjBhYWIwOWExZmM1OTE1OWU5ODAyOGZhOGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9jbWFrZS9GaW5kRUdMLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9GaW5k
RUdMLmNtYWtlCkBAIC0zNCw0ICszNCw2IEBAIHNldChFR0xfTkFNRVMgJHtFR0xfTkFNRVN9IGVn
bCBFR0wpCiBmaW5kX2xpYnJhcnkoRUdMX0xJQlJBUlkgTkFNRVMgJHtFR0xfTkFNRVN9KQogCiBp
bmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdzKQotRklORF9QQUNLQUdFX0hBTkRM
RV9TVEFOREFSRF9BUkdTKEVHTCBERUZBVUxUX01TRyBFR0xfSU5DTFVERV9ESVIgRUdMX0xJQlJB
UlkpCitmaW5kX3BhY2thZ2VfaGFuZGxlX3N0YW5kYXJkX2FyZ3MoRUdMIERFRkFVTFRfTVNHIEVH
TF9JTkNMVURFX0RJUiBFR0xfTElCUkFSWSkKKworbWFya19hc19hZHZhbmNlZChFR0xfSU5DTFVE
RV9ESVIgRUdMX0xJQlJBUlkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZE9wZW5HTEVT
Mi5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kT3BlbkdMRVMyLmNtYWtlCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRi
NjliOGQyZDExNGI1YjcxM2I3NjRjZTA4NjVhM2Q3NTBkNzcyZWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvY21ha2UvRmluZE9wZW5HTEVTMi5jbWFrZQpAQCAtMCwwICsxLDI1IEBACisjIFRy
eSB0byBmaW5kIE9wZW5HTEVTMi4gT25jZSBkb25lIHRoaXMgd2lsbCBkZWZpbmU6CisjICAgICBP
UEVOR0xFUzJfRk9VTkQKKyMgICAgIE9QRU5HTEVTMl9JTkNMVURFX0RJUlMKKyMgICAgIE9QRU5H
TEVTMl9MSUJSQVJJRVMKKyMgICAgIE9QRU5HTEVTMl9ERUZJTklUSU9OUworCitmaW5kX3BhY2th
Z2UoUGtnQ29uZmlnKQorCitwa2dfY2hlY2tfbW9kdWxlcyhQQ19PUEVOR0xFUzIgZ2xlc3YyKQor
CitpZiAoUENfT1BFTkdMRVMyX0ZPVU5EKQorICAgIHNldChPUEVOR0xFUzJfSU5DTFVERV9ESVJT
ICR7UENfT1BFTkdMRVMyX0lOQ0xVREVfRElSU30pCisgICAgc2V0KE9QRU5HTEVTMl9ERUZJTklU
SU9OUyAke1BDX09QRU5HTEVTMl9DRkxBR1NfT1RIRVJ9KQorZWxzZSAoKQorICAgIGZpbmRfcGF0
aChPUEVOR0xFUzJfSU5DTFVERV9ESVJTIE5BTUVTIEdMRVMyL2dsMi5oKQorZW5kaWYgKCkKKwor
ZmluZF9saWJyYXJ5KE9QRU5HTEVTMl9MSUJSQVJJRVMgR0xFU3YyCisgICAgSElOVFMgJHtQQ19P
UEVOR0xFUzJfTElCUkFSWV9ESVJTfSAke1BDX09QRU5HTEVTMl9MSUJESVJ9CispCisKK2luY2x1
ZGUoRmluZFBhY2thZ2VIYW5kbGVTdGFuZGFyZEFyZ3MpCitmaW5kX3BhY2thZ2VfaGFuZGxlX3N0
YW5kYXJkX2FyZ3MoT3BlbkdMRVMyIERFRkFVTFRfTVNHIE9QRU5HTEVTMl9MSUJSQVJJRVMgT1BF
TkdMRVMyX0lOQ0xVREVfRElSUykKKworbWFya19hc19hZHZhbmNlZChPUEVOR0xFUzJfSU5DTFVE
RV9ESVJTIE9QRU5HTEVTMl9MSUJSQVJZKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlv
bnNDb21tb24uY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0NvbW1vbi5jbWFrZQppbmRleCAw
YWNiY2ZjN2QzMTllYmYwMWVmOTY4ZGVmNWMwOTQzMWQyYjNkNTRkLi4yOTRlMjI4NTdkYTEwOTI0
OTA1Y2EwODk2MmM5MDc1Y2NjZjU0YzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9u
c0NvbW1vbi5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0NvbW1vbi5jbWFrZQpAQCAt
MSw4ICsxLDE2IEBACi1hZGRfZGVmaW5pdGlvbnMoLURCVUlMRElOR19XSVRIX0NNQUtFPTEpCi1h
ZGRfZGVmaW5pdGlvbnMoLURIQVZFX0NPTkZJR19IPTEpCisjIE5peCBkb2Vzbid0IHVzZSBjbWFr
ZWNvbmZpZy5oCitpZiAoTk9UIFBPUlQgU1RSRVFVQUwgIk5peCIpCisgICAgYWRkX2RlZmluaXRp
b25zKC1EQlVJTERJTkdfV0lUSF9DTUFLRT0xKQorICAgIGFkZF9kZWZpbml0aW9ucygtREhBVkVf
Q09ORklHX0g9MSkKK2VuZGlmICgpCisKIAogaWYgKFdURl9PU19VTklYKQogICAgIGFkZF9kZWZp
bml0aW9ucygtRFhQX1VOSVgpCisgICAgI1RPRE86IGNoZWNrIGZvciBYMTEgdGFyZ2V0CisgICAg
aWYgKE5PVCBQT1JUIFNUUkVRVUFMICJOaXgiKQorICAgICAgICBhZGRfZGVmaW5pdGlvbnMoLURN
T1pfWDExKQorICAgIGVuZGlmICgpCiBlbmRpZiAoV1RGX09TX1VOSVgpCiAKICMgQ09ERV9HRU5F
UkFUT1JfUFJFUFJPQ0VTU09SX1dJVEhfTElORU1BUktFUlMgb25seSBtYXR0ZXJzIHdpdGggR0ND
ID49IDQuNy4wLiAgU2luY2UgdGhpcwpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNO
aXguY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc05peC5jbWFrZQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzFh
ODIzYzc3OTVjNTM1ZGUwMTY5MmQ5Y2NlY2YyNDRmMWIwNTZkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL2NtYWtlL09wdGlvbnNOaXguY21ha2UKQEAgLTAsMCArMSwxNDggQEAKKyMgTml4IHVz
ZXMgYSBkaWZmZXJlbnQgd2F5IHRvIHNldC91bnNldCBkZWZhdWx0IGZlYXR1cmVzIGJhc2VkIG9u
IFdLIGJ1ZyAxMTA3MTcgKG5vdCB5ZXQgbGFuZGVkKS4KKyMgU28gdGhlIGltcGxlbWVudGF0aW9u
LCBpLmUuIHRoZSBuZXh0IHR3byBtYWNyb3MsIHdhcyBtb3ZlZCB0byBoZXJlIHRvIGtlZXAgYSBt
aW5pbWFsIGFzIHBvc3NpYmxlCisjIGludGVyZmVyZW5jZSBvbiBvdGhlciBwb3J0cyB1bnRpbCBz
b21lIGRheSB3aGVuL2lmIGJ1ZyAxMTA3MTcgZ2V0IGxhbmRlZC4KKworIyBDb21wdXRlIGFuZCBz
ZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIGZlYXR1cmUgZGVmaW5lcworbWFjcm8oV0VCS0lUX09QVElP
Tl9ERUZBVUxUUyBfcG9ydCkKKyAgICAjIFVzZSB0aGUgcHJlcHJvY2Vzc29yIHRvIGdldCB0aGUg
ZGVmYXVsdCB2YWx1ZXMgZm9yIGZlYXR1cmUgZGVmaW5lcworICAgIEVYRUNfUFJPR1JBTSgiZ2Nj
IC1FIC1QIC1kTSAtREJVSUxESU5HXyR7X3BvcnR9X18gLUkgJHtDTUFLRV9TT1VSQ0VfRElSfS9T
b3VyY2UvV1RGICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCB8
IGdyZXAgJ14jZGVmaW5lIEVOQUJMRV9cXHdcXCsgWzAxXSQnIHwgY3V0IC1kJyAnIC1mMi0zIHwg
c29ydCIgT1VUUFVUX1ZBUklBQkxFIERFRklOSVRJT05TKQorICAgIHN0cmluZyhSRUdFWCBNQVRD
SEFMTCAiKFteXG5dK3xbXlxuXSskKSIgREVGSU5JVElPTlNfTElTVCAke0RFRklOSVRJT05TfSkK
KworICAgIGZvcmVhY2ggKERFRklOSVRJT04gJHtERUZJTklUSU9OU19MSVNUfSkKKyAgICAgICAg
c3RyaW5nKFJFR0VYIFJFUExBQ0UgIl4oW14gXSspIChbXiBdKykkIiAiXFwxIiBERUZJTklUSU9O
X05BTUUgIiR7REVGSU5JVElPTn0iKQorICAgICAgICBzdHJpbmcoUkVHRVggUkVQTEFDRSAiXihb
XiBdKykgKFteIF0rKSQiICJcXDIiIERFRklOSVRJT05fVkFMVUUgIiR7REVGSU5JVElPTn0iKQor
ICAgICAgICBXRUJLSVRfT1BUSU9OX0RFRklORSgke0RFRklOSVRJT05fTkFNRX0gIlRvZ2dsZSAk
e0RFRklOSVRJT05fTkFNRX0iICR7REVGSU5JVElPTl9WQUxVRX0pCisgICAgICAgIG9wdGlvbigk
e0RFRklOSVRJT05fTkFNRX0gIlRvZ2dsZSAke0RFRklOSVRJT05fTkFNRX0iICR7REVGSU5JVElP
Tl9WQUxVRX0pCisgICAgZW5kZm9yZWFjaCAoKQorZW5kbWFjcm8oKQorCisjIFNob3cgV2ViS2l0
IG9wdGlvbnMgc3VtbWFyeSBhbmQgYWRkIC1ERk9PQkFSIHRvIGVhY2ggb3B0aW9uIHdpdGggYSB2
YWx1ZSBkaWZmZXJlbnQgZnJvbSB0aGUgZGVmYXVsdCB2YWx1ZS4KK21hY3JvKFBST0NFU1NfV0VC
S0lUX09QVElPTlMpCisgICAgbWVzc2FnZShTVEFUVVMgIkVuYWJsZWQgZmVhdHVyZXM6IikKKwor
ICAgIHNldChfTUFYX0ZFQVRVUkVfTEVOR1RIIDApCisgICAgZm9yZWFjaCAoX25hbWUgJHtfV0VC
S0lUX0FWQUlMQUJMRV9PUFRJT05TfSkKKyAgICAgICAgc3RyaW5nKExFTkdUSCAke19uYW1lfSBf
TkFNRV9MRU5HVEgpCisgICAgICAgIGlmIChfTkFNRV9MRU5HVEggR1JFQVRFUiBfTUFYX0ZFQVRV
UkVfTEVOR1RIKQorICAgICAgICAgICAgc2V0KF9NQVhfRkVBVFVSRV9MRU5HVEggJHtfTkFNRV9M
RU5HVEh9KQorICAgICAgICBlbmRpZiAoKQorICAgIGVuZGZvcmVhY2ggKCkKKworICAgIHNldChf
U0hPVUxEX1BSSU5UX1BPSU5UUyBPRkYpCisgICAgZm9yZWFjaCAoX25hbWUgJHtfV0VCS0lUX0FW
QUlMQUJMRV9PUFRJT05TfSkKKyAgICAgICAgc3RyaW5nKExFTkdUSCAke19uYW1lfSBfTkFNRV9M
RU5HVEgpCisKKyAgICAgICAgc2V0KF9NRVNTQUdFICIgJHtfbmFtZX0gIikKKworICAgICAgICBp
ZiAoX1NIT1VMRF9QUklOVF9QT0lOVFMpCisgICAgICAgICAgICBmb3JlYWNoIChJR05PUkUgUkFO
R0UgJHtfTkFNRV9MRU5HVEh9ICR7X01BWF9GRUFUVVJFX0xFTkdUSH0pCisgICAgICAgICAgICAg
ICAgc2V0KF9NRVNTQUdFICIke19NRVNTQUdFfSAiKQorICAgICAgICAgICAgZW5kZm9yZWFjaCAo
KQorICAgICAgICAgICAgc2V0KF9TSE9VTERfUFJJTlRfUE9JTlRTIE9GRikKKyAgICAgICAgZWxz
ZSAoKQorICAgICAgICAgICAgZm9yZWFjaCAoSUdOT1JFIFJBTkdFICR7X05BTUVfTEVOR1RIfSAk
e19NQVhfRkVBVFVSRV9MRU5HVEh9KQorICAgICAgICAgICAgICAgIHNldChfTUVTU0FHRSAiJHtf
TUVTU0FHRX0uIikKKyAgICAgICAgICAgIGVuZGZvcmVhY2ggKCkKKyAgICAgICAgICAgIHNldChf
U0hPVUxEX1BSSU5UX1BPSU5UUyBPTikKKyAgICAgICAgZW5kaWYgKCkKKworICAgICAgICBpZiAo
JHtfbmFtZX0pCisgICAgICAgICAgICBsaXN0KEFQUEVORCBGRUFUVVJFX0RFRklORVMgJHtfbmFt
ZX0pCisgICAgICAgICAgICBzZXQoRkVBVFVSRV9ERUZJTkVTX1dJVEhfU1BBQ0VfU0VQQVJBVE9S
ICIke0ZFQVRVUkVfREVGSU5FU19XSVRIX1NQQUNFX1NFUEFSQVRPUn0gJHtfbmFtZX0iKQorICAg
ICAgICBlbmRpZiAoKQorCisgICAgICAgIHNldChfTUVTU0FHRSAiJHtfTUVTU0FHRX0gJHske19u
YW1lfX0iKQorICAgICAgICBtZXNzYWdlKFNUQVRVUyAiJHtfTUVTU0FHRX0iKQorICAgIGVuZGZv
cmVhY2ggKCkKKworICAgICMgQWRkIGFkZF9kZWZpbml0aW9ucyB0byB2YWx1ZXMgZGlmZmVyZW50
IGZyb20gdGhlIGRlZmF1bHRzCisgICAgZm9yZWFjaCAoX25hbWUgJHtfV0VCS0lUX0FWQUlMQUJM
RV9PUFRJT05TfSkKKyAgICAgICAgIyBDb252ZXJ0IHZhbHVlcyBmcm9tIE9OL09GRiB0byAxLzAg
YmVjYXVzZQorICAgICAgICAjIENNYWtlIHNheXMgIjEgRVFVQUwgT04iIGlzIGZhbHNlLgorICAg
ICAgICBpZiAoJHtfV0VCS0lUX0FWQUlMQUJMRV9PUFRJT05TX0lOSVRBTFZBTFVFXyR7X25hbWV9
fSkKKyAgICAgICAgICAgIHNldChfYSAxKQorICAgICAgICBlbHNlICgpCisgICAgICAgICAgICBz
ZXQoX2EgMCkKKyAgICAgICAgZW5kaWYgKCkKKyAgICAgICAgaWYgKCR7JHtfbmFtZX19KQorICAg
ICAgICAgICAgc2V0KF9iIDEpCisgICAgICAgIGVsc2UgKCkKKyAgICAgICAgICAgIHNldChfYiAw
KQorICAgICAgICBlbmRpZiAoKQorICAgICAgICBpZiAoTk9UIF9hIEVRVUFMIF9iKQorICAgICAg
ICAgICAgYWRkX2RlZmluaXRpb25zKCItRCR7X25hbWV9PSR7X2J9IikKKyAgICAgICAgZW5kaWYg
KCkKKyAgICBlbmRmb3JlYWNoICgpCitlbmRtYWNybygpCisKKworc2V0KFBST0pFQ1RfVkVSU0lP
Tl9NQUpPUiAwKQorc2V0KFBST0pFQ1RfVkVSU0lPTl9NSU5PUiAxKQorc2V0KFBST0pFQ1RfVkVS
U0lPTl9QQVRDSCAwKQorc2V0KFBST0pFQ1RfVkVSU0lPTiAke1BST0pFQ1RfVkVSU0lPTl9NQUpP
Un0uJHtQUk9KRUNUX1ZFUlNJT05fTUlOT1J9LiR7UFJPSkVDVF9WRVJTSU9OX1BBVENIfSkKKwor
aWYgKENNQUtFX0NYWF9DT01QSUxFUl9JRCBTVFJFUVVBTCAiR05VIikKKyAgICAjIFVzZSAtZmVt
aXQtc3RydWN0LWRlYnVnLWJhc2Vvbmx5IHRvIHJlZHVjZSB0aGUgc2l6ZSBvZiBXZWJDb3JlIHN0
YXRpYyBsaWJyYXJ5CisgICAgc2V0KENNQUtFX0NYWF9GTEFHU19ERUJVRyAiLWcgLWZlbWl0LXN0
cnVjdC1kZWJ1Zy1iYXNlb25seSIgQ0FDSEUgU1RSSU5HICJGbGFncyB1c2VkIGJ5IHRoZSBjb21w
aWxlciBkdXJpbmcgZGVidWcgYnVpbGRzLiIgRk9SQ0UpCitlbmRpZiAoKQorCitzZXQoU0hBUkVE
X0NPUkUgT0ZGKQorc2V0KEVOQUJMRV9XRUJLSVQgT0ZGKQorc2V0KEVOQUJMRV9XRUJLSVQyIE9G
RikKK3NldChFTkFCTEVfVE9PTFMgT0ZGKQorCitzZXQoV2ViS2l0Ml9PVVRQVVRfTkFNRSBXZWJL
aXROaXgpCisKK2FkZF9kZWZpbml0aW9ucygtREJVSUxESU5HX05JWF9fPTEpCisKK2ZpbmRfcGFj
a2FnZShDYWlybyAxLjEyLjggUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoRm9udGNvbmZpZyAyLjgu
MCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShGcmVldHlwZSBSRVFVSVJFRCkKK2ZpbmRfcGFja2Fn
ZShHTElCIDIuMzYuMCBSRVFVSVJFRCBDT01QT05FTlRTIGdpbyBnb2JqZWN0IGdtb2R1bGUgZ3Ro
cmVhZCkKK2ZpbmRfcGFja2FnZShIYXJmQnV6eikKK2ZpbmRfcGFja2FnZShJQ1UgUkVRVUlSRUQp
CitmaW5kX3BhY2thZ2UoSlBFRyBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShMaWJYbWwyIDIuNiBS
RVFVSVJFRCkKK2ZpbmRfcGFja2FnZShMaWJYc2x0IDEuMS43IFJFUVVJUkVEKQorZmluZF9wYWNr
YWdlKFBORyBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShTcWxpdGUgUkVRVUlSRUQpCitmaW5kX3Bh
Y2thZ2UoVGhyZWFkcyBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShaTElCIFJFUVVJUkVEKQorCisj
IFZhcmlhYmxlcyB0aGF0IG11c3QgZXhpc3RzIG9uIENNYWtlIHNwYWNlCisjIHRvIGtlZXAgY29t
bW9uIENNYWtlIGZpbGVzIHdvcmtpbmcgYXMgZGVzaXJlZCBmb3IgdXMKK3NldChXVEZfVVNFX0lD
VV9VTklDT0RFIE9OKQorc2V0KFdURl9VU0VfTEVWRUxEQiBPTikKK3NldChFTkFCTEVfQVBJX1RF
U1RTIE9GRikKKworV0VCS0lUX09QVElPTl9ERUZBVUxUUygiTklYIikKK1dFQktJVF9PUFRJT05f
REVGSU5FKFdURl9VU0VfT1BFTkdMX0VTXzIgIlVzZSBFR0wgKyBPcGVuR0xFUzIiIE9GRikKK1dF
QktJVF9PUFRJT05fREVGSU5FKFdURl9VU0VfQ1VSTCAiVXNlIGxpYkN1cmwgYXMgbmV0d29yayBi
YWNrZW5kIiBPRkYpCisKK2lmIChXVEZfVVNFX0NVUkwpCisgICAgZmluZF9wYWNrYWdlKENVUkwg
UkVRVUlSRUQpCisgICAgc2V0KFJFUVVJUkVEX05FVFdPUksgbGliY3VybCkKK2Vsc2UgKCkKKyAg
ICBmaW5kX3BhY2thZ2UoTGliU291cCAyLjQyLjAgUkVRVUlSRUQpCisgICAgc2V0KFJFUVVJUkVE
X05FVFdPUksgbGlic291cC0yLjQpCitlbmRpZiAoKQorCitpZiAoV1RGX1VTRV9PUEVOR0xfRVNf
MikKKyAgICBmaW5kX3BhY2thZ2UoT3BlbkdMRVMyIFJFUVVJUkVEKQorICAgIGZpbmRfcGFja2Fn
ZShFR0wgUkVRVUlSRUQpCisgICAgc2V0KFdURl9VU0VfRUdMIE9OKQorICAgIGFkZF9kZWZpbml0
aW9ucygtRFdURl9VU0VfT1BFTkdMX0VTXzI9MSkKK2Vsc2UgKCkKKyAgICBmaW5kX3BhY2thZ2Uo
WDExIFJFUVVJUkVEKQorICAgIGZpbmRfcGFja2FnZShPcGVuR0wgUkVRVUlSRUQpCisgICAgYWRk
X2RlZmluaXRpb25zKC1ESEFWRV9HTFg9MSkKK2VuZGlmICgpCisKK2lmIChOT1QgRU5BQkxFX1NW
RykKKyAgICBzZXQoRU5BQkxFX1NWR19GT05UUyBPRkYpCitlbmRpZiAoKQorCitQUk9DRVNTX1dF
QktJVF9PUFRJT05TKCkKKworCisKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA4NDNkMzAwNWY5M2YzMjk0NjljZDBlZWY3YjgxYjFjNWQxMjBmMjkw
Li5lMzE5YzRlZTQ3OTQxN2U5OTVjOGUyYzQwNDY3ZjJiYWMwMmQ1MWU0IDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzcgQEAKKzIw
MTMtMDctMDUgIE1hcmNlbG8gTGlyYSAgPG1hcmNlbG8ubGlyYUBvcGVuYm9zc2Eub3JnPgorCisg
ICAgICAgIE5peCB1cHN0cmVhbWluZyAtIEFkZGluZyBidWlsZCBmaWxlcyBhbmQgc3VwcG9ydGlu
ZyBzY3JpcHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTgzNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFNjcmlwdHMvYnVpbGQtZHVtcHJlbmRlcnRyZWU6CisgICAgICAgICogU2NyaXB0cy9idWls
ZC13ZWJraXQ6CisgICAgICAgICogU2NyaXB0cy9idWlsZC13ZWJraXR0ZXN0cnVubmVyOgorICAg
ICAgICAqIFNjcmlwdHMvcnVuLWxhdW5jaGVyOgorICAgICAgICAqIFNjcmlwdHMvcnVuLW5peC10
ZXN0czogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzOgorICAgICAg
ICAqIFNjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQ6CisgICAgICAgICogU2NyaXB0
cy91cGRhdGUtd2Via2l0bml4LWxpYnM6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
ZGlycy5wbToKKyAgICAgICAgKGRldGVybWluZUFyY2hpdGVjdHVyZSk6CisgICAgICAgIChhcmd1
bWVudHNGb3JDb25maWd1cmF0aW9uKToKKyAgICAgICAgKGpzY1Byb2R1Y3REaXIpOgorICAgICAg
ICAoYnVpbHREeWxpYlBhdGhGb3JOYW1lKToKKyAgICAgICAgKGRldGVybWluZUlzUXQpOgorICAg
ICAgICAoZGV0ZXJtaW5lSXNOaXgpOgorICAgICAgICAoaXNOaXgpOgorICAgICAgICAoaXNBcHBs
ZVdlYktpdCk6CisgICAgICAgIChsYXVuY2hlclBhdGgpOgorICAgICAgICAobGF1bmNoZXJOYW1l
KToKKyAgICAgICAgKGNoZWNrUmVxdWlyZWRTeXN0ZW1Db25maWcpOgorICAgICAgICAoY29weUlu
c3BlY3RvckZyb250ZW5kRmlsZXMpOgorICAgICAgICAoamhidWlsZFdyYXBwZXJQcmVmaXhJZk5l
ZWRlZCk6CisgICAgICAgIChidWlsZENNYWtlUHJvamVjdE9yRXhpdCk6CisgICAgICAgIChjbWFr
ZUJhc2VkUG9ydE5hbWUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZp
Zy9wb3J0cy5weToKKyAgICAgICAgKERlcHJlY2F0ZWRQb3J0LnBvcnQpOgorICAgICAgICAoRGVw
cmVjYXRlZFBvcnQubWFrZUFyZ3MpOgorICAgICAgICAoRWZsV0syUG9ydC5idWlsZF93ZWJraXRf
Y29tbWFuZCk6CisgICAgICAgIChOaXhQb3J0KToKKyAgICAgICAgKE5peFBvcnQuYnVpbGRfd2Vi
a2l0X2NvbW1hbmQpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5
OgorICAgICAgICAocGxhdGZvcm1fb3B0aW9ucyk6CisgICAgICAgIChQb3J0RmFjdG9yeSk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L25peC5weTogQWRkZWQuCisgICAgICAgIChO
aXhQb3J0KToKKyAgICAgICAgKE5peFBvcnQuX3drMl9wb3J0X25hbWUpOgorICAgICAgICAoTml4
UG9ydC5kZXRlcm1pbmVfZnVsbF9wb3J0X25hbWUpOgorICAgICAgICAoTml4UG9ydC5fX2luaXRf
Xyk6CisgICAgICAgIChOaXhQb3J0Ll9wb3J0X2ZsYWdfZm9yX3NjcmlwdHMpOgorICAgICAgICAo
Tml4UG9ydC5zZXR1cF90ZXN0X3J1bik6CisgICAgICAgIChOaXhQb3J0LnNldHVwX2Vudmlyb25f
Zm9yX3NlcnZlcik6CisgICAgICAgIChOaXhQb3J0LmRlZmF1bHRfdGltZW91dF9tcyk6CisgICAg
ICAgIChOaXhQb3J0LmNsZWFuX3VwX3Rlc3RfcnVuKToKKyAgICAgICAgKE5peFBvcnQuX2dlbmVy
YXRlX2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKToKKyAgICAgICAgKE5peFBvcnQuX3BhdGhfdG9f
ZHJpdmVyKToKKyAgICAgICAgKE5peFBvcnQuX3BhdGhfdG9faW1hZ2VfZGlmZik6CisgICAgICAg
IChOaXhQb3J0Ll9pbWFnZV9kaWZmX2NvbW1hbmQpOgorICAgICAgICAoTml4UG9ydC5fc2VhcmNo
X3BhdGhzKToKKyAgICAgICAgKE5peFBvcnQuc2hvd19yZXN1bHRzX2h0bWxfZmlsZSk6CisgICAg
ICAgIChOaXhQb3J0Ll9wb3J0X3NwZWNpZmljX2V4cGVjdGF0aW9uc19maWxlcyk6CisgICAgICAg
IChOaXhQb3J0LmRlZmF1bHRfYmFzZWxpbmVfc2VhcmNoX3BhdGgpOgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvcG9ydC9uaXhfdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAoTml4UG9y
dFRlc3QpOgorICAgICAgICAoTml4UG9ydFRlc3QuX2Fzc2VydF9zZWFyY2hfcGF0aCk6CisgICAg
ICAgIChOaXhQb3J0VGVzdC5fYXNzZXJ0X2V4cGVjdGF0aW9uc19maWxlcyk6CisgICAgICAgIChO
aXhQb3J0VGVzdC50ZXN0X2Jhc2VsaW5lX3NlYXJjaF9wYXRoKToKKyAgICAgICAgKE5peFBvcnRU
ZXN0LnRlc3RfZXhwZWN0YXRpb25zX2ZpbGVzKToKKyAgICAgICAgKE5peFBvcnRUZXN0LnRlc3Rf
ZGVmYXVsdF90aW1lb3V0X21zKToKKyAgICAgICAgKiBqaGJ1aWxkL2poYnVpbGQtd3JhcHBlcjoK
KyAgICAgICAgKGRldGVybWluZV9wbGF0Zm9ybSk6CisgICAgICAgICogbml4L2NvbW1vbi5weTog
QWRkZWQuCisgICAgICAgIChzY3JpcHRfcGF0aCk6CisgICAgICAgICh0b3BfbGV2ZWxfcGF0aCk6
CisgICAgICAgICogbml4L2poYnVpbGQubW9kdWxlczogQWRkZWQuCisgICAgICAgICogbml4L2po
YnVpbGRyYzogQWRkZWQuCisgICAgICAgICogbml4L3J1bi13aXRoLWpoYnVpbGQ6IEFkZGVkLgor
CiAyMDEzLTA3LTE1ICBCcmlhbiBIb2x0ICA8YnJpYW4uaG9sdEBzYW1zdW5nLmNvbT4KIAogICAg
ICAgICBjaGVjay13ZWJraXQtc3R5bGU6IElnbm9yZSBmYWxzZSBwb3NpdGl2ZTogSW5zdGFuY2Ug
b2YgJ1BvcGVuJyBoYXMgbm8gJ3BpZCcgbWVtYmVyCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L2J1aWxkLWR1bXByZW5kZXJ0cmVlIGIvVG9vbHMvU2NyaXB0cy9idWlsZC1kdW1wcmVuZGVydHJl
ZQppbmRleCAxZmY3NWY3ZDNiYzA4ZmJhYWE3ZjM1Zjg5NjkzZGE5ZDgyNjM3NWU1Li45MWY1NDgy
MWVhYzY4ODM1M2ZmMjk0YWY5NWEwYmI3Nzg4YTkxNDkxIDEwMDc1NQotLS0gYS9Ub29scy9TY3Jp
cHRzL2J1aWxkLWR1bXByZW5kZXJ0cmVlCisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtZHVtcHJl
bmRlcnRyZWUKQEAgLTcwLDcgKzcwLDcgQEAgaWYgKGlzQXBwbGVNYWNXZWJLaXQoKSkgewogfSBl
bHNpZiAoaXNBcHBsZVdpbldlYktpdCgpKSB7CiAgICAgbXkgJGRydFNvbHV0aW9uUGF0aCA9ICJE
dW1wUmVuZGVyVHJlZS52Y3hwcm9qL0R1bXBSZW5kZXJUcmVlLnNsbiI7CiAgICAgJHJlc3VsdCA9
IGJ1aWxkVmlzdWFsU3R1ZGlvUHJvamVjdCgkZHJ0U29sdXRpb25QYXRoLCAkY2xlYW4pOwotfSBl
bHNpZiAoaXNRdCgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSkgeworfSBlbHNpZiAoaXNRdCgpIHx8
IGlzR3RrKCkgfHwgaXNFZmwoKSB8fCBpc05peCgpKSB7CiAgICAgIyBRdCwgR3RrIGFuZCBFRkwg
YnVpbGQgZXZlcnl0aGluZyBpbiBvbmUgc2hvdC4gTm8gbmVlZCB0byBidWlsZCBhbnl0aGluZyBo
ZXJlLgogICAgICRyZXN1bHQgPSAwOwogfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvYnVpbGQtd2Via2l0IGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKaW5kZXggODdjNTA0
MzMwYTlkZDY1NDQ0Nzk3ODVjNTE4YmZjMTI4NDg3OTc4MS4uNjNmNGMwMDI0MjUxNmI5NTY2MDk4
NGI5N2NlNjBhMTE2YTRlYzBjZSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJr
aXQKKysrIGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKQEAgLTM2LDcgKzM2LDcgQEAgdXNl
IEZpbGU6OkJhc2VuYW1lOwogdXNlIEZpbGU6OkZpbmQ7CiB1c2UgRmlsZTo6U3BlYzsKIHVzZSBG
aW5kQmluOwotdXNlIEdldG9wdDo6TG9uZyBxdyg6Y29uZmlnIHBhc3NfdGhyb3VnaCk7Cit1c2Ug
R2V0b3B0OjpMb25nIHF3KDpjb25maWcgcGFzc190aHJvdWdoIG5vX2F1dG9fYWJicmV2KTsKIHVz
ZSBsaWIgJEZpbmRCaW46OkJpbjsKIHVzZSB3ZWJraXRkaXJzOwogdXNlIHdlYmtpdHBlcmw6OkZl
YXR1cmVMaXN0IHF3KGdldEZlYXR1cmVPcHRpb25MaXN0KTsKQEAgLTYyLDYgKzYyLDggQEAgbXkg
JG5vV2ViS2l0MSA9IDA7CiBteSAkbm9XZWJLaXQyID0gMDsKIG15ICRjb3ZlcmFnZVN1cHBvcnQg
PSAwOwogbXkgJHN0YXJ0VGltZSA9IHRpbWUoKTsKK215ICRjdXJsID0gMDsKK215ICRvcGVuZ2xl
czIgPSAwOwogCiBteSBAZmVhdHVyZXMgPSBnZXRGZWF0dXJlT3B0aW9uTGlzdCgpOwogCkBAIC04
Nyw2ICs4OSwzOCBAQCBpZiAoaXNRdCgpKSB7CiAgICAgfQogfQogCisjIFVwZGF0ZSBkZWZhdWx0
cyBmb3IgdGhlIE5peCBwb3J0LgoraWYgKGlzTml4KCkpIHsKKyAgICAjIEluc3RlYWQgb2YgdXNl
IEZlYXR1cmVMaXN0LnBtIHRvIGxpc3QgZW5hYmxlZCBmZWF0dXJlcywgdGVsbCB0aGUgY29tcGls
ZXIgdG8KKyAgICAjIHBhcnNlIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYW5kIGdldCB0aGUg
ZGVmYXVsdCB2YWx1ZXMgb2YgYWxsIGZlYXR1cmUgZmxhZ3MKKyAgICAjIGZyb20gdGhlIHJlc3Vs
dC4KKyAgICBteSAkcG9ydERlZmluZSA9ICJCVUlMRElOR18iLnVjKGNtYWtlQmFzZWRQb3J0TmFt
ZSgpKS4iX18iOworICAgIG15ICRkZWZpbml0aW9ucyA9IGBnY2MgLUUgLVAgLWRNIC1EJHBvcnRE
ZWZpbmUgLUkgU291cmNlL1dURiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIHwgZ3JlcCAnXiNk
ZWZpbmUgRU5BQkxFX1xcd1xcKyBcWzAxXF1cJCcgfCBjdXQgLWQnICcgLWYyLTNgOworCisgICAg
bXkgJWZlYXR1cmVEZWZhdWx0czsKKyAgICBmb3JlYWNoIChzcGxpdCgvXG4vLCAkZGVmaW5pdGlv
bnMpKSB7CisgICAgICAgIG15IEBtYWNyb0RlZmluaXRpb24gPSBzcGxpdCgvIC8pOworICAgICAg
ICAkZmVhdHVyZURlZmF1bHRzeyRtYWNyb0RlZmluaXRpb25bMF19ID0gJG1hY3JvRGVmaW5pdGlv
blsxXTsKKyAgICB9CisKKyAgICBAZmVhdHVyZXMgPSAoKTsKKyAgICBmb3JlYWNoIChzb3J0IGtl
eXMgJWZlYXR1cmVEZWZhdWx0cykgeworICAgICAgICBuZXh0IGlmICghL15FTkFCTEUvKTsKKyAg
ICAgICAgbXkgJG9wdGlvbk5hbWUgPSBsYyAkXzsKKyAgICAgICAgJG9wdGlvbk5hbWUgPX4gcy9e
ZW5hYmxlXy8vOworICAgICAgICAkb3B0aW9uTmFtZSA9fiBzL18vLS9nOworICAgICAgICBteSAk
ZGVzY05hbWUgPSAkb3B0aW9uTmFtZTsKKyAgICAgICAgJGRlc2NOYW1lID1+IHMvLS8gL2c7CisK
KyAgICAgICAgcHVzaCBAZmVhdHVyZXMsIHsKKyAgICAgICAgICAgIG9wdGlvbiA9PiAkb3B0aW9u
TmFtZSwKKyAgICAgICAgICAgIGRlc2MgPT4gIlRvZ2dsZSAkZGVzY05hbWUgc3VwcG9ydCIsCisg
ICAgICAgICAgICBkZWZpbmUgPT4gJF8sCisgICAgICAgICAgICBkZWZhdWx0ID0+ICRmZWF0dXJl
RGVmYXVsdHN7JF99CisgICAgICAgIH07CisgICAgfQorfQorCiAjIEFkZGl0aW9uYWwgZW52aXJv
bm1lbnQgcGFyYW1ldGVycwogcHVzaCBAQVJHViwgc3BsaXQoLyAvLCAkRU5WeydCVUlMRF9XRUJL
SVRfQVJHUyd9KSBpZiAoJEVOVnsnQlVJTERfV0VCS0lUX0FSR1MnfSk7CiAKQEAgLTExNiw2ICsx
NTAsNyBAQCBVc2FnZTogJHByb2dyYW1OYW1lIFtvcHRpb25zXSBbb3B0aW9ucyB0byBwYXNzIHRv
IGJ1aWxkIHN5c3RlbV0KIAogICAtLWJsYWNrYmVycnkgICAgICAgICAgICAgICAgICAgICAgQnVp
bGQgdGhlIEJsYWNrQmVycnkgcG9ydCBvbiBNYWMvTGludXgKICAgLS1lZmwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEJ1aWxkIHRoZSBFRkwgcG9ydAorICAtLW5peCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQnVpbGQgdGhlIE5peCBwb3J0CiAgIC0tZ3RrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBCdWlsZCB0aGUgR1RLKyBwb3J0CiAgIC0tcXQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBCdWlsZCB0aGUgUXQgcG9ydAogICAtLXdpbmNhaXJvICAgICAgICAgICAg
ICAgICAgICAgICAgQnVpbGQgdXNpbmcgQ2Fpcm8gKHJhdGhlciB0aGFuIENvcmVHcmFwaGljcykg
b24gV2luZG93cwpAQCAtMTM3LDYgKzE3Miw5IEBAIFVzYWdlOiAkcHJvZ3JhbU5hbWUgW29wdGlv
bnNdIFtvcHRpb25zIHRvIHBhc3MgdG8gYnVpbGQgc3lzdGVtXQogICAtLW5vLXdlYmtpdDEgICAg
ICAgICAgICAgICAgICAgICAgT21pdCBXZWJLaXQxIGNvZGUgZnJvbSB0aGUgYnVpbGQgKFF0L0VG
TC9HVEsgb25seSkKICAgLS1uby13ZWJraXQyICAgICAgICAgICAgICAgICAgICAgIE9taXQgV2Vi
S2l0MiBjb2RlIGZyb20gdGhlIGJ1aWxkCiAKKyAgLS1jdXJsICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFVzZSBsaWJDdXJsIGFzIG5ldHdvcmsgYmFja2VuZCAoTml4IG9ubHkpCisgIC0tb3Bl
bmdsZXMyICAgICAgICAgICAgICAgICAgICAgICBVc2UgRUdMIGFuZCBPcGVuR0xFUzIgaW5zdGVh
ZCBvZiBHTFggKE5peCBvbmx5KQorCiBFT0YKIAogbXkgJW9wdGlvbnMgPSAoCkBAIC0xNTIsNiAr
MTkwLDggQEAgbXkgJW9wdGlvbnMgPSAoCiAgICAgJ25vLXdlYmtpdDEnID0+IFwkbm9XZWJLaXQx
LAogICAgICduby13ZWJraXQyJyA9PiBcJG5vV2ViS2l0MiwKICAgICAnY292ZXJhZ2UnID0+IFwk
Y292ZXJhZ2VTdXBwb3J0LAorICAgICdjdXJsJyA9PiBcJGN1cmwsCisgICAgJ29wZW5nbGVzMicg
PT4gXCRvcGVuZ2xlczIsCiApOwogCiAjIEJ1aWxkIHVzYWdlIHRleHQgYW5kIG9wdGlvbnMgbGlz
dCBmcm9tIGZlYXR1cmVzCkBAIC0yNzQsNiArMzE0LDI0IEBAIGlmIChpc0luc3BlY3RvckZyb250
ZW5kKCkpIHsKIAogbXkgJHJlc3VsdCA9IDA7CiAKK2lmIChpc05peCgpKSB7CisgICAgaWYgKCRu
b1dlYktpdDIpIHsKKyAgICAgICAgcHJpbnQgU1RERVJSICJOaXggaXMgYSBXZWJLaXQyIHBvcnQs
IHlvdSBjYW4ndCBkaXNhYmxlIFdlYktpdDIgb24gaXQhXG4iOworICAgICAgICBleGl0IDE7Cisg
ICAgfQorCisgICAgIyBCeSBkZWZhdWx0IHdlIGJ1aWxkIHVzaW5nIGFsbCBvZiB0aGUgYXZhaWxh
YmxlIENQVXMuCisgICAgJG1ha2VBcmdzIC49ICgkbWFrZUFyZ3MgPyAiICIgOiAiIikgLiAiLWoi
IC4gbnVtYmVyT2ZDUFVzKCkgaWYgJG1ha2VBcmdzICF+IC8talxzKlxkKy87CisgICAgJGNtYWtl
QXJncyA9ICItRFdURl9VU0VfQ1VSTD1PTiAiIC4gJGNtYWtlQXJncyBpZiAkY3VybDsKKyAgICAk
Y21ha2VBcmdzID0gIi1EV1RGX1VTRV9PUEVOR0xfRVNfMj1PTiAiIC4gJGNtYWtlQXJncyBpZiAk
b3BlbmdsZXMyOworCisgICAgIyBXZSByZW1vdmUgQ01ha2VDYWNoZSB0byBhdm9pZCB0aGUgYm90
cyB0byByZXVzZSBjYWNoZWQgZmxhZ3Mgd2hlbgorICAgICMgd2UgZW5hYmxlIG5ldyBmZWF0dXJl
cy4gVGhpcyBmb3JjZXMgYSByZWNvbmZpZ3VyYXRpb24uCisgICAgcmVtb3ZlQ01ha2VDYWNoZSgp
OworCisgICAgYnVpbGRDTWFrZVByb2plY3RPckV4aXQoJGNsZWFuLCAiTml4IiwgJHByZWZpeFBh
dGgsICRtYWtlQXJncywgKGNtYWtlQmFzZWRQb3J0QXJndW1lbnRzKCksIGNNYWtlQXJnc0Zyb21G
ZWF0dXJlcygpKSwgJGNtYWtlQXJncyk7Cit9CisKIGlmIChpc0VmbCgpKSB7CiAgICAgIyBCeSBk
ZWZhdWx0IHdlIGJ1aWxkIHVzaW5nIGFsbCBvZiB0aGUgYXZhaWxhYmxlIENQVXMuCiAgICAgJG1h
a2VBcmdzIC49ICgkbWFrZUFyZ3MgPyAiICIgOiAiIikgLiAiLWoiIC4gbnVtYmVyT2ZDUFVzKCkg
aWYgJG1ha2VBcmdzICF+IC8talxzKlxkKy87CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2J1
aWxkLXdlYmtpdHRlc3RydW5uZXIgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdHRlc3RydW5u
ZXIKaW5kZXggZTViMjM1NDViNzdlNmU3OGI0Y2U0MTY5ZjQyODdhODVjNGJiNWMyOS4uYzhhMzQy
YjkwNjE0NTQzYTZjNDEyOGY4NGNlMDEzN2MxNjY1MDViNSAxMDA3NTUKLS0tIGEvVG9vbHMvU2Ny
aXB0cy9idWlsZC13ZWJraXR0ZXN0cnVubmVyCisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Vi
a2l0dGVzdHJ1bm5lcgpAQCAtNjMsNyArNjMsNyBAQCBpZiAoaXNBcHBsZU1hY1dlYktpdCgpKSB7
CiAgICAgJHJlc3VsdCA9IGJ1aWxkWENvZGVQcm9qZWN0KCJXZWJLaXRUZXN0UnVubmVyIiwgJGNs
ZWFuLCBYY29kZU9wdGlvbnMoKSwgQEFSR1YpOwogfSBlbHNpZiAoaXNBcHBsZVdpbldlYktpdCgp
KSB7CiAgICAgJHJlc3VsdCA9IGJ1aWxkVmlzdWFsU3R1ZGlvUHJvamVjdCgiV2ViS2l0VGVzdFJ1
bm5lci5zbG4iLCAkY2xlYW4pOwotfSBlbHNpZiAoaXNRdCgpIHx8IGlzR3RrKCkgfHwgaXNFZmwo
KSkgeworfSBlbHNpZiAoaXNRdCgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSB8fCBpc05peCgpKSB7
CiAgICAgIyBRdCBhbmQgR1RLKyBidWlsZCBldmVyeXRoaW5nIGluIG9uZSBzaG90LiBObyBuZWVk
IHRvIGJ1aWxkIGFueXRoaW5nIGhlcmUuCiAgICAgJHJlc3VsdCA9IDA7CiB9IGVsc2UgewpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9ydW4tbGF1bmNoZXIgYi9Ub29scy9TY3JpcHRzL3J1bi1s
YXVuY2hlcgppbmRleCA2Njg4NmZlMGIxOTc0YjIzMTkzODQxZGM3Yzk3ZTM4MTk4Yjg5OWM3Li5l
ODM5YjVhYzM0ZjkxNTFjOWU0YjBjZTZkZmM3MmUyYWU1ZGFmNzJiIDEwMDc1NQotLS0gYS9Ub29s
cy9TY3JpcHRzL3J1bi1sYXVuY2hlcgorKysgYi9Ub29scy9TY3JpcHRzL3J1bi1sYXVuY2hlcgpA
QCAtNzMsNiArNzMsMTIgQEAgaWYgKGlzUXQoKSkgewogICAgICAgICB1bnNoaWZ0KEBBUkdWLCAo
Ii0tZ3RrIiwgInJ1biIpKTsKICAgICB9CiAKKyAgICBpZiAoaXNOaXgoKSkgeworICAgICAgICB1
bnNoaWZ0KEBBUkdWLCBjYXRkaXIoJGxhdW5jaGVyUGF0aCwgImJpbiIsICJNaW5pQnJvd3NlciIp
KTsKKyAgICAgICAgJGxhdW5jaGVyUGF0aCA9IGNhdGRpcihzb3VyY2VEaXIoKSwgIlRvb2xzIiwg
ImpoYnVpbGQiLCAiamhidWlsZC13cmFwcGVyIik7CisgICAgICAgIHVuc2hpZnQoQEFSR1YsICgi
LS1uaXgiLCAicnVuIikpOworICAgIH0KKwogICAgIGlmIChpc0VmbCgpKSB7CiAgICAgICAgIGlm
IChpc1dLMigpKSB7CiAgICAgICAgICAgICB1bnNoaWZ0KEBBUkdWLCBjYXRkaXIoJGxhdW5jaGVy
UGF0aCwgImJpbiIsICJNaW5pQnJvd3NlciIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
cnVuLW5peC10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvcnVuLW5peC10ZXN0cwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
Nzk4ZTEwOTM0NzEyOWZkZWVhZTBlZDllNWU2ZThjYTRhNDZlNGY4Ci0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvU2NyaXB0cy9ydW4tbml4LXRlc3RzCkBAIC0wLDAgKzEsNDQgQEAKKyMhL3Vzci9i
aW4vcGVybCAtdworIyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgSW50ZWwgQ29ycG9yYXRpb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCit1
c2Ugc3RyaWN0OwordXNlIEZpbmRCaW47Cit1c2UgbGliICRGaW5kQmluOjpCaW47Cit1c2Ugd2Vi
a2l0ZGlyczsKKworc2V0Q29uZmlndXJhdGlvbigpOworCisjIE1hbnVhbGx5IGFkZCB0aGlzIGZv
ciBqaGJ1aWxkV3JhcHBlclByZWZpeElmTmVlZGVkKCkuCitwdXNoKEBBUkdWLCAiLS1uaXgiKTsK
KworIyBUZWxsIENUZXN0IHRvIGR1bXAgZ3Rlc3Qgb3V0cHV0IGluIGNhc2Ugb2YgZmFpbHVyZS4K
KyRFTlZ7Q1RFU1RfT1VUUFVUX09OX0ZBSUxVUkV9ID0gIjEiOworCitidWlsZENNYWtlUHJvamVj
dE9yRXhpdCgwLCAiTml4IiwgdW5kZWYsICJ0ZXN0IiwgY21ha2VCYXNlZFBvcnRBcmd1bWVudHMo
KSk7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMgYi9Ub29scy9T
Y3JpcHRzL3J1bi13ZWJraXQtdGVzdHMKaW5kZXggZmQ1MDdlNDlhOWFlM2E3NjM1NzNiN2QwMDQ0
OTgzOThhNDVjMThhNi4uZGM2ZmZiZGExNWVkMWJmZmYzZWM2ZTljOTcyN2QxYWIyMjk3NWI3MCAx
MDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzCisrKyBiL1Rvb2xzL1Nj
cmlwdHMvcnVuLXdlYmtpdC10ZXN0cwpAQCAtOTAsNiArOTAsOCBAQCBpZiAoaXNRdCgpKSB7CiAg
ICAgcHVzaChAQVJHViwgIi0tZ3RrIik7CiB9IGVsc2lmIChpc0VmbCgpKSB7CiAgICAgcHVzaChA
QVJHViwgIi0tZWZsIik7Cit9IGVsc2lmIChpc05peCgpKSB7CisgICAgcHVzaChAQVJHViwgIi0t
bml4Iik7CiB9IGVsc2lmIChpc1dpbkNhaXJvKCkpIHsKICAgICBwdXNoKEBBUkdWLCAiLS13aW5j
YWlybyIpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWxpYnMt
amhidWlsZCBiL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQKaW5kZXgg
NzRkZDdiNmM1YjBmNjk4YWQxYjg3NWJmYzJiZjk5OTA4ZDA1NjYxMS4uZGIwNmRjNzA4ZGJhNGUx
M2I2YTZjZDFjYjYwN2M4MjM2MjEyYjZiYSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy91cGRh
dGUtd2Via2l0LWxpYnMtamhidWlsZAorKysgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQt
bGlicy1qaGJ1aWxkCkBAIC0yMywxNSArMjMsMTcgQEAgdXNlIEdldG9wdDo6TG9uZzsKIAogbXkg
JHBsYXRmb3JtRWZsID0gMDsKIG15ICRwbGF0Zm9ybUd0ayA9IDA7CitteSAkcGxhdGZvcm1OaXgg
PSAwOwogCiBteSAkZ2V0T3B0aW9uc1Jlc3VsdCA9IEdldE9wdGlvbnMoCiAgICAgJ2VmbCcgPT4g
XCRwbGF0Zm9ybUVmbCwKLSAgICAnZ3RrJyA9PiBcJHBsYXRmb3JtR3RrCisgICAgJ2d0aycgPT4g
XCRwbGF0Zm9ybUd0aywKKyAgICAnbml4JyA9PiBcJHBsYXRmb3JtTml4CiAgICAgKTsKIAogbXkg
JHBsYXRmb3JtID0gIiI7CiBpZiAoISRnZXRPcHRpb25zUmVzdWx0KSB7Ci0gICAgZGllICJObyBw
bGF0Zm9ybSBzcGVjaWZpZWQgZm9yICIgLiBiYXNlbmFtZSgkMCkgLiIuIFVzZSAtLWd0ayBvciAt
LWVmbC5cbiI7CisgICAgZGllICJObyBwbGF0Zm9ybSBzcGVjaWZpZWQgZm9yICIgLiBiYXNlbmFt
ZSgkMCkgLiIuIFVzZSAtLWd0aywgLS1lZmwgb3IgLS1uaXguXG4iOwogfSBlbHNlIHsKICAgICBp
ZiAoJHBsYXRmb3JtRWZsKSB7CiAgICAgICAgICRwbGF0Zm9ybSA9ICJlZmwiOwpAQCAtMzksNiAr
NDEsOSBAQCBpZiAoISRnZXRPcHRpb25zUmVzdWx0KSB7CiAgICAgaWYgKCRwbGF0Zm9ybUd0aykg
ewogICAgICAgICAkcGxhdGZvcm0gPSAiZ3RrIjsKICAgICB9CisgICAgaWYgKCRwbGF0Zm9ybU5p
eCkgeworICAgICAgICAkcGxhdGZvcm0gPSAibml4IjsKKyAgICB9CiB9CiAKIHN1YiBnZXRNRDVI
YXNoRm9yRmlsZSgkKQpAQCAtMTE4LDcgKzEyMyw3IEBAIGRlbGV0ZSAkRU5We0FSX0ZMQUdTfSBp
ZiBleGlzdHMgJEVOVntBUl9GTEFHU307CiAKIGNoZGlyKHJlbGF0aXZlU2NyaXB0c0RpcigpIC4g
Ii8uLi9qaGJ1aWxkIikgb3IgZGllICQhOwogCi1teSAlcHJldHR5UGxhdGZvcm0gPSAoICJlZmwi
ID0+ICJFRkwiLCAiZ3RrIiA9PiAiR1RLKyIgKTsKK215ICVwcmV0dHlQbGF0Zm9ybSA9ICggImVm
bCIgPT4gIkVGTCIsICJndGsiID0+ICJHVEsrIiwgIm5peCIgPT4gIk5peCIgKTsKIAogaWYgKC1l
IGdldEpoYnVpbGRQYXRoKCkgJiYgamhidWlsZENvbmZpZ3VyYXRpb25DaGFuZ2VkKCkpIHsKICAg
ICBjbGVhbkpoYnVpbGQoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtp
dG5peC1saWJzIGIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0bml4LWxpYnMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTNmMzZiZGFmNzFlOThmNmEyODg3NWE5NGMyYzRiM2MyYmNlZWEzNQotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdG5peC1saWJzCkBAIC0wLDAgKzEsMjQg
QEAKKyMhL3Vzci9iaW4vcGVybCAtdworIyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9y
YXRpb24KKyMgQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKS4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisj
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN
QSAgMDIxMTAtMTMwMSAgVVNBCisKK3VzZSBGaW5kQmluOwordXNlIGxpYiAkRmluZEJpbjo6Qmlu
OwordXNlIHdlYmtpdGRpcnM7CisKK215ICRzY3JpcHRzRGlyID0gcmVsYXRpdmVTY3JpcHRzRGly
KCk7CitzeXN0ZW0oInBlcmwiLCAiJHNjcmlwdHNEaXIvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVp
bGQiLCAiLS1uaXgiKSA9PSAwIG9yIGRpZSAkITsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0ZGlycy5wbSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQppbmRleCBjYzMwYjE2
ZjU5NjJjZGVkYmIwMDM5Mzk4ZGJmYmY5OWVkZTFlY2JiLi5iZjQwNGM4YjA3NGM1ZWU1MDM2Mzk5
YThhODRkOGU4Y2NhNjc5OWE1IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMu
cG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCkBAIC05NSw2ICs5NSw3IEBAIG15
ICRpc0d0azsKIG15ICRpc1dpbkNFOwogbXkgJGlzV2luQ2Fpcm87CiBteSAkaXNFZmw7CitteSAk
aXNOaXg7CiBteSAkaXNCbGFja0JlcnJ5OwogbXkgJGlzSW5zcGVjdG9yRnJvbnRlbmQ7CiBteSAk
aXNXSzI7CkBAIC0zMTcsNyArMzE4LDcgQEAgc3ViIGRldGVybWluZUFyY2hpdGVjdHVyZQogICAg
ICAgICAgICAgICAgICRhcmNoaXRlY3R1cmUgPSAnYXJtdjcnOwogICAgICAgICAgICAgfQogICAg
ICAgICB9Ci0gICAgfSBlbHNpZiAoaXNFZmwoKSkgeworICAgIH0gZWxzaWYgKGlzRWZsKCkgfHwg
aXNOaXgoKSkgewogICAgICAgICBteSAkaG9zdF9wcm9jZXNzb3IgPSAiIjsKICAgICAgICAgJGhv
c3RfcHJvY2Vzc29yID0gYGNtYWtlIC0tc3lzdGVtLWluZm9ybWF0aW9uIHwgZ3JlcCBDTUFLRV9T
WVNURU1fUFJPQ0VTU09SYDsKICAgICAgICAgaWYgKCRob3N0X3Byb2Nlc3NvciA9fiBtL15DTUFL
RV9TWVNURU1fUFJPQ0VTU09SIFwiKFteIl0rKVwiLykgewpAQCAtMzI3LDEzICszMjgsMTMgQEAg
c3ViIGRldGVybWluZUFyY2hpdGVjdHVyZQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCEk
YXJjaGl0ZWN0dXJlICYmIChpc0d0aygpIHx8IGlzQXBwbGVNYWNXZWJLaXQoKSB8fCBpc0VmbCgp
KSkgeworICAgIGlmICghJGFyY2hpdGVjdHVyZSAmJiAoaXNHdGsoKSB8fCBpc0FwcGxlTWFjV2Vi
S2l0KCkgfHwgaXNFZmwoKSB8fCBpc05peCgpKSkgewogICAgICAgICAjIEZhbGwgYmFjayB0byBv
dXRwdXQgb2YgYGFyY2gnLCBpZiBpdCBpcyBwcmVzZW50LgogICAgICAgICAkYXJjaGl0ZWN0dXJl
ID0gYGFyY2hgOwogICAgICAgICBjaG9tcCAkYXJjaGl0ZWN0dXJlOwogICAgIH0KIAotICAgIGlm
ICghJGFyY2hpdGVjdHVyZSAmJiAoaXNHdGsoKSB8fCBpc0FwcGxlTWFjV2ViS2l0KCkgfHwgaXNF
ZmwoKSkpIHsKKyAgICBpZiAoISRhcmNoaXRlY3R1cmUgJiYgKGlzR3RrKCkgfHwgaXNBcHBsZU1h
Y1dlYktpdCgpIHx8IGlzRWZsKCkgfHwgaXNOaXgoKSkpIHsKICAgICAgICAgIyBGYWxsIGJhY2sg
dG8gb3V0cHV0IG9mIGB1bmFtZSAtbScsIGlmIGl0IGlzIHByZXNlbnQuCiAgICAgICAgICRhcmNo
aXRlY3R1cmUgPSBgdW5hbWUgLW1gOwogICAgICAgICBjaG9tcCAkYXJjaGl0ZWN0dXJlOwpAQCAt
MzgyLDYgKzM4Myw3IEBAIHN1YiBhcmd1bWVudHNGb3JDb25maWd1cmF0aW9uKCkKICAgICBwdXNo
KEBhcmdzLCAnLS1xdCcpIGlmIGlzUXQoKTsKICAgICBwdXNoKEBhcmdzLCAnLS1ndGsnKSBpZiBp
c0d0aygpOwogICAgIHB1c2goQGFyZ3MsICctLWVmbCcpIGlmIGlzRWZsKCk7CisgICAgcHVzaChA
YXJncywgJy0tbml4JykgaWYgaXNOaXgoKTsKICAgICBwdXNoKEBhcmdzLCAnLS13aW5jYWlybycp
IGlmIGlzV2luQ2Fpcm8oKTsKICAgICBwdXNoKEBhcmdzLCAnLS13aW5jZScpIGlmIGlzV2luQ0Uo
KTsKICAgICBwdXNoKEBhcmdzLCAnLS1ibGFja2JlcnJ5JykgaWYgaXNCbGFja0JlcnJ5KCk7CkBA
IC01MjUsNyArNTI3LDcgQEAgc3ViIHByb2R1Y3REaXIKIHN1YiBqc2NQcm9kdWN0RGlyCiB7CiAg
ICAgbXkgJHByb2R1Y3REaXIgPSBwcm9kdWN0RGlyKCk7Ci0gICAgJHByb2R1Y3REaXIgLj0gIi9i
aW4iIGlmIChpc1F0KCkgfHwgaXNFZmwoKSk7CisgICAgJHByb2R1Y3REaXIgLj0gIi9iaW4iIGlm
IChpc1F0KCkgfHwgaXNFZmwoKSB8fCBpc05peCgpKTsKICAgICAkcHJvZHVjdERpciAuPSAiL1By
b2dyYW1zIiBpZiBpc0d0aygpOwogCiAgICAgcmV0dXJuICRwcm9kdWN0RGlyOwpAQCAtODQxLDYg
Kzg0Myw5IEBAIHN1YiBidWlsdER5bGliUGF0aEZvck5hbWUKICAgICAgICAgfQogICAgICAgICBy
ZXR1cm4gIiRjb25maWd1cmF0aW9uUHJvZHVjdERpci9saWIvbGliZXdlYmtpdC5zbyI7CiAgICAg
fQorICAgIGlmIChpc05peCgpKSB7CisgICAgICAgIHJldHVybiAiJGNvbmZpZ3VyYXRpb25Qcm9k
dWN0RGlyL2xpYi9saWJXZWJLaXROaXguc28iOworICAgIH0KICAgICBpZiAoaXNXaW5DRSgpKSB7
CiAgICAgICAgIHJldHVybiAiJGNvbmZpZ3VyYXRpb25Qcm9kdWN0RGlyLyRsaWJyYXJ5TmFtZSI7
CiAgICAgfQpAQCAtOTg0LDggKzk4OSw4IEBAIHN1YiBkZXRlcm1pbmVJc1F0KCkKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgICMgVGhlIHByZXNlbmNlIG9mIFFURElSIG9ubHkgbWVhbnMg
UXQgaWYgLS1ndGsgb3IgLS1lZmwgb3IgLS1ibGFja2JlcnJ5IG9yIC0td2luY2Fpcm8gYXJlIG5v
dCBvbiB0aGUgY29tbWFuZC1saW5lCi0gICAgaWYgKGlzR3RrKCkgfHwgaXNFZmwoKSB8fCBpc0Js
YWNrQmVycnkoKSB8fCBpc1dpbkNhaXJvKCkpIHsKKyAgICBpZiAoaXNHdGsoKSB8fCBpc0VmbCgp
IHx8IGlzQmxhY2tCZXJyeSgpIHx8IGlzV2luQ2Fpcm8oKSB8fCBpc05peCgpKSB7CisgICAgIyBU
aGUgcHJlc2VuY2Ugb2YgUVRESVIgb25seSBtZWFucyBRdCBpZiAtLWd0ayBvciAtLWVmbCBvciAt
LWJsYWNrYmVycnkgb3IgLS13aW5jYWlybyBvciAtLW5peCBhcmUgbm90IG9uIHRoZSBjb21tYW5k
LWxpbmUuCiAgICAgICAgICRpc1F0ID0gMDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEx
MzYsNiArMTE0MSwxNyBAQCBzdWIgaXNFZmwoKQogICAgIHJldHVybiAkaXNFZmw7CiB9CiAKK3N1
YiBkZXRlcm1pbmVJc05peCgpCit7CisgICAgcmV0dXJuIGlmIGRlZmluZWQoJGlzTml4KTsKKyAg
ICAkaXNOaXggPSBjaGVja0ZvckFyZ3VtZW50QW5kUmVtb3ZlRnJvbUFSR1YoIi0tbml4Iik7Cit9
CisKK3N1YiBpc05peCgpCit7CisgICAgZGV0ZXJtaW5lSXNOaXgoKTsKKyAgICByZXR1cm4gJGlz
Tml4OworfQogc3ViIGlzR3RrKCkKIHsKICAgICBkZXRlcm1pbmVJc0d0aygpOwpAQCAtMTI3NCw3
ICsxMjkwLDcgQEAgc3ViIGlzQ3Jvc3NDb21waWxhdGlvbigpCiAKIHN1YiBpc0FwcGxlV2ViS2l0
KCkKIHsKLSAgICByZXR1cm4gIShpc1F0KCkgb3IgaXNHdGsoKSBvciBpc0VmbCgpIG9yIGlzV2lu
Q0UoKSBvciBpc0JsYWNrQmVycnkoKSk7CisgICAgcmV0dXJuICEoaXNRdCgpIG9yIGlzR3RrKCkg
b3IgaXNFZmwoKSBvciBpc1dpbkNFKCkgb3IgaXNCbGFja0JlcnJ5KCkgb3IgaXNOaXgoKSk7CiB9
CiAKIHN1YiBpc0FwcGxlTWFjV2ViS2l0KCkKQEAgLTE0NDksNyArMTQ2NSw3IEBAIHN1YiByZWxh
dGl2ZVNjcmlwdHNEaXIoKQogc3ViIGxhdW5jaGVyUGF0aCgpCiB7CiAgICAgbXkgJHJlbGF0aXZl
U2NyaXB0c1BhdGggPSByZWxhdGl2ZVNjcmlwdHNEaXIoKTsKLSAgICBpZiAoaXNHdGsoKSB8fCBp
c1F0KCkgfHwgaXNFZmwoKSB8fCBpc1dpbkNFKCkpIHsKKyAgICBpZiAoaXNHdGsoKSB8fCBpc1F0
KCkgfHwgaXNFZmwoKSB8fCBpc1dpbkNFKCkgfHwgaXNOaXgoKSkgewogICAgICAgICByZXR1cm4g
IiRyZWxhdGl2ZVNjcmlwdHNQYXRoL3J1bi1sYXVuY2hlciI7CiAgICAgfSBlbHNpZiAoaXNBcHBs
ZVdlYktpdCgpKSB7CiAgICAgICAgIHJldHVybiAiJHJlbGF0aXZlU2NyaXB0c1BhdGgvcnVuLXNh
ZmFyaSI7CkBAIC0xNDY4LDYgKzE0ODQsOCBAQCBzdWIgbGF1bmNoZXJOYW1lKCkKICAgICAgICAg
cmV0dXJuICJFV2ViTGF1bmNoZXIvTWluaUJyb3dzZXIiOwogICAgIH0gZWxzaWYgKGlzV2luQ0Uo
KSkgewogICAgICAgICByZXR1cm4gIldpbkNFTGF1bmNoZXIiOworICAgIH0gZWxzaWYgKGlzTml4
KCkpIHsKKyAgICAgICAgcmV0dXJuICJNaW5pQnJvd3NlciI7CiAgICAgfQogfQogCkBAIC0xNDk0
LDcgKzE1MTIsNyBAQCBzdWIgY2hlY2tSZXF1aXJlZFN5c3RlbUNvbmZpZwogICAgICAgICAgICAg
cHJpbnQgImh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL3Rvb2xzL3hjb2RlXG4iOwogICAgICAg
ICAgICAgcHJpbnQgIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKipcbiI7CiAgICAgICAgIH0KLSAgICB9IGVsc2lmIChpc0d0aygpIG9y
IGlzUXQoKSBvciBpc0VmbCgpKSB7CisgICAgfSBlbHNpZiAoaXNHdGsoKSBvciBpc1F0KCkgb3Ig
aXNFZmwoKSBvciBpc05peCgpKSB7CiAgICAgICAgIG15IEBjbWRzID0gcXcoYmlzb24gZ3BlcmYp
OwogICAgICAgICBpZiAoaXNRdCgpIGFuZCBpc1dpbmRvd3MoKSkgewogICAgICAgICAgICAgcHVz
aCBAY21kcywgIndpbl9mbGV4IjsKQEAgLTE2ODksNyArMTcwNyw3IEBAIHN1YiBjb3B5SW5zcGVj
dG9yRnJvbnRlbmRGaWxlcwogICAgICAgICAkaW5zcGVjdG9yUmVzb3VyY2VzRGlyUGF0aCA9ICRw
cm9kdWN0RGlyIC4gIi9XZWJDb3JlLmZyYW1ld29yay9SZXNvdXJjZXMvaW5zcGVjdG9yIjsKICAg
ICB9IGVsc2lmIChpc0FwcGxlV2luV2ViS2l0KCkpIHsKICAgICAgICAgJGluc3BlY3RvclJlc291
cmNlc0RpclBhdGggPSAkcHJvZHVjdERpciAuICIvV2ViS2l0LnJlc291cmNlcy9pbnNwZWN0b3Ii
OwotICAgIH0gZWxzaWYgKGlzUXQoKSB8fCBpc0d0aygpKSB7CisgICAgfSBlbHNpZiAoaXNRdCgp
IHx8IGlzR3RrKCkgfHwgaXNOaXgoKSkgewogICAgICAgICBteSAkcHJlZml4ID0gJEVOVnsiV2Vi
S2l0SW5zdGFsbGF0aW9uUHJlZml4In07CiAgICAgICAgICRpbnNwZWN0b3JSZXNvdXJjZXNEaXJQ
YXRoID0gKGRlZmluZWQoJHByZWZpeCkgPyAkcHJlZml4IDogIi91c3Ivc2hhcmUiKSAuICIvd2Vi
a2l0LTEuMC93ZWJpbnNwZWN0b3IiOwogICAgIH0gZWxzaWYgKGlzRWZsKCkpIHsKQEAgLTIwMzUs
NiArMjA1Myw4IEBAIHN1YiBqaGJ1aWxkV3JhcHBlclByZWZpeElmTmVlZGVkKCkKICAgICAgICAg
ICAgIHB1c2goQHByZWZpeCwgIi0tZWZsIik7CiAgICAgICAgIH0gZWxzaWYgKGlzR3RrKCkpIHsK
ICAgICAgICAgICAgIHB1c2goQHByZWZpeCwgIi0tZ3RrIik7CisgICAgICAgIH0gZWxzaWYgKGlz
Tml4KCkpIHsKKyAgICAgICAgICAgIHB1c2goQHByZWZpeCwgIi0tbml4Iik7CiAgICAgICAgIH0K
ICAgICAgICAgcHVzaChAcHJlZml4LCAicnVuIik7CiAKQEAgLTIxMjksNiArMjE0OSw5IEBAIHN1
YiBidWlsZENNYWtlUHJvamVjdE9yRXhpdCgkJCQkQCkKICAgICAgICAgc3lzdGVtKCJwZXJsIiwg
IiRzb3VyY2VEaXIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0ZWZsLWxpYnMiKSA9PSAwIG9y
IGRpZSAkITsKICAgICB9CiAKKyAgICBpZiAoaXNOaXgoKSAmJiBjaGVja0ZvckFyZ3VtZW50QW5k
UmVtb3ZlRnJvbUFSR1YoIi0tdXBkYXRlLW5peCIpKSB7CisgICAgICAgIHN5c3RlbSgicGVybCIs
ICIkc291cmNlRGlyL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdG5peC1saWJzIikgPT0gMCBv
ciBkaWUgJCE7CisgICAgfQogCiAgICAgJHJldHVybkNvZGUgPSBleGl0U3RhdHVzKGdlbmVyYXRl
QnVpbGRTeXN0ZW1Gcm9tQ01ha2VQcm9qZWN0KCRwb3J0LCAkcHJlZml4UGF0aCwgQGNtYWtlQXJn
cykpOwogICAgIGV4aXQoJHJldHVybkNvZGUpIGlmICRyZXR1cm5Db2RlOwpAQCAtMjE1Miw2ICsy
MTc1LDcgQEAgc3ViIGNtYWtlQmFzZWRQb3J0TmFtZSgpCiAgICAgcmV0dXJuICJCbGFja0JlcnJ5
IiBpZiBpc0JsYWNrQmVycnkoKTsKICAgICByZXR1cm4gIkVmbCIgaWYgaXNFZmwoKTsKICAgICBy
ZXR1cm4gIldpbkNFIiBpZiBpc1dpbkNFKCk7CisgICAgcmV0dXJuICJOaXgiIGlmIGlzTml4KCk7
CiAgICAgcmV0dXJuICIiOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9jb25maWcvcG9ydHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9j
b25maWcvcG9ydHMucHkKaW5kZXggMGMyMGRhZTUxMjRhMjdkNTdiODZlN2RhYzUyZjczNGNjNTY2
NGY5Ny4uM2M2YmNiNGM3MGMzNWEzMTI2NzU3ODcyODQ5MmFlYThjMGY1NmQ3MyAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weQpAQCAtNzAsNiArNzAs
NyBAQCBjbGFzcyBEZXByZWNhdGVkUG9ydChvYmplY3QpOgogICAgICAgICAgICAgInF0LXdrMiI6
IFF0V0syUG9ydCwKICAgICAgICAgICAgICJlZmwiOiBFZmxQb3J0LAogICAgICAgICAgICAgImVm
bC13azIiOiBFZmxXSzJQb3J0LAorICAgICAgICAgICAgIm5peCI6IE5peFBvcnQsCiAgICAgICAg
IH0KICAgICAgICAgZGVmYXVsdF9wb3J0ID0gewogICAgICAgICAgICAgIldpbmRvd3MiOiBXaW5Q
b3J0LApAQCAtODEsNyArODIsNyBAQCBjbGFzcyBEZXByZWNhdGVkUG9ydChvYmplY3QpOgogICAg
IGRlZiBtYWtlQXJncyhzZWxmKToKICAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGRuJ3QgdXNl
IGEgc3RhdGljIEV4ZWN1dGl2ZSgpLgogICAgICAgICBhcmdzID0gJy0tbWFrZWFyZ3M9Ii1qJXMi
JyAlIEV4ZWN1dGl2ZSgpLmNwdV9jb3VudCgpCi0gICAgICAgIGlmIG9zLmVudmlyb24uaGFzX2tl
eSgnTUFLRUZMQUdTJyk6CisgICAgICAgIGlmICdNQUtFRkxBR1MnIGluIG9zLmVudmlyb246CiAg
ICAgICAgICAgICBhcmdzID0gJy0tbWFrZWFyZ3M9IiVzIicgJSBvcy5lbnZpcm9uWydNQUtFRkxB
R1MnXQogICAgICAgICByZXR1cm4gYXJncwogCkBAIC0yMzAsMyArMjMxLDE0IEBAIGNsYXNzIEVm
bFdLMlBvcnQoRGVwcmVjYXRlZFBvcnQpOgogICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1uby13
ZWJraXQxIikKICAgICAgICAgY29tbWFuZC5hcHBlbmQoc3VwZXIoRWZsV0syUG9ydCwgc2VsZiku
bWFrZUFyZ3MoKSkKICAgICAgICAgcmV0dXJuIGNvbW1hbmQKKworCitjbGFzcyBOaXhQb3J0KERl
cHJlY2F0ZWRQb3J0KToKKyAgICBwb3J0X2ZsYWdfbmFtZSA9ICJuaXgiCisKKyAgICBkZWYgYnVp
bGRfd2Via2l0X2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CisgICAgICAgIGNvbW1h
bmQgPSBzdXBlcihOaXhQb3J0LCBzZWxmKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHls
ZT1idWlsZF9zdHlsZSkKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tbml4IikKKyAgICAgICAg
Y29tbWFuZC5hcHBlbmQoIi0tdXBkYXRlLW5peCIpCisgICAgICAgIGNvbW1hbmQuYXBwZW5kKHN1
cGVyKE5peFBvcnQsIHNlbGYpLm1ha2VBcmdzKCkpCisgICAgICAgIHJldHVybiBjb21tYW5kCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5CmluZGV4IGU5ZjE0NjU2MzAwNzdjMmQx
ZDc2NGUyOWJhNDY0YTUzYmM0MWU2NmUuLjgwMzkxNTllMDZhMjMxZmIwN2ZmZTY3NThkZWFhNWI4
NTExN2NlMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5CkBAIC00Miw2
ICs0Miw4IEBAIGRlZiBwbGF0Zm9ybV9vcHRpb25zKHVzZV9nbG9icz1GYWxzZSk6CiAgICAgICAg
IG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLWVmbCcsIGFjdGlvbj0nc3RvcmVfY29uc3QnLCBkZXN0
PSdwbGF0Zm9ybScsCiAgICAgICAgICAgICBjb25zdD0oJ2VmbConIGlmIHVzZV9nbG9icyBlbHNl
ICdlZmwnKSwKICAgICAgICAgICAgIGhlbHA9KCdBbGlhcyBmb3IgLS1wbGF0Zm9ybT1lZmwqJyBp
ZiB1c2VfZ2xvYnMgZWxzZSAnQWxpYXMgZm9yIC0tcGxhdGZvcm09ZWZsJykpLAorICAgICAgICBv
cHRwYXJzZS5tYWtlX29wdGlvbignLS1uaXgnLCBhY3Rpb249J3N0b3JlX2NvbnN0JywgZGVzdD0n
cGxhdGZvcm0nLAorICAgICAgICAgICAgY29uc3Q9KCduaXgnKSwgaGVscD0oJ0FsaWFzIGZvciAt
LXBsYXRmb3JtPW5peCcpKSwKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tZ3RrJywg
YWN0aW9uPSdzdG9yZV9jb25zdCcsIGRlc3Q9J3BsYXRmb3JtJywKICAgICAgICAgICAgIGNvbnN0
PSgnZ3RrKicgaWYgdXNlX2dsb2JzIGVsc2UgJ2d0aycpLAogICAgICAgICAgICAgaGVscD0oJ0Fs
aWFzIGZvciAtLXBsYXRmb3JtPWd0ayonIGlmIHVzZV9nbG9icyBlbHNlICdBbGlhcyBmb3IgLS1w
bGF0Zm9ybT1ndGsnKSksCkBAIC03NSw2ICs3Nyw3IEBAIGRlZiBfYnVpbGRlcl9vcHRpb25zKGJ1
aWxkZXJfbmFtZSk6CiBjbGFzcyBQb3J0RmFjdG9yeShvYmplY3QpOgogICAgIFBPUlRfQ0xBU1NF
UyA9ICgKICAgICAgICAgJ2VmbC5FZmxQb3J0JywKKyAgICAgICAgJ25peC5OaXhQb3J0JywKICAg
ICAgICAgJ2d0ay5HdGtQb3J0JywKICAgICAgICAgJ21hYy5NYWNQb3J0JywKICAgICAgICAgJ21v
Y2tfZHJ0Lk1vY2tEUlRQb3J0JywKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cG9ydC9uaXgucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbml4LnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjA5MWI1ZTE4ZmUzMzQ4ZjlmZmYxYmY2MjdkNTI5MTFjYzYzYTVlNDgKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbml4LnB5CkBAIC0wLDAgKzEsMTE5
IEBACisjIENvcHlyaWdodCAoQykgMjAxMSBQcm9GVVNJT04gRW1iZWRkZWQgU3lzdGVtcy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25p
Y3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jw
b3JhdGlvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBt
ZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisj
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKyIiIldlYktpdCBOaXggaW1wbGVtZW50YXRpb24gb2YgdGhlIFBv
cnQgaW50ZXJmYWNlLiIiIgorCitpbXBvcnQgb3MKKworZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVz
dHMubW9kZWxzLnRlc3RfY29uZmlndXJhdGlvbiBpbXBvcnQgVGVzdENvbmZpZ3VyYXRpb24KK2Zy
b20gd2Via2l0cHkucG9ydC5iYXNlIGltcG9ydCBQb3J0Citmcm9tIHdlYmtpdHB5LnBvcnQucHVs
c2VhdWRpb19zYW5pdGl6ZXIgaW1wb3J0IFB1bHNlQXVkaW9TYW5pdGl6ZXIKKworCitjbGFzcyBO
aXhQb3J0KFBvcnQpOgorICAgIHBvcnRfbmFtZSA9ICduaXgnCisKKyAgICBkZWYgX3drMl9wb3J0
X25hbWUoc2VsZik6CisgICAgICAgIHJldHVybiAnbml4JworCisgICAgQGNsYXNzbWV0aG9kCisg
ICAgZGVmIGRldGVybWluZV9mdWxsX3BvcnRfbmFtZShjbHMsIGhvc3QsIG9wdGlvbnMsIHBvcnRf
bmFtZSk6CisgICAgICAgICIiIkRldGVybWluZSB0aGUgcG9ydCBuYW1lIGJhc2VkIG9uIGhvc3Qg
YW5kIG9wdGlvbnMgdmFsdWVzLiIiIgorICAgICAgICAjIEN1cnJlbnRseSB0aGUgb25seSAicG9y
dCIgaW5zdGFuY2Ugc3VwcG9ydGVkIGJ5IE5peCBpcyAibml4Ii4gUmVpbXBsZW1lbnRpbmcKKyAg
ICAgICAgIyB0aGlzIG1ldGhvZCBhdm9pZHMgY2hhbmdpbmcgcG9ydCBuYW1lIHRvIG5peC13azIs
IHdoaWNoIGlzIHRoZSBkZWZhdWx0CisgICAgICAgICMgYmVoYXZpb3IgaW4gYmFzZS5weS4KKyAg
ICAgICAgcmV0dXJuIHBvcnRfbmFtZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAq
Kmt3YXJncyk6CisgICAgICAgIHN1cGVyKE5peFBvcnQsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAq
Kmt3YXJncykKKworICAgICAgICBzZWxmLl9qaGJ1aWxkX3dyYXBwZXJfcGF0aCA9IHNlbGYucGF0
aF9mcm9tX3dlYmtpdF9iYXNlKCdUb29scycsICduaXgnLCAncnVuLXdpdGgtamhidWlsZCcpCisK
KyAgICAgICAgc2VsZi5zZXRfb3B0aW9uX2RlZmF1bHQoJ3dyYXBwZXInLCBzZWxmLl9qaGJ1aWxk
X3dyYXBwZXJfcGF0aCkKKyAgICAgICAgc2VsZi5zZXRfb3B0aW9uX2RlZmF1bHQoJ3dlYmtpdF90
ZXN0X3J1bm5lcicsIFRydWUpCisgICAgICAgIHNlbGYud2VicHJvY2Vzc19jbWRfcHJlZml4ID0g
c2VsZi5nZXRfb3B0aW9uKCd3ZWJwcm9jZXNzX2NtZF9wcmVmaXgnKQorCisgICAgICAgIHNlbGYu
X3B1bHNlYXVkaW9fc2FuaXRpemVyID0gUHVsc2VBdWRpb1Nhbml0aXplcigpCisKKyAgICBkZWYg
X3BvcnRfZmxhZ19mb3Jfc2NyaXB0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuICItLW5peCIKKwor
ICAgIGRlZiBzZXR1cF90ZXN0X3J1bihzZWxmKToKKyAgICAgICAgc2VsZi5fcHVsc2VhdWRpb19z
YW5pdGl6ZXIudW5sb2FkX3B1bHNlYXVkaW9fbW9kdWxlKCkKKworICAgIGRlZiBzZXR1cF9lbnZp
cm9uX2Zvcl9zZXJ2ZXIoc2VsZiwgc2VydmVyX25hbWU9Tm9uZSk6CisgICAgICAgIGVudiA9IHN1
cGVyKE5peFBvcnQsIHNlbGYpLnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihzZXJ2ZXJfbmFtZSkK
KyAgICAgICAgIyBJZiBESVNQTEFZIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHVuc2V0IGluIHRo
ZSBzeXN0ZW0KKyAgICAgICAgIyBlLmcuIG9uIGJ1aWxkIGJvdCwgcmVtb3ZlIERJU1BMQVkgdmFy
aWFibGUgZnJvbSB0aGUgZGljdGlvbmFyeQorICAgICAgICBpZiBub3QgJ0RJU1BMQVknIGluIG9z
LmVudmlyb246CisgICAgICAgICAgICBkZWwgZW52WydESVNQTEFZJ10KKyAgICAgICAgZW52WydU
RVNUX1JVTk5FUl9JTkpFQ1RFRF9CVU5ETEVfRklMRU5BTUUnXSA9IHNlbGYuX2J1aWxkX3BhdGgo
J2xpYicsICdsaWJUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUuc28nKQorICAgICAgICBlbnZbJ1RF
U1RfUlVOTkVSX1BMVUdJTl9QQVRIJ10gPSBzZWxmLl9idWlsZF9wYXRoKCdsaWInKQorICAgICAg
ICBpZiBzZWxmLndlYnByb2Nlc3NfY21kX3ByZWZpeDoKKyAgICAgICAgICAgIGVudlsnV0VCX1BS
T0NFU1NfQ01EX1BSRUZJWCddID0gc2VsZi53ZWJwcm9jZXNzX2NtZF9wcmVmaXgKKworICAgICAg
ICByZXR1cm4gZW52CisKKyAgICBkZWYgZGVmYXVsdF90aW1lb3V0X21zKHNlbGYpOgorICAgICAg
ICAjIFRlc3RzIHJ1biBjb25zaWRlcmFibHkgc2xvd2VyIHVuZGVyIGdkYgorICAgICAgICAjIG9y
IHZhbGdyaW5kLgorICAgICAgICBpZiBzZWxmLmdldF9vcHRpb24oJ3dlYnByb2Nlc3NfY21kX3By
ZWZpeCcpOgorICAgICAgICAgICAgcmV0dXJuIDM1MCAqIDEwMDAKKyAgICAgICAgcmV0dXJuIHN1
cGVyKE5peFBvcnQsIHNlbGYpLmRlZmF1bHRfdGltZW91dF9tcygpCisKKyAgICBkZWYgY2xlYW5f
dXBfdGVzdF9ydW4oc2VsZik6CisgICAgICAgIHN1cGVyKE5peFBvcnQsIHNlbGYpLmNsZWFuX3Vw
X3Rlc3RfcnVuKCkKKyAgICAgICAgc2VsZi5fcHVsc2VhdWRpb19zYW5pdGl6ZXIucmVzdG9yZV9w
dWxzZWF1ZGlvX21vZHVsZSgpCisKKyAgICBkZWYgX2dlbmVyYXRlX2FsbF90ZXN0X2NvbmZpZ3Vy
YXRpb25zKHNlbGYpOgorICAgICAgICByZXR1cm4gW1Rlc3RDb25maWd1cmF0aW9uKHZlcnNpb249
c2VsZi5fdmVyc2lvbiwgYXJjaGl0ZWN0dXJlPSd4ODYnLCBidWlsZF90eXBlPWJ1aWxkX3R5cGUp
IGZvciBidWlsZF90eXBlIGluIHNlbGYuQUxMX0JVSUxEX1RZUEVTXQorCisgICAgZGVmIF9wYXRo
X3RvX2RyaXZlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWxkX3BhdGgoJ2Jpbics
IHNlbGYuZHJpdmVyX25hbWUoKSkKKworICAgIGRlZiBfcGF0aF90b19pbWFnZV9kaWZmKHNlbGYp
OgorICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfcGF0aCgnYmluJywgJ0ltYWdlRGlmZicpCisK
KyAgICBkZWYgX2ltYWdlX2RpZmZfY29tbWFuZChzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAg
ICAgICByZXR1cm4gW3NlbGYuX2poYnVpbGRfd3JhcHBlcl9wYXRoXSArIHN1cGVyKE5peFBvcnQs
IHNlbGYpLl9pbWFnZV9kaWZmX2NvbW1hbmQoKmFyZ3MsICoqa3dhcmdzKQorCisgICAgZGVmIF9z
ZWFyY2hfcGF0aHMoc2VsZik6CisgICAgICAgIHJldHVybiBbc2VsZi5wb3J0X25hbWVdCisKKyAg
ICBkZWYgc2hvd19yZXN1bHRzX2h0bWxfZmlsZShzZWxmLCByZXN1bHRzX2ZpbGVuYW1lKToKKyAg
ICAgICAgcnVuX2xhdW5jaGVyX2FyZ3MgPSBbImZpbGU6Ly8lcyIgJSByZXN1bHRzX2ZpbGVuYW1l
XQorICAgICAgICBzZWxmLl9ydW5fc2NyaXB0KCJydW4tbGF1bmNoZXIiLCBydW5fbGF1bmNoZXJf
YXJncykKKworICAgIGRlZiBfcG9ydF9zcGVjaWZpY19leHBlY3RhdGlvbnNfZmlsZXMoc2VsZik6
CisgICAgICAgIHBhdGhzID0gc2VsZi5fc2VhcmNoX3BhdGhzKCkKKyAgICAgICAgaWYgc2VsZi5n
ZXRfb3B0aW9uKCd3ZWJraXRfdGVzdF9ydW5uZXInKToKKyAgICAgICAgICAgIHBhdGhzLmFwcGVu
ZCgnd2syJykKKyAgICAgICAgcmV0dXJuIGxpc3QoKFtzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2Vs
Zi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgocCksICdUZXN0RXhwZWN0YXRpb25zJykgZm9yIHAgaW4g
cGF0aHNdKSkKKworICAgIGRlZiBkZWZhdWx0X2Jhc2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYpOgor
ICAgICAgICByZXR1cm4gbWFwKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoLCBbJ25peCcsICd3
azInXSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9uaXhfdW5pdHRl
c3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbml4X3VuaXR0ZXN0LnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmViOWZkYjk2OGRhOWM5ZDYzNWVmOTgyYmU4N2I3Mjc1MDE4MGM5ZTEKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbml4X3VuaXR0ZXN0LnB5CkBA
IC0wLDAgKzEsNjggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorIyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyMgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorIyBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKK2ltcG9ydCBvcwor
ZnJvbSBjb3B5IGltcG9ydCBkZWVwY29weQorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0u
ZXhlY3V0aXZlX21vY2sgaW1wb3J0IE1vY2tFeGVjdXRpdmUsIE1vY2tFeGVjdXRpdmUyCitmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVy
ZQorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3RfbW9jayBpbXBvcnQgTW9j
a1N5c3RlbUhvc3QKK2Zyb20gd2Via2l0cHkucG9ydCBpbXBvcnQgcG9ydF90ZXN0Y2FzZQorZnJv
bSB3ZWJraXRweS5wb3J0Lm5peCBpbXBvcnQgTml4UG9ydAorZnJvbSB3ZWJraXRweS50b29sLm1v
Y2t0b29sIGltcG9ydCBNb2NrT3B0aW9ucworCisKK2NsYXNzIE5peFBvcnRUZXN0KHBvcnRfdGVz
dGNhc2UuUG9ydFRlc3RDYXNlKToKKyAgICBwb3J0X25hbWUgPSAnbml4JworICAgIHBvcnRfbWFr
ZXIgPSBOaXhQb3J0CisgICAgc2VhcmNoX3BhdGhzX2Nhc2VzID0gWworICAgICAgICAgICAgeydz
ZWFyY2hfcGF0aHMnOiBbJ25peCcsICd3azInXSwgJ29zX25hbWUnOidsaW51eCd9XQorICAgIGV4
cGVjdGF0aW9uX2ZpbGVzX2Nhc2VzID0gWworICAgICAgICB7J3NlYXJjaF9wYXRocyc6IFsnJywg
J25peCcsICd3azInXSwgJ29zX25hbWUnOidsaW51eCd9XQorCisgICAgZGVmIF9hc3NlcnRfc2Vh
cmNoX3BhdGgoc2VsZiwgc2VhcmNoX3BhdGhzLCBvc19uYW1lKToKKyAgICAgICAgaG9zdCA9IE1v
Y2tTeXN0ZW1Ib3N0KG9zX25hbWU9b3NfbmFtZSkKKyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9w
b3J0KHBvcnRfbmFtZT1zZWxmLnBvcnRfbmFtZSwgaG9zdD1ob3N0LCBvcHRpb25zPU1vY2tPcHRp
b25zKHdlYmtpdF90ZXN0X3J1bm5lcj1UcnVlKSkKKyAgICAgICAgYWJzb2x1dGVfc2VhcmNoX3Bh
dGhzID0gbWFwKHBvcnQuX3dlYmtpdF9iYXNlbGluZV9wYXRoLCBzZWFyY2hfcGF0aHMpCisKKyAg
ICAgICAgdW5pdHRlc3QuVGVzdENhc2UuYXNzZXJ0RXF1YWwoc2VsZiwgcG9ydC5iYXNlbGluZV9z
ZWFyY2hfcGF0aCgpLCBhYnNvbHV0ZV9zZWFyY2hfcGF0aHMpCisKKyAgICBkZWYgX2Fzc2VydF9l
eHBlY3RhdGlvbnNfZmlsZXMoc2VsZiwgc2VhcmNoX3BhdGhzLCBvc19uYW1lKToKKyAgICAgICAg
aG9zdCA9IE1vY2tTeXN0ZW1Ib3N0KG9zX25hbWU9b3NfbmFtZSkKKyAgICAgICAgcG9ydCA9IHNl
bGYubWFrZV9wb3J0KHBvcnRfbmFtZT1zZWxmLnBvcnRfbmFtZSwgaG9zdD1ob3N0LCBvcHRpb25z
PU1vY2tPcHRpb25zKHdlYmtpdF90ZXN0X3J1bm5lcj1UcnVlKSkKKyAgICAgICAgdW5pdHRlc3Qu
VGVzdENhc2UuYXNzZXJ0RXF1YWwoc2VsZiwgcG9ydC5leHBlY3RhdGlvbnNfZmlsZXMoKSwgc2Vh
cmNoX3BhdGhzKQorCisgICAgZGVmIHRlc3RfYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6Cisg
ICAgICAgIGZvciBjYXNlIGluIHNlbGYuc2VhcmNoX3BhdGhzX2Nhc2VzOgorICAgICAgICAgICAg
c2VsZi5fYXNzZXJ0X3NlYXJjaF9wYXRoKCoqY2FzZSkKKworICAgIGRlZiB0ZXN0X2V4cGVjdGF0
aW9uc19maWxlcyhzZWxmKToKKyAgICAgICAgZm9yIGNhc2UgaW4gc2VsZi5leHBlY3RhdGlvbl9m
aWxlc19jYXNlczoKKyAgICAgICAgICAgIGV4cGVjdGF0aW9uc19jYXNlID0gZGVlcGNvcHkoY2Fz
ZSkKKyAgICAgICAgICAgIGV4cGVjdGF0aW9uc19jYXNlWydzZWFyY2hfcGF0aHMnXSA9IG1hcChs
YW1iZGEgcGF0aDogJy9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMn
ICBpZiBub3QgcGF0aCBlbHNlICcvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS8l
cy9UZXN0RXhwZWN0YXRpb25zJyAlIChwYXRoKSwgZXhwZWN0YXRpb25zX2Nhc2VbJ3NlYXJjaF9w
YXRocyddKQorICAgICAgICAgICAgc2VsZi5fYXNzZXJ0X2V4cGVjdGF0aW9uc19maWxlcygqKmV4
cGVjdGF0aW9uc19jYXNlKQorCisgICAgZGVmIHRlc3RfZGVmYXVsdF90aW1lb3V0X21zKHNlbGYp
OgorICAgICAgICB1bml0dGVzdC5UZXN0Q2FzZS5hc3NlcnRFcXVhbChzZWxmLCBzZWxmLm1ha2Vf
cG9ydChvcHRpb25zPU1vY2tPcHRpb25zKGNvbmZpZ3VyYXRpb249J1JlbGVhc2UnKSkuZGVmYXVs
dF90aW1lb3V0X21zKCksIDgwMDAwKQorICAgICAgICB1bml0dGVzdC5UZXN0Q2FzZS5hc3NlcnRF
cXVhbChzZWxmLCBzZWxmLm1ha2VfcG9ydChvcHRpb25zPU1vY2tPcHRpb25zKGNvbmZpZ3VyYXRp
b249J0RlYnVnJykpLmRlZmF1bHRfdGltZW91dF9tcygpLCA4MDAwMCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL2poYnVpbGQvamhidWlsZC13cmFwcGVyIGIvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBw
ZXIKaW5kZXggOWQzYTg3YjQ0YWE4MTkwZGFhYTRjNTM3YWEyOGM2YzQyZjcyNTk1Zi4uYTNhNzU1
YmYyYjVmZjNhMTdjNmY0ZmFmNTBkYzE1YWIzNjE0ODZkYSAxMDA3NTUKLS0tIGEvVG9vbHMvamhi
dWlsZC9qaGJ1aWxkLXdyYXBwZXIKKysrIGIvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBwZXIK
QEAgLTk1LDYgKzk1LDggQEAgZGVmIGRldGVybWluZV9wbGF0Zm9ybSgpOgogICAgICAgICByZXR1
cm4gImVmbCI7CiAgICAgaWYgJy0tZ3RrJyBpbiBzeXMuYXJndjoKICAgICAgICAgcmV0dXJuICJn
dGsiOworICAgIGlmICctLW5peCcgaW4gc3lzLmFyZ3Y6CisgICAgICAgIHJldHVybiAibml4IjsK
ICAgICByYWlzZSBWYWx1ZUVycm9yKCdObyBwbGF0Zm9ybSBzcGVjaWZpZWQgZm9yIGpoYnVpbGQt
d3JhcHBlci4nKQogCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL25peC9jb21tb24ucHkgYi9Ub29scy9u
aXgvY29tbW9uLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmODM1N2UzNzhlOGI5M2Q5OGExNWVjZDM2OTcxZGJk
MDAwMjc2YzQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9uaXgvY29tbW9uLnB5CkBAIC0wLDAg
KzEsMzIgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTEgSWdh
bGlhIFMuTC4KKyMgQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisj
CisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u
LCBNQSAgMDIxMTAtMTMwMSAgVVNBCisKK2ltcG9ydCBvcworCitzY3JpcHRfZGlyID0gTm9uZQor
CisKK2RlZiBzY3JpcHRfcGF0aCgqYXJncyk6CisgICAgZ2xvYmFsIHNjcmlwdF9kaXIKKyAgICBp
ZiBub3Qgc2NyaXB0X2RpcjoKKyAgICAgICAgc2NyaXB0X2RpciA9IG9zLnBhdGguam9pbihvcy5w
YXRoLmRpcm5hbWUoX19maWxlX18pLCAnLi4nLCAnU2NyaXB0cycpCisgICAgcmV0dXJuIG9zLnBh
dGguam9pbigqKHNjcmlwdF9kaXIsKSArIGFyZ3MpCisKKworZGVmIHRvcF9sZXZlbF9wYXRoKCph
cmdzKToKKyAgICByZXR1cm4gb3MucGF0aC5qb2luKCooKHNjcmlwdF9wYXRoKCcuLicsICcuLicp
LCkgKyBhcmdzKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL25peC9qaGJ1aWxkLm1vZHVsZXMgYi9Ub29s
cy9uaXgvamhidWlsZC5tb2R1bGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3OThjMGU1MTM5NGVlOWIyZmRlYzdm
NTcxODM2Y2ZjZTU5Y2UwODUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9uaXgvamhidWlsZC5t
b2R1bGVzCkBAIC0wLDAgKzEsMTI3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQ
RSBtb2R1bGVzZXQgU1lTVEVNICJtb2R1bGVzZXQuZHRkIj4KKzw/eG1sLXN0eWxlc2hlZXQgdHlw
ZT0idGV4dC94c2wiIGhyZWY9Im1vZHVsZXNldC54c2wiPz4KKzxtb2R1bGVzZXQ+CisKKyAgPG1l
dGFtb2R1bGUgaWQ9IndlYmtpdG5peC10ZXN0aW5nLWRlcGVuZGVuY2llcyI+CisgICAgPGRlcGVu
ZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iY2Fpcm8iLz4KKyAgICAgIDxkZXAgcGFja2Fn
ZT0iZm9udHMiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZm9udGNvbmZpZyIvPgorICAgICAgPGRl
cCBwYWNrYWdlPSJmcmVldHlwZTYiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iaGFyZmJ1enoiLz4K
KyAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYiIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnbGliLW5l
dHdvcmtpbmciLz4KKyAgICAgIDxkZXAgcGFja2FnZT0ibGlic291cCIvPgorICAgIDwvZGVwZW5k
ZW5jaWVzPgorICA8L21ldGFtb2R1bGU+CisKKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIg
bmFtZT0iZ2l0aHViLmNvbSIKKyAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbSIvPgorICA8
cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJzb3VyY2V3YXJlLm9yZyIKKyAgICAgIGhy
ZWY9ImZ0cDovL3NvdXJjZXdhcmUub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwi
IG5hbWU9ImZ0cC5nbm9tZS5vcmciCisgICAgICBocmVmPSJodHRwOi8vZnRwLmdub21lLm9yZyIv
PgorICA8cmVwb3NpdG9yeSB0eXBlPSJnaXQiIG5hbWU9ImdpdC5nbm9tZS5vcmciCisgICAgICBo
cmVmPSJnaXQ6Ly9naXQuZ25vbWUub3JnLyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxs
IiBuYW1lPSJjYWlyb2dyYXBoaWNzLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9jYWlyb2dyYXBo
aWNzLm9yZyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJmcmVlZGVza3Rv
cC5vcmciCisgICAgICBocmVmPSJodHRwOi8vd3d3LmZyZWVkZXNrdG9wLm9yZyIvPgorCisgIDxh
dXRvdG9vbHMgaWQ9ImNhaXJvIiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiPgorICAgIDxkZXBlbmRl
bmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZvbnRjb25maWciLz4KKyAgICAgIDxkZXAgcGFj
a2FnZT0icGl4bWFuIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9
InJlbGVhc2VzL2NhaXJvLTEuMTIuOC50YXIueHoiIHZlcnNpb249IjEuMTIuOCIKKyAgICAgICAg
ICAgIHJlcG89ImNhaXJvZ3JhcGhpY3Mub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2Ojhm
YmI2ZmM2NjExN2FiNDEwMGJhZDgzMGNiNDQ3OTQ5N2U1M2M2ZjNmYWNiOThiZjA1YzhkMjk4NTU0
ZWJkZDkiCisgICAgICAgICAgICBtZDVzdW09IjhiM2RjYWRlODU5YzQ0ZmI3ZTU2ZmM2OGVkZmU5
YTQ1Ij4KKyAgICA8L2JyYW5jaD4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0i
cGl4bWFuIiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiCisgICAgICAgICAgICAgYXV0b2dlbmFyZ3M9
Ii0tZW5hYmxlLWd0az1ubyI+CisgICAgPGJyYW5jaCBtb2R1bGU9InNuYXBzaG90cy9waXhtYW4t
MC4yOS4yLnRhci5neiIgdmVyc2lvbj0iMC4yOS4yIgorICAgICAgICAgICAgcmVwbz0iY2Fpcm9n
cmFwaGljcy5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6NGM0ZTkyMTQzYTQ1NTdhNDYx
N2I4MGNhZjBhNThjY2IwMTJkODI5Mzc0MWU3NTM4OTAzN2NkNTEzM2IzMzVkYiIKKyAgICAgICAg
ICAgIG1kNXN1bT0iOGY1Nzk1ZWE5OGNhZGQ3YjdmMTJlNGIzNzM1MDBlZWYiPgorICAgIDwvYnJh
bmNoPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJmb250cyIKKyAgICAgICAg
ICAgICBza2lwLWF1dG9nZW49InRydWUiPgorICAgIDxicmFuY2ggbW9kdWxlPSJkb3dubG9hZHMv
bXJvYmluc29uL3dlYmtpdGd0ay10ZXN0LWZvbnRzL3dlYmtpdGd0ay10ZXN0LWZvbnRzLTAuMC4z
LnRhci5neiIgdmVyc2lvbj0iMC4wLjMiCisgICAgICAgICAgICByZXBvPSJnaXRodWIuY29tIgor
ICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjRhMGEwMWYwMDg1NTk5N2NkY2M3MjAxZjE2NGIzM2E0
ZTQxNDRlOGVhZGY0MGE1ZTU0MmExYzQ0OGUwMzVkZTUiCisgICAgICAgICAgICBtZDVzdW09IjEw
ZTc0ZGUxYThiYTk2MWQ5MDM3OTk0ZDQyN2IxZGQyIiBzaXplPSIxNjk4MTY0MiI+CisgICAgPC9i
cmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImxpYmZmaSIgYXV0b2dl
bi1zaD0iY29uZmlndXJlIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0iL3B1Yi9saWJmZmkvbGliZmZp
LTMuMC4xMS50YXIuZ3oiIHZlcnNpb249IjMuMC4xMSIKKyAgICAgICAgICAgICByZXBvPSJzb3Vy
Y2V3YXJlLm9yZyIKKyAgICAgICAgICAgICBoYXNoPSJzaGEyNTY6NzBiZmIwMTM1NjM2MDA4OWFh
OTdkM2U3MWUzZWRmMDVkMTk1NTk5ZmQ4MjJlOTIyZTUwZDQ2YTAwNTVhNjI4MyIKKyAgICAgICAg
ICAgICBtZDVzdW09ImY2OWI5NjkzMjI3ZDk3NjgzNWI0ODU3YjFiYTdkMGUzIi8+CisgIDwvYXV0
b3Rvb2xzPgorCisgIDx0YXJiYWxsIGlkPSJmcmVldHlwZTYiPgorICAgIDxzb3VyY2UgaHJlZj0i
ZG93bmxvYWQuc2F2YW5uYWguZ251Lm9yZy9yZWxlYXNlcy9mcmVldHlwZS9mcmVldHlwZS0yLjQu
Mi50YXIuYnoyIiB2ZXJzaW9uPSIyLjQuMiIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1Njo5YTk4
N2FlZjhjNTBkOWJjZmRmZGM5ZjAxMmY4YmQwZGU2MDk1Y2MxYTU1MjRlNjJjMWEwMzdkZWI4ZGFj
YmZlIgorICAgICAgICAgICAgbWQ1c3VtPSI2NDdlZThlZDI2NmY5YTQxMTdjOGQwYTQ4NTViM2Qz
ZSIgLz4KKyAgPC90YXJiYWxsPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdsaWIiCisgICAgICAgICAg
ICAgYXV0b2dlbi1zaD0iY29uZmlndXJlIgorICAgICAgICAgICAgIGF1dG9nZW5hcmdzPSItLWRp
c2FibGUtZHRyYWNlIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJs
aWJmZmkiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0iL3B1Yi9H
Tk9NRS9zb3VyY2VzL2dsaWIvMi4zNi9nbGliLTIuMzYuMC50YXIueHoiIHZlcnNpb249IjIuMzYu
MCIKKyAgICAgICAgICAgIHJlcG89ImZ0cC5nbm9tZS5vcmciCisgICAgICAgICAgICBoYXNoPSJz
aGEyNTY6NDU1YThhYmU4NjkyYzUxNzRiY2M3ZmZhMTViOTZhNzUyMWEyZjJmOWZiNDc1OTQ0MDU5
MjdjMzVjYjliYjIyNyIvPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJnbGli
LW5ldHdvcmtpbmciPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9Imds
aWIiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0iL3B1Yi9HTk9N
RS9zb3VyY2VzL2dsaWItbmV0d29ya2luZy8yLjMzL2dsaWItbmV0d29ya2luZy0yLjMzLjIudGFy
Lnh6IiB2ZXJzaW9uPSIyLjMzLjIiCisgICAgICAgICAgICByZXBvPSJmdHAuZ25vbWUub3JnIgor
ICAgICAgICAgICAgaGFzaD0ic2hhMjU2OmUyOThjZmYzOTM1ZWI3NTJiZTI5MGJiZjczNGU0NTdm
MTg3MGJkYjUzNzBlZTI5MjYwNmU2MDQwYTgyMDc0ZTciCisgICAgICAgICAgICBtZDVzdW09IjVh
YmIzNjRmMmEwYmFiZTJlYzFlM2E2ZDU5ZjY5MDQzIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxh
dXRvdG9vbHMgaWQ9ImxpYnNvdXAiCisgICAgICAgICAgICAgYXV0b2dlbmFyZ3M9Ii0td2l0aG91
dC1nbm9tZSAtLWRpc2FibGUtaW50cm9zcGVjdGlvbiI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAg
ICAgIDxkZXAgcGFja2FnZT0iZ2xpYi1uZXR3b3JraW5nIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+
CisgICAgPGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUvc291cmNlcy9saWJzb3VwLzIuNDIvbGli
c291cC0yLjQyLjAudGFyLnh6IiB2ZXJzaW9uPSIyLjQyLjAiCisgICAgICAgICAgICByZXBvPSJm
dHAuZ25vbWUub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjllMGU3ZWI1ZDNmNzQwMWNj
ZjUyMWZiYzI4OWZjMWZhMDkyM2I3Yzc4MzM3MjllMmVkNzY5NmY3Yjg0ODg5M2UiCisgICAgICAg
ICAgICBtZDVzdW09ImE2MzJhMzhkMjk4M2MyYTg4Njc5NjcyZDAwOTQwMTI4Ii8+CisgIDwvYXV0
b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImZvbnRjb25maWciIGF1dG9nZW4tc2g9ImNvbmZp
Z3VyZSI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZnJlZXR5cGU2
Ii8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9InNvZnR3YXJlL2Zv
bnRjb25maWcvcmVsZWFzZS9mb250Y29uZmlnLTIuOC4wLnRhci5neiIgdmVyc2lvbj0iMi44LjAi
CisgICAgICAgICAgICByZXBvPSJmcmVlZGVza3RvcC5vcmciCisgICAgICAgICAgICBoYXNoPSJz
aGEyNTY6ZmEyYTFjNmVlYTY1NGQ5ZmNlN2E0YjEyMjBmMTBjOTljZGVjODQ4ZGNjYWYxNjI1YzAx
ZjA3NmIzMTM4MjMzNSIKKyAgICAgICAgICAgIG1kNXN1bT0iNzdlMTVhOTIwMDZkZGMyYWRiYjA2
Zjg0MGQ1OTFjMGUiPgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29scz4KKworIDxhdXRvdG9v
bHMgaWQ9ImhhcmZidXp6IiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiPgorICAgPGJyYW5jaCBtb2R1
bGU9InNvZnR3YXJlL2hhcmZidXp6L3JlbGVhc2UvaGFyZmJ1enotMC45LjE0LnRhci5iejIiIHZl
cnNpb249IjAuOS4xNCIKKyAgICAgICAgICAgY2hlY2tvdXRkaXI9ImhhcmZidXp6LTAuOS4xNCIK
KyAgICAgICAgICAgcmVwbz0iZnJlZWRlc2t0b3Aub3JnIgorICAgICAgICAgICBoYXNoPSJzaGEy
NTY6ZDA3YzBmZmRiYmJmZGZiYjZjNjVlNzNmZTljNzY0NjZlODdkYmYwNGIwOTRjYmQwYWJmNWZk
N2Q1NzFhNDAwNCIKKyAgICAgICAgICAgbWQ1c3VtPSI3ZTE5OTBiNzkwNjBlOThlMmQzMWY2Nzdh
MGFjOWVlZCI+CisgICA8L2JyYW5jaD4KKyA8L2F1dG90b29scz4KKworPC9tb2R1bGVzZXQ+CmRp
ZmYgLS1naXQgYS9Ub29scy9uaXgvamhidWlsZHJjIGIvVG9vbHMvbml4L2poYnVpbGRyYwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zZmQzYjliODRmZDBhOTY2Yjk1MDEyNDk0M2VmZjA2NjAyYTE4OGExCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvbml4L2poYnVpbGRyYwpAQCAtMCwwICsxLDcxIEBACisjIS91c3Iv
YmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0IChDKSAyMDExIElnYWxpYSBTLkwuCisjIENvcHly
aWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTIgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorIworIyBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisj
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisjIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisj
IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyMgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0
byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKworaW1wb3J0IG11
bHRpcHJvY2Vzc2luZworaW1wb3J0IHN5cworCitfX25peF90b29sc19kaXJlY3RvcnkgPSBvcy5w
YXRoLmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKK3N5cy5wYXRoID0gW19fbml4
X3Rvb2xzX2RpcmVjdG9yeV0gKyBzeXMucGF0aAoraW1wb3J0IGNvbW1vbgorCitidWlsZF9wb2xp
Y3kgPSAndXBkYXRlZCcKKworIyBGSVhNRTogbW92ZSBzaGFyZWQgcGFydHMgaW50byAuLi9qaGJ1
aWxkIGZvbGRlci4KKworX19tb2R1bGVzZXRfZmlsZV91cmkgPSAnZmlsZTovLycgKyBvcy5wYXRo
LmpvaW4oX19uaXhfdG9vbHNfZGlyZWN0b3J5LCAnamhidWlsZC5tb2R1bGVzJykKK19fZXh0cmFf
bW9kdWxlc2V0cyA9IG9zLmVudmlyb24uZ2V0KCJXRUJLSVRfRVhUUkFfTU9EVUxFU0VUUyIsICIi
KS5zcGxpdCgiLCIpCittb2R1bGVzZXQgPSBbIF9fbW9kdWxlc2V0X2ZpbGVfdXJpLCBdCitpZiBf
X2V4dHJhX21vZHVsZXNldHMgIT0gWycnXToKKyAgICBtb2R1bGVzZXQuZXh0ZW5kKF9fZXh0cmFf
bW9kdWxlc2V0cykKKworX19leHRyYV9tb2R1bGVzID0gb3MuZW52aXJvbi5nZXQoIldFQktJVF9F
WFRSQV9NT0RVTEVTIiwgIiIpLnNwbGl0KCIsIikKK21vZHVsZXMgPSBbICd3ZWJraXRuaXgtdGVz
dGluZy1kZXBlbmRlbmNpZXMnLCBdCitpZiBfX2V4dHJhX21vZHVsZXMgIT0gWycnXToKKyAgICBt
b2R1bGVzLmV4dGVuZChfX2V4dHJhX21vZHVsZXMpCisKK2lmIG9zLmVudmlyb24uaGFzX2tleSgn
V0VCS0lUX09VVFBVVERJUicpOgorICAgIGNoZWNrb3V0cm9vdCA9IG9zLnBhdGguYWJzcGF0aChv
cy5wYXRoLmpvaW4ob3MuZW52aXJvblsnV0VCS0lUX09VVFBVVERJUiddLCAnRGVwZW5kZW5jaWVz
JywgJ1NvdXJjZScpKQorICAgIHByZWZpeCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4o
b3MuZW52aXJvblsnV0VCS0lUX09VVFBVVERJUiddLCAnRGVwZW5kZW5jaWVzJywgJ1Jvb3QnKSkK
K2Vsc2U6CisgICAgY2hlY2tvdXRyb290ID0gb3MucGF0aC5hYnNwYXRoKGNvbW1vbi50b3BfbGV2
ZWxfcGF0aCgnV2ViS2l0QnVpbGQnLCdEZXBlbmRlbmNpZXMnLCAnU291cmNlJykpCisgICAgcHJl
Zml4ID0gb3MucGF0aC5hYnNwYXRoKGNvbW1vbi50b3BfbGV2ZWxfcGF0aCgnV2ViS2l0QnVpbGQn
LCdEZXBlbmRlbmNpZXMnLCAnUm9vdCcpKQorCitub25vdGlmeSA9IFRydWUKK25vdHJheWljb24g
PSBUcnVlCitpZiAnTUFLRUZMQUdTJyBub3QgaW4gb3MuZW52aXJvbjoKKyAgICBvcy5lbnZpcm9u
WydNQUtFRkxBR1MnXSA9ICctaiVkJyAlIG11bHRpcHJvY2Vzc2luZy5jcHVfY291bnQoKQorCisj
IFVzZSBzeXN0ZW0gbGlicmFyaWVzIHdoaWxlIGJ1aWxkaW5nLgoraWYgdXNlX2xpYjY0OgorICAg
IF9saWJkaXIgPSAnbGliNjQnCitlbHNlOgorICAgIF9saWJkaXIgPSAnbGliJworYWRkcGF0aCgn
UEtHX0NPTkZJR19QQVRIJywgb3MucGF0aC5qb2luKG9zLnNlcCwgJ3VzcicsIF9saWJkaXIsICdw
a2djb25maWcnKSkKK2FkZHBhdGgoJ1BLR19DT05GSUdfUEFUSCcsIG9zLnBhdGguam9pbihvcy5z
ZXAsICd1c3InLCAnc2hhcmUnLCAncGtnY29uZmlnJykpCisKK2FkZHBhdGgoJ1hER19EQVRBX0RJ
UlMnLCAnL3Vzci9zaGFyZScpCithZGRwYXRoKCdYREdfQ09ORklHX0RJUlMnLCAnL2V0Yy94ZGcn
KQorCisjIEF2b2lkIG92ZXJsYXBwaW5nIHNlYXJjaCBwYXRoIENNQUtFIHdhcm5pbmcgb24gNjRi
aXQgc3lzdGVtcy4KK2lmICh1c2VfbGliNjQpOgorICAgIGFkZHBhdGgoJ0NNQUtFX1BSRUZJWF9Q
QVRIJywgb3MucGF0aC5qb2luKG9zLnNlcCwgcHJlZml4LCAnbGliNjQnKSkKK2Vsc2U6CisgICAg
YWRkcGF0aCgnQ01BS0VfUFJFRklYX1BBVEgnLCBwcmVmaXgpCisKK3BhcnRpYWxfYnVpbGQgPSBG
YWxzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvbml4L3J1bi13aXRoLWpoYnVpbGQgYi9Ub29scy9uaXgv
cnVuLXdpdGgtamhidWlsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTlmMmUyODU0NzBlOTMzOTZlODhmYTdhMDNh
NGVhMTE1Njc3ZTIwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvbml4L3J1bi13aXRoLWpoYnVp
bGQKQEAgLTAsMCArMSwyNiBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAo
QykgMjAxMSBJZ2FsaWEgUy5MLgorIyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRp
b24KKyMgQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAg
MDIxMTAtMTMwMSAgVVNBCisKK2ltcG9ydCBjb21tb24KK2ltcG9ydCBvcworaW1wb3J0IHN5cwor
CisKK2poYnVpbGRfd3JhcHBlciA9IGNvbW1vbi50b3BfbGV2ZWxfcGF0aCgnVG9vbHMnLCAnamhi
dWlsZCcsICdqaGJ1aWxkLXdyYXBwZXInKQorb3MuZXhlY3ZlKGpoYnVpbGRfd3JhcHBlciwgW2po
YnVpbGRfd3JhcHBlciwgJy0tbml4JywgJ3J1biddICsgc3lzLmFyZ3ZbMTpdLCBvcy5lbnZpcm9u
KQpkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAppbmRleCAyODFm
OTRhNTA3NTY4Mjc0YzdkNDE2ZTRiYzZjZTMzMWYxZjgyNThlLi5iZmM0OWQ4MmZjNWNlZTkwMDdl
N2RiOGIwYTE4ZmUyOTM3NTU3YjQ1IDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysgYi9D
TWFrZUxpc3RzLnR4dApAQCAtMTAsNiArMTAsNyBAQCBzZXQoV0VCQ09SRV9ESVIgIiR7Q01BS0Vf
U09VUkNFX0RJUn0vU291cmNlL1dlYkNvcmUiKQogc2V0KFdFQktJVF9ESVIgIiR7Q01BS0VfU09V
UkNFX0RJUn0vU291cmNlL1dlYktpdCIpCiBzZXQoV0VCS0lUMl9ESVIgIiR7Q01BS0VfU09VUkNF
X0RJUn0vU291cmNlL1dlYktpdDIiKQogc2V0KFRISVJEUEFSVFlfRElSICIke0NNQUtFX1NPVVJD
RV9ESVJ9L1NvdXJjZS9UaGlyZFBhcnR5IikKK3NldChQTEFURk9STV9ESVIgIiR7Q01BS0VfU09V
UkNFX0RJUn0vU291cmNlL1BsYXRmb3JtIikKIAogc2V0KFRPT0xTX0RJUiAiJHtDTUFLRV9TT1VS
Q0VfRElSfS9Ub29scyIpCiAKQEAgLTM5LDcgKzQwLDcgQEAgaW5jbHVkZShXZWJLaXRGZWF0dXJl
cykKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgRGV0ZXJtaW5lIHdoaWNoIHBvcnQgd2lsbCBi
ZSBidWlsdAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotc2V0KEFMTF9QT1JUUyBFZmwgV2luQ0Ug
QmxhY2tCZXJyeSBHVEspCitzZXQoQUxMX1BPUlRTIEVmbCBXaW5DRSBCbGFja0JlcnJ5IEdUSyBO
aXgpCiBzZXQoUE9SVCAiTk9QT1JUIiBDQUNIRSBTVFJJTkcgImNob29zZSB3aGljaCBXZWJLaXQg
cG9ydCB0byBidWlsZCAob25lIG9mICR7QUxMX1BPUlRTfSkiKQogCiBsaXN0KEZJTkQgQUxMX1BP
UlRTICR7UE9SVH0gUkVUKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4
IDU0MjIyZmI0ZjU2NjMyZWY4ZmY3YjM5OTA3MDM0N2QyMDcyOTUxOWUuLjlmN2E2YzI1ZTUxMzZh
MGJlMjkwOWE3NjBjNjUxNWQ3YjQ2N2Q1ZmYgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0wNy0wNSAgTWFyY2VsbyBMaXJhICA8bWFy
Y2Vsby5saXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgTml4IHVwc3RyZWFtaW5nIC0gQWRk
aW5nIGJ1aWxkIGZpbGVzIGFuZCBzdXBwb3J0aW5nIHNjcmlwdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM2NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogU291cmNlL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9GaW5kRUdM
LmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9GaW5kT3BlbkdMRVMyLmNtYWtlOiBBZGRl
ZC4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0NvbW1vbi5jbWFrZToKKyAgICAgICAg
KiBTb3VyY2UvY21ha2UvT3B0aW9uc05peC5jbWFrZTogQWRkZWQuCisKIDIwMTMtMDctMDkgIENh
cmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQuIFVwZGF0ZSBORVdTIGFuZCBWZXJzaW9ucy5tNCBmb3IgMi4xLjMgcmVsZWFzZS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215523</attachid>
            <date>2013-10-30 10:44:14 -0700</date>
            <delta_ts>2013-11-25 14:31:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118367-20131030144414.patch</filename>
            <type>text/plain</type>
            <size>66105</size>
            <attacher name="Lauro Moura Maranhao Neto">lauro.neto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4MjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhMThkZTYwY2RmMDFk
MWY5ZTM4ODQ5NTM3MDMyNzAyYTJjODg3Yzk1Li43NmVjNGJjZjU2MjI0YTMyYzM5ZDkzMzFlNmYy
OTcwM2M1NjAyYTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0xMC0zMCAg
TWFyY2VsbyBMaXJhICA8bWFyY2Vsby5saXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgTml4
IHVwc3RyZWFtaW5nIC0gQWRkaW5nIGJ1aWxkIGZpbGVzIGFuZCBzdXBwb3J0aW5nIHNjcmlwdHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM2Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6IEFkZGVkLgorICAgICAgICAqIFBsYXRmb3JtTml4LmNtYWtlOiBBZGRlZC4KKwog
MjAxMy0xMC0yOSAgSHVnbyBQYXJlbnRlIExpbWEgIDxodWdvLmxpbWFAb3BlbmJvc3NhLm9yZz4K
IAogICAgICAgICBBZGRpbmcgTml4IGZpbGVzIGluIFNvdXJjZS9QbGF0Zm9ybSB0byB0cnVuawpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpp
bmRleCBiNDBjM2MzY2M4MTZkNGJlZTE2NzA4NDEyNDAyNTc1NzQ1ODJhOTE3Li44M2RhNTI5MTFm
NjdhZTQwNDY4MTVjMGQ5MmY1ZjEzZDU5ZWRhYjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEz
LTEwLTMwICBNYXJjZWxvIExpcmEgIDxtYXJjZWxvLmxpcmFAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBOaXggdXBzdHJlYW1pbmcgLSBBZGRpbmcgYnVpbGQgZmlsZXMgYW5kIHN1cHBvcnRpbmcg
c2NyaXB0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTE4MzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB3dGYvRmVhdHVyZURlZmluZXMuaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKyAgICAg
ICAgKiB3dGYvUGxhdGZvcm1OaXguY21ha2U6IEFkZGVkLgorCiAyMDEzLTEwLTI5ICBBbmRyZWFz
IEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBTdHJpbmdJbXBsOjppc29sYXRl
ZENvcHkoKSBzaG91bGQgcmV0dXJuIFBhc3NSZWYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWEwZGQxMDVhNmNk
NDMzNDA2MGQ1MGU4MjVlYTUxY2ExZjBlOGE4ZC4uOGUxODgxN2ZiZDdiYjM2OTNlMjlmMjg1Y2Nh
NDhmZDQwY2RlYjc3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTEwLTMwICBN
YXJjZWxvIExpcmEgIDxtYXJjZWxvLmxpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBOaXgg
dXBzdHJlYW1pbmcgLSBBZGRpbmcgYnVpbGQgZmlsZXMgYW5kIHN1cHBvcnRpbmcgc2NyaXB0cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MzY3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBQbGF0Zm9ybU5peC5jbWFrZTogQWRkZWQuCisKIDIwMTMtMTAt
MzAgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T04ocjE1ODIxNCk6IEl0IG1hZGUgemlsbGlvbiB0ZXN0cyBjcmFzaCBvbiBHVEsgYW5kIEVGTApk
aWZmIC0tZ2l0IGEvU291cmNlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0NNYWtlTGlzdHMudHh0
CmluZGV4IDM3MzZlZWExN2E0NWVmNGExZDc1MjE2NGZhOTI1YTJiODdmOGFhYTQuLjI2OGJhMmUy
NDhkYTY3OWE4ZjNlZjEwYjFlNzlmOTE1OTc4NWUxZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvQ01ha2VMaXN0cy50eHQKQEAgLTUsNiArNSwxMCBAQCBh
ZGRfc3ViZGlyZWN0b3J5KFdURikKIAogYWRkX3N1YmRpcmVjdG9yeShKYXZhU2NyaXB0Q29yZSkK
IAoraWYgKCIke1BPUlR9IiBTVFJFUVVBTCAiTml4IikKKyAgICBhZGRfc3ViZGlyZWN0b3J5KFBs
YXRmb3JtKQorZW5kaWYgKCkKKwogaWYgKEVOQUJMRV9BUElfVEVTVFMpCiAgICAgYWRkX3N1YmRp
cmVjdG9yeShjbWFrZS9ndGVzdCkKIGVuZGlmICgpCkBAIC0yNiw2ICszMCwxMyBAQCBXRUJLSVRf
SU5DTFVERV9DT05GSUdfRklMRVNfSUZfRVhJU1RTKCkKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
ICMgU2V0IGNvbXBpbGVyIGZsYWdzIGZvciBhbGwgdGFyZ2V0cwogIyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQoraWYgKCIke1BPUlR9IiBTVFJFUVVBTCAiTml4IikKKyAgICBpZiAoTk9UIERJU0FCTEVf
U1RSSUNUX0JVSUxEKQorICAgICAgICBzZXQoQURESVRJT05BTF9GTEFHUyBFTkFCTEVfV0VSUk9S
KQorICAgIGVuZGlmICgpCisgICAgV0VCS0lUX1NFVF9FWFRSQV9DT01QSUxFUl9GTEFHUyhQbGF0
Zm9ybSAke0FERElUSU9OQUxfRkxBR1N9KQorZW5kaWYgKCkKKwogaWYgKCR7UE9SVH0gU1RSRVFV
QUwgIkVmbCIpCiAgICAgc2V0KEFERElUSU9OQUxfRkxBR1MgRU5BQkxFX1dFUlJPUikKIGVuZGlm
ICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
UGxhdGZvcm0vQ01ha2VMaXN0cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFmN2NhYjllMzgzZTU4MjZmOGUx
OGM0M2JjNWM0OTA2NGI3YWY0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9D
TWFrZUxpc3RzLnR4dApAQCAtMCwwICsxLDUgQEAKK1dFQktJVF9JTkNMVURFX0NPTkZJR19GSUxF
U19JRl9FWElTVFMoKQorCitpbmNsdWRlX2RpcmVjdG9yaWVzKCR7UGxhdGZvcm1fSU5DTFVERVN9
KQorYWRkX2xpYnJhcnkoUGxhdGZvcm0gU1RBVElDICR7UGxhdGZvcm1fU09VUkNFU30pCitzZXRf
dGFyZ2V0X3Byb3BlcnRpZXMoUGxhdGZvcm0gUFJPUEVSVElFUyBGT0xERVIgIlBsYXRmb3JtIikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybU5peC5jbWFrZSBiL1NvdXJjZS9Q
bGF0Zm9ybS9QbGF0Zm9ybU5peC5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYzFjOWMxYjc3NzkzYTAyZjcy
N2E2MTgyNTUzZGI5ZTY5MzdlYzU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1BsYXRmb3Jt
L1BsYXRmb3JtTml4LmNtYWtlCkBAIC0wLDAgKzEsMzAgQEAKK3NldChQbGF0Zm9ybV9JTkNMVURF
UworICAgICR7Q01BS0VfQklOQVJZX0RJUn0gIyBGb3IgY21ha2Vjb25maWcuaAorICAgICR7V1RG
X0RJUn0gIyBGb3IgY29uZmlnLmgKKyAgICBuaXgKKworICAgICR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL2dyYXBoaWNzLyAjIEZvciBJbnRSZWN0LmgKKykKKworc2V0KFBsYXRmb3JtX0hFQURFUlMK
KyAgICBuaXgvcHVibGljL1BsYXRmb3JtLmgKKyAgICBuaXgvcHVibGljL1dlYkF1ZGlvQnVzLmgK
KyAgICBuaXgvcHVibGljL1dlYkF1ZGlvRGV2aWNlLmgKKyAgICBuaXgvcHVibGljL1dlYkNvbG9y
LmgKKyAgICBuaXgvcHVibGljL1dlYkNvbW1vbi5oCisgICAgbml4L3B1YmxpYy9XZWJEYXRhLmgK
KyAgICBuaXgvcHVibGljL1dlYkZGVEZyYW1lLmgKKyAgICBuaXgvcHVibGljL1dlYkdhbWVwYWQu
aAorICAgIG5peC9wdWJsaWMvV2ViR2FtZXBhZHMuaAorICAgIG5peC9wdWJsaWMvV2ViUmVjdC5o
CisgICAgbml4L3B1YmxpYy9XZWJTaXplLmgKKyAgICBuaXgvcHVibGljL1dlYlRoZW1lRW5naW5l
LmgKKyAgICBuaXgvcHVibGljL1dlYlZlY3Rvci5oCispCisKK3NldChQbGF0Zm9ybV9TT1VSQ0VT
CisgICAgbml4L3NyYy9EZWZhdWx0V2ViVGhlbWVFbmdpbmUuY3BwCisgICAgbml4L3NyYy9QbGF0
Zm9ybS5jcHAKKykKKworaW5zdGFsbChGSUxFUyAke1BsYXRmb3JtX0hFQURFUlN9IERFU1RJTkFU
SU9OIGluY2x1ZGUvJHtXZWJLaXQyX09VVFBVVF9OQU1FfS0ke1BST0pFQ1RfVkVSU0lPTl9NQUpP
Un0vTml4UGxhdGZvcm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5l
cy5oIGIvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMuaAppbmRleCBiZTM4MjMyZTdhMjRl
NDNmMzkwYTNjOWI4MzZmMGEwNGFmYTI5ZGY0Li43N2M2M2Y1NDMzYWEyMGI2YTRkMWRjNjhhYmY4
NjhmYjU2OWMyNjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgKQEAgLTI4MSw2ICsyODEsMTEg
QEAKIAogI2VuZGlmIC8qIFBMQVRGT1JNKFdJTl9DQUlSTykgKi8KIAorLyogLS0tLS0tLS0tIE5J
WCBwb3J0IChVbml4KSAtLS0tLS0tLS0gKi8KKyNpZiBQTEFURk9STShOSVgpCisjaW5jbHVkZSAi
bml4L0ZlYXR1cmVEZWZpbmVzTml4LmgiCisjZW5kaWYgLyogUExBVEZPUk0oTklYKSAqLworCiAv
KiAtLS0tLS0tLS0gRUZMIHBvcnQgKFVuaXgpIC0tLS0tLS0tLSAqLwogI2lmIFBMQVRGT1JNKEVG
TCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtLmgKaW5kZXggN2QwZGU0YzVjOTI5MzUzNTE4Mjc4NTI5NDBlODJhNjk5NTdj
MzQwZS4uOGMyYWIzZTZjODE3ZDg1ZDgzMmVjZmU3NDBiYTFhNjU1NWMyNTY3MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bS5oCkBAIC00NTEsNiArNDUxLDggQEAKICNkZWZpbmUgV1RGX1BMQVRGT1JNX0dUSyAxCiAjZWxp
ZiBkZWZpbmVkKEJVSUxESU5HX0JMQUNLQkVSUllfXykKICNkZWZpbmUgV1RGX1BMQVRGT1JNX0JM
QUNLQkVSUlkgMQorI2VsaWYgZGVmaW5lZChCVUlMRElOR19OSVhfXykKKyNpbmNsdWRlICJuaXgv
UGxhdGZvcm1OaXguaCIKICNlbGlmIE9TKERBUldJTikKICNkZWZpbmUgV1RGX1BMQVRGT1JNX01B
QyAxCiAjZWxpZiBPUyhXSU5ET1dTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm1OaXguY21ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybU5peC5jbWFrZQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wNWZkNWNiMWFmOWU3ODcxOGYwMjU4Njk1NWYwM2RiNmUzNWY1Nzg1Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1OaXguY21ha2UKQEAgLTAsMCArMSwxNyBAQAor
bGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKKyAgICBnb2JqZWN0L0dPd25QdHIuY3BwCisgICAgZ29i
amVjdC9HUmVmUHRyLmNwcAorICAgIGdvYmplY3QvR2xpYlV0aWxpdGllcy5jcHAKKworICAgIGd0
ay9NYWluVGhyZWFkR3RrLmNwcAorKQorCitsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTCisgICAg
JHtHTElCX0dJT19MSUJSQVJJRVN9CisgICAgJHtHTElCX0xJQlJBUklFU30KKyAgICBwdGhyZWFk
CispCisKK2xpc3QoQVBQRU5EIFdURl9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgJHtHTElCX0lO
Q0xVREVfRElSU30KKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYzdkYTljNzIwYzQwYjVhYWQ2
MGJlMGU1NmM3YzY1YmY0NmEwZmNlNi4uYzgyYWE5N2Q2ZWY5YmMyZGRlYTBlMzMyOWZiN2U2N2Mw
NDdjZjVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTI4MTcsMTYgKzI4MTcsMTggQEAgZW5k
aWYgKCkKIAogaWYgKFdURl9VU0VfM0RfR1JBUEhJQ1MpCiAgICAgbGlzdChBUFBFTkQgV2ViQ29y
ZV9JTkNMVURFX0RJUkVDVE9SSUVTCi0gICAgICAgICR7T1BFTkdMX0lOQ0xVREVfRElSfQogICAg
ICAgICAiJHtUSElSRFBBUlRZX0RJUn0vQU5HTEUvc3JjIgogICAgICAgICAiJHtUSElSRFBBUlRZ
X0RJUn0vQU5HTEUvaW5jbHVkZSIKICAgICAgICAgIiR7VEhJUkRQQVJUWV9ESVJ9L0FOR0xFL2lu
Y2x1ZGUvS0hSIgogICAgICAgICAiJHtUSElSRFBBUlRZX0RJUn0vQU5HTEUvaW5jbHVkZS9HTFNM
QU5HIgogICAgICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1IgogICAg
ICkKLSAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUwotICAgICAgICAke09QRU5HTF9n
bF9MSUJSQVJZfQotICAgICkKKworICAgICMgTml4IG1heSB1c2UgZWl0aGVyIE9wZW5HTCBvciBP
cGVuR0xFUzIgaGVhZGVycywgc28gd2UgaGFuZGxlIHRoaXMgYXQgUGxhdGZvcm1OaXguY21ha2Uu
CisgICAgaWYgKE5PVCBQT1JUIFNUUkVRVUFMICJOaXgiKQorICAgICAgICBsaXN0KEFQUEVORCBX
ZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMgJHtPUEVOR0xfSU5DTFVERV9ESVJ9KQorICAgICAg
ICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUyAke09QRU5HTF9nbF9MSUJSQVJZfSkKKyAg
ICBlbmRpZiAoKQogCiAgICAgbGlzdChBUFBFTkQgQU5HTEVTdXBwb3J0X1NPVVJDRVMKICAgICAg
ICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L2dsc2xhbmcuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU5peC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtTml4LmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjZTdjNzJkNzNiMjE1ODliMmZjMjhjMjA4ZjQzYzc4
MzY3YjdiMmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU5peC5j
bWFrZQpAQCAtMCwwICsxLDI4OCBAQAorbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVD
VE9SSUVTCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25peCIKKyAgICAiJHtXRUJDT1JF
X0RJUn0vcGxhdGZvcm0vY2Fpcm8iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlw
ZSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4IgorICAgICIke1dF
QkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei8iCisgICAgIiR7V0VCQ09SRV9E
SVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L25nIgorICAgICIke1dFQkNPUkVfRElSfS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2xpbnV4IgorICAgICIke1dFQkNP
UkVfRElSfS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIiCisgICAgIiR7UExBVEZPUk1f
RElSfS9uaXgvIgorKQorCitsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICBjc3MvV2Vi
S2l0Q1NTQXJyYXlGdW5jdGlvblZhbHVlLmNwcAorICAgIGNzcy9XZWJLaXRDU1NNYXRGdW5jdGlv
blZhbHVlLmNwcAorICAgIGNzcy9XZWJLaXRDU1NNYXRyaXguY3BwCisgICAgY3NzL1dlYktpdENT
U01peEZ1bmN0aW9uVmFsdWUuY3BwCisKKyAgICBlZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAK
KworICAgIHBhZ2UvVG91Y2hBZGp1c3RtZW50LmNwcAorCisgICAgcGFnZS9uaXgvRXZlbnRIYW5k
bGVyTml4LmNwcAorCisgICAgcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtTm9uZS5jcHAKKyAgICBw
bGF0Zm9ybS9Db250ZXh0TWVudU5vbmUuY3BwCisgICAgcGxhdGZvcm0vQ3Vyc29yLmNwcAorICAg
IHBsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKworICAgIHBsYXRmb3JtL2NhaXJvL1dp
ZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VT
b3VyY2UuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuY3BwCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvV09GRkZpbGVGb3JtYXQuY3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0NhaXJvVXRpbGl0aWVzLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0RyYXdpbmdC
dWZmZXJDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3Bw
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKKyAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFkaWVudENhaXJvLmNwcAorICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vSW1hZ2VDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbnRSZWN0
Q2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uY3BwCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL1BhdHRlcm5DYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Q
bGF0Zm9ybVBhdGhDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9SZWZQdHJD
YWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9UaWxlQ2Fpcm8uY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVGlsZWRCYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm8uY3Bw
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVHJhbnNmb3JtYXRpb25NYXRyaXhDYWlyby5j
cHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaEdlbmVy
YXRvci5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlk
YXRlZFByb2dyYW0uY3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2Fj
aGVGcmVlVHlwZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUv
Rm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0
eXBlL0dseXBoUGFnZVRyZWVOb2RlRnJlZVR5cGUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
ZnJlZXR5cGUvU2ltcGxlRm9udERhdGFGcmVlVHlwZS5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJm
YnV6ei9IYXJmQnV6ekZhY2VDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6
ei9IYXJmQnV6elNoYXBlci5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL25peC9JY29uTml4
LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL25peC9JbWFnZU5peC5jcHAKKworICAgIHBsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAor
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNw
cAorCisgICAgcGxhdGZvcm0vZ3RrL0V2ZW50TG9vcEd0ay5jcHAKKyAgICBwbGF0Zm9ybS9ndGsv
TG9nZ2luZ0d0ay5jcHAKKyAgICBwbGF0Zm9ybS9ndGsvU2hhcmVkQnVmZmVyR3RrLmNwcAorCisg
ICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmNwcAorCisgICAgcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5jcHAKKyAgICBwbGF0Zm9ybS9p
bWFnZS1kZWNvZGVycy9ibXAvQk1QSW1hZ2VSZWFkZXIuY3BwCisKKyAgICBwbGF0Zm9ybS9pbWFn
ZS1kZWNvZGVycy9jYWlyby9JbWFnZURlY29kZXJDYWlyby5jcHAKKworICAgIHBsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL2dpZi9HSUZJbWFnZURlY29kZXIuY3BwCisgICAgcGxhdGZvcm0vaW1hZ2Ut
ZGVjb2RlcnMvZ2lmL0dJRkltYWdlUmVhZGVyLmNwcAorCisgICAgcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvaWNvL0lDT0ltYWdlRGVjb2Rlci5jcHAKKworICAgIHBsYXRmb3JtL2ltYWdlLWRlY29k
ZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAKKworICAgIHBsYXRmb3JtL2ltYWdlLWRlY29k
ZXJzL3BuZy9QTkdJbWFnZURlY29kZXIuY3BwCisKKyAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVy
cy93ZWJwL1dFQlBJbWFnZURlY29kZXIuY3BwCisKKyAgICBwbGF0Zm9ybS9saW51eC9HYW1lcGFk
RGV2aWNlTGludXguY3BwCisKKyAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVk
aWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuY3BwCisKKyAgICBwbGF0Zm9ybS9uaXgvQ3Vyc29yTml4
LmNwcAorICAgIHBsYXRmb3JtL25peC9EcmFnRGF0YU5peC5jcHAKKyAgICBwbGF0Zm9ybS9uaXgv
RHJhZ0ltYWdlTml4LmNwcAorICAgIHBsYXRmb3JtL25peC9FcnJvcnNOaXguY3BwCisgICAgcGxh
dGZvcm0vbml4L0ZpbGVTeXN0ZW1OaXguY3BwCisgICAgcGxhdGZvcm0vbml4L0xhbmd1YWdlTml4
LmNwcAorICAgIHBsYXRmb3JtL25peC9Mb2NhbGl6ZWRTdHJpbmdzTml4LmNwcAorICAgIHBsYXRm
b3JtL25peC9NSU1FVHlwZVJlZ2lzdHJ5Tml4LmNwcAorICAgIHBsYXRmb3JtL25peC9OaXhLZXli
b2FyZFV0aWxpdGllcy5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvUGFzdGVib2FyZE5peC5jcHAKKyAg
ICBwbGF0Zm9ybS9uaXgvUGxhdGZvcm1LZXlib2FyZEV2ZW50Tml4LmNwcAorICAgIHBsYXRmb3Jt
L25peC9QbGF0Zm9ybVNjcmVlbk5peC5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvUmVuZGVyVGhlbWVO
aXguY3BwCisgICAgcGxhdGZvcm0vbml4L1J1bkxvb3BOaXguY3BwCisgICAgcGxhdGZvcm0vbml4
L1Njcm9sbGJhclRoZW1lTml4LmNwcAorICAgIHBsYXRmb3JtL25peC9TaGFyZWRUaW1lck5peC5j
cHAKKyAgICBwbGF0Zm9ybS9uaXgvU291bmROaXguY3BwCisgICAgcGxhdGZvcm0vbml4L1RlbXBv
cmFyeUxpbmtTdHVicy5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvV2lkZ2V0Tml4LmNwcAorCisgICAg
cGxhdGZvcm0vbml4L3N1cHBvcnQvV2ViQXVkaW9CdXMuY3BwCisgICAgcGxhdGZvcm0vbml4L3N1
cHBvcnQvV2ViRGF0YS5jcHAKKworICAgIHBsYXRmb3JtL3RleHQvTG9jYWxlTm9uZS5jcHAKKwor
ICAgIHBsYXRmb3JtL3RleHQvbml4L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VOaXguY3Bw
CisKKyAgICBwbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcAorICAgIHBsdWdpbnMvUGx1Z2luRGVi
dWcuY3BwCisgICAgcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcAorICAgIHBsdWdpbnMvUGx1Z2lu
UGFja2FnZU5vbmUuY3BwCisgICAgcGx1Z2lucy9QbHVnaW5TdHJlYW0uY3BwCisgICAgcGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcAorICAgIHBsdWdpbnMvUGx1Z2luVmlld05vbmUuY3BwCisKKyAgICBy
ZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFkZXIuY3BwCisgICAgcmVuZGVyaW5nL3N0eWxl
L1N0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5jcHAKKyAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVD
dXN0b21GaWx0ZXJQcm9ncmFtQ2FjaGUuY3BwCispCisKK2lmIChXVEZfVVNFX09QRU5HTF9FU18y
KQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCisgICAgICAgIHBsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTEVTLmNwcAorICAgICkKKyAgICBs
aXN0KElOU0VSVCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMgMCAke09QRU5HTEVTMl9JTkNM
VURFX0RJUlN9KQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTICR7T1BFTkdMRVMy
X0xJQlJBUklFU30pCisgICAgYWRkX2RlZmluaXRpb25zKCR7T1BFTkdMRVMyX0RFRklOSVRJT05T
fSkKK2Vsc2UgKCkKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAKKyAgICAgICAgcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcAorICAgICkK
KyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUworICAgICAgICAke09QRU5HTF9nbF9M
SUJSQVJZfQorICAgICkKK2VuZGlmICgpCisKK2lmIChXVEZfVVNFX0VHTCkKKyAgICBsaXN0KElO
U0VSVCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMgMAorICAgICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9lZ2wKKyAgICAgICAgJHtFR0xfSU5DTFVERV9ESVJ9CisgICAgKQorICAgIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUworICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HTENv
bnRleHQuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4
dDNEQ2Fpcm8uY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZS5jcHAKKworICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250
ZXh0RnJvbUN1cnJlbnRFR0wuY3BwCisgICAgKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElC
UkFSSUVTICR7RUdMX0xJQlJBUll9KQorZWxzZSAoKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVf
SU5DTFVERV9ESVJFQ1RPUklFUworICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9n
bHgKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWZsCisgICAgICAgICR7WDEx
X1gxMV9JTkNMVURFX1BBVEh9CisgICAgKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNF
UworICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RFZmwuY3Bw
CisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUu
Y3BwCisKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0
LmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2Uu
Y3BwCisKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNl
LmNwcAorCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VmbC9HTFRyYW5zcG9y
dFN1cmZhY2UuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VmbC9HcmFw
aGljc1N1cmZhY2VDb21tb24uY3BwCisKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZ2x4L0dMWENvbnRleHQuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L2dseC9HTFhTdXJmYWNlLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9n
bHgvWDExSGVscGVyLmNwcAorICAgICkKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklF
UyAke1gxMV9YMTFfTElCfSAke1gxMV9YY29tcG9zaXRlX0xJQn0gJHtYMTFfWHJlbmRlcl9MSUJ9
KQorZW5kaWYgKCkKKworbGlzdChBUFBFTkQgV2ViQ29yZV9VU0VSX0FHRU5UX1NUWUxFX1NIRUVU
UworICAgICR7V0VCQ09SRV9ESVJ9L2Nzcy9tZWRpYUNvbnRyb2xzTml4LmNzcworICAgICR7V0VC
Q09SRV9ESVJ9L2Nzcy9tZWRpYUNvbnRyb2xzTml4RnVsbHNjcmVlbi5jc3MKKykKKworbGlzdChB
UFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMKKyAgICAke0NBSVJPX0xJQlJBUklFU30KKyAgICAke0ZP
TlRDT05GSUdfTElCUkFSSUVTfQorICAgICR7RlJFRVRZUEVfTElCUkFSSUVTfQorICAgICR7R0xJ
Ql9HSU9fTElCUkFSSUVTfQorICAgICR7R0xJQl9HTU9EVUxFX0xJQlJBUklFU30KKyAgICAke0dM
SUJfR09CSkVDVF9MSUJSQVJJRVN9CisgICAgJHtHTElCX0xJQlJBUklFU30KKyAgICAke0hBUkZC
VVpaX0xJQlJBUklFU30KKyAgICAke0pQRUdfTElCUkFSWX0KKyAgICAke0xJQlhNTDJfTElCUkFS
SUVTfQorICAgICR7TElCWFNMVF9MSUJSQVJJRVN9CisgICAgJHtQTkdfTElCUkFSWX0KKyAgICAk
e1NRTElURV9MSUJSQVJJRVN9CisgICAgJHtaTElCX0xJQlJBUklFU30KKyAgICBQbGF0Zm9ybQor
KQorCitsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAke0ZPTlRD
T05GSUdfSU5DTFVERV9ESVJ9CisgICAgJHtDQUlST19JTkNMVURFX0RJUlN9CisgICAgJHtGUkVF
VFlQRV9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJYTUwyX0lOQ0xVREVfRElSfQorICAgICR7TElC
WFNMVF9JTkNMVURFX0RJUn0KKyAgICAke1NRTElURV9JTkNMVURFX0RJUn0KKyAgICAke0dMSUJf
SU5DTFVERV9ESVJTfQorICAgICR7WkxJQl9JTkNMVURFX0RJUlN9CisgICAgJHtIQVJGQlVaWl9J
TkNMVURFX0RJUlN9CispCisKK2FkZF9kZWZpbml0aW9ucygtRERBVEFfRElSPSIke0NNQUtFX0lO
U1RBTExfUFJFRklYfS8ke0RBVEFfSU5TVEFMTF9ESVJ9IikKKworaWYgKEVOQUJMRV9XRUJfQVVE
SU8pCisgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICIke1dF
QkNPUkVfRElSfS9wbGF0Zm9ybS9hdWRpby9uaXgiCisgICkKKyAgbGlzdChBUFBFTkQgV2ViQ29y
ZV9TT1VSQ0VTCisgICAgcGxhdGZvcm0vYXVkaW8vbml4L0F1ZGlvQnVzTml4LmNwcAorICAgIHBs
YXRmb3JtL2F1ZGlvL25peC9BdWRpb0Rlc3RpbmF0aW9uTml4LmNwcAorICAgIHBsYXRmb3JtL2F1
ZGlvL25peC9GRlRGcmFtZU5peC5jcHAKKyAgKQorICBzZXQoV0VCX0FVRElPX0RJUiAke0NNQUtF
X0lOU1RBTExfUFJFRklYfS8ke0RBVEFfSU5TVEFMTF9ESVJ9L3dlYmF1ZGlvL3Jlc291cmNlcykK
KyAgZmlsZShHTE9CIFdFQl9BVURJT19EQVRBICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9hdWRp
by9yZXNvdXJjZXMvKi53YXYiKQorICBpbnN0YWxsKEZJTEVTICR7V0VCX0FVRElPX0RBVEF9IERF
U1RJTkFUSU9OICR7V0VCX0FVRElPX0RJUn0pCisgIGFkZF9kZWZpbml0aW9ucygtRFVOSU5TVEFM
TEVEX0FVRElPX1JFU09VUkNFU19ESVI9IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2F1ZGlvL3Jl
c291cmNlcyIpCitlbmRpZiAoKQorCitpZiAoRU5BQkxFX0dBTUVQQUQpCisgICAgbGlzdChBUFBF
TkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgIHBsYXRmb3JtL25peC9HYW1lcGFkc05peC5jcHAK
KyAgICApCitlbmRpZiAoKQorCitsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICBwbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTb3VwLmNwcAorICAgIHBs
YXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdv
cmsvc291cC9Db29raWVTdG9yYWdlU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
Q3JlZGVudGlhbFN0b3JhZ2VTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9ETlNT
b3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9HT3duUHRyU291cC5jcHAKKyAgICBw
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKKyAgICBw
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUHJveHlSZXNvbHZlclNvdXAuY3BwCisgICAgcGxhdGZvcm0v
bmV0d29yay9zb3VwL1Byb3h5U2VydmVyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291
cmNlSGFuZGxlU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1
ZXN0U291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZVNv
dXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZVNvdXAu
Y3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBVUklVdGlscy5jcHAKKykKKworbGlz
dChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgIiR7V0VCQ09SRV9ESVJ9
L3BsYXRmb3JtL25ldHdvcmsvc291cCIKKyAgICAke0xJQlNPVVBfSU5DTFVERV9ESVJTfQorKQor
CitsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUworICAgICR7TElCU09VUF9MSUJSQVJJRVN9
CispCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZEVHTC5jbWFrZSBiL1NvdXJjZS9jbWFr
ZS9GaW5kRUdMLmNtYWtlCmluZGV4IDUyNmM1YmEwODU2Mjg4YzgzMjRiYmY1NGY2ZDE3ZWM1MTc4
YzZlYjkuLjA2ZGU1NTZhODVhMTdhMjBhYWIwOWExZmM1OTE1OWU5ODAyOGZhOGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9jbWFrZS9GaW5kRUdMLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9GaW5kRUdM
LmNtYWtlCkBAIC0zNCw0ICszNCw2IEBAIHNldChFR0xfTkFNRVMgJHtFR0xfTkFNRVN9IGVnbCBF
R0wpCiBmaW5kX2xpYnJhcnkoRUdMX0xJQlJBUlkgTkFNRVMgJHtFR0xfTkFNRVN9KQogCiBpbmNs
dWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdzKQotRklORF9QQUNLQUdFX0hBTkRMRV9T
VEFOREFSRF9BUkdTKEVHTCBERUZBVUxUX01TRyBFR0xfSU5DTFVERV9ESVIgRUdMX0xJQlJBUlkp
CitmaW5kX3BhY2thZ2VfaGFuZGxlX3N0YW5kYXJkX2FyZ3MoRUdMIERFRkFVTFRfTVNHIEVHTF9J
TkNMVURFX0RJUiBFR0xfTElCUkFSWSkKKworbWFya19hc19hZHZhbmNlZChFR0xfSU5DTFVERV9E
SVIgRUdMX0xJQlJBUlkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZE9wZW5HTEVTMi5j
bWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kT3BlbkdMRVMyLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiNjli
OGQyZDExNGI1YjcxM2I3NjRjZTA4NjVhM2Q3NTBkNzcyZWQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvY21ha2UvRmluZE9wZW5HTEVTMi5jbWFrZQpAQCAtMCwwICsxLDI1IEBACisjIFRyeSB0
byBmaW5kIE9wZW5HTEVTMi4gT25jZSBkb25lIHRoaXMgd2lsbCBkZWZpbmU6CisjICAgICBPUEVO
R0xFUzJfRk9VTkQKKyMgICAgIE9QRU5HTEVTMl9JTkNMVURFX0RJUlMKKyMgICAgIE9QRU5HTEVT
Ml9MSUJSQVJJRVMKKyMgICAgIE9QRU5HTEVTMl9ERUZJTklUSU9OUworCitmaW5kX3BhY2thZ2Uo
UGtnQ29uZmlnKQorCitwa2dfY2hlY2tfbW9kdWxlcyhQQ19PUEVOR0xFUzIgZ2xlc3YyKQorCitp
ZiAoUENfT1BFTkdMRVMyX0ZPVU5EKQorICAgIHNldChPUEVOR0xFUzJfSU5DTFVERV9ESVJTICR7
UENfT1BFTkdMRVMyX0lOQ0xVREVfRElSU30pCisgICAgc2V0KE9QRU5HTEVTMl9ERUZJTklUSU9O
UyAke1BDX09QRU5HTEVTMl9DRkxBR1NfT1RIRVJ9KQorZWxzZSAoKQorICAgIGZpbmRfcGF0aChP
UEVOR0xFUzJfSU5DTFVERV9ESVJTIE5BTUVTIEdMRVMyL2dsMi5oKQorZW5kaWYgKCkKKworZmlu
ZF9saWJyYXJ5KE9QRU5HTEVTMl9MSUJSQVJJRVMgR0xFU3YyCisgICAgSElOVFMgJHtQQ19PUEVO
R0xFUzJfTElCUkFSWV9ESVJTfSAke1BDX09QRU5HTEVTMl9MSUJESVJ9CispCisKK2luY2x1ZGUo
RmluZFBhY2thZ2VIYW5kbGVTdGFuZGFyZEFyZ3MpCitmaW5kX3BhY2thZ2VfaGFuZGxlX3N0YW5k
YXJkX2FyZ3MoT3BlbkdMRVMyIERFRkFVTFRfTVNHIE9QRU5HTEVTMl9MSUJSQVJJRVMgT1BFTkdM
RVMyX0lOQ0xVREVfRElSUykKKworbWFya19hc19hZHZhbmNlZChPUEVOR0xFUzJfSU5DTFVERV9E
SVJTIE9QRU5HTEVTMl9MSUJSQVJZKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnND
b21tb24uY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0NvbW1vbi5jbWFrZQppbmRleCAwZmU4
N2RlYmEzMmJiYWI4ZTVmOTE3N2JlYTk2OWEwMTA0MGUyMjY4Li5jNGU3NmRlNDRhZjE5ZGRjZmY5
MmE0ODliODNmNzQ1ODlkOWIyOTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0Nv
bW1vbi5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0NvbW1vbi5jbWFrZQpAQCAtMSw4
ICsxLDE2IEBACi1hZGRfZGVmaW5pdGlvbnMoLURCVUlMRElOR19XSVRIX0NNQUtFPTEpCi1hZGRf
ZGVmaW5pdGlvbnMoLURIQVZFX0NPTkZJR19IPTEpCisjIE5peCBkb2Vzbid0IHVzZSBjbWFrZWNv
bmZpZy5oCitpZiAoTk9UIFBPUlQgU1RSRVFVQUwgIk5peCIpCisgICAgYWRkX2RlZmluaXRpb25z
KC1EQlVJTERJTkdfV0lUSF9DTUFLRT0xKQorICAgIGFkZF9kZWZpbml0aW9ucygtREhBVkVfQ09O
RklHX0g9MSkKK2VuZGlmICgpCisKIAogaWYgKFdURl9PU19VTklYKQogICAgIGFkZF9kZWZpbml0
aW9ucygtRFhQX1VOSVgpCisgICAgI1RPRE86IGNoZWNrIGZvciBYMTEgdGFyZ2V0CisgICAgaWYg
KE5PVCBQT1JUIFNUUkVRVUFMICJOaXgiKQorICAgICAgICBhZGRfZGVmaW5pdGlvbnMoLURNT1pf
WDExKQorICAgIGVuZGlmICgpCiBlbmRpZiAoV1RGX09TX1VOSVgpCiAKICMgQ09ERV9HRU5FUkFU
T1JfUFJFUFJPQ0VTU09SX1dJVEhfTElORU1BUktFUlMgb25seSBtYXR0ZXJzIHdpdGggR0NDID49
IDQuNy4wLiAgU2luY2UgdGhpcwpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNOaXgu
Y21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc05peC5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzFhODIz
Yzc3OTVjNTM1ZGUwMTY5MmQ5Y2NlY2YyNDRmMWIwNTZkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL2NtYWtlL09wdGlvbnNOaXguY21ha2UKQEAgLTAsMCArMSwxNDggQEAKKyMgTml4IHVzZXMg
YSBkaWZmZXJlbnQgd2F5IHRvIHNldC91bnNldCBkZWZhdWx0IGZlYXR1cmVzIGJhc2VkIG9uIFdL
IGJ1ZyAxMTA3MTcgKG5vdCB5ZXQgbGFuZGVkKS4KKyMgU28gdGhlIGltcGxlbWVudGF0aW9uLCBp
LmUuIHRoZSBuZXh0IHR3byBtYWNyb3MsIHdhcyBtb3ZlZCB0byBoZXJlIHRvIGtlZXAgYSBtaW5p
bWFsIGFzIHBvc3NpYmxlCisjIGludGVyZmVyZW5jZSBvbiBvdGhlciBwb3J0cyB1bnRpbCBzb21l
IGRheSB3aGVuL2lmIGJ1ZyAxMTA3MTcgZ2V0IGxhbmRlZC4KKworIyBDb21wdXRlIGFuZCBzZXQg
ZGVmYXVsdCB2YWx1ZXMgZm9yIGZlYXR1cmUgZGVmaW5lcworbWFjcm8oV0VCS0lUX09QVElPTl9E
RUZBVUxUUyBfcG9ydCkKKyAgICAjIFVzZSB0aGUgcHJlcHJvY2Vzc29yIHRvIGdldCB0aGUgZGVm
YXVsdCB2YWx1ZXMgZm9yIGZlYXR1cmUgZGVmaW5lcworICAgIEVYRUNfUFJPR1JBTSgiZ2NjIC1F
IC1QIC1kTSAtREJVSUxESU5HXyR7X3BvcnR9X18gLUkgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3Vy
Y2UvV1RGICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCB8IGdy
ZXAgJ14jZGVmaW5lIEVOQUJMRV9cXHdcXCsgWzAxXSQnIHwgY3V0IC1kJyAnIC1mMi0zIHwgc29y
dCIgT1VUUFVUX1ZBUklBQkxFIERFRklOSVRJT05TKQorICAgIHN0cmluZyhSRUdFWCBNQVRDSEFM
TCAiKFteXG5dK3xbXlxuXSskKSIgREVGSU5JVElPTlNfTElTVCAke0RFRklOSVRJT05TfSkKKwor
ICAgIGZvcmVhY2ggKERFRklOSVRJT04gJHtERUZJTklUSU9OU19MSVNUfSkKKyAgICAgICAgc3Ry
aW5nKFJFR0VYIFJFUExBQ0UgIl4oW14gXSspIChbXiBdKykkIiAiXFwxIiBERUZJTklUSU9OX05B
TUUgIiR7REVGSU5JVElPTn0iKQorICAgICAgICBzdHJpbmcoUkVHRVggUkVQTEFDRSAiXihbXiBd
KykgKFteIF0rKSQiICJcXDIiIERFRklOSVRJT05fVkFMVUUgIiR7REVGSU5JVElPTn0iKQorICAg
ICAgICBXRUJLSVRfT1BUSU9OX0RFRklORSgke0RFRklOSVRJT05fTkFNRX0gIlRvZ2dsZSAke0RF
RklOSVRJT05fTkFNRX0iICR7REVGSU5JVElPTl9WQUxVRX0pCisgICAgICAgIG9wdGlvbigke0RF
RklOSVRJT05fTkFNRX0gIlRvZ2dsZSAke0RFRklOSVRJT05fTkFNRX0iICR7REVGSU5JVElPTl9W
QUxVRX0pCisgICAgZW5kZm9yZWFjaCAoKQorZW5kbWFjcm8oKQorCisjIFNob3cgV2ViS2l0IG9w
dGlvbnMgc3VtbWFyeSBhbmQgYWRkIC1ERk9PQkFSIHRvIGVhY2ggb3B0aW9uIHdpdGggYSB2YWx1
ZSBkaWZmZXJlbnQgZnJvbSB0aGUgZGVmYXVsdCB2YWx1ZS4KK21hY3JvKFBST0NFU1NfV0VCS0lU
X09QVElPTlMpCisgICAgbWVzc2FnZShTVEFUVVMgIkVuYWJsZWQgZmVhdHVyZXM6IikKKworICAg
IHNldChfTUFYX0ZFQVRVUkVfTEVOR1RIIDApCisgICAgZm9yZWFjaCAoX25hbWUgJHtfV0VCS0lU
X0FWQUlMQUJMRV9PUFRJT05TfSkKKyAgICAgICAgc3RyaW5nKExFTkdUSCAke19uYW1lfSBfTkFN
RV9MRU5HVEgpCisgICAgICAgIGlmIChfTkFNRV9MRU5HVEggR1JFQVRFUiBfTUFYX0ZFQVRVUkVf
TEVOR1RIKQorICAgICAgICAgICAgc2V0KF9NQVhfRkVBVFVSRV9MRU5HVEggJHtfTkFNRV9MRU5H
VEh9KQorICAgICAgICBlbmRpZiAoKQorICAgIGVuZGZvcmVhY2ggKCkKKworICAgIHNldChfU0hP
VUxEX1BSSU5UX1BPSU5UUyBPRkYpCisgICAgZm9yZWFjaCAoX25hbWUgJHtfV0VCS0lUX0FWQUlM
QUJMRV9PUFRJT05TfSkKKyAgICAgICAgc3RyaW5nKExFTkdUSCAke19uYW1lfSBfTkFNRV9MRU5H
VEgpCisKKyAgICAgICAgc2V0KF9NRVNTQUdFICIgJHtfbmFtZX0gIikKKworICAgICAgICBpZiAo
X1NIT1VMRF9QUklOVF9QT0lOVFMpCisgICAgICAgICAgICBmb3JlYWNoIChJR05PUkUgUkFOR0Ug
JHtfTkFNRV9MRU5HVEh9ICR7X01BWF9GRUFUVVJFX0xFTkdUSH0pCisgICAgICAgICAgICAgICAg
c2V0KF9NRVNTQUdFICIke19NRVNTQUdFfSAiKQorICAgICAgICAgICAgZW5kZm9yZWFjaCAoKQor
ICAgICAgICAgICAgc2V0KF9TSE9VTERfUFJJTlRfUE9JTlRTIE9GRikKKyAgICAgICAgZWxzZSAo
KQorICAgICAgICAgICAgZm9yZWFjaCAoSUdOT1JFIFJBTkdFICR7X05BTUVfTEVOR1RIfSAke19N
QVhfRkVBVFVSRV9MRU5HVEh9KQorICAgICAgICAgICAgICAgIHNldChfTUVTU0FHRSAiJHtfTUVT
U0FHRX0uIikKKyAgICAgICAgICAgIGVuZGZvcmVhY2ggKCkKKyAgICAgICAgICAgIHNldChfU0hP
VUxEX1BSSU5UX1BPSU5UUyBPTikKKyAgICAgICAgZW5kaWYgKCkKKworICAgICAgICBpZiAoJHtf
bmFtZX0pCisgICAgICAgICAgICBsaXN0KEFQUEVORCBGRUFUVVJFX0RFRklORVMgJHtfbmFtZX0p
CisgICAgICAgICAgICBzZXQoRkVBVFVSRV9ERUZJTkVTX1dJVEhfU1BBQ0VfU0VQQVJBVE9SICIk
e0ZFQVRVUkVfREVGSU5FU19XSVRIX1NQQUNFX1NFUEFSQVRPUn0gJHtfbmFtZX0iKQorICAgICAg
ICBlbmRpZiAoKQorCisgICAgICAgIHNldChfTUVTU0FHRSAiJHtfTUVTU0FHRX0gJHske19uYW1l
fX0iKQorICAgICAgICBtZXNzYWdlKFNUQVRVUyAiJHtfTUVTU0FHRX0iKQorICAgIGVuZGZvcmVh
Y2ggKCkKKworICAgICMgQWRkIGFkZF9kZWZpbml0aW9ucyB0byB2YWx1ZXMgZGlmZmVyZW50IGZy
b20gdGhlIGRlZmF1bHRzCisgICAgZm9yZWFjaCAoX25hbWUgJHtfV0VCS0lUX0FWQUlMQUJMRV9P
UFRJT05TfSkKKyAgICAgICAgIyBDb252ZXJ0IHZhbHVlcyBmcm9tIE9OL09GRiB0byAxLzAgYmVj
YXVzZQorICAgICAgICAjIENNYWtlIHNheXMgIjEgRVFVQUwgT04iIGlzIGZhbHNlLgorICAgICAg
ICBpZiAoJHtfV0VCS0lUX0FWQUlMQUJMRV9PUFRJT05TX0lOSVRBTFZBTFVFXyR7X25hbWV9fSkK
KyAgICAgICAgICAgIHNldChfYSAxKQorICAgICAgICBlbHNlICgpCisgICAgICAgICAgICBzZXQo
X2EgMCkKKyAgICAgICAgZW5kaWYgKCkKKyAgICAgICAgaWYgKCR7JHtfbmFtZX19KQorICAgICAg
ICAgICAgc2V0KF9iIDEpCisgICAgICAgIGVsc2UgKCkKKyAgICAgICAgICAgIHNldChfYiAwKQor
ICAgICAgICBlbmRpZiAoKQorICAgICAgICBpZiAoTk9UIF9hIEVRVUFMIF9iKQorICAgICAgICAg
ICAgYWRkX2RlZmluaXRpb25zKCItRCR7X25hbWV9PSR7X2J9IikKKyAgICAgICAgZW5kaWYgKCkK
KyAgICBlbmRmb3JlYWNoICgpCitlbmRtYWNybygpCisKKworc2V0KFBST0pFQ1RfVkVSU0lPTl9N
QUpPUiAwKQorc2V0KFBST0pFQ1RfVkVSU0lPTl9NSU5PUiAxKQorc2V0KFBST0pFQ1RfVkVSU0lP
Tl9QQVRDSCAwKQorc2V0KFBST0pFQ1RfVkVSU0lPTiAke1BST0pFQ1RfVkVSU0lPTl9NQUpPUn0u
JHtQUk9KRUNUX1ZFUlNJT05fTUlOT1J9LiR7UFJPSkVDVF9WRVJTSU9OX1BBVENIfSkKKworaWYg
KENNQUtFX0NYWF9DT01QSUxFUl9JRCBTVFJFUVVBTCAiR05VIikKKyAgICAjIFVzZSAtZmVtaXQt
c3RydWN0LWRlYnVnLWJhc2Vvbmx5IHRvIHJlZHVjZSB0aGUgc2l6ZSBvZiBXZWJDb3JlIHN0YXRp
YyBsaWJyYXJ5CisgICAgc2V0KENNQUtFX0NYWF9GTEFHU19ERUJVRyAiLWcgLWZlbWl0LXN0cnVj
dC1kZWJ1Zy1iYXNlb25seSIgQ0FDSEUgU1RSSU5HICJGbGFncyB1c2VkIGJ5IHRoZSBjb21waWxl
ciBkdXJpbmcgZGVidWcgYnVpbGRzLiIgRk9SQ0UpCitlbmRpZiAoKQorCitzZXQoU0hBUkVEX0NP
UkUgT0ZGKQorc2V0KEVOQUJMRV9XRUJLSVQgT0ZGKQorc2V0KEVOQUJMRV9XRUJLSVQyIE9GRikK
K3NldChFTkFCTEVfVE9PTFMgT0ZGKQorCitzZXQoV2ViS2l0Ml9PVVRQVVRfTkFNRSBXZWJLaXRO
aXgpCisKK2FkZF9kZWZpbml0aW9ucygtREJVSUxESU5HX05JWF9fPTEpCisKK2ZpbmRfcGFja2Fn
ZShDYWlybyAxLjEyLjggUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoRm9udGNvbmZpZyAyLjguMCBS
RVFVSVJFRCkKK2ZpbmRfcGFja2FnZShGcmVldHlwZSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShH
TElCIDIuMzYuMCBSRVFVSVJFRCBDT01QT05FTlRTIGdpbyBnb2JqZWN0IGdtb2R1bGUgZ3RocmVh
ZCkKK2ZpbmRfcGFja2FnZShIYXJmQnV6eikKK2ZpbmRfcGFja2FnZShJQ1UgUkVRVUlSRUQpCitm
aW5kX3BhY2thZ2UoSlBFRyBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShMaWJYbWwyIDIuNiBSRVFV
SVJFRCkKK2ZpbmRfcGFja2FnZShMaWJYc2x0IDEuMS43IFJFUVVJUkVEKQorZmluZF9wYWNrYWdl
KFBORyBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShTcWxpdGUgUkVRVUlSRUQpCitmaW5kX3BhY2th
Z2UoVGhyZWFkcyBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShaTElCIFJFUVVJUkVEKQorCisjIFZh
cmlhYmxlcyB0aGF0IG11c3QgZXhpc3RzIG9uIENNYWtlIHNwYWNlCisjIHRvIGtlZXAgY29tbW9u
IENNYWtlIGZpbGVzIHdvcmtpbmcgYXMgZGVzaXJlZCBmb3IgdXMKK3NldChXVEZfVVNFX0lDVV9V
TklDT0RFIE9OKQorc2V0KFdURl9VU0VfTEVWRUxEQiBPTikKK3NldChFTkFCTEVfQVBJX1RFU1RT
IE9GRikKKworV0VCS0lUX09QVElPTl9ERUZBVUxUUygiTklYIikKK1dFQktJVF9PUFRJT05fREVG
SU5FKFdURl9VU0VfT1BFTkdMX0VTXzIgIlVzZSBFR0wgKyBPcGVuR0xFUzIiIE9GRikKK1dFQktJ
VF9PUFRJT05fREVGSU5FKFdURl9VU0VfQ1VSTCAiVXNlIGxpYkN1cmwgYXMgbmV0d29yayBiYWNr
ZW5kIiBPRkYpCisKK2lmIChXVEZfVVNFX0NVUkwpCisgICAgZmluZF9wYWNrYWdlKENVUkwgUkVR
VUlSRUQpCisgICAgc2V0KFJFUVVJUkVEX05FVFdPUksgbGliY3VybCkKK2Vsc2UgKCkKKyAgICBm
aW5kX3BhY2thZ2UoTGliU291cCAyLjQyLjAgUkVRVUlSRUQpCisgICAgc2V0KFJFUVVJUkVEX05F
VFdPUksgbGlic291cC0yLjQpCitlbmRpZiAoKQorCitpZiAoV1RGX1VTRV9PUEVOR0xfRVNfMikK
KyAgICBmaW5kX3BhY2thZ2UoT3BlbkdMRVMyIFJFUVVJUkVEKQorICAgIGZpbmRfcGFja2FnZShF
R0wgUkVRVUlSRUQpCisgICAgc2V0KFdURl9VU0VfRUdMIE9OKQorICAgIGFkZF9kZWZpbml0aW9u
cygtRFdURl9VU0VfT1BFTkdMX0VTXzI9MSkKK2Vsc2UgKCkKKyAgICBmaW5kX3BhY2thZ2UoWDEx
IFJFUVVJUkVEKQorICAgIGZpbmRfcGFja2FnZShPcGVuR0wgUkVRVUlSRUQpCisgICAgYWRkX2Rl
ZmluaXRpb25zKC1ESEFWRV9HTFg9MSkKK2VuZGlmICgpCisKK2lmIChOT1QgRU5BQkxFX1NWRykK
KyAgICBzZXQoRU5BQkxFX1NWR19GT05UUyBPRkYpCitlbmRpZiAoKQorCitQUk9DRVNTX1dFQktJ
VF9PUFRJT05TKCkKKworCisKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA0ZWJkNTliMzQ1N2JjNjczZGI2N2JmNGUzOTdhZjYwMjJmMTAwYzcxLi4x
ZDI5NzRlNTFjYWJlNzdiOThmZDMyZWEyMjA2YTMzMTkyNjhkNmJjIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjggQEAKKzIwMTMt
MTAtMzAgIE1hcmNlbG8gTGlyYSAgPG1hcmNlbG8ubGlyYUBvcGVuYm9zc2Eub3JnPgorCisgICAg
ICAgIE5peCB1cHN0cmVhbWluZyAtIEFkZGluZyBidWlsZCBmaWxlcyBhbmQgc3VwcG9ydGluZyBz
Y3JpcHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTgzNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFNjcmlwdHMvYnVpbGQtd2Via2l0OgorICAgICAgICAqIFNjcmlwdHMvcnVuLW5peC10ZXN0czog
QWRkZWQuCisgICAgICAgICogU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzOgorICAgICAgICAqIFNj
cmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQ6CisgICAgICAgICogU2NyaXB0cy91cGRh
dGUtd2Via2l0bml4LWxpYnM6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0ZGlycy5w
bToKKyAgICAgICAgKGRldGVybWluZUFyY2hpdGVjdHVyZSk6CisgICAgICAgIChhcmd1bWVudHNG
b3JDb25maWd1cmF0aW9uKToKKyAgICAgICAgKGJ1aWx0RHlsaWJQYXRoRm9yTmFtZSk6CisgICAg
ICAgIChkZXRlcm1pbmVJc05peCk6CisgICAgICAgIChpc05peCk6CisgICAgICAgIChsYXVuY2hl
ck5hbWUpOgorICAgICAgICAoamhidWlsZFdyYXBwZXJQcmVmaXhJZk5lZWRlZCk6CisgICAgICAg
IChidWlsZENNYWtlUHJvamVjdE9yRXhpdCk6CisgICAgICAgIChjbWFrZUJhc2VkUG9ydE5hbWUp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weToKKyAg
ICAgICAgKERlcHJlY2F0ZWRQb3J0LnBvcnQpOgorICAgICAgICAoRGVwcmVjYXRlZFBvcnQubWFr
ZUFyZ3MpOgorICAgICAgICAoRWZsV0syUG9ydC5idWlsZF93ZWJraXRfY29tbWFuZCk6CisgICAg
ICAgIChOaXhQb3J0KToKKyAgICAgICAgKE5peFBvcnQuYnVpbGRfd2Via2l0X2NvbW1hbmQpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5OgorICAgICAgICAocGxh
dGZvcm1fb3B0aW9ucyk6CisgICAgICAgIChQb3J0RmFjdG9yeSk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9wb3J0L25peC5weTogQWRkZWQuCisgICAgICAgIChOaXhQb3J0KToKKyAgICAg
ICAgKE5peFBvcnQuX3drMl9wb3J0X25hbWUpOgorICAgICAgICAoTml4UG9ydC5kZXRlcm1pbmVf
ZnVsbF9wb3J0X25hbWUpOgorICAgICAgICAoTml4UG9ydC5fX2luaXRfXyk6CisgICAgICAgIChO
aXhQb3J0Ll9wb3J0X2ZsYWdfZm9yX3NjcmlwdHMpOgorICAgICAgICAoTml4UG9ydC5zZXR1cF90
ZXN0X3J1bik6CisgICAgICAgIChOaXhQb3J0LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcik6Cisg
ICAgICAgIChOaXhQb3J0LmRlZmF1bHRfdGltZW91dF9tcyk6CisgICAgICAgIChOaXhQb3J0LmNs
ZWFuX3VwX3Rlc3RfcnVuKToKKyAgICAgICAgKE5peFBvcnQuX2dlbmVyYXRlX2FsbF90ZXN0X2Nv
bmZpZ3VyYXRpb25zKToKKyAgICAgICAgKE5peFBvcnQuX3BhdGhfdG9fZHJpdmVyKToKKyAgICAg
ICAgKE5peFBvcnQuX3BhdGhfdG9faW1hZ2VfZGlmZik6CisgICAgICAgIChOaXhQb3J0Ll9pbWFn
ZV9kaWZmX2NvbW1hbmQpOgorICAgICAgICAoTml4UG9ydC5fc2VhcmNoX3BhdGhzKToKKyAgICAg
ICAgKE5peFBvcnQuc2hvd19yZXN1bHRzX2h0bWxfZmlsZSk6CisgICAgICAgIChOaXhQb3J0Ll9w
b3J0X3NwZWNpZmljX2V4cGVjdGF0aW9uc19maWxlcyk6CisgICAgICAgIChOaXhQb3J0LmRlZmF1
bHRfYmFzZWxpbmVfc2VhcmNoX3BhdGgpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9y
dC9uaXhfdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAoTml4UG9ydFRlc3QpOgorICAgICAg
ICAoTml4UG9ydFRlc3QuX2Fzc2VydF9zZWFyY2hfcGF0aCk6CisgICAgICAgIChOaXhQb3J0VGVz
dC5fYXNzZXJ0X2V4cGVjdGF0aW9uc19maWxlcyk6CisgICAgICAgIChOaXhQb3J0VGVzdC50ZXN0
X2Jhc2VsaW5lX3NlYXJjaF9wYXRoKToKKyAgICAgICAgKE5peFBvcnRUZXN0LnRlc3RfZXhwZWN0
YXRpb25zX2ZpbGVzKToKKyAgICAgICAgKE5peFBvcnRUZXN0LnRlc3RfZGVmYXVsdF90aW1lb3V0
X21zKToKKyAgICAgICAgKiBqaGJ1aWxkL2poYnVpbGQtd3JhcHBlcjoKKyAgICAgICAgKGRldGVy
bWluZV9wbGF0Zm9ybSk6CisgICAgICAgICogbml4L2NvbW1vbi5weTogQWRkZWQuCisgICAgICAg
IChzY3JpcHRfcGF0aCk6CisgICAgICAgICh0b3BfbGV2ZWxfcGF0aCk6CisgICAgICAgICogbml4
L2poYnVpbGQubW9kdWxlczogQWRkZWQuCisgICAgICAgICogbml4L2poYnVpbGRyYzogQWRkZWQu
CisgICAgICAgICogbml4L3J1bi13aXRoLWpoYnVpbGQ6IEFkZGVkLgorCiAyMDEzLTEwLTMwICBS
b2JlcnQgUGxvY2llbm5payAgPHIucGxvY2llbm5pa0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBb
R1RLXSBhY2Nlc3NpYmlsaXR5L3N2Zy1yZW1vdGUtZWxlbWVudC5odG1sIGlzIGZhaWxpbmcKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0IGIvVG9vbHMvU2NyaXB0cy9idWls
ZC13ZWJraXQKaW5kZXggNGUwZmIxNTkyMzYyMjNkMzk1YjU3NTEzOGFkODMyNWY2YzUyNTIxYy4u
Y2RiNTAwMzJjMWFjNWIyYWI5NjJhOTEyNTYxNzI5NmNlN2YwMzViNyAxMDA3NTUKLS0tIGEvVG9v
bHMvU2NyaXB0cy9idWlsZC13ZWJraXQKKysrIGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQK
QEAgLTM2LDcgKzM2LDcgQEAgdXNlIEZpbGU6OkJhc2VuYW1lOwogdXNlIEZpbGU6OkZpbmQ7CiB1
c2UgRmlsZTo6U3BlYzsKIHVzZSBGaW5kQmluOwotdXNlIEdldG9wdDo6TG9uZyBxdyg6Y29uZmln
IHBhc3NfdGhyb3VnaCk7Cit1c2UgR2V0b3B0OjpMb25nIHF3KDpjb25maWcgcGFzc190aHJvdWdo
IG5vX2F1dG9fYWJicmV2KTsKIHVzZSBsaWIgJEZpbmRCaW46OkJpbjsKIHVzZSB3ZWJraXRkaXJz
OwogdXNlIHdlYmtpdHBlcmw6OkZlYXR1cmVMaXN0IHF3KGdldEZlYXR1cmVPcHRpb25MaXN0KTsK
QEAgLTYyLDkgKzYyLDQzIEBAIG15ICRub1dlYktpdDEgPSAwOwogbXkgJG5vV2ViS2l0MiA9IDA7
CiBteSAkY292ZXJhZ2VTdXBwb3J0ID0gMDsKIG15ICRzdGFydFRpbWUgPSB0aW1lKCk7CitteSAk
Y3VybCA9IDA7CitteSAkb3BlbmdsZXMyID0gMDsKIAogbXkgQGZlYXR1cmVzID0gZ2V0RmVhdHVy
ZU9wdGlvbkxpc3QoKTsKIAorIyBVcGRhdGUgZGVmYXVsdHMgZm9yIHRoZSBOaXggcG9ydC4KK2lm
IChpc05peCgpKSB7CisgICAgIyBJbnN0ZWFkIG9mIHVzZSBGZWF0dXJlTGlzdC5wbSB0byBsaXN0
IGVuYWJsZWQgZmVhdHVyZXMsIHRlbGwgdGhlIGNvbXBpbGVyIHRvCisgICAgIyBwYXJzZSBTb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGFuZCBnZXQgdGhlIGRlZmF1bHQgdmFsdWVzIG9mIGFsbCBm
ZWF0dXJlIGZsYWdzCisgICAgIyBmcm9tIHRoZSByZXN1bHQuCisgICAgbXkgJHBvcnREZWZpbmUg
PSAiQlVJTERJTkdfIi51YyhjbWFrZUJhc2VkUG9ydE5hbWUoKSkuIl9fIjsKKyAgICBteSAkZGVm
aW5pdGlvbnMgPSBgZ2NjIC1FIC1QIC1kTSAtRCRwb3J0RGVmaW5lIC1JIFNvdXJjZS9XVEYgU291
cmNlL1dURi93dGYvUGxhdGZvcm0uaCB8IGdyZXAgJ14jZGVmaW5lIEVOQUJMRV9cXHdcXCsgXFsw
MVxdXCQnIHwgY3V0IC1kJyAnIC1mMi0zYDsKKworICAgIG15ICVmZWF0dXJlRGVmYXVsdHM7Cisg
ICAgZm9yZWFjaCAoc3BsaXQoL1xuLywgJGRlZmluaXRpb25zKSkgeworICAgICAgICBteSBAbWFj
cm9EZWZpbml0aW9uID0gc3BsaXQoLyAvKTsKKyAgICAgICAgJGZlYXR1cmVEZWZhdWx0c3skbWFj
cm9EZWZpbml0aW9uWzBdfSA9ICRtYWNyb0RlZmluaXRpb25bMV07CisgICAgfQorCisgICAgQGZl
YXR1cmVzID0gKCk7CisgICAgZm9yZWFjaCAoc29ydCBrZXlzICVmZWF0dXJlRGVmYXVsdHMpIHsK
KyAgICAgICAgbmV4dCBpZiAoIS9eRU5BQkxFLyk7CisgICAgICAgIG15ICRvcHRpb25OYW1lID0g
bGMgJF87CisgICAgICAgICRvcHRpb25OYW1lID1+IHMvXmVuYWJsZV8vLzsKKyAgICAgICAgJG9w
dGlvbk5hbWUgPX4gcy9fLy0vZzsKKyAgICAgICAgbXkgJGRlc2NOYW1lID0gJG9wdGlvbk5hbWU7
CisgICAgICAgICRkZXNjTmFtZSA9fiBzLy0vIC9nOworCisgICAgICAgIHB1c2ggQGZlYXR1cmVz
LCB7CisgICAgICAgICAgICBvcHRpb24gPT4gJG9wdGlvbk5hbWUsCisgICAgICAgICAgICBkZXNj
ID0+ICJUb2dnbGUgJGRlc2NOYW1lIHN1cHBvcnQiLAorICAgICAgICAgICAgZGVmaW5lID0+ICRf
LAorICAgICAgICAgICAgZGVmYXVsdCA9PiAkZmVhdHVyZURlZmF1bHRzeyRffQorICAgICAgICB9
OworICAgIH0KK30KKwogIyBBZGRpdGlvbmFsIGVudmlyb25tZW50IHBhcmFtZXRlcnMKIHB1c2gg
QEFSR1YsIHNwbGl0KC8gLywgJEVOVnsnQlVJTERfV0VCS0lUX0FSR1MnfSkgaWYgKCRFTlZ7J0JV
SUxEX1dFQktJVF9BUkdTJ30pOwogCkBAIC05NCw2ICsxMjgsNyBAQCBVc2FnZTogJHByb2dyYW1O
YW1lIFtvcHRpb25zXSBbb3B0aW9ucyB0byBwYXNzIHRvIGJ1aWxkIHN5c3RlbV0KIAogICAtLWJs
YWNrYmVycnkgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgdGhlIEJsYWNrQmVycnkgcG9ydCBv
biBNYWMvTGludXgKICAgLS1lZmwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1aWxkIHRo
ZSBFRkwgcG9ydAorICAtLW5peCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgdGhl
IE5peCBwb3J0CiAgIC0tZ3RrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB0aGUg
R1RLKyBwb3J0CiAgIC0td2luY2Fpcm8gICAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB1c2lu
ZyBDYWlybyAocmF0aGVyIHRoYW4gQ29yZUdyYXBoaWNzKSBvbiBXaW5kb3dzCiAgIC0td2luY2Ug
ICAgICAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB0aGUgV2luQ0UgcG9ydApAQCAtMTEwLDYg
KzE0NSw5IEBAIFVzYWdlOiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFtvcHRpb25zIHRvIHBhc3Mg
dG8gYnVpbGQgc3lzdGVtXQogICAtLW5vLXdlYmtpdDEgICAgICAgICAgICAgICAgICAgICAgT21p
dCBXZWJLaXQxIGNvZGUgZnJvbSB0aGUgYnVpbGQgKEVGTC9HVEsgb25seSkKICAgLS1uby13ZWJr
aXQyICAgICAgICAgICAgICAgICAgICAgIE9taXQgV2ViS2l0MiBjb2RlIGZyb20gdGhlIGJ1aWxk
CiAKKyAgLS1jdXJsICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZSBsaWJDdXJsIGFzIG5l
dHdvcmsgYmFja2VuZCAoTml4IG9ubHkpCisgIC0tb3BlbmdsZXMyICAgICAgICAgICAgICAgICAg
ICAgICBVc2UgRUdMIGFuZCBPcGVuR0xFUzIgaW5zdGVhZCBvZiBHTFggKE5peCBvbmx5KQorCiBF
T0YKIAogbXkgJW9wdGlvbnMgPSAoCkBAIC0xMjUsNiArMTYzLDggQEAgbXkgJW9wdGlvbnMgPSAo
CiAgICAgJ25vLXdlYmtpdDEnID0+IFwkbm9XZWJLaXQxLAogICAgICduby13ZWJraXQyJyA9PiBc
JG5vV2ViS2l0MiwKICAgICAnY292ZXJhZ2UnID0+IFwkY292ZXJhZ2VTdXBwb3J0LAorICAgICdj
dXJsJyA9PiBcJGN1cmwsCisgICAgJ29wZW5nbGVzMicgPT4gXCRvcGVuZ2xlczIsCiApOwogCiAj
IEJ1aWxkIHVzYWdlIHRleHQgYW5kIG9wdGlvbnMgbGlzdCBmcm9tIGZlYXR1cmVzCkBAIC0yMjgs
NiArMjY4LDI0IEBAIGlmIChpc0luc3BlY3RvckZyb250ZW5kKCkpIHsKICAgICBAcHJvamVjdHMg
PSAoIlNvdXJjZS9XZWJJbnNwZWN0b3JVSSIpOwogfQogCitpZiAoaXNOaXgoKSkgeworICAgIGlm
ICgkbm9XZWJLaXQyKSB7CisgICAgICAgIHByaW50IFNUREVSUiAiTml4IGlzIGEgV2ViS2l0MiBw
b3J0LCB5b3UgY2FuJ3QgZGlzYWJsZSBXZWJLaXQyIG9uIGl0IVxuIjsKKyAgICAgICAgZXhpdCAx
OworICAgIH0KKworICAgICMgQnkgZGVmYXVsdCB3ZSBidWlsZCB1c2luZyBhbGwgb2YgdGhlIGF2
YWlsYWJsZSBDUFVzLgorICAgICRtYWtlQXJncyAuPSAoJG1ha2VBcmdzID8gIiAiIDogIiIpIC4g
Ii1qIiAuIG51bWJlck9mQ1BVcygpIGlmICRtYWtlQXJncyAhfiAvLWpccypcZCsvOworICAgICRj
bWFrZUFyZ3MgPSAiLURXVEZfVVNFX0NVUkw9T04gIiAuICRjbWFrZUFyZ3MgaWYgJGN1cmw7Cisg
ICAgJGNtYWtlQXJncyA9ICItRFdURl9VU0VfT1BFTkdMX0VTXzI9T04gIiAuICRjbWFrZUFyZ3Mg
aWYgJG9wZW5nbGVzMjsKKworICAgICMgV2UgcmVtb3ZlIENNYWtlQ2FjaGUgdG8gYXZvaWQgdGhl
IGJvdHMgdG8gcmV1c2UgY2FjaGVkIGZsYWdzIHdoZW4KKyAgICAjIHdlIGVuYWJsZSBuZXcgZmVh
dHVyZXMuIFRoaXMgZm9yY2VzIGEgcmVjb25maWd1cmF0aW9uLgorICAgIHJlbW92ZUNNYWtlQ2Fj
aGUoKTsKKworICAgIGJ1aWxkQ01ha2VQcm9qZWN0T3JFeGl0KCRjbGVhbiwgIk5peCIsICRwcmVm
aXhQYXRoLCAkbWFrZUFyZ3MsIChjbWFrZUJhc2VkUG9ydEFyZ3VtZW50cygpLCBjTWFrZUFyZ3NG
cm9tRmVhdHVyZXMoKSksICRjbWFrZUFyZ3MpOworfQorCiBpZiAoaXNFZmwoKSkgewogICAgICMg
QnkgZGVmYXVsdCB3ZSBidWlsZCB1c2luZyBhbGwgb2YgdGhlIGF2YWlsYWJsZSBDUFVzLgogICAg
ICRtYWtlQXJncyAuPSAoJG1ha2VBcmdzID8gIiAiIDogIiIpIC4gIi1qIiAuIG51bWJlck9mQ1BV
cygpIGlmICRtYWtlQXJncyAhfiAvLWpccypcZCsvOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy9ydW4tbml4LXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9ydW4tbml4LXRlc3RzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY3OThlMTA5MzQ3MTI5ZmRlZWFlMGVkOWU1ZTZlOGNhNGE0NmU0ZjgKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9TY3JpcHRzL3J1bi1uaXgtdGVzdHMKQEAgLTAsMCArMSw0NCBAQAorIyEvdXNy
L2Jpbi9wZXJsIC13CisjIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBJbnRlbCBDb3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
K3VzZSBzdHJpY3Q7Cit1c2UgRmluZEJpbjsKK3VzZSBsaWIgJEZpbmRCaW46OkJpbjsKK3VzZSB3
ZWJraXRkaXJzOworCitzZXRDb25maWd1cmF0aW9uKCk7CisKKyMgTWFudWFsbHkgYWRkIHRoaXMg
Zm9yIGpoYnVpbGRXcmFwcGVyUHJlZml4SWZOZWVkZWQoKS4KK3B1c2goQEFSR1YsICItLW5peCIp
OworCisjIFRlbGwgQ1Rlc3QgdG8gZHVtcCBndGVzdCBvdXRwdXQgaW4gY2FzZSBvZiBmYWlsdXJl
LgorJEVOVntDVEVTVF9PVVRQVVRfT05fRkFJTFVSRX0gPSAiMSI7CisKK2J1aWxkQ01ha2VQcm9q
ZWN0T3JFeGl0KDAsICJOaXgiLCB1bmRlZiwgInRlc3QiLCBjbWFrZUJhc2VkUG9ydEFyZ3VtZW50
cygpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cyBiL1Rvb2xz
L1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cwppbmRleCAzMmU4N2E2ZTYwZmFkYTVkYzUxOWY2Mzg1
MTFjYjE2YjA5YWMxOWY3Li4xMDE2MGU5OTk2OGJjNGE3NDQwZjA3ODk2MTQ1ZDFkNTI0YmVhNzcx
IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMKKysrIGIvVG9vbHMv
U2NyaXB0cy9ydW4td2Via2l0LXRlc3RzCkBAIC04MCw2ICs4MCw4IEBAIGlmIChpc0d0aygpKSB7
CiAgICAgcHVzaChAQVJHViwgIi0tZ3RrIik7CiB9IGVsc2lmIChpc0VmbCgpKSB7CiAgICAgcHVz
aChAQVJHViwgIi0tZWZsIik7Cit9IGVsc2lmIChpc05peCgpKSB7CisgICAgcHVzaChAQVJHViwg
Ii0tbml4Iik7CiB9IGVsc2lmIChpc1dpbkNhaXJvKCkpIHsKICAgICBwdXNoKEBBUkdWLCAiLS13
aW5jYWlybyIpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWxp
YnMtamhidWlsZCBiL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQKaW5k
ZXggMTNiYWFjMzY5OTM5OGQ3NzM4M2M1MzVmNmMyNzZkMDEyNzFkZTc0My4uZTY5ZTliNTlmNmNi
Y2QyYzQzZjlmMTViODA0YzFiNTViNzNkZTczMSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy91
cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZAorKysgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJr
aXQtbGlicy1qaGJ1aWxkCkBAIC0yMywxNSArMjMsMTcgQEAgdXNlIEdldG9wdDo6TG9uZyBxdyg6
Y29uZmlnIHBhc3NfdGhyb3VnaCk7CiAKIG15ICRwbGF0Zm9ybUVmbCA9IDA7CiBteSAkcGxhdGZv
cm1HdGsgPSAwOworbXkgJHBsYXRmb3JtTml4ID0gMDsKIAogbXkgJGdldE9wdGlvbnNSZXN1bHQg
PSBHZXRPcHRpb25zKAogICAgICdlZmwnID0+IFwkcGxhdGZvcm1FZmwsCi0gICAgJ2d0aycgPT4g
XCRwbGF0Zm9ybUd0aworICAgICdndGsnID0+IFwkcGxhdGZvcm1HdGssCisgICAgJ25peCcgPT4g
XCRwbGF0Zm9ybU5peAogICAgICk7CiAKIG15ICRwbGF0Zm9ybSA9ICIiOwogaWYgKCEkZ2V0T3B0
aW9uc1Jlc3VsdCkgewotICAgIGRpZSAiTm8gcGxhdGZvcm0gc3BlY2lmaWVkIGZvciAiIC4gYmFz
ZW5hbWUoJDApIC4iLiBVc2UgLS1ndGsgb3IgLS1lZmwuXG4iOworICAgIGRpZSAiTm8gcGxhdGZv
cm0gc3BlY2lmaWVkIGZvciAiIC4gYmFzZW5hbWUoJDApIC4iLiBVc2UgLS1ndGssIC0tZWZsIG9y
IC0tbml4LlxuIjsKIH0gZWxzZSB7CiAgICAgaWYgKCRwbGF0Zm9ybUVmbCkgewogICAgICAgICAk
cGxhdGZvcm0gPSAiZWZsIjsKQEAgLTM5LDYgKzQxLDkgQEAgaWYgKCEkZ2V0T3B0aW9uc1Jlc3Vs
dCkgewogICAgIGlmICgkcGxhdGZvcm1HdGspIHsKICAgICAgICAgJHBsYXRmb3JtID0gImd0ayI7
CiAgICAgfQorICAgIGlmICgkcGxhdGZvcm1OaXgpIHsKKyAgICAgICAgJHBsYXRmb3JtID0gIm5p
eCI7CisgICAgfQogfQogCiBzdWIgZ2V0TUQ1SGFzaEZvckZpbGUoJCkKQEAgLTEyMCw3ICsxMjUs
NyBAQCBkZWxldGUgJEVOVntBUl9GTEFHU30gaWYgZXhpc3RzICRFTlZ7QVJfRkxBR1N9OwogCiBj
aGRpcihyZWxhdGl2ZVNjcmlwdHNEaXIoKSAuICIvLi4vamhidWlsZCIpIG9yIGRpZSAkITsKIAot
bXkgJXByZXR0eVBsYXRmb3JtID0gKCAiZWZsIiA9PiAiRUZMIiwgImd0ayIgPT4gIkdUSysiICk7
CitteSAlcHJldHR5UGxhdGZvcm0gPSAoICJlZmwiID0+ICJFRkwiLCAiZ3RrIiA9PiAiR1RLKyIs
ICJuaXgiID0+ICJOaXgiICk7CiAKIGlmICgtZSBnZXRKaGJ1aWxkUGF0aCgpICYmIGpoYnVpbGRD
b25maWd1cmF0aW9uQ2hhbmdlZCgpKSB7CiAgICAgY2xlYW5KaGJ1aWxkKCk7CmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXRuaXgtbGlicyBiL1Rvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmtpdG5peC1saWJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzZjM2YmRhZjcxZTk4ZjZhMjg4NzVhOTRj
MmM0YjNjMmJjZWVhMzUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13
ZWJraXRuaXgtbGlicwpAQCAtMCwwICsxLDI0IEBACisjIS91c3IvYmluL3BlcmwgLXcKKyMgQ29w
eXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uCisjIENvcHlyaWdodCAoQykgMjAxMiBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisjCisjIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyMgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworIyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRl
IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorCit1c2UgRmlu
ZEJpbjsKK3VzZSBsaWIgJEZpbmRCaW46OkJpbjsKK3VzZSB3ZWJraXRkaXJzOworCitteSAkc2Ny
aXB0c0RpciA9IHJlbGF0aXZlU2NyaXB0c0RpcigpOworc3lzdGVtKCJwZXJsIiwgIiRzY3JpcHRz
RGlyL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkIiwgIi0tbml4IikgPT0gMCBvciBkaWUgJCE7
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0gYi9Ub29scy9TY3JpcHRz
L3dlYmtpdGRpcnMucG0KaW5kZXggZTMxZjFlZTE1Njg0NTg4ODkzZTU1OTQ2MTdkMjRlNDM1YTBi
NzdjYS4uZWZmOGE3MTc2MWQ4YWI3MjgyNjI2ZmU0ZmY0MjM4NmI3N2QyODljZCAxMDA3NTUKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
ZGlycy5wbQpAQCAtOTQsNiArOTQsNyBAQCBteSAkaXNXaW5DRTsKIG15ICRpc1dpbkNhaXJvOwog
bXkgJGlzV2luNjQ7CiBteSAkaXNFZmw7CitteSAkaXNOaXg7CiBteSAkaXNCbGFja0JlcnJ5Owog
bXkgJGlzSW5zcGVjdG9yRnJvbnRlbmQ7CiBteSAkaXNXSzI7CkBAIC0zMTQsNyArMzE1LDcgQEAg
c3ViIGRldGVybWluZUFyY2hpdGVjdHVyZQogICAgICAgICAgICAgICAgICRhcmNoaXRlY3R1cmUg
PSAnYXJtdjcnOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgfSBlbHNpZiAoaXNFZmwo
KSkgeworICAgIH0gZWxzaWYgKGlzRWZsKCkgfHwgaXNOaXgoKSkgewogICAgICAgICBteSAkaG9z
dF9wcm9jZXNzb3IgPSAiIjsKICAgICAgICAgJGhvc3RfcHJvY2Vzc29yID0gYGNtYWtlIC0tc3lz
dGVtLWluZm9ybWF0aW9uIHwgZ3JlcCBDTUFLRV9TWVNURU1fUFJPQ0VTU09SYDsKICAgICAgICAg
aWYgKCRob3N0X3Byb2Nlc3NvciA9fiBtL15DTUFLRV9TWVNURU1fUFJPQ0VTU09SIFwiKFteIl0r
KVwiLykgewpAQCAtMzI0LDEzICszMjUsMTMgQEAgc3ViIGRldGVybWluZUFyY2hpdGVjdHVyZQog
ICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCEkYXJjaGl0ZWN0dXJlICYmIChpc0d0aygpIHx8
IGlzQXBwbGVNYWNXZWJLaXQoKSB8fCBpc0VmbCgpKSkgeworICAgIGlmICghJGFyY2hpdGVjdHVy
ZSAmJiAoaXNHdGsoKSB8fCBpc0FwcGxlTWFjV2ViS2l0KCkgfHwgaXNFZmwoKSB8fCBpc05peCgp
KSkgewogICAgICAgICAjIEZhbGwgYmFjayB0byBvdXRwdXQgb2YgYGFyY2gnLCBpZiBpdCBpcyBw
cmVzZW50LgogICAgICAgICAkYXJjaGl0ZWN0dXJlID0gYGFyY2hgOwogICAgICAgICBjaG9tcCAk
YXJjaGl0ZWN0dXJlOwogICAgIH0KIAotICAgIGlmICghJGFyY2hpdGVjdHVyZSAmJiAoaXNHdGso
KSB8fCBpc0FwcGxlTWFjV2ViS2l0KCkgfHwgaXNFZmwoKSkpIHsKKyAgICBpZiAoISRhcmNoaXRl
Y3R1cmUgJiYgKGlzR3RrKCkgfHwgaXNBcHBsZU1hY1dlYktpdCgpIHx8IGlzRWZsKCkgfHwgaXNO
aXgoKSkpIHsKICAgICAgICAgIyBGYWxsIGJhY2sgdG8gb3V0cHV0IG9mIGB1bmFtZSAtbScsIGlm
IGl0IGlzIHByZXNlbnQuCiAgICAgICAgICRhcmNoaXRlY3R1cmUgPSBgdW5hbWUgLW1gOwogICAg
ICAgICBjaG9tcCAkYXJjaGl0ZWN0dXJlOwpAQCAtMzc5LDYgKzM4MCw3IEBAIHN1YiBhcmd1bWVu
dHNGb3JDb25maWd1cmF0aW9uKCkKICAgICBwdXNoKEBhcmdzLCAnLS02NC1iaXQnKSBpZiAoaXNX
aW42NCgpKTsKICAgICBwdXNoKEBhcmdzLCAnLS1ndGsnKSBpZiBpc0d0aygpOwogICAgIHB1c2go
QGFyZ3MsICctLWVmbCcpIGlmIGlzRWZsKCk7CisgICAgcHVzaChAYXJncywgJy0tbml4JykgaWYg
aXNOaXgoKTsKICAgICBwdXNoKEBhcmdzLCAnLS13aW5jYWlybycpIGlmIGlzV2luQ2Fpcm8oKTsK
ICAgICBwdXNoKEBhcmdzLCAnLS13aW5jZScpIGlmIGlzV2luQ0UoKTsKICAgICBwdXNoKEBhcmdz
LCAnLS1ibGFja2JlcnJ5JykgaWYgaXNCbGFja0JlcnJ5KCk7CkBAIC04MTMsNiArODE1LDkgQEAg
c3ViIGJ1aWx0RHlsaWJQYXRoRm9yTmFtZQogICAgICAgICB9CiAgICAgICAgIHJldHVybiAiJGNv
bmZpZ3VyYXRpb25Qcm9kdWN0RGlyL2xpYi9saWJld2Via2l0LnNvIjsKICAgICB9CisgICAgaWYg
KGlzTml4KCkpIHsKKyAgICAgICAgcmV0dXJuICIkY29uZmlndXJhdGlvblByb2R1Y3REaXIvbGli
L2xpYldlYktpdE5peC5zbyI7CisgICAgfQogICAgIGlmIChpc1dpbkNFKCkpIHsKICAgICAgICAg
cmV0dXJuICIkY29uZmlndXJhdGlvblByb2R1Y3REaXIvJGxpYnJhcnlOYW1lIjsKICAgICB9CkBA
IC0xMDU2LDYgKzEwNjEsMTcgQEAgc3ViIGlzRWZsKCkKICAgICByZXR1cm4gJGlzRWZsOwogfQog
CitzdWIgZGV0ZXJtaW5lSXNOaXgoKQoreworICAgIHJldHVybiBpZiBkZWZpbmVkKCRpc05peCk7
CisgICAgJGlzTml4ID0gY2hlY2tGb3JBcmd1bWVudEFuZFJlbW92ZUZyb21BUkdWKCItLW5peCIp
OworfQorCitzdWIgaXNOaXgoKQoreworICAgIGRldGVybWluZUlzTml4KCk7CisgICAgcmV0dXJu
ICRpc05peDsKK30KIHN1YiBpc0d0aygpCiB7CiAgICAgZGV0ZXJtaW5lSXNHdGsoKTsKQEAgLTE0
MTQsNiArMTQzMCw4IEBAIHN1YiBsYXVuY2hlck5hbWUoKQogICAgICAgICByZXR1cm4gIkVXZWJM
YXVuY2hlci9NaW5pQnJvd3NlciI7CiAgICAgfSBlbHNpZiAoaXNXaW5DRSgpKSB7CiAgICAgICAg
IHJldHVybiAiV2luQ0VMYXVuY2hlciI7CisgICAgfSBlbHNpZiAoaXNOaXgoKSkgeworICAgICAg
ICByZXR1cm4gIk1pbmlCcm93c2VyIjsKICAgICB9CiB9CiAKQEAgLTE5OTYsNiArMjAxNCw4IEBA
IHN1YiBqaGJ1aWxkV3JhcHBlclByZWZpeElmTmVlZGVkKCkKICAgICAgICAgICAgIHB1c2goQHBy
ZWZpeCwgIi0tZWZsIik7CiAgICAgICAgIH0gZWxzaWYgKGlzR3RrKCkpIHsKICAgICAgICAgICAg
IHB1c2goQHByZWZpeCwgIi0tZ3RrIik7CisgICAgICAgIH0gZWxzaWYgKGlzTml4KCkpIHsKKyAg
ICAgICAgICAgIHB1c2goQHByZWZpeCwgIi0tbml4Iik7CiAgICAgICAgIH0KICAgICAgICAgcHVz
aChAcHJlZml4LCAicnVuIik7CiAKQEAgLTIwOTAsNiArMjExMCw5IEBAIHN1YiBidWlsZENNYWtl
UHJvamVjdE9yRXhpdCgkJCQkQCkKICAgICAgICAgc3lzdGVtKCJwZXJsIiwgIiRzb3VyY2VEaXIv
VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0ZWZsLWxpYnMiKSA9PSAwIG9yIGRpZSAkITsKICAg
ICB9CiAKKyAgICBpZiAoaXNOaXgoKSAmJiBjaGVja0ZvckFyZ3VtZW50QW5kUmVtb3ZlRnJvbUFS
R1YoIi0tdXBkYXRlLW5peCIpKSB7CisgICAgICAgIHN5c3RlbSgicGVybCIsICIkc291cmNlRGly
L1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdG5peC1saWJzIikgPT0gMCBvciBkaWUgJCE7Cisg
ICAgfQogCiAgICAgJHJldHVybkNvZGUgPSBleGl0U3RhdHVzKGdlbmVyYXRlQnVpbGRTeXN0ZW1G
cm9tQ01ha2VQcm9qZWN0KCRwb3J0LCAkcHJlZml4UGF0aCwgQGNtYWtlQXJncykpOwogICAgIGV4
aXQoJHJldHVybkNvZGUpIGlmICRyZXR1cm5Db2RlOwpAQCAtMjExMyw2ICsyMTM2LDcgQEAgc3Vi
IGNtYWtlQmFzZWRQb3J0TmFtZSgpCiAgICAgcmV0dXJuICJCbGFja0JlcnJ5IiBpZiBpc0JsYWNr
QmVycnkoKTsKICAgICByZXR1cm4gIkVmbCIgaWYgaXNFZmwoKTsKICAgICByZXR1cm4gIldpbkNF
IiBpZiBpc1dpbkNFKCk7CisgICAgcmV0dXJuICJOaXgiIGlmIGlzTml4KCk7CiAgICAgcmV0dXJu
ICIiOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25m
aWcvcG9ydHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMu
cHkKaW5kZXggMGMyMGRhZTUxMjRhMjdkNTdiODZlN2RhYzUyZjczNGNjNTY2NGY5Ny4uM2M2YmNi
NGM3MGMzNWEzMTI2NzU3ODcyODQ5MmFlYThjMGY1NmQ3MyAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weQpAQCAtNzAsNiArNzAsNyBAQCBjbGFzcyBE
ZXByZWNhdGVkUG9ydChvYmplY3QpOgogICAgICAgICAgICAgInF0LXdrMiI6IFF0V0syUG9ydCwK
ICAgICAgICAgICAgICJlZmwiOiBFZmxQb3J0LAogICAgICAgICAgICAgImVmbC13azIiOiBFZmxX
SzJQb3J0LAorICAgICAgICAgICAgIm5peCI6IE5peFBvcnQsCiAgICAgICAgIH0KICAgICAgICAg
ZGVmYXVsdF9wb3J0ID0gewogICAgICAgICAgICAgIldpbmRvd3MiOiBXaW5Qb3J0LApAQCAtODEs
NyArODIsNyBAQCBjbGFzcyBEZXByZWNhdGVkUG9ydChvYmplY3QpOgogICAgIGRlZiBtYWtlQXJn
cyhzZWxmKToKICAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGRuJ3QgdXNlIGEgc3RhdGljIEV4
ZWN1dGl2ZSgpLgogICAgICAgICBhcmdzID0gJy0tbWFrZWFyZ3M9Ii1qJXMiJyAlIEV4ZWN1dGl2
ZSgpLmNwdV9jb3VudCgpCi0gICAgICAgIGlmIG9zLmVudmlyb24uaGFzX2tleSgnTUFLRUZMQUdT
Jyk6CisgICAgICAgIGlmICdNQUtFRkxBR1MnIGluIG9zLmVudmlyb246CiAgICAgICAgICAgICBh
cmdzID0gJy0tbWFrZWFyZ3M9IiVzIicgJSBvcy5lbnZpcm9uWydNQUtFRkxBR1MnXQogICAgICAg
ICByZXR1cm4gYXJncwogCkBAIC0yMzAsMyArMjMxLDE0IEBAIGNsYXNzIEVmbFdLMlBvcnQoRGVw
cmVjYXRlZFBvcnQpOgogICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1uby13ZWJraXQxIikKICAg
ICAgICAgY29tbWFuZC5hcHBlbmQoc3VwZXIoRWZsV0syUG9ydCwgc2VsZikubWFrZUFyZ3MoKSkK
ICAgICAgICAgcmV0dXJuIGNvbW1hbmQKKworCitjbGFzcyBOaXhQb3J0KERlcHJlY2F0ZWRQb3J0
KToKKyAgICBwb3J0X2ZsYWdfbmFtZSA9ICJuaXgiCisKKyAgICBkZWYgYnVpbGRfd2Via2l0X2Nv
bW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CisgICAgICAgIGNvbW1hbmQgPSBzdXBlcihO
aXhQb3J0LCBzZWxmKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHls
ZSkKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tbml4IikKKyAgICAgICAgY29tbWFuZC5hcHBl
bmQoIi0tdXBkYXRlLW5peCIpCisgICAgICAgIGNvbW1hbmQuYXBwZW5kKHN1cGVyKE5peFBvcnQs
IHNlbGYpLm1ha2VBcmdzKCkpCisgICAgICAgIHJldHVybiBjb21tYW5kCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9mYWN0b3J5LnB5CmluZGV4IDdlYzNhNWY3MGNmNmM3OWExMmM3ZjQ3ZmM1NzNj
ODJlODMxZjJhNGIuLjcwMmI1ODRmNWFmMTdjNTE5YTNkM2JiOGExYjIwNGYyYzEyN2U0ODUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5CkBAIC00Myw2ICs0Myw4IEBAIGRl
ZiBwbGF0Zm9ybV9vcHRpb25zKHVzZV9nbG9icz1GYWxzZSk6CiAgICAgICAgIG9wdHBhcnNlLm1h
a2Vfb3B0aW9uKCctLWVmbCcsIGFjdGlvbj0nc3RvcmVfY29uc3QnLCBkZXN0PSdwbGF0Zm9ybScs
CiAgICAgICAgICAgICBjb25zdD0oJ2VmbConIGlmIHVzZV9nbG9icyBlbHNlICdlZmwnKSwKICAg
ICAgICAgICAgIGhlbHA9KCdBbGlhcyBmb3IgLS1wbGF0Zm9ybT1lZmwqJyBpZiB1c2VfZ2xvYnMg
ZWxzZSAnQWxpYXMgZm9yIC0tcGxhdGZvcm09ZWZsJykpLAorICAgICAgICBvcHRwYXJzZS5tYWtl
X29wdGlvbignLS1uaXgnLCBhY3Rpb249J3N0b3JlX2NvbnN0JywgZGVzdD0ncGxhdGZvcm0nLAor
ICAgICAgICAgICAgY29uc3Q9KCduaXgnKSwgaGVscD0oJ0FsaWFzIGZvciAtLXBsYXRmb3JtPW5p
eCcpKSwKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tZ3RrJywgYWN0aW9uPSdzdG9y
ZV9jb25zdCcsIGRlc3Q9J3BsYXRmb3JtJywKICAgICAgICAgICAgIGNvbnN0PSgnZ3RrKicgaWYg
dXNlX2dsb2JzIGVsc2UgJ2d0aycpLAogICAgICAgICAgICAgaGVscD0oJ0FsaWFzIGZvciAtLXBs
YXRmb3JtPWd0ayonIGlmIHVzZV9nbG9icyBlbHNlICdBbGlhcyBmb3IgLS1wbGF0Zm9ybT1ndGsn
KSksCkBAIC03Myw2ICs3NSw3IEBAIGRlZiBfYnVpbGRlcl9vcHRpb25zKGJ1aWxkZXJfbmFtZSk6
CiBjbGFzcyBQb3J0RmFjdG9yeShvYmplY3QpOgogICAgIFBPUlRfQ0xBU1NFUyA9ICgKICAgICAg
ICAgJ2VmbC5FZmxQb3J0JywKKyAgICAgICAgJ25peC5OaXhQb3J0JywKICAgICAgICAgJ2d0ay5H
dGtQb3J0JywKICAgICAgICAgJ21hYy5NYWNQb3J0JywKICAgICAgICAgJ21vY2tfZHJ0Lk1vY2tE
UlRQb3J0JywKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9uaXgucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbml4LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5MWI1ZTE4
ZmUzMzQ4ZjlmZmYxYmY2MjdkNTI5MTFjYzYzYTVlNDgKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbml4LnB5CkBAIC0wLDAgKzEsMTE5IEBACisjIENvcHly
aWdodCAoQykgMjAxMSBQcm9GVVNJT04gRW1iZWRkZWQgU3lzdGVtcy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgorIyBD
b3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
IyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKyIiIldlYktpdCBOaXggaW1wbGVtZW50YXRpb24gb2YgdGhlIFBvcnQgaW50ZXJmYWNl
LiIiIgorCitpbXBvcnQgb3MKKworZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzLnRl
c3RfY29uZmlndXJhdGlvbiBpbXBvcnQgVGVzdENvbmZpZ3VyYXRpb24KK2Zyb20gd2Via2l0cHku
cG9ydC5iYXNlIGltcG9ydCBQb3J0Citmcm9tIHdlYmtpdHB5LnBvcnQucHVsc2VhdWRpb19zYW5p
dGl6ZXIgaW1wb3J0IFB1bHNlQXVkaW9TYW5pdGl6ZXIKKworCitjbGFzcyBOaXhQb3J0KFBvcnQp
OgorICAgIHBvcnRfbmFtZSA9ICduaXgnCisKKyAgICBkZWYgX3drMl9wb3J0X25hbWUoc2VsZik6
CisgICAgICAgIHJldHVybiAnbml4JworCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGRldGVy
bWluZV9mdWxsX3BvcnRfbmFtZShjbHMsIGhvc3QsIG9wdGlvbnMsIHBvcnRfbmFtZSk6CisgICAg
ICAgICIiIkRldGVybWluZSB0aGUgcG9ydCBuYW1lIGJhc2VkIG9uIGhvc3QgYW5kIG9wdGlvbnMg
dmFsdWVzLiIiIgorICAgICAgICAjIEN1cnJlbnRseSB0aGUgb25seSAicG9ydCIgaW5zdGFuY2Ug
c3VwcG9ydGVkIGJ5IE5peCBpcyAibml4Ii4gUmVpbXBsZW1lbnRpbmcKKyAgICAgICAgIyB0aGlz
IG1ldGhvZCBhdm9pZHMgY2hhbmdpbmcgcG9ydCBuYW1lIHRvIG5peC13azIsIHdoaWNoIGlzIHRo
ZSBkZWZhdWx0CisgICAgICAgICMgYmVoYXZpb3IgaW4gYmFzZS5weS4KKyAgICAgICAgcmV0dXJu
IHBvcnRfbmFtZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6Cisg
ICAgICAgIHN1cGVyKE5peFBvcnQsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKwor
ICAgICAgICBzZWxmLl9qaGJ1aWxkX3dyYXBwZXJfcGF0aCA9IHNlbGYucGF0aF9mcm9tX3dlYmtp
dF9iYXNlKCdUb29scycsICduaXgnLCAncnVuLXdpdGgtamhidWlsZCcpCisKKyAgICAgICAgc2Vs
Zi5zZXRfb3B0aW9uX2RlZmF1bHQoJ3dyYXBwZXInLCBzZWxmLl9qaGJ1aWxkX3dyYXBwZXJfcGF0
aCkKKyAgICAgICAgc2VsZi5zZXRfb3B0aW9uX2RlZmF1bHQoJ3dlYmtpdF90ZXN0X3J1bm5lcics
IFRydWUpCisgICAgICAgIHNlbGYud2VicHJvY2Vzc19jbWRfcHJlZml4ID0gc2VsZi5nZXRfb3B0
aW9uKCd3ZWJwcm9jZXNzX2NtZF9wcmVmaXgnKQorCisgICAgICAgIHNlbGYuX3B1bHNlYXVkaW9f
c2FuaXRpemVyID0gUHVsc2VBdWRpb1Nhbml0aXplcigpCisKKyAgICBkZWYgX3BvcnRfZmxhZ19m
b3Jfc2NyaXB0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuICItLW5peCIKKworICAgIGRlZiBzZXR1
cF90ZXN0X3J1bihzZWxmKToKKyAgICAgICAgc2VsZi5fcHVsc2VhdWRpb19zYW5pdGl6ZXIudW5s
b2FkX3B1bHNlYXVkaW9fbW9kdWxlKCkKKworICAgIGRlZiBzZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2
ZXIoc2VsZiwgc2VydmVyX25hbWU9Tm9uZSk6CisgICAgICAgIGVudiA9IHN1cGVyKE5peFBvcnQs
IHNlbGYpLnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihzZXJ2ZXJfbmFtZSkKKyAgICAgICAgIyBJ
ZiBESVNQTEFZIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHVuc2V0IGluIHRoZSBzeXN0ZW0KKyAg
ICAgICAgIyBlLmcuIG9uIGJ1aWxkIGJvdCwgcmVtb3ZlIERJU1BMQVkgdmFyaWFibGUgZnJvbSB0
aGUgZGljdGlvbmFyeQorICAgICAgICBpZiBub3QgJ0RJU1BMQVknIGluIG9zLmVudmlyb246Cisg
ICAgICAgICAgICBkZWwgZW52WydESVNQTEFZJ10KKyAgICAgICAgZW52WydURVNUX1JVTk5FUl9J
TkpFQ1RFRF9CVU5ETEVfRklMRU5BTUUnXSA9IHNlbGYuX2J1aWxkX3BhdGgoJ2xpYicsICdsaWJU
ZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUuc28nKQorICAgICAgICBlbnZbJ1RFU1RfUlVOTkVSX1BM
VUdJTl9QQVRIJ10gPSBzZWxmLl9idWlsZF9wYXRoKCdsaWInKQorICAgICAgICBpZiBzZWxmLndl
YnByb2Nlc3NfY21kX3ByZWZpeDoKKyAgICAgICAgICAgIGVudlsnV0VCX1BST0NFU1NfQ01EX1BS
RUZJWCddID0gc2VsZi53ZWJwcm9jZXNzX2NtZF9wcmVmaXgKKworICAgICAgICByZXR1cm4gZW52
CisKKyAgICBkZWYgZGVmYXVsdF90aW1lb3V0X21zKHNlbGYpOgorICAgICAgICAjIFRlc3RzIHJ1
biBjb25zaWRlcmFibHkgc2xvd2VyIHVuZGVyIGdkYgorICAgICAgICAjIG9yIHZhbGdyaW5kLgor
ICAgICAgICBpZiBzZWxmLmdldF9vcHRpb24oJ3dlYnByb2Nlc3NfY21kX3ByZWZpeCcpOgorICAg
ICAgICAgICAgcmV0dXJuIDM1MCAqIDEwMDAKKyAgICAgICAgcmV0dXJuIHN1cGVyKE5peFBvcnQs
IHNlbGYpLmRlZmF1bHRfdGltZW91dF9tcygpCisKKyAgICBkZWYgY2xlYW5fdXBfdGVzdF9ydW4o
c2VsZik6CisgICAgICAgIHN1cGVyKE5peFBvcnQsIHNlbGYpLmNsZWFuX3VwX3Rlc3RfcnVuKCkK
KyAgICAgICAgc2VsZi5fcHVsc2VhdWRpb19zYW5pdGl6ZXIucmVzdG9yZV9wdWxzZWF1ZGlvX21v
ZHVsZSgpCisKKyAgICBkZWYgX2dlbmVyYXRlX2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKHNlbGYp
OgorICAgICAgICByZXR1cm4gW1Rlc3RDb25maWd1cmF0aW9uKHZlcnNpb249c2VsZi5fdmVyc2lv
biwgYXJjaGl0ZWN0dXJlPSd4ODYnLCBidWlsZF90eXBlPWJ1aWxkX3R5cGUpIGZvciBidWlsZF90
eXBlIGluIHNlbGYuQUxMX0JVSUxEX1RZUEVTXQorCisgICAgZGVmIF9wYXRoX3RvX2RyaXZlcihz
ZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWxkX3BhdGgoJ2JpbicsIHNlbGYuZHJpdmVy
X25hbWUoKSkKKworICAgIGRlZiBfcGF0aF90b19pbWFnZV9kaWZmKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gc2VsZi5fYnVpbGRfcGF0aCgnYmluJywgJ0ltYWdlRGlmZicpCisKKyAgICBkZWYgX2lt
YWdlX2RpZmZfY29tbWFuZChzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICByZXR1cm4g
W3NlbGYuX2poYnVpbGRfd3JhcHBlcl9wYXRoXSArIHN1cGVyKE5peFBvcnQsIHNlbGYpLl9pbWFn
ZV9kaWZmX2NvbW1hbmQoKmFyZ3MsICoqa3dhcmdzKQorCisgICAgZGVmIF9zZWFyY2hfcGF0aHMo
c2VsZik6CisgICAgICAgIHJldHVybiBbc2VsZi5wb3J0X25hbWVdCisKKyAgICBkZWYgc2hvd19y
ZXN1bHRzX2h0bWxfZmlsZShzZWxmLCByZXN1bHRzX2ZpbGVuYW1lKToKKyAgICAgICAgcnVuX2xh
dW5jaGVyX2FyZ3MgPSBbImZpbGU6Ly8lcyIgJSByZXN1bHRzX2ZpbGVuYW1lXQorICAgICAgICBz
ZWxmLl9ydW5fc2NyaXB0KCJydW4tbGF1bmNoZXIiLCBydW5fbGF1bmNoZXJfYXJncykKKworICAg
IGRlZiBfcG9ydF9zcGVjaWZpY19leHBlY3RhdGlvbnNfZmlsZXMoc2VsZik6CisgICAgICAgIHBh
dGhzID0gc2VsZi5fc2VhcmNoX3BhdGhzKCkKKyAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd3
ZWJraXRfdGVzdF9ydW5uZXInKToKKyAgICAgICAgICAgIHBhdGhzLmFwcGVuZCgnd2syJykKKyAg
ICAgICAgcmV0dXJuIGxpc3QoKFtzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fd2Via2l0X2Jh
c2VsaW5lX3BhdGgocCksICdUZXN0RXhwZWN0YXRpb25zJykgZm9yIHAgaW4gcGF0aHNdKSkKKwor
ICAgIGRlZiBkZWZhdWx0X2Jhc2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYpOgorICAgICAgICByZXR1
cm4gbWFwKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoLCBbJ25peCcsICd3azInXSkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9uaXhfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbml4X3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViOWZk
Yjk2OGRhOWM5ZDYzNWVmOTgyYmU4N2I3Mjc1MDE4MGM5ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbml4X3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNjgg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorIyBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBPUgorIyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyMgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorIyBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKK2ltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKK2ltcG9ydCBvcworZnJvbSBjb3B5IGlt
cG9ydCBkZWVwY29weQorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlX21v
Y2sgaW1wb3J0IE1vY2tFeGVjdXRpdmUsIE1vY2tFeGVjdXRpdmUyCitmcm9tIHdlYmtpdHB5LmNv
bW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQorZnJvbSB3ZWJr
aXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3RfbW9jayBpbXBvcnQgTW9ja1N5c3RlbUhvc3QK
K2Zyb20gd2Via2l0cHkucG9ydCBpbXBvcnQgcG9ydF90ZXN0Y2FzZQorZnJvbSB3ZWJraXRweS5w
b3J0Lm5peCBpbXBvcnQgTml4UG9ydAorZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9y
dCBNb2NrT3B0aW9ucworCisKK2NsYXNzIE5peFBvcnRUZXN0KHBvcnRfdGVzdGNhc2UuUG9ydFRl
c3RDYXNlKToKKyAgICBwb3J0X25hbWUgPSAnbml4JworICAgIHBvcnRfbWFrZXIgPSBOaXhQb3J0
CisgICAgc2VhcmNoX3BhdGhzX2Nhc2VzID0gWworICAgICAgICAgICAgeydzZWFyY2hfcGF0aHMn
OiBbJ25peCcsICd3azInXSwgJ29zX25hbWUnOidsaW51eCd9XQorICAgIGV4cGVjdGF0aW9uX2Zp
bGVzX2Nhc2VzID0gWworICAgICAgICB7J3NlYXJjaF9wYXRocyc6IFsnJywgJ25peCcsICd3azIn
XSwgJ29zX25hbWUnOidsaW51eCd9XQorCisgICAgZGVmIF9hc3NlcnRfc2VhcmNoX3BhdGgoc2Vs
Ziwgc2VhcmNoX3BhdGhzLCBvc19uYW1lKToKKyAgICAgICAgaG9zdCA9IE1vY2tTeXN0ZW1Ib3N0
KG9zX25hbWU9b3NfbmFtZSkKKyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KHBvcnRfbmFt
ZT1zZWxmLnBvcnRfbmFtZSwgaG9zdD1ob3N0LCBvcHRpb25zPU1vY2tPcHRpb25zKHdlYmtpdF90
ZXN0X3J1bm5lcj1UcnVlKSkKKyAgICAgICAgYWJzb2x1dGVfc2VhcmNoX3BhdGhzID0gbWFwKHBv
cnQuX3dlYmtpdF9iYXNlbGluZV9wYXRoLCBzZWFyY2hfcGF0aHMpCisKKyAgICAgICAgdW5pdHRl
c3QuVGVzdENhc2UuYXNzZXJ0RXF1YWwoc2VsZiwgcG9ydC5iYXNlbGluZV9zZWFyY2hfcGF0aCgp
LCBhYnNvbHV0ZV9zZWFyY2hfcGF0aHMpCisKKyAgICBkZWYgX2Fzc2VydF9leHBlY3RhdGlvbnNf
ZmlsZXMoc2VsZiwgc2VhcmNoX3BhdGhzLCBvc19uYW1lKToKKyAgICAgICAgaG9zdCA9IE1vY2tT
eXN0ZW1Ib3N0KG9zX25hbWU9b3NfbmFtZSkKKyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0
KHBvcnRfbmFtZT1zZWxmLnBvcnRfbmFtZSwgaG9zdD1ob3N0LCBvcHRpb25zPU1vY2tPcHRpb25z
KHdlYmtpdF90ZXN0X3J1bm5lcj1UcnVlKSkKKyAgICAgICAgdW5pdHRlc3QuVGVzdENhc2UuYXNz
ZXJ0RXF1YWwoc2VsZiwgcG9ydC5leHBlY3RhdGlvbnNfZmlsZXMoKSwgc2VhcmNoX3BhdGhzKQor
CisgICAgZGVmIHRlc3RfYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6CisgICAgICAgIGZvciBj
YXNlIGluIHNlbGYuc2VhcmNoX3BhdGhzX2Nhc2VzOgorICAgICAgICAgICAgc2VsZi5fYXNzZXJ0
X3NlYXJjaF9wYXRoKCoqY2FzZSkKKworICAgIGRlZiB0ZXN0X2V4cGVjdGF0aW9uc19maWxlcyhz
ZWxmKToKKyAgICAgICAgZm9yIGNhc2UgaW4gc2VsZi5leHBlY3RhdGlvbl9maWxlc19jYXNlczoK
KyAgICAgICAgICAgIGV4cGVjdGF0aW9uc19jYXNlID0gZGVlcGNvcHkoY2FzZSkKKyAgICAgICAg
ICAgIGV4cGVjdGF0aW9uc19jYXNlWydzZWFyY2hfcGF0aHMnXSA9IG1hcChsYW1iZGEgcGF0aDog
Jy9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMnICBpZiBub3QgcGF0
aCBlbHNlICcvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS8lcy9UZXN0RXhwZWN0
YXRpb25zJyAlIChwYXRoKSwgZXhwZWN0YXRpb25zX2Nhc2VbJ3NlYXJjaF9wYXRocyddKQorICAg
ICAgICAgICAgc2VsZi5fYXNzZXJ0X2V4cGVjdGF0aW9uc19maWxlcygqKmV4cGVjdGF0aW9uc19j
YXNlKQorCisgICAgZGVmIHRlc3RfZGVmYXVsdF90aW1lb3V0X21zKHNlbGYpOgorICAgICAgICB1
bml0dGVzdC5UZXN0Q2FzZS5hc3NlcnRFcXVhbChzZWxmLCBzZWxmLm1ha2VfcG9ydChvcHRpb25z
PU1vY2tPcHRpb25zKGNvbmZpZ3VyYXRpb249J1JlbGVhc2UnKSkuZGVmYXVsdF90aW1lb3V0X21z
KCksIDgwMDAwKQorICAgICAgICB1bml0dGVzdC5UZXN0Q2FzZS5hc3NlcnRFcXVhbChzZWxmLCBz
ZWxmLm1ha2VfcG9ydChvcHRpb25zPU1vY2tPcHRpb25zKGNvbmZpZ3VyYXRpb249J0RlYnVnJykp
LmRlZmF1bHRfdGltZW91dF9tcygpLCA4MDAwMCkKZGlmZiAtLWdpdCBhL1Rvb2xzL2poYnVpbGQv
amhidWlsZC13cmFwcGVyIGIvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBwZXIKaW5kZXggMzYw
OTQyZjRiODc0MTg3NGYyOWYxYTcxMGU2NDQzZjQ0YzJjMDRkYy4uNjdhOTBhYmFiOWFmODlkZWM3
ODEyYTFhOTQ1YzQxMmMzYjBiYjMyNCAxMDA3NTUKLS0tIGEvVG9vbHMvamhidWlsZC9qaGJ1aWxk
LXdyYXBwZXIKKysrIGIvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBwZXIKQEAgLTk1LDYgKzk1
LDggQEAgZGVmIGRldGVybWluZV9wbGF0Zm9ybSgpOgogICAgICAgICByZXR1cm4gImVmbCI7CiAg
ICAgaWYgJy0tZ3RrJyBpbiBzeXMuYXJndjoKICAgICAgICAgcmV0dXJuICJndGsiOworICAgIGlm
ICctLW5peCcgaW4gc3lzLmFyZ3Y6CisgICAgICAgIHJldHVybiAibml4IjsKICAgICByYWlzZSBW
YWx1ZUVycm9yKCdObyBwbGF0Zm9ybSBzcGVjaWZpZWQgZm9yIGpoYnVpbGQtd3JhcHBlci4nKQog
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL25peC9jb21tb24ucHkgYi9Ub29scy9uaXgvY29tbW9uLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmVmODM1N2UzNzhlOGI5M2Q5OGExNWVjZDM2OTcxZGJkMDAwMjc2YzQKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9uaXgvY29tbW9uLnB5CkBAIC0wLDAgKzEsMzIgQEAKKyMh
L3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTEgSWdhbGlhIFMuTC4KKyMg
Q29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKS4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
IyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAt
MTMwMSAgVVNBCisKK2ltcG9ydCBvcworCitzY3JpcHRfZGlyID0gTm9uZQorCisKK2RlZiBzY3Jp
cHRfcGF0aCgqYXJncyk6CisgICAgZ2xvYmFsIHNjcmlwdF9kaXIKKyAgICBpZiBub3Qgc2NyaXB0
X2RpcjoKKyAgICAgICAgc2NyaXB0X2RpciA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUo
X19maWxlX18pLCAnLi4nLCAnU2NyaXB0cycpCisgICAgcmV0dXJuIG9zLnBhdGguam9pbigqKHNj
cmlwdF9kaXIsKSArIGFyZ3MpCisKKworZGVmIHRvcF9sZXZlbF9wYXRoKCphcmdzKToKKyAgICBy
ZXR1cm4gb3MucGF0aC5qb2luKCooKHNjcmlwdF9wYXRoKCcuLicsICcuLicpLCkgKyBhcmdzKSkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL25peC9qaGJ1aWxkLm1vZHVsZXMgYi9Ub29scy9uaXgvamhidWls
ZC5tb2R1bGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3OThjMGU1MTM5NGVlOWIyZmRlYzdmNTcxODM2Y2ZjZTU5
Y2UwODUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9uaXgvamhidWlsZC5tb2R1bGVzCkBAIC0w
LDAgKzEsMTI3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBtb2R1bGVzZXQg
U1lTVEVNICJtb2R1bGVzZXQuZHRkIj4KKzw/eG1sLXN0eWxlc2hlZXQgdHlwZT0idGV4dC94c2wi
IGhyZWY9Im1vZHVsZXNldC54c2wiPz4KKzxtb2R1bGVzZXQ+CisKKyAgPG1ldGFtb2R1bGUgaWQ9
IndlYmtpdG5peC10ZXN0aW5nLWRlcGVuZGVuY2llcyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAg
ICAgIDxkZXAgcGFja2FnZT0iY2Fpcm8iLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZm9udHMiLz4K
KyAgICAgIDxkZXAgcGFja2FnZT0iZm9udGNvbmZpZyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJm
cmVldHlwZTYiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iaGFyZmJ1enoiLz4KKyAgICAgIDxkZXAg
cGFja2FnZT0iZ2xpYiIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnbGliLW5ldHdvcmtpbmciLz4K
KyAgICAgIDxkZXAgcGFja2FnZT0ibGlic291cCIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICA8
L21ldGFtb2R1bGU+CisKKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZ2l0aHVi
LmNvbSIKKyAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbSIvPgorICA8cmVwb3NpdG9yeSB0
eXBlPSJ0YXJiYWxsIiBuYW1lPSJzb3VyY2V3YXJlLm9yZyIKKyAgICAgIGhyZWY9ImZ0cDovL3Nv
dXJjZXdhcmUub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImZ0cC5n
bm9tZS5vcmciCisgICAgICBocmVmPSJodHRwOi8vZnRwLmdub21lLm9yZyIvPgorICA8cmVwb3Np
dG9yeSB0eXBlPSJnaXQiIG5hbWU9ImdpdC5nbm9tZS5vcmciCisgICAgICBocmVmPSJnaXQ6Ly9n
aXQuZ25vbWUub3JnLyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJjYWly
b2dyYXBoaWNzLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9jYWlyb2dyYXBoaWNzLm9yZyIvPgor
ICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJmcmVlZGVza3RvcC5vcmciCisgICAg
ICBocmVmPSJodHRwOi8vd3d3LmZyZWVkZXNrdG9wLm9yZyIvPgorCisgIDxhdXRvdG9vbHMgaWQ9
ImNhaXJvIiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAg
ICA8ZGVwIHBhY2thZ2U9ImZvbnRjb25maWciLz4KKyAgICAgIDxkZXAgcGFja2FnZT0icGl4bWFu
Ii8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9InJlbGVhc2VzL2Nh
aXJvLTEuMTIuOC50YXIueHoiIHZlcnNpb249IjEuMTIuOCIKKyAgICAgICAgICAgIHJlcG89ImNh
aXJvZ3JhcGhpY3Mub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjhmYmI2ZmM2NjExN2Fi
NDEwMGJhZDgzMGNiNDQ3OTQ5N2U1M2M2ZjNmYWNiOThiZjA1YzhkMjk4NTU0ZWJkZDkiCisgICAg
ICAgICAgICBtZDVzdW09IjhiM2RjYWRlODU5YzQ0ZmI3ZTU2ZmM2OGVkZmU5YTQ1Ij4KKyAgICA8
L2JyYW5jaD4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0icGl4bWFuIiBhdXRv
Z2VuLXNoPSJjb25maWd1cmUiCisgICAgICAgICAgICAgYXV0b2dlbmFyZ3M9Ii0tZW5hYmxlLWd0
az1ubyI+CisgICAgPGJyYW5jaCBtb2R1bGU9InNuYXBzaG90cy9waXhtYW4tMC4yOS4yLnRhci5n
eiIgdmVyc2lvbj0iMC4yOS4yIgorICAgICAgICAgICAgcmVwbz0iY2Fpcm9ncmFwaGljcy5vcmci
CisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6NGM0ZTkyMTQzYTQ1NTdhNDYxN2I4MGNhZjBhNThj
Y2IwMTJkODI5Mzc0MWU3NTM4OTAzN2NkNTEzM2IzMzVkYiIKKyAgICAgICAgICAgIG1kNXN1bT0i
OGY1Nzk1ZWE5OGNhZGQ3YjdmMTJlNGIzNzM1MDBlZWYiPgorICAgIDwvYnJhbmNoPgorICA8L2F1
dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJmb250cyIKKyAgICAgICAgICAgICBza2lwLWF1
dG9nZW49InRydWUiPgorICAgIDxicmFuY2ggbW9kdWxlPSJkb3dubG9hZHMvbXJvYmluc29uL3dl
YmtpdGd0ay10ZXN0LWZvbnRzL3dlYmtpdGd0ay10ZXN0LWZvbnRzLTAuMC4zLnRhci5neiIgdmVy
c2lvbj0iMC4wLjMiCisgICAgICAgICAgICByZXBvPSJnaXRodWIuY29tIgorICAgICAgICAgICAg
aGFzaD0ic2hhMjU2OjRhMGEwMWYwMDg1NTk5N2NkY2M3MjAxZjE2NGIzM2E0ZTQxNDRlOGVhZGY0
MGE1ZTU0MmExYzQ0OGUwMzVkZTUiCisgICAgICAgICAgICBtZDVzdW09IjEwZTc0ZGUxYThiYTk2
MWQ5MDM3OTk0ZDQyN2IxZGQyIiBzaXplPSIxNjk4MTY0MiI+CisgICAgPC9icmFuY2g+CisgIDwv
YXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImxpYmZmaSIgYXV0b2dlbi1zaD0iY29uZmln
dXJlIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0iL3B1Yi9saWJmZmkvbGliZmZpLTMuMC4xMS50YXIu
Z3oiIHZlcnNpb249IjMuMC4xMSIKKyAgICAgICAgICAgICByZXBvPSJzb3VyY2V3YXJlLm9yZyIK
KyAgICAgICAgICAgICBoYXNoPSJzaGEyNTY6NzBiZmIwMTM1NjM2MDA4OWFhOTdkM2U3MWUzZWRm
MDVkMTk1NTk5ZmQ4MjJlOTIyZTUwZDQ2YTAwNTVhNjI4MyIKKyAgICAgICAgICAgICBtZDVzdW09
ImY2OWI5NjkzMjI3ZDk3NjgzNWI0ODU3YjFiYTdkMGUzIi8+CisgIDwvYXV0b3Rvb2xzPgorCisg
IDx0YXJiYWxsIGlkPSJmcmVldHlwZTYiPgorICAgIDxzb3VyY2UgaHJlZj0iZG93bmxvYWQuc2F2
YW5uYWguZ251Lm9yZy9yZWxlYXNlcy9mcmVldHlwZS9mcmVldHlwZS0yLjQuMi50YXIuYnoyIiB2
ZXJzaW9uPSIyLjQuMiIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1Njo5YTk4N2FlZjhjNTBkOWJj
ZmRmZGM5ZjAxMmY4YmQwZGU2MDk1Y2MxYTU1MjRlNjJjMWEwMzdkZWI4ZGFjYmZlIgorICAgICAg
ICAgICAgbWQ1c3VtPSI2NDdlZThlZDI2NmY5YTQxMTdjOGQwYTQ4NTViM2QzZSIgLz4KKyAgPC90
YXJiYWxsPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdsaWIiCisgICAgICAgICAgICAgYXV0b2dlbi1z
aD0iY29uZmlndXJlIgorICAgICAgICAgICAgIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZHRyYWNl
Ij4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJsaWJmZmkiLz4KKyAg
ICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0iL3B1Yi9HTk9NRS9zb3VyY2Vz
L2dsaWIvMi4zNi9nbGliLTIuMzYuMC50YXIueHoiIHZlcnNpb249IjIuMzYuMCIKKyAgICAgICAg
ICAgIHJlcG89ImZ0cC5nbm9tZS5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6NDU1YThh
YmU4NjkyYzUxNzRiY2M3ZmZhMTViOTZhNzUyMWEyZjJmOWZiNDc1OTQ0MDU5MjdjMzVjYjliYjIy
NyIvPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJnbGliLW5ldHdvcmtpbmci
PgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4KKyAgICA8
L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0iL3B1Yi9HTk9NRS9zb3VyY2VzL2ds
aWItbmV0d29ya2luZy8yLjMzL2dsaWItbmV0d29ya2luZy0yLjMzLjIudGFyLnh6IiB2ZXJzaW9u
PSIyLjMzLjIiCisgICAgICAgICAgICByZXBvPSJmdHAuZ25vbWUub3JnIgorICAgICAgICAgICAg
aGFzaD0ic2hhMjU2OmUyOThjZmYzOTM1ZWI3NTJiZTI5MGJiZjczNGU0NTdmMTg3MGJkYjUzNzBl
ZTI5MjYwNmU2MDQwYTgyMDc0ZTciCisgICAgICAgICAgICBtZDVzdW09IjVhYmIzNjRmMmEwYmFi
ZTJlYzFlM2E2ZDU5ZjY5MDQzIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9
ImxpYnNvdXAiCisgICAgICAgICAgICAgYXV0b2dlbmFyZ3M9Ii0td2l0aG91dC1nbm9tZSAtLWRp
c2FibGUtaW50cm9zcGVjdGlvbiI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFj
a2FnZT0iZ2xpYi1uZXR3b3JraW5nIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5j
aCBtb2R1bGU9Ii9wdWIvR05PTUUvc291cmNlcy9saWJzb3VwLzIuNDIvbGlic291cC0yLjQyLjAu
dGFyLnh6IiB2ZXJzaW9uPSIyLjQyLjAiCisgICAgICAgICAgICByZXBvPSJmdHAuZ25vbWUub3Jn
IgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjllMGU3ZWI1ZDNmNzQwMWNjZjUyMWZiYzI4OWZj
MWZhMDkyM2I3Yzc4MzM3MjllMmVkNzY5NmY3Yjg0ODg5M2UiCisgICAgICAgICAgICBtZDVzdW09
ImE2MzJhMzhkMjk4M2MyYTg4Njc5NjcyZDAwOTQwMTI4Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisg
IDxhdXRvdG9vbHMgaWQ9ImZvbnRjb25maWciIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSI+CisgICAg
PGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZnJlZXR5cGU2Ii8+CisgICAgPC9k
ZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9InNvZnR3YXJlL2ZvbnRjb25maWcvcmVs
ZWFzZS9mb250Y29uZmlnLTIuOC4wLnRhci5neiIgdmVyc2lvbj0iMi44LjAiCisgICAgICAgICAg
ICByZXBvPSJmcmVlZGVza3RvcC5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6ZmEyYTFj
NmVlYTY1NGQ5ZmNlN2E0YjEyMjBmMTBjOTljZGVjODQ4ZGNjYWYxNjI1YzAxZjA3NmIzMTM4MjMz
NSIKKyAgICAgICAgICAgIG1kNXN1bT0iNzdlMTVhOTIwMDZkZGMyYWRiYjA2Zjg0MGQ1OTFjMGUi
PgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29scz4KKworIDxhdXRvdG9vbHMgaWQ9ImhhcmZi
dXp6IiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiPgorICAgPGJyYW5jaCBtb2R1bGU9InNvZnR3YXJl
L2hhcmZidXp6L3JlbGVhc2UvaGFyZmJ1enotMC45LjE0LnRhci5iejIiIHZlcnNpb249IjAuOS4x
NCIKKyAgICAgICAgICAgY2hlY2tvdXRkaXI9ImhhcmZidXp6LTAuOS4xNCIKKyAgICAgICAgICAg
cmVwbz0iZnJlZWRlc2t0b3Aub3JnIgorICAgICAgICAgICBoYXNoPSJzaGEyNTY6ZDA3YzBmZmRi
YmJmZGZiYjZjNjVlNzNmZTljNzY0NjZlODdkYmYwNGIwOTRjYmQwYWJmNWZkN2Q1NzFhNDAwNCIK
KyAgICAgICAgICAgbWQ1c3VtPSI3ZTE5OTBiNzkwNjBlOThlMmQzMWY2NzdhMGFjOWVlZCI+Cisg
ICA8L2JyYW5jaD4KKyA8L2F1dG90b29scz4KKworPC9tb2R1bGVzZXQ+CmRpZmYgLS1naXQgYS9U
b29scy9uaXgvamhidWlsZHJjIGIvVG9vbHMvbml4L2poYnVpbGRyYwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZmQz
YjliODRmZDBhOTY2Yjk1MDEyNDk0M2VmZjA2NjAyYTE4OGExCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvbml4L2poYnVpbGRyYwpAQCAtMCwwICsxLDcxIEBACisjIS91c3IvYmluL2VudiBweXRo
b24KKyMgQ29weXJpZ2h0IChDKSAyMDExIElnYWxpYSBTLkwuCisjIENvcHlyaWdodCAoQykgMjAx
MiBJbnRlbCBDb3Jwb3JhdGlvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisj
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIExlc3NlciBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKworaW1wb3J0IG11bHRpcHJvY2Vzc2lu
ZworaW1wb3J0IHN5cworCitfX25peF90b29sc19kaXJlY3RvcnkgPSBvcy5wYXRoLmFic3BhdGgo
b3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKK3N5cy5wYXRoID0gW19fbml4X3Rvb2xzX2RpcmVj
dG9yeV0gKyBzeXMucGF0aAoraW1wb3J0IGNvbW1vbgorCitidWlsZF9wb2xpY3kgPSAndXBkYXRl
ZCcKKworIyBGSVhNRTogbW92ZSBzaGFyZWQgcGFydHMgaW50byAuLi9qaGJ1aWxkIGZvbGRlci4K
KworX19tb2R1bGVzZXRfZmlsZV91cmkgPSAnZmlsZTovLycgKyBvcy5wYXRoLmpvaW4oX19uaXhf
dG9vbHNfZGlyZWN0b3J5LCAnamhidWlsZC5tb2R1bGVzJykKK19fZXh0cmFfbW9kdWxlc2V0cyA9
IG9zLmVudmlyb24uZ2V0KCJXRUJLSVRfRVhUUkFfTU9EVUxFU0VUUyIsICIiKS5zcGxpdCgiLCIp
Cittb2R1bGVzZXQgPSBbIF9fbW9kdWxlc2V0X2ZpbGVfdXJpLCBdCitpZiBfX2V4dHJhX21vZHVs
ZXNldHMgIT0gWycnXToKKyAgICBtb2R1bGVzZXQuZXh0ZW5kKF9fZXh0cmFfbW9kdWxlc2V0cykK
KworX19leHRyYV9tb2R1bGVzID0gb3MuZW52aXJvbi5nZXQoIldFQktJVF9FWFRSQV9NT0RVTEVT
IiwgIiIpLnNwbGl0KCIsIikKK21vZHVsZXMgPSBbICd3ZWJraXRuaXgtdGVzdGluZy1kZXBlbmRl
bmNpZXMnLCBdCitpZiBfX2V4dHJhX21vZHVsZXMgIT0gWycnXToKKyAgICBtb2R1bGVzLmV4dGVu
ZChfX2V4dHJhX21vZHVsZXMpCisKK2lmIG9zLmVudmlyb24uaGFzX2tleSgnV0VCS0lUX09VVFBV
VERJUicpOgorICAgIGNoZWNrb3V0cm9vdCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4o
b3MuZW52aXJvblsnV0VCS0lUX09VVFBVVERJUiddLCAnRGVwZW5kZW5jaWVzJywgJ1NvdXJjZScp
KQorICAgIHByZWZpeCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ob3MuZW52aXJvblsn
V0VCS0lUX09VVFBVVERJUiddLCAnRGVwZW5kZW5jaWVzJywgJ1Jvb3QnKSkKK2Vsc2U6CisgICAg
Y2hlY2tvdXRyb290ID0gb3MucGF0aC5hYnNwYXRoKGNvbW1vbi50b3BfbGV2ZWxfcGF0aCgnV2Vi
S2l0QnVpbGQnLCdEZXBlbmRlbmNpZXMnLCAnU291cmNlJykpCisgICAgcHJlZml4ID0gb3MucGF0
aC5hYnNwYXRoKGNvbW1vbi50b3BfbGV2ZWxfcGF0aCgnV2ViS2l0QnVpbGQnLCdEZXBlbmRlbmNp
ZXMnLCAnUm9vdCcpKQorCitub25vdGlmeSA9IFRydWUKK25vdHJheWljb24gPSBUcnVlCitpZiAn
TUFLRUZMQUdTJyBub3QgaW4gb3MuZW52aXJvbjoKKyAgICBvcy5lbnZpcm9uWydNQUtFRkxBR1Mn
XSA9ICctaiVkJyAlIG11bHRpcHJvY2Vzc2luZy5jcHVfY291bnQoKQorCisjIFVzZSBzeXN0ZW0g
bGlicmFyaWVzIHdoaWxlIGJ1aWxkaW5nLgoraWYgdXNlX2xpYjY0OgorICAgIF9saWJkaXIgPSAn
bGliNjQnCitlbHNlOgorICAgIF9saWJkaXIgPSAnbGliJworYWRkcGF0aCgnUEtHX0NPTkZJR19Q
QVRIJywgb3MucGF0aC5qb2luKG9zLnNlcCwgJ3VzcicsIF9saWJkaXIsICdwa2djb25maWcnKSkK
K2FkZHBhdGgoJ1BLR19DT05GSUdfUEFUSCcsIG9zLnBhdGguam9pbihvcy5zZXAsICd1c3InLCAn
c2hhcmUnLCAncGtnY29uZmlnJykpCisKK2FkZHBhdGgoJ1hER19EQVRBX0RJUlMnLCAnL3Vzci9z
aGFyZScpCithZGRwYXRoKCdYREdfQ09ORklHX0RJUlMnLCAnL2V0Yy94ZGcnKQorCisjIEF2b2lk
IG92ZXJsYXBwaW5nIHNlYXJjaCBwYXRoIENNQUtFIHdhcm5pbmcgb24gNjRiaXQgc3lzdGVtcy4K
K2lmICh1c2VfbGliNjQpOgorICAgIGFkZHBhdGgoJ0NNQUtFX1BSRUZJWF9QQVRIJywgb3MucGF0
aC5qb2luKG9zLnNlcCwgcHJlZml4LCAnbGliNjQnKSkKK2Vsc2U6CisgICAgYWRkcGF0aCgnQ01B
S0VfUFJFRklYX1BBVEgnLCBwcmVmaXgpCisKK3BhcnRpYWxfYnVpbGQgPSBGYWxzZQpkaWZmIC0t
Z2l0IGEvVG9vbHMvbml4L3J1bi13aXRoLWpoYnVpbGQgYi9Ub29scy9uaXgvcnVuLXdpdGgtamhi
dWlsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44NTlmMmUyODU0NzBlOTMzOTZlODhmYTdhMDNhNGVhMTE1Njc3ZTIw
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvbml4L3J1bi13aXRoLWpoYnVpbGQKQEAgLTAsMCAr
MSwyNiBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoQykgMjAxMSBJZ2Fs
aWEgUy5MLgorIyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KKyMgQ29weXJp
Z2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KS4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAg
VVNBCisKK2ltcG9ydCBjb21tb24KK2ltcG9ydCBvcworaW1wb3J0IHN5cworCisKK2poYnVpbGRf
d3JhcHBlciA9IGNvbW1vbi50b3BfbGV2ZWxfcGF0aCgnVG9vbHMnLCAnamhidWlsZCcsICdqaGJ1
aWxkLXdyYXBwZXInKQorb3MuZXhlY3ZlKGpoYnVpbGRfd3JhcHBlciwgW2poYnVpbGRfd3JhcHBl
ciwgJy0tbml4JywgJ3J1biddICsgc3lzLmFyZ3ZbMTpdLCBvcy5lbnZpcm9uKQpkaWZmIC0tZ2l0
IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAppbmRleCAxMGY4NTA1NWFlOWYzODIz
ZjBkMjA4MDg1OTlmNjQ0YzE4YWY3OTIxLi4yNjRiZjQ3OTg1Nzk3YTkzZTYyNTk0MDBhNzgyYjY2
MzQ0NDA2MjQyIDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysgYi9DTWFrZUxpc3RzLnR4
dApAQCAtMTAsNiArMTAsNyBAQCBzZXQoV0VCQ09SRV9ESVIgIiR7Q01BS0VfU09VUkNFX0RJUn0v
U291cmNlL1dlYkNvcmUiKQogc2V0KFdFQktJVF9ESVIgIiR7Q01BS0VfU09VUkNFX0RJUn0vU291
cmNlL1dlYktpdCIpCiBzZXQoV0VCS0lUMl9ESVIgIiR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNl
L1dlYktpdDIiKQogc2V0KFRISVJEUEFSVFlfRElSICIke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJj
ZS9UaGlyZFBhcnR5IikKK3NldChQTEFURk9STV9ESVIgIiR7Q01BS0VfU09VUkNFX0RJUn0vU291
cmNlL1BsYXRmb3JtIikKIAogc2V0KFRPT0xTX0RJUiAiJHtDTUFLRV9TT1VSQ0VfRElSfS9Ub29s
cyIpCiAKQEAgLTM5LDcgKzQwLDcgQEAgaW5jbHVkZShXZWJLaXRGZWF0dXJlcykKICMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KICMgRGV0ZXJtaW5lIHdoaWNoIHBvcnQgd2lsbCBiZSBidWlsdAogIyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotc2V0KEFMTF9QT1JUUyBFZmwgV2luQ0UgQmxhY2tCZXJyeSBH
VEspCitzZXQoQUxMX1BPUlRTIEVmbCBXaW5DRSBCbGFja0JlcnJ5IEdUSyBOaXgpCiBzZXQoUE9S
VCAiTk9QT1JUIiBDQUNIRSBTVFJJTkcgImNob29zZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWls
ZCAob25lIG9mICR7QUxMX1BPUlRTfSkiKQogCiBsaXN0KEZJTkQgQUxMX1BPUlRTICR7UE9SVH0g
UkVUKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGIyMmI1MThhZjU5
NjE5YzhkZWRiYWU5NmIyYzI0MTk2MDBiZjI5ZmMuLjdlYTk4Mjc2MDU2NzA3N2FmM2FhYWQ1YTU0
MTUwZWFiMzcwNzEwMzYgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxMy0xMC0zMCAgTWFyY2VsbyBMaXJhICA8bWFyY2Vsby5saXJhQG9w
ZW5ib3NzYS5vcmc+CisKKyAgICAgICAgTml4IHVwc3RyZWFtaW5nIC0gQWRkaW5nIGJ1aWxkIGZp
bGVzIGFuZCBzdXBwb3J0aW5nIHNjcmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExODM2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogU291cmNlL0NN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9GaW5kRUdMLmNtYWtlOgorICAg
ICAgICAqIFNvdXJjZS9jbWFrZS9GaW5kT3BlbkdMRVMyLmNtYWtlOiBBZGRlZC4KKyAgICAgICAg
KiBTb3VyY2UvY21ha2UvT3B0aW9uc0NvbW1vbi5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21h
a2UvT3B0aW9uc05peC5jbWFrZTogQWRkZWQuCisKIDIwMTMtMTAtMjkgIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0
ZSBORVdTIGFuZCBWZXJzaW9ucy5tNCBmb3IgMi4zLjEgcmVsZWFzZS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217833</attachid>
            <date>2013-11-25 14:31:42 -0800</date>
            <delta_ts>2013-11-25 19:01:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118367-20131125193140.patch</filename>
            <type>text/plain</type>
            <size>69727</size>
            <attacher name="Thiago de Barros Lacerda">thiago.lacerda</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA2YjBlYzcwZDFlMGRh
ZTA3MjAzZDYyMDE5MDQ1NjhjZGYzZmJmNzcyLi41Y2M1YWUzYzAxMjBlZWJkYjFmYjY0MTcyMGJm
NjA3N2M1YTkxNDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0xMS0yOCAg
TWFyY2VsbyBMaXJhIDxtYXJjZWxvLmxpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBOaXgg
dXBzdHJlYW1pbmcgLSBBZGRpbmcgYnVpbGQgZmlsZXMgYW5kIHN1cHBvcnRpbmcgc2NyaXB0cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MzY3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDogQWRkZWQuCisgICAgICAgICogUGxhdGZvcm1OaXguY21ha2U6IEFkZGVkLgorCiAy
MDEzLTExLTA3ICBEZW5pcyBOb21peWFtYSAgPGQubm9taXlhbWFAc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgW0dUS10gR2x5cGhzIGluIHZlcnRpY2FsIHRleHQgdGVzdHMgYXJlIHJvdGF0ZWQgOTAg
ZGVncmVlcyBjbG9ja3dpc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggZTA4OTU5NDAyNDcxYThkZjk1MjgwNTJlNWU0ZGNkZDZh
OGNmMjFmYS4uYjM2Y2RlMTUyMWQ0MTJmNTc4ZDI4NGRkOGI4MjUzNjI5MmNhYzM4MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAxMy0xMS0yOCAgTWFyY2VsbyBMaXJhIDxtYXJjZWxvLmxpcmFAb3Bl
bmJvc3NhLm9yZz4KKworICAgICAgICBOaXggdXBzdHJlYW1pbmcgLSBBZGRpbmcgYnVpbGQgZmls
ZXMgYW5kIHN1cHBvcnRpbmcgc2NyaXB0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiB3dGYvRmVhdHVyZURlZmluZXMuaDoKKyAgICAgICAgKiB3dGYv
UGxhdGZvcm0uaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1OaXguY21ha2U6IEFkZGVkLgorCiAy
MDEzLTExLTI0ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAg
ICAgIFVwc3RyZWFtIFVTRShJT1NVUkZBQ0UpIGZyb20gdGhlIGlPUyBwb3J0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggMTA4NDU5MjJiMmIwNTYwOGFlNGE3NmVhMjM5ZjdmNmFhZjFkYWE5ZS4uMzQ0YjhmNGM3Y2Rj
N2M3ODYwYjA3NjNhYzQ2NTg3Y2VmMTE0ZDZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDEzLTExLTI4ICBNYXJjZWxvIExpcmEgPG1hcmNlbG8ubGlyYUBvcGVuYm9zc2Eub3JnPgor
CisgICAgICAgIE5peCB1cHN0cmVhbWluZyAtIEFkZGluZyBidWlsZCBmaWxlcyBhbmQgc3VwcG9y
dGluZyBzY3JpcHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTgzNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgbmVlZGVkLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogUGxhdGZvcm1OaXguY21ha2U6IEFkZGVkLgorCiAyMDEzLTExLTI1ICBwZWF2b0Bv
dXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgogCiAgICAgICAgIFtXaW5DYWlyb10gQ29t
cGlsZSBmYWlscyB3aGVuIEdTVFJFQU1FUiBpcyBub3QgdXNlZC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9DTWFrZUxpc3RzLnR4dAppbmRleCAzNzM2ZWVhMTdh
NDVlZjRhMWQ3NTIxNjRmYTkyNWEyYjg3ZjhhYWE0Li4yNjhiYTJlMjQ4ZGE2NzlhOGYzZWYxMGIx
ZTc5ZjkxNTk3ODVlMWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL0NNYWtlTGlzdHMudHh0CkBAIC01LDYgKzUsMTAgQEAgYWRkX3N1YmRpcmVjdG9yeShX
VEYpCiAKIGFkZF9zdWJkaXJlY3RvcnkoSmF2YVNjcmlwdENvcmUpCiAKK2lmICgiJHtQT1JUfSIg
U1RSRVFVQUwgIk5peCIpCisgICAgYWRkX3N1YmRpcmVjdG9yeShQbGF0Zm9ybSkKK2VuZGlmICgp
CisKIGlmIChFTkFCTEVfQVBJX1RFU1RTKQogICAgIGFkZF9zdWJkaXJlY3RvcnkoY21ha2UvZ3Rl
c3QpCiBlbmRpZiAoKQpAQCAtMjYsNiArMzAsMTMgQEAgV0VCS0lUX0lOQ0xVREVfQ09ORklHX0ZJ
TEVTX0lGX0VYSVNUUygpCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIFNldCBjb21waWxlciBm
bGFncyBmb3IgYWxsIHRhcmdldHMKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2lmICgiJHtQT1JU
fSIgU1RSRVFVQUwgIk5peCIpCisgICAgaWYgKE5PVCBESVNBQkxFX1NUUklDVF9CVUlMRCkKKyAg
ICAgICAgc2V0KEFERElUSU9OQUxfRkxBR1MgRU5BQkxFX1dFUlJPUikKKyAgICBlbmRpZiAoKQor
ICAgIFdFQktJVF9TRVRfRVhUUkFfQ09NUElMRVJfRkxBR1MoUGxhdGZvcm0gJHtBRERJVElPTkFM
X0ZMQUdTfSkKK2VuZGlmICgpCisKIGlmICgke1BPUlR9IFNUUkVRVUFMICJFZmwiKQogICAgIHNl
dChBRERJVElPTkFMX0ZMQUdTIEVOQUJMRV9XRVJST1IpCiBlbmRpZiAoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1BsYXRmb3JtL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1BsYXRmb3JtL0NNYWtlTGlz
dHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZhZjdjYWI5ZTM4M2U1ODI2ZjhlMThjNDNiYzVjNDkwNjRiN2Fm
NDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vQ01ha2VMaXN0cy50eHQKQEAg
LTAsMCArMSw1IEBACitXRUJLSVRfSU5DTFVERV9DT05GSUdfRklMRVNfSUZfRVhJU1RTKCkKKwor
aW5jbHVkZV9kaXJlY3Rvcmllcygke1BsYXRmb3JtX0lOQ0xVREVTfSkKK2FkZF9saWJyYXJ5KFBs
YXRmb3JtIFNUQVRJQyAke1BsYXRmb3JtX1NPVVJDRVN9KQorc2V0X3RhcmdldF9wcm9wZXJ0aWVz
KFBsYXRmb3JtIFBST1BFUlRJRVMgRk9MREVSICJQbGF0Zm9ybSIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvUGxhdGZvcm0vUGxhdGZvcm1OaXguY21ha2UgYi9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm1O
aXguY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDMxOWQyNDRhY2NiYjhjNzc3MWQ5NWRlNDNlNTJmMThmYmQx
NmUxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybU5peC5jbWFr
ZQpAQCAtMCwwICsxLDI5IEBACitzZXQoUGxhdGZvcm1fSU5DTFVERVMKKyAgICBuaXgKKyAgICAk
e0NNQUtFX0JJTkFSWV9ESVJ9ICMgRm9yIGNtYWtlY29uZmlnLmgKKyAgICAke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS9ncmFwaGljcy8gIyBGb3IgSW50UmVjdC5oCisgICAgJHtXVEZfRElSfSAjIEZv
ciBjb25maWcuaAorKQorCitzZXQoUGxhdGZvcm1fSEVBREVSUworICAgIG5peC9wdWJsaWMvQXVk
aW9EZXZpY2UuaAorICAgIG5peC9wdWJsaWMvQ2FudmFzLmgKKyAgICBuaXgvcHVibGljL0NvbG9y
LmgKKyAgICBuaXgvcHVibGljL0NvbW1vbi5oCisgICAgbml4L3B1YmxpYy9GRlRGcmFtZS5oCisg
ICAgbml4L3B1YmxpYy9HYW1lcGFkLmgKKyAgICBuaXgvcHVibGljL0dhbWVwYWRzLmgKKyAgICBu
aXgvcHVibGljL01lZGlhUGxheWVyLmgKKyAgICBuaXgvcHVibGljL011bHRpQ2hhbm5lbFBDTURh
dGEuaAorICAgIG5peC9wdWJsaWMvUGxhdGZvcm0uaAorICAgIG5peC9wdWJsaWMvUmVjdC5oCisg
ICAgbml4L3B1YmxpYy9TaXplLmgKKyAgICBuaXgvcHVibGljL1RoZW1lRW5naW5lLmgKKykKKwor
c2V0KFBsYXRmb3JtX1NPVVJDRVMKKyAgICBuaXgvc3JjL0RlZmF1bHRXZWJUaGVtZUVuZ2luZS5j
cHAKKyAgICBuaXgvc3JjL1BsYXRmb3JtLmNwcAorKQorCitpbnN0YWxsKEZJTEVTICR7UGxhdGZv
cm1fSEVBREVSU30gREVTVElOQVRJT04gaW5jbHVkZS8ke1dlYktpdDJfT1VUUFVUX05BTUV9LSR7
UFJPSkVDVF9WRVJTSU9OX01BSk9SfS9OaXhQbGF0Zm9ybSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmggYi9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5o
CmluZGV4IDQ1ZjViOThhOGM1YzU0NmNlODlmNzhhZDhkNDBiNmM2MWFhZjUzNGYuLjU3YmM3ZGU5
NjgyNjg4MWVkODk5YzRhMmM5NjI2OWRiMTliOTgzMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL0ZlYXR1cmVEZWZpbmVzLmgKKysrIGIvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMu
aApAQCAtMjg1LDYgKzI4NSwxMSBAQAogCiAjZW5kaWYgLyogUExBVEZPUk0oV0lOX0NBSVJPKSAq
LwogCisvKiAtLS0tLS0tLS0gTklYIHBvcnQgKFVuaXgpIC0tLS0tLS0tLSAqLworI2lmIFBMQVRG
T1JNKE5JWCkKKyNpbmNsdWRlICJuaXgvRmVhdHVyZURlZmluZXNOaXguaCIKKyNlbmRpZiAvKiBQ
TEFURk9STShOSVgpICovCisKIC8qIC0tLS0tLS0tLSBFRkwgcG9ydCAoVW5peCkgLS0tLS0tLS0t
ICovCiAjaWYgUExBVEZPUk0oRUZMKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAppbmRleCAyMzgwNjc1NTc0MGY3ZmEy
ZTEzZWYxYjkyZjUzZGJlMGFiMDNmNDFhLi42NDJlZmEwM2Y3NmMzYTZiZTlmOWRkYzllZTY5YmJh
YWI0MjdiZTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKQEAgLTQ1Miw2ICs0NTIsOCBAQAogI2RlZmluZSBXVEZf
UExBVEZPUk1fR1RLIDEKICNlbGlmIGRlZmluZWQoQlVJTERJTkdfQkxBQ0tCRVJSWV9fKQogI2Rl
ZmluZSBXVEZfUExBVEZPUk1fQkxBQ0tCRVJSWSAxCisjZWxpZiBkZWZpbmVkKEJVSUxESU5HX05J
WF9fKQorI2luY2x1ZGUgIm5peC9QbGF0Zm9ybU5peC5oIgogI2VsaWYgT1MoREFSV0lOKQogI2Rl
ZmluZSBXVEZfUExBVEZPUk1fTUFDIDEKICNlbGlmIE9TKFdJTkRPV1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybU5peC5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
Tml4LmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5NTlmYTExMzdjNzhiNjcyYzg3NTk5Y2IzZmZmZWYxZmNm
NjM2ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybU5peC5jbWFr
ZQpAQCAtMCwwICsxLDE4IEBACitsaXN0KEFQUEVORCBXVEZfU09VUkNFUworICAgIGdvYmplY3Qv
R093blB0ci5jcHAKKyAgICBnb2JqZWN0L0dSZWZQdHIuY3BwCisgICAgZ29iamVjdC9HbGliVXRp
bGl0aWVzLmNwcAorCisgICAgZ3RrL01haW5UaHJlYWRHdGsuY3BwCispCisKK2xpc3QoQVBQRU5E
IFdURl9MSUJSQVJJRVMKKyAgICBwdGhyZWFkCisgICAgJHtHTElCX0xJQlJBUklFU30KKyAgICAk
e0dMSUJfR0lPX0xJQlJBUklFU30KKyAgICAke1pMSUJfTElCUkFSSUVTfQorKQorCitsaXN0KEFQ
UEVORCBXVEZfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICR7R0xJQl9JTkNMVURFX0RJUlN9Cisp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDk0ZWJiYjMzZmVjYjM5Zjg3NDRhZWJlZTgwNTgwYmNh
MWE3ZDM2NGQuLmI4YTIwZWM0M2ZiZTkyMTA0Mzk5ZmViNzc1OWZjMjljM2U1NzY2ZTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0yODU1LDE0ICsyODU1LDE1IEBAIGlmIChXVEZfVVNFXzNEX0dS
QVBISUNTKQogICAgICAgICAiJHtUSElSRFBBUlRZX0RJUn0vQU5HTEUvaW5jbHVkZS9HTFNMQU5H
IgogICAgICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1IgogICAgICkK
LSAgICBpZiAoT1BFTkdMX0ZPVU5EKQorICAgICMgTml4IG1heSB1c2UgZWl0aGVyIE9wZW5HTCBv
ciBPcGVuR0xFUzIgaGVhZGVycywgc28gd2UgaGFuZGxlIHRoaXMgYXQgUGxhdGZvcm1OaXguY21h
a2UuCisgICAgaWYgKE9QRU5HTF9GT1VORCBBTkQgTk9UIFBPUlQgU1RSRVFVQUwgIk5peCIpCiAg
ICAgICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICAgICAg
ICAgJHtPUEVOR0xfSU5DTFVERV9ESVJ9CiAgICAgICAgICkKICAgICAgICAgbGlzdChBUFBFTkQg
V2ViQ29yZV9MSUJSQVJJRVMKICAgICAgICAgICAgICR7T1BFTkdMX2dsX0xJQlJBUll9CiAgICAg
ICAgICkKLSAgICBlbHNlaWYgKE9QRU5HTEVTMl9GT1VORCkKKyAgICBlbHNlaWYgKE9QRU5HTEVT
Ml9GT1VORCBBTkQgTk9UIFBPUlQgU1RSRVFVQUwgIk5peCIpCiAgICAgICAgIGxpc3QoQVBQRU5E
IFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICAgICAgICAgJHtPUEVOR0xFUzJfSU5D
TFVERV9ESVJ9CiAgICAgICAgICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
Tml4LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1OaXguY21ha2UKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTk0YjQxNTExODUyZTk4Mjc0YWFmZjZmYzBhMWY2MjM5Njc4ZDU4OQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTml4LmNtYWtlCkBAIC0wLDAgKzEsMzI4IEBACits
aXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vbml4IgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9jYWlybyIKKyAg
ICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8iCisgICAgIiR7V0VCQ09S
RV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlIgorICAgICIke1dFQkNPUkVfRElSfS9w
bGF0Zm9ybS9ncmFwaGljcy9nbHgiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBo
aWNzL2hhcmZidXp6LyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvaGFy
ZmJ1enovbmciCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL25peCIKKyAg
ICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsIgorICAgICIke1dFQkNP
UkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZSIKKyAgICAiJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbGludXgiCisg
ICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lciIKKyAgICAi
JHtQTEFURk9STV9ESVJ9L25peC8iCispCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwor
ICAgIGNzcy9XZWJLaXRDU1NBcnJheUZ1bmN0aW9uVmFsdWUuY3BwCisgICAgY3NzL1dlYktpdENT
U01hdEZ1bmN0aW9uVmFsdWUuY3BwCisgICAgY3NzL1dlYktpdENTU01hdHJpeC5jcHAKKyAgICBj
c3MvV2ViS2l0Q1NTTWl4RnVuY3Rpb25WYWx1ZS5jcHAKKworICAgIGVkaXRpbmcvU21hcnRSZXBs
YWNlSUNVLmNwcAorCisgICAgaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc05peC5jcHAKKworICAg
IHBhZ2UvVG91Y2hBZGp1c3RtZW50LmNwcAorCisgICAgcGFnZS9uaXgvRXZlbnRIYW5kbGVyTml4
LmNwcAorCisgICAgcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtTm9uZS5jcHAKKyAgICBwbGF0Zm9y
bS9Db250ZXh0TWVudU5vbmUuY3BwCisgICAgcGxhdGZvcm0vQ3Vyc29yLmNwcAorICAgIHBsYXRm
b3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCisgICAgcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcAorCisgICAgcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFw
aGljcy9PcGVuR0xTaGltcy5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9XT0ZGRmlsZUZvcm1h
dC5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3Bw
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3BwCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRHJhd2luZ0J1ZmZlckNhaXJvLmNwcAorICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dy
YWRpZW50Q2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0Q2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWly
by5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNhaXJvLmNwcAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9Pd25QdHJDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Q
YXRoQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0dGVybkNhaXJvLmNw
cAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmNwcAor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtUGF0aENhaXJvLmNwcAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL1JlZlB0ckNhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL1RpbGVDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9UaWxl
ZEJhY2tpbmdTdG9yZUJhY2tlbmRDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9UcmFuc2Zvcm1hdGlvbk1hdHJpeENhaXJvLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9DdXN0b21GaWx0ZXJNZXNoR2VuZXJhdG9yLmNwcAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAKKworICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAorICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKKyAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3Bw
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvR2x5cGhQYWdlVHJlZU5vZGVGcmVlVHlw
ZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9TaW1wbGVGb250RGF0YUZyZWVU
eXBlLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpGYWNlLmNw
cAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZUNhaXJvLmNwcAor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6U2hhcGVyLmNwcAorCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3Mvbml4L0ljb25OaXguY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
bml4L0ltYWdlTml4LmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnMzRE9wZW5HTENvbW1vbi5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVu
dHlwZS9PcGVuVHlwZVZlcnRpY2FsRGF0YS5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAKKworICAgIHBsYXRmb3JtL2d0ay9FdmVu
dExvb3BHdGsuY3BwCisgICAgcGxhdGZvcm0vZ3RrL0xvZ2dpbmdHdGsuY3BwCisgICAgcGxhdGZv
cm0vZ3RrL1NoYXJlZEJ1ZmZlckd0ay5jcHAKKworICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L0ltYWdlRGVjb2Rlci5jcHAKKworICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2JtcC9CTVBJ
bWFnZURlY29kZXIuY3BwCisgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wL0JNUEltYWdl
UmVhZGVyLmNwcAorCisgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvY2Fpcm8vSW1hZ2VEZWNv
ZGVyQ2Fpcm8uY3BwCisKKyAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYvR0lGSW1hZ2VE
ZWNvZGVyLmNwcAorICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9HSUZJbWFnZVJlYWRl
ci5jcHAKKworICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2ljby9JQ09JbWFnZURlY29kZXIu
Y3BwCisKKyAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIu
Y3BwCisKKyAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmNw
cAorCisgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9XRUJQSW1hZ2VEZWNvZGVyLmNw
cAorCisgICAgcGxhdGZvcm0vbGludXgvR2FtZXBhZERldmljZUxpbnV4LmNwcAorCisgICAgcGxh
dGZvcm0vbml4L0N1cnNvck5peC5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvRHJhZ0RhdGFOaXguY3Bw
CisgICAgcGxhdGZvcm0vbml4L0RyYWdJbWFnZU5peC5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvR2Ft
ZXBhZHNOaXguY3BwCisgICAgcGxhdGZvcm0vbml4L0xhbmd1YWdlTml4LmNwcAorICAgIHBsYXRm
b3JtL25peC9Mb2NhbGl6ZWRTdHJpbmdzTml4LmNwcAorICAgIHBsYXRmb3JtL25peC9OaXhLZXli
b2FyZFV0aWxpdGllcy5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvUGFzdGVib2FyZE5peC5jcHAKKyAg
ICBwbGF0Zm9ybS9uaXgvUGxhdGZvcm1LZXlib2FyZEV2ZW50Tml4LmNwcAorICAgIHBsYXRmb3Jt
L25peC9QbGF0Zm9ybVNjcmVlbk5peC5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvUmVuZGVyVGhlbWVO
aXguY3BwCisgICAgcGxhdGZvcm0vbml4L1Njcm9sbGJhclRoZW1lTml4LmNwcAorICAgIHBsYXRm
b3JtL25peC9Tb3VuZE5peC5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvV2lkZ2V0Tml4LmNwcAorCisg
ICAgcGxhdGZvcm0vbml4L3N1cHBvcnQvTXVsdGlDaGFubmVsUENNRGF0YS5jcHAKKworICAgIHBs
YXRmb3JtL3RleHQvTG9jYWxlTm9uZS5jcHAKKworICAgIHBsYXRmb3JtL3RleHQvbml4L1RleHRC
cmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VOaXguY3BwCisKKyAgICBwbHVnaW5zL1BsdWdpbkRhdGFi
YXNlLmNwcAorICAgIHBsdWdpbnMvUGx1Z2luRGVidWcuY3BwCisgICAgcGx1Z2lucy9QbHVnaW5Q
YWNrYWdlLmNwcAorICAgIHBsdWdpbnMvUGx1Z2luUGFja2FnZU5vbmUuY3BwCisgICAgcGx1Z2lu
cy9QbHVnaW5TdHJlYW0uY3BwCisgICAgcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorICAgIHBsdWdp
bnMvUGx1Z2luVmlld05vbmUuY3BwCisKKyAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRT
aGFkZXIuY3BwCisgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5j
cHAKKyAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtQ2FjaGUuY3Bw
CispCisKK2lmIChXVEZfVVNFX09QRU5HTF9FU18yKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVf
U09VUkNFUworICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3Bl
bkdMRVMuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRl
eHQzRE9wZW5HTEVTLmNwcAorICAgICkKKyAgICBsaXN0KElOU0VSVCBXZWJDb3JlX0lOQ0xVREVf
RElSRUNUT1JJRVMgMCAke09QRU5HTEVTMl9JTkNMVURFX0RJUlN9KQorICAgIGxpc3QoQVBQRU5E
IFdlYkNvcmVfTElCUkFSSUVTICR7T1BFTkdMRVMyX0xJQlJBUklFU30pCisgICAgYWRkX2RlZmlu
aXRpb25zKCR7T1BFTkdMRVMyX0RFRklOSVRJT05TfSkKK2Vsc2UgKCkKKyAgICBsaXN0KEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVu
c2lvbnMzRE9wZW5HTC5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dDNET3BlbkdMLmNwcAorICAgICkKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJ
QlJBUklFUworICAgICAgICAke09QRU5HTF9nbF9MSUJSQVJZfQorICAgICkKK2VuZGlmICgpCisK
K2lmIChXVEZfVVNFX0VHTCkKKyAgICBsaXN0KElOU0VSVCBXZWJDb3JlX0lOQ0xVREVfRElSRUNU
T1JJRVMgMAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wKKyAgICAgICAgJHtFR0xfSU5D
TFVERV9ESVJ9CisgICAgKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKKworICAgICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9HcmFwaGljc0NvbnRleHQzRENhaXJvLmNwcAorCisgICAgICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRGcm9tQ3VycmVudEVHTC5jcHAKKyAgICApCisgICAgbGlz
dChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMgJHtFR0xfTElCUkFSWX0pCitlbHNlICgpCisgICAg
bGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL3N1cmZhY2VzL2dseAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNl
cy9lZmwKKyAgICAgICAgJHtYMTFfWDExX0lOQ0xVREVfUEFUSH0KKyAgICApCisgICAgbGlzdChB
UFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFw
aGljc0NvbnRleHQzREVmbC5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKKworICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR0xQbGF0Zm9ybUNvbnRleHQuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HTFBsYXRmb3JtU3VyZmFjZS5jcHAKKworICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9HTFRyYW5zcG9ydFN1cmZhY2UuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5jcHAKKworICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9lZmwvR3JhcGhpY3NTdXJmYWNlQ29tbW9uLmNwcAorCisgICAgICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0LmNwcAorICAgICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMUhlbHBlci5jcHAKKyAgICApCisgICAgbGlzdChBUFBFTkQg
V2ViQ29yZV9MSUJSQVJJRVMgJHtYMTFfWDExX0xJQn0gJHtYMTFfWGNvbXBvc2l0ZV9MSUJ9ICR7
WDExX1hyZW5kZXJfTElCfSkKKworICAgIGlmIChFTkFCTEVfTUVESUFfU1RSRUFNKQorICAgICAg
ICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUyAke1gxMV9YZXh0X0xJQn0pCisgICAgZW5k
aWYgKCkKK2VuZGlmICgpCisKK2lmIChFTkFCTEVfQkFUVEVSWV9TVEFUVVMpCisgICAgbGlzdChB
UFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTICR7REJVU19JTkNMVURFX0RJUlN9KQor
ICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTICR7REJVU19MSUJSQVJJRVN9KQorZW5k
aWYgKCkKKworbGlzdChBUFBFTkQgV2ViQ29yZV9VU0VSX0FHRU5UX1NUWUxFX1NIRUVUUworICAg
ICR7V0VCQ09SRV9ESVJ9L2Nzcy9tZWRpYUNvbnRyb2xzTml4LmNzcworICAgICR7V0VCQ09SRV9E
SVJ9L2Nzcy9tZWRpYUNvbnRyb2xzTml4RnVsbHNjcmVlbi5jc3MKKykKKworbGlzdChBUFBFTkQg
V2ViQ29yZV9MSUJSQVJJRVMKKyAgICAke0NBSVJPX0xJQlJBUklFU30KKyAgICAke0ZPTlRDT05G
SUdfTElCUkFSSUVTfQorICAgICR7RlJFRVRZUEVfTElCUkFSSUVTfQorICAgICR7R0xJQl9HSU9f
TElCUkFSSUVTfQorICAgICR7R0xJQl9HTU9EVUxFX0xJQlJBUklFU30KKyAgICAke0dMSUJfR09C
SkVDVF9MSUJSQVJJRVN9CisgICAgJHtHTElCX0xJQlJBUklFU30KKyAgICAke0hBUkZCVVpaX0xJ
QlJBUklFU30KKyAgICAke0pQRUdfTElCUkFSWX0KKyAgICAke0xJQlhNTDJfTElCUkFSSUVTfQor
ICAgICR7TElCWFNMVF9MSUJSQVJJRVN9CisgICAgJHtQTkdfTElCUkFSWX0KKyAgICAke1NRTElU
RV9MSUJSQVJJRVN9CisgICAgJHtaTElCX0xJQlJBUklFU30KKyAgICBQbGF0Zm9ybQorKQorCits
aXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAke0ZPTlRDT05GSUdf
SU5DTFVERV9ESVJ9CisgICAgJHtDQUlST19JTkNMVURFX0RJUlN9CisgICAgJHtGUkVFVFlQRV9J
TkNMVURFX0RJUlN9CisgICAgJHtMSUJYTUwyX0lOQ0xVREVfRElSfQorICAgICR7TElCWFNMVF9J
TkNMVURFX0RJUn0KKyAgICAke1NRTElURV9JTkNMVURFX0RJUn0KKyAgICAke0dMSUJfSU5DTFVE
RV9ESVJTfQorICAgICR7WkxJQl9JTkNMVURFX0RJUlN9CisgICAgJHtIQVJGQlVaWl9JTkNMVURF
X0RJUlN9CispCisKK2FkZF9kZWZpbml0aW9ucygtRERBVEFfRElSPSIke0NNQUtFX0lOU1RBTExf
UFJFRklYfS8ke0RBVEFfSU5TVEFMTF9ESVJ9IikKKworaWYgKEVOQUJMRV9XRUJfQVVESU8pCisg
IGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICIke1dFQkNPUkVf
RElSfS9wbGF0Zm9ybS9hdWRpby9uaXgiCisgICkKKyAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VS
Q0VTCisgICAgcGxhdGZvcm0vYXVkaW8vbml4L0F1ZGlvQnVzTml4LmNwcAorICAgIHBsYXRmb3Jt
L2F1ZGlvL25peC9BdWRpb0Rlc3RpbmF0aW9uTml4LmNwcAorICAgIHBsYXRmb3JtL2F1ZGlvL25p
eC9GRlRGcmFtZU5peC5jcHAKKyAgKQorICBzZXQoV0VCX0FVRElPX0RJUiAke0NNQUtFX0lOU1RB
TExfUFJFRklYfS8ke0RBVEFfSU5TVEFMTF9ESVJ9L3dlYmF1ZGlvL3Jlc291cmNlcykKKyAgZmls
ZShHTE9CIFdFQl9BVURJT19EQVRBICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9hdWRpby9yZXNv
dXJjZXMvKi53YXYiKQorICBpbnN0YWxsKEZJTEVTICR7V0VCX0FVRElPX0RBVEF9IERFU1RJTkFU
SU9OICR7V0VCX0FVRElPX0RJUn0pCisgIGFkZF9kZWZpbml0aW9ucygtRFVOSU5TVEFMTEVEX0FV
RElPX1JFU09VUkNFU19ESVI9IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2F1ZGlvL3Jlc291cmNl
cyIpCitlbmRpZiAoKQorCitpZiAoV1RGX1VTRV9DVVJMKQorICAgIGxpc3QoQVBQRU5EIFdlYkNv
cmVfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0v
bmV0d29yay9jdXJsIgorICAgICkKKworICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwor
ICAgICAgICBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwCisK
KyAgICAgICAgcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZURhdGFiYXNlQmFja2luZ1N0b3Jl
LmNwcAorICAgICAgICBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5jcHAKKyAg
ICAgICAgcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZU1hbmFnZXIuY3BwCisgICAgICAgIHBs
YXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVOb2RlLmNwcAorICAgICAgICBwbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQ29va2llU3RvcmFnZUN1cmwuY3BwCisgICAgICAgIHBsYXRmb3JtL25ldHdvcmsv
Y3VybC9DcmVkZW50aWFsU3RvcmFnZUN1cmwuY3BwCisgICAgICAgIHBsYXRmb3JtL25ldHdvcmsv
Y3VybC9ETlNDdXJsLmNwcAorICAgICAgICBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvRm9ybURhdGFT
dHJlYW1DdXJsLmNwcAorICAgICAgICBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvTXVsdGlwYXJ0SGFu
ZGxlLmNwcAorICAgICAgICBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUGFyc2VkQ29va2llLmNwcAor
ICAgICAgICBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHJveHlTZXJ2ZXJDdXJsLmNwcAorICAgICAg
ICBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAorICAgICAgICBw
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAorICAgICAgICBw
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlQ3VybC5jcHAKKyAgICAgICAg
cGxhdGZvcm0vbmV0d29yay9jdXJsL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50Q3VybC5jcHAKKyAg
ICApCisKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUworICAgICAgICAke0NVUkxf
TElCUkFSSUVTfQorICAgICkKK2Vsc2UgKCkKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJD
RVMKKyAgICAgICAgbG9hZGVyL3NvdXAvQ2FjaGVkUmF3UmVzb3VyY2VTb3VwLmNwcAorICAgICAg
ICBsb2FkZXIvc291cC9TdWJyZXNvdXJjZUxvYWRlclNvdXAuY3BwCisKKyAgICAgICAgcGxhdGZv
cm0vbmV0d29yay9zb3VwL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU291cC5jcHAKKyAgICAgICAg
cGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwCisgICAgICAgIHBsYXRmb3Jt
L25ldHdvcmsvc291cC9Db29raWVTdG9yYWdlU291cC5jcHAKKyAgICAgICAgcGxhdGZvcm0vbmV0
d29yay9zb3VwL0NyZWRlbnRpYWxTdG9yYWdlU291cC5jcHAKKyAgICAgICAgcGxhdGZvcm0vbmV0
d29yay9zb3VwL0ROU1NvdXAuY3BwCisgICAgICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9HT3du
UHRyU291cC5jcHAKKyAgICAgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdl
U2Vzc2lvblNvdXAuY3BwCisgICAgICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVJlc29s
dmVyU291cC5jcHAKKyAgICAgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Byb3h5U2VydmVyU291
cC5jcHAKKyAgICAgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNw
cAorICAgICAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAor
ICAgICAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKKyAg
ICAgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcAorICAg
ICAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlU291cC5jcHAKKyAg
ICAgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBVUklVdGlscy5jcHAKKyAgICAgICAgcGxh
dGZvcm0vbmV0d29yay9zb3VwL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50U291cC5jcHAKKworICAg
ICAgICAjIFVuY29tbWVudCBpdCBhZnRlciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTE4NTk4IGlzIGZpeGVkIGFuZCBtZXJnZWQgdG8gTml4LgorICAgICAgICAjIHBs
YXRmb3JtL3NvdXAvU2hhcmVkQnVmZmVyU291cC5jcHAKKyAgICApCisKKyAgICBsaXN0KEFQUEVO
RCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAgICAgIiR7V0VCQ09SRV9ESVJ9L3Bs
YXRmb3JtL25ldHdvcmsvc291cCIKKyAgICAgICAgJHtMSUJTT1VQX0lOQ0xVREVfRElSU30KKyAg
ICApCisKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUworICAgICAgICAke0xJQlNP
VVBfTElCUkFSSUVTfQorICAgICkKK2VuZGlmICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Uv
RmluZEVHTC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kRUdMLmNtYWtlCmluZGV4IDUyNmM1YmEw
ODU2Mjg4YzgzMjRiYmY1NGY2ZDE3ZWM1MTc4YzZlYjkuLjE2M2VjYjMwZGVhYzE1YmE0YjllODBl
MjZiMmEzNmE0MGRiM2UwOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9GaW5kRUdMLmNtYWtl
CisrKyBiL1NvdXJjZS9jbWFrZS9GaW5kRUdMLmNtYWtlCkBAIC0zNSwzICszNSw3IEBAIGZpbmRf
bGlicmFyeShFR0xfTElCUkFSWSBOQU1FUyAke0VHTF9OQU1FU30pCiAKIGluY2x1ZGUoRmluZFBh
Y2thZ2VIYW5kbGVTdGFuZGFyZEFyZ3MpCiBGSU5EX1BBQ0tBR0VfSEFORExFX1NUQU5EQVJEX0FS
R1MoRUdMIERFRkFVTFRfTVNHIEVHTF9JTkNMVURFX0RJUiBFR0xfTElCUkFSWSkKKworaWYgKFBP
UlQgU1RSRVFVQUwgIk5peCIpCisgICBtYXJrX2FzX2FkdmFuY2VkKEVHTF9JTkNMVURFX0RJUiBF
R0xfTElCUkFSWSkKK2VuZGlmICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZE9wZW5H
TEVTMi5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kT3BlbkdMRVMyLmNtYWtlCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRiNjliOGQyZDExNGI1YjcxM2I3NjRjZTA4NjVhM2Q3NTBkNzcyZWQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvY21ha2UvRmluZE9wZW5HTEVTMi5jbWFrZQpAQCAtMCwwICsxLDI1IEBACisj
IFRyeSB0byBmaW5kIE9wZW5HTEVTMi4gT25jZSBkb25lIHRoaXMgd2lsbCBkZWZpbmU6CisjICAg
ICBPUEVOR0xFUzJfRk9VTkQKKyMgICAgIE9QRU5HTEVTMl9JTkNMVURFX0RJUlMKKyMgICAgIE9Q
RU5HTEVTMl9MSUJSQVJJRVMKKyMgICAgIE9QRU5HTEVTMl9ERUZJTklUSU9OUworCitmaW5kX3Bh
Y2thZ2UoUGtnQ29uZmlnKQorCitwa2dfY2hlY2tfbW9kdWxlcyhQQ19PUEVOR0xFUzIgZ2xlc3Yy
KQorCitpZiAoUENfT1BFTkdMRVMyX0ZPVU5EKQorICAgIHNldChPUEVOR0xFUzJfSU5DTFVERV9E
SVJTICR7UENfT1BFTkdMRVMyX0lOQ0xVREVfRElSU30pCisgICAgc2V0KE9QRU5HTEVTMl9ERUZJ
TklUSU9OUyAke1BDX09QRU5HTEVTMl9DRkxBR1NfT1RIRVJ9KQorZWxzZSAoKQorICAgIGZpbmRf
cGF0aChPUEVOR0xFUzJfSU5DTFVERV9ESVJTIE5BTUVTIEdMRVMyL2dsMi5oKQorZW5kaWYgKCkK
KworZmluZF9saWJyYXJ5KE9QRU5HTEVTMl9MSUJSQVJJRVMgR0xFU3YyCisgICAgSElOVFMgJHtQ
Q19PUEVOR0xFUzJfTElCUkFSWV9ESVJTfSAke1BDX09QRU5HTEVTMl9MSUJESVJ9CispCisKK2lu
Y2x1ZGUoRmluZFBhY2thZ2VIYW5kbGVTdGFuZGFyZEFyZ3MpCitmaW5kX3BhY2thZ2VfaGFuZGxl
X3N0YW5kYXJkX2FyZ3MoT3BlbkdMRVMyIERFRkFVTFRfTVNHIE9QRU5HTEVTMl9MSUJSQVJJRVMg
T1BFTkdMRVMyX0lOQ0xVREVfRElSUykKKworbWFya19hc19hZHZhbmNlZChPUEVOR0xFUzJfSU5D
TFVERV9ESVJTIE9QRU5HTEVTMl9MSUJSQVJZKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09w
dGlvbnNDb21tb24uY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0NvbW1vbi5jbWFrZQppbmRl
eCAwZmU4N2RlYmEzMmJiYWI4ZTVmOTE3N2JlYTk2OWEwMTA0MGUyMjY4Li42ZDYwNGMwMDI4NzFl
ZTk5YjdkMjliMDI3MDAyY2Y2ZTYzNDIxNTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0
aW9uc0NvbW1vbi5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0NvbW1vbi5jbWFrZQpA
QCAtMSw1ICsxLDggQEAKLWFkZF9kZWZpbml0aW9ucygtREJVSUxESU5HX1dJVEhfQ01BS0U9MSkK
LWFkZF9kZWZpbml0aW9ucygtREhBVkVfQ09ORklHX0g9MSkKKyMgTml4IGRvZXNuJ3QgdXNlIGNt
YWtlY29uZmlnLmgKK2lmIChOT1QgUE9SVCBTVFJFUVVBTCAiTml4IikKKyAgICBhZGRfZGVmaW5p
dGlvbnMoLURCVUlMRElOR19XSVRIX0NNQUtFPTEpCisgICAgYWRkX2RlZmluaXRpb25zKC1ESEFW
RV9DT05GSUdfSD0xKQorZW5kaWYgKCkKIAogaWYgKFdURl9PU19VTklYKQogICAgIGFkZF9kZWZp
bml0aW9ucygtRFhQX1VOSVgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc05peC5j
bWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zTml4LmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNTVhNTNm
ODMyYzMwNDlkMDc2M2RhMzlkN2Y5OGFkMGYxZTU1ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvY21ha2UvT3B0aW9uc05peC5jbWFrZQpAQCAtMCwwICsxLDE0NiBAQAorIyBOaXggdXNlcyBh
IGRpZmZlcmVudCB3YXkgdG8gc2V0L3Vuc2V0IGRlZmF1bHQgZmVhdHVyZXMgYmFzZWQgb24gV0sg
YnVnIDExMDcxNyAobm90IHlldCBsYW5kZWQpLgorIyBTbyB0aGUgaW1wbGVtZW50YXRpb24sIGku
ZS4gdGhlIG5leHQgdHdvIG1hY3Jvcywgd2FzIG1vdmVkIHRvIGhlcmUgdG8ga2VlcCBhIG1pbmlt
YWwgYXMgcG9zc2libGUKKyMgaW50ZXJmZXJlbmNlIG9uIG90aGVyIHBvcnRzIHVudGlsIHNvbWUg
ZGF5IHdoZW4vaWYgYnVnIDExMDcxNyBnZXQgbGFuZGVkLgorCisjIENvbXB1dGUgYW5kIHNldCBk
ZWZhdWx0IHZhbHVlcyBmb3IgZmVhdHVyZSBkZWZpbmVzCittYWNybyhXRUJLSVRfT1BUSU9OX0RF
RkFVTFRTIF9wb3J0KQorICAgICMgVXNlIHRoZSBwcmVwcm9jZXNzb3IgdG8gZ2V0IHRoZSBkZWZh
dWx0IHZhbHVlcyBmb3IgZmVhdHVyZSBkZWZpbmVzCisgICAgRVhFQ19QUk9HUkFNKCJnY2MgLUUg
LVAgLWRNIC1EQlVJTERJTkdfJHtfcG9ydH1fXyAtSSAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJj
ZS9XVEYgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIHwgZ3Jl
cCAnXiNkZWZpbmUgRU5BQkxFX1xcd1xcKyBbMDFdJCcgfCBjdXQgLWQnICcgLWYyLTMgfCBzb3J0
IiBPVVRQVVRfVkFSSUFCTEUgREVGSU5JVElPTlMpCisgICAgc3RyaW5nKFJFR0VYIE1BVENIQUxM
ICIoW15cbl0rfFteXG5dKyQpIiBERUZJTklUSU9OU19MSVNUICR7REVGSU5JVElPTlN9KQorCisg
ICAgZm9yZWFjaCAoREVGSU5JVElPTiAke0RFRklOSVRJT05TX0xJU1R9KQorICAgICAgICBzdHJp
bmcoUkVHRVggUkVQTEFDRSAiXihbXiBdKykgKFteIF0rKSQiICJcXDEiIERFRklOSVRJT05fTkFN
RSAiJHtERUZJTklUSU9OfSIpCisgICAgICAgIHN0cmluZyhSRUdFWCBSRVBMQUNFICJeKFteIF0r
KSAoW14gXSspJCIgIlxcMiIgREVGSU5JVElPTl9WQUxVRSAiJHtERUZJTklUSU9OfSIpCisgICAg
ICAgIFdFQktJVF9PUFRJT05fREVGSU5FKCR7REVGSU5JVElPTl9OQU1FfSAiVG9nZ2xlICR7REVG
SU5JVElPTl9OQU1FfSIgJHtERUZJTklUSU9OX1ZBTFVFfSkKKyAgICAgICAgb3B0aW9uKCR7REVG
SU5JVElPTl9OQU1FfSAiVG9nZ2xlICR7REVGSU5JVElPTl9OQU1FfSIgJHtERUZJTklUSU9OX1ZB
TFVFfSkKKyAgICBlbmRmb3JlYWNoICgpCitlbmRtYWNybygpCisKKyMgU2hvdyBXZWJLaXQgb3B0
aW9ucyBzdW1tYXJ5IGFuZCBhZGQgLURGT09CQVIgdG8gZWFjaCBvcHRpb24gd2l0aCBhIHZhbHVl
IGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IHZhbHVlLgorbWFjcm8oUFJPQ0VTU19XRUJLSVRf
T1BUSU9OUykKKyAgICBtZXNzYWdlKFNUQVRVUyAiRW5hYmxlZCBmZWF0dXJlczoiKQorCisgICAg
c2V0KF9NQVhfRkVBVFVSRV9MRU5HVEggMCkKKyAgICBmb3JlYWNoIChfbmFtZSAke19XRUJLSVRf
QVZBSUxBQkxFX09QVElPTlN9KQorICAgICAgICBzdHJpbmcoTEVOR1RIICR7X25hbWV9IF9OQU1F
X0xFTkdUSCkKKyAgICAgICAgaWYgKF9OQU1FX0xFTkdUSCBHUkVBVEVSIF9NQVhfRkVBVFVSRV9M
RU5HVEgpCisgICAgICAgICAgICBzZXQoX01BWF9GRUFUVVJFX0xFTkdUSCAke19OQU1FX0xFTkdU
SH0pCisgICAgICAgIGVuZGlmICgpCisgICAgZW5kZm9yZWFjaCAoKQorCisgICAgc2V0KF9TSE9V
TERfUFJJTlRfUE9JTlRTIE9GRikKKyAgICBmb3JlYWNoIChfbmFtZSAke19XRUJLSVRfQVZBSUxB
QkxFX09QVElPTlN9KQorICAgICAgICBzdHJpbmcoTEVOR1RIICR7X25hbWV9IF9OQU1FX0xFTkdU
SCkKKworICAgICAgICBzZXQoX01FU1NBR0UgIiAke19uYW1lfSAiKQorCisgICAgICAgIGlmIChf
U0hPVUxEX1BSSU5UX1BPSU5UUykKKyAgICAgICAgICAgIGZvcmVhY2ggKElHTk9SRSBSQU5HRSAk
e19OQU1FX0xFTkdUSH0gJHtfTUFYX0ZFQVRVUkVfTEVOR1RIfSkKKyAgICAgICAgICAgICAgICBz
ZXQoX01FU1NBR0UgIiR7X01FU1NBR0V9ICIpCisgICAgICAgICAgICBlbmRmb3JlYWNoICgpCisg
ICAgICAgICAgICBzZXQoX1NIT1VMRF9QUklOVF9QT0lOVFMgT0ZGKQorICAgICAgICBlbHNlICgp
CisgICAgICAgICAgICBmb3JlYWNoIChJR05PUkUgUkFOR0UgJHtfTkFNRV9MRU5HVEh9ICR7X01B
WF9GRUFUVVJFX0xFTkdUSH0pCisgICAgICAgICAgICAgICAgc2V0KF9NRVNTQUdFICIke19NRVNT
QUdFfS4iKQorICAgICAgICAgICAgZW5kZm9yZWFjaCAoKQorICAgICAgICAgICAgc2V0KF9TSE9V
TERfUFJJTlRfUE9JTlRTIE9OKQorICAgICAgICBlbmRpZiAoKQorCisgICAgICAgIGlmICgke19u
YW1lfSkKKyAgICAgICAgICAgIGxpc3QoQVBQRU5EIEZFQVRVUkVfREVGSU5FUyAke19uYW1lfSkK
KyAgICAgICAgICAgIHNldChGRUFUVVJFX0RFRklORVNfV0lUSF9TUEFDRV9TRVBBUkFUT1IgIiR7
RkVBVFVSRV9ERUZJTkVTX1dJVEhfU1BBQ0VfU0VQQVJBVE9SfSAke19uYW1lfSIpCisgICAgICAg
IGVuZGlmICgpCisKKyAgICAgICAgc2V0KF9NRVNTQUdFICIke19NRVNTQUdFfSAkeyR7X25hbWV9
fSIpCisgICAgICAgIG1lc3NhZ2UoU1RBVFVTICIke19NRVNTQUdFfSIpCisgICAgZW5kZm9yZWFj
aCAoKQorCisgICAgIyBBZGQgYWRkX2RlZmluaXRpb25zIHRvIHZhbHVlcyBkaWZmZXJlbnQgZnJv
bSB0aGUgZGVmYXVsdHMKKyAgICBmb3JlYWNoIChfbmFtZSAke19XRUJLSVRfQVZBSUxBQkxFX09Q
VElPTlN9KQorICAgICAgICAjIENvbnZlcnQgdmFsdWVzIGZyb20gT04vT0ZGIHRvIDEvMCBiZWNh
dXNlCisgICAgICAgICMgQ01ha2Ugc2F5cyAiMSBFUVVBTCBPTiIgaXMgZmFsc2UuCisgICAgICAg
IGlmICgke19XRUJLSVRfQVZBSUxBQkxFX09QVElPTlNfSU5JVEFMVkFMVUVfJHtfbmFtZX19KQor
ICAgICAgICAgICAgc2V0KF9hIDEpCisgICAgICAgIGVsc2UgKCkKKyAgICAgICAgICAgIHNldChf
YSAwKQorICAgICAgICBlbmRpZiAoKQorICAgICAgICBpZiAoJHske19uYW1lfX0pCisgICAgICAg
ICAgICBzZXQoX2IgMSkKKyAgICAgICAgZWxzZSAoKQorICAgICAgICAgICAgc2V0KF9iIDApCisg
ICAgICAgIGVuZGlmICgpCisgICAgICAgIGlmIChOT1QgX2EgRVFVQUwgX2IpCisgICAgICAgICAg
ICBhZGRfZGVmaW5pdGlvbnMoIi1EJHtfbmFtZX09JHtfYn0iKQorICAgICAgICBlbmRpZiAoKQor
ICAgIGVuZGZvcmVhY2ggKCkKK2VuZG1hY3JvKCkKKworc2V0KFBST0pFQ1RfVkVSU0lPTl9NQUpP
UiAwKQorc2V0KFBST0pFQ1RfVkVSU0lPTl9NSU5PUiAxKQorc2V0KFBST0pFQ1RfVkVSU0lPTl9Q
QVRDSCAwKQorc2V0KFBST0pFQ1RfVkVSU0lPTiAke1BST0pFQ1RfVkVSU0lPTl9NQUpPUn0uJHtQ
Uk9KRUNUX1ZFUlNJT05fTUlOT1J9LiR7UFJPSkVDVF9WRVJTSU9OX1BBVENIfSkKKworaWYgKENN
QUtFX0NYWF9DT01QSUxFUl9JRCBTVFJFUVVBTCAiR05VIikKKyAgICAjIFVzZSAtZmVtaXQtc3Ry
dWN0LWRlYnVnLWJhc2Vvbmx5IHRvIHJlZHVjZSB0aGUgc2l6ZSBvZiBXZWJDb3JlIHN0YXRpYyBs
aWJyYXJ5CisgICAgc2V0KENNQUtFX0NYWF9GTEFHU19ERUJVRyAiLWcgLWZlbWl0LXN0cnVjdC1k
ZWJ1Zy1iYXNlb25seSIgQ0FDSEUgU1RSSU5HICJGbGFncyB1c2VkIGJ5IHRoZSBjb21waWxlciBk
dXJpbmcgZGVidWcgYnVpbGRzLiIgRk9SQ0UpCitlbmRpZiAoKQorCitzZXQoU0hBUkVEX0NPUkUg
MCkKK3NldChFTkFCTEVfV0VCS0lUIDApCitzZXQoRU5BQkxFX1dFQktJVDIgMSkKKworc2V0KFdl
YktpdDJfT1VUUFVUX05BTUUgV2ViS2l0Tml4KQorCithZGRfZGVmaW5pdGlvbnMoLURCVUlMRElO
R19OSVhfXz0xKQorCitmaW5kX3BhY2thZ2UoQ2Fpcm8gMS4xMi44IFJFUVVJUkVEKQorZmluZF9w
YWNrYWdlKEZvbnRjb25maWcgMi44LjAgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoRnJlZXR5cGUg
UkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoR0xJQiAyLjM2LjAgUkVRVUlSRUQgQ09NUE9ORU5UUyBn
aW8gZ29iamVjdCBnbW9kdWxlIGd0aHJlYWQpCitmaW5kX3BhY2thZ2UoSGFyZkJ1enopCitmaW5k
X3BhY2thZ2UoSUNVIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEpQRUcgUkVRVUlSRUQpCitmaW5k
X3BhY2thZ2UoTGliWG1sMiAyLjYgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoTGliWHNsdCAxLjEu
NyBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShQTkcgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoU3Fs
aXRlIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKFRocmVhZHMgUkVRVUlSRUQpCitmaW5kX3BhY2th
Z2UoWkxJQiBSRVFVSVJFRCkKKworIyBWYXJpYWJsZSB0aGF0IG11c3QgZXhpc3RzIG9uIENNYWtl
IHNwYWNlCisjIHRvIGtlZXAgY29tbW9uIENNYWtlIGZpbGVzIHdvcmtpbmcgYXMgZGVzaXJlZCBm
b3IgdXMKK3NldChXVEZfVVNFX0lDVV9VTklDT0RFIE9OKQorc2V0KFdURl9VU0VfTEVWRUxEQiBP
TikKK3NldChFTkFCTEVfQVBJX1RFU1RTIE9OKQorCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRTKCJO
SVgiKQorV0VCS0lUX09QVElPTl9ERUZJTkUoV1RGX1VTRV9PUEVOR0xfRVNfMiAiVXNlIEVHTCAr
IE9wZW5HTEVTMiIgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZJTkUoV1RGX1VTRV9DVVJMICJVc2Ug
bGliQ3VybCBhcyBuZXR3b3JrIGJhY2tlbmQiIE9GRikKKworaWYgKFdURl9VU0VfQ1VSTCkKKyAg
ICBmaW5kX3BhY2thZ2UoQ1VSTCBSRVFVSVJFRCkKKyAgICBzZXQoUkVRVUlSRURfTkVUV09SSyBs
aWJjdXJsKQorZWxzZSAoKQorICAgIGZpbmRfcGFja2FnZShMaWJTb3VwIDIuNDIuMCBSRVFVSVJF
RCkKKyAgICBzZXQoUkVRVUlSRURfTkVUV09SSyBsaWJzb3VwLTIuNCkKK2VuZGlmICgpCisKK2lm
IChXVEZfVVNFX09QRU5HTF9FU18yKQorICAgIGZpbmRfcGFja2FnZShPcGVuR0xFUzIgUkVRVUlS
RUQpCisgICAgZmluZF9wYWNrYWdlKEVHTCBSRVFVSVJFRCkKKyAgICBzZXQoV1RGX1VTRV9FR0wg
T04pCisgICAgYWRkX2RlZmluaXRpb25zKC1EV1RGX1VTRV9PUEVOR0xfRVNfMj0xKQorZWxzZSAo
KQorICAgIGZpbmRfcGFja2FnZShYMTEgUkVRVUlSRUQpCisgICAgZmluZF9wYWNrYWdlKE9wZW5H
TCBSRVFVSVJFRCkKKyAgICBhZGRfZGVmaW5pdGlvbnMoLURIQVZFX0dMWD0xKQorZW5kaWYgKCkK
KworaWYgKE5PVCBFTkFCTEVfU1ZHKQorICAgIHNldChFTkFCTEVfU1ZHX0ZPTlRTIE9GRikKK2Vu
ZGlmICgpCisKK1BST0NFU1NfV0VCS0lUX09QVElPTlMoKQorCisKKwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGE2MmY4ODkzOTcwODU5YTcxMDQ4
NTkzNDA5MDM3OTgwNThkNGJkMTQuLjllODc4YzEzNjFiZmU1OGRmOWUwMjkxNTJjOWFjZWVkNjUw
NjE0YjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw3MiBAQAorMjAxMy0xMS0yOCAgTWFyY2VsbyBMaXJhIDxtYXJjZWxvLmxpcmFA
b3BlbmJvc3NhLm9yZz4KKworICAgICAgICBOaXggdXBzdHJlYW1pbmcgLSBBZGRpbmcgYnVpbGQg
ZmlsZXMgYW5kIHN1cHBvcnRpbmcgc2NyaXB0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdDoKKyAgICAgICAgKiBT
Y3JpcHRzL3J1bi1uaXgtdGVzdHM6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvcnVuLXdlYmtp
dC10ZXN0czoKKyAgICAgICAgKiBTY3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkOgor
ICAgICAgICAqIFNjcmlwdHMvdXBkYXRlLXdlYmtpdG5peC1saWJzOiBBZGRlZC4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdGRpcnMucG06CisgICAgICAgIChkZXRlcm1pbmVBcmNoaXRlY3R1cmUp
OgorICAgICAgICAoYXJndW1lbnRzRm9yQ29uZmlndXJhdGlvbik6CisgICAgICAgIChqc2NQcm9k
dWN0RGlyKToKKyAgICAgICAgKGJ1aWx0RHlsaWJQYXRoRm9yTmFtZSk6CisgICAgICAgIChkZXRl
cm1pbmVJc05peCk6CisgICAgICAgIChpc05peCk6CisgICAgICAgIChpc0FwcGxlV2ViS2l0KToK
KyAgICAgICAgKGxhdW5jaGVyUGF0aCk6CisgICAgICAgIChsYXVuY2hlck5hbWUpOgorICAgICAg
ICAoY2hlY2tSZXF1aXJlZFN5c3RlbUNvbmZpZyk6CisgICAgICAgIChjb3B5SW5zcGVjdG9yRnJv
bnRlbmRGaWxlcyk6CisgICAgICAgIChqaGJ1aWxkV3JhcHBlclByZWZpeElmTmVlZGVkKToKKyAg
ICAgICAgKGJ1aWxkQ01ha2VQcm9qZWN0T3JFeGl0KToKKyAgICAgICAgKGNtYWtlQmFzZWRQb3J0
TmFtZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5
OgorICAgICAgICAoRGVwcmVjYXRlZFBvcnQucG9ydCk6CisgICAgICAgIChHdGtXSzJQb3J0LnJ1
bl93ZWJraXRfdGVzdHNfY29tbWFuZCk6CisgICAgICAgIChFZmxXSzJQb3J0LmJ1aWxkX3dlYmtp
dF9jb21tYW5kKToKKyAgICAgICAgKE5peFBvcnQpOgorICAgICAgICAoTml4UG9ydC5idWlsZF93
ZWJraXRfY29tbWFuZCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3Rvcnku
cHk6CisgICAgICAgIChwbGF0Zm9ybV9vcHRpb25zKToKKyAgICAgICAgKFBvcnRGYWN0b3J5KToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvbml4LnB5OiBBZGRlZC4KKyAgICAgICAg
KE5peFBvcnQpOgorICAgICAgICAoTml4UG9ydC5fd2syX3BvcnRfbmFtZSk6CisgICAgICAgIChO
aXhQb3J0LmRldGVybWluZV9mdWxsX3BvcnRfbmFtZSk6CisgICAgICAgIChOaXhQb3J0Ll9faW5p
dF9fKToKKyAgICAgICAgKE5peFBvcnQuX3BvcnRfZmxhZ19mb3Jfc2NyaXB0cyk6CisgICAgICAg
IChOaXhQb3J0LnNldHVwX3Rlc3RfcnVuKToKKyAgICAgICAgKE5peFBvcnQuc2V0dXBfZW52aXJv
bl9mb3Jfc2VydmVyKToKKyAgICAgICAgKE5peFBvcnQuZGVmYXVsdF90aW1lb3V0X21zKToKKyAg
ICAgICAgKE5peFBvcnQuY2xlYW5fdXBfdGVzdF9ydW4pOgorICAgICAgICAoTml4UG9ydC5fZ2Vu
ZXJhdGVfYWxsX3Rlc3RfY29uZmlndXJhdGlvbnMpOgorICAgICAgICAoTml4UG9ydC5fcGF0aF90
b19kcml2ZXIpOgorICAgICAgICAoTml4UG9ydC5fcGF0aF90b19pbWFnZV9kaWZmKToKKyAgICAg
ICAgKE5peFBvcnQuX2ltYWdlX2RpZmZfY29tbWFuZCk6CisgICAgICAgIChOaXhQb3J0Ll9zZWFy
Y2hfcGF0aHMpOgorICAgICAgICAoTml4UG9ydC5zaG93X3Jlc3VsdHNfaHRtbF9maWxlKToKKyAg
ICAgICAgKE5peFBvcnQuX3BvcnRfc3BlY2lmaWNfZXhwZWN0YXRpb25zX2ZpbGVzKToKKyAgICAg
ICAgKE5peFBvcnQuZGVmYXVsdF9iYXNlbGluZV9zZWFyY2hfcGF0aCk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9wb3J0L25peF91bml0dGVzdC5weTogQWRkZWQuCisgICAgICAgIChOaXhQ
b3J0VGVzdCk6CisgICAgICAgIChOaXhQb3J0VGVzdC5fYXNzZXJ0X3NlYXJjaF9wYXRoKToKKyAg
ICAgICAgKE5peFBvcnRUZXN0Ll9hc3NlcnRfZXhwZWN0YXRpb25zX2ZpbGVzKToKKyAgICAgICAg
KE5peFBvcnRUZXN0LnRlc3RfYmFzZWxpbmVfc2VhcmNoX3BhdGgpOgorICAgICAgICAoTml4UG9y
dFRlc3QudGVzdF9leHBlY3RhdGlvbnNfZmlsZXMpOgorICAgICAgICAoTml4UG9ydFRlc3QudGVz
dF9kZWZhdWx0X3RpbWVvdXRfbXMpOgorICAgICAgICAqIGpoYnVpbGQvamhidWlsZC13cmFwcGVy
OgorICAgICAgICAoZGV0ZXJtaW5lX3BsYXRmb3JtKToKKyAgICAgICAgKiBuaXgvY29tbW9uLnB5
OiBBZGRlZC4KKyAgICAgICAgKHNjcmlwdF9wYXRoKToKKyAgICAgICAgKHRvcF9sZXZlbF9wYXRo
KToKKyAgICAgICAgKiBuaXgvamhidWlsZC5tb2R1bGVzOiBBZGRlZC4KKyAgICAgICAgKiBuaXgv
amhidWlsZHJjOiBBZGRlZC4KKwogMjAxMy0xMS0yNSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBw
bGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gUHV0IG1vc3Qgb2YgdGhlIENvY29hIEFQSSBiZWhp
bmQgV0tfQVBJX0VOQUJMRUQgZ3VhcmRzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2J1aWxk
LXdlYmtpdCBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CmluZGV4IDM3Njk4MjM5NGIwZWYx
NjgxZDU0YWM5MTdhNDg2OTQ3MTZmOWJjYTMuLmM0YjQ3ZDYzY2Y2MmUyZjRjNjEyNTczZjA5M2E5
YWJmOWFiYzE1YjAgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CisrKyBi
L1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CkBAIC00LDYgKzQsNyBAQAogIyBDb3B5cmlnaHQg
KEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChD
KSAyMDEwIG1vaWppLW1vYmlsZS5jb20gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0
IChDKSAyMDExIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIyBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNiw3ICszNyw3
IEBAIHVzZSBGaWxlOjpCYXNlbmFtZTsKIHVzZSBGaWxlOjpGaW5kOwogdXNlIEZpbGU6OlNwZWM7
CiB1c2UgRmluZEJpbjsKLXVzZSBHZXRvcHQ6OkxvbmcgcXcoOmNvbmZpZyBwYXNzX3Rocm91Z2gp
OwordXNlIEdldG9wdDo6TG9uZyBxdyg6Y29uZmlnIHBhc3NfdGhyb3VnaCBub19hdXRvX2FiYnJl
dik7CiB1c2UgbGliICRGaW5kQmluOjpCaW47CiB1c2Ugd2Via2l0ZGlyczsKIHVzZSB3ZWJraXRw
ZXJsOjpGZWF0dXJlTGlzdCBxdyhnZXRGZWF0dXJlT3B0aW9uTGlzdCk7CkBAIC02Miw5ICs2Myw0
MyBAQCBteSAkbm9XZWJLaXQxID0gMDsKIG15ICRub1dlYktpdDIgPSAwOwogbXkgJGNvdmVyYWdl
U3VwcG9ydCA9IDA7CiBteSAkc3RhcnRUaW1lID0gdGltZSgpOworbXkgJGN1cmwgPSAwOworbXkg
JG9wZW5nbGVzMiA9IDA7CiAKIG15IEBmZWF0dXJlcyA9IGdldEZlYXR1cmVPcHRpb25MaXN0KCk7
CiAKKyMgVXBkYXRlIGRlZmF1bHRzIGZvciB0aGUgTml4IHBvcnQKK2lmIChpc05peCgpKSB7Cisg
ICAgIyBJbnN0ZWFkIG9mIHVzZSBGZWF0dXJlTGlzdC5wbSB0byBsaXN0IGVuYWJsZWQgZmVhdHVy
ZXMsIHRlbGwgdGhlIGNvbXBpbGVyIHRvCisgICAgIyBwYXJzZSBTb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybS5oIGFuZCBnZXQgdGhlIGRlZmF1bHQgdmFsdWVzIG9mIGFsbCBmZWF0dXJlIGZsYWdzCisg
ICAgIyBmcm9tIHRoZSByZXN1bHQuCisgICAgbXkgJHBvcnREZWZpbmUgPSAiQlVJTERJTkdfIi51
YyhjbWFrZUJhc2VkUG9ydE5hbWUoKSkuIl9fIjsKKyAgICBteSAkZGVmaW5pdGlvbnMgPSBgZ2Nj
IC1FIC1QIC1kTSAtRCRwb3J0RGVmaW5lIC1JIFNvdXJjZS9XVEYgU291cmNlL1dURi93dGYvUGxh
dGZvcm0uaCB8IGdyZXAgJ14jZGVmaW5lIEVOQUJMRV9cXHdcXCsgXFswMVxdXCRcXHxeI2RlZmlu
ZSBXVEZfVVNFX1xcd1xcKyBcWzAxXF1cJCcgfCBjdXQgLWQnICcgLWYyLTNgOworCisgICAgbXkg
JWZlYXR1cmVEZWZhdWx0czsKKyAgICBmb3JlYWNoIChzcGxpdCgvXG4vLCAkZGVmaW5pdGlvbnMp
KSB7CisgICAgICAgIG15IEBtYWNyb0RlZmluaXRpb24gPSBzcGxpdCgvIC8pOworICAgICAgICAk
ZmVhdHVyZURlZmF1bHRzeyRtYWNyb0RlZmluaXRpb25bMF19ID0gJG1hY3JvRGVmaW5pdGlvblsx
XTsKKyAgICB9CisKKyAgICBAZmVhdHVyZXMgPSAoKTsKKyAgICBmb3JlYWNoIChzb3J0IGtleXMg
JWZlYXR1cmVEZWZhdWx0cykgeworICAgICAgICBuZXh0IGlmICghL15FTkFCTEUvKTsKKyAgICAg
ICAgbXkgJG9wdGlvbk5hbWUgPSBsYyAkXzsKKyAgICAgICAgJG9wdGlvbk5hbWUgPX4gcy9eZW5h
YmxlXy8vOworICAgICAgICAkb3B0aW9uTmFtZSA9fiBzL18vLS9nOworICAgICAgICBteSAkZGVz
Y05hbWUgPSAkb3B0aW9uTmFtZTsKKyAgICAgICAgJGRlc2NOYW1lID1+IHMvLS8gL2c7CisKKyAg
ICAgICAgcHVzaCBAZmVhdHVyZXMsIHsKKyAgICAgICAgICAgIG9wdGlvbiA9PiAkb3B0aW9uTmFt
ZSwKKyAgICAgICAgICAgIGRlc2MgPT4gIlRvZ2dsZSAkZGVzY05hbWUgc3VwcG9ydCIsCisgICAg
ICAgICAgICBkZWZpbmUgPT4gJF8sCisgICAgICAgICAgICBkZWZhdWx0ID0+ICRmZWF0dXJlRGVm
YXVsdHN7JF99CisgICAgICAgIH07CisgICAgfQorfQorCiAjIEFkZGl0aW9uYWwgZW52aXJvbm1l
bnQgcGFyYW1ldGVycwogcHVzaCBAQVJHViwgc3BsaXQoLyAvLCAkRU5WeydCVUlMRF9XRUJLSVRf
QVJHUyd9KSBpZiAoJEVOVnsnQlVJTERfV0VCS0lUX0FSR1MnfSk7CiAKQEAgLTk0LDYgKzEyOSw3
IEBAIFVzYWdlOiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFtvcHRpb25zIHRvIHBhc3MgdG8gYnVp
bGQgc3lzdGVtXQogCiAgIC0tYmxhY2tiZXJyeSAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB0
aGUgQmxhY2tCZXJyeSBwb3J0IG9uIE1hYy9MaW51eAogICAtLWVmbCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQnVpbGQgdGhlIEVGTCBwb3J0CisgIC0tbml4ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBCdWlsZCB0aGUgTml4IHBvcnQKICAgLS1ndGsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEJ1aWxkIHRoZSBHVEsrIHBvcnQKICAgLS13aW5jYWlybyAgICAgICAgICAgICAg
ICAgICAgICAgIEJ1aWxkIHVzaW5nIENhaXJvIChyYXRoZXIgdGhhbiBDb3JlR3JhcGhpY3MpIG9u
IFdpbmRvd3MKICAgLS13aW5jZSAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1aWxkIHRoZSBX
aW5DRSBwb3J0CkBAIC0xMTAsNiArMTQ2LDkgQEAgVXNhZ2U6ICRwcm9ncmFtTmFtZSBbb3B0aW9u
c10gW29wdGlvbnMgdG8gcGFzcyB0byBidWlsZCBzeXN0ZW1dCiAgIC0tbm8td2Via2l0MSAgICAg
ICAgICAgICAgICAgICAgICBPbWl0IFdlYktpdDEgY29kZSBmcm9tIHRoZSBidWlsZCAoRUZML0dU
SyBvbmx5KQogICAtLW5vLXdlYmtpdDIgICAgICAgICAgICAgICAgICAgICAgT21pdCBXZWJLaXQy
IGNvZGUgZnJvbSB0aGUgYnVpbGQKIAorICAtLWN1cmwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVXNlIGxpYkN1cmwgYXMgbmV0d29yayBiYWNrZW5kIChOaXggb25seSkKKyAgLS1vcGVuZ2xl
czIgICAgICAgICAgICAgICAgICAgICAgIFVzZSBFR0wgYW5kIE9wZW5HTEVTMiBpbnN0ZWFkIG9m
IEdMWCAoTml4IG9ubHkpCisKIEVPRgogCiBteSAlb3B0aW9ucyA9ICgKQEAgLTEyNSw2ICsxNjQs
OCBAQCBteSAlb3B0aW9ucyA9ICgKICAgICAnbm8td2Via2l0MScgPT4gXCRub1dlYktpdDEsCiAg
ICAgJ25vLXdlYmtpdDInID0+IFwkbm9XZWJLaXQyLAogICAgICdjb3ZlcmFnZScgPT4gXCRjb3Zl
cmFnZVN1cHBvcnQsCisgICAgJ2N1cmwnID0+IFwkY3VybCwKKyAgICAnb3BlbmdsZXMyJyA9PiBc
JG9wZW5nbGVzMiwKICk7CiAKICMgQnVpbGQgdXNhZ2UgdGV4dCBhbmQgb3B0aW9ucyBsaXN0IGZy
b20gZmVhdHVyZXMKQEAgLTIzMSw2ICsyNzIsMjQgQEAgaWYgKGlzSW5zcGVjdG9yRnJvbnRlbmQo
KSkgewogICAgIEBwcm9qZWN0cyA9ICgiU291cmNlL1dlYkluc3BlY3RvclVJIik7CiB9CiAKK2lm
IChpc05peCgpKSB7CisgICAgaWYgKCRub1dlYktpdDIpIHsKKyAgICAgICAgcHJpbnQgU1RERVJS
ICJOaXggaXMgYSBXZWJLaXQyIHBvcnQsIHlvdSBjYW4ndCBkaXNhYmxlIFdlYktpdDIgb24gaXQh
XG4iOworICAgICAgICBleGl0IDE7CisgICAgfQorCisgICAgIyBCeSBkZWZhdWx0IHdlIGJ1aWxk
IHVzaW5nIGFsbCBvZiB0aGUgYXZhaWxhYmxlIENQVXMuCisgICAgJG1ha2VBcmdzIC49ICgkbWFr
ZUFyZ3MgPyAiICIgOiAiIikgLiAiLWoiIC4gbnVtYmVyT2ZDUFVzKCkgaWYgJG1ha2VBcmdzICF+
IC8talxzKlxkKy87CisgICAgJGNtYWtlQXJncyA9ICItRFdURl9VU0VfQ1VSTD1PTiAiIC4gJGNt
YWtlQXJncyBpZiAkY3VybDsKKyAgICAkY21ha2VBcmdzID0gIi1EV1RGX1VTRV9PUEVOR0xfRVNf
Mj1PTiAiIC4gJGNtYWtlQXJncyBpZiAkb3BlbmdsZXMyOworCisgICAgIyBXZSByZW1vdmUgQ01h
a2VDYWNoZSB0byBhdm9pZCB0aGUgYm90cyB0byByZXVzZSBjYWNoZWQgZmxhZ3Mgd2hlbgorICAg
ICMgd2UgZW5hYmxlIG5ldyBmZWF0dXJlcy4gVGhpcyBmb3JjZXMgYSByZWNvbmZpZ3VyYXRpb24u
CisgICAgcmVtb3ZlQ01ha2VDYWNoZSgpOworCisgICAgYnVpbGRDTWFrZVByb2plY3RPckV4aXQo
JGNsZWFuLCAiTml4IiwgJHByZWZpeFBhdGgsICRtYWtlQXJncywgKGNtYWtlQmFzZWRQb3J0QXJn
dW1lbnRzKCksIGNNYWtlQXJnc0Zyb21GZWF0dXJlcygpKSwgJGNtYWtlQXJncyk7Cit9CisKIGlm
IChpc0VmbCgpKSB7CiAgICAgIyBCeSBkZWZhdWx0IHdlIGJ1aWxkIHVzaW5nIGFsbCBvZiB0aGUg
YXZhaWxhYmxlIENQVXMuCiAgICAgJG1ha2VBcmdzIC49ICgkbWFrZUFyZ3MgPyAiICIgOiAiIikg
LiAiLWoiIC4gbnVtYmVyT2ZDUFVzKCkgaWYgJG1ha2VBcmdzICF+IC8talxzKlxkKy87CmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi1uaXgtdGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1bi1u
aXgtdGVzdHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E4ZmUxMTM1MmU3Nzg2NmZmYTAyNmVkNmUxNTI0NzA2ZTU2
NmMxNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvcnVuLW5peC10ZXN0cwpAQCAt
MCwwICsxLDQ0IEBACisjIS91c3IvYmluL3BlcmwgLXcKKyMgQ29weXJpZ2h0IChDKSAyMDEyIElu
dGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIw
MTIsIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9u
LgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEludGVsIENvcnBvcmF0aW9uIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwordXNlIHN0cmljdDsKK3VzZSBGaW5kQmluOwordXNl
IGxpYiAkRmluZEJpbjo6QmluOwordXNlIHdlYmtpdGRpcnM7CisKK3NldENvbmZpZ3VyYXRpb24o
KTsKKworIyBNYW51YWxseSBhZGQgdGhpcyBmb3IgamhidWlsZFdyYXBwZXJQcmVmaXhJZk5lZWRl
ZCgpLgorcHVzaChAQVJHViwgIi0tbml4Iik7CisKKyMgVGVsbCBDVGVzdCB0byBkdW1wIGd0ZXN0
IG91dHB1dCBpbiBjYXNlIG9mIGZhaWx1cmUuCiskRU5We0NURVNUX09VVFBVVF9PTl9GQUlMVVJF
fSA9ICIxIjsKKworYnVpbGRDTWFrZVByb2plY3RPckV4aXQoMCwgIk5peCIsIHVuZGVmLCAidGVz
dCIsIGNtYWtlQmFzZWRQb3J0QXJndW1lbnRzKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy9ydW4td2Via2l0LXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzCmluZGV4
IDMyZTg3YTZlNjBmYWRhNWRjNTE5ZjYzODUxMWNiMTZiMDlhYzE5ZjcuLjBmNjM5OTkzNzIyMjFk
ZWM2MThlNWRmN2NiZWFjZTFhOTYyOWYyOGIgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVu
LXdlYmtpdC10ZXN0cworKysgYi9Ub29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMKQEAgLTEs
NiArMSw3IEBACiAjIS91c3IvYmluL3BlcmwgLXcKICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAjCiAjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCkBAIC04MCw2ICs4MSw4IEBAIGlmIChpc0d0aygpKSB7CiAgICAgcHVzaChA
QVJHViwgIi0tZ3RrIik7CiB9IGVsc2lmIChpc0VmbCgpKSB7CiAgICAgcHVzaChAQVJHViwgIi0t
ZWZsIik7Cit9IGVsc2lmIChpc05peCgpKSB7CisgICAgcHVzaChAQVJHViwgIi0tbml4Iik7CiB9
IGVsc2lmIChpc1dpbkNhaXJvKCkpIHsKICAgICBwdXNoKEBBUkdWLCAiLS13aW5jYWlybyIpOwog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZCBi
L1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQKaW5kZXggMTNiYWFjMzY5
OTM5OGQ3NzM4M2M1MzVmNmMyNzZkMDEyNzFkZTc0My4uOTczMzIyMTY2ODRhODc0Y2NmZDUzNDVh
NTk4YWZhYzNiNWI4Y2QzMCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0
LWxpYnMtamhidWlsZAorKysgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1
aWxkCkBAIC0xLDYgKzEsNyBAQAogIyEvdXNyL2Jpbi9wZXJsIC13CiAjIENvcHlyaWdodCAoQykg
MjAxMSBJZ2FsaWEgUy5MLgogIyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24K
KyMgQ29weXJpZ2h0IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKS4KICMKICMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0yMywxNSArMjQsMTcgQEAgdXNlIEdldG9w
dDo6TG9uZyBxdyg6Y29uZmlnIHBhc3NfdGhyb3VnaCk7CiAKIG15ICRwbGF0Zm9ybUVmbCA9IDA7
CiBteSAkcGxhdGZvcm1HdGsgPSAwOworbXkgJHBsYXRmb3JtTml4ID0gMDsKIAogbXkgJGdldE9w
dGlvbnNSZXN1bHQgPSBHZXRPcHRpb25zKAogICAgICdlZmwnID0+IFwkcGxhdGZvcm1FZmwsCi0g
ICAgJ2d0aycgPT4gXCRwbGF0Zm9ybUd0aworICAgICdndGsnID0+IFwkcGxhdGZvcm1HdGssCisg
ICAgJ25peCcgPT4gXCRwbGF0Zm9ybU5peAogICAgICk7CiAKIG15ICRwbGF0Zm9ybSA9ICIiOwog
aWYgKCEkZ2V0T3B0aW9uc1Jlc3VsdCkgewotICAgIGRpZSAiTm8gcGxhdGZvcm0gc3BlY2lmaWVk
IGZvciAiIC4gYmFzZW5hbWUoJDApIC4iLiBVc2UgLS1ndGsgb3IgLS1lZmwuXG4iOworICAgIGRp
ZSAiTm8gcGxhdGZvcm0gc3BlY2lmaWVkIGZvciAiIC4gYmFzZW5hbWUoJDApIC4iLiBVc2UgLS1n
dGssIC0tZWZsIG9yIC0tbml4LlxuIjsKIH0gZWxzZSB7CiAgICAgaWYgKCRwbGF0Zm9ybUVmbCkg
ewogICAgICAgICAkcGxhdGZvcm0gPSAiZWZsIjsKQEAgLTM5LDYgKzQyLDkgQEAgaWYgKCEkZ2V0
T3B0aW9uc1Jlc3VsdCkgewogICAgIGlmICgkcGxhdGZvcm1HdGspIHsKICAgICAgICAgJHBsYXRm
b3JtID0gImd0ayI7CiAgICAgfQorICAgIGlmICgkcGxhdGZvcm1OaXgpIHsKKyAgICAgICAgJHBs
YXRmb3JtID0gIm5peCI7CisgICAgfQogfQogCiBzdWIgZ2V0TUQ1SGFzaEZvckZpbGUoJCkKQEAg
LTEyMCw3ICsxMjYsNyBAQCBkZWxldGUgJEVOVntBUl9GTEFHU30gaWYgZXhpc3RzICRFTlZ7QVJf
RkxBR1N9OwogCiBjaGRpcihyZWxhdGl2ZVNjcmlwdHNEaXIoKSAuICIvLi4vamhidWlsZCIpIG9y
IGRpZSAkITsKIAotbXkgJXByZXR0eVBsYXRmb3JtID0gKCAiZWZsIiA9PiAiRUZMIiwgImd0ayIg
PT4gIkdUSysiICk7CitteSAlcHJldHR5UGxhdGZvcm0gPSAoICJlZmwiID0+ICJFRkwiLCAiZ3Rr
IiA9PiAiR1RLKyIsICJuaXgiID0+ICJOaXgiICk7CiAKIGlmICgtZSBnZXRKaGJ1aWxkUGF0aCgp
ICYmIGpoYnVpbGRDb25maWd1cmF0aW9uQ2hhbmdlZCgpKSB7CiAgICAgY2xlYW5KaGJ1aWxkKCk7
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXRuaXgtbGlicyBiL1Rvb2xz
L1NjcmlwdHMvdXBkYXRlLXdlYmtpdG5peC1saWJzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhM2NiODRkMzE2Nzkx
MWNhNzJhNmY1YTU1NTA4NmUzMzI4OTdkZTIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3Jp
cHRzL3VwZGF0ZS13ZWJraXRuaXgtbGlicwpAQCAtMCwwICsxLDI0IEBACisjIS91c3IvYmluL3Bl
cmwgLXcKKyMgQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uCisjIENvcHlyaWdo
dCAoQykgMjAxMiwgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCisjCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyMgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEz
MDEgIFVTQQorCit1c2UgRmluZEJpbjsKK3VzZSBsaWIgJEZpbmRCaW46OkJpbjsKK3VzZSB3ZWJr
aXRkaXJzOworCitteSAkc2NyaXB0c0RpciA9IHJlbGF0aXZlU2NyaXB0c0RpcigpOworc3lzdGVt
KCJwZXJsIiwgIiRzY3JpcHRzRGlyL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkIiwgIi0tbml4
IiwgQEFSR1YpID09IDAgb3IgZGllICQhOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRkaXJzLnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCmluZGV4IDRmNzQyZGRmZGYx
YTk1ZTIzYjQxYjExZjg0NTg3Yjc2YmUxYjlkOTIuLjgyMDA5ZmEwMTYzNzBiZmE1NGE2YWI1YWNi
MTZhYjMyY2RkZjhhZTIgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KQEAgLTEsNiArMSw3IEBACiAjIENvcHly
aWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAxMCwgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTEgUmVzZWFyY2ggSW4g
TW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAx
MyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAjCiAjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTk0LDYgKzk1LDcgQEAgbXkgJGlzV2luQ0U7CiBteSAk
aXNXaW5DYWlybzsKIG15ICRpc1dpbjY0OwogbXkgJGlzRWZsOworbXkgJGlzTml4OwogbXkgJGlz
QmxhY2tCZXJyeTsKIG15ICRpc0luc3BlY3RvckZyb250ZW5kOwogbXkgJGlzV0syOwpAQCAtMzE0
LDcgKzMxNiw3IEBAIHN1YiBkZXRlcm1pbmVBcmNoaXRlY3R1cmUKICAgICAgICAgICAgICAgICAk
YXJjaGl0ZWN0dXJlID0gJ2FybXY3JzsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgIH0g
ZWxzaWYgKGlzRWZsKCkpIHsKKyAgICB9IGVsc2lmIChpc0VmbCgpIHx8IGlzTml4KCkpIHsKICAg
ICAgICAgbXkgJGhvc3RfcHJvY2Vzc29yID0gIiI7CiAgICAgICAgICRob3N0X3Byb2Nlc3NvciA9
IGBjbWFrZSAtLXN5c3RlbS1pbmZvcm1hdGlvbiB8IGdyZXAgQ01BS0VfU1lTVEVNX1BST0NFU1NP
UmA7CiAgICAgICAgIGlmICgkaG9zdF9wcm9jZXNzb3IgPX4gbS9eQ01BS0VfU1lTVEVNX1BST0NF
U1NPUiBcIihbXiJdKylcIi8pIHsKQEAgLTMyNCwxMyArMzI2LDEzIEBAIHN1YiBkZXRlcm1pbmVB
cmNoaXRlY3R1cmUKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICghJGFyY2hpdGVjdHVyZSAm
JiAoaXNHdGsoKSB8fCBpc0FwcGxlTWFjV2ViS2l0KCkgfHwgaXNFZmwoKSkpIHsKKyAgICBpZiAo
ISRhcmNoaXRlY3R1cmUgJiYgKGlzR3RrKCkgfHwgaXNBcHBsZU1hY1dlYktpdCgpIHx8IGlzRWZs
KCkgfHwgaXNOaXgoKSkpIHsKICAgICAgICAgIyBGYWxsIGJhY2sgdG8gb3V0cHV0IG9mIGBhcmNo
JywgaWYgaXQgaXMgcHJlc2VudC4KICAgICAgICAgJGFyY2hpdGVjdHVyZSA9IGBhcmNoYDsKICAg
ICAgICAgY2hvbXAgJGFyY2hpdGVjdHVyZTsKICAgICB9CiAKLSAgICBpZiAoISRhcmNoaXRlY3R1
cmUgJiYgKGlzR3RrKCkgfHwgaXNBcHBsZU1hY1dlYktpdCgpIHx8IGlzRWZsKCkpKSB7CisgICAg
aWYgKCEkYXJjaGl0ZWN0dXJlICYmIChpc0d0aygpIHx8IGlzQXBwbGVNYWNXZWJLaXQoKSB8fCBp
c0VmbCgpIHx8IGlzTml4KCkpKSB7CiAgICAgICAgICMgRmFsbCBiYWNrIHRvIG91dHB1dCBvZiBg
dW5hbWUgLW0nLCBpZiBpdCBpcyBwcmVzZW50LgogICAgICAgICAkYXJjaGl0ZWN0dXJlID0gYHVu
YW1lIC1tYDsKICAgICAgICAgY2hvbXAgJGFyY2hpdGVjdHVyZTsKQEAgLTM3OSw2ICszODEsNyBA
QCBzdWIgYXJndW1lbnRzRm9yQ29uZmlndXJhdGlvbigpCiAgICAgcHVzaChAYXJncywgJy0tNjQt
Yml0JykgaWYgKGlzV2luNjQoKSk7CiAgICAgcHVzaChAYXJncywgJy0tZ3RrJykgaWYgaXNHdGso
KTsKICAgICBwdXNoKEBhcmdzLCAnLS1lZmwnKSBpZiBpc0VmbCgpOworICAgIHB1c2goQGFyZ3Ms
ICctLW5peCcpIGlmIGlzTml4KCk7CiAgICAgcHVzaChAYXJncywgJy0td2luY2Fpcm8nKSBpZiBp
c1dpbkNhaXJvKCk7CiAgICAgcHVzaChAYXJncywgJy0td2luY2UnKSBpZiBpc1dpbkNFKCk7CiAg
ICAgcHVzaChAYXJncywgJy0tYmxhY2tiZXJyeScpIGlmIGlzQmxhY2tCZXJyeSgpOwpAQCAtNTI5
LDcgKzUzMiw3IEBAIHN1YiBwcm9kdWN0RGlyCiBzdWIganNjUHJvZHVjdERpcgogewogICAgIG15
ICRwcm9kdWN0RGlyID0gcHJvZHVjdERpcigpOwotICAgICRwcm9kdWN0RGlyIC49ICIvYmluIiBp
ZiBpc0VmbCgpOworICAgICRwcm9kdWN0RGlyIC49ICIvYmluIiBpZiAoaXNFZmwoKSB8fCBpc05p
eCgpKTsKICAgICAkcHJvZHVjdERpciAuPSAiL1Byb2dyYW1zIiBpZiBpc0d0aygpOwogCiAgICAg
cmV0dXJuICRwcm9kdWN0RGlyOwpAQCAtNzg2LDYgKzc4OSw5IEBAIHN1YiBidWlsdER5bGliUGF0
aEZvck5hbWUKICAgICAgICAgfQogICAgICAgICByZXR1cm4gIiRjb25maWd1cmF0aW9uUHJvZHVj
dERpci9saWIvbGliZXdlYmtpdC5zbyI7CiAgICAgfQorICAgIGlmIChpc05peCgpKSB7CisgICAg
ICAgIHJldHVybiAiJGNvbmZpZ3VyYXRpb25Qcm9kdWN0RGlyL2xpYi9saWJXZWJLaXROaXguc28i
OworICAgIH0KICAgICBpZiAoaXNXaW5DRSgpKSB7CiAgICAgICAgIHJldHVybiAiJGNvbmZpZ3Vy
YXRpb25Qcm9kdWN0RGlyLyRsaWJyYXJ5TmFtZSI7CiAgICAgfQpAQCAtMTAzOSw2ICsxMDQ1LDE3
IEBAIHN1YiBpc0VmbCgpCiAgICAgcmV0dXJuICRpc0VmbDsKIH0KIAorc3ViIGRldGVybWluZUlz
Tml4KCkKK3sKKyAgICByZXR1cm4gaWYgZGVmaW5lZCgkaXNOaXgpOworICAgICRpc05peCA9IGNo
ZWNrRm9yQXJndW1lbnRBbmRSZW1vdmVGcm9tQVJHVigiLS1uaXgiKTsKK30KKworc3ViIGlzTml4
KCkKK3sKKyAgICBkZXRlcm1pbmVJc05peCgpOworICAgIHJldHVybiAkaXNOaXg7Cit9CiBzdWIg
aXNHdGsoKQogewogICAgIGRldGVybWluZUlzR3RrKCk7CkBAIC0xMTg5LDcgKzEyMDYsNyBAQCBz
dWIgaXNDcm9zc0NvbXBpbGF0aW9uKCkKIAogc3ViIGlzQXBwbGVXZWJLaXQoKQogewotICAgIHJl
dHVybiAhKGlzR3RrKCkgb3IgaXNFZmwoKSBvciBpc1dpbkNFKCkgb3IgaXNCbGFja0JlcnJ5KCkp
OworICAgIHJldHVybiAhKGlzR3RrKCkgb3IgaXNFZmwoKSBvciBpc1dpbkNFKCkgb3IgaXNCbGFj
a0JlcnJ5KCkgb3IgaXNOaXgoKSk7CiB9CiAKIHN1YiBpc0FwcGxlTWFjV2ViS2l0KCkKQEAgLTEz
ODAsNyArMTM5Nyw3IEBAIHN1YiByZWxhdGl2ZVNjcmlwdHNEaXIoKQogc3ViIGxhdW5jaGVyUGF0
aCgpCiB7CiAgICAgbXkgJHJlbGF0aXZlU2NyaXB0c1BhdGggPSByZWxhdGl2ZVNjcmlwdHNEaXIo
KTsKLSAgICBpZiAoaXNHdGsoKSB8fCBpc0VmbCgpIHx8IGlzV2luQ0UoKSkgeworICAgIGlmIChp
c0d0aygpIHx8IGlzRWZsKCkgfHwgaXNXaW5DRSgpIHx8IGlzTml4KCkpIHsKICAgICAgICAgcmV0
dXJuICIkcmVsYXRpdmVTY3JpcHRzUGF0aC9ydW4tbGF1bmNoZXIiOwogICAgIH0gZWxzaWYgKGlz
QXBwbGVXZWJLaXQoKSkgewogICAgICAgICByZXR1cm4gIiRyZWxhdGl2ZVNjcmlwdHNQYXRoL3J1
bi1zYWZhcmkiOwpAQCAtMTM5Nyw2ICsxNDE0LDggQEAgc3ViIGxhdW5jaGVyTmFtZSgpCiAgICAg
ICAgIHJldHVybiAiRVdlYkxhdW5jaGVyL01pbmlCcm93c2VyIjsKICAgICB9IGVsc2lmIChpc1dp
bkNFKCkpIHsKICAgICAgICAgcmV0dXJuICJXaW5DRUxhdW5jaGVyIjsKKyAgICB9IGVsc2lmIChp
c05peCgpKSB7CisgICAgICAgIHJldHVybiAiTWluaUJyb3dzZXIiOwogICAgIH0KIH0KIApAQCAt
MTQxOSw3ICsxNDM4LDcgQEAgc3ViIGNoZWNrUmVxdWlyZWRTeXN0ZW1Db25maWcKICAgICAgICAg
ICAgIHByaW50ICJtb3N0IGxpa2VseSBmYWlsLiBUaGUgbGF0ZXN0IFhjb2RlIGlzIGF2YWlsYWJs
ZSBmcm9tIHRoZSBBcHAgU3RvcmUuXG4iOwogICAgICAgICAgICAgcHJpbnQgIioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiI7CiAg
ICAgICAgIH0KLSAgICB9IGVsc2lmIChpc0d0aygpIG9yIGlzRWZsKCkgb3IgaXNXaW5kb3dzKCkp
IHsKKyAgICB9IGVsc2lmIChpc0d0aygpIG9yIGlzRWZsKCkgb3IgaXNXaW5kb3dzKCkgb3IgaXNO
aXgoKSkgewogICAgICAgICBteSBAY21kcyA9IHF3KGJpc29uIGdwZXJmIGZsZXgpOwogICAgICAg
ICBteSBAbWlzc2luZyA9ICgpOwogICAgICAgICBteSAkb2xkUGF0aCA9ICRFTlZ7UEFUSH07CkBA
IC0xNjM4LDcgKzE2NTcsNyBAQCBzdWIgY29weUluc3BlY3RvckZyb250ZW5kRmlsZXMKICAgICAg
ICAgfQogICAgIH0gZWxzaWYgKGlzQXBwbGVXaW5XZWJLaXQoKSB8fCBpc1dpbkNhaXJvKCkpIHsK
ICAgICAgICAgJGluc3BlY3RvclJlc291cmNlc0RpclBhdGggPSAkcHJvZHVjdERpciAuICIvV2Vi
S2l0LnJlc291cmNlcy9pbnNwZWN0b3IiOwotICAgIH0gZWxzaWYgKGlzR3RrKCkpIHsKKyAgICB9
IGVsc2lmIChpc0d0aygpIHx8IGlzTml4KCkpIHsKICAgICAgICAgbXkgJHByZWZpeCA9ICRFTlZ7
IldlYktpdEluc3RhbGxhdGlvblByZWZpeCJ9OwogICAgICAgICAkaW5zcGVjdG9yUmVzb3VyY2Vz
RGlyUGF0aCA9IChkZWZpbmVkKCRwcmVmaXgpID8gJHByZWZpeCA6ICIvdXNyL3NoYXJlIikgLiAi
L3dlYmtpdC0xLjAvd2ViaW5zcGVjdG9yIjsKICAgICB9IGVsc2lmIChpc0VmbCgpKSB7CkBAIC0x
OTUxLDYgKzE5NzAsOCBAQCBzdWIgamhidWlsZFdyYXBwZXJQcmVmaXhJZk5lZWRlZCgpCiAgICAg
ICAgICAgICBwdXNoKEBwcmVmaXgsICItLWVmbCIpOwogICAgICAgICB9IGVsc2lmIChpc0d0aygp
KSB7CiAgICAgICAgICAgICBwdXNoKEBwcmVmaXgsICItLWd0ayIpOworICAgICAgICB9IGVsc2lm
IChpc05peCgpKSB7CisgICAgICAgICAgICBwdXNoKEBwcmVmaXgsICItLW5peCIpOwogICAgICAg
ICB9CiAgICAgICAgIHB1c2goQHByZWZpeCwgInJ1biIpOwogCkBAIC0yMDQ1LDYgKzIwNjYsOSBA
QCBzdWIgYnVpbGRDTWFrZVByb2plY3RPckV4aXQoJCQkJEApCiAgICAgICAgIHN5c3RlbSgicGVy
bCIsICIkc291cmNlRGlyL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdGVmbC1saWJzIikgPT0g
MCBvciBkaWUgJCE7CiAgICAgfQogCisgICAgaWYgKGlzTml4KCkgJiYgY2hlY2tGb3JBcmd1bWVu
dEFuZFJlbW92ZUZyb21BUkdWKCItLXVwZGF0ZS1uaXgiKSkgeworICAgICAgICBzeXN0ZW0oInBl
cmwiLCAiJHNvdXJjZURpci9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXRuaXgtbGlicyIpID09
IDAgb3IgZGllICQhOworICAgIH0KIAogICAgICRyZXR1cm5Db2RlID0gZXhpdFN0YXR1cyhnZW5l
cmF0ZUJ1aWxkU3lzdGVtRnJvbUNNYWtlUHJvamVjdCgkcG9ydCwgJHByZWZpeFBhdGgsIEBjbWFr
ZUFyZ3MpKTsKICAgICBleGl0KCRyZXR1cm5Db2RlKSBpZiAkcmV0dXJuQ29kZTsKQEAgLTIwNjgs
NiArMjA5Miw3IEBAIHN1YiBjbWFrZUJhc2VkUG9ydE5hbWUoKQogICAgIHJldHVybiAiQmxhY2tC
ZXJyeSIgaWYgaXNCbGFja0JlcnJ5KCk7CiAgICAgcmV0dXJuICJFZmwiIGlmIGlzRWZsKCk7CiAg
ICAgcmV0dXJuICJXaW5DRSIgaWYgaXNXaW5DRSgpOworICAgIHJldHVybiAiTml4IiBpZiBpc05p
eCgpOwogICAgIHJldHVybiAiIjsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY29uZmlnL3BvcnRzLnB5CmluZGV4IDBjMjBkYWU1MTI0YTI3ZDU3Yjg2ZTdkYWM1MmY3MzRj
YzU2NjRmOTcuLjk0Y2MwNWFmMDU1NzdlOTVhNzgzMDg1NzNlMDUwNWYzYTEyNzJiNGIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkKQEAgLTEsNCAr
MSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAwOSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKS4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTcw
LDYgKzcxLDcgQEAgY2xhc3MgRGVwcmVjYXRlZFBvcnQob2JqZWN0KToKICAgICAgICAgICAgICJx
dC13azIiOiBRdFdLMlBvcnQsCiAgICAgICAgICAgICAiZWZsIjogRWZsUG9ydCwKICAgICAgICAg
ICAgICJlZmwtd2syIjogRWZsV0syUG9ydCwKKyAgICAgICAgICAgICJuaXgiOiBOaXhQb3J0LAog
ICAgICAgICB9CiAgICAgICAgIGRlZmF1bHRfcG9ydCA9IHsKICAgICAgICAgICAgICJXaW5kb3dz
IjogV2luUG9ydCwKQEAgLTIzMCwzICsyMzIsMTQgQEAgY2xhc3MgRWZsV0syUG9ydChEZXByZWNh
dGVkUG9ydCk6CiAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLW5vLXdlYmtpdDEiKQogICAgICAg
ICBjb21tYW5kLmFwcGVuZChzdXBlcihFZmxXSzJQb3J0LCBzZWxmKS5tYWtlQXJncygpKQogICAg
ICAgICByZXR1cm4gY29tbWFuZAorCisKK2NsYXNzIE5peFBvcnQoRGVwcmVjYXRlZFBvcnQpOgor
ICAgIHBvcnRfZmxhZ19uYW1lID0gIm5peCIKKworICAgIGRlZiBidWlsZF93ZWJraXRfY29tbWFu
ZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAgICAgICAgY29tbWFuZCA9IHN1cGVyKE5peFBv
cnQsIHNlbGYpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQor
ICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1uaXgiKQorICAgICAgICBjb21tYW5kLmFwcGVuZCgi
LS11cGRhdGUtbml4IikKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoc3VwZXIoTml4UG9ydCwgc2Vs
ZikubWFrZUFyZ3MoKSkKKyAgICAgICAgcmV0dXJuIGNvbW1hbmQKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2ZhY3RvcnkucHkKaW5kZXggN2RiN2QwZDEzZjNlZjc4OWIyYjExODU5YzVlNGM1MmM1
YTM5ZTY4My4uMGQ4YzU1Yjg2NWE1ZmE0YjE0ZjA3MTVlMzQyM2Y0Mzg1MjQ2MmYwMCAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHkKQEAgLTEsNSArMSw2IEBACiAjIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQg
KEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgog
IwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNDYsNiArNDcsOCBAQCBkZWYgcGxh
dGZvcm1fb3B0aW9ucyh1c2VfZ2xvYnM9RmFsc2UpOgogICAgICAgICBvcHRwYXJzZS5tYWtlX29w
dGlvbignLS1lZmwnLCBhY3Rpb249J3N0b3JlX2NvbnN0JywgZGVzdD0ncGxhdGZvcm0nLAogICAg
ICAgICAgICAgY29uc3Q9KCdlZmwqJyBpZiB1c2VfZ2xvYnMgZWxzZSAnZWZsJyksCiAgICAgICAg
ICAgICBoZWxwPSgnQWxpYXMgZm9yIC0tcGxhdGZvcm09ZWZsKicgaWYgdXNlX2dsb2JzIGVsc2Ug
J0FsaWFzIGZvciAtLXBsYXRmb3JtPWVmbCcpKSwKKyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRp
b24oJy0tbml4JywgYWN0aW9uPSdzdG9yZV9jb25zdCcsIGRlc3Q9J3BsYXRmb3JtJywKKyAgICAg
ICAgICAgIGNvbnN0PSgnbml4JyksIGhlbHA9KCdBbGlhcyBmb3IgLS1wbGF0Zm9ybT1uaXgnKSks
CiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLWd0aycsIGFjdGlvbj0nc3RvcmVfY29u
c3QnLCBkZXN0PSdwbGF0Zm9ybScsCiAgICAgICAgICAgICBjb25zdD0oJ2d0ayonIGlmIHVzZV9n
bG9icyBlbHNlICdndGsnKSwKICAgICAgICAgICAgIGhlbHA9KCdBbGlhcyBmb3IgLS1wbGF0Zm9y
bT1ndGsqJyBpZiB1c2VfZ2xvYnMgZWxzZSAnQWxpYXMgZm9yIC0tcGxhdGZvcm09Z3RrJykpLApA
QCAtNzUsNiArNzgsNyBAQCBkZWYgX2J1aWxkZXJfb3B0aW9ucyhidWlsZGVyX25hbWUpOgogY2xh
c3MgUG9ydEZhY3Rvcnkob2JqZWN0KToKICAgICBQT1JUX0NMQVNTRVMgPSAoCiAgICAgICAgICdl
ZmwuRWZsUG9ydCcsCisgICAgICAgICduaXguTml4UG9ydCcsCiAgICAgICAgICdndGsuR3RrUG9y
dCcsCiAgICAgICAgICdtYWMuTWFjUG9ydCcsCiAgICAgICAgICdtb2NrX2RydC5Nb2NrRFJUUG9y
dCcsCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbml4LnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L25peC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wODUwYzA4OGFlM2Q2
YzEyMzdjNjJlODAzZTJlNDFkMWQzYjgyZjBkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9wb3J0L25peC5weQpAQCAtMCwwICsxLDExOSBAQAorIyBDb3B5cmlnaHQg
KEMpIDIwMTEgUHJvRlVTSU9OIEVtYmVkZGVkIFN5c3RlbXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KKyMgQ29weXJp
Z2h0IChDKSAyMDEyLCAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKS4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRp
c3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCisiIiJXZWJLaXQgTml4IGltcGxlbWVudGF0aW9uIG9mIHRoZSBQb3J0IGludGVyZmFj
ZS4iIiIKKworaW1wb3J0IG9zCisKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscy50
ZXN0X2NvbmZpZ3VyYXRpb24gaW1wb3J0IFRlc3RDb25maWd1cmF0aW9uCitmcm9tIHdlYmtpdHB5
LnBvcnQuYmFzZSBpbXBvcnQgUG9ydAorZnJvbSB3ZWJraXRweS5wb3J0LnB1bHNlYXVkaW9fc2Fu
aXRpemVyIGltcG9ydCBQdWxzZUF1ZGlvU2FuaXRpemVyCisKKworY2xhc3MgTml4UG9ydChQb3J0
KToKKyAgICBwb3J0X25hbWUgPSAnbml4JworCisgICAgZGVmIF93azJfcG9ydF9uYW1lKHNlbGYp
OgorICAgICAgICByZXR1cm4gJ25peCcKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBkZXRl
cm1pbmVfZnVsbF9wb3J0X25hbWUoY2xzLCBob3N0LCBvcHRpb25zLCBwb3J0X25hbWUpOgorICAg
ICAgICAiIiJEZXRlcm1pbmUgdGhlIHBvcnQgbmFtZSBiYXNlZCBvbiBob3N0IGFuZCBvcHRpb25z
IHZhbHVlcy4iIiIKKyAgICAgICAgIyBDdXJyZW50bHkgdGhlIG9ubHkgInBvcnQiIGluc3RhbmNl
IHN1cHBvcnRlZCBieSBOaXggaXMgIm5peCIuIFJlaW1wbGVtZW50aW5nCisgICAgICAgICMgdGhp
cyBtZXRob2QgYXZvaWRzIGNoYW5naW5nIHBvcnQgbmFtZSB0byBuaXgtd2syLCB3aGljaCBpcyB0
aGUgZGVmYXVsdAorICAgICAgICAjIGJlaGF2aW9yIGluIGJhc2UucHkuCisgICAgICAgIHJldHVy
biBwb3J0X25hbWUKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgor
ICAgICAgICBzdXBlcihOaXhQb3J0LCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisK
KyAgICAgICAgc2VsZi5famhidWlsZF93cmFwcGVyX3BhdGggPSBbc2VsZi5wYXRoX2Zyb21fd2Vi
a2l0X2Jhc2UoJ1Rvb2xzJywgJ2poYnVpbGQnLCAnamhidWlsZC13cmFwcGVyJyksICctLW5peCcs
ICdydW4nXQorCisgICAgICAgIHNlbGYuc2V0X29wdGlvbl9kZWZhdWx0KCd3cmFwcGVyJywgJyAn
LmpvaW4oc2VsZi5famhidWlsZF93cmFwcGVyX3BhdGgpKQorICAgICAgICBzZWxmLnNldF9vcHRp
b25fZGVmYXVsdCgnd2Via2l0X3Rlc3RfcnVubmVyJywgVHJ1ZSkKKyAgICAgICAgc2VsZi53ZWJw
cm9jZXNzX2NtZF9wcmVmaXggPSBzZWxmLmdldF9vcHRpb24oJ3dlYnByb2Nlc3NfY21kX3ByZWZp
eCcpCisKKyAgICAgICAgc2VsZi5fcHVsc2VhdWRpb19zYW5pdGl6ZXIgPSBQdWxzZUF1ZGlvU2Fu
aXRpemVyKCkKKworICAgIGRlZiBfcG9ydF9mbGFnX2Zvcl9zY3JpcHRzKHNlbGYpOgorICAgICAg
ICByZXR1cm4gIi0tbml4IgorCisgICAgZGVmIHNldHVwX3Rlc3RfcnVuKHNlbGYpOgorICAgICAg
ICBzZWxmLl9wdWxzZWF1ZGlvX3Nhbml0aXplci51bmxvYWRfcHVsc2VhdWRpb19tb2R1bGUoKQor
CisgICAgZGVmIHNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihzZWxmLCBzZXJ2ZXJfbmFtZT1Ob25l
KToKKyAgICAgICAgZW52ID0gc3VwZXIoTml4UG9ydCwgc2VsZikuc2V0dXBfZW52aXJvbl9mb3Jf
c2VydmVyKHNlcnZlcl9uYW1lKQorICAgICAgICAjIElmIERJU1BMQVkgZW52aXJvbm1lbnQgdmFy
aWFibGUgaXMgdW5zZXQgaW4gdGhlIHN5c3RlbQorICAgICAgICAjIGUuZy4gb24gYnVpbGQgYm90
LCByZW1vdmUgRElTUExBWSB2YXJpYWJsZSBmcm9tIHRoZSBkaWN0aW9uYXJ5CisgICAgICAgIGlm
IG5vdCAnRElTUExBWScgaW4gb3MuZW52aXJvbjoKKyAgICAgICAgICAgIGRlbCBlbnZbJ0RJU1BM
QVknXQorICAgICAgICBlbnZbJ1RFU1RfUlVOTkVSX0lOSkVDVEVEX0JVTkRMRV9GSUxFTkFNRSdd
ID0gc2VsZi5fYnVpbGRfcGF0aCgnbGliJywgJ2xpYlRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5z
bycpCisgICAgICAgIGVudlsnVEVTVF9SVU5ORVJfUExVR0lOX1BBVEgnXSA9IHNlbGYuX2J1aWxk
X3BhdGgoJ2xpYicpCisgICAgICAgIGlmIHNlbGYud2VicHJvY2Vzc19jbWRfcHJlZml4OgorICAg
ICAgICAgICAgZW52WydXRUJfUFJPQ0VTU19DTURfUFJFRklYJ10gPSBzZWxmLndlYnByb2Nlc3Nf
Y21kX3ByZWZpeAorCisgICAgICAgIHJldHVybiBlbnYKKworICAgIGRlZiBkZWZhdWx0X3RpbWVv
dXRfbXMoc2VsZik6CisgICAgICAgICMgVGVzdHMgcnVuIGNvbnNpZGVyYWJseSBzbG93ZXIgdW5k
ZXIgZ2RiCisgICAgICAgICMgb3IgdmFsZ3JpbmQuCisgICAgICAgIGlmIHNlbGYuZ2V0X29wdGlv
bignd2VicHJvY2Vzc19jbWRfcHJlZml4Jyk6CisgICAgICAgICAgICByZXR1cm4gMzUwICogMTAw
MAorICAgICAgICByZXR1cm4gc3VwZXIoTml4UG9ydCwgc2VsZikuZGVmYXVsdF90aW1lb3V0X21z
KCkKKworICAgIGRlZiBjbGVhbl91cF90ZXN0X3J1bihzZWxmKToKKyAgICAgICAgc3VwZXIoTml4
UG9ydCwgc2VsZikuY2xlYW5fdXBfdGVzdF9ydW4oKQorICAgICAgICBzZWxmLl9wdWxzZWF1ZGlv
X3Nhbml0aXplci5yZXN0b3JlX3B1bHNlYXVkaW9fbW9kdWxlKCkKKworICAgIGRlZiBfZ2VuZXJh
dGVfYWxsX3Rlc3RfY29uZmlndXJhdGlvbnMoc2VsZik6CisgICAgICAgIHJldHVybiBbVGVzdENv
bmZpZ3VyYXRpb24odmVyc2lvbj1zZWxmLl92ZXJzaW9uLCBhcmNoaXRlY3R1cmU9J3g4NicsIGJ1
aWxkX3R5cGU9YnVpbGRfdHlwZSkgZm9yIGJ1aWxkX3R5cGUgaW4gc2VsZi5BTExfQlVJTERfVFlQ
RVNdCisKKyAgICBkZWYgX3BhdGhfdG9fZHJpdmVyKHNlbGYpOgorICAgICAgICByZXR1cm4gc2Vs
Zi5fYnVpbGRfcGF0aCgnYmluJywgc2VsZi5kcml2ZXJfbmFtZSgpKQorCisgICAgZGVmIF9wYXRo
X3RvX2ltYWdlX2RpZmYoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9wYXRoKCdi
aW4nLCAnSW1hZ2VEaWZmJykKKworICAgIGRlZiBfaW1hZ2VfZGlmZl9jb21tYW5kKHNlbGYsICph
cmdzLCAqKmt3YXJncyk6CisgICAgICAgIHJldHVybiBzZWxmLl9qaGJ1aWxkX3dyYXBwZXJfcGF0
aCArIHN1cGVyKE5peFBvcnQsIHNlbGYpLl9pbWFnZV9kaWZmX2NvbW1hbmQoKmFyZ3MsICoqa3dh
cmdzKQorCisgICAgZGVmIF9zZWFyY2hfcGF0aHMoc2VsZik6CisgICAgICAgIHJldHVybiBbc2Vs
Zi5wb3J0X25hbWVdCisKKyAgICBkZWYgc2hvd19yZXN1bHRzX2h0bWxfZmlsZShzZWxmLCByZXN1
bHRzX2ZpbGVuYW1lKToKKyAgICAgICAgcnVuX2xhdW5jaGVyX2FyZ3MgPSBbImZpbGU6Ly8lcyIg
JSByZXN1bHRzX2ZpbGVuYW1lXQorICAgICAgICBzZWxmLl9ydW5fc2NyaXB0KCJydW4tbGF1bmNo
ZXIiLCBydW5fbGF1bmNoZXJfYXJncykKKworICAgIGRlZiBfcG9ydF9zcGVjaWZpY19leHBlY3Rh
dGlvbnNfZmlsZXMoc2VsZik6CisgICAgICAgIHBhdGhzID0gc2VsZi5fc2VhcmNoX3BhdGhzKCkK
KyAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd3ZWJraXRfdGVzdF9ydW5uZXInKToKKyAgICAg
ICAgICAgIHBhdGhzLmFwcGVuZCgnd2syJykKKyAgICAgICAgcmV0dXJuIGxpc3QoKFtzZWxmLl9m
aWxlc3lzdGVtLmpvaW4oc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgocCksICdUZXN0RXhwZWN0
YXRpb25zJykgZm9yIHAgaW4gcGF0aHNdKSkKKworICAgIGRlZiBkZWZhdWx0X2Jhc2VsaW5lX3Nl
YXJjaF9wYXRoKHNlbGYpOgorICAgICAgICByZXR1cm4gbWFwKHNlbGYuX3dlYmtpdF9iYXNlbGlu
ZV9wYXRoLCBbJ25peCcsICd3azInXSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvcG9ydC9uaXhfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbml4
X3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxMjQ3ZGRhNDRmN2RhMTAwNWExOTYxNzE1ZGM1MjVl
MTFjOWZkOTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQv
bml4X3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNjggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEyLCAy
MDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJ
UycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisjIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyMgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgdW5pdHRlc3QyIGFzIHVu
aXR0ZXN0CitpbXBvcnQgb3MKK2Zyb20gY29weSBpbXBvcnQgZGVlcGNvcHkKKworZnJvbSB3ZWJr
aXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZV9tb2NrIGltcG9ydCBNb2NrRXhlY3V0aXZlLCBN
b2NrRXhlY3V0aXZlMgorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUg
aW1wb3J0IE91dHB1dENhcHR1cmUKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5zeXN0ZW1o
b3N0X21vY2sgaW1wb3J0IE1vY2tTeXN0ZW1Ib3N0Citmcm9tIHdlYmtpdHB5LnBvcnQgaW1wb3J0
IHBvcnRfdGVzdGNhc2UKK2Zyb20gd2Via2l0cHkucG9ydC5uaXggaW1wb3J0IE5peFBvcnQKK2Zy
b20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja09wdGlvbnMKKworCitjbGFzcyBO
aXhQb3J0VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6CisgICAgcG9ydF9uYW1lID0g
J25peCcKKyAgICBwb3J0X21ha2VyID0gTml4UG9ydAorICAgIHNlYXJjaF9wYXRoc19jYXNlcyA9
IFsKKyAgICAgICAgICAgIHsnc2VhcmNoX3BhdGhzJzogWyduaXgnLCAnd2syJ10sICdvc19uYW1l
JzonbGludXgnfV0KKyAgICBleHBlY3RhdGlvbl9maWxlc19jYXNlcyA9IFsKKyAgICAgICAgeydz
ZWFyY2hfcGF0aHMnOiBbJycsICduaXgnLCAnd2syJ10sICdvc19uYW1lJzonbGludXgnfV0KKwor
ICAgIGRlZiBfYXNzZXJ0X3NlYXJjaF9wYXRoKHNlbGYsIHNlYXJjaF9wYXRocywgb3NfbmFtZSk6
CisgICAgICAgIGhvc3QgPSBNb2NrU3lzdGVtSG9zdChvc19uYW1lPW9zX25hbWUpCisgICAgICAg
IHBvcnQgPSBzZWxmLm1ha2VfcG9ydChwb3J0X25hbWU9c2VsZi5wb3J0X25hbWUsIGhvc3Q9aG9z
dCwgb3B0aW9ucz1Nb2NrT3B0aW9ucyh3ZWJraXRfdGVzdF9ydW5uZXI9VHJ1ZSkpCisgICAgICAg
IGFic29sdXRlX3NlYXJjaF9wYXRocyA9IG1hcChwb3J0Ll93ZWJraXRfYmFzZWxpbmVfcGF0aCwg
c2VhcmNoX3BhdGhzKQorCisgICAgICAgIHVuaXR0ZXN0LlRlc3RDYXNlLmFzc2VydEVxdWFsKHNl
bGYsIHBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoKSwgYWJzb2x1dGVfc2VhcmNoX3BhdGhzKQor
CisgICAgZGVmIF9hc3NlcnRfZXhwZWN0YXRpb25zX2ZpbGVzKHNlbGYsIHNlYXJjaF9wYXRocywg
b3NfbmFtZSk6CisgICAgICAgIGhvc3QgPSBNb2NrU3lzdGVtSG9zdChvc19uYW1lPW9zX25hbWUp
CisgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydChwb3J0X25hbWU9c2VsZi5wb3J0X25hbWUs
IGhvc3Q9aG9zdCwgb3B0aW9ucz1Nb2NrT3B0aW9ucyh3ZWJraXRfdGVzdF9ydW5uZXI9VHJ1ZSkp
CisgICAgICAgIHVuaXR0ZXN0LlRlc3RDYXNlLmFzc2VydEVxdWFsKHNlbGYsIHBvcnQuZXhwZWN0
YXRpb25zX2ZpbGVzKCksIHNlYXJjaF9wYXRocykKKworICAgIGRlZiB0ZXN0X2Jhc2VsaW5lX3Nl
YXJjaF9wYXRoKHNlbGYpOgorICAgICAgICBmb3IgY2FzZSBpbiBzZWxmLnNlYXJjaF9wYXRoc19j
YXNlczoKKyAgICAgICAgICAgIHNlbGYuX2Fzc2VydF9zZWFyY2hfcGF0aCgqKmNhc2UpCisKKyAg
ICBkZWYgdGVzdF9leHBlY3RhdGlvbnNfZmlsZXMoc2VsZik6CisgICAgICAgIGZvciBjYXNlIGlu
IHNlbGYuZXhwZWN0YXRpb25fZmlsZXNfY2FzZXM6CisgICAgICAgICAgICBleHBlY3RhdGlvbnNf
Y2FzZSA9IGRlZXBjb3B5KGNhc2UpCisgICAgICAgICAgICBleHBlY3RhdGlvbnNfY2FzZVsnc2Vh
cmNoX3BhdGhzJ10gPSBtYXAobGFtYmRhIHBhdGg6ICcvbW9jay1jaGVja291dC9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zJyAgaWYgbm90IHBhdGggZWxzZSAnL21vY2stY2hlY2tvdXQvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vJXMvVGVzdEV4cGVjdGF0aW9ucycgJSAocGF0aCksIGV4cGVjdGF0
aW9uc19jYXNlWydzZWFyY2hfcGF0aHMnXSkKKyAgICAgICAgICAgIHNlbGYuX2Fzc2VydF9leHBl
Y3RhdGlvbnNfZmlsZXMoKipleHBlY3RhdGlvbnNfY2FzZSkKKworICAgIGRlZiB0ZXN0X2RlZmF1
bHRfdGltZW91dF9tcyhzZWxmKToKKyAgICAgICAgdW5pdHRlc3QuVGVzdENhc2UuYXNzZXJ0RXF1
YWwoc2VsZiwgc2VsZi5tYWtlX3BvcnQob3B0aW9ucz1Nb2NrT3B0aW9ucyhjb25maWd1cmF0aW9u
PSdSZWxlYXNlJykpLmRlZmF1bHRfdGltZW91dF9tcygpLCA4MDAwMCkKKyAgICAgICAgdW5pdHRl
c3QuVGVzdENhc2UuYXNzZXJ0RXF1YWwoc2VsZiwgc2VsZi5tYWtlX3BvcnQob3B0aW9ucz1Nb2Nr
T3B0aW9ucyhjb25maWd1cmF0aW9uPSdEZWJ1ZycpKS5kZWZhdWx0X3RpbWVvdXRfbXMoKSwgODAw
MDApCmRpZmYgLS1naXQgYS9Ub29scy9qaGJ1aWxkL2poYnVpbGQtd3JhcHBlciBiL1Rvb2xzL2po
YnVpbGQvamhidWlsZC13cmFwcGVyCmluZGV4IGEyOWI2MGMyZjkwZjJiYWNkYzE5YzA3ODBlNzQ4
NGVjZmY1MzgzZDUuLjhmNTU5OWNmYTIwNTViMTk1NDk5ZmY3YThkYTZiMDE5Zjk1ZjllMjQgMTAw
NzU1Ci0tLSBhL1Rvb2xzL2poYnVpbGQvamhidWlsZC13cmFwcGVyCisrKyBiL1Rvb2xzL2poYnVp
bGQvamhidWlsZC13cmFwcGVyCkBAIC0yLDYgKzIsNyBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTEg
SWdhbGlhIFMuTC4KICMgQ29weXJpZ2h0IChDKSAyMDEyIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSA8
Z25zQGdub21lLm9yZz4KICMgQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uCisj
IENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCiAjCiAjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtOTcsNiArOTgsOCBAQCBkZWYgZGV0
ZXJtaW5lX3BsYXRmb3JtKCk6CiAgICAgICAgIHJldHVybiAiZWZsIjsKICAgICBpZiAnLS1ndGsn
IGluIHN5cy5hcmd2OgogICAgICAgICByZXR1cm4gImd0ayI7CisgICAgaWYgJy0tbml4JyBpbiBz
eXMuYXJndjoKKyAgICAgICAgcmV0dXJuICJuaXgiOwogICAgIHJhaXNlIFZhbHVlRXJyb3IoJ05v
IHBsYXRmb3JtIHNwZWNpZmllZCBmb3IgamhidWlsZC13cmFwcGVyLicpCiAKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvbml4L2NvbW1vbi5weSBiL1Rvb2xzL25peC9jb21tb24ucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MGI4YjY2Mjk0YzcyNDBkOTVmZDhhYmYwZjM0YjRiYWFlNzA3M2U0OQotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL25peC9jb21tb24ucHkKQEAgLTAsMCArMSwzMiBAQAorIyEvdXNyL2Jpbi9lbnYg
cHl0aG9uCisjIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgorIyBDb3B5cmlnaHQgKEMp
IDIwMTIsIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisjIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBV
U0EKKworaW1wb3J0IG9zCisKK3NjcmlwdF9kaXIgPSBOb25lCisKKworZGVmIHNjcmlwdF9wYXRo
KCphcmdzKToKKyAgICBnbG9iYWwgc2NyaXB0X2RpcgorICAgIGlmIG5vdCBzY3JpcHRfZGlyOgor
ICAgICAgICBzY3JpcHRfZGlyID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVf
XyksICcuLicsICdTY3JpcHRzJykKKyAgICByZXR1cm4gb3MucGF0aC5qb2luKCooc2NyaXB0X2Rp
ciwpICsgYXJncykKKworCitkZWYgdG9wX2xldmVsX3BhdGgoKmFyZ3MpOgorICAgIHJldHVybiBv
cy5wYXRoLmpvaW4oKigoc2NyaXB0X3BhdGgoJy4uJywgJy4uJyksKSArIGFyZ3MpKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvbml4L2poYnVpbGQubW9kdWxlcyBiL1Rvb2xzL25peC9qaGJ1aWxkLm1vZHVs
ZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTY5ODJhNDQwZjM0NmExZjc3MDk2MmUyZDc2Yjg5YTlhYzUzZmJhMAot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL25peC9qaGJ1aWxkLm1vZHVsZXMKQEAgLTAsMCArMSwx
MTggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIG1vZHVsZXNldCBTWVNURU0g
Im1vZHVsZXNldC5kdGQiPgorPD94bWwtc3R5bGVzaGVldCB0eXBlPSJ0ZXh0L3hzbCIgaHJlZj0i
bW9kdWxlc2V0LnhzbCI/PgorPG1vZHVsZXNldD4KKworICA8bWV0YW1vZHVsZSBpZD0id2Via2l0
bml4LXRlc3RpbmctZGVwZW5kZW5jaWVzIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRl
cCBwYWNrYWdlPSJjYWlybyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJmb250cyIvPgorICAgICAg
PGRlcCBwYWNrYWdlPSJmb250Y29uZmlnIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZyZWV0eXBl
NiIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJoYXJmYnV6eiIvPgorICAgICAgPGRlcCBwYWNrYWdl
PSJnbGliIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWItbmV0d29ya2luZyIvPgorICAgICAg
PGRlcCBwYWNrYWdlPSJsaWJzb3VwIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgIDwvbWV0YW1v
ZHVsZT4KKworICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJnaXRodWIuY29tIgor
ICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRh
cmJhbGwiIG5hbWU9InNvdXJjZXdhcmUub3JnIgorICAgICAgaHJlZj0iZnRwOi8vc291cmNld2Fy
ZS5vcmciLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZnRwLmdub21lLm9y
ZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9mdHAuZ25vbWUub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5
cGU9ImdpdCIgbmFtZT0iZ2l0Lmdub21lLm9yZyIKKyAgICAgIGhyZWY9ImdpdDovL2dpdC5nbm9t
ZS5vcmcvIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImNhaXJvZ3JhcGhp
Y3Mub3JnIgorICAgICAgaHJlZj0iaHR0cDovL2NhaXJvZ3JhcGhpY3Mub3JnIi8+CisgIDxyZXBv
c2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImZyZWVkZXNrdG9wLm9yZyIKKyAgICAgIGhyZWY9
Imh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJh
bGwiIG5hbWU9InNhdmFubmFoLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9kb3dubG9hZC5zYXZh
bm5haC5nbnUub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9ImdpdCIgbmFtZT0iZ2l0LmdpdGh1
Yi5jb20iCisgICAgICBocmVmPSJnaXQ6Ly9naXRodWIuY29tIi8+CisKKyAgPGF1dG90b29scyBp
ZD0iY2Fpcm8iIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIKKyAgICAgICAgICAgICBtYWtlYXJncz0i
Q0ZMQUdTPS1mbm8tbHRvIENYWEZMQUdTPS1mbm8tbHRvIExERkxBR1M9LWZuby1sdG8iPgorICAg
IDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZvbnRjb25maWciLz4KKyAgICAg
IDxkZXAgcGFja2FnZT0icGl4bWFuIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5j
aCBtb2R1bGU9InJlbGVhc2VzL2NhaXJvLTEuMTIuOC50YXIueHoiIHZlcnNpb249IjEuMTIuOCIK
KyAgICAgICAgICAgIHJlcG89ImNhaXJvZ3JhcGhpY3Mub3JnIgorICAgICAgICAgICAgaGFzaD0i
c2hhMjU2OjhmYmI2ZmM2NjExN2FiNDEwMGJhZDgzMGNiNDQ3OTQ5N2U1M2M2ZjNmYWNiOThiZjA1
YzhkMjk4NTU0ZWJkZDkiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0icGl4
bWFuIiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiCisgICAgICAgICAgICAgYXV0b2dlbmFyZ3M9Ii0t
ZW5hYmxlLWd0az1ubyI+CisgICAgPGJyYW5jaCBtb2R1bGU9InNuYXBzaG90cy9waXhtYW4tMC4y
OS4yLnRhci5neiIgdmVyc2lvbj0iMC4yOS4yIgorICAgICAgICAgICAgcmVwbz0iY2Fpcm9ncmFw
aGljcy5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6NGM0ZTkyMTQzYTQ1NTdhNDYxN2I4
MGNhZjBhNThjY2IwMTJkODI5Mzc0MWU3NTM4OTAzN2NkNTEzM2IzMzVkYiIvPgorICA8L2F1dG90
b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJmb250cyIgc2tpcC1hdXRvZ2VuPSJ0cnVlIj4KKyAg
ICA8YnJhbmNoIG1vZHVsZT0iZG93bmxvYWRzL21yb2JpbnNvbi93ZWJraXRndGstdGVzdC1mb250
cy93ZWJraXRndGstdGVzdC1mb250cy0wLjAuMy50YXIuZ3oiIHZlcnNpb249IjAuMC4zIgorICAg
ICAgICAgICAgcmVwbz0iZ2l0aHViLmNvbSIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1Njo0YTBh
MDFmMDA4NTU5OTdjZGNjNzIwMWYxNjRiMzNhNGU0MTQ0ZThlYWRmNDBhNWU1NDJhMWM0NDhlMDM1
ZGU1Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImxpYmZmaSIgYXV0b2dl
bi1zaD0iY29uZmlndXJlIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0iL3B1Yi9saWJmZmkvbGliZmZp
LTMuMC4xMS50YXIuZ3oiIHZlcnNpb249IjMuMC4xMSIKKyAgICAgICAgICAgICByZXBvPSJzb3Vy
Y2V3YXJlLm9yZyIKKyAgICAgICAgICAgICBoYXNoPSJzaGEyNTY6NzBiZmIwMTM1NjM2MDA4OWFh
OTdkM2U3MWUzZWRmMDVkMTk1NTk5ZmQ4MjJlOTIyZTUwZDQ2YTAwNTVhNjI4MyIvPgorICA8L2F1
dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJmcmVldHlwZTYiIGF1dG9nZW4tc2g9ImNvbmZp
Z3VyZSI+CisgICAgPGJyYW5jaCBtb2R1bGU9InJlbGVhc2VzL2ZyZWV0eXBlL2ZyZWV0eXBlLTIu
NC4yLnRhci5iejIiIHZlcnNpb249IjIuNC4yIgorICAgICAgICAgICAgcmVwbz0ic2F2YW5uYWgu
b3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjlhOTg3YWVmOGM1MGQ5YmNmZGZkYzlmMDEy
ZjhiZDBkZTYwOTVjYzFhNTUyNGU2MmMxYTAzN2RlYjhkYWNiZmUiLz4KKyAgPC9hdXRvdG9vbHM+
CisKKyAgPGF1dG90b29scyBpZD0iZ2xpYiIKKyAgICAgICAgICAgICBhdXRvZ2VuLXNoPSJjb25m
aWd1cmUiCisgICAgICAgICAgICAgYXV0b2dlbmFyZ3M9Ii0tZGlzYWJsZS1kdHJhY2UiPgorICAg
IDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImxpYmZmaSIvPgorICAgIDwvZGVw
ZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSIvcHViL0dOT01FL3NvdXJjZXMvZ2xpYi8y
LjM4L2dsaWItMi4zOC4wLnRhci54eiIgdmVyc2lvbj0iMi4zOC4wIgorICAgICAgICAgICAgcmVw
bz0iZnRwLmdub21lLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1Njo3NTEzYTdkZTVlODE0
Y2NiNDgyMDYzNDBhODc3M2VhNTIzZDZhN2JmMDRkYzc0NTY1ZGU2OWI4OTliYzJmZjMyIi8+Cisg
IDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdsaWItbmV0d29ya2luZyI+CisgICAg
PGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYiIvPgorICAgIDwvZGVwZW5k
ZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSIvcHViL0dOT01FL3NvdXJjZXMvZ2xpYi1uZXR3
b3JraW5nLzIuMzMvZ2xpYi1uZXR3b3JraW5nLTIuMzMuMi50YXIueHoiIHZlcnNpb249IjIuMzMu
MiIKKyAgICAgICAgICAgIHJlcG89ImZ0cC5nbm9tZS5vcmciCisgICAgICAgICAgICBoYXNoPSJz
aGEyNTY6ZTI5OGNmZjM5MzVlYjc1MmJlMjkwYmJmNzM0ZTQ1N2YxODcwYmRiNTM3MGVlMjkyNjA2
ZTYwNDBhODIwNzRlNyIvPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJsaWJz
b3VwIgorICAgICAgICAgICAgIGF1dG9nZW5hcmdzPSItLXdpdGhvdXQtZ25vbWUgLS1kaXNhYmxl
LWludHJvc3BlY3Rpb24iPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9
ImdsaWItbmV0d29ya2luZyIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9k
dWxlPSIvcHViL0dOT01FL3NvdXJjZXMvbGlic291cC8yLjQyL2xpYnNvdXAtMi40Mi4wLnRhci54
eiIgdmVyc2lvbj0iMi40Mi4wIgorICAgICAgICAgICAgcmVwbz0iZnRwLmdub21lLm9yZyIKKyAg
ICAgICAgICAgIGhhc2g9InNoYTI1Njo5ZTBlN2ViNWQzZjc0MDFjY2Y1MjFmYmMyODlmYzFmYTA5
MjNiN2M3ODMzNzI5ZTJlZDc2OTZmN2I4NDg4OTNlIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxh
dXRvdG9vbHMgaWQ9ImZvbnRjb25maWciIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSI+CisgICAgPGRl
cGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZnJlZXR5cGU2Ii8+CisgICAgPC9kZXBl
bmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9InNvZnR3YXJlL2ZvbnRjb25maWcvcmVsZWFz
ZS9mb250Y29uZmlnLTIuOC4wLnRhci5neiIgdmVyc2lvbj0iMi44LjAiCisgICAgICAgICAgICBy
ZXBvPSJmcmVlZGVza3RvcC5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6ZmEyYTFjNmVl
YTY1NGQ5ZmNlN2E0YjEyMjBmMTBjOTljZGVjODQ4ZGNjYWYxNjI1YzAxZjA3NmIzMTM4MjMzNSIv
PgorICA8L2F1dG90b29scz4KKworIDxhdXRvdG9vbHMgaWQ9ImhhcmZidXp6IiBhdXRvZ2VuLXNo
PSJjb25maWd1cmUiPgorICAgPGJyYW5jaCBtb2R1bGU9InNvZnR3YXJlL2hhcmZidXp6L3JlbGVh
c2UvaGFyZmJ1enotMC45LjE0LnRhci5iejIiIHZlcnNpb249IjAuOS4xNCIKKyAgICAgICAgICAg
Y2hlY2tvdXRkaXI9ImhhcmZidXp6LTAuOS4xNCIKKyAgICAgICAgICAgcmVwbz0iZnJlZWRlc2t0
b3Aub3JnIgorICAgICAgICAgICBoYXNoPSJzaGEyNTY6ZDA3YzBmZmRiYmJmZGZiYjZjNjVlNzNm
ZTljNzY0NjZlODdkYmYwNGIwOTRjYmQwYWJmNWZkN2Q1NzFhNDAwNCIvPgorICAgPC9hdXRvdG9v
bHM+CisKKzwvbW9kdWxlc2V0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvbml4L2poYnVpbGRyYyBiL1Rv
b2xzL25peC9qaGJ1aWxkcmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzU1NTJjYWVhNTExNmUwOGUzNTk4MTgwYTA1
MWE3ZDQxN2FkMDQ0MAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL25peC9qaGJ1aWxkcmMKQEAg
LTAsMCArMSw3MiBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoQykgMjAx
MSBJZ2FsaWEgUy5MLgorIyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KKyMg
Q29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAg
MDIxMTAtMTMwMSAgVVNBCisKK2ltcG9ydCBtdWx0aXByb2Nlc3NpbmcKK2ltcG9ydCBzeXMKK2lt
cG9ydCBvcworCitfX25peF90b29sc19kaXJlY3RvcnkgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0
aC5kaXJuYW1lKF9fZmlsZV9fKSkKK3N5cy5wYXRoID0gW19fbml4X3Rvb2xzX2RpcmVjdG9yeV0g
KyBzeXMucGF0aAoraW1wb3J0IGNvbW1vbgorCitidWlsZF9wb2xpY3kgPSAndXBkYXRlZCcKKwor
IyBGSVhNRTogbW92ZSBzaGFyZWQgcGFydHMgaW50byAuLi9qaGJ1aWxkIGZvbGRlci4KKworX19t
b2R1bGVzZXRfZmlsZV91cmkgPSAnZmlsZTovLycgKyBvcy5wYXRoLmpvaW4oX19uaXhfdG9vbHNf
ZGlyZWN0b3J5LCAnamhidWlsZC5tb2R1bGVzJykKK19fZXh0cmFfbW9kdWxlc2V0cyA9IG9zLmVu
dmlyb24uZ2V0KCJXRUJLSVRfRVhUUkFfTU9EVUxFU0VUUyIsICIiKS5zcGxpdCgiLCIpCittb2R1
bGVzZXQgPSBbIF9fbW9kdWxlc2V0X2ZpbGVfdXJpLCBdCitpZiBfX2V4dHJhX21vZHVsZXNldHMg
IT0gWycnXToKKyAgICBtb2R1bGVzZXQuZXh0ZW5kKF9fZXh0cmFfbW9kdWxlc2V0cykKKworX19l
eHRyYV9tb2R1bGVzID0gb3MuZW52aXJvbi5nZXQoIldFQktJVF9FWFRSQV9NT0RVTEVTIiwgIiIp
LnNwbGl0KCIsIikKK21vZHVsZXMgPSBbICd3ZWJraXRuaXgtdGVzdGluZy1kZXBlbmRlbmNpZXMn
LCBdCitpZiBfX2V4dHJhX21vZHVsZXMgIT0gWycnXToKKyAgICBtb2R1bGVzLmV4dGVuZChfX2V4
dHJhX21vZHVsZXMpCisKK2lmIG9zLmVudmlyb24uaGFzX2tleSgnV0VCS0lUX09VVFBVVERJUicp
OgorICAgIGNoZWNrb3V0cm9vdCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ob3MuZW52
aXJvblsnV0VCS0lUX09VVFBVVERJUiddLCAnRGVwZW5kZW5jaWVzJywgJ1NvdXJjZScpKQorICAg
IHByZWZpeCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ob3MuZW52aXJvblsnV0VCS0lU
X09VVFBVVERJUiddLCAnRGVwZW5kZW5jaWVzJywgJ1Jvb3QnKSkKK2Vsc2U6CisgICAgY2hlY2tv
dXRyb290ID0gb3MucGF0aC5hYnNwYXRoKGNvbW1vbi50b3BfbGV2ZWxfcGF0aCgnV2ViS2l0QnVp
bGQnLCdEZXBlbmRlbmNpZXMnLCAnU291cmNlJykpCisgICAgcHJlZml4ID0gb3MucGF0aC5hYnNw
YXRoKGNvbW1vbi50b3BfbGV2ZWxfcGF0aCgnV2ViS2l0QnVpbGQnLCdEZXBlbmRlbmNpZXMnLCAn
Um9vdCcpKQorCitub25vdGlmeSA9IFRydWUKK25vdHJheWljb24gPSBUcnVlCitpZiAnTUFLRUZM
QUdTJyBub3QgaW4gb3MuZW52aXJvbjoKKyAgICBvcy5lbnZpcm9uWydNQUtFRkxBR1MnXSA9ICct
aiVkJyAlIG11bHRpcHJvY2Vzc2luZy5jcHVfY291bnQoKQorCisjIFVzZSBzeXN0ZW0gbGlicmFy
aWVzIHdoaWxlIGJ1aWxkaW5nLgoraWYgdXNlX2xpYjY0OgorICAgIF9saWJkaXIgPSAnbGliNjQn
CitlbHNlOgorICAgIF9saWJkaXIgPSAnbGliJworYWRkcGF0aCgnUEtHX0NPTkZJR19QQVRIJywg
b3MucGF0aC5qb2luKG9zLnNlcCwgJ3VzcicsIF9saWJkaXIsICdwa2djb25maWcnKSkKK2FkZHBh
dGgoJ1BLR19DT05GSUdfUEFUSCcsIG9zLnBhdGguam9pbihvcy5zZXAsICd1c3InLCAnc2hhcmUn
LCAncGtnY29uZmlnJykpCisKK2FkZHBhdGgoJ1hER19EQVRBX0RJUlMnLCAnL3Vzci9zaGFyZScp
CithZGRwYXRoKCdYREdfQ09ORklHX0RJUlMnLCAnL2V0Yy94ZGcnKQorCisjIEF2b2lkIG92ZXJs
YXBwaW5nIHNlYXJjaCBwYXRoIENNQUtFIHdhcm5pbmcgb24gNjRiaXQgc3lzdGVtcy4KK2lmICh1
c2VfbGliNjQpOgorICAgIGFkZHBhdGgoJ0NNQUtFX1BSRUZJWF9QQVRIJywgb3MucGF0aC5qb2lu
KG9zLnNlcCwgcHJlZml4LCAnbGliNjQnKSkKK2Vsc2U6CisgICAgYWRkcGF0aCgnQ01BS0VfUFJF
RklYX1BBVEgnLCBwcmVmaXgpCisKK3BhcnRpYWxfYnVpbGQgPSBGYWxzZQpkaWZmIC0tZ2l0IGEv
Q01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAppbmRleCAxMGY4NTA1NWFlOWYzODIzZjBk
MjA4MDg1OTlmNjQ0YzE4YWY3OTIxLi4yNjRiZjQ3OTg1Nzk3YTkzZTYyNTk0MDBhNzgyYjY2MzQ0
NDA2MjQyIDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysgYi9DTWFrZUxpc3RzLnR4dApA
QCAtMTAsNiArMTAsNyBAQCBzZXQoV0VCQ09SRV9ESVIgIiR7Q01BS0VfU09VUkNFX0RJUn0vU291
cmNlL1dlYkNvcmUiKQogc2V0KFdFQktJVF9ESVIgIiR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNl
L1dlYktpdCIpCiBzZXQoV0VCS0lUMl9ESVIgIiR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dl
YktpdDIiKQogc2V0KFRISVJEUEFSVFlfRElSICIke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9U
aGlyZFBhcnR5IikKK3NldChQTEFURk9STV9ESVIgIiR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNl
L1BsYXRmb3JtIikKIAogc2V0KFRPT0xTX0RJUiAiJHtDTUFLRV9TT1VSQ0VfRElSfS9Ub29scyIp
CiAKQEAgLTM5LDcgKzQwLDcgQEAgaW5jbHVkZShXZWJLaXRGZWF0dXJlcykKICMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KICMgRGV0ZXJtaW5lIHdoaWNoIHBvcnQgd2lsbCBiZSBidWlsdAogIyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotc2V0KEFMTF9QT1JUUyBFZmwgV2luQ0UgQmxhY2tCZXJyeSBHVEsp
CitzZXQoQUxMX1BPUlRTIEVmbCBXaW5DRSBCbGFja0JlcnJ5IEdUSyBOaXgpCiBzZXQoUE9SVCAi
Tk9QT1JUIiBDQUNIRSBTVFJJTkcgImNob29zZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCAo
b25lIG9mICR7QUxMX1BPUlRTfSkiKQogCiBsaXN0KEZJTkQgQUxMX1BPUlRTICR7UE9SVH0gUkVU
KQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDM4N2U4ZmU3YWM3M2Qz
ZWNiNTRlMmY1MjgxYTY2YTE1NzA1Zjk0MzkuLjMyMDIzMDFkZGUzNDU1N2FlMzdiODIzMDNjYTc4
NjdmOGYyOTE3MjUgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxMy0xMS0yOCAgTWFyY2VsbyBMaXJhIDxtYXJjZWxvLmxpcmFAb3BlbmJv
c3NhLm9yZz4KKworICAgICAgICBOaXggdXBzdHJlYW1pbmcgLSBBZGRpbmcgYnVpbGQgZmlsZXMg
YW5kIHN1cHBvcnRpbmcgc2NyaXB0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTE4MzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBTb3VyY2UvQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogU291cmNlL2NtYWtlL0ZpbmRFR0wuY21ha2U6CisgICAgICAg
ICogU291cmNlL2NtYWtlL0ZpbmRPcGVuR0xFUzIuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFNv
dXJjZS9jbWFrZS9PcHRpb25zQ29tbW9uLmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9P
cHRpb25zTml4LmNtYWtlOiBBZGRlZC4KKwogMjAxMy0xMS0yMyAgWGFiaWVyIFJvZHJpZ3VleiBD
YWx2YXIgIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIFJlbW92
ZSAwLjEwIGNvZGVwYXRoCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217858</attachid>
            <date>2013-11-25 19:01:37 -0800</date>
            <delta_ts>2013-11-26 22:02:53 -0800</delta_ts>
            <desc>Fixing wrong dates in ChangeLogs</desc>
            <filename>bug-118367-20131126000100.patch</filename>
            <type>text/plain</type>
            <size>69696</size>
            <attacher name="Thiago de Barros Lacerda">thiago.lacerda</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5Nzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA2YjBlYzcwZDFlMGRh
ZTA3MjAzZDYyMDE5MDQ1NjhjZGYzZmJmNzcyLi40MDE1ZWNhNjQ3YzhmOWYxYTZmZDBkNGZiOGRh
ZjAzODQ3NWM3MGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0xMS0yNSAg
TWFyY2VsbyBMaXJhICA8bWFyY2Vsby5saXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgTml4
IHVwc3RyZWFtaW5nIC0gQWRkaW5nIGJ1aWxkIGZpbGVzIGFuZCBzdXBwb3J0aW5nIHNjcmlwdHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM2Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6IEFkZGVkLgorICAgICAgICAqIFBsYXRmb3JtTml4LmNtYWtlOiBBZGRlZC4KKwog
MjAxMy0xMS0wNyAgRGVuaXMgTm9taXlhbWEgIDxkLm5vbWl5YW1hQHNhbXN1bmcuY29tPgogCiAg
ICAgICAgIFtHVEtdIEdseXBocyBpbiB2ZXJ0aWNhbCB0ZXh0IHRlc3RzIGFyZSByb3RhdGVkIDkw
IGRlZ3JlZXMgY2xvY2t3aXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGUwODk1OTQwMjQ3MWE4ZGY5NTI4MDUyZTVlNGRjZGQ2
YThjZjIxZmEuLmUwNTRjNTBjODdjZDBlOTVjYTZhNTE2NjE4NDU2MTkzOWU5YWQyY2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTMtMTEtMjUgIE1hcmNlbG8gTGlyYSAgPG1hcmNlbG8ubGlyYUBv
cGVuYm9zc2Eub3JnPgorCisgICAgICAgIE5peCB1cHN0cmVhbWluZyAtIEFkZGluZyBidWlsZCBm
aWxlcyBhbmQgc3VwcG9ydGluZyBzY3JpcHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgzNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9GZWF0dXJlRGVmaW5lcy5oOgorICAgICAgICAqIHd0
Zi9QbGF0Zm9ybS5oOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybU5peC5jbWFrZTogQWRkZWQuCisK
IDIwMTMtMTEtMjQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXBzdHJlYW0gVVNFKElPU1VSRkFDRSkgZnJvbSB0aGUgaU9TIHBvcnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAzODY2ZTExZTdhNTk4NDczMzM4Y2VlMTJhNDBjMjY0NzdmYmQwMGY5Li44ZmZlMGIwZjY2
YmM4MDRlYzI5YjkwYzVkYzM1NzA4OGI1YjU1ZTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTMtMTEtMjUgIE1hcmNlbG8gTGlyYSAgPG1hcmNlbG8ubGlyYUBvcGVuYm9zc2Eub3Jn
PgorCisgICAgICAgIE5peCB1cHN0cmVhbWluZyAtIEFkZGluZyBidWlsZCBmaWxlcyBhbmQgc3Vw
cG9ydGluZyBzY3JpcHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTgzNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMgbmVlZGVkLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogUGxhdGZvcm1OaXguY21ha2U6IEFkZGVkLgorCiAyMDEzLTExLTI1ICBTaW1v
biBQZW5hICA8c2ltb24ucGVuYUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBYMTFIZWxw
ZXI6OmNyZWF0ZVBpeG1hcCBkb2Vzbid0IGluaXRpYWxpc2Ugb3V0IHZhbHVlIGhhbmRsZUlkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvQ01ha2VMaXN0cy50eHQK
aW5kZXggMzczNmVlYTE3YTQ1ZWY0YTFkNzUyMTY0ZmE5MjVhMmI4N2Y4YWFhNC4uMjY4YmEyZTI0
OGRhNjc5YThmM2VmMTBiMWU3OWY5MTU5Nzg1ZTFlZCAxMDA2NDQKLS0tIGEvU291cmNlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9DTWFrZUxpc3RzLnR4dApAQCAtNSw2ICs1LDEwIEBAIGFk
ZF9zdWJkaXJlY3RvcnkoV1RGKQogCiBhZGRfc3ViZGlyZWN0b3J5KEphdmFTY3JpcHRDb3JlKQog
CitpZiAoIiR7UE9SVH0iIFNUUkVRVUFMICJOaXgiKQorICAgIGFkZF9zdWJkaXJlY3RvcnkoUGxh
dGZvcm0pCitlbmRpZiAoKQorCiBpZiAoRU5BQkxFX0FQSV9URVNUUykKICAgICBhZGRfc3ViZGly
ZWN0b3J5KGNtYWtlL2d0ZXN0KQogZW5kaWYgKCkKQEAgLTI2LDYgKzMwLDEzIEBAIFdFQktJVF9J
TkNMVURFX0NPTkZJR19GSUxFU19JRl9FWElTVFMoKQogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
IyBTZXQgY29tcGlsZXIgZmxhZ3MgZm9yIGFsbCB0YXJnZXRzCiAjIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCitpZiAoIiR7UE9SVH0iIFNUUkVRVUFMICJOaXgiKQorICAgIGlmIChOT1QgRElTQUJMRV9T
VFJJQ1RfQlVJTEQpCisgICAgICAgIHNldChBRERJVElPTkFMX0ZMQUdTIEVOQUJMRV9XRVJST1Ip
CisgICAgZW5kaWYgKCkKKyAgICBXRUJLSVRfU0VUX0VYVFJBX0NPTVBJTEVSX0ZMQUdTKFBsYXRm
b3JtICR7QURESVRJT05BTF9GTEFHU30pCitlbmRpZiAoKQorCiBpZiAoJHtQT1JUfSBTVFJFUVVB
TCAiRWZsIikKICAgICBzZXQoQURESVRJT05BTF9GTEFHUyBFTkFCTEVfV0VSUk9SKQogZW5kaWYg
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9Q
bGF0Zm9ybS9DTWFrZUxpc3RzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWY3Y2FiOWUzODNlNTgyNmY4ZTE4
YzQzYmM1YzQ5MDY0YjdhZjQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1BsYXRmb3JtL0NN
YWtlTGlzdHMudHh0CkBAIC0wLDAgKzEsNSBAQAorV0VCS0lUX0lOQ0xVREVfQ09ORklHX0ZJTEVT
X0lGX0VYSVNUUygpCisKK2luY2x1ZGVfZGlyZWN0b3JpZXMoJHtQbGF0Zm9ybV9JTkNMVURFU30p
CithZGRfbGlicmFyeShQbGF0Zm9ybSBTVEFUSUMgJHtQbGF0Zm9ybV9TT1VSQ0VTfSkKK3NldF90
YXJnZXRfcHJvcGVydGllcyhQbGF0Zm9ybSBQUk9QRVJUSUVTIEZPTERFUiAiUGxhdGZvcm0iKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtTml4LmNtYWtlIGIvU291cmNlL1Bs
YXRmb3JtL1BsYXRmb3JtTml4LmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzMTlkMjQ0YWNjYmI4Yzc3NzFk
OTVkZTQzZTUyZjE4ZmJkMTZlMTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvUGxhdGZvcm0v
UGxhdGZvcm1OaXguY21ha2UKQEAgLTAsMCArMSwyOSBAQAorc2V0KFBsYXRmb3JtX0lOQ0xVREVT
CisgICAgbml4CisgICAgJHtDTUFLRV9CSU5BUllfRElSfSAjIEZvciBjbWFrZWNvbmZpZy5oCisg
ICAgJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvICMgRm9yIEludFJlY3QuaAorICAg
ICR7V1RGX0RJUn0gIyBGb3IgY29uZmlnLmgKKykKKworc2V0KFBsYXRmb3JtX0hFQURFUlMKKyAg
ICBuaXgvcHVibGljL0F1ZGlvRGV2aWNlLmgKKyAgICBuaXgvcHVibGljL0NhbnZhcy5oCisgICAg
bml4L3B1YmxpYy9Db2xvci5oCisgICAgbml4L3B1YmxpYy9Db21tb24uaAorICAgIG5peC9wdWJs
aWMvRkZURnJhbWUuaAorICAgIG5peC9wdWJsaWMvR2FtZXBhZC5oCisgICAgbml4L3B1YmxpYy9H
YW1lcGFkcy5oCisgICAgbml4L3B1YmxpYy9NZWRpYVBsYXllci5oCisgICAgbml4L3B1YmxpYy9N
dWx0aUNoYW5uZWxQQ01EYXRhLmgKKyAgICBuaXgvcHVibGljL1BsYXRmb3JtLmgKKyAgICBuaXgv
cHVibGljL1JlY3QuaAorICAgIG5peC9wdWJsaWMvU2l6ZS5oCisgICAgbml4L3B1YmxpYy9UaGVt
ZUVuZ2luZS5oCispCisKK3NldChQbGF0Zm9ybV9TT1VSQ0VTCisgICAgbml4L3NyYy9EZWZhdWx0
V2ViVGhlbWVFbmdpbmUuY3BwCisgICAgbml4L3NyYy9QbGF0Zm9ybS5jcHAKKykKKworaW5zdGFs
bChGSUxFUyAke1BsYXRmb3JtX0hFQURFUlN9IERFU1RJTkFUSU9OIGluY2x1ZGUvJHtXZWJLaXQy
X09VVFBVVF9OQU1FfS0ke1BST0pFQ1RfVkVSU0lPTl9NQUpPUn0vTml4UGxhdGZvcm0pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oIGIvU291cmNlL1dURi93dGYv
RmVhdHVyZURlZmluZXMuaAppbmRleCA0NWY1Yjk4YThjNWM1NDZjZTg5Zjc4YWQ4ZDQwYjZjNjFh
YWY1MzRmLi41N2JjN2RlOTY4MjY4ODFlZDg5OWM0YTJjOTYyNjlkYjE5Yjk4MzBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0ZlYXR1cmVEZWZpbmVzLmgKQEAgLTI4NSw2ICsyODUsMTEgQEAKIAogI2VuZGlmIC8qIFBMQVRG
T1JNKFdJTl9DQUlSTykgKi8KIAorLyogLS0tLS0tLS0tIE5JWCBwb3J0IChVbml4KSAtLS0tLS0t
LS0gKi8KKyNpZiBQTEFURk9STShOSVgpCisjaW5jbHVkZSAibml4L0ZlYXR1cmVEZWZpbmVzTml4
LmgiCisjZW5kaWYgLyogUExBVEZPUk0oTklYKSAqLworCiAvKiAtLS0tLS0tLS0gRUZMIHBvcnQg
KFVuaXgpIC0tLS0tLS0tLSAqLwogI2lmIFBMQVRGT1JNKEVGTCkKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXgg
MjM4MDY3NTU3NDBmN2ZhMmUxM2VmMWI5MmY1M2RiZTBhYjAzZjQxYS4uNjQyZWZhMDNmNzZjM2E2
YmU5ZjlkZGM5ZWU2OWJiYWFiNDI3YmUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC00NTIsNiArNDUyLDgg
QEAKICNkZWZpbmUgV1RGX1BMQVRGT1JNX0dUSyAxCiAjZWxpZiBkZWZpbmVkKEJVSUxESU5HX0JM
QUNLQkVSUllfXykKICNkZWZpbmUgV1RGX1BMQVRGT1JNX0JMQUNLQkVSUlkgMQorI2VsaWYgZGVm
aW5lZChCVUlMRElOR19OSVhfXykKKyNpbmNsdWRlICJuaXgvUGxhdGZvcm1OaXguaCIKICNlbGlm
IE9TKERBUldJTikKICNkZWZpbmUgV1RGX1BMQVRGT1JNX01BQyAxCiAjZWxpZiBPUyhXSU5ET1dT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1OaXguY21ha2UgYi9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybU5peC5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTU5ZmExMTM3Yzc4YjY3MmM4
NzU5OWNiM2ZmZmVmMWZjZjYzNmQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1OaXguY21ha2UKQEAgLTAsMCArMSwxOCBAQAorbGlzdChBUFBFTkQgV1RGX1NPVVJD
RVMKKyAgICBnb2JqZWN0L0dPd25QdHIuY3BwCisgICAgZ29iamVjdC9HUmVmUHRyLmNwcAorICAg
IGdvYmplY3QvR2xpYlV0aWxpdGllcy5jcHAKKworICAgIGd0ay9NYWluVGhyZWFkR3RrLmNwcAor
KQorCitsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTCisgICAgcHRocmVhZAorICAgICR7R0xJQl9M
SUJSQVJJRVN9CisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CisgICAgJHtaTElCX0xJQlJBUklF
U30KKykKKworbGlzdChBUFBFTkQgV1RGX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAke0dMSUJf
SU5DTFVERV9ESVJTfQorKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5NGViYmIzM2ZlY2IzOWY4
NzQ0YWViZWU4MDU4MGJjYTFhN2QzNjRkLi5iOGEyMGVjNDNmYmU5MjEwNDM5OWZlYjc3NTlmYzI5
YzNlNTc2NmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjg1NSwxNCArMjg1NSwxNSBAQCBp
ZiAoV1RGX1VTRV8zRF9HUkFQSElDUykKICAgICAgICAgIiR7VEhJUkRQQVJUWV9ESVJ9L0FOR0xF
L2luY2x1ZGUvR0xTTEFORyIKICAgICAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBo
aWNzL2dwdSIKICAgICApCi0gICAgaWYgKE9QRU5HTF9GT1VORCkKKyAgICAjIE5peCBtYXkgdXNl
IGVpdGhlciBPcGVuR0wgb3IgT3BlbkdMRVMyIGhlYWRlcnMsIHNvIHdlIGhhbmRsZSB0aGlzIGF0
IFBsYXRmb3JtTml4LmNtYWtlLgorICAgIGlmIChPUEVOR0xfRk9VTkQgQU5EIE5PVCBQT1JUIFNU
UkVRVUFMICJOaXgiKQogICAgICAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNU
T1JJRVMKICAgICAgICAgICAgICR7T1BFTkdMX0lOQ0xVREVfRElSfQogICAgICAgICApCiAgICAg
ICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTCiAgICAgICAgICAgICAke09QRU5HTF9n
bF9MSUJSQVJZfQogICAgICAgICApCi0gICAgZWxzZWlmIChPUEVOR0xFUzJfRk9VTkQpCisgICAg
ZWxzZWlmIChPUEVOR0xFUzJfRk9VTkQgQU5EIE5PVCBQT1JUIFNUUkVRVUFMICJOaXgiKQogICAg
ICAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAgICAgICAg
ICR7T1BFTkdMRVMyX0lOQ0xVREVfRElSfQogICAgICAgICApCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybU5peC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTml4LmNt
YWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE5NGI0MTUxMTg1MmU5ODI3NGFhZmY2ZmMwYTFmNjIzOTY3OGQ1ODkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU5peC5jbWFrZQpAQCAt
MCwwICsxLDMyOCBAQAorbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCisg
ICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25peCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxh
dGZvcm0vY2Fpcm8iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
IgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZSIKKyAgICAi
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4IgorICAgICIke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei8iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL2dyYXBoaWNzL2hhcmZidXp6L25nIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9n
cmFwaGljcy9uaXgiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUiCisgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzIgorICAgICIke1dFQkNP
UkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3Bs
YXRmb3JtL2xpbnV4IgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIiCisgICAgIiR7UExBVEZPUk1fRElSfS9uaXgvIgorKQorCitsaXN0KEFQUEVORCBX
ZWJDb3JlX1NPVVJDRVMKKyAgICBjc3MvV2ViS2l0Q1NTQXJyYXlGdW5jdGlvblZhbHVlLmNwcAor
ICAgIGNzcy9XZWJLaXRDU1NNYXRGdW5jdGlvblZhbHVlLmNwcAorICAgIGNzcy9XZWJLaXRDU1NN
YXRyaXguY3BwCisgICAgY3NzL1dlYktpdENTU01peEZ1bmN0aW9uVmFsdWUuY3BwCisKKyAgICBl
ZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAKKworICAgIGh0bWwvc2hhZG93L01lZGlhQ29udHJv
bHNOaXguY3BwCisKKyAgICBwYWdlL1RvdWNoQWRqdXN0bWVudC5jcHAKKworICAgIHBhZ2Uvbml4
L0V2ZW50SGFuZGxlck5peC5jcHAKKworICAgIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbU5vbmUu
Y3BwCisgICAgcGxhdGZvcm0vQ29udGV4dE1lbnVOb25lLmNwcAorICAgIHBsYXRmb3JtL0N1cnNv
ci5jcHAKKyAgICBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAorICAgIHBsYXRmb3JtL1Bs
YXRmb3JtU3RyYXRlZ2llcy5jcHAKKworICAgIHBsYXRmb3JtL2NhaXJvL1dpZGdldEJhY2tpbmdT
dG9yZUNhaXJvLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvV09GRkZpbGVGb3JtYXQuY3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRt
YXBJbWFnZUNhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0
aWVzLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0RyYXdpbmdCdWZmZXJDYWlyby5j
cHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3BwCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9HcmFkaWVudENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VD
YWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbnRSZWN0Q2Fpcm8uY3BwCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L1BhdHRlcm5DYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNv
bnRleHRDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybVBhdGhD
YWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9SZWZQdHJDYWlyby5jcHAKKyAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9UaWxlQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vVGlsZWRCYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm8uY3BwCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vVHJhbnNmb3JtYXRpb25NYXRyaXhDYWlyby5jcHAKKworICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5jcHAKKyAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0u
Y3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5j
cHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
RnJlZVR5cGUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udFBsYXRmb3Jt
RGF0YUZyZWVUeXBlLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0dseXBoUGFn
ZVRyZWVOb2RlRnJlZVR5cGUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvU2lt
cGxlRm9udERhdGFGcmVlVHlwZS5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6
L0hhcmZCdXp6RmFjZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6
ekZhY2VDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6elNo
YXBlci5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL25peC9JY29uTml4LmNwcAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL25peC9JbWFnZU5peC5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVWZXJ0aWNhbERhdGEuY3BwCisKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKyAgICBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCisKKyAgICBw
bGF0Zm9ybS9ndGsvRXZlbnRMb29wR3RrLmNwcAorICAgIHBsYXRmb3JtL2d0ay9Mb2dnaW5nR3Rr
LmNwcAorICAgIHBsYXRmb3JtL2d0ay9TaGFyZWRCdWZmZXJHdGsuY3BwCisKKyAgICBwbGF0Zm9y
bS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuY3BwCisKKyAgICBwbGF0Zm9ybS9pbWFnZS1k
ZWNvZGVycy9ibXAvQk1QSW1hZ2VEZWNvZGVyLmNwcAorICAgIHBsYXRmb3JtL2ltYWdlLWRlY29k
ZXJzL2JtcC9CTVBJbWFnZVJlYWRlci5jcHAKKworICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L2NhaXJvL0ltYWdlRGVjb2RlckNhaXJvLmNwcAorCisgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2Rl
cnMvZ2lmL0dJRkltYWdlRGVjb2Rlci5jcHAKKyAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9n
aWYvR0lGSW1hZ2VSZWFkZXIuY3BwCisKKyAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9pY28v
SUNPSW1hZ2VEZWNvZGVyLmNwcAorCisgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9K
UEVHSW1hZ2VEZWNvZGVyLmNwcAorCisgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BO
R0ltYWdlRGVjb2Rlci5jcHAKKworICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3dlYnAvV0VC
UEltYWdlRGVjb2Rlci5jcHAKKworICAgIHBsYXRmb3JtL2xpbnV4L0dhbWVwYWREZXZpY2VMaW51
eC5jcHAKKworICAgIHBsYXRmb3JtL25peC9DdXJzb3JOaXguY3BwCisgICAgcGxhdGZvcm0vbml4
L0RyYWdEYXRhTml4LmNwcAorICAgIHBsYXRmb3JtL25peC9EcmFnSW1hZ2VOaXguY3BwCisgICAg
cGxhdGZvcm0vbml4L0dhbWVwYWRzTml4LmNwcAorICAgIHBsYXRmb3JtL25peC9MYW5ndWFnZU5p
eC5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvTG9jYWxpemVkU3RyaW5nc05peC5jcHAKKyAgICBwbGF0
Zm9ybS9uaXgvTml4S2V5Ym9hcmRVdGlsaXRpZXMuY3BwCisgICAgcGxhdGZvcm0vbml4L1Bhc3Rl
Ym9hcmROaXguY3BwCisgICAgcGxhdGZvcm0vbml4L1BsYXRmb3JtS2V5Ym9hcmRFdmVudE5peC5j
cHAKKyAgICBwbGF0Zm9ybS9uaXgvUGxhdGZvcm1TY3JlZW5OaXguY3BwCisgICAgcGxhdGZvcm0v
bml4L1JlbmRlclRoZW1lTml4LmNwcAorICAgIHBsYXRmb3JtL25peC9TY3JvbGxiYXJUaGVtZU5p
eC5jcHAKKyAgICBwbGF0Zm9ybS9uaXgvU291bmROaXguY3BwCisgICAgcGxhdGZvcm0vbml4L1dp
ZGdldE5peC5jcHAKKworICAgIHBsYXRmb3JtL25peC9zdXBwb3J0L011bHRpQ2hhbm5lbFBDTURh
dGEuY3BwCisKKyAgICBwbGF0Zm9ybS90ZXh0L0xvY2FsZU5vbmUuY3BwCisKKyAgICBwbGF0Zm9y
bS90ZXh0L25peC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTml4LmNwcAorCisgICAgcGx1
Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAKKyAgICBwbHVnaW5zL1BsdWdpbkRlYnVnLmNwcAorICAg
IHBsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKKyAgICBwbHVnaW5zL1BsdWdpblBhY2thZ2VOb25l
LmNwcAorICAgIHBsdWdpbnMvUGx1Z2luU3RyZWFtLmNwcAorICAgIHBsdWdpbnMvUGx1Z2luVmll
dy5jcHAKKyAgICBwbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcAorCisgICAgcmVuZGVyaW5nL3N0
eWxlL1N0eWxlQ2FjaGVkU2hhZGVyLmNwcAorICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUN1c3Rv
bUZpbHRlclByb2dyYW0uY3BwCisgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ3VzdG9tRmlsdGVy
UHJvZ3JhbUNhY2hlLmNwcAorKQorCitpZiAoV1RGX1VTRV9PUEVOR0xfRVNfMikKKyAgICBsaXN0
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0V4dGVuc2lvbnMzRE9wZW5HTEVTLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xFUy5jcHAKKyAgICApCisgICAgbGlzdChJTlNFUlQg
V2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTIDAgJHtPUEVOR0xFUzJfSU5DTFVERV9ESVJTfSkK
KyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUyAke09QRU5HTEVTMl9MSUJSQVJJRVN9
KQorICAgIGFkZF9kZWZpbml0aW9ucygke09QRU5HTEVTMl9ERUZJTklUSU9OU30pCitlbHNlICgp
CisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAKKyAgICApCisgICAgbGlzdChB
UFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMKKyAgICAgICAgJHtPUEVOR0xfZ2xfTElCUkFSWX0KKyAg
ICApCitlbmRpZiAoKQorCitpZiAoV1RGX1VTRV9FR0wpCisgICAgbGlzdChJTlNFUlQgV2ViQ29y
ZV9JTkNMVURFX0RJUkVDVE9SSUVTIDAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZWdsCisg
ICAgICAgICR7RUdMX0lOQ0xVREVfRElSfQorICAgICkKKyAgICBsaXN0KEFQUEVORCBXZWJDb3Jl
X1NPVVJDRVMKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorICAgICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCisKKyAgICAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAKKwor
ICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wuY3Bw
CisgICAgKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTICR7RUdMX0xJQlJBUll9
KQorZWxzZSAoKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwor
ICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgKKyAgICAgICAgcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZWZsCisgICAgICAgICR7WDExX1gxMV9JTkNMVURFX1BBVEh9Cisg
ICAgKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RFZmwuY3BwCisgICAgICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCisKKyAgICAgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0LmNwcAorICAgICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCisKKyAgICAgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR0xUcmFuc3BvcnRTdXJmYWNlLmNwcAorICAgICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HcmFwaGljc1N1cmZhY2UuY3BwCisKKyAgICAgICAgcGxh
dGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWZsL0dyYXBoaWNzU3VyZmFjZUNvbW1vbi5jcHAKKwor
ICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5jcHAKKyAg
ICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwCisgICAg
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9YMTFIZWxwZXIuY3BwCisgICAgKQor
ICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTICR7WDExX1gxMV9MSUJ9ICR7WDExX1hj
b21wb3NpdGVfTElCfSAke1gxMV9YcmVuZGVyX0xJQn0pCisKKyAgICBpZiAoRU5BQkxFX01FRElB
X1NUUkVBTSkKKyAgICAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMgJHtYMTFfWGV4
dF9MSUJ9KQorICAgIGVuZGlmICgpCitlbmRpZiAoKQorCitpZiAoRU5BQkxFX0JBVFRFUllfU1RB
VFVTKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUyAke0RCVVNf
SU5DTFVERV9ESVJTfSkKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUyAke0RCVVNf
TElCUkFSSUVTfSkKK2VuZGlmICgpCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfVVNFUl9BR0VOVF9T
VFlMRV9TSEVFVFMKKyAgICAke1dFQkNPUkVfRElSfS9jc3MvbWVkaWFDb250cm9sc05peC5jc3MK
KyAgICAke1dFQkNPUkVfRElSfS9jc3MvbWVkaWFDb250cm9sc05peEZ1bGxzY3JlZW4uY3NzCisp
CisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTCisgICAgJHtDQUlST19MSUJSQVJJRVN9
CisgICAgJHtGT05UQ09ORklHX0xJQlJBUklFU30KKyAgICAke0ZSRUVUWVBFX0xJQlJBUklFU30K
KyAgICAke0dMSUJfR0lPX0xJQlJBUklFU30KKyAgICAke0dMSUJfR01PRFVMRV9MSUJSQVJJRVN9
CisgICAgJHtHTElCX0dPQkpFQ1RfTElCUkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9Cisg
ICAgJHtIQVJGQlVaWl9MSUJSQVJJRVN9CisgICAgJHtKUEVHX0xJQlJBUll9CisgICAgJHtMSUJY
TUwyX0xJQlJBUklFU30KKyAgICAke0xJQlhTTFRfTElCUkFSSUVTfQorICAgICR7UE5HX0xJQlJB
Ull9CisgICAgJHtTUUxJVEVfTElCUkFSSUVTfQorICAgICR7WkxJQl9MSUJSQVJJRVN9CisgICAg
UGxhdGZvcm0KKykKKworbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCisg
ICAgJHtGT05UQ09ORklHX0lOQ0xVREVfRElSfQorICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQor
ICAgICR7RlJFRVRZUEVfSU5DTFVERV9ESVJTfQorICAgICR7TElCWE1MMl9JTkNMVURFX0RJUn0K
KyAgICAke0xJQlhTTFRfSU5DTFVERV9ESVJ9CisgICAgJHtTUUxJVEVfSU5DTFVERV9ESVJ9Cisg
ICAgJHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke1pMSUJfSU5DTFVERV9ESVJTfQorICAgICR7
SEFSRkJVWlpfSU5DTFVERV9ESVJTfQorKQorCithZGRfZGVmaW5pdGlvbnMoLUREQVRBX0RJUj0i
JHtDTUFLRV9JTlNUQUxMX1BSRUZJWH0vJHtEQVRBX0lOU1RBTExfRElSfSIpCisKK2lmIChFTkFC
TEVfV0VCX0FVRElPKQorICBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMK
KyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vYXVkaW8vbml4IgorICApCisgIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUworICAgIHBsYXRmb3JtL2F1ZGlvL25peC9BdWRpb0J1c05peC5j
cHAKKyAgICBwbGF0Zm9ybS9hdWRpby9uaXgvQXVkaW9EZXN0aW5hdGlvbk5peC5jcHAKKyAgICBw
bGF0Zm9ybS9hdWRpby9uaXgvRkZURnJhbWVOaXguY3BwCisgICkKKyAgc2V0KFdFQl9BVURJT19E
SVIgJHtDTUFLRV9JTlNUQUxMX1BSRUZJWH0vJHtEQVRBX0lOU1RBTExfRElSfS93ZWJhdWRpby9y
ZXNvdXJjZXMpCisgIGZpbGUoR0xPQiBXRUJfQVVESU9fREFUQSAiJHtXRUJDT1JFX0RJUn0vcGxh
dGZvcm0vYXVkaW8vcmVzb3VyY2VzLyoud2F2IikKKyAgaW5zdGFsbChGSUxFUyAke1dFQl9BVURJ
T19EQVRBfSBERVNUSU5BVElPTiAke1dFQl9BVURJT19ESVJ9KQorICBhZGRfZGVmaW5pdGlvbnMo
LURVTklOU1RBTExFRF9BVURJT19SRVNPVVJDRVNfRElSPSIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS9hdWRpby9yZXNvdXJjZXMiKQorZW5kaWYgKCkKKworaWYgKFdURl9VU0VfQ1VSTCkKKyAgICBs
aXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAgICAgIiR7V0VCQ09S
RV9ESVJ9L3BsYXRmb3JtL25ldHdvcmsvY3VybCIKKyAgICApCisKKyAgICBsaXN0KEFQUEVORCBX
ZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNl
c3Npb25TdHViLmNwcAorCisgICAgICAgIHBsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVEYXRh
YmFzZUJhY2tpbmdTdG9yZS5jcHAKKyAgICAgICAgcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tp
ZUphckN1cmwuY3BwCisgICAgICAgIHBsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVNYW5hZ2Vy
LmNwcAorICAgICAgICBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llTm9kZS5jcHAKKyAgICAg
ICAgcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZVN0b3JhZ2VDdXJsLmNwcAorICAgICAgICBw
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3JlZGVudGlhbFN0b3JhZ2VDdXJsLmNwcAorICAgICAgICBw
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvRE5TQ3VybC5jcHAKKyAgICAgICAgcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0Zvcm1EYXRhU3RyZWFtQ3VybC5jcHAKKyAgICAgICAgcGxhdGZvcm0vbmV0d29yay9j
dXJsL011bHRpcGFydEhhbmRsZS5jcHAKKyAgICAgICAgcGxhdGZvcm0vbmV0d29yay9jdXJsL1Bh
cnNlZENvb2tpZS5jcHAKKyAgICAgICAgcGxhdGZvcm0vbmV0d29yay9jdXJsL1Byb3h5U2VydmVy
Q3VybC5jcHAKKyAgICAgICAgcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3Vy
bC5jcHAKKyAgICAgICAgcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdl
ci5jcHAKKyAgICAgICAgcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUN1
cmwuY3BwCisgICAgICAgIHBsYXRmb3JtL25ldHdvcmsvY3VybC9TeW5jaHJvbm91c0xvYWRlckNs
aWVudEN1cmwuY3BwCisgICAgKQorCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMK
KyAgICAgICAgJHtDVVJMX0xJQlJBUklFU30KKyAgICApCitlbHNlICgpCisgICAgbGlzdChBUFBF
TkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgIGxvYWRlci9zb3VwL0NhY2hlZFJhd1Jlc291cmNl
U291cC5jcHAKKyAgICAgICAgbG9hZGVyL3NvdXAvU3VicmVzb3VyY2VMb2FkZXJTb3VwLmNwcAor
CisgICAgICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNv
dXAuY3BwCisgICAgICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcAor
ICAgICAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llU3RvcmFnZVNvdXAuY3BwCisgICAg
ICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9DcmVkZW50aWFsU3RvcmFnZVNvdXAuY3BwCisgICAg
ICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9ETlNTb3VwLmNwcAorICAgICAgICBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvR093blB0clNvdXAuY3BwCisgICAgICAgIHBsYXRmb3JtL25ldHdvcmsvc291
cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorICAgICAgICBwbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUHJveHlSZXNvbHZlclNvdXAuY3BwCisgICAgICAgIHBsYXRmb3JtL25ldHdvcmsvc291
cC9Qcm94eVNlcnZlclNvdXAuY3BwCisgICAgICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZUVycm9yU291cC5jcHAKKyAgICAgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
SGFuZGxlU291cC5jcHAKKyAgICAgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVx
dWVzdFNvdXAuY3BwCisgICAgICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3Bv
bnNlU291cC5jcHAKKyAgICAgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhh
bmRsZVNvdXAuY3BwCisgICAgICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwVVJJVXRpbHMu
Y3BwCisgICAgICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9TeW5jaHJvbm91c0xvYWRlckNsaWVu
dFNvdXAuY3BwCisKKyAgICAgICAgIyBVbmNvbW1lbnQgaXQgYWZ0ZXIgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODU5OCBpcyBmaXhlZCBhbmQgbWVyZ2VkIHRvIE5p
eC4KKyAgICAgICAgIyBwbGF0Zm9ybS9zb3VwL1NoYXJlZEJ1ZmZlclNvdXAuY3BwCisgICAgKQor
CisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgICAgICIk
e1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAiCisgICAgICAgICR7TElCU09VUF9J
TkNMVURFX0RJUlN9CisgICAgKQorCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMK
KyAgICAgICAgJHtMSUJTT1VQX0xJQlJBUklFU30KKyAgICApCitlbmRpZiAoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL2NtYWtlL0ZpbmRFR0wuY21ha2UgYi9Tb3VyY2UvY21ha2UvRmluZEVHTC5jbWFr
ZQppbmRleCA1MjZjNWJhMDg1NjI4OGM4MzI0YmJmNTRmNmQxN2VjNTE3OGM2ZWI5Li4xNjNlY2Iz
MGRlYWMxNWJhNGI5ZTgwZTI2YjJhMzZhNDBkYjNlMDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21h
a2UvRmluZEVHTC5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvRmluZEVHTC5jbWFrZQpAQCAtMzUs
MyArMzUsNyBAQCBmaW5kX2xpYnJhcnkoRUdMX0xJQlJBUlkgTkFNRVMgJHtFR0xfTkFNRVN9KQog
CiBpbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdzKQogRklORF9QQUNLQUdFX0hB
TkRMRV9TVEFOREFSRF9BUkdTKEVHTCBERUZBVUxUX01TRyBFR0xfSU5DTFVERV9ESVIgRUdMX0xJ
QlJBUlkpCisKK2lmIChQT1JUIFNUUkVRVUFMICJOaXgiKQorICAgbWFya19hc19hZHZhbmNlZChF
R0xfSU5DTFVERV9ESVIgRUdMX0xJQlJBUlkpCitlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L2NtYWtlL0ZpbmRPcGVuR0xFUzIuY21ha2UgYi9Tb3VyY2UvY21ha2UvRmluZE9wZW5HTEVTMi5j
bWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kYjY5YjhkMmQxMTRiNWI3MTNiNzY0Y2UwODY1YTNkNzUwZDc3MmVk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL2NtYWtlL0ZpbmRPcGVuR0xFUzIuY21ha2UKQEAg
LTAsMCArMSwyNSBAQAorIyBUcnkgdG8gZmluZCBPcGVuR0xFUzIuIE9uY2UgZG9uZSB0aGlzIHdp
bGwgZGVmaW5lOgorIyAgICAgT1BFTkdMRVMyX0ZPVU5ECisjICAgICBPUEVOR0xFUzJfSU5DTFVE
RV9ESVJTCisjICAgICBPUEVOR0xFUzJfTElCUkFSSUVTCisjICAgICBPUEVOR0xFUzJfREVGSU5J
VElPTlMKKworZmluZF9wYWNrYWdlKFBrZ0NvbmZpZykKKworcGtnX2NoZWNrX21vZHVsZXMoUENf
T1BFTkdMRVMyIGdsZXN2MikKKworaWYgKFBDX09QRU5HTEVTMl9GT1VORCkKKyAgICBzZXQoT1BF
TkdMRVMyX0lOQ0xVREVfRElSUyAke1BDX09QRU5HTEVTMl9JTkNMVURFX0RJUlN9KQorICAgIHNl
dChPUEVOR0xFUzJfREVGSU5JVElPTlMgJHtQQ19PUEVOR0xFUzJfQ0ZMQUdTX09USEVSfSkKK2Vs
c2UgKCkKKyAgICBmaW5kX3BhdGgoT1BFTkdMRVMyX0lOQ0xVREVfRElSUyBOQU1FUyBHTEVTMi9n
bDIuaCkKK2VuZGlmICgpCisKK2ZpbmRfbGlicmFyeShPUEVOR0xFUzJfTElCUkFSSUVTIEdMRVN2
MgorICAgIEhJTlRTICR7UENfT1BFTkdMRVMyX0xJQlJBUllfRElSU30gJHtQQ19PUEVOR0xFUzJf
TElCRElSfQorKQorCitpbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdzKQorZmlu
ZF9wYWNrYWdlX2hhbmRsZV9zdGFuZGFyZF9hcmdzKE9wZW5HTEVTMiBERUZBVUxUX01TRyBPUEVO
R0xFUzJfTElCUkFSSUVTIE9QRU5HTEVTMl9JTkNMVURFX0RJUlMpCisKK21hcmtfYXNfYWR2YW5j
ZWQoT1BFTkdMRVMyX0lOQ0xVREVfRElSUyBPUEVOR0xFUzJfTElCUkFSWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9jbWFrZS9PcHRpb25zQ29tbW9uLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnND
b21tb24uY21ha2UKaW5kZXggMGZlODdkZWJhMzJiYmFiOGU1ZjkxNzdiZWE5NjlhMDEwNDBlMjI2
OC4uNmQ2MDRjMDAyODcxZWU5OWI3ZDI5YjAyNzAwMmNmNmU2MzQyMTUwMSAxMDA2NDQKLS0tIGEv
U291cmNlL2NtYWtlL09wdGlvbnNDb21tb24uY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlv
bnNDb21tb24uY21ha2UKQEAgLTEsNSArMSw4IEBACi1hZGRfZGVmaW5pdGlvbnMoLURCVUlMRElO
R19XSVRIX0NNQUtFPTEpCi1hZGRfZGVmaW5pdGlvbnMoLURIQVZFX0NPTkZJR19IPTEpCisjIE5p
eCBkb2Vzbid0IHVzZSBjbWFrZWNvbmZpZy5oCitpZiAoTk9UIFBPUlQgU1RSRVFVQUwgIk5peCIp
CisgICAgYWRkX2RlZmluaXRpb25zKC1EQlVJTERJTkdfV0lUSF9DTUFLRT0xKQorICAgIGFkZF9k
ZWZpbml0aW9ucygtREhBVkVfQ09ORklHX0g9MSkKK2VuZGlmICgpCiAKIGlmIChXVEZfT1NfVU5J
WCkKICAgICBhZGRfZGVmaW5pdGlvbnMoLURYUF9VTklYKQpkaWZmIC0tZ2l0IGEvU291cmNlL2Nt
YWtlL09wdGlvbnNOaXguY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc05peC5jbWFrZQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43MTU1YTUzZjgzMmMzMDQ5ZDA3NjNkYTM5ZDdmOThhZDBmMWU1NWQxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNOaXguY21ha2UKQEAgLTAsMCArMSwxNDYg
QEAKKyMgTml4IHVzZXMgYSBkaWZmZXJlbnQgd2F5IHRvIHNldC91bnNldCBkZWZhdWx0IGZlYXR1
cmVzIGJhc2VkIG9uIFdLIGJ1ZyAxMTA3MTcgKG5vdCB5ZXQgbGFuZGVkKS4KKyMgU28gdGhlIGlt
cGxlbWVudGF0aW9uLCBpLmUuIHRoZSBuZXh0IHR3byBtYWNyb3MsIHdhcyBtb3ZlZCB0byBoZXJl
IHRvIGtlZXAgYSBtaW5pbWFsIGFzIHBvc3NpYmxlCisjIGludGVyZmVyZW5jZSBvbiBvdGhlciBw
b3J0cyB1bnRpbCBzb21lIGRheSB3aGVuL2lmIGJ1ZyAxMTA3MTcgZ2V0IGxhbmRlZC4KKworIyBD
b21wdXRlIGFuZCBzZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIGZlYXR1cmUgZGVmaW5lcworbWFjcm8o
V0VCS0lUX09QVElPTl9ERUZBVUxUUyBfcG9ydCkKKyAgICAjIFVzZSB0aGUgcHJlcHJvY2Vzc29y
IHRvIGdldCB0aGUgZGVmYXVsdCB2YWx1ZXMgZm9yIGZlYXR1cmUgZGVmaW5lcworICAgIEVYRUNf
UFJPR1JBTSgiZ2NjIC1FIC1QIC1kTSAtREJVSUxESU5HXyR7X3BvcnR9X18gLUkgJHtDTUFLRV9T
T1VSQ0VfRElSfS9Tb3VyY2UvV1RGICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dURi93dGYv
UGxhdGZvcm0uaCB8IGdyZXAgJ14jZGVmaW5lIEVOQUJMRV9cXHdcXCsgWzAxXSQnIHwgY3V0IC1k
JyAnIC1mMi0zIHwgc29ydCIgT1VUUFVUX1ZBUklBQkxFIERFRklOSVRJT05TKQorICAgIHN0cmlu
ZyhSRUdFWCBNQVRDSEFMTCAiKFteXG5dK3xbXlxuXSskKSIgREVGSU5JVElPTlNfTElTVCAke0RF
RklOSVRJT05TfSkKKworICAgIGZvcmVhY2ggKERFRklOSVRJT04gJHtERUZJTklUSU9OU19MSVNU
fSkKKyAgICAgICAgc3RyaW5nKFJFR0VYIFJFUExBQ0UgIl4oW14gXSspIChbXiBdKykkIiAiXFwx
IiBERUZJTklUSU9OX05BTUUgIiR7REVGSU5JVElPTn0iKQorICAgICAgICBzdHJpbmcoUkVHRVgg
UkVQTEFDRSAiXihbXiBdKykgKFteIF0rKSQiICJcXDIiIERFRklOSVRJT05fVkFMVUUgIiR7REVG
SU5JVElPTn0iKQorICAgICAgICBXRUJLSVRfT1BUSU9OX0RFRklORSgke0RFRklOSVRJT05fTkFN
RX0gIlRvZ2dsZSAke0RFRklOSVRJT05fTkFNRX0iICR7REVGSU5JVElPTl9WQUxVRX0pCisgICAg
ICAgIG9wdGlvbigke0RFRklOSVRJT05fTkFNRX0gIlRvZ2dsZSAke0RFRklOSVRJT05fTkFNRX0i
ICR7REVGSU5JVElPTl9WQUxVRX0pCisgICAgZW5kZm9yZWFjaCAoKQorZW5kbWFjcm8oKQorCisj
IFNob3cgV2ViS2l0IG9wdGlvbnMgc3VtbWFyeSBhbmQgYWRkIC1ERk9PQkFSIHRvIGVhY2ggb3B0
aW9uIHdpdGggYSB2YWx1ZSBkaWZmZXJlbnQgZnJvbSB0aGUgZGVmYXVsdCB2YWx1ZS4KK21hY3Jv
KFBST0NFU1NfV0VCS0lUX09QVElPTlMpCisgICAgbWVzc2FnZShTVEFUVVMgIkVuYWJsZWQgZmVh
dHVyZXM6IikKKworICAgIHNldChfTUFYX0ZFQVRVUkVfTEVOR1RIIDApCisgICAgZm9yZWFjaCAo
X25hbWUgJHtfV0VCS0lUX0FWQUlMQUJMRV9PUFRJT05TfSkKKyAgICAgICAgc3RyaW5nKExFTkdU
SCAke19uYW1lfSBfTkFNRV9MRU5HVEgpCisgICAgICAgIGlmIChfTkFNRV9MRU5HVEggR1JFQVRF
UiBfTUFYX0ZFQVRVUkVfTEVOR1RIKQorICAgICAgICAgICAgc2V0KF9NQVhfRkVBVFVSRV9MRU5H
VEggJHtfTkFNRV9MRU5HVEh9KQorICAgICAgICBlbmRpZiAoKQorICAgIGVuZGZvcmVhY2ggKCkK
KworICAgIHNldChfU0hPVUxEX1BSSU5UX1BPSU5UUyBPRkYpCisgICAgZm9yZWFjaCAoX25hbWUg
JHtfV0VCS0lUX0FWQUlMQUJMRV9PUFRJT05TfSkKKyAgICAgICAgc3RyaW5nKExFTkdUSCAke19u
YW1lfSBfTkFNRV9MRU5HVEgpCisKKyAgICAgICAgc2V0KF9NRVNTQUdFICIgJHtfbmFtZX0gIikK
KworICAgICAgICBpZiAoX1NIT1VMRF9QUklOVF9QT0lOVFMpCisgICAgICAgICAgICBmb3JlYWNo
IChJR05PUkUgUkFOR0UgJHtfTkFNRV9MRU5HVEh9ICR7X01BWF9GRUFUVVJFX0xFTkdUSH0pCisg
ICAgICAgICAgICAgICAgc2V0KF9NRVNTQUdFICIke19NRVNTQUdFfSAiKQorICAgICAgICAgICAg
ZW5kZm9yZWFjaCAoKQorICAgICAgICAgICAgc2V0KF9TSE9VTERfUFJJTlRfUE9JTlRTIE9GRikK
KyAgICAgICAgZWxzZSAoKQorICAgICAgICAgICAgZm9yZWFjaCAoSUdOT1JFIFJBTkdFICR7X05B
TUVfTEVOR1RIfSAke19NQVhfRkVBVFVSRV9MRU5HVEh9KQorICAgICAgICAgICAgICAgIHNldChf
TUVTU0FHRSAiJHtfTUVTU0FHRX0uIikKKyAgICAgICAgICAgIGVuZGZvcmVhY2ggKCkKKyAgICAg
ICAgICAgIHNldChfU0hPVUxEX1BSSU5UX1BPSU5UUyBPTikKKyAgICAgICAgZW5kaWYgKCkKKwor
ICAgICAgICBpZiAoJHtfbmFtZX0pCisgICAgICAgICAgICBsaXN0KEFQUEVORCBGRUFUVVJFX0RF
RklORVMgJHtfbmFtZX0pCisgICAgICAgICAgICBzZXQoRkVBVFVSRV9ERUZJTkVTX1dJVEhfU1BB
Q0VfU0VQQVJBVE9SICIke0ZFQVRVUkVfREVGSU5FU19XSVRIX1NQQUNFX1NFUEFSQVRPUn0gJHtf
bmFtZX0iKQorICAgICAgICBlbmRpZiAoKQorCisgICAgICAgIHNldChfTUVTU0FHRSAiJHtfTUVT
U0FHRX0gJHske19uYW1lfX0iKQorICAgICAgICBtZXNzYWdlKFNUQVRVUyAiJHtfTUVTU0FHRX0i
KQorICAgIGVuZGZvcmVhY2ggKCkKKworICAgICMgQWRkIGFkZF9kZWZpbml0aW9ucyB0byB2YWx1
ZXMgZGlmZmVyZW50IGZyb20gdGhlIGRlZmF1bHRzCisgICAgZm9yZWFjaCAoX25hbWUgJHtfV0VC
S0lUX0FWQUlMQUJMRV9PUFRJT05TfSkKKyAgICAgICAgIyBDb252ZXJ0IHZhbHVlcyBmcm9tIE9O
L09GRiB0byAxLzAgYmVjYXVzZQorICAgICAgICAjIENNYWtlIHNheXMgIjEgRVFVQUwgT04iIGlz
IGZhbHNlLgorICAgICAgICBpZiAoJHtfV0VCS0lUX0FWQUlMQUJMRV9PUFRJT05TX0lOSVRBTFZB
TFVFXyR7X25hbWV9fSkKKyAgICAgICAgICAgIHNldChfYSAxKQorICAgICAgICBlbHNlICgpCisg
ICAgICAgICAgICBzZXQoX2EgMCkKKyAgICAgICAgZW5kaWYgKCkKKyAgICAgICAgaWYgKCR7JHtf
bmFtZX19KQorICAgICAgICAgICAgc2V0KF9iIDEpCisgICAgICAgIGVsc2UgKCkKKyAgICAgICAg
ICAgIHNldChfYiAwKQorICAgICAgICBlbmRpZiAoKQorICAgICAgICBpZiAoTk9UIF9hIEVRVUFM
IF9iKQorICAgICAgICAgICAgYWRkX2RlZmluaXRpb25zKCItRCR7X25hbWV9PSR7X2J9IikKKyAg
ICAgICAgZW5kaWYgKCkKKyAgICBlbmRmb3JlYWNoICgpCitlbmRtYWNybygpCisKK3NldChQUk9K
RUNUX1ZFUlNJT05fTUFKT1IgMCkKK3NldChQUk9KRUNUX1ZFUlNJT05fTUlOT1IgMSkKK3NldChQ
Uk9KRUNUX1ZFUlNJT05fUEFUQ0ggMCkKK3NldChQUk9KRUNUX1ZFUlNJT04gJHtQUk9KRUNUX1ZF
UlNJT05fTUFKT1J9LiR7UFJPSkVDVF9WRVJTSU9OX01JTk9SfS4ke1BST0pFQ1RfVkVSU0lPTl9Q
QVRDSH0pCisKK2lmIChDTUFLRV9DWFhfQ09NUElMRVJfSUQgU1RSRVFVQUwgIkdOVSIpCisgICAg
IyBVc2UgLWZlbWl0LXN0cnVjdC1kZWJ1Zy1iYXNlb25seSB0byByZWR1Y2UgdGhlIHNpemUgb2Yg
V2ViQ29yZSBzdGF0aWMgbGlicmFyeQorICAgIHNldChDTUFLRV9DWFhfRkxBR1NfREVCVUcgIi1n
IC1mZW1pdC1zdHJ1Y3QtZGVidWctYmFzZW9ubHkiIENBQ0hFIFNUUklORyAiRmxhZ3MgdXNlZCBi
eSB0aGUgY29tcGlsZXIgZHVyaW5nIGRlYnVnIGJ1aWxkcy4iIEZPUkNFKQorZW5kaWYgKCkKKwor
c2V0KFNIQVJFRF9DT1JFIDApCitzZXQoRU5BQkxFX1dFQktJVCAwKQorc2V0KEVOQUJMRV9XRUJL
SVQyIDEpCisKK3NldChXZWJLaXQyX09VVFBVVF9OQU1FIFdlYktpdE5peCkKKworYWRkX2RlZmlu
aXRpb25zKC1EQlVJTERJTkdfTklYX189MSkKKworZmluZF9wYWNrYWdlKENhaXJvIDEuMTIuOCBS
RVFVSVJFRCkKK2ZpbmRfcGFja2FnZShGb250Y29uZmlnIDIuOC4wIFJFUVVJUkVEKQorZmluZF9w
YWNrYWdlKEZyZWV0eXBlIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEdMSUIgMi4zNi4wIFJFUVVJ
UkVEIENPTVBPTkVOVFMgZ2lvIGdvYmplY3QgZ21vZHVsZSBndGhyZWFkKQorZmluZF9wYWNrYWdl
KEhhcmZCdXp6KQorZmluZF9wYWNrYWdlKElDVSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShKUEVH
IFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKExpYlhtbDIgMi42IFJFUVVJUkVEKQorZmluZF9wYWNr
YWdlKExpYlhzbHQgMS4xLjcgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoUE5HIFJFUVVJUkVEKQor
ZmluZF9wYWNrYWdlKFNxbGl0ZSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShUaHJlYWRzIFJFUVVJ
UkVEKQorZmluZF9wYWNrYWdlKFpMSUIgUkVRVUlSRUQpCisKKyMgVmFyaWFibGUgdGhhdCBtdXN0
IGV4aXN0cyBvbiBDTWFrZSBzcGFjZQorIyB0byBrZWVwIGNvbW1vbiBDTWFrZSBmaWxlcyB3b3Jr
aW5nIGFzIGRlc2lyZWQgZm9yIHVzCitzZXQoV1RGX1VTRV9JQ1VfVU5JQ09ERSBPTikKK3NldChX
VEZfVVNFX0xFVkVMREIgT04pCitzZXQoRU5BQkxFX0FQSV9URVNUUyBPTikKKworV0VCS0lUX09Q
VElPTl9ERUZBVUxUUygiTklYIikKK1dFQktJVF9PUFRJT05fREVGSU5FKFdURl9VU0VfT1BFTkdM
X0VTXzIgIlVzZSBFR0wgKyBPcGVuR0xFUzIiIE9GRikKK1dFQktJVF9PUFRJT05fREVGSU5FKFdU
Rl9VU0VfQ1VSTCAiVXNlIGxpYkN1cmwgYXMgbmV0d29yayBiYWNrZW5kIiBPRkYpCisKK2lmIChX
VEZfVVNFX0NVUkwpCisgICAgZmluZF9wYWNrYWdlKENVUkwgUkVRVUlSRUQpCisgICAgc2V0KFJF
UVVJUkVEX05FVFdPUksgbGliY3VybCkKK2Vsc2UgKCkKKyAgICBmaW5kX3BhY2thZ2UoTGliU291
cCAyLjQyLjAgUkVRVUlSRUQpCisgICAgc2V0KFJFUVVJUkVEX05FVFdPUksgbGlic291cC0yLjQp
CitlbmRpZiAoKQorCitpZiAoV1RGX1VTRV9PUEVOR0xfRVNfMikKKyAgICBmaW5kX3BhY2thZ2Uo
T3BlbkdMRVMyIFJFUVVJUkVEKQorICAgIGZpbmRfcGFja2FnZShFR0wgUkVRVUlSRUQpCisgICAg
c2V0KFdURl9VU0VfRUdMIE9OKQorICAgIGFkZF9kZWZpbml0aW9ucygtRFdURl9VU0VfT1BFTkdM
X0VTXzI9MSkKK2Vsc2UgKCkKKyAgICBmaW5kX3BhY2thZ2UoWDExIFJFUVVJUkVEKQorICAgIGZp
bmRfcGFja2FnZShPcGVuR0wgUkVRVUlSRUQpCisgICAgYWRkX2RlZmluaXRpb25zKC1ESEFWRV9H
TFg9MSkKK2VuZGlmICgpCisKK2lmIChOT1QgRU5BQkxFX1NWRykKKyAgICBzZXQoRU5BQkxFX1NW
R19GT05UUyBPRkYpCitlbmRpZiAoKQorCitQUk9DRVNTX1dFQktJVF9PUFRJT05TKCkKKworCisK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4Njlh
ZTY3ZjFiNWQzOGU0MWVlY2Y3MmE1YWM3NDdkZGM0MWE0NWJhLi4wYTRjNzBkMjc4OGEyMTViNjgw
MzU2NWM1MjMxOGQyMjY3NzljNGM3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMTMtMTEtMjUgIE1hcmNlbG8gTGly
YSAgPG1hcmNlbG8ubGlyYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIE5peCB1cHN0cmVhbWlu
ZyAtIEFkZGluZyBidWlsZCBmaWxlcyBhbmQgc3VwcG9ydGluZyBzY3JpcHRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgzNjcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvYnVpbGQtd2Vi
a2l0OgorICAgICAgICAqIFNjcmlwdHMvcnVuLW5peC10ZXN0czogQWRkZWQuCisgICAgICAgICog
U2NyaXB0cy9ydW4td2Via2l0LXRlc3RzOgorICAgICAgICAqIFNjcmlwdHMvdXBkYXRlLXdlYmtp
dC1saWJzLWpoYnVpbGQ6CisgICAgICAgICogU2NyaXB0cy91cGRhdGUtd2Via2l0bml4LWxpYnM6
IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0ZGlycy5wbToKKyAgICAgICAgKGRldGVy
bWluZUFyY2hpdGVjdHVyZSk6CisgICAgICAgIChhcmd1bWVudHNGb3JDb25maWd1cmF0aW9uKToK
KyAgICAgICAgKGpzY1Byb2R1Y3REaXIpOgorICAgICAgICAoYnVpbHREeWxpYlBhdGhGb3JOYW1l
KToKKyAgICAgICAgKGRldGVybWluZUlzTml4KToKKyAgICAgICAgKGlzTml4KToKKyAgICAgICAg
KGlzQXBwbGVXZWJLaXQpOgorICAgICAgICAobGF1bmNoZXJQYXRoKToKKyAgICAgICAgKGxhdW5j
aGVyTmFtZSk6CisgICAgICAgIChjaGVja1JlcXVpcmVkU3lzdGVtQ29uZmlnKToKKyAgICAgICAg
KGNvcHlJbnNwZWN0b3JGcm9udGVuZEZpbGVzKToKKyAgICAgICAgKGpoYnVpbGRXcmFwcGVyUHJl
Zml4SWZOZWVkZWQpOgorICAgICAgICAoYnVpbGRDTWFrZVByb2plY3RPckV4aXQpOgorICAgICAg
ICAoY21ha2VCYXNlZFBvcnROYW1lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jb25maWcvcG9ydHMucHk6CisgICAgICAgIChEZXByZWNhdGVkUG9ydC5wb3J0KToKKyAgICAg
ICAgKEVmbFdLMlBvcnQuYnVpbGRfd2Via2l0X2NvbW1hbmQpOgorICAgICAgICAoTml4UG9ydCk6
CisgICAgICAgIChOaXhQb3J0LmJ1aWxkX3dlYmtpdF9jb21tYW5kKToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weToKKyAgICAgICAgKHBsYXRmb3JtX29wdGlvbnMp
OgorICAgICAgICAoUG9ydEZhY3RvcnkpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9y
dC9uaXgucHk6IEFkZGVkLgorICAgICAgICAoTml4UG9ydCk6CisgICAgICAgIChOaXhQb3J0Ll93
azJfcG9ydF9uYW1lKToKKyAgICAgICAgKE5peFBvcnQuZGV0ZXJtaW5lX2Z1bGxfcG9ydF9uYW1l
KToKKyAgICAgICAgKE5peFBvcnQuX19pbml0X18pOgorICAgICAgICAoTml4UG9ydC5fcG9ydF9m
bGFnX2Zvcl9zY3JpcHRzKToKKyAgICAgICAgKE5peFBvcnQuc2V0dXBfdGVzdF9ydW4pOgorICAg
ICAgICAoTml4UG9ydC5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIpOgorICAgICAgICAoTml4UG9y
dC5kZWZhdWx0X3RpbWVvdXRfbXMpOgorICAgICAgICAoTml4UG9ydC5jbGVhbl91cF90ZXN0X3J1
bik6CisgICAgICAgIChOaXhQb3J0Ll9nZW5lcmF0ZV9hbGxfdGVzdF9jb25maWd1cmF0aW9ucyk6
CisgICAgICAgIChOaXhQb3J0Ll9wYXRoX3RvX2RyaXZlcik6CisgICAgICAgIChOaXhQb3J0Ll9w
YXRoX3RvX2ltYWdlX2RpZmYpOgorICAgICAgICAoTml4UG9ydC5faW1hZ2VfZGlmZl9jb21tYW5k
KToKKyAgICAgICAgKE5peFBvcnQuX3NlYXJjaF9wYXRocyk6CisgICAgICAgIChOaXhQb3J0LnNo
b3dfcmVzdWx0c19odG1sX2ZpbGUpOgorICAgICAgICAoTml4UG9ydC5fcG9ydF9zcGVjaWZpY19l
eHBlY3RhdGlvbnNfZmlsZXMpOgorICAgICAgICAoTml4UG9ydC5kZWZhdWx0X2Jhc2VsaW5lX3Nl
YXJjaF9wYXRoKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvbml4X3VuaXR0ZXN0
LnB5OiBBZGRlZC4KKyAgICAgICAgKE5peFBvcnRUZXN0KToKKyAgICAgICAgKE5peFBvcnRUZXN0
Ll9hc3NlcnRfc2VhcmNoX3BhdGgpOgorICAgICAgICAoTml4UG9ydFRlc3QuX2Fzc2VydF9leHBl
Y3RhdGlvbnNfZmlsZXMpOgorICAgICAgICAoTml4UG9ydFRlc3QudGVzdF9iYXNlbGluZV9zZWFy
Y2hfcGF0aCk6CisgICAgICAgIChOaXhQb3J0VGVzdC50ZXN0X2V4cGVjdGF0aW9uc19maWxlcyk6
CisgICAgICAgIChOaXhQb3J0VGVzdC50ZXN0X2RlZmF1bHRfdGltZW91dF9tcyk6CisgICAgICAg
ICogamhidWlsZC9qaGJ1aWxkLXdyYXBwZXI6CisgICAgICAgIChkZXRlcm1pbmVfcGxhdGZvcm0p
OgorICAgICAgICAqIG5peC9jb21tb24ucHk6IEFkZGVkLgorICAgICAgICAoc2NyaXB0X3BhdGgp
OgorICAgICAgICAodG9wX2xldmVsX3BhdGgpOgorICAgICAgICAqIG5peC9qaGJ1aWxkLm1vZHVs
ZXM6IEFkZGVkLgorICAgICAgICAqIG5peC9qaGJ1aWxkcmM6IEFkZGVkLgorCiAyMDEzLTExLTI1
ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBV
c2UgQ29uZmlnIG1vZGUgb2YgZmluZF9wYWNrYWdlIGZvciBFRkwgMS44CmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdCBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0Cmlu
ZGV4IDM3Njk4MjM5NGIwZWYxNjgxZDU0YWM5MTdhNDg2OTQ3MTZmOWJjYTMuLmM0YjQ3ZDYzY2Y2
MmUyZjRjNjEyNTczZjA5M2E5YWJmOWFiYzE1YjAgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
YnVpbGQtd2Via2l0CisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CkBAIC00LDYgKzQs
NyBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICMgQ29weXJpZ2h0IChDKSAyMDEwIG1vaWppLW1vYmlsZS5jb20gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICMgQ29weXJpZ2h0IChDKSAyMDExIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zNiw3ICszNyw3IEBAIHVzZSBGaWxlOjpCYXNlbmFtZTsKIHVzZSBGaWxlOjpGaW5k
OwogdXNlIEZpbGU6OlNwZWM7CiB1c2UgRmluZEJpbjsKLXVzZSBHZXRvcHQ6OkxvbmcgcXcoOmNv
bmZpZyBwYXNzX3Rocm91Z2gpOwordXNlIEdldG9wdDo6TG9uZyBxdyg6Y29uZmlnIHBhc3NfdGhy
b3VnaCBub19hdXRvX2FiYnJldik7CiB1c2UgbGliICRGaW5kQmluOjpCaW47CiB1c2Ugd2Via2l0
ZGlyczsKIHVzZSB3ZWJraXRwZXJsOjpGZWF0dXJlTGlzdCBxdyhnZXRGZWF0dXJlT3B0aW9uTGlz
dCk7CkBAIC02Miw5ICs2Myw0MyBAQCBteSAkbm9XZWJLaXQxID0gMDsKIG15ICRub1dlYktpdDIg
PSAwOwogbXkgJGNvdmVyYWdlU3VwcG9ydCA9IDA7CiBteSAkc3RhcnRUaW1lID0gdGltZSgpOwor
bXkgJGN1cmwgPSAwOworbXkgJG9wZW5nbGVzMiA9IDA7CiAKIG15IEBmZWF0dXJlcyA9IGdldEZl
YXR1cmVPcHRpb25MaXN0KCk7CiAKKyMgVXBkYXRlIGRlZmF1bHRzIGZvciB0aGUgTml4IHBvcnQK
K2lmIChpc05peCgpKSB7CisgICAgIyBJbnN0ZWFkIG9mIHVzZSBGZWF0dXJlTGlzdC5wbSB0byBs
aXN0IGVuYWJsZWQgZmVhdHVyZXMsIHRlbGwgdGhlIGNvbXBpbGVyIHRvCisgICAgIyBwYXJzZSBT
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGFuZCBnZXQgdGhlIGRlZmF1bHQgdmFsdWVzIG9mIGFs
bCBmZWF0dXJlIGZsYWdzCisgICAgIyBmcm9tIHRoZSByZXN1bHQuCisgICAgbXkgJHBvcnREZWZp
bmUgPSAiQlVJTERJTkdfIi51YyhjbWFrZUJhc2VkUG9ydE5hbWUoKSkuIl9fIjsKKyAgICBteSAk
ZGVmaW5pdGlvbnMgPSBgZ2NjIC1FIC1QIC1kTSAtRCRwb3J0RGVmaW5lIC1JIFNvdXJjZS9XVEYg
U291cmNlL1dURi93dGYvUGxhdGZvcm0uaCB8IGdyZXAgJ14jZGVmaW5lIEVOQUJMRV9cXHdcXCsg
XFswMVxdXCRcXHxeI2RlZmluZSBXVEZfVVNFX1xcd1xcKyBcWzAxXF1cJCcgfCBjdXQgLWQnICcg
LWYyLTNgOworCisgICAgbXkgJWZlYXR1cmVEZWZhdWx0czsKKyAgICBmb3JlYWNoIChzcGxpdCgv
XG4vLCAkZGVmaW5pdGlvbnMpKSB7CisgICAgICAgIG15IEBtYWNyb0RlZmluaXRpb24gPSBzcGxp
dCgvIC8pOworICAgICAgICAkZmVhdHVyZURlZmF1bHRzeyRtYWNyb0RlZmluaXRpb25bMF19ID0g
JG1hY3JvRGVmaW5pdGlvblsxXTsKKyAgICB9CisKKyAgICBAZmVhdHVyZXMgPSAoKTsKKyAgICBm
b3JlYWNoIChzb3J0IGtleXMgJWZlYXR1cmVEZWZhdWx0cykgeworICAgICAgICBuZXh0IGlmICgh
L15FTkFCTEUvKTsKKyAgICAgICAgbXkgJG9wdGlvbk5hbWUgPSBsYyAkXzsKKyAgICAgICAgJG9w
dGlvbk5hbWUgPX4gcy9eZW5hYmxlXy8vOworICAgICAgICAkb3B0aW9uTmFtZSA9fiBzL18vLS9n
OworICAgICAgICBteSAkZGVzY05hbWUgPSAkb3B0aW9uTmFtZTsKKyAgICAgICAgJGRlc2NOYW1l
ID1+IHMvLS8gL2c7CisKKyAgICAgICAgcHVzaCBAZmVhdHVyZXMsIHsKKyAgICAgICAgICAgIG9w
dGlvbiA9PiAkb3B0aW9uTmFtZSwKKyAgICAgICAgICAgIGRlc2MgPT4gIlRvZ2dsZSAkZGVzY05h
bWUgc3VwcG9ydCIsCisgICAgICAgICAgICBkZWZpbmUgPT4gJF8sCisgICAgICAgICAgICBkZWZh
dWx0ID0+ICRmZWF0dXJlRGVmYXVsdHN7JF99CisgICAgICAgIH07CisgICAgfQorfQorCiAjIEFk
ZGl0aW9uYWwgZW52aXJvbm1lbnQgcGFyYW1ldGVycwogcHVzaCBAQVJHViwgc3BsaXQoLyAvLCAk
RU5WeydCVUlMRF9XRUJLSVRfQVJHUyd9KSBpZiAoJEVOVnsnQlVJTERfV0VCS0lUX0FSR1MnfSk7
CiAKQEAgLTk0LDYgKzEyOSw3IEBAIFVzYWdlOiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFtvcHRp
b25zIHRvIHBhc3MgdG8gYnVpbGQgc3lzdGVtXQogCiAgIC0tYmxhY2tiZXJyeSAgICAgICAgICAg
ICAgICAgICAgICBCdWlsZCB0aGUgQmxhY2tCZXJyeSBwb3J0IG9uIE1hYy9MaW51eAogICAtLWVm
bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgdGhlIEVGTCBwb3J0CisgIC0tbml4
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB0aGUgTml4IHBvcnQKICAgLS1ndGsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1aWxkIHRoZSBHVEsrIHBvcnQKICAgLS13aW5j
YWlybyAgICAgICAgICAgICAgICAgICAgICAgIEJ1aWxkIHVzaW5nIENhaXJvIChyYXRoZXIgdGhh
biBDb3JlR3JhcGhpY3MpIG9uIFdpbmRvd3MKICAgLS13aW5jZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEJ1aWxkIHRoZSBXaW5DRSBwb3J0CkBAIC0xMTAsNiArMTQ2LDkgQEAgVXNhZ2U6ICRw
cm9ncmFtTmFtZSBbb3B0aW9uc10gW29wdGlvbnMgdG8gcGFzcyB0byBidWlsZCBzeXN0ZW1dCiAg
IC0tbm8td2Via2l0MSAgICAgICAgICAgICAgICAgICAgICBPbWl0IFdlYktpdDEgY29kZSBmcm9t
IHRoZSBidWlsZCAoRUZML0dUSyBvbmx5KQogICAtLW5vLXdlYmtpdDIgICAgICAgICAgICAgICAg
ICAgICAgT21pdCBXZWJLaXQyIGNvZGUgZnJvbSB0aGUgYnVpbGQKIAorICAtLWN1cmwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVXNlIGxpYkN1cmwgYXMgbmV0d29yayBiYWNrZW5kIChOaXgg
b25seSkKKyAgLS1vcGVuZ2xlczIgICAgICAgICAgICAgICAgICAgICAgIFVzZSBFR0wgYW5kIE9w
ZW5HTEVTMiBpbnN0ZWFkIG9mIEdMWCAoTml4IG9ubHkpCisKIEVPRgogCiBteSAlb3B0aW9ucyA9
ICgKQEAgLTEyNSw2ICsxNjQsOCBAQCBteSAlb3B0aW9ucyA9ICgKICAgICAnbm8td2Via2l0MScg
PT4gXCRub1dlYktpdDEsCiAgICAgJ25vLXdlYmtpdDInID0+IFwkbm9XZWJLaXQyLAogICAgICdj
b3ZlcmFnZScgPT4gXCRjb3ZlcmFnZVN1cHBvcnQsCisgICAgJ2N1cmwnID0+IFwkY3VybCwKKyAg
ICAnb3BlbmdsZXMyJyA9PiBcJG9wZW5nbGVzMiwKICk7CiAKICMgQnVpbGQgdXNhZ2UgdGV4dCBh
bmQgb3B0aW9ucyBsaXN0IGZyb20gZmVhdHVyZXMKQEAgLTIzMSw2ICsyNzIsMjQgQEAgaWYgKGlz
SW5zcGVjdG9yRnJvbnRlbmQoKSkgewogICAgIEBwcm9qZWN0cyA9ICgiU291cmNlL1dlYkluc3Bl
Y3RvclVJIik7CiB9CiAKK2lmIChpc05peCgpKSB7CisgICAgaWYgKCRub1dlYktpdDIpIHsKKyAg
ICAgICAgcHJpbnQgU1RERVJSICJOaXggaXMgYSBXZWJLaXQyIHBvcnQsIHlvdSBjYW4ndCBkaXNh
YmxlIFdlYktpdDIgb24gaXQhXG4iOworICAgICAgICBleGl0IDE7CisgICAgfQorCisgICAgIyBC
eSBkZWZhdWx0IHdlIGJ1aWxkIHVzaW5nIGFsbCBvZiB0aGUgYXZhaWxhYmxlIENQVXMuCisgICAg
JG1ha2VBcmdzIC49ICgkbWFrZUFyZ3MgPyAiICIgOiAiIikgLiAiLWoiIC4gbnVtYmVyT2ZDUFVz
KCkgaWYgJG1ha2VBcmdzICF+IC8talxzKlxkKy87CisgICAgJGNtYWtlQXJncyA9ICItRFdURl9V
U0VfQ1VSTD1PTiAiIC4gJGNtYWtlQXJncyBpZiAkY3VybDsKKyAgICAkY21ha2VBcmdzID0gIi1E
V1RGX1VTRV9PUEVOR0xfRVNfMj1PTiAiIC4gJGNtYWtlQXJncyBpZiAkb3BlbmdsZXMyOworCisg
ICAgIyBXZSByZW1vdmUgQ01ha2VDYWNoZSB0byBhdm9pZCB0aGUgYm90cyB0byByZXVzZSBjYWNo
ZWQgZmxhZ3Mgd2hlbgorICAgICMgd2UgZW5hYmxlIG5ldyBmZWF0dXJlcy4gVGhpcyBmb3JjZXMg
YSByZWNvbmZpZ3VyYXRpb24uCisgICAgcmVtb3ZlQ01ha2VDYWNoZSgpOworCisgICAgYnVpbGRD
TWFrZVByb2plY3RPckV4aXQoJGNsZWFuLCAiTml4IiwgJHByZWZpeFBhdGgsICRtYWtlQXJncywg
KGNtYWtlQmFzZWRQb3J0QXJndW1lbnRzKCksIGNNYWtlQXJnc0Zyb21GZWF0dXJlcygpKSwgJGNt
YWtlQXJncyk7Cit9CisKIGlmIChpc0VmbCgpKSB7CiAgICAgIyBCeSBkZWZhdWx0IHdlIGJ1aWxk
IHVzaW5nIGFsbCBvZiB0aGUgYXZhaWxhYmxlIENQVXMuCiAgICAgJG1ha2VBcmdzIC49ICgkbWFr
ZUFyZ3MgPyAiICIgOiAiIikgLiAiLWoiIC4gbnVtYmVyT2ZDUFVzKCkgaWYgJG1ha2VBcmdzICF+
IC8talxzKlxkKy87CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi1uaXgtdGVzdHMgYi9U
b29scy9TY3JpcHRzL3J1bi1uaXgtdGVzdHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E4ZmUxMTM1MmU3Nzg2NmZm
YTAyNmVkNmUxNTI0NzA2ZTU2NmMxNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMv
cnVuLW5peC10ZXN0cwpAQCAtMCwwICsxLDQ0IEBACisjIS91c3IvYmluL3BlcmwgLXcKKyMgQ29w
eXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IyBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6
CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEludGVsIENv
cnBvcmF0aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwordXNlIHN0cmljdDsK
K3VzZSBGaW5kQmluOwordXNlIGxpYiAkRmluZEJpbjo6QmluOwordXNlIHdlYmtpdGRpcnM7CisK
K3NldENvbmZpZ3VyYXRpb24oKTsKKworIyBNYW51YWxseSBhZGQgdGhpcyBmb3IgamhidWlsZFdy
YXBwZXJQcmVmaXhJZk5lZWRlZCgpLgorcHVzaChAQVJHViwgIi0tbml4Iik7CisKKyMgVGVsbCBD
VGVzdCB0byBkdW1wIGd0ZXN0IG91dHB1dCBpbiBjYXNlIG9mIGZhaWx1cmUuCiskRU5We0NURVNU
X09VVFBVVF9PTl9GQUlMVVJFfSA9ICIxIjsKKworYnVpbGRDTWFrZVByb2plY3RPckV4aXQoMCwg
Ik5peCIsIHVuZGVmLCAidGVzdCIsIGNtYWtlQmFzZWRQb3J0QXJndW1lbnRzKCkpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9ydW4t
d2Via2l0LXRlc3RzCmluZGV4IDMyZTg3YTZlNjBmYWRhNWRjNTE5ZjYzODUxMWNiMTZiMDlhYzE5
ZjcuLjBmNjM5OTkzNzIyMjFkZWM2MThlNWRmN2NiZWFjZTFhOTYyOWYyOGIgMTAwNzU1Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cworKysgYi9Ub29scy9TY3JpcHRzL3J1bi13
ZWJraXQtdGVzdHMKQEAgLTEsNiArMSw3IEBACiAjIS91c3IvYmluL3BlcmwgLXcKICMgQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAo
QykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAj
CiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC04MCw2ICs4MSw4IEBAIGlmIChpc0d0
aygpKSB7CiAgICAgcHVzaChAQVJHViwgIi0tZ3RrIik7CiB9IGVsc2lmIChpc0VmbCgpKSB7CiAg
ICAgcHVzaChAQVJHViwgIi0tZWZsIik7Cit9IGVsc2lmIChpc05peCgpKSB7CisgICAgcHVzaChA
QVJHViwgIi0tbml4Iik7CiB9IGVsc2lmIChpc1dpbkNhaXJvKCkpIHsKICAgICBwdXNoKEBBUkdW
LCAiLS13aW5jYWlybyIpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Vi
a2l0LWxpYnMtamhidWlsZCBiL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVp
bGQKaW5kZXggMTNiYWFjMzY5OTM5OGQ3NzM4M2M1MzVmNmMyNzZkMDEyNzFkZTc0My4uOTczMzIy
MTY2ODRhODc0Y2NmZDUzNDVhNTk4YWZhYzNiNWI4Y2QzMCAxMDA3NTUKLS0tIGEvVG9vbHMvU2Ny
aXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZAorKysgYi9Ub29scy9TY3JpcHRzL3VwZGF0
ZS13ZWJraXQtbGlicy1qaGJ1aWxkCkBAIC0xLDYgKzEsNyBAQAogIyEvdXNyL2Jpbi9wZXJsIC13
CiAjIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgogIyBDb3B5cmlnaHQgKEMpIDIwMTIg
SW50ZWwgQ29ycG9yYXRpb24KKyMgQ29weXJpZ2h0IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICMKICMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogIyBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0yMywxNSAr
MjQsMTcgQEAgdXNlIEdldG9wdDo6TG9uZyBxdyg6Y29uZmlnIHBhc3NfdGhyb3VnaCk7CiAKIG15
ICRwbGF0Zm9ybUVmbCA9IDA7CiBteSAkcGxhdGZvcm1HdGsgPSAwOworbXkgJHBsYXRmb3JtTml4
ID0gMDsKIAogbXkgJGdldE9wdGlvbnNSZXN1bHQgPSBHZXRPcHRpb25zKAogICAgICdlZmwnID0+
IFwkcGxhdGZvcm1FZmwsCi0gICAgJ2d0aycgPT4gXCRwbGF0Zm9ybUd0aworICAgICdndGsnID0+
IFwkcGxhdGZvcm1HdGssCisgICAgJ25peCcgPT4gXCRwbGF0Zm9ybU5peAogICAgICk7CiAKIG15
ICRwbGF0Zm9ybSA9ICIiOwogaWYgKCEkZ2V0T3B0aW9uc1Jlc3VsdCkgewotICAgIGRpZSAiTm8g
cGxhdGZvcm0gc3BlY2lmaWVkIGZvciAiIC4gYmFzZW5hbWUoJDApIC4iLiBVc2UgLS1ndGsgb3Ig
LS1lZmwuXG4iOworICAgIGRpZSAiTm8gcGxhdGZvcm0gc3BlY2lmaWVkIGZvciAiIC4gYmFzZW5h
bWUoJDApIC4iLiBVc2UgLS1ndGssIC0tZWZsIG9yIC0tbml4LlxuIjsKIH0gZWxzZSB7CiAgICAg
aWYgKCRwbGF0Zm9ybUVmbCkgewogICAgICAgICAkcGxhdGZvcm0gPSAiZWZsIjsKQEAgLTM5LDYg
KzQyLDkgQEAgaWYgKCEkZ2V0T3B0aW9uc1Jlc3VsdCkgewogICAgIGlmICgkcGxhdGZvcm1HdGsp
IHsKICAgICAgICAgJHBsYXRmb3JtID0gImd0ayI7CiAgICAgfQorICAgIGlmICgkcGxhdGZvcm1O
aXgpIHsKKyAgICAgICAgJHBsYXRmb3JtID0gIm5peCI7CisgICAgfQogfQogCiBzdWIgZ2V0TUQ1
SGFzaEZvckZpbGUoJCkKQEAgLTEyMCw3ICsxMjYsNyBAQCBkZWxldGUgJEVOVntBUl9GTEFHU30g
aWYgZXhpc3RzICRFTlZ7QVJfRkxBR1N9OwogCiBjaGRpcihyZWxhdGl2ZVNjcmlwdHNEaXIoKSAu
ICIvLi4vamhidWlsZCIpIG9yIGRpZSAkITsKIAotbXkgJXByZXR0eVBsYXRmb3JtID0gKCAiZWZs
IiA9PiAiRUZMIiwgImd0ayIgPT4gIkdUSysiICk7CitteSAlcHJldHR5UGxhdGZvcm0gPSAoICJl
ZmwiID0+ICJFRkwiLCAiZ3RrIiA9PiAiR1RLKyIsICJuaXgiID0+ICJOaXgiICk7CiAKIGlmICgt
ZSBnZXRKaGJ1aWxkUGF0aCgpICYmIGpoYnVpbGRDb25maWd1cmF0aW9uQ2hhbmdlZCgpKSB7CiAg
ICAgY2xlYW5KaGJ1aWxkKCk7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJr
aXRuaXgtbGlicyBiL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdG5peC1saWJzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjRhM2NiODRkMzE2NzkxMWNhNzJhNmY1YTU1NTA4NmUzMzI4OTdkZTIKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXRuaXgtbGlicwpAQCAtMCwwICsxLDI0
IEBACisjIS91c3IvYmluL3BlcmwgLXcKKyMgQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBv
cmF0aW9uCisjIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisjCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorIworIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMgTGVzc2VyIEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
CisjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv
c3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorCit1c2UgRmluZEJpbjsKK3VzZSBsaWIgJEZpbmRC
aW46OkJpbjsKK3VzZSB3ZWJraXRkaXJzOworCitteSAkc2NyaXB0c0RpciA9IHJlbGF0aXZlU2Ny
aXB0c0RpcigpOworc3lzdGVtKCJwZXJsIiwgIiRzY3JpcHRzRGlyL3VwZGF0ZS13ZWJraXQtbGli
cy1qaGJ1aWxkIiwgIi0tbml4IiwgQEFSR1YpID09IDAgb3IgZGllICQhOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBt
CmluZGV4IDRmNzQyZGRmZGYxYTk1ZTIzYjQxYjExZjg0NTg3Yjc2YmUxYjlkOTIuLjgyMDA5ZmEw
MTYzNzBiZmE1NGE2YWI1YWNiMTZhYjMyY2RkZjhhZTIgMTAwNzU1Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0ZGlycy5wbQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KQEAgLTEs
NiArMSw3IEBACiAjIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAxMCwgMjAxMSwg
MjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAo
QykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMp
IDIwMTEgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
IENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTk0LDYgKzk1LDcgQEAg
bXkgJGlzV2luQ0U7CiBteSAkaXNXaW5DYWlybzsKIG15ICRpc1dpbjY0OwogbXkgJGlzRWZsOwor
bXkgJGlzTml4OwogbXkgJGlzQmxhY2tCZXJyeTsKIG15ICRpc0luc3BlY3RvckZyb250ZW5kOwog
bXkgJGlzV0syOwpAQCAtMzE0LDcgKzMxNiw3IEBAIHN1YiBkZXRlcm1pbmVBcmNoaXRlY3R1cmUK
ICAgICAgICAgICAgICAgICAkYXJjaGl0ZWN0dXJlID0gJ2FybXY3JzsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQotICAgIH0gZWxzaWYgKGlzRWZsKCkpIHsKKyAgICB9IGVsc2lmIChpc0VmbCgp
IHx8IGlzTml4KCkpIHsKICAgICAgICAgbXkgJGhvc3RfcHJvY2Vzc29yID0gIiI7CiAgICAgICAg
ICRob3N0X3Byb2Nlc3NvciA9IGBjbWFrZSAtLXN5c3RlbS1pbmZvcm1hdGlvbiB8IGdyZXAgQ01B
S0VfU1lTVEVNX1BST0NFU1NPUmA7CiAgICAgICAgIGlmICgkaG9zdF9wcm9jZXNzb3IgPX4gbS9e
Q01BS0VfU1lTVEVNX1BST0NFU1NPUiBcIihbXiJdKylcIi8pIHsKQEAgLTMyNCwxMyArMzI2LDEz
IEBAIHN1YiBkZXRlcm1pbmVBcmNoaXRlY3R1cmUKICAgICAgICAgfQogICAgIH0KIAotICAgIGlm
ICghJGFyY2hpdGVjdHVyZSAmJiAoaXNHdGsoKSB8fCBpc0FwcGxlTWFjV2ViS2l0KCkgfHwgaXNF
ZmwoKSkpIHsKKyAgICBpZiAoISRhcmNoaXRlY3R1cmUgJiYgKGlzR3RrKCkgfHwgaXNBcHBsZU1h
Y1dlYktpdCgpIHx8IGlzRWZsKCkgfHwgaXNOaXgoKSkpIHsKICAgICAgICAgIyBGYWxsIGJhY2sg
dG8gb3V0cHV0IG9mIGBhcmNoJywgaWYgaXQgaXMgcHJlc2VudC4KICAgICAgICAgJGFyY2hpdGVj
dHVyZSA9IGBhcmNoYDsKICAgICAgICAgY2hvbXAgJGFyY2hpdGVjdHVyZTsKICAgICB9CiAKLSAg
ICBpZiAoISRhcmNoaXRlY3R1cmUgJiYgKGlzR3RrKCkgfHwgaXNBcHBsZU1hY1dlYktpdCgpIHx8
IGlzRWZsKCkpKSB7CisgICAgaWYgKCEkYXJjaGl0ZWN0dXJlICYmIChpc0d0aygpIHx8IGlzQXBw
bGVNYWNXZWJLaXQoKSB8fCBpc0VmbCgpIHx8IGlzTml4KCkpKSB7CiAgICAgICAgICMgRmFsbCBi
YWNrIHRvIG91dHB1dCBvZiBgdW5hbWUgLW0nLCBpZiBpdCBpcyBwcmVzZW50LgogICAgICAgICAk
YXJjaGl0ZWN0dXJlID0gYHVuYW1lIC1tYDsKICAgICAgICAgY2hvbXAgJGFyY2hpdGVjdHVyZTsK
QEAgLTM3OSw2ICszODEsNyBAQCBzdWIgYXJndW1lbnRzRm9yQ29uZmlndXJhdGlvbigpCiAgICAg
cHVzaChAYXJncywgJy0tNjQtYml0JykgaWYgKGlzV2luNjQoKSk7CiAgICAgcHVzaChAYXJncywg
Jy0tZ3RrJykgaWYgaXNHdGsoKTsKICAgICBwdXNoKEBhcmdzLCAnLS1lZmwnKSBpZiBpc0VmbCgp
OworICAgIHB1c2goQGFyZ3MsICctLW5peCcpIGlmIGlzTml4KCk7CiAgICAgcHVzaChAYXJncywg
Jy0td2luY2Fpcm8nKSBpZiBpc1dpbkNhaXJvKCk7CiAgICAgcHVzaChAYXJncywgJy0td2luY2Un
KSBpZiBpc1dpbkNFKCk7CiAgICAgcHVzaChAYXJncywgJy0tYmxhY2tiZXJyeScpIGlmIGlzQmxh
Y2tCZXJyeSgpOwpAQCAtNTI5LDcgKzUzMiw3IEBAIHN1YiBwcm9kdWN0RGlyCiBzdWIganNjUHJv
ZHVjdERpcgogewogICAgIG15ICRwcm9kdWN0RGlyID0gcHJvZHVjdERpcigpOwotICAgICRwcm9k
dWN0RGlyIC49ICIvYmluIiBpZiBpc0VmbCgpOworICAgICRwcm9kdWN0RGlyIC49ICIvYmluIiBp
ZiAoaXNFZmwoKSB8fCBpc05peCgpKTsKICAgICAkcHJvZHVjdERpciAuPSAiL1Byb2dyYW1zIiBp
ZiBpc0d0aygpOwogCiAgICAgcmV0dXJuICRwcm9kdWN0RGlyOwpAQCAtNzg2LDYgKzc4OSw5IEBA
IHN1YiBidWlsdER5bGliUGF0aEZvck5hbWUKICAgICAgICAgfQogICAgICAgICByZXR1cm4gIiRj
b25maWd1cmF0aW9uUHJvZHVjdERpci9saWIvbGliZXdlYmtpdC5zbyI7CiAgICAgfQorICAgIGlm
IChpc05peCgpKSB7CisgICAgICAgIHJldHVybiAiJGNvbmZpZ3VyYXRpb25Qcm9kdWN0RGlyL2xp
Yi9saWJXZWJLaXROaXguc28iOworICAgIH0KICAgICBpZiAoaXNXaW5DRSgpKSB7CiAgICAgICAg
IHJldHVybiAiJGNvbmZpZ3VyYXRpb25Qcm9kdWN0RGlyLyRsaWJyYXJ5TmFtZSI7CiAgICAgfQpA
QCAtMTAzOSw2ICsxMDQ1LDE3IEBAIHN1YiBpc0VmbCgpCiAgICAgcmV0dXJuICRpc0VmbDsKIH0K
IAorc3ViIGRldGVybWluZUlzTml4KCkKK3sKKyAgICByZXR1cm4gaWYgZGVmaW5lZCgkaXNOaXgp
OworICAgICRpc05peCA9IGNoZWNrRm9yQXJndW1lbnRBbmRSZW1vdmVGcm9tQVJHVigiLS1uaXgi
KTsKK30KKworc3ViIGlzTml4KCkKK3sKKyAgICBkZXRlcm1pbmVJc05peCgpOworICAgIHJldHVy
biAkaXNOaXg7Cit9CiBzdWIgaXNHdGsoKQogewogICAgIGRldGVybWluZUlzR3RrKCk7CkBAIC0x
MTg5LDcgKzEyMDYsNyBAQCBzdWIgaXNDcm9zc0NvbXBpbGF0aW9uKCkKIAogc3ViIGlzQXBwbGVX
ZWJLaXQoKQogewotICAgIHJldHVybiAhKGlzR3RrKCkgb3IgaXNFZmwoKSBvciBpc1dpbkNFKCkg
b3IgaXNCbGFja0JlcnJ5KCkpOworICAgIHJldHVybiAhKGlzR3RrKCkgb3IgaXNFZmwoKSBvciBp
c1dpbkNFKCkgb3IgaXNCbGFja0JlcnJ5KCkgb3IgaXNOaXgoKSk7CiB9CiAKIHN1YiBpc0FwcGxl
TWFjV2ViS2l0KCkKQEAgLTEzODAsNyArMTM5Nyw3IEBAIHN1YiByZWxhdGl2ZVNjcmlwdHNEaXIo
KQogc3ViIGxhdW5jaGVyUGF0aCgpCiB7CiAgICAgbXkgJHJlbGF0aXZlU2NyaXB0c1BhdGggPSBy
ZWxhdGl2ZVNjcmlwdHNEaXIoKTsKLSAgICBpZiAoaXNHdGsoKSB8fCBpc0VmbCgpIHx8IGlzV2lu
Q0UoKSkgeworICAgIGlmIChpc0d0aygpIHx8IGlzRWZsKCkgfHwgaXNXaW5DRSgpIHx8IGlzTml4
KCkpIHsKICAgICAgICAgcmV0dXJuICIkcmVsYXRpdmVTY3JpcHRzUGF0aC9ydW4tbGF1bmNoZXIi
OwogICAgIH0gZWxzaWYgKGlzQXBwbGVXZWJLaXQoKSkgewogICAgICAgICByZXR1cm4gIiRyZWxh
dGl2ZVNjcmlwdHNQYXRoL3J1bi1zYWZhcmkiOwpAQCAtMTM5Nyw2ICsxNDE0LDggQEAgc3ViIGxh
dW5jaGVyTmFtZSgpCiAgICAgICAgIHJldHVybiAiRVdlYkxhdW5jaGVyL01pbmlCcm93c2VyIjsK
ICAgICB9IGVsc2lmIChpc1dpbkNFKCkpIHsKICAgICAgICAgcmV0dXJuICJXaW5DRUxhdW5jaGVy
IjsKKyAgICB9IGVsc2lmIChpc05peCgpKSB7CisgICAgICAgIHJldHVybiAiTWluaUJyb3dzZXIi
OwogICAgIH0KIH0KIApAQCAtMTQxOSw3ICsxNDM4LDcgQEAgc3ViIGNoZWNrUmVxdWlyZWRTeXN0
ZW1Db25maWcKICAgICAgICAgICAgIHByaW50ICJtb3N0IGxpa2VseSBmYWlsLiBUaGUgbGF0ZXN0
IFhjb2RlIGlzIGF2YWlsYWJsZSBmcm9tIHRoZSBBcHAgU3RvcmUuXG4iOwogICAgICAgICAgICAg
cHJpbnQgIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKipcbiI7CiAgICAgICAgIH0KLSAgICB9IGVsc2lmIChpc0d0aygpIG9yIGlzRWZs
KCkgb3IgaXNXaW5kb3dzKCkpIHsKKyAgICB9IGVsc2lmIChpc0d0aygpIG9yIGlzRWZsKCkgb3Ig
aXNXaW5kb3dzKCkgb3IgaXNOaXgoKSkgewogICAgICAgICBteSBAY21kcyA9IHF3KGJpc29uIGdw
ZXJmIGZsZXgpOwogICAgICAgICBteSBAbWlzc2luZyA9ICgpOwogICAgICAgICBteSAkb2xkUGF0
aCA9ICRFTlZ7UEFUSH07CkBAIC0xNjM4LDcgKzE2NTcsNyBAQCBzdWIgY29weUluc3BlY3RvckZy
b250ZW5kRmlsZXMKICAgICAgICAgfQogICAgIH0gZWxzaWYgKGlzQXBwbGVXaW5XZWJLaXQoKSB8
fCBpc1dpbkNhaXJvKCkpIHsKICAgICAgICAgJGluc3BlY3RvclJlc291cmNlc0RpclBhdGggPSAk
cHJvZHVjdERpciAuICIvV2ViS2l0LnJlc291cmNlcy9pbnNwZWN0b3IiOwotICAgIH0gZWxzaWYg
KGlzR3RrKCkpIHsKKyAgICB9IGVsc2lmIChpc0d0aygpIHx8IGlzTml4KCkpIHsKICAgICAgICAg
bXkgJHByZWZpeCA9ICRFTlZ7IldlYktpdEluc3RhbGxhdGlvblByZWZpeCJ9OwogICAgICAgICAk
aW5zcGVjdG9yUmVzb3VyY2VzRGlyUGF0aCA9IChkZWZpbmVkKCRwcmVmaXgpID8gJHByZWZpeCA6
ICIvdXNyL3NoYXJlIikgLiAiL3dlYmtpdC0xLjAvd2ViaW5zcGVjdG9yIjsKICAgICB9IGVsc2lm
IChpc0VmbCgpKSB7CkBAIC0xOTUxLDYgKzE5NzAsOCBAQCBzdWIgamhidWlsZFdyYXBwZXJQcmVm
aXhJZk5lZWRlZCgpCiAgICAgICAgICAgICBwdXNoKEBwcmVmaXgsICItLWVmbCIpOwogICAgICAg
ICB9IGVsc2lmIChpc0d0aygpKSB7CiAgICAgICAgICAgICBwdXNoKEBwcmVmaXgsICItLWd0ayIp
OworICAgICAgICB9IGVsc2lmIChpc05peCgpKSB7CisgICAgICAgICAgICBwdXNoKEBwcmVmaXgs
ICItLW5peCIpOwogICAgICAgICB9CiAgICAgICAgIHB1c2goQHByZWZpeCwgInJ1biIpOwogCkBA
IC0yMDQ1LDYgKzIwNjYsOSBAQCBzdWIgYnVpbGRDTWFrZVByb2plY3RPckV4aXQoJCQkJEApCiAg
ICAgICAgIHN5c3RlbSgicGVybCIsICIkc291cmNlRGlyL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdl
YmtpdGVmbC1saWJzIikgPT0gMCBvciBkaWUgJCE7CiAgICAgfQogCisgICAgaWYgKGlzTml4KCkg
JiYgY2hlY2tGb3JBcmd1bWVudEFuZFJlbW92ZUZyb21BUkdWKCItLXVwZGF0ZS1uaXgiKSkgewor
ICAgICAgICBzeXN0ZW0oInBlcmwiLCAiJHNvdXJjZURpci9Ub29scy9TY3JpcHRzL3VwZGF0ZS13
ZWJraXRuaXgtbGlicyIpID09IDAgb3IgZGllICQhOworICAgIH0KIAogICAgICRyZXR1cm5Db2Rl
ID0gZXhpdFN0YXR1cyhnZW5lcmF0ZUJ1aWxkU3lzdGVtRnJvbUNNYWtlUHJvamVjdCgkcG9ydCwg
JHByZWZpeFBhdGgsIEBjbWFrZUFyZ3MpKTsKICAgICBleGl0KCRyZXR1cm5Db2RlKSBpZiAkcmV0
dXJuQ29kZTsKQEAgLTIwNjgsNiArMjA5Miw3IEBAIHN1YiBjbWFrZUJhc2VkUG9ydE5hbWUoKQog
ICAgIHJldHVybiAiQmxhY2tCZXJyeSIgaWYgaXNCbGFja0JlcnJ5KCk7CiAgICAgcmV0dXJuICJF
ZmwiIGlmIGlzRWZsKCk7CiAgICAgcmV0dXJuICJXaW5DRSIgaWYgaXNXaW5DRSgpOworICAgIHJl
dHVybiAiTml4IiBpZiBpc05peCgpOwogICAgIHJldHVybiAiIjsKIH0KIApkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5CmluZGV4IDBjMjBkYWU1MTI0YTI3
ZDU3Yjg2ZTdkYWM1MmY3MzRjYzU2NjRmOTcuLjk0Y2MwNWFmMDU1NzdlOTVhNzgzMDg1NzNlMDUw
NWYzYTEyNzJiNGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2Nv
bmZpZy9wb3J0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcv
cG9ydHMucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAwOSwgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEzIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICMKICMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKQEAgLTcwLDYgKzcxLDcgQEAgY2xhc3MgRGVwcmVjYXRlZFBvcnQob2JqZWN0
KToKICAgICAgICAgICAgICJxdC13azIiOiBRdFdLMlBvcnQsCiAgICAgICAgICAgICAiZWZsIjog
RWZsUG9ydCwKICAgICAgICAgICAgICJlZmwtd2syIjogRWZsV0syUG9ydCwKKyAgICAgICAgICAg
ICJuaXgiOiBOaXhQb3J0LAogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHRfcG9ydCA9IHsKICAg
ICAgICAgICAgICJXaW5kb3dzIjogV2luUG9ydCwKQEAgLTIzMCwzICsyMzIsMTQgQEAgY2xhc3Mg
RWZsV0syUG9ydChEZXByZWNhdGVkUG9ydCk6CiAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLW5v
LXdlYmtpdDEiKQogICAgICAgICBjb21tYW5kLmFwcGVuZChzdXBlcihFZmxXSzJQb3J0LCBzZWxm
KS5tYWtlQXJncygpKQogICAgICAgICByZXR1cm4gY29tbWFuZAorCisKK2NsYXNzIE5peFBvcnQo
RGVwcmVjYXRlZFBvcnQpOgorICAgIHBvcnRfZmxhZ19uYW1lID0gIm5peCIKKworICAgIGRlZiBi
dWlsZF93ZWJraXRfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAgICAgICAgY29t
bWFuZCA9IHN1cGVyKE5peFBvcnQsIHNlbGYpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1aWxkX3N0
eWxlPWJ1aWxkX3N0eWxlKQorICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1uaXgiKQorICAgICAg
ICBjb21tYW5kLmFwcGVuZCgiLS11cGRhdGUtbml4IikKKyAgICAgICAgY29tbWFuZC5hcHBlbmQo
c3VwZXIoTml4UG9ydCwgc2VsZikubWFrZUFyZ3MoKSkKKyAgICAgICAgcmV0dXJuIGNvbW1hbmQK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHkKaW5kZXggN2RiN2QwZDEzZjNlZjc4
OWIyYjExODU5YzVlNGM1MmM1YTM5ZTY4My4uMGQ4YzU1Yjg2NWE1ZmE0YjE0ZjA3MTVlMzQyM2Y0
Mzg1MjQ2MmYwMCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3Rv
cnkucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHkKQEAgLTEs
NSArMSw2IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNDYs
NiArNDcsOCBAQCBkZWYgcGxhdGZvcm1fb3B0aW9ucyh1c2VfZ2xvYnM9RmFsc2UpOgogICAgICAg
ICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS1lZmwnLCBhY3Rpb249J3N0b3JlX2NvbnN0JywgZGVz
dD0ncGxhdGZvcm0nLAogICAgICAgICAgICAgY29uc3Q9KCdlZmwqJyBpZiB1c2VfZ2xvYnMgZWxz
ZSAnZWZsJyksCiAgICAgICAgICAgICBoZWxwPSgnQWxpYXMgZm9yIC0tcGxhdGZvcm09ZWZsKicg
aWYgdXNlX2dsb2JzIGVsc2UgJ0FsaWFzIGZvciAtLXBsYXRmb3JtPWVmbCcpKSwKKyAgICAgICAg
b3B0cGFyc2UubWFrZV9vcHRpb24oJy0tbml4JywgYWN0aW9uPSdzdG9yZV9jb25zdCcsIGRlc3Q9
J3BsYXRmb3JtJywKKyAgICAgICAgICAgIGNvbnN0PSgnbml4JyksIGhlbHA9KCdBbGlhcyBmb3Ig
LS1wbGF0Zm9ybT1uaXgnKSksCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLWd0aycs
IGFjdGlvbj0nc3RvcmVfY29uc3QnLCBkZXN0PSdwbGF0Zm9ybScsCiAgICAgICAgICAgICBjb25z
dD0oJ2d0ayonIGlmIHVzZV9nbG9icyBlbHNlICdndGsnKSwKICAgICAgICAgICAgIGhlbHA9KCdB
bGlhcyBmb3IgLS1wbGF0Zm9ybT1ndGsqJyBpZiB1c2VfZ2xvYnMgZWxzZSAnQWxpYXMgZm9yIC0t
cGxhdGZvcm09Z3RrJykpLApAQCAtNzUsNiArNzgsNyBAQCBkZWYgX2J1aWxkZXJfb3B0aW9ucyhi
dWlsZGVyX25hbWUpOgogY2xhc3MgUG9ydEZhY3Rvcnkob2JqZWN0KToKICAgICBQT1JUX0NMQVNT
RVMgPSAoCiAgICAgICAgICdlZmwuRWZsUG9ydCcsCisgICAgICAgICduaXguTml4UG9ydCcsCiAg
ICAgICAgICdndGsuR3RrUG9ydCcsCiAgICAgICAgICdtYWMuTWFjUG9ydCcsCiAgICAgICAgICdt
b2NrX2RydC5Nb2NrRFJUUG9ydCcsCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvbml4LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L25peC5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wODUwYzA4OGFlM2Q2YzEyMzdjNjJlODAzZTJlNDFkMWQzYjgyZjBkCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L25peC5weQpAQCAtMCwwICsxLDEx
OSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgUHJvRlVTSU9OIEVtYmVkZGVkIFN5c3RlbXMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9u
aWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29y
cG9yYXRpb24KKyMgQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisiIiJXZWJLaXQgTml4IGltcGxlbWVudGF0aW9uIG9m
IHRoZSBQb3J0IGludGVyZmFjZS4iIiIKKworaW1wb3J0IG9zCisKK2Zyb20gd2Via2l0cHkubGF5
b3V0X3Rlc3RzLm1vZGVscy50ZXN0X2NvbmZpZ3VyYXRpb24gaW1wb3J0IFRlc3RDb25maWd1cmF0
aW9uCitmcm9tIHdlYmtpdHB5LnBvcnQuYmFzZSBpbXBvcnQgUG9ydAorZnJvbSB3ZWJraXRweS5w
b3J0LnB1bHNlYXVkaW9fc2FuaXRpemVyIGltcG9ydCBQdWxzZUF1ZGlvU2FuaXRpemVyCisKKwor
Y2xhc3MgTml4UG9ydChQb3J0KToKKyAgICBwb3J0X25hbWUgPSAnbml4JworCisgICAgZGVmIF93
azJfcG9ydF9uYW1lKHNlbGYpOgorICAgICAgICByZXR1cm4gJ25peCcKKworICAgIEBjbGFzc21l
dGhvZAorICAgIGRlZiBkZXRlcm1pbmVfZnVsbF9wb3J0X25hbWUoY2xzLCBob3N0LCBvcHRpb25z
LCBwb3J0X25hbWUpOgorICAgICAgICAiIiJEZXRlcm1pbmUgdGhlIHBvcnQgbmFtZSBiYXNlZCBv
biBob3N0IGFuZCBvcHRpb25zIHZhbHVlcy4iIiIKKyAgICAgICAgIyBDdXJyZW50bHkgdGhlIG9u
bHkgInBvcnQiIGluc3RhbmNlIHN1cHBvcnRlZCBieSBOaXggaXMgIm5peCIuIFJlaW1wbGVtZW50
aW5nCisgICAgICAgICMgdGhpcyBtZXRob2QgYXZvaWRzIGNoYW5naW5nIHBvcnQgbmFtZSB0byBu
aXgtd2syLCB3aGljaCBpcyB0aGUgZGVmYXVsdAorICAgICAgICAjIGJlaGF2aW9yIGluIGJhc2Uu
cHkuCisgICAgICAgIHJldHVybiBwb3J0X25hbWUKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAq
YXJncywgKiprd2FyZ3MpOgorICAgICAgICBzdXBlcihOaXhQb3J0LCBzZWxmKS5fX2luaXRfXygq
YXJncywgKiprd2FyZ3MpCisKKyAgICAgICAgc2VsZi5famhidWlsZF93cmFwcGVyX3BhdGggPSBb
c2VsZi5wYXRoX2Zyb21fd2Via2l0X2Jhc2UoJ1Rvb2xzJywgJ2poYnVpbGQnLCAnamhidWlsZC13
cmFwcGVyJyksICctLW5peCcsICdydW4nXQorCisgICAgICAgIHNlbGYuc2V0X29wdGlvbl9kZWZh
dWx0KCd3cmFwcGVyJywgJyAnLmpvaW4oc2VsZi5famhidWlsZF93cmFwcGVyX3BhdGgpKQorICAg
ICAgICBzZWxmLnNldF9vcHRpb25fZGVmYXVsdCgnd2Via2l0X3Rlc3RfcnVubmVyJywgVHJ1ZSkK
KyAgICAgICAgc2VsZi53ZWJwcm9jZXNzX2NtZF9wcmVmaXggPSBzZWxmLmdldF9vcHRpb24oJ3dl
YnByb2Nlc3NfY21kX3ByZWZpeCcpCisKKyAgICAgICAgc2VsZi5fcHVsc2VhdWRpb19zYW5pdGl6
ZXIgPSBQdWxzZUF1ZGlvU2FuaXRpemVyKCkKKworICAgIGRlZiBfcG9ydF9mbGFnX2Zvcl9zY3Jp
cHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gIi0tbml4IgorCisgICAgZGVmIHNldHVwX3Rlc3Rf
cnVuKHNlbGYpOgorICAgICAgICBzZWxmLl9wdWxzZWF1ZGlvX3Nhbml0aXplci51bmxvYWRfcHVs
c2VhdWRpb19tb2R1bGUoKQorCisgICAgZGVmIHNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihzZWxm
LCBzZXJ2ZXJfbmFtZT1Ob25lKToKKyAgICAgICAgZW52ID0gc3VwZXIoTml4UG9ydCwgc2VsZiku
c2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNlcnZlcl9uYW1lKQorICAgICAgICAjIElmIERJU1BM
QVkgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgdW5zZXQgaW4gdGhlIHN5c3RlbQorICAgICAgICAj
IGUuZy4gb24gYnVpbGQgYm90LCByZW1vdmUgRElTUExBWSB2YXJpYWJsZSBmcm9tIHRoZSBkaWN0
aW9uYXJ5CisgICAgICAgIGlmIG5vdCAnRElTUExBWScgaW4gb3MuZW52aXJvbjoKKyAgICAgICAg
ICAgIGRlbCBlbnZbJ0RJU1BMQVknXQorICAgICAgICBlbnZbJ1RFU1RfUlVOTkVSX0lOSkVDVEVE
X0JVTkRMRV9GSUxFTkFNRSddID0gc2VsZi5fYnVpbGRfcGF0aCgnbGliJywgJ2xpYlRlc3RSdW5u
ZXJJbmplY3RlZEJ1bmRsZS5zbycpCisgICAgICAgIGVudlsnVEVTVF9SVU5ORVJfUExVR0lOX1BB
VEgnXSA9IHNlbGYuX2J1aWxkX3BhdGgoJ2xpYicpCisgICAgICAgIGlmIHNlbGYud2VicHJvY2Vz
c19jbWRfcHJlZml4OgorICAgICAgICAgICAgZW52WydXRUJfUFJPQ0VTU19DTURfUFJFRklYJ10g
PSBzZWxmLndlYnByb2Nlc3NfY21kX3ByZWZpeAorCisgICAgICAgIHJldHVybiBlbnYKKworICAg
IGRlZiBkZWZhdWx0X3RpbWVvdXRfbXMoc2VsZik6CisgICAgICAgICMgVGVzdHMgcnVuIGNvbnNp
ZGVyYWJseSBzbG93ZXIgdW5kZXIgZ2RiCisgICAgICAgICMgb3IgdmFsZ3JpbmQuCisgICAgICAg
IGlmIHNlbGYuZ2V0X29wdGlvbignd2VicHJvY2Vzc19jbWRfcHJlZml4Jyk6CisgICAgICAgICAg
ICByZXR1cm4gMzUwICogMTAwMAorICAgICAgICByZXR1cm4gc3VwZXIoTml4UG9ydCwgc2VsZiku
ZGVmYXVsdF90aW1lb3V0X21zKCkKKworICAgIGRlZiBjbGVhbl91cF90ZXN0X3J1bihzZWxmKToK
KyAgICAgICAgc3VwZXIoTml4UG9ydCwgc2VsZikuY2xlYW5fdXBfdGVzdF9ydW4oKQorICAgICAg
ICBzZWxmLl9wdWxzZWF1ZGlvX3Nhbml0aXplci5yZXN0b3JlX3B1bHNlYXVkaW9fbW9kdWxlKCkK
KworICAgIGRlZiBfZ2VuZXJhdGVfYWxsX3Rlc3RfY29uZmlndXJhdGlvbnMoc2VsZik6CisgICAg
ICAgIHJldHVybiBbVGVzdENvbmZpZ3VyYXRpb24odmVyc2lvbj1zZWxmLl92ZXJzaW9uLCBhcmNo
aXRlY3R1cmU9J3g4NicsIGJ1aWxkX3R5cGU9YnVpbGRfdHlwZSkgZm9yIGJ1aWxkX3R5cGUgaW4g
c2VsZi5BTExfQlVJTERfVFlQRVNdCisKKyAgICBkZWYgX3BhdGhfdG9fZHJpdmVyKHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfcGF0aCgnYmluJywgc2VsZi5kcml2ZXJfbmFtZSgp
KQorCisgICAgZGVmIF9wYXRoX3RvX2ltYWdlX2RpZmYoc2VsZik6CisgICAgICAgIHJldHVybiBz
ZWxmLl9idWlsZF9wYXRoKCdiaW4nLCAnSW1hZ2VEaWZmJykKKworICAgIGRlZiBfaW1hZ2VfZGlm
Zl9jb21tYW5kKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHJldHVybiBzZWxmLl9q
aGJ1aWxkX3dyYXBwZXJfcGF0aCArIHN1cGVyKE5peFBvcnQsIHNlbGYpLl9pbWFnZV9kaWZmX2Nv
bW1hbmQoKmFyZ3MsICoqa3dhcmdzKQorCisgICAgZGVmIF9zZWFyY2hfcGF0aHMoc2VsZik6Cisg
ICAgICAgIHJldHVybiBbc2VsZi5wb3J0X25hbWVdCisKKyAgICBkZWYgc2hvd19yZXN1bHRzX2h0
bWxfZmlsZShzZWxmLCByZXN1bHRzX2ZpbGVuYW1lKToKKyAgICAgICAgcnVuX2xhdW5jaGVyX2Fy
Z3MgPSBbImZpbGU6Ly8lcyIgJSByZXN1bHRzX2ZpbGVuYW1lXQorICAgICAgICBzZWxmLl9ydW5f
c2NyaXB0KCJydW4tbGF1bmNoZXIiLCBydW5fbGF1bmNoZXJfYXJncykKKworICAgIGRlZiBfcG9y
dF9zcGVjaWZpY19leHBlY3RhdGlvbnNfZmlsZXMoc2VsZik6CisgICAgICAgIHBhdGhzID0gc2Vs
Zi5fc2VhcmNoX3BhdGhzKCkKKyAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd3ZWJraXRfdGVz
dF9ydW5uZXInKToKKyAgICAgICAgICAgIHBhdGhzLmFwcGVuZCgnd2syJykKKyAgICAgICAgcmV0
dXJuIGxpc3QoKFtzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3Bh
dGgocCksICdUZXN0RXhwZWN0YXRpb25zJykgZm9yIHAgaW4gcGF0aHNdKSkKKworICAgIGRlZiBk
ZWZhdWx0X2Jhc2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYpOgorICAgICAgICByZXR1cm4gbWFwKHNl
bGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoLCBbJ25peCcsICd3azInXSkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9uaXhfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3BvcnQvbml4X3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxMjQ3ZGRhNDRmN2Rh
MTAwNWExOTYxNzE1ZGM1MjVlMTFjOWZkOTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvbml4X3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNjggQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDEyLCAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKS4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyMgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisj
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgT1IKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisj
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyMgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBv
cnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0CitpbXBvcnQgb3MKK2Zyb20gY29weSBpbXBvcnQgZGVl
cGNvcHkKKworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZV9tb2NrIGltcG9y
dCBNb2NrRXhlY3V0aXZlLCBNb2NrRXhlY3V0aXZlMgorZnJvbSB3ZWJraXRweS5jb21tb24uc3lz
dGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKK2Zyb20gd2Via2l0cHkuY29t
bW9uLnN5c3RlbS5zeXN0ZW1ob3N0X21vY2sgaW1wb3J0IE1vY2tTeXN0ZW1Ib3N0Citmcm9tIHdl
YmtpdHB5LnBvcnQgaW1wb3J0IHBvcnRfdGVzdGNhc2UKK2Zyb20gd2Via2l0cHkucG9ydC5uaXgg
aW1wb3J0IE5peFBvcnQKK2Zyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja09w
dGlvbnMKKworCitjbGFzcyBOaXhQb3J0VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6
CisgICAgcG9ydF9uYW1lID0gJ25peCcKKyAgICBwb3J0X21ha2VyID0gTml4UG9ydAorICAgIHNl
YXJjaF9wYXRoc19jYXNlcyA9IFsKKyAgICAgICAgICAgIHsnc2VhcmNoX3BhdGhzJzogWyduaXgn
LCAnd2syJ10sICdvc19uYW1lJzonbGludXgnfV0KKyAgICBleHBlY3RhdGlvbl9maWxlc19jYXNl
cyA9IFsKKyAgICAgICAgeydzZWFyY2hfcGF0aHMnOiBbJycsICduaXgnLCAnd2syJ10sICdvc19u
YW1lJzonbGludXgnfV0KKworICAgIGRlZiBfYXNzZXJ0X3NlYXJjaF9wYXRoKHNlbGYsIHNlYXJj
aF9wYXRocywgb3NfbmFtZSk6CisgICAgICAgIGhvc3QgPSBNb2NrU3lzdGVtSG9zdChvc19uYW1l
PW9zX25hbWUpCisgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydChwb3J0X25hbWU9c2VsZi5w
b3J0X25hbWUsIGhvc3Q9aG9zdCwgb3B0aW9ucz1Nb2NrT3B0aW9ucyh3ZWJraXRfdGVzdF9ydW5u
ZXI9VHJ1ZSkpCisgICAgICAgIGFic29sdXRlX3NlYXJjaF9wYXRocyA9IG1hcChwb3J0Ll93ZWJr
aXRfYmFzZWxpbmVfcGF0aCwgc2VhcmNoX3BhdGhzKQorCisgICAgICAgIHVuaXR0ZXN0LlRlc3RD
YXNlLmFzc2VydEVxdWFsKHNlbGYsIHBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoKSwgYWJzb2x1
dGVfc2VhcmNoX3BhdGhzKQorCisgICAgZGVmIF9hc3NlcnRfZXhwZWN0YXRpb25zX2ZpbGVzKHNl
bGYsIHNlYXJjaF9wYXRocywgb3NfbmFtZSk6CisgICAgICAgIGhvc3QgPSBNb2NrU3lzdGVtSG9z
dChvc19uYW1lPW9zX25hbWUpCisgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydChwb3J0X25h
bWU9c2VsZi5wb3J0X25hbWUsIGhvc3Q9aG9zdCwgb3B0aW9ucz1Nb2NrT3B0aW9ucyh3ZWJraXRf
dGVzdF9ydW5uZXI9VHJ1ZSkpCisgICAgICAgIHVuaXR0ZXN0LlRlc3RDYXNlLmFzc2VydEVxdWFs
KHNlbGYsIHBvcnQuZXhwZWN0YXRpb25zX2ZpbGVzKCksIHNlYXJjaF9wYXRocykKKworICAgIGRl
ZiB0ZXN0X2Jhc2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYpOgorICAgICAgICBmb3IgY2FzZSBpbiBz
ZWxmLnNlYXJjaF9wYXRoc19jYXNlczoKKyAgICAgICAgICAgIHNlbGYuX2Fzc2VydF9zZWFyY2hf
cGF0aCgqKmNhc2UpCisKKyAgICBkZWYgdGVzdF9leHBlY3RhdGlvbnNfZmlsZXMoc2VsZik6Cisg
ICAgICAgIGZvciBjYXNlIGluIHNlbGYuZXhwZWN0YXRpb25fZmlsZXNfY2FzZXM6CisgICAgICAg
ICAgICBleHBlY3RhdGlvbnNfY2FzZSA9IGRlZXBjb3B5KGNhc2UpCisgICAgICAgICAgICBleHBl
Y3RhdGlvbnNfY2FzZVsnc2VhcmNoX3BhdGhzJ10gPSBtYXAobGFtYmRhIHBhdGg6ICcvbW9jay1j
aGVja291dC9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zJyAgaWYgbm90IHBhdGggZWxzZSAn
L21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vJXMvVGVzdEV4cGVjdGF0aW9ucycg
JSAocGF0aCksIGV4cGVjdGF0aW9uc19jYXNlWydzZWFyY2hfcGF0aHMnXSkKKyAgICAgICAgICAg
IHNlbGYuX2Fzc2VydF9leHBlY3RhdGlvbnNfZmlsZXMoKipleHBlY3RhdGlvbnNfY2FzZSkKKwor
ICAgIGRlZiB0ZXN0X2RlZmF1bHRfdGltZW91dF9tcyhzZWxmKToKKyAgICAgICAgdW5pdHRlc3Qu
VGVzdENhc2UuYXNzZXJ0RXF1YWwoc2VsZiwgc2VsZi5tYWtlX3BvcnQob3B0aW9ucz1Nb2NrT3B0
aW9ucyhjb25maWd1cmF0aW9uPSdSZWxlYXNlJykpLmRlZmF1bHRfdGltZW91dF9tcygpLCA4MDAw
MCkKKyAgICAgICAgdW5pdHRlc3QuVGVzdENhc2UuYXNzZXJ0RXF1YWwoc2VsZiwgc2VsZi5tYWtl
X3BvcnQob3B0aW9ucz1Nb2NrT3B0aW9ucyhjb25maWd1cmF0aW9uPSdEZWJ1ZycpKS5kZWZhdWx0
X3RpbWVvdXRfbXMoKSwgODAwMDApCmRpZmYgLS1naXQgYS9Ub29scy9qaGJ1aWxkL2poYnVpbGQt
d3JhcHBlciBiL1Rvb2xzL2poYnVpbGQvamhidWlsZC13cmFwcGVyCmluZGV4IGEyOWI2MGMyZjkw
ZjJiYWNkYzE5YzA3ODBlNzQ4NGVjZmY1MzgzZDUuLjhmNTU5OWNmYTIwNTViMTk1NDk5ZmY3YThk
YTZiMDE5Zjk1ZjllMjQgMTAwNzU1Ci0tLSBhL1Rvb2xzL2poYnVpbGQvamhidWlsZC13cmFwcGVy
CisrKyBiL1Rvb2xzL2poYnVpbGQvamhidWlsZC13cmFwcGVyCkBAIC0yLDYgKzIsNyBAQAogIyBD
b3B5cmlnaHQgKEMpIDIwMTEgSWdhbGlhIFMuTC4KICMgQ29weXJpZ2h0IChDKSAyMDEyIEd1c3Rh
dm8gTm9yb25oYSBTaWx2YSA8Z25zQGdub21lLm9yZz4KICMgQ29weXJpZ2h0IChDKSAyMDEyIElu
dGVsIENvcnBvcmF0aW9uCisjIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAjCiAjIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICMgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtOTcs
NiArOTgsOCBAQCBkZWYgZGV0ZXJtaW5lX3BsYXRmb3JtKCk6CiAgICAgICAgIHJldHVybiAiZWZs
IjsKICAgICBpZiAnLS1ndGsnIGluIHN5cy5hcmd2OgogICAgICAgICByZXR1cm4gImd0ayI7Cisg
ICAgaWYgJy0tbml4JyBpbiBzeXMuYXJndjoKKyAgICAgICAgcmV0dXJuICJuaXgiOwogICAgIHJh
aXNlIFZhbHVlRXJyb3IoJ05vIHBsYXRmb3JtIHNwZWNpZmllZCBmb3IgamhidWlsZC13cmFwcGVy
LicpCiAKIApkaWZmIC0tZ2l0IGEvVG9vbHMvbml4L2NvbW1vbi5weSBiL1Rvb2xzL25peC9jb21t
b24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGI4YjY2Mjk0YzcyNDBkOTVmZDhhYmYwZjM0YjRiYWFlNzA3M2U0
OQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL25peC9jb21tb24ucHkKQEAgLTAsMCArMSwzMiBA
QAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5M
LgorIyBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMK
KyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24s
IE1BICAwMjExMC0xMzAxICBVU0EKKworaW1wb3J0IG9zCisKK3NjcmlwdF9kaXIgPSBOb25lCisK
KworZGVmIHNjcmlwdF9wYXRoKCphcmdzKToKKyAgICBnbG9iYWwgc2NyaXB0X2RpcgorICAgIGlm
IG5vdCBzY3JpcHRfZGlyOgorICAgICAgICBzY3JpcHRfZGlyID0gb3MucGF0aC5qb2luKG9zLnBh
dGguZGlybmFtZShfX2ZpbGVfXyksICcuLicsICdTY3JpcHRzJykKKyAgICByZXR1cm4gb3MucGF0
aC5qb2luKCooc2NyaXB0X2RpciwpICsgYXJncykKKworCitkZWYgdG9wX2xldmVsX3BhdGgoKmFy
Z3MpOgorICAgIHJldHVybiBvcy5wYXRoLmpvaW4oKigoc2NyaXB0X3BhdGgoJy4uJywgJy4uJyks
KSArIGFyZ3MpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvbml4L2poYnVpbGQubW9kdWxlcyBiL1Rvb2xz
L25peC9qaGJ1aWxkLm1vZHVsZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTY5ODJhNDQwZjM0NmExZjc3MDk2MmUy
ZDc2Yjg5YTlhYzUzZmJhMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL25peC9qaGJ1aWxkLm1v
ZHVsZXMKQEAgLTAsMCArMSwxMTggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBF
IG1vZHVsZXNldCBTWVNURU0gIm1vZHVsZXNldC5kdGQiPgorPD94bWwtc3R5bGVzaGVldCB0eXBl
PSJ0ZXh0L3hzbCIgaHJlZj0ibW9kdWxlc2V0LnhzbCI/PgorPG1vZHVsZXNldD4KKworICA8bWV0
YW1vZHVsZSBpZD0id2Via2l0bml4LXRlc3RpbmctZGVwZW5kZW5jaWVzIj4KKyAgICA8ZGVwZW5k
ZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJjYWlybyIvPgorICAgICAgPGRlcCBwYWNrYWdl
PSJmb250cyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJmb250Y29uZmlnIi8+CisgICAgICA8ZGVw
IHBhY2thZ2U9ImZyZWV0eXBlNiIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJoYXJmYnV6eiIvPgor
ICAgICAgPGRlcCBwYWNrYWdlPSJnbGliIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWItbmV0
d29ya2luZyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJsaWJzb3VwIi8+CisgICAgPC9kZXBlbmRl
bmNpZXM+CisgIDwvbWV0YW1vZHVsZT4KKworICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBu
YW1lPSJnaXRodWIuY29tIgorICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tIi8+CisgIDxy
ZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9InNvdXJjZXdhcmUub3JnIgorICAgICAgaHJl
Zj0iZnRwOi8vc291cmNld2FyZS5vcmciLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIg
bmFtZT0iZnRwLmdub21lLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9mdHAuZ25vbWUub3JnIi8+
CisgIDxyZXBvc2l0b3J5IHR5cGU9ImdpdCIgbmFtZT0iZ2l0Lmdub21lLm9yZyIKKyAgICAgIGhy
ZWY9ImdpdDovL2dpdC5nbm9tZS5vcmcvIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwi
IG5hbWU9ImNhaXJvZ3JhcGhpY3Mub3JnIgorICAgICAgaHJlZj0iaHR0cDovL2NhaXJvZ3JhcGhp
Y3Mub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImZyZWVkZXNrdG9w
Lm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnIi8+CisgIDxyZXBv
c2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9InNhdmFubmFoLm9yZyIKKyAgICAgIGhyZWY9Imh0
dHA6Ly9kb3dubG9hZC5zYXZhbm5haC5nbnUub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9Imdp
dCIgbmFtZT0iZ2l0LmdpdGh1Yi5jb20iCisgICAgICBocmVmPSJnaXQ6Ly9naXRodWIuY29tIi8+
CisKKyAgPGF1dG90b29scyBpZD0iY2Fpcm8iIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIKKyAgICAg
ICAgICAgICBtYWtlYXJncz0iQ0ZMQUdTPS1mbm8tbHRvIENYWEZMQUdTPS1mbm8tbHRvIExERkxB
R1M9LWZuby1sdG8iPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZv
bnRjb25maWciLz4KKyAgICAgIDxkZXAgcGFja2FnZT0icGl4bWFuIi8+CisgICAgPC9kZXBlbmRl
bmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9InJlbGVhc2VzL2NhaXJvLTEuMTIuOC50YXIueHoi
IHZlcnNpb249IjEuMTIuOCIKKyAgICAgICAgICAgIHJlcG89ImNhaXJvZ3JhcGhpY3Mub3JnIgor
ICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjhmYmI2ZmM2NjExN2FiNDEwMGJhZDgzMGNiNDQ3OTQ5
N2U1M2M2ZjNmYWNiOThiZjA1YzhkMjk4NTU0ZWJkZDkiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAg
PGF1dG90b29scyBpZD0icGl4bWFuIiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiCisgICAgICAgICAg
ICAgYXV0b2dlbmFyZ3M9Ii0tZW5hYmxlLWd0az1ubyI+CisgICAgPGJyYW5jaCBtb2R1bGU9InNu
YXBzaG90cy9waXhtYW4tMC4yOS4yLnRhci5neiIgdmVyc2lvbj0iMC4yOS4yIgorICAgICAgICAg
ICAgcmVwbz0iY2Fpcm9ncmFwaGljcy5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6NGM0
ZTkyMTQzYTQ1NTdhNDYxN2I4MGNhZjBhNThjY2IwMTJkODI5Mzc0MWU3NTM4OTAzN2NkNTEzM2Iz
MzVkYiIvPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJmb250cyIgc2tpcC1h
dXRvZ2VuPSJ0cnVlIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0iZG93bmxvYWRzL21yb2JpbnNvbi93
ZWJraXRndGstdGVzdC1mb250cy93ZWJraXRndGstdGVzdC1mb250cy0wLjAuMy50YXIuZ3oiIHZl
cnNpb249IjAuMC4zIgorICAgICAgICAgICAgcmVwbz0iZ2l0aHViLmNvbSIKKyAgICAgICAgICAg
IGhhc2g9InNoYTI1Njo0YTBhMDFmMDA4NTU5OTdjZGNjNzIwMWYxNjRiMzNhNGU0MTQ0ZThlYWRm
NDBhNWU1NDJhMWM0NDhlMDM1ZGU1Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMg
aWQ9ImxpYmZmaSIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0i
L3B1Yi9saWJmZmkvbGliZmZpLTMuMC4xMS50YXIuZ3oiIHZlcnNpb249IjMuMC4xMSIKKyAgICAg
ICAgICAgICByZXBvPSJzb3VyY2V3YXJlLm9yZyIKKyAgICAgICAgICAgICBoYXNoPSJzaGEyNTY6
NzBiZmIwMTM1NjM2MDA4OWFhOTdkM2U3MWUzZWRmMDVkMTk1NTk5ZmQ4MjJlOTIyZTUwZDQ2YTAw
NTVhNjI4MyIvPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJmcmVldHlwZTYi
IGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSI+CisgICAgPGJyYW5jaCBtb2R1bGU9InJlbGVhc2VzL2Zy
ZWV0eXBlL2ZyZWV0eXBlLTIuNC4yLnRhci5iejIiIHZlcnNpb249IjIuNC4yIgorICAgICAgICAg
ICAgcmVwbz0ic2F2YW5uYWgub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjlhOTg3YWVm
OGM1MGQ5YmNmZGZkYzlmMDEyZjhiZDBkZTYwOTVjYzFhNTUyNGU2MmMxYTAzN2RlYjhkYWNiZmUi
Lz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ2xpYiIKKyAgICAgICAgICAg
ICBhdXRvZ2VuLXNoPSJjb25maWd1cmUiCisgICAgICAgICAgICAgYXV0b2dlbmFyZ3M9Ii0tZGlz
YWJsZS1kdHJhY2UiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9Imxp
YmZmaSIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSIvcHViL0dO
T01FL3NvdXJjZXMvZ2xpYi8yLjM4L2dsaWItMi4zOC4wLnRhci54eiIgdmVyc2lvbj0iMi4zOC4w
IgorICAgICAgICAgICAgcmVwbz0iZnRwLmdub21lLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNo
YTI1Njo3NTEzYTdkZTVlODE0Y2NiNDgyMDYzNDBhODc3M2VhNTIzZDZhN2JmMDRkYzc0NTY1ZGU2
OWI4OTliYzJmZjMyIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdsaWIt
bmV0d29ya2luZyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ2xp
YiIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSIvcHViL0dOT01F
L3NvdXJjZXMvZ2xpYi1uZXR3b3JraW5nLzIuMzMvZ2xpYi1uZXR3b3JraW5nLTIuMzMuMi50YXIu
eHoiIHZlcnNpb249IjIuMzMuMiIKKyAgICAgICAgICAgIHJlcG89ImZ0cC5nbm9tZS5vcmciCisg
ICAgICAgICAgICBoYXNoPSJzaGEyNTY6ZTI5OGNmZjM5MzVlYjc1MmJlMjkwYmJmNzM0ZTQ1N2Yx
ODcwYmRiNTM3MGVlMjkyNjA2ZTYwNDBhODIwNzRlNyIvPgorICA8L2F1dG90b29scz4KKworICA8
YXV0b3Rvb2xzIGlkPSJsaWJzb3VwIgorICAgICAgICAgICAgIGF1dG9nZW5hcmdzPSItLXdpdGhv
dXQtZ25vbWUgLS1kaXNhYmxlLWludHJvc3BlY3Rpb24iPgorICAgIDxkZXBlbmRlbmNpZXM+Cisg
ICAgICA8ZGVwIHBhY2thZ2U9ImdsaWItbmV0d29ya2luZyIvPgorICAgIDwvZGVwZW5kZW5jaWVz
PgorICAgIDxicmFuY2ggbW9kdWxlPSIvcHViL0dOT01FL3NvdXJjZXMvbGlic291cC8yLjQyL2xp
YnNvdXAtMi40Mi4wLnRhci54eiIgdmVyc2lvbj0iMi40Mi4wIgorICAgICAgICAgICAgcmVwbz0i
ZnRwLmdub21lLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1Njo5ZTBlN2ViNWQzZjc0MDFj
Y2Y1MjFmYmMyODlmYzFmYTA5MjNiN2M3ODMzNzI5ZTJlZDc2OTZmN2I4NDg4OTNlIi8+CisgIDwv
YXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImZvbnRjb25maWciIGF1dG9nZW4tc2g9ImNv
bmZpZ3VyZSI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZnJlZXR5
cGU2Ii8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9InNvZnR3YXJl
L2ZvbnRjb25maWcvcmVsZWFzZS9mb250Y29uZmlnLTIuOC4wLnRhci5neiIgdmVyc2lvbj0iMi44
LjAiCisgICAgICAgICAgICByZXBvPSJmcmVlZGVza3RvcC5vcmciCisgICAgICAgICAgICBoYXNo
PSJzaGEyNTY6ZmEyYTFjNmVlYTY1NGQ5ZmNlN2E0YjEyMjBmMTBjOTljZGVjODQ4ZGNjYWYxNjI1
YzAxZjA3NmIzMTM4MjMzNSIvPgorICA8L2F1dG90b29scz4KKworIDxhdXRvdG9vbHMgaWQ9Imhh
cmZidXp6IiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiPgorICAgPGJyYW5jaCBtb2R1bGU9InNvZnR3
YXJlL2hhcmZidXp6L3JlbGVhc2UvaGFyZmJ1enotMC45LjE0LnRhci5iejIiIHZlcnNpb249IjAu
OS4xNCIKKyAgICAgICAgICAgY2hlY2tvdXRkaXI9ImhhcmZidXp6LTAuOS4xNCIKKyAgICAgICAg
ICAgcmVwbz0iZnJlZWRlc2t0b3Aub3JnIgorICAgICAgICAgICBoYXNoPSJzaGEyNTY6ZDA3YzBm
ZmRiYmJmZGZiYjZjNjVlNzNmZTljNzY0NjZlODdkYmYwNGIwOTRjYmQwYWJmNWZkN2Q1NzFhNDAw
NCIvPgorICAgPC9hdXRvdG9vbHM+CisKKzwvbW9kdWxlc2V0PgpkaWZmIC0tZ2l0IGEvVG9vbHMv
bml4L2poYnVpbGRyYyBiL1Rvb2xzL25peC9qaGJ1aWxkcmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzU1NTJjYWVh
NTExNmUwOGUzNTk4MTgwYTA1MWE3ZDQxN2FkMDQ0MAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L25peC9qaGJ1aWxkcmMKQEAgLTAsMCArMSw3MiBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisj
IENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgorIyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50
ZWwgQ29ycG9yYXRpb24KKyMgQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
IyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisjCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg
U29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisKK2ltcG9ydCBtdWx0aXByb2Nlc3Np
bmcKK2ltcG9ydCBzeXMKK2ltcG9ydCBvcworCitfX25peF90b29sc19kaXJlY3RvcnkgPSBvcy5w
YXRoLmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKK3N5cy5wYXRoID0gW19fbml4
X3Rvb2xzX2RpcmVjdG9yeV0gKyBzeXMucGF0aAoraW1wb3J0IGNvbW1vbgorCitidWlsZF9wb2xp
Y3kgPSAndXBkYXRlZCcKKworIyBGSVhNRTogbW92ZSBzaGFyZWQgcGFydHMgaW50byAuLi9qaGJ1
aWxkIGZvbGRlci4KKworX19tb2R1bGVzZXRfZmlsZV91cmkgPSAnZmlsZTovLycgKyBvcy5wYXRo
LmpvaW4oX19uaXhfdG9vbHNfZGlyZWN0b3J5LCAnamhidWlsZC5tb2R1bGVzJykKK19fZXh0cmFf
bW9kdWxlc2V0cyA9IG9zLmVudmlyb24uZ2V0KCJXRUJLSVRfRVhUUkFfTU9EVUxFU0VUUyIsICIi
KS5zcGxpdCgiLCIpCittb2R1bGVzZXQgPSBbIF9fbW9kdWxlc2V0X2ZpbGVfdXJpLCBdCitpZiBf
X2V4dHJhX21vZHVsZXNldHMgIT0gWycnXToKKyAgICBtb2R1bGVzZXQuZXh0ZW5kKF9fZXh0cmFf
bW9kdWxlc2V0cykKKworX19leHRyYV9tb2R1bGVzID0gb3MuZW52aXJvbi5nZXQoIldFQktJVF9F
WFRSQV9NT0RVTEVTIiwgIiIpLnNwbGl0KCIsIikKK21vZHVsZXMgPSBbICd3ZWJraXRuaXgtdGVz
dGluZy1kZXBlbmRlbmNpZXMnLCBdCitpZiBfX2V4dHJhX21vZHVsZXMgIT0gWycnXToKKyAgICBt
b2R1bGVzLmV4dGVuZChfX2V4dHJhX21vZHVsZXMpCisKK2lmIG9zLmVudmlyb24uaGFzX2tleSgn
V0VCS0lUX09VVFBVVERJUicpOgorICAgIGNoZWNrb3V0cm9vdCA9IG9zLnBhdGguYWJzcGF0aChv
cy5wYXRoLmpvaW4ob3MuZW52aXJvblsnV0VCS0lUX09VVFBVVERJUiddLCAnRGVwZW5kZW5jaWVz
JywgJ1NvdXJjZScpKQorICAgIHByZWZpeCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4o
b3MuZW52aXJvblsnV0VCS0lUX09VVFBVVERJUiddLCAnRGVwZW5kZW5jaWVzJywgJ1Jvb3QnKSkK
K2Vsc2U6CisgICAgY2hlY2tvdXRyb290ID0gb3MucGF0aC5hYnNwYXRoKGNvbW1vbi50b3BfbGV2
ZWxfcGF0aCgnV2ViS2l0QnVpbGQnLCdEZXBlbmRlbmNpZXMnLCAnU291cmNlJykpCisgICAgcHJl
Zml4ID0gb3MucGF0aC5hYnNwYXRoKGNvbW1vbi50b3BfbGV2ZWxfcGF0aCgnV2ViS2l0QnVpbGQn
LCdEZXBlbmRlbmNpZXMnLCAnUm9vdCcpKQorCitub25vdGlmeSA9IFRydWUKK25vdHJheWljb24g
PSBUcnVlCitpZiAnTUFLRUZMQUdTJyBub3QgaW4gb3MuZW52aXJvbjoKKyAgICBvcy5lbnZpcm9u
WydNQUtFRkxBR1MnXSA9ICctaiVkJyAlIG11bHRpcHJvY2Vzc2luZy5jcHVfY291bnQoKQorCisj
IFVzZSBzeXN0ZW0gbGlicmFyaWVzIHdoaWxlIGJ1aWxkaW5nLgoraWYgdXNlX2xpYjY0OgorICAg
IF9saWJkaXIgPSAnbGliNjQnCitlbHNlOgorICAgIF9saWJkaXIgPSAnbGliJworYWRkcGF0aCgn
UEtHX0NPTkZJR19QQVRIJywgb3MucGF0aC5qb2luKG9zLnNlcCwgJ3VzcicsIF9saWJkaXIsICdw
a2djb25maWcnKSkKK2FkZHBhdGgoJ1BLR19DT05GSUdfUEFUSCcsIG9zLnBhdGguam9pbihvcy5z
ZXAsICd1c3InLCAnc2hhcmUnLCAncGtnY29uZmlnJykpCisKK2FkZHBhdGgoJ1hER19EQVRBX0RJ
UlMnLCAnL3Vzci9zaGFyZScpCithZGRwYXRoKCdYREdfQ09ORklHX0RJUlMnLCAnL2V0Yy94ZGcn
KQorCisjIEF2b2lkIG92ZXJsYXBwaW5nIHNlYXJjaCBwYXRoIENNQUtFIHdhcm5pbmcgb24gNjRi
aXQgc3lzdGVtcy4KK2lmICh1c2VfbGliNjQpOgorICAgIGFkZHBhdGgoJ0NNQUtFX1BSRUZJWF9Q
QVRIJywgb3MucGF0aC5qb2luKG9zLnNlcCwgcHJlZml4LCAnbGliNjQnKSkKK2Vsc2U6CisgICAg
YWRkcGF0aCgnQ01BS0VfUFJFRklYX1BBVEgnLCBwcmVmaXgpCisKK3BhcnRpYWxfYnVpbGQgPSBG
YWxzZQpkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAppbmRleCAx
MGY4NTA1NWFlOWYzODIzZjBkMjA4MDg1OTlmNjQ0YzE4YWY3OTIxLi4yNjRiZjQ3OTg1Nzk3YTkz
ZTYyNTk0MDBhNzgyYjY2MzQ0NDA2MjQyIDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9DTWFrZUxpc3RzLnR4dApAQCAtMTAsNiArMTAsNyBAQCBzZXQoV0VCQ09SRV9ESVIgIiR7Q01B
S0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkNvcmUiKQogc2V0KFdFQktJVF9ESVIgIiR7Q01BS0Vf
U09VUkNFX0RJUn0vU291cmNlL1dlYktpdCIpCiBzZXQoV0VCS0lUMl9ESVIgIiR7Q01BS0VfU09V
UkNFX0RJUn0vU291cmNlL1dlYktpdDIiKQogc2V0KFRISVJEUEFSVFlfRElSICIke0NNQUtFX1NP
VVJDRV9ESVJ9L1NvdXJjZS9UaGlyZFBhcnR5IikKK3NldChQTEFURk9STV9ESVIgIiR7Q01BS0Vf
U09VUkNFX0RJUn0vU291cmNlL1BsYXRmb3JtIikKIAogc2V0KFRPT0xTX0RJUiAiJHtDTUFLRV9T
T1VSQ0VfRElSfS9Ub29scyIpCiAKQEAgLTM5LDcgKzQwLDcgQEAgaW5jbHVkZShXZWJLaXRGZWF0
dXJlcykKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgRGV0ZXJtaW5lIHdoaWNoIHBvcnQgd2ls
bCBiZSBidWlsdAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotc2V0KEFMTF9QT1JUUyBFZmwgV2lu
Q0UgQmxhY2tCZXJyeSBHVEspCitzZXQoQUxMX1BPUlRTIEVmbCBXaW5DRSBCbGFja0JlcnJ5IEdU
SyBOaXgpCiBzZXQoUE9SVCAiTk9QT1JUIiBDQUNIRSBTVFJJTkcgImNob29zZSB3aGljaCBXZWJL
aXQgcG9ydCB0byBidWlsZCAob25lIG9mICR7QUxMX1BPUlRTfSkiKQogCiBsaXN0KEZJTkQgQUxM
X1BPUlRTICR7UE9SVH0gUkVUKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmlu
ZGV4IDBiYTM5MzhhNjRiMDIwZjlhZDdmOTIwYjZjNjIwYTU2NmIwOGRhNjUuLjk0YmVkYTY4MTM5
OTMwY2JkNjAyMzIxMjdjYzRhOGJjMTI4MmVjZTMgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysg
Yi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0xMS0yNSAgTWFyY2VsbyBMaXJhICA8
bWFyY2Vsby5saXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgTml4IHVwc3RyZWFtaW5nIC0g
QWRkaW5nIGJ1aWxkIGZpbGVzIGFuZCBzdXBwb3J0aW5nIHNjcmlwdHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM2NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogU291cmNlL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9GaW5k
RUdMLmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9GaW5kT3BlbkdMRVMyLmNtYWtlOiBB
ZGRlZC4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0NvbW1vbi5jbWFrZToKKyAgICAg
ICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc05peC5jbWFrZTogQWRkZWQuCisKIDIwMTMtMTEtMjUg
IFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIFVz
ZSBDb25maWcgbW9kZSBvZiBmaW5kX3BhY2thZ2UgZm9yIEVGTCAxLjgK
</data>

          </attachment>
      

    </bug>

</bugzilla>