<?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>109331</bug_id>
          
          <creation_ts>2013-02-08 16:03:36 -0800</creation_ts>
          <short_desc>EXT_draw_buffers needs implementation</short_desc>
          <delta_ts>2013-03-01 08:30:42 -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>WebGL</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>http://www.khronos.org/registry/webgl/extensions/EXT_draw_buffers/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>111093</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Remi Arnaud">Remi.Arnaud</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>abarth</cc>
    
    <cc>bajones</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>cmarrin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fishd</cc>
    
    <cc>gman</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>kbr</cc>
    
    <cc>noam</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>828816</commentid>
    <comment_count>0</comment_count>
    <who name="Remi Arnaud">Remi.Arnaud</who>
    <bug_when>2013-02-08 16:03:36 -0800</bug_when>
    <thetext>EXT_draw_buffers (see URL) is in Draft stage, and is awaiting implementation to enable the community to review the extension.

EXT_draw_buffers in used in deferred rendering techniques, enabling many light sources to be used to greatly enhance the quality of the scene. Many developers are looking forward to this extension in order to enable them to provide rendering quality on par with what the device can do with native applications.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831394</commentid>
    <comment_count>1</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2013-02-12 16:22:22 -0800</bug_when>
    <thetext>I&apos;ll take this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842295</commentid>
    <comment_count>2</comment_count>
      <attachid>190346</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2013-02-26 13:06:54 -0800</bug_when>
    <thetext>Created attachment 190346
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842334</commentid>
    <comment_count>3</comment_count>
      <attachid>190354</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2013-02-26 13:52:46 -0800</bug_when>
    <thetext>Created attachment 190354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842344</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 13:56:51 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842347</commentid>
    <comment_count>5</comment_count>
      <attachid>190354</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-26 13:58:38 -0800</bug_when>
    <thetext>Comment on attachment 190354
Patch

Attachment 190354 did not pass qt-wk2-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/16777419</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842353</commentid>
    <comment_count>6</comment_count>
      <attachid>190354</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-26 14:01:18 -0800</bug_when>
    <thetext>Comment on attachment 190354
Patch

Attachment 190354 did not pass qt-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/16770487</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842362</commentid>
    <comment_count>7</comment_count>
      <attachid>190354</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-26 14:17:16 -0800</bug_when>
    <thetext>Comment on attachment 190354
Patch

Attachment 190354 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/16771446</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842372</commentid>
    <comment_count>8</comment_count>
      <attachid>190363</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2013-02-26 14:30:15 -0800</bug_when>
    <thetext>Created attachment 190363
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842378</commentid>
    <comment_count>9</comment_count>
      <attachid>190363</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-26 14:36:19 -0800</bug_when>
    <thetext>Comment on attachment 190363
Patch

Attachment 190363 did not pass qt-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/16772505</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842386</commentid>
    <comment_count>10</comment_count>
      <attachid>190363</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-26 14:42:00 -0800</bug_when>
    <thetext>Comment on attachment 190363
Patch

Attachment 190363 did not pass qt-wk2-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/16780414</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842392</commentid>
    <comment_count>11</comment_count>
      <attachid>190366</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2013-02-26 14:49:31 -0800</bug_when>
    <thetext>Created attachment 190366
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842413</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 15:05:07 -0800</bug_when>
    <thetext>Attachment 190366 did not pass style-queue:

Source/WebCore/platform/graphics/Extensions3D.h:154:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:157:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:158:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:159:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:160:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:161:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:162:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:163:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:164:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:165:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:166:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:167:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:168:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:169:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:170:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:171:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:172:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:173:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:174:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:175:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:176:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:177:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:178:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:179:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:180:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:181:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:182:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platFailed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/Platform/ChangeLog&apos;, u&apos;Source/Platform/chromium/public/WebGraphicsContext3D.h&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/DerivedSources.make&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/Target.pri&apos;, u&apos;Source/WebCore/WebCore.gypi&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp&apos;, u&apos;Source/WebCore/bindings/v8/V8Binding.h&apos;, u&apos;Source/WebCore/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp&apos;, u&apos;Source/WebCore/html/canvas/EXTDrawBuffers.cpp&apos;, u&apos;Source/WebCore/html/canvas/EXTDrawBuffers.h&apos;, u&apos;Source/WebCore/html/canvas/EXTDrawBuffers.idl&apos;, u&apos;Source/WebCore/html/canvas/WebGLExtension.h&apos;, u&apos;Source/WebCore/html/canvas/WebGLFramebuffer.cpp&apos;, u&apos;Source/WebCore/html/canvas/WebGLFramebuffer.h&apos;, u&apos;Source/WebCore/html/canvas/WebGLRenderingContext.cpp&apos;, u&apos;Source/WebCore/html/canvas/WebGLRenderingContext.h&apos;, u&apos;Source/WebCore/platform/chromium/support/Extensions3DChromium.cpp&apos;, u&apos;Source/WebCore/platform/graphics/Extensions3D.h&apos;, u&apos;Source/WebCore/platform/graphics/GraphicsContext3D.cpp&apos;, u&apos;Source/WebCore/platform/graphics/chromium/Extensions3DChromium.h&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.cpp&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.h&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.h&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLES.cpp&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLES.h&apos;]&quot; exit_code: 1
form/graphics/Extensions3D.h:183:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:184:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:185:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:186:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:187:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:188:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:189:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:190:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 35 in 30 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>842419</commentid>
    <comment_count>13</comment_count>
      <attachid>190370</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2013-02-26 15:08:41 -0800</bug_when>
    <thetext>Created attachment 190370
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842423</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 15:13:53 -0800</bug_when>
    <thetext>Attachment 190370 did not pass style-queue:

Source/WebCore/platform/graphics/Extensions3D.h:154:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:157:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:158:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:159:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:160:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:161:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:162:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:163:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:164:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:165:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:166:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:167:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:168:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:169:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:170:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:171:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:172:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:173:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:174:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:175:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:176:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:177:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:178:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:179:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:180:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:181:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:182:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platFailed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/Platform/ChangeLog&apos;, u&apos;Source/Platform/chromium/public/WebGraphicsContext3D.h&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/DerivedSources.make&apos;, u&apos;Source/WebCore/DerivedSources.pri&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/Target.pri&apos;, u&apos;Source/WebCore/WebCore.gypi&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp&apos;, u&apos;Source/WebCore/bindings/v8/V8Binding.h&apos;, u&apos;Source/WebCore/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp&apos;, u&apos;Source/WebCore/html/canvas/EXTDrawBuffers.cpp&apos;, u&apos;Source/WebCore/html/canvas/EXTDrawBuffers.h&apos;, u&apos;Source/WebCore/html/canvas/EXTDrawBuffers.idl&apos;, u&apos;Source/WebCore/html/canvas/WebGLExtension.h&apos;, u&apos;Source/WebCore/html/canvas/WebGLFramebuffer.cpp&apos;, u&apos;Source/WebCore/html/canvas/WebGLFramebuffer.h&apos;, u&apos;Source/WebCore/html/canvas/WebGLRenderingContext.cpp&apos;, u&apos;Source/WebCore/html/canvas/WebGLRenderingContext.h&apos;, u&apos;Source/WebCore/platform/chromium/support/Extensions3DChromium.cpp&apos;, u&apos;Source/WebCore/platform/graphics/Extensions3D.h&apos;, u&apos;Source/WebCore/platform/graphics/GraphicsContext3D.cpp&apos;, u&apos;Source/WebCore/platform/graphics/chromium/Extensions3DChromium.h&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.cpp&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.h&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.h&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLES.cpp&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLES.h&apos;]&quot; exit_code: 1
form/graphics/Extensions3D.h:183:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:184:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:185:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:186:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:187:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:188:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:189:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:190:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 35 in 31 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>842510</commentid>
    <comment_count>15</comment_count>
      <attachid>190391</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2013-02-26 16:42:26 -0800</bug_when>
    <thetext>Created attachment 190391
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842514</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 16:47:03 -0800</bug_when>
    <thetext>Attachment 190391 did not pass style-queue:

Source/WebCore/platform/graphics/Extensions3D.h:154:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:157:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:158:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:159:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:160:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:161:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:162:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:163:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:164:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:165:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:166:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:167:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:168:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:169:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:170:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:171:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:172:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:173:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:174:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:175:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:176:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:177:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:178:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:179:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:180:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:181:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:182:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platFailed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/Platform/ChangeLog&apos;, u&apos;Source/Platform/chromium/public/WebGraphicsContext3D.h&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/DerivedSources.make&apos;, u&apos;Source/WebCore/DerivedSources.pri&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/Target.pri&apos;, u&apos;Source/WebCore/WebCore.gypi&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp&apos;, u&apos;Source/WebCore/bindings/v8/V8Binding.h&apos;, u&apos;Source/WebCore/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp&apos;, u&apos;Source/WebCore/html/canvas/EXTDrawBuffers.cpp&apos;, u&apos;Source/WebCore/html/canvas/EXTDrawBuffers.h&apos;, u&apos;Source/WebCore/html/canvas/EXTDrawBuffers.idl&apos;, u&apos;Source/WebCore/html/canvas/WebGLExtension.h&apos;, u&apos;Source/WebCore/html/canvas/WebGLFramebuffer.cpp&apos;, u&apos;Source/WebCore/html/canvas/WebGLFramebuffer.h&apos;, u&apos;Source/WebCore/html/canvas/WebGLRenderingContext.cpp&apos;, u&apos;Source/WebCore/html/canvas/WebGLRenderingContext.h&apos;, u&apos;Source/WebCore/platform/chromium/support/Extensions3DChromium.cpp&apos;, u&apos;Source/WebCore/platform/graphics/Extensions3D.h&apos;, u&apos;Source/WebCore/platform/graphics/GraphicsContext3D.cpp&apos;, u&apos;Source/WebCore/platform/graphics/chromium/Extensions3DChromium.h&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.cpp&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.h&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.h&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLES.cpp&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLES.h&apos;]&quot; exit_code: 1
form/graphics/Extensions3D.h:183:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:184:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:185:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:186:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:187:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:188:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:189:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:190:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 35 in 31 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>842541</commentid>
    <comment_count>17</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2013-02-26 17:09:42 -0800</bug_when>
    <thetext>gtk failure: execvp: ../../Source/WebCore/html/canvas/EXTDrawBuffers.idl: Permission denied

anyone knows how to fix this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843192</commentid>
    <comment_count>18</comment_count>
      <attachid>190550</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2013-02-27 10:00:20 -0800</bug_when>
    <thetext>Created attachment 190550
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843197</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-27 10:04:22 -0800</bug_when>
    <thetext>Attachment 190550 did not pass style-queue:

Source/WebCore/platform/graphics/Extensions3D.h:154:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:157:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:158:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:159:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:160:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:161:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:162:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:163:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:164:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:165:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:166:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:167:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:168:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:169:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:170:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:171:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:172:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:173:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:174:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:175:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:176:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:177:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:178:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:179:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:180:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:181:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:182:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platFailed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/DerivedSources.make&apos;, u&apos;Source/WebCore/DerivedSources.pri&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/Target.pri&apos;, u&apos;Source/WebCore/WebCore.gypi&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp&apos;, u&apos;Source/WebCore/bindings/v8/V8Binding.h&apos;, u&apos;Source/WebCore/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp&apos;, u&apos;Source/WebCore/html/canvas/EXTDrawBuffers.cpp&apos;, u&apos;Source/WebCore/html/canvas/EXTDrawBuffers.h&apos;, u&apos;Source/WebCore/html/canvas/EXTDrawBuffers.idl&apos;, u&apos;Source/WebCore/html/canvas/WebGLExtension.h&apos;, u&apos;Source/WebCore/html/canvas/WebGLFramebuffer.cpp&apos;, u&apos;Source/WebCore/html/canvas/WebGLFramebuffer.h&apos;, u&apos;Source/WebCore/html/canvas/WebGLRenderingContext.cpp&apos;, u&apos;Source/WebCore/html/canvas/WebGLRenderingContext.h&apos;, u&apos;Source/WebCore/platform/chromium/support/Extensions3DChromium.cpp&apos;, u&apos;Source/WebCore/platform/graphics/Extensions3D.h&apos;, u&apos;Source/WebCore/platform/graphics/GraphicsContext3D.cpp&apos;, u&apos;Source/WebCore/platform/graphics/chromium/Extensions3DChromium.h&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.cpp&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.h&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.h&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLES.cpp&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLES.h&apos;]&quot; exit_code: 1
form/graphics/Extensions3D.h:183:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:184:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:185:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:186:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:187:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:188:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:189:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:190:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 35 in 29 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>843206</commentid>
    <comment_count>20</comment_count>
      <attachid>190550</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-27 10:12:44 -0800</bug_when>
    <thetext>Comment on attachment 190550
Patch

Attachment 190550 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/16758149</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843250</commentid>
    <comment_count>21</comment_count>
      <attachid>190555</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2013-02-27 10:48:54 -0800</bug_when>
    <thetext>Created attachment 190555
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843256</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-27 10:53:46 -0800</bug_when>
    <thetext>Attachment 190555 did not pass style-queue:

Source/WebCore/platform/graphics/Extensions3D.h:154:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:157:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:158:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:159:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:160:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:161:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:162:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:163:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:164:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:165:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:166:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:167:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:168:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:169:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:170:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:171:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:172:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:173:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:174:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:175:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:176:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:177:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:178:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:179:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:180:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:181:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:182:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platFailed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/Platform/ChangeLog&apos;, u&apos;Source/Platform/chromium/public/WebGraphicsContext3D.h&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/DerivedSources.make&apos;, u&apos;Source/WebCore/DerivedSources.pri&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/Target.pri&apos;, u&apos;Source/WebCore/WebCore.gypi&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp&apos;, u&apos;Source/WebCore/bindings/v8/V8Binding.h&apos;, u&apos;Source/WebCore/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp&apos;, u&apos;Source/WebCore/html/canvas/EXTDrawBuffers.cpp&apos;, u&apos;Source/WebCore/html/canvas/EXTDrawBuffers.h&apos;, u&apos;Source/WebCore/html/canvas/EXTDrawBuffers.idl&apos;, u&apos;Source/WebCore/html/canvas/WebGLExtension.h&apos;, u&apos;Source/WebCore/html/canvas/WebGLFramebuffer.cpp&apos;, u&apos;Source/WebCore/html/canvas/WebGLFramebuffer.h&apos;, u&apos;Source/WebCore/html/canvas/WebGLRenderingContext.cpp&apos;, u&apos;Source/WebCore/html/canvas/WebGLRenderingContext.h&apos;, u&apos;Source/WebCore/platform/chromium/support/Extensions3DChromium.cpp&apos;, u&apos;Source/WebCore/platform/graphics/Extensions3D.h&apos;, u&apos;Source/WebCore/platform/graphics/GraphicsContext3D.cpp&apos;, u&apos;Source/WebCore/platform/graphics/chromium/Extensions3DChromium.h&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.cpp&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.h&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.h&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLES.cpp&apos;, u&apos;Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLES.h&apos;]&quot; exit_code: 1
form/graphics/Extensions3D.h:183:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:184:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:185:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:186:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:187:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:188:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:189:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/platform/graphics/Extensions3D.h:190:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 35 in 31 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>843602</commentid>
    <comment_count>23</comment_count>
      <attachid>190555</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-02-27 16:17:16 -0800</bug_when>
    <thetext>Comment on attachment 190555
Patch

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

Looks good. r=me with a couple of minor modifications.

&gt; Source/Platform/chromium/public/WebGraphicsContext3D.h:476
&gt; +    virtual void drawBuffersChromium(WGC3Dsizei n, const WGC3Denum* bufs) { }

Capitalization doesn&apos;t follow the naming convention elsewhere in this file. Should either be drawBuffersCHROMIUM or, if semantics don&apos;t differ from EXT_draw_buffers, drawBuffersEXT.

&gt; Source/WebCore/bindings/v8/V8Binding.h:246
&gt; +    // Convert a value to a 32-bit integer. The conversion fails if the

Note to other reviewers: these helpers had to be moved higher in the file to allow &quot;unsigned nativeValue(...)&quot;, below, to be defined. The JSC bindings already exposed this conversion.

&gt; Source/WebCore/html/canvas/EXTDrawBuffers.cpp:53
&gt; +    return adoptPtr(x);

This should just read &quot;adoptPtr(new EXTDrawBuffers(context));&quot;. The point of adoptPtr is to ensure there are no &quot;naked news&quot; in the code base.

&gt; Source/WebCore/html/canvas/EXTDrawBuffers.cpp:78
&gt; +        // Because the backbuffer is simulated we need to change BACK to COLOR_ATTACHMENT0

It&apos;s probably worth saying: &quot;Because the backbuffer is simulated on all current WebKit ports, ...&quot;. Also, please end the comment with a period.

&gt; Source/WebCore/html/canvas/WebGLFramebuffer.cpp:607
&gt; +    for (size_t i = 0; i &lt; m_drawBuffers.size(); i++) {

Please add a comment indicating that this filtering works around graphics driver bugs on Mac OS X. I assume it is sufficient to do so? Also, it&apos;s important that it be possible to disable this workaround at run time so that we can file a Radar about it. Since it looks like that will involve adding a lot of infrastructure, please file another WebKit bug for that and make it depend on this one.

&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:5396
&gt; +    // COLOR_ATTACHMENT0_EXT is equal to COLOR_ATTACHMENT0

Please indent and add period.

&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:5924
&gt; +    if (!m_maxDrawBuffers &amp;&amp; EXTDrawBuffers::supported(this))

Theoretically, this and getMaxColorAttachments should also be calling m_context-&gt;getExtensions()-&gt;ensureEnabled(&quot;GL_EXT_draw_buffers&quot;), but that would really only be needed in the Chromium port and it will work without it, so maybe best not to bother.

&gt;&gt; Source/WebCore/platform/graphics/Extensions3D.h:154
&gt;&gt; +        UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM = 0x9242,
&gt; 
&gt; enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]

Note to other reviewers: the enums in this file follow the OpenGL naming convention, so I&apos;m ignoring the reported style errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844219</commentid>
    <comment_count>24</comment_count>
      <attachid>190555</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2013-02-28 10:47:28 -0800</bug_when>
    <thetext>Comment on attachment 190555
Patch

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

&gt;&gt; Source/Platform/chromium/public/WebGraphicsContext3D.h:476
&gt;&gt; +    virtual void drawBuffersChromium(WGC3Dsizei n, const WGC3Denum* bufs) { }
&gt; 
&gt; Capitalization doesn&apos;t follow the naming convention elsewhere in this file. Should either be drawBuffersCHROMIUM or, if semantics don&apos;t differ from EXT_draw_buffers, drawBuffersEXT.

Use drawBuffersEXT

&gt;&gt; Source/WebCore/html/canvas/EXTDrawBuffers.cpp:53
&gt;&gt; +    return adoptPtr(x);
&gt; 
&gt; This should just read &quot;adoptPtr(new EXTDrawBuffers(context));&quot;. The point of adoptPtr is to ensure there are no &quot;naked news&quot; in the code base.

Done

&gt;&gt; Source/WebCore/html/canvas/EXTDrawBuffers.cpp:78
&gt;&gt; +        // Because the backbuffer is simulated we need to change BACK to COLOR_ATTACHMENT0
&gt; 
&gt; It&apos;s probably worth saying: &quot;Because the backbuffer is simulated on all current WebKit ports, ...&quot;. Also, please end the comment with a period.

Done

&gt;&gt; Source/WebCore/html/canvas/WebGLFramebuffer.cpp:607
&gt;&gt; +    for (size_t i = 0; i &lt; m_drawBuffers.size(); i++) {
&gt; 
&gt; Please add a comment indicating that this filtering works around graphics driver bugs on Mac OS X. I assume it is sufficient to do so? Also, it&apos;s important that it be possible to disable this workaround at run time so that we can file a Radar about it. Since it looks like that will involve adding a lot of infrastructure, please file another WebKit bug for that and make it depend on this one.

Done.  https://bugs.webkit.org/show_bug.cgi?id=111093

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:5396
&gt;&gt; +    // COLOR_ATTACHMENT0_EXT is equal to COLOR_ATTACHMENT0
&gt; 
&gt; Please indent and add period.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844430</commentid>
    <comment_count>25</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2013-02-28 13:37:27 -0800</bug_when>
    <thetext>Committed r144358: &lt;http://trac.webkit.org/changeset/144358&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845200</commentid>
    <comment_count>26</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2013-03-01 08:30:42 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; Committed r144358: &lt;http://trac.webkit.org/changeset/144358&gt;

Build fix in r144459:  &lt;http://trac.webkit.org/changeset/144459&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190346</attachid>
            <date>2013-02-26 13:06:54 -0800</date>
            <delta_ts>2013-02-26 13:52:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109331-20130226130309.patch</filename>
            <type>text/plain</type>
            <size>62127</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ0MDc5KQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEzLTAyLTI2ICBaaGVu
eWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgRVhUX2RyYXdfYnVmZmVycyBuZWVk
cyBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA5MzMxCisKKyAgICAgICAgQWRkIEVYVF9kcmF3X2J1ZmZlcnMgc3VwcG9ydCBm
b3IgY2hyb21pdW0gcG9ydC4KKworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJHcmFwaGlj
c0NvbnRleHQzRC5oOgorICAgICAgICAoV2ViR3JhcGhpY3NDb250ZXh0M0QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6ZHJhd0J1ZmZlcnNDaHJvbWl1bSk6CisKIDIw
MTMtMDItMjYgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
Q3JlYXRlIHRoZSBTaGFyZWRHcmFwaGljc0NvbnRleHQzRCB0aHJvdWdoIGl0cyBvd24gbWV0aG9k
LgpJbmRleDogU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRl
eHQzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
R3JhcGhpY3NDb250ZXh0M0QuaAkocmV2aXNpb24gMTQ0MDAwKQorKysgU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00NzIsNiArNDcyLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhc3luY1RleEltYWdl
MkRDSFJPTUlVTShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbCwgV0dDM0RlbnVtIGlu
dGVybmFsZm9ybWF0LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCwgV0dDM0Rp
bnQgYm9yZGVyLCBXR0MzRGVudW0gZm9ybWF0LCBXR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCog
cGl4ZWxzKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXN5bmNUZXhTdWJJbWFnZTJEQ0hST01JVU0o
V0dDM0RlbnVtIHRhcmdldCwgV0dDM0RpbnQgbGV2ZWwsIFdHQzNEaW50IHhvZmZzZXQsIFdHQzNE
aW50IHlvZmZzZXQsIFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0LCBXR0MzRGVu
dW0gZm9ybWF0LCBXR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKSB7IH0KIAorICAg
IC8vIEdMX0VYVF9kcmF3X2J1ZmZlcnMgLyBHTF9BUkJfZHJhd19idWZmZXJzCisgICAgdmlydHVh
bCB2b2lkIGRyYXdCdWZmZXJzQ2hyb21pdW0oV0dDM0RzaXplaSBuLCBjb25zdCBXR0MzRGVudW0q
IGJ1ZnMpIHsgfQorCiAgICAgLy8gRklYTUU6IE1ha2UgaW1wbGVtZW50YXRpb25zIG9mIHRoaXMg
Y2xhc3Mgb3ZlcnJpZGUgdGhpcyBtZXRob2QgaW5zdGVhZCBhbmQgdGhlbiByZW1vdmUgb25DcmVh
dGVHckdMSW50ZXJmYWNlKCkuCiAgICAgdmlydHVhbCBHckdMSW50ZXJmYWNlKiBjcmVhdGVHckdM
SW50ZXJmYWNlKCkgeyByZXR1cm4gb25DcmVhdGVHckdMSW50ZXJmYWNlKCk7IH0KIApJbmRleDog
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwkocmV2aXNpb24gMTQ0MDc5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOTIgQEAKKzIwMTMtMDItMjYgIFpoZW55YW8gTW8gIDx6
bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBFWFRfZHJhd19idWZmZXJzIG5lZWRzIGltcGxlbWVu
dGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDkzMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgRVhUX2RyYXdfYnVmZmVycyBmb3IgV2ViR0wuCisg
ICAgICAgIG1hYyBPcGVuR0wgcG9ydCBpcyBwYXNzaW5nIGtocm9ub3MgV2ViR0wgY29uZm9ybWFu
Y2UgdGVzdCB3aXRoIHRoaXMgcGF0Y2guIE9wZW5HTCBFUyBwb3J0IGltcGxlbWVudGF0aW9uIGlz
bid0IGFkZGVkIGluIHRoaXMgcGF0Y2guCisgICAgICAgIEFsc28sIGl0IGhhcyB0aGUgV2ViS2l0
IHNpZGUgc3VwcG9ydCBmb3IgY2hyb21pdW0gcG9ydCwgYnV0IHBlbmRpbmcgY29tbWFuZCBidWZm
ZXIgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgQmVzaWRlcyB0aGUgYmFzaWMgZXh0ZW5zaW9u
IGltcGxlbWVudGF0aW9uLCB3ZSBhbHNvIGFkZGVkIGRyYXdCdWZmZXJzKCkgd3JhcHBlciB0byB3
b3JrIGFyb3VuZCBhIG1hYyBkcml2ZXIgYnVnOiBpLmUuLCBkbyBub3QgZW5hYmxlIGEgYnVmZmVy
IGlmIHRoZXJlIGlzIG5vIGF0dGFjaG1lbnQgYWRkZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjp0b0ludDMyKToKKyAgICAgICAg
KFdlYkNvcmU6OnRvVUludDMyKToKKyAgICAgICAgKFdlYkNvcmU6OnRvRmxvYXQpOgorICAgICAg
ICAoV2ViQ29yZTo6dG9JbnQ2NCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjhPYmpl
Y3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkVYVERyYXdCdWZmZXJzOjpFWFRE
cmF3QnVmZmVycyk6CisgICAgICAgIChXZWJDb3JlOjpFWFREcmF3QnVmZmVyczo6fkVYVERyYXdC
dWZmZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkVYVERyYXdCdWZmZXJzOjpnZXROYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVYVERyYXdCdWZmZXJzOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RVhURHJhd0J1ZmZlcnM6OnN1cHBvcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpFWFREcmF3
QnVmZmVyczo6ZHJhd0J1ZmZlcnNFWFQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0VYVERyYXdC
dWZmZXJzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChFWFREcmF3QnVm
ZmVycyk6CisgICAgICAgICogaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaWRsOiBBZGRlZC4K
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xGcmFt
ZWJ1ZmZlcjo6c2V0QXR0YWNobWVudEZvckJvdW5kRnJhbWVidWZmZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xGcmFtZWJ1ZmZlcjo6cmVtb3ZlQXR0YWNobWVudEZyb21Cb3VuZEZyYW1lYnVm
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRnJhbWVidWZmZXI6OmRyYXdCdWZmZXJzKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xGcmFtZWJ1ZmZlcjo6
ZHJhd0J1ZmZlcnNJZk5lY2Vzc2FyeSk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xGcmFt
ZWJ1ZmZlci5oOgorICAgICAgICAoV2ViR0xGcmFtZWJ1ZmZlcik6CisgICAgICAgICogaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplTmV3Q29udGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmZyYW1lYnVmZmVy
UmVuZGVyYnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0RXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0UGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OnZhbGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldE1heERyYXdCdWZmZXJzKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0TWF4Q29sb3JBdHRhY2htZW50
cyk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkdMUmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RDaHJvbWl1bTo6ZHJhd0J1ZmZlcnNFWFQpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9u
czNELmg6CisgICAgICAgIChFeHRlbnNpb25zM0QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpnZXRDbGVhckJpdHNCeUF0dGFjaG1lbnRUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oOgorICAgICAgICAoRXh0
ZW5zaW9uczNEQ2hyb21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9F
eHRlbnNpb25zM0RPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNET3Bl
bkdMOjpzdXBwb3J0c0V4dGVuc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RP
cGVuR0w6OmRyYXdCdWZmZXJzRVhUKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaDoKKyAgICAgICAgKEV4
dGVuc2lvbnMzRE9wZW5HTCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25z
M0RPcGVuR0xDb21tb246OmVuc3VyZUVuYWJsZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uaDoKKyAgICAgICAgKEV4dGVuc2lv
bnMzRE9wZW5HTENvbW1vbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnMzRE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRE9w
ZW5HTEVTOjpkcmF3QnVmZmVyc0VYVCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTEVTOjpzdXBwb3J0c0V4dGVuc2lvbik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmg6CisgICAg
ICAgIChFeHRlbnNpb25zM0RPcGVuR0xFUyk6CisKIDIwMTMtMDItMjYgIEFsbGFuIFNhbmRmZWxk
IEplbnNlbiAgPGFsbGFuLmplbnNlbkBkaWdpYS5jb20+CiAKICAgICAgICAgW1RleE1hcF0gSWdu
b3JlIGxheWVyIHJlcGFpbnQgcmVxdWVzdCB3aGVuIGRyYXdzQ29udGVudCBpcyBmYWxzZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE0NDAwMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01MTMsNiArNTEzLDcgQEAgc2V0KFdl
YkNvcmVfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5p
ZGwKICAgICBodG1sL2NhbnZhcy9EYXRhVmlldy5pZGwKICAgICBodG1sL2NhbnZhcy9ET01QYXRo
LmlkbAorICAgIGh0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbAogICAgIGh0bWwvY2FudmFz
L0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwKICAgICBodG1sL2NhbnZhcy9GbG9hdDMy
QXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbApAQCAtMTUwOCw2ICsx
NTA5LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAKICAgICBo
dG1sL2NhbnZhcy9EYXRhVmlldy5jcHAKKyAgICBodG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5j
cHAKICAgICBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwCiAgICAg
aHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAKICAgICBodG1sL2NhbnZhcy9P
RVNUZXh0dXJlRmxvYXQuY3BwCkBAIC0yNjQ4LDYgKzI2NTAsNyBAQCBpZiAoRU5BQkxFX1dFQkdM
KQogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5jcHAKICAgICAgICAg
aHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKICAgICAgICAgaHRtbC9j
YW52YXMvV2ViR0xFeHRlbnNpb24uY3BwCisgICAgICAgIGh0bWwvY2FudmFzL0VYVERyYXdCdWZm
ZXJzLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMu
Y3BwCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwCiAgICAg
ICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5jcHAKQEAgLTI2NTUsNiArMjY1OCw3IEBA
IGlmIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVp
bnQuY3BwCiAgICAgKQogICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSURMX0ZJTEVTCisgICAgICAg
IGh0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbAogICAgICAgICBodG1sL2NhbnZhcy9FWFRU
ZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1N0YW5k
YXJkRGVyaXZhdGl2ZXMuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5p
ZGwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMTQ0MDAwKQor
KysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAt
MzkwLDYgKzM5MCw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9j
YW52YXMvRGF0YVZpZXcuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0RPTVBhdGgu
aWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaWRs
IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5pZGwgXAogICAgICQo
V2ViQ29yZSkvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbCBcCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE0NDAwMCkKKysrIFNvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTI0OCw2ICsyNDgsOCBAQCB3ZWJj
b3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFcnJvckNh
bGxiYWNrLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFcnJvckV2ZW50LmNwcCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Vycm9yRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0VYVERyYXdCdWZmZXJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0VYVERyYXdCdWZmZXJzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFWFRUZXh0dXJl
RmlsdGVyQW5pc290cm9waWMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRVhUVGV4
dHVyZUZpbHRlckFuaXNvdHJvcGljLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFdmVu
dC5jcHAgXApAQCAtMTUzMiw3ICsxNTM0LDggQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChX
ZWJDb3JlKS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmlkbCBcCiAJJChXZWJD
b3JlKS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsIFwKIAkkKFdlYkNv
cmUpL2h0bWwvY2FudmFzL0RhdGFWaWV3LmlkbCBcCi0JJChXZWJDb3JlKS9odG1sL2NhbnZhcy9E
T01QYXRoLmlkbCBcCisJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9ET01QYXRoLmlkbCAKKwkkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbCBcCiAJJChXZWJDb3JlKS9odG1s
L2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaWRsIFwKIAkkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRmxv
YXQ2NEFycmF5LmlkbCBcCkBAIC0zMjc4LDYgKzMyODEsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvRE9NUGF0aC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVy
cy5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmggXAog
CVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ry
b3BpYy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRp
dmVzLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHJldmlzaW9uIDE0NDAwMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTQwNDEsNiArNDA0MSw3IEBAIGVu
YWJsZT8oV0VCR0wpIHsKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuaCBcCiAgICAg
ICAgIGh0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggXAogICAgICAgICBo
dG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oIFwKKyAgICAgICAgaHRtbC9jYW52YXMvRVhU
RHJhd0J1ZmZlcnMuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlz
b3Ryb3BpYy5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5o
IFwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmggXApAQCAtNDA3NSw2ICs0
MDc2LDcgQEAgZW5hYmxlPyhXRUJHTCkgewogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFNoYWRl
ci5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5j
cHAgXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5jcHAgXAorICAgICAg
ICBodG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9F
WFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvT0VT
U3RhbmRhcmREZXJpdmF0aXZlcy5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9PRVNUZXh0dXJl
RmxvYXQuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDE0NDAwMCkKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMzY5LDYgKzM2OSw3
IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlk
bCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRsJywKICAgICAgICAgICAg
ICdodG1sL2NhbnZhcy9ET01QYXRoLmlkbCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvRVhU
RHJhd0J1ZmZlcnMuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmls
dGVyQW5pc290cm9waWMuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9GbG9hdDMyQXJy
YXkuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9GbG9hdDY0QXJyYXkuaWRsJywKQEAg
LTMzMjksNiArMzMzMCw4IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRGF0YVZpZXcuY3Bw
JywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9EYXRhVmlldy5oJywKICAgICAgICAgICAgICdo
dG1sL2NhbnZhcy9ET01QYXRoLmgnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0VYVERyYXdC
dWZmZXJzLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaCcs
CiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNw
cCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGlj
LmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3Bw
JywKQEAgLTYzODIsNiArNjM4NSw4IEBACiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Vycm9yQ2FsbGJhY2suaCcsCiAgICAgICAgICAgICAnPChQ
Uk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Vycm9yRXZlbnQuY3BwJywKICAg
ICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRXJyb3JF
dmVudC5oJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTRVhURHJhd0J1ZmZlcnMuY3BwJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRVhURHJhd0J1ZmZlcnMuaCcsCiAgICAgICAgICAgICAn
PChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0VYVFRleHR1cmVGaWx0ZXJB
bmlzb3Ryb3BpYy5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCcsCiAgICAgICAgICAg
ICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0V2ZW50LmNwcCcsCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCShyZXZpc2lvbiAxNDQwMDApCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE5MTksNiArMTkxOSw4IEBACiAJ
CTZFQkYwRTU1MTJBODkyOTgwMERCMTcwOSAvKiBXZWJHTEV4dGVuc2lvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVCRjBFNTMxMkE4OTI5ODAwREIx
NzA5IC8qIFdlYkdMRXh0ZW5zaW9uLmggKi87IH07CiAJCTZFQkYwRTc2MTJBOTg2ODgwMERCMTcw
OSAvKiBKU09FU1RleHR1cmVGbG9hdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2RUJGMEU3NDEyQTk4Njg4MDBEQjE3MDkgLyogSlNPRVNUZXh0dXJl
RmxvYXQuY3BwICovOyB9OwogCQk2RUJGMEU3NzEyQTk4Njg4MDBEQjE3MDkgLyogSlNPRVNUZXh0
dXJlRmxvYXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDZFQkYwRTc1MTJBOTg2ODgwMERCMTcwOSAvKiBKU09FU1RleHR1cmVGbG9hdC5oICovOyB9Owor
CQk2RUJGMEU3NjEyQTk4Njg4MDBEQjE3MEEgLyogSlNFWFREcmF3QnVmZmVycy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUJGMEU3NDEyQTk4Njg4
MDBEQjE3MEEgLyogSlNFWFREcmF3QnVmZmVycy5jcHAgKi87IH07CisJCTZFQkYwRTc3MTJBOTg2
ODgwMERCMTcwQSAvKiBKU0VYVERyYXdCdWZmZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUJGMEU3NTEyQTk4Njg4MDBEQjE3MEEgLyogSlNFWFRE
cmF3QnVmZmVycy5oICovOyB9OwogCQk2RUQ4NzhDNDE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVy
VGFibGVDYXB0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZFRDg3OEMyMTQ3NDkzRjQwMDRDMzU5NyAvKiBSZW5kZXJUYWJsZUNhcHRpb24uY3Bw
ICovOyB9OwogCQk2RUQ4NzhDNTE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUQ4NzhD
MzE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmggKi87IH07CiAJCTZFRThB
NzcyMTBGODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVFOEE3NzAxMEY4MDNG
MzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAgKi87IH07CkBAIC0zODQx
LDYgKzM4NDMsOSBAQAogCQk5RkZFM0VBNTExQjVBNDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZv
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGRkUz
RUEzMTFCNUE0MzkwMDM3ODc0RSAvKiBKU01lbW9yeUluZm8uY3BwICovOyB9OwogCQk5RkZFM0VB
NjExQjVBNDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RkZFM0VBNDExQjVBNDM5MDAzNzg3NEUgLyogSlNN
ZW1vcnlJbmZvLmggKi87IH07CiAJCUEwMEI3MjFBMTFERTY0MjgwMDhBQjlGRiAvKiBDaGVja2Vk
SW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMDBC
NzIxOTExREU2NDI3MDA4QUI5RkYgLyogQ2hlY2tlZEludC5oICovOyB9OworCQlBMDI0NTc1MTE2
Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTAyNDU3NEUxNkNFQUEyNzAwMEU1NjcxIC8qIEVY
VERyYXdCdWZmZXJzLmNwcCAqLzsgfTsKKwkJQTAyNDU3NTIxNkNFQUEyNzAwMEU1NjcxIC8qIEVY
VERyYXdCdWZmZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBMDI0NTc0RjE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuaCAqLzsgfTsK
KwkJQTAyNDU3NTMxNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmlkbCBpbiBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTAyNDU3NTAxNkNFQUEy
NzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmlkbCAqLzsgfTsKIAkJQTA3RDMzNTUxNTJCNjMw
RTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTA3RDMzNTMxNTJCNjMwRTAwMUI2
MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwICovOyB9OwogCQlBMDdEMzM1
NjE1MkI2MzBFMDAxQjYzOTMgLyogSlNXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTA3RDMzNTQxNTJCNjMw
RTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCAqLzsgfTsKIAkJQTA3
RDMzNTgxNTJCNjMyRDAwMUI2MzkzIC8qIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMDdEMzM1NzE1MkI2
MzJEMDAxQjYzOTMgLyogV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCAqLzsgfTsKQEAgLTkz
ODgsNiArOTM5Myw4IEBACiAJCTZFQkYwRTUzMTJBODkyOTgwMERCMTcwOSAvKiBXZWJHTEV4dGVu
c2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJHTEV4dGVuc2lvbi5o
OyBwYXRoID0gY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTZFQkYwRTc0MTJBOTg2ODgwMERCMTcwOSAvKiBKU09FU1RleHR1cmVGbG9hdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU09FU1RleHR1cmVGbG9hdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFQkYwRTc1MTJBOTg2ODgwMERCMTcw
OSAvKiBKU09FU1RleHR1cmVGbG9hdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU09FU1RleHR1cmVGbG9hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RUJG
MEU3NDEyQTk4Njg4MDBEQjE3MEEgLyogSlNFWFREcmF3QnVmZmVycy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0VYVERyYXdCdWZmZXJzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkVCRjBFNzUxMkE5ODY4ODAwREIxNzBBIC8qIEpTRVhURHJh
d0J1ZmZlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFWFREcmF3QnVm
ZmVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RUQ4NzhDMjE0NzQ5M0Y0MDA0
QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbmRlclRhYmxlQ2FwdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTZFRDg3OEMzMTQ3NDkzRjQwMDRDMzU5NyAvKiBSZW5kZXJUYWJsZUNhcHRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVGFibGVDYXB0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFRThBNzcwMTBGODAzRjMwMDVBNEEyNCAv
KiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTExMzQzLDYgKzExMzUwLDkgQEAKIAkJOUZGRTNFQTMxMUI1QTQzOTAw
Mzc4NzRFIC8qIEpTTWVtb3J5SW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU01lbW9yeUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
RkZFM0VBNDExQjVBNDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVtb3J5SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBMDBCNzIxOTExREU2NDI3MDA4QUI5RkYgLyogQ2hlY2tlZEludC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDaGVja2VkSW50Lmg7IHBhdGggPSBjYW52YXMvQ2hl
Y2tlZEludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMDI0NTc0RTE2Q0VBQTI3
MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gRVhURHJhd0J1ZmZlcnMuY3BwOyBwYXRoID0gY2FudmFzL0VYVERyYXdCdWZm
ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTAyNDU3NEYxNkNFQUEyNzAw
MEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEVYVERyYXdCdWZmZXJzLmg7IHBhdGggPSBjYW52YXMvRVhURHJhd0J1ZmZlcnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTAyNDU3NTAxNkNFQUEyNzAwMEU1NjcxIC8qIEVY
VERyYXdCdWZmZXJzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBFWFREcmF3QnVmZmVycy5p
ZGw7IHBhdGggPSBjYW52YXMvRVhURHJhd0J1ZmZlcnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBMDdEMzM1MzE1MkI2MzBFMDAxQjYzOTMgLyogSlNXZWJHTFNoYWRlclByZWNp
c2lvbkZvcm1hdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dl
YkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTA3RDMzNTQxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3Jt
YXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHTFNoYWRlclByZWNp
c2lvbkZvcm1hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMDdEMzM1NzE1MkI2
MzJEMDAxQjYzOTMgLyogV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaDsgcGF0aCA9
IGNhbnZhcy9XZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTU3MTEsNiArMTU3MjEsOSBAQAogCQk0OTQ4NEZBRTEwMkNGMDFFMDAxODdE
RDMgLyogY2FudmFzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
KwkJCQlBMDI0NTc0RTE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuY3BwICovLAor
CQkJCUEwMjQ1NzRGMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5oICovLAorCQkJ
CUEwMjQ1NzUwMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5pZGwgKi8sCiAJCQkJ
NDlFRUNEQ0MxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVyLmlkbCAqLywKIAkJCQk0OUVF
Q0RDOTEwNTAzQzIzMDAwOTlGQUIgLyogQXJyYXlCdWZmZXJWaWV3LmlkbCAqLywKIAkJCQk2RTRF
OTFBNzEwRjdGQjMxMDBBMjc3OUMgLyogQ2FudmFzQ29udGV4dEF0dHJpYnV0ZXMuY3BwICovLApA
QCAtMTg5ODUsNiArMTg5OTgsOCBAQAogCQkJCTc2OTQ1NjNCMTIxNEQ5N0MwMDA3Q0JBRSAvKiBK
U0RPTVRva2VuTGlzdC5oICovLAogCQkJCTJFMzdFMDAzMTJEQkM1QTQwMEE2QjIzMyAvKiBKU0RP
TVVSTC5jcHAgKi8sCiAJCQkJMkUzN0UwMDQxMkRCQzVBNDAwQTZCMjMzIC8qIEpTRE9NVVJMLmgg
Ki8sCisJCQkJNkVCRjBFNzQxMkE5ODY4ODAwREIxNzBBIC8qIEpTRVhURHJhd0J1ZmZlcnMuY3Bw
ICovLAorCQkJCTZFQkYwRTc1MTJBOTg2ODgwMERCMTcwQSAvKiBKU0VYVERyYXdCdWZmZXJzLmgg
Ki8sCiAJCQkJNzcyODY5ODExNEZEOUFEQTAwRjQ4NERDIC8qIEpTRVhUVGV4dHVyZUZpbHRlckFu
aXNvdHJvcGljLmNwcCAqLywKIAkJCQk3NzI4Njk4MjE0RkQ5QURBMDBGNDg0REMgLyogSlNFWFRU
ZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCAqLywKIAkJCQk0OUVFQ0VGNDEwNTA3MEM0MDAwOTlG
QUIgLyogSlNGbG9hdDMyQXJyYXkuY3BwICovLApAQCAtMjQ5MzcsNiArMjQ5NTIsNyBAQAogCQkJ
CUUwRkVGMzcyQjM3QzUzRUFDMUMxRkJFRSAvKiBKU0V2ZW50U291cmNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1RkM3REMyNkNGRTI1NjMyMDBCODVBRTQgLyogSlNFdmVudFRhcmdldC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzMxNEFDRUMxMDg5MjA4NjAwMEYwRTU2IC8qIEpTRXhjZXB0aW9uQmFz
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkVCRjBFNzcxMkE5ODY4ODAwREIxNzBBIC8qIEpTRVhU
RHJhd0J1ZmZlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTc3Mjg2OTg0MTRGRDlBREEwMEY0ODRE
QyAvKiBKU0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMwMEYwMTUwRTBBMTg5NTAwRkQwNEUzIC8qIEpTRmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODkzQzQ3QjgxMjM4QTA5OTAwMkIzRDg2IC8qIEpTRmlsZUNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKQEAgLTI2NjI5LDYgKzI2NjQ1LDcgQEAKIAkJCQk5NzdFMkUwRjEyRjBGQzlDMDBDMTMzODAg
LyogWFNTQXVkaXRvckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDUzNzM1MzEzN0I2
NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQjhDRDQ2MTZE
MDQ1OTEwMDBFOENDMCAvKiBTZWxlY3RvckNoZWNrZXJGYXN0UGF0aC5oIGluIEhlYWRlcnMgKi8s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEwMjQ1NzUyMTZDRUFBMjcwMDBFNTY3
MSAvKiBFWFREcmF3QnVmZmVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yODI3Myw2ICsyODI5MCw3
IEBACiAJCQkJQzZBNzAzMzI1QzlEMEI2Q0RDQkM0RDc3IC8qIEpTRXZlbnRUYXJnZXQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM2MDkwMjAwRTkxQjhFQzAwMEM2OEI1IC8qIEpTRXZlbnRUYXJn
ZXRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzMxNEFDRUIxMDg5MjA4NjAwMEYwRTU2
IC8qIEpTRXhjZXB0aW9uQmFzZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk2RUJGMEU3NjEyQTk4
Njg4MDBEQjE3MEEgLyogSlNFWFREcmF3QnVmZmVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
NzI4Njk4MzE0RkQ5QURBMDBGNDg0REMgLyogSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwMEYwMTQwRTBBMTg5NTAwRkQwNEUzIC8qIEpTRmls
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTNDNDdCNzEyMzhBMDk5MDAyQjNEODYgLyogSlNG
aWxlQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTgyNSw2ICsyOTg0Myw3IEBACiAJ
CQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzgwIC8qIFhTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlGRDUzNzM1MjEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDFCOENENDUxNkQwNDU5MTAwMEU4Q0MwIC8qIFNlbGVjdG9y
Q2hlY2tlckZhc3RQYXRoLmNwcCBpbiBTb3VyY2VzICovLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBMDI0NTc1MTE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdM
UmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCShyZXZpc2lvbiAx
NDQwMDApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDEwICsyOSwxMiBAQAogCiAjaW5j
bHVkZSAiSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKIAorI2luY2x1ZGUgIkVYVERyYXdCdWZm
ZXJzLmgiCiAjaW5jbHVkZSAiRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmgiCiAjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkpTRVhURHJhd0J1ZmZlcnMuaCIK
ICNpbmNsdWRlICJKU0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIgogI2luY2x1ZGUgIkpT
RmxvYXQzMkFycmF5LmgiCiAjaW5jbHVkZSAiSlNIVE1MQ2FudmFzRWxlbWVudC5oIgpAQCAtMTk0
LDYgKzE5Niw4IEBAIHN0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0QKICAg
ICBzd2l0Y2ggKGV4dGVuc2lvbi0+Z2V0TmFtZSgpKSB7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lv
bjo6V2ViR0xMb3NlQ29udGV4dE5hbWU6CiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xMb3NlQ29udGV4dCo+KGV4dGVuc2lvbikpOworICAg
IGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVERyYXdCdWZmZXJzTmFtZToKKyAgICAgICAgcmV0dXJu
IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFREcmF3QnVmZmVycyo+KGV4
dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVFRleHR1cmVGaWx0ZXJBbmlz
b3Ryb3BpY05hbWU6CiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3Rh
dGljX2Nhc3Q8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKj4oZXh0ZW5zaW9uKSk7CiAgICAg
Y2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTU3RhbmRhcmREZXJpdmF0aXZlc05hbWU6CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAkocmV2aXNpb24gMTQ0MDAwKQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI0Myw2ICsyNDMsMzggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHY4QXJyYXkoUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0Piwgdjg6Oklzb2xhdGUq
KTsKIAorICAgIC8vIENvbnZlcnQgYSB2YWx1ZSB0byBhIDMyLWJpdCBpbnRlZ2VyLiBUaGUgY29u
dmVyc2lvbiBmYWlscyBpZiB0aGUKKyAgICAvLyB2YWx1ZSBjYW5ub3QgYmUgY29udmVydGVkIHRv
IGFuIGludGVnZXIgb3IgY29udmVydHMgdG8gbmFuIG9yIHRvIGFuIGluZmluaXR5LgorICAgIGlu
dCB0b0ludDMyKHY4OjpIYW5kbGU8djg6OlZhbHVlPiwgYm9vbCYgb2spOworCisgICAgLy8gQ29u
dmVydCBhIHZhbHVlIHRvIGEgMzItYml0IGludGVnZXIgYXNzdW1pbmcgdGhlIGNvbnZlcnNpb24g
Y2Fubm90IGZhaWwuCisgICAgaW5saW5lIGludCB0b0ludDMyKHY4OjpIYW5kbGU8djg6OlZhbHVl
PiB2YWx1ZSkKKyAgICB7CisgICAgICAgIGJvb2wgb2s7CisgICAgICAgIHJldHVybiB0b0ludDMy
KHZhbHVlLCBvayk7CisgICAgfQorCisgICAgLy8gQ29udmVydCBhIHZhbHVlIHRvIGEgMzItYml0
IHVuc2lnbmVkIGludGVnZXIuIFRoZSBjb252ZXJzaW9uIGZhaWxzIGlmIHRoZQorICAgIC8vIHZh
bHVlIGNhbm5vdCBiZSBjb252ZXJ0ZWQgdG8gYW4gdW5zaWduZWQgaW50ZWdlciBvciBjb252ZXJ0
cyB0byBuYW4gb3IgdG8gYW4gaW5maW5pdHkuCisgICAgdWludDMyX3QgdG9VSW50MzIodjg6Okhh
bmRsZTx2ODo6VmFsdWU+LCBib29sJiBvayk7CisKKyAgICAvLyBDb252ZXJ0IGEgdmFsdWUgdG8g
YSAzMi1iaXQgdW5zaWduZWQgaW50ZWdlciBhc3N1bWluZyB0aGUgY29udmVyc2lvbiBjYW5ub3Qg
ZmFpbC4KKyAgICBpbmxpbmUgdWludDMyX3QgdG9VSW50MzIodjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHZhbHVlKQorICAgIHsKKyAgICAgICAgYm9vbCBvazsKKyAgICAgICAgcmV0dXJuIHRvVUludDMy
KHZhbHVlLCBvayk7CisgICAgfQorCisgICAgaW5saW5lIGZsb2F0IHRvRmxvYXQodjg6OkxvY2Fs
PHY4OjpWYWx1ZT4gdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHZhbHVlLT5OdW1iZXJWYWx1ZSgpKTsKKyAgICB9CisKKyAgICBpbmxpbmUgbG9uZyBsb25n
IHRvSW50NjQodjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUpCisgICAgeworICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8bG9uZyBsb25nPih2YWx1ZS0+SW50ZWdlclZhbHVlKCkpOworICAgIH0K
KwogICAgIHRlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czsKIAogICAg
IHRlbXBsYXRlPD4KQEAgLTI1NCw2ICsyODYsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IH07CiAKICAgICB0ZW1wbGF0ZTw+CisgICAgc3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzPHVuc2ln
bmVkPiB7CisgICAgICAgIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbmF0aXZlVmFsdWUoY29uc3Qg
djg6OkhhbmRsZTx2ODo6VmFsdWU+JiB2YWx1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0
dXJuIHRvVUludDMyKHZhbHVlKTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICB0ZW1wbGF0ZTw+
CiAgICAgc3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzPGZsb2F0PiB7CiAgICAgICAgIHN0YXRpYyBp
bmxpbmUgZmxvYXQgbmF0aXZlVmFsdWUoY29uc3Qgdjg6OkhhbmRsZTx2ODo6VmFsdWU+JiB2YWx1
ZSkKICAgICAgICAgewpAQCAtMzQ4LDM4ICszODgsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICBQYXNzUmVmUHRyPE5vZGVGaWx0ZXI+IHRvTm9kZUZpbHRlcih2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4pOwogCi0gICAgLy8gQ29udmVydCBhIHZhbHVlIHRvIGEgMzItYml0IGludGVnZXIuICBU
aGUgY29udmVyc2lvbiBmYWlscyBpZiB0aGUKLSAgICAvLyB2YWx1ZSBjYW5ub3QgYmUgY29udmVy
dGVkIHRvIGFuIGludGVnZXIgb3IgY29udmVydHMgdG8gbmFuIG9yIHRvIGFuIGluZmluaXR5Lgot
ICAgIGludCB0b0ludDMyKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSwgYm9vbCYgb2spOwot
Ci0gICAgLy8gQ29udmVydCBhIHZhbHVlIHRvIGEgMzItYml0IGludGVnZXIgYXNzdW1pbmcgdGhl
IGNvbnZlcnNpb24gY2Fubm90IGZhaWwuCi0gICAgaW5saW5lIGludCB0b0ludDMyKHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGJvb2wgb2s7Ci0gICAgICAgIHJl
dHVybiB0b0ludDMyKHZhbHVlLCBvayk7Ci0gICAgfQotCi0gICAgLy8gQ29udmVydCBhIHZhbHVl
IHRvIGEgMzItYml0IHVuc2lnbmVkIGludGVnZXIuICBUaGUgY29udmVyc2lvbiBmYWlscyBpZiB0
aGUKLSAgICAvLyB2YWx1ZSBjYW5ub3QgYmUgY29udmVydGVkIHRvIGFuIHVuc2lnbmVkIGludGVn
ZXIgb3IgY29udmVydHMgdG8gbmFuIG9yIHRvIGFuIGluZmluaXR5LgotICAgIHVpbnQzMl90IHRv
VUludDMyKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSwgYm9vbCYgb2spOwotCi0gICAgLy8g
Q29udmVydCBhIHZhbHVlIHRvIGEgMzItYml0IHVuc2lnbmVkIGludGVnZXIgYXNzdW1pbmcgdGhl
IGNvbnZlcnNpb24gY2Fubm90IGZhaWwuCi0gICAgaW5saW5lIHVpbnQzMl90IHRvVUludDMyKHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGJvb2wgb2s7Ci0gICAg
ICAgIHJldHVybiB0b1VJbnQzMih2YWx1ZSwgb2spOwotICAgIH0KLQotICAgIGlubGluZSBmbG9h
dCB0b0Zsb2F0KHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZS0+TnVtYmVyVmFsdWUoKSk7Ci0gICAgfQotCi0g
ICAgaW5saW5lIGxvbmcgbG9uZyB0b0ludDY0KHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4odmFsdWUtPkludGVn
ZXJWYWx1ZSgpKTsKLSAgICB9Ci0KICAgICBpbmxpbmUgYm9vbCBpc1VuZGVmaW5lZE9yTnVsbCh2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gdmFsdWUt
PklzTnVsbCgpIHx8IHZhbHVlLT5Jc1VuZGVmaW5lZCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwCShyZXZpc2lvbiAxNDQwMDApCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKICNpbmNsdWRlICJWOEFycmF5QnVmZmVyVmlldy5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5o
IgorI2luY2x1ZGUgIlY4RVhURHJhd0J1ZmZlcnMuaCIKICNpbmNsdWRlICJWOEVYVFRleHR1cmVG
aWx0ZXJBbmlzb3Ryb3BpYy5oIgogI2luY2x1ZGUgIlY4RmxvYXQzMkFycmF5LmgiCiAjaW5jbHVk
ZSAiVjhIVE1MQ2FudmFzRWxlbWVudC5oIgpAQCAtMTc2LDYgKzE3NywxMCBAQCBzdGF0aWMgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhPYmplY3QoCiAgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9
IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xMb3NlQ29udGV4dCo+KGV4dGVuc2lvbiksIGNvbnRleHRP
YmplY3QsIGlzb2xhdGUpOwogICAgICAgICByZWZlcmVuY2VOYW1lID0gIndlYkdMTG9zZUNvbnRl
eHROYW1lIjsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6RVhURHJh
d0J1ZmZlcnNOYW1lOgorICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0
PEVYVERyYXdCdWZmZXJzKj4oZXh0ZW5zaW9uKSwgY29udGV4dE9iamVjdCwgaXNvbGF0ZSk7Cisg
ICAgICAgIHJlZmVyZW5jZU5hbWUgPSAiZXh0RHJhd0J1ZmZlcnNOYW1lIjsKKyAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGlj
TmFtZToKICAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxFWFRUZXh0
dXJlRmlsdGVyQW5pc290cm9waWMqPihleHRlbnNpb24pLCBjb250ZXh0T2JqZWN0LCBpc29sYXRl
KTsKICAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJleHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWNO
YW1lIjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVy
cy5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3
QnVmZmVycy5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCR0wpCisKKyNpbmNsdWRlICJFWFREcmF3QnVm
ZmVycy5oIgorCisjaW5jbHVkZSAiRXh0ZW5zaW9uczNELmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworRVhURHJhd0J1ZmZlcnM6OkVYVERyYXdCdWZmZXJzKFdlYkdMUmVuZGVyaW5nQ29udGV4
dCogY29udGV4dCkKKyAgICA6IFdlYkdMRXh0ZW5zaW9uKGNvbnRleHQpCit7Cit9CisKK0VYVERy
YXdCdWZmZXJzOjp+RVhURHJhd0J1ZmZlcnMoKQoreworfQorCitXZWJHTEV4dGVuc2lvbjo6RXh0
ZW5zaW9uTmFtZSBFWFREcmF3QnVmZmVyczo6Z2V0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IFdlYkdMRXh0ZW5zaW9uOjpFWFREcmF3QnVmZmVyc05hbWU7Cit9CisKK1Bhc3NPd25QdHI8RVhU
RHJhd0J1ZmZlcnM+IEVYVERyYXdCdWZmZXJzOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0
KiBjb250ZXh0KQoreworICAgIEVYVERyYXdCdWZmZXJzKiB4ID0gbmV3IEVYVERyYXdCdWZmZXJz
KGNvbnRleHQpOworICAgIHJldHVybiBhZG9wdFB0cih4KTsKK30KKworLy8gc3RhdGljCitib29s
IEVYVERyYXdCdWZmZXJzOjpzdXBwb3J0ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0
KQoreworICAgIEV4dGVuc2lvbnMzRCogZXh0ZW5zaW9ucyA9IGNvbnRleHQtPmdyYXBoaWNzQ29u
dGV4dDNEKCktPmdldEV4dGVuc2lvbnMoKTsKKyAgICByZXR1cm4gZXh0ZW5zaW9ucy0+c3VwcG9y
dHMoIkdMX0VYVF9kcmF3X2J1ZmZlcnMiKTsKK30KKwordm9pZCBFWFREcmF3QnVmZmVyczo6ZHJh
d0J1ZmZlcnNFWFQoY29uc3QgVmVjdG9yPEdDM0RlbnVtPiYgYnVmZmVycykKK3sKKyAgICBpZiAo
bV9jb250ZXh0LT5pc0NvbnRleHRMb3N0KCkpCisgICAgICAgIHJldHVybjsKKyAgICBHQzNEc2l6
ZWkgbiA9IGJ1ZmZlcnMuc2l6ZSgpOworICAgIGNvbnN0IEdDM0RlbnVtKiBidWZzID0gYnVmZmVy
cy5kYXRhKCk7CisgICAgaWYgKCFtX2NvbnRleHQtPm1fZnJhbWVidWZmZXJCaW5kaW5nKSB7Cisg
ICAgICAgIGlmIChuICE9IDEpIHsKKyAgICAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdM
RXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUsICJkcmF3QnVmZmVyc0VYVCIs
ICJtb3JlIHRoYW4gb25lIGJ1ZmZlciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgICAgIGlmIChidWZzWzBdICE9IEdyYXBoaWNzQ29udGV4dDNEOjpCQUNLICYmIGJ1ZnNb
MF0gIT0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUpIHsKKyAgICAgICAgICAgIG1fY29udGV4dC0+
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCAi
ZHJhd0J1ZmZlcnNFWFQiLCAiQkFDSyBvciBOT05FIik7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICAgICAgLy8gQmVjYXVzZSB0aGUgYmFja2J1ZmZlciBpcyBzaW11bGF0ZWQg
d2UgbmVlZCB0byBjaGFuZ2UgQkFDSyB0byBDT0xPUl9BVFRBQ0hNRU5UMAorICAgICAgICBHQzNE
ZW51bSB2YWx1ZSA9IChidWZzWzBdID09IEdyYXBoaWNzQ29udGV4dDNEOjpCQUNLKSA/IEdyYXBo
aWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCA6IEdyYXBoaWNzQ29udGV4dDNEOjpOT05F
OworICAgICAgICBtX2NvbnRleHQtPmdyYXBoaWNzQ29udGV4dDNEKCktPmdldEV4dGVuc2lvbnMo
KS0+ZHJhd0J1ZmZlcnNFWFQoMSwgJnZhbHVlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAo
biA+IG1fY29udGV4dC0+Z2V0TWF4RHJhd0J1ZmZlcnMoKSkgeworICAgICAgICAgICAgbV9jb250
ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSwg
ImRyYXdCdWZmZXJzRVhUIiwgIm1vcmUgdGhhbiBtYXggZHJhdyBidWZmZXJzIik7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZm9yIChHQzNEc2l6ZWkgaSA9IDA7IGkg
PCBuOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChidWZzW2ldICE9IEdyYXBoaWNzQ29udGV4dDNE
OjpOT05FICYmIGJ1ZnNbaV0gIT0gc3RhdGljX2Nhc3Q8R0MzRGVudW0+KEV4dGVuc2lvbnMzRDo6
Q09MT1JfQVRUQUNITUVOVDBfRVhUICsgaSkpIHsKKyAgICAgICAgICAgICAgICBtX2NvbnRleHQt
PnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwg
ImRyYXdCdWZmZXJzRVhUIiwgIkNPTE9SX0FUVEFDSE1FTlRpX0VYVCBvciBOT05FIik7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1f
Y29udGV4dC0+bV9mcmFtZWJ1ZmZlckJpbmRpbmctPmRyYXdCdWZmZXJzKGJ1ZmZlcnMpOworICAg
IH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdM
KQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhURHJh
d0J1ZmZlcnMuY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaAkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmgJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEVYVERyYXdCdWZmZXJz
X2gKKyNkZWZpbmUgRVhURHJhd0J1ZmZlcnNfaAorCisjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24u
aCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIEVYVERyYXdCdWZmZXJzIDogcHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc093blB0cjxFWFREcmF3QnVmZmVycz4gY3JlYXRlKFdlYkdMUmVuZGVy
aW5nQ29udGV4dCopOworCisgICAgc3RhdGljIGJvb2wgc3VwcG9ydGVkKFdlYkdMUmVuZGVyaW5n
Q29udGV4dCopOworCisgICAgdmlydHVhbCB+RVhURHJhd0J1ZmZlcnMoKTsKKyAgICB2aXJ0dWFs
IEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0OworCisgICAgdm9pZCBkcmF3QnVmZmVyc0VY
VChjb25zdCBWZWN0b3I8R0MzRGVudW0+JiBidWZmZXJzKTsKKworcHJpdmF0ZToKKyAgICBFWFRE
cmF3QnVmZmVycyhXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVYVERyYXdCdWZmZXJzX2gKClByb3BlcnR5IGNoYW5nZXMg
b246IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmgKX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
XwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisg
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyBHTGVudW07CisKK1sKKyAg
ICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBKU0dlbmVyYXRlSXNSZWFjaGFibGU9SW1wbENvbnRl
eHQsCisgICAgT21pdENvbnN0cnVjdG9yLAorICAgIERvTm90Q2hlY2tDb25zdGFudHMKK10gaW50
ZXJmYWNlIEVYVERyYXdCdWZmZXJzIHsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVO
VDBfRVhUID0gMHg4Q0UwOworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UMV9FWFQg
PSAweDhDRTE7CisgICAgY29uc3QgR0xlbnVtIENPTE9SX0FUVEFDSE1FTlQyX0VYVCA9IDB4OENF
MjsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDNfRVhUID0gMHg4Q0UzOworICAg
IGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UNF9FWFQgPSAweDhDRTQ7CisgICAgY29uc3Qg
R0xlbnVtIENPTE9SX0FUVEFDSE1FTlQ1X0VYVCA9IDB4OENFNTsKKyAgICBjb25zdCBHTGVudW0g
Q09MT1JfQVRUQUNITUVOVDZfRVhUID0gMHg4Q0U2OworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9B
VFRBQ0hNRU5UN19FWFQgPSAweDhDRTc7CisgICAgY29uc3QgR0xlbnVtIENPTE9SX0FUVEFDSE1F
TlQ4X0VYVCA9IDB4OENFODsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDlfRVhU
ID0gMHg4Q0U5OworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UMTBfRVhUID0gMHg4
Q0VBOworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UMTFfRVhUID0gMHg4Q0VCOwor
ICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UMTJfRVhUID0gMHg4Q0VDOworICAgIGNv
bnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UMTNfRVhUID0gMHg4Q0VEOworICAgIGNvbnN0IEdM
ZW51bSBDT0xPUl9BVFRBQ0hNRU5UMTRfRVhUID0gMHg4Q0VFOworICAgIGNvbnN0IEdMZW51bSBD
T0xPUl9BVFRBQ0hNRU5UMTVfRVhUID0gMHg4Q0VGOworCisgICAgY29uc3QgR0xlbnVtIERSQVdf
QlVGRkVSMF9FWFQgPSAweDg4MjU7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSMV9FWFQg
PSAweDg4MjY7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSMl9FWFQgPSAweDg4Mjc7Cisg
ICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSM19FWFQgPSAweDg4Mjg7CisgICAgY29uc3QgR0xl
bnVtIERSQVdfQlVGRkVSNF9FWFQgPSAweDg4Mjk7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVG
RkVSNV9FWFQgPSAweDg4MkE7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSNl9FWFQgPSAw
eDg4MkI7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSN19FWFQgPSAweDg4MkM7CisgICAg
Y29uc3QgR0xlbnVtIERSQVdfQlVGRkVSOF9FWFQgPSAweDg4MkQ7CisgICAgY29uc3QgR0xlbnVt
IERSQVdfQlVGRkVSOV9FWFQgPSAweDg4MkU7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVS
MTBfRVhUID0gMHg4ODJGOworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjExX0VYVCA9IDB4
ODgzMDsKKyAgICBjb25zdCBHTGVudW0gRFJBV19CVUZGRVIxMl9FWFQgPSAweDg4MzE7CisgICAg
Y29uc3QgR0xlbnVtIERSQVdfQlVGRkVSMTNfRVhUID0gMHg4ODMyOworICAgIGNvbnN0IEdMZW51
bSBEUkFXX0JVRkZFUjE0X0VYVCA9IDB4ODgzMzsKKyAgICBjb25zdCBHTGVudW0gRFJBV19CVUZG
RVIxNV9FWFQgPSAweDg4MzQ7CisKKyAgICBjb25zdCBHTGVudW0gTUFYX0NPTE9SX0FUVEFDSE1F
TlRTX0VYVCA9IDB4OENERjsKKyAgICBjb25zdCBHTGVudW0gTUFYX0RSQVdfQlVGRkVSU19FWFQg
PSAweDg4MjQ7CisKKyAgICB2b2lkIGRyYXdCdWZmZXJzRVhUKGluIHNlcXVlbmNlPEdMZW51bT4g
YnVmZmVycyk7Cit9OwoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvRVhURHJhd0J1ZmZlcnMuaWRsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUK
ICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNp
b24uaAkocmV2aXNpb24gMTQ0MDAwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xFeHRlbnNpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQCBwdWJsaWM6CiAg
ICAgLy8gRXh0ZW5zaW9uIG5hbWVzIGFyZSBuZWVkZWQgdG8gcHJvcGVybHkgd3JhcCBpbnN0YW5j
ZXMgaW4gSmF2YVNjcmlwdCBvYmplY3RzLgogICAgIGVudW0gRXh0ZW5zaW9uTmFtZSB7CiAgICAg
ICAgIFdlYkdMTG9zZUNvbnRleHROYW1lLAorICAgICAgICBFWFREcmF3QnVmZmVyc05hbWUsCiAg
ICAgICAgIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpY05hbWUsCiAgICAgICAgIE9FU1RleHR1
cmVGbG9hdE5hbWUsCiAgICAgICAgIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXNOYW1lLApJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAJKHJl
dmlzaW9uIDE0NDAwMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVi
dWZmZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBACiAKICNpbmNsdWRlICJX
ZWJHTEZyYW1lYnVmZmVyLmgiCiAKKyNpbmNsdWRlICJFWFREcmF3QnVmZmVycy5oIgorI2luY2x1
ZGUgIkV4dGVuc2lvbnMzRC5oIgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEdyb3VwLmgiCiAjaW5j
bHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCiAKQEAgLTI5Miw2ICsyOTQsNyBAQCB2b2lk
IFdlYkdMRnJhbWVidWZmZXI6OnNldEF0dGFjaG1lbnRGb3JCCiAgICAgICAgIHJldHVybjsKICAg
ICBpZiAodGV4dHVyZSAmJiB0ZXh0dXJlLT5vYmplY3QoKSkgewogICAgICAgICBtX2F0dGFjaG1l
bnRzLmFkZChhdHRhY2htZW50LCBXZWJHTFRleHR1cmVBdHRhY2htZW50OjpjcmVhdGUodGV4dHVy
ZSwgdGV4VGFyZ2V0LCBsZXZlbCkpOworICAgICAgICBkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5KGZh
bHNlKTsKICAgICAgICAgdGV4dHVyZS0+b25BdHRhY2hlZCgpOwogICAgIH0KIH0KQEAgLTMwNCw2
ICszMDcsNyBAQCB2b2lkIFdlYkdMRnJhbWVidWZmZXI6OnNldEF0dGFjaG1lbnRGb3JCCiAgICAg
ICAgIHJldHVybjsKICAgICBpZiAocmVuZGVyYnVmZmVyICYmIHJlbmRlcmJ1ZmZlci0+b2JqZWN0
KCkpIHsKICAgICAgICAgbV9hdHRhY2htZW50cy5hZGQoYXR0YWNobWVudCwgV2ViR0xSZW5kZXJi
dWZmZXJBdHRhY2htZW50OjpjcmVhdGUocmVuZGVyYnVmZmVyKSk7CisgICAgICAgIGRyYXdCdWZm
ZXJzSWZOZWNlc3NhcnkoZmFsc2UpOwogICAgICAgICByZW5kZXJidWZmZXItPm9uQXR0YWNoZWQo
KTsKICAgICB9CiB9CkBAIC0zNDAsNiArMzQ0LDcgQEAgdm9pZCBXZWJHTEZyYW1lYnVmZmVyOjpy
ZW1vdmVBdHRhY2htZW50RgogICAgIGlmIChhdHRhY2htZW50T2JqZWN0KSB7CiAgICAgICAgIGF0
dGFjaG1lbnRPYmplY3QtPm9uRGV0YWNoZWQoY29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgp
KTsKICAgICAgICAgbV9hdHRhY2htZW50cy5yZW1vdmUoYXR0YWNobWVudCk7CisgICAgICAgIGRy
YXdCdWZmZXJzSWZOZWNlc3NhcnkoZmFsc2UpOwogICAgICAgICBzd2l0Y2ggKGF0dGFjaG1lbnQp
IHsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfU1RFTkNJTF9BVFRBQ0hN
RU5UOgogICAgICAgICAgICAgYXR0YWNoKEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRBQ0hN
RU5ULCBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQVRUQUNITUVOVCk7CkBAIC01ODUsNiArNTkw
LDM5IEBAIGJvb2wgV2ViR0xGcmFtZWJ1ZmZlcjo6aXNCb3VuZCgpIGNvbnN0CiAgICAgcmV0dXJu
IChjb250ZXh0KCktPm1fZnJhbWVidWZmZXJCaW5kaW5nLmdldCgpID09IHRoaXMpOwogfQogCit2
b2lkIFdlYkdMRnJhbWVidWZmZXI6OmRyYXdCdWZmZXJzKGNvbnN0IFZlY3RvcjxHQzNEZW51bT4m
IGJ1ZnMpCit7CisgICAgbV9kcmF3QnVmZmVycyA9IGJ1ZnM7CisgICAgbV9maWx0ZXJlZERyYXdC
dWZmZXJzLnJlc2l6ZShtX2RyYXdCdWZmZXJzLnNpemUoKSk7CisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBtX2ZpbHRlcmVkRHJhd0J1ZmZlcnMuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fZmls
dGVyZWREcmF3QnVmZmVyc1tpXSA9IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FOworICAgIGRyYXdC
dWZmZXJzSWZOZWNlc3NhcnkodHJ1ZSk7Cit9CisKK3ZvaWQgV2ViR0xGcmFtZWJ1ZmZlcjo6ZHJh
d0J1ZmZlcnNJZk5lY2Vzc2FyeShib29sIGZvcmNlKQoreworICAgIGlmICghY29udGV4dCgpLT5t
X2V4dERyYXdCdWZmZXJzKQorICAgICAgICByZXR1cm47CisgICAgYm9vbCByZXNldCA9IGZvcmNl
OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9kcmF3QnVmZmVycy5zaXplKCk7IGkrKykg
eworICAgICAgICBpZiAobV9kcmF3QnVmZmVyc1tpXSAhPSBHcmFwaGljc0NvbnRleHQzRDo6Tk9O
RSAmJiBnZXRBdHRhY2htZW50KG1fZHJhd0J1ZmZlcnNbaV0pKSB7CisgICAgICAgICAgICBpZiAo
bV9maWx0ZXJlZERyYXdCdWZmZXJzW2ldICE9IG1fZHJhd0J1ZmZlcnNbaV0pIHsKKyAgICAgICAg
ICAgICAgICBtX2ZpbHRlcmVkRHJhd0J1ZmZlcnNbaV0gPSBtX2RyYXdCdWZmZXJzW2ldOworICAg
ICAgICAgICAgICAgIHJlc2V0ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIGlmIChtX2ZpbHRlcmVkRHJhd0J1ZmZlcnNbaV0gIT0gR3JhcGhpY3ND
b250ZXh0M0Q6Ok5PTkUpIHsKKyAgICAgICAgICAgICAgICBtX2ZpbHRlcmVkRHJhd0J1ZmZlcnNb
aV0gPSBHcmFwaGljc0NvbnRleHQzRDo6Tk9ORTsKKyAgICAgICAgICAgICAgICByZXNldCA9IHRy
dWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHJlc2V0KSB7Cisg
ICAgICAgIGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKS0+Z2V0RXh0ZW5zaW9ucygpLT5k
cmF3QnVmZmVyc0VYVCgKKyAgICAgICAgICAgIG1fZmlsdGVyZWREcmF3QnVmZmVycy5zaXplKCks
IG1fZmlsdGVyZWREcmF3QnVmZmVycy5kYXRhKCkpOworICAgIH0KK30KKwogfQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFdFQkdMKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xG
cmFtZWJ1ZmZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMRnJhbWVidWZmZXIuaAkocmV2aXNpb24gMTQ0MDAwKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC05NSw2ICs5NSw5
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzU3RlbmNpbEJ1ZmZlcigpIGNvbnN0OwogCisgICAg
Ly8gV3JhcHBlciBmb3IgZHJhd0J1ZmZlcnNFWFQvZHJhd0J1ZmZlcnNBUkIgdG8gd29yayBhcm91
bmQgYSBkcml2ZXIgYnVnLgorICAgIHZvaWQgZHJhd0J1ZmZlcnMoY29uc3QgVmVjdG9yPEdDM0Rl
bnVtPiYgYnVmcyk7CisKIHByb3RlY3RlZDoKICAgICBXZWJHTEZyYW1lYnVmZmVyKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCopOwogCkBAIC0xMTQsMTEgKzExNywxNyBAQCBwcml2YXRlOgogICAgIC8v
IGF0dGFjaCAnYXR0YWNobWVudCcgYXQgJ2F0dGFjaG1lbnRQb2ludCcuCiAgICAgdm9pZCBhdHRh
Y2goR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gYXR0YWNobWVudFBvaW50KTsKIAorICAg
IC8vIENoZWNrIGlmIGEgbmV3IGRyYXdCdWZmZXJzIGNhbGwgc2hvdWxkIGJlIGlzc3VlZC4gVGhp
cyBpcyBjYWxsZWQgd2hlbiB3ZSBhZGQgb3IgcmVtb3ZlIGFuIGF0dGFjaG1lbnQuCisgICAgdm9p
ZCBkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5KGJvb2wgZm9yY2UpOworCiAgICAgdHlwZWRlZiBXVEY6
Okhhc2hNYXA8R0MzRGVudW0sIFJlZlB0cjxXZWJHTEF0dGFjaG1lbnQ+ID4gQXR0YWNobWVudE1h
cDsKIAogICAgIEF0dGFjaG1lbnRNYXAgbV9hdHRhY2htZW50czsKIAogICAgIGJvb2wgbV9oYXNF
dmVyQmVlbkJvdW5kOworCisgICAgVmVjdG9yPEdDM0RlbnVtPiBtX2RyYXdCdWZmZXJzOworICAg
IFZlY3RvcjxHQzNEZW51bT4gbV9maWx0ZXJlZERyYXdCdWZmZXJzOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCShyZXZpc2lvbiAxNDQwMDApCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRl
ICJDaGVja2VkSW50LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRVhURHJh
d0J1ZmZlcnMuaCIKICNpbmNsdWRlICJFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCIKICNp
bmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNELmgiCkBAIC01
MzgsNiArNTM5LDEwIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplTmUK
ICAgICBtX21heFJlbmRlcmJ1ZmZlclNpemUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0SW50ZWdl
cnYoR3JhcGhpY3NDb250ZXh0M0Q6Ok1BWF9SRU5ERVJCVUZGRVJfU0laRSwgJm1fbWF4UmVuZGVy
YnVmZmVyU2l6ZSk7CiAKKyAgICAvLyBUaGVzZSB0d28gdmFsdWVzIGZyb20gRVhUX2RyYXdfYnVm
ZmVycyBhcmUgbGF6aWx5IHF1ZXJpZWQuCisgICAgbV9tYXhEcmF3QnVmZmVycyA9IDA7CisgICAg
bV9tYXhDb2xvckF0dGFjaG1lbnRzID0gMDsKKwogICAgIG1fZGVmYXVsdFZlcnRleEFycmF5T2Jq
ZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6Y3JlYXRlKHRoaXMsIFdlYkdMVmVydGV4
QXJyYXlPYmplY3RPRVM6OlZhb1R5cGVEZWZhdWx0KTsKICAgICBhZGRDb250ZXh0T2JqZWN0KG1f
ZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0LmdldCgpKTsKICAgICBtX2JvdW5kVmVydGV4QXJyYXlP
YmplY3QgPSBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdDsKQEAgLTIxNTMsMTIgKzIxNTgsNiBA
QCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6ZnJhbWVidWZmZXJSCiAgICAgICAgIG1fY29u
dGV4dC0+ZnJhbWVidWZmZXJSZW5kZXJidWZmZXIodGFyZ2V0LCBHcmFwaGljc0NvbnRleHQzRDo6
REVQVEhfQVRUQUNITUVOVCwgcmVuZGVyYnVmZmVydGFyZ2V0LCBidWZmZXJPYmplY3QpOwogICAg
ICAgICBtX2NvbnRleHQtPmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKHRhcmdldCwgR3JhcGhpY3ND
b250ZXh0M0Q6OlNURU5DSUxfQVRUQUNITUVOVCwgcmVuZGVyYnVmZmVydGFyZ2V0LCBidWZmZXJP
YmplY3QpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBU
SF9BVFRBQ0hNRU5UOgotICAgICAgICBtX2NvbnRleHQtPmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVy
KHRhcmdldCwgYXR0YWNobWVudCwgcmVuZGVyYnVmZmVydGFyZ2V0LCBidWZmZXJPYmplY3QpOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0FUVEFD
SE1FTlQ6Ci0gICAgICAgIG1fY29udGV4dC0+ZnJhbWVidWZmZXJSZW5kZXJidWZmZXIodGFyZ2V0
LCBhdHRhY2htZW50LCByZW5kZXJidWZmZXJ0YXJnZXQsIGJ1ZmZlck9iamVjdCk7Ci0gICAgICAg
IGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIG1fY29udGV4dC0+ZnJhbWVidWZmZXJSZW5k
ZXJidWZmZXIodGFyZ2V0LCBhdHRhY2htZW50LCByZW5kZXJidWZmZXJ0YXJnZXQsIGJ1ZmZlck9i
amVjdCk7CiAgICAgfQpAQCAtMjQyNiw2ICsyNDI1LDEzIEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmcKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbERl
cHRoVGV4dHVyZS5nZXQoKTsKICAgICB9CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUs
ICJFWFRfZHJhd19idWZmZXJzIikgJiYgRVhURHJhd0J1ZmZlcnM6OnN1cHBvcnRlZCh0aGlzKSkg
eworICAgICAgICBpZiAoIW1fZXh0RHJhd0J1ZmZlcnMpIHsKKyAgICAgICAgICAgIG1fY29udGV4
dC0+Z2V0RXh0ZW5zaW9ucygpLT5lbnN1cmVFbmFibGVkKCJHTF9FWFRfZHJhd19idWZmZXJzIik7
CisgICAgICAgICAgICBtX2V4dERyYXdCdWZmZXJzID0gRVhURHJhd0J1ZmZlcnM6OmNyZWF0ZSh0
aGlzKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9leHREcmF3QnVmZmVycy5nZXQoKTsK
KyAgICB9CiAgICAgaWYgKGFsbG93UHJpdmlsZWdlZEV4dGVuc2lvbnMoKSkgewogICAgICAgICBp
ZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8iKSkg
ewogICAgICAgICAgICAgaWYgKCFtX3dlYmdsRGVidWdSZW5kZXJlckluZm8pCkBAIC0yNzA5LDYg
KzI3MTUsNTAgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UAogICAg
ICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKEV4dGVuc2lvbnMzRDo6TUFY
X1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhUKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3Io
R3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlk
IHBhcmFtZXRlciBuYW1lLCBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMgbm90IGVuYWJs
ZWQiKTsKICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIGNhc2UgRXh0ZW5zaW9u
czNEOjpNQVhfQ09MT1JfQVRUQUNITUVOVFNfRVhUOiAvLyBFWFRfZHJhd19idWZmZXJzIEJFR0lO
CisgICAgICAgIGlmIChtX2V4dERyYXdCdWZmZXJzKQorICAgICAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbyhnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCkpOworICAgICAgICBzeW50aGVzaXplR0xF
cnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImlu
dmFsaWQgcGFyYW1ldGVyIG5hbWUsIEVYVF9kcmF3X2J1ZmZlcnMgbm90IGVuYWJsZWQiKTsKKyAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpNQVhf
RFJBV19CVUZGRVJTX0VYVDoKKyAgICAgICAgaWYgKG1fZXh0RHJhd0J1ZmZlcnMpCisgICAgICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKGdldE1heERyYXdCdWZmZXJzKCkpOworICAgICAgICBz
eW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFy
YW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIEVYVF9kcmF3X2J1ZmZlcnMgbm90IGVu
YWJsZWQiKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIGNhc2UgRXh0ZW5z
aW9uczNEOjpEUkFXX0JVRkZFUjBfRVhUOiAvLyBEUkFXX0JVRkZFUjBfRVhUIGlzIHNwZWNpYWwg
YXMgdGhlIGJhY2tidWZmZXIgaXMgc2ltdWxhdGVkLgorICAgICAgICBpZiAobV9leHREcmF3QnVm
ZmVycykgeworICAgICAgICAgICAgR0MzRGludCB2YWx1ZSA9IDA7CisgICAgICAgICAgICBtX2Nv
bnRleHQtPmdldEludGVnZXJ2KHBuYW1lLCAmdmFsdWUpOworICAgICAgICAgICAgaWYgKCFtX2Zy
YW1lYnVmZmVyQmluZGluZyAmJiB2YWx1ZSAhPSBHcmFwaGljc0NvbnRleHQzRDo6Tk9ORSkKKyAg
ICAgICAgICAgICAgICB2YWx1ZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpCQUNLOworICAgICAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgc3ludGhl
c2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRl
ciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBFWFRfZHJhd19idWZmZXJzIG5vdCBlbmFibGVk
Iik7CisgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICBjYXNlIEV4dGVuc2lvbnMz
RDo6RFJBV19CVUZGRVIxX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIy
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIzX0VYVDoKKyAgICBjYXNl
IEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVI0X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6
RFJBV19CVUZGRVI1X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVI2X0VY
VDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVI3X0VYVDoKKyAgICBjYXNlIEV4
dGVuc2lvbnMzRDo6RFJBV19CVUZGRVI4X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJB
V19CVUZGRVI5X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIxMF9FWFQ6
CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSMTFfRVhUOgorICAgIGNhc2UgRXh0
ZW5zaW9uczNEOjpEUkFXX0JVRkZFUjEyX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJB
V19CVUZGRVIxM19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSMTRfRVhU
OgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpEUkFXX0JVRkZFUjE1X0VYVDogLy8gRVhUX2RyYXdf
YnVmZmVycyBFTkQKKyAgICAgICAgaWYgKG1fZXh0RHJhd0J1ZmZlcnMpIHsKKyAgICAgICAgICAg
IGlmIChzdGF0aWNfY2FzdDxHQzNEZW51bT4oRXh0ZW5zaW9uczNEOjpEUkFXX0JVRkZFUjBfRVhU
ICsgZ2V0TWF4RHJhd0J1ZmZlcnMoKSkgPD0gcG5hbWUpIHsKKyAgICAgICAgICAgICAgICBzeW50
aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1l
dGVyIiwgImludmFsaWQgcGFyYW1ldGVyLCBleGNlZWRzIE1BWF9DT0xPUl9BVFRBQ0hNRU5UU19F
WFQiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKKyAgICAgICAg
fQorICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIEVYVF9kcmF3X2J1
ZmZlcnMgbm90IGVuYWJsZWQiKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwogICAg
IGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJ
TlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwog
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CkBAIC0yOTEzLDYgKzI5NjMsOCBAQCBWZWN0
b3I8U3RyaW5nPiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdlCiAgICAgICAgIHJlc3VsdC5hcHBl
bmQoIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpOwogICAgIGlmIChXZWJH
TERlcHRoVGV4dHVyZTo6c3VwcG9ydGVkKGdyYXBoaWNzQ29udGV4dDNEKCkpKQogICAgICAgICBy
ZXN1bHQuYXBwZW5kKCJXRUJLSVRfV0VCR0xfZGVwdGhfdGV4dHVyZSIpOworICAgIGlmIChFWFRE
cmF3QnVmZmVyczo6c3VwcG9ydGVkKHRoaXMpKQorICAgICAgICByZXN1bHQuYXBwZW5kKCJFWFRf
ZHJhd19idWZmZXJzIik7CiAKICAgICBpZiAoYWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9ucygpKSB7
CiAgICAgICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX0FO
R0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIpKQpAQCAtNTMyNiw2ICs1Mzc4LDMxIEBAIGJv
b2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUZyYW0KICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpTVEVOQ0lMX0FUVEFDSE1FTlQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6REVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UOgogICAgICAgICBicmVhazsKKyAgICBjYXNlIEV4
dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDFfRVhUOiAvLyBFWFRfZHJhd19idWZmZXJzIEJF
R0lOCisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQyX0VYVDoKKyAgICBj
YXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDNfRVhUOgorICAgIGNhc2UgRXh0ZW5z
aW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UNF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNP
TE9SX0FUVEFDSE1FTlQ1X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNI
TUVOVDZfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UN19FWFQ6
CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ4X0VYVDoKKyAgICBjYXNl
IEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDlfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9u
czNEOjpDT0xPUl9BVFRBQ0hNRU5UMTBfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xP
Ul9BVFRBQ0hNRU5UMTFfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hN
RU5UMTJfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTNfRVhU
OgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTRfRVhUOgorICAgIGNh
c2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTVfRVhUOiAvLyBFWFRfZHJhd19idWZm
ZXJzIEVORAorICAgIC8vIENPTE9SX0FUVEFDSE1FTlQwX0VYVCBpcyBlcXVhbCB0byBDT0xPUl9B
VFRBQ0hNRU5UMAorICAgICAgICBpZiAoIW1fZXh0RHJhd0J1ZmZlcnMpIHsKKyAgICAgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sIGZ1bmN0
aW9uTmFtZSwgImludmFsaWQgYXR0YWNobWVudCwgRVhUX2RyYXdfYnVmZmVycyBub3QgZW5hYmxl
ZCIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChz
dGF0aWNfY2FzdDxHQzNEZW51bT4oRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMF9FWFQg
KyBnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCkpIDw9IGF0dGFjaG1lbnQpIHsKKyAgICAgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sIGZ1bmN0
aW9uTmFtZSwgImludmFsaWQgYXR0YWNobWVudCwgZXhjZWVkcyBNQVhfRFJBV19CVUZGRVJTX0VY
VCIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4
dDNEOjpJTlZBTElEX0VOVU0sIGZ1bmN0aW9uTmFtZSwgImludmFsaWQgYXR0YWNobWVudCIpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC01ODQyLDYgKzU5MTksMjAgQEAgSW50U2l6ZSBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmNsYW1wZWRDYQogICAgICAgICAgICAgICAgICAgIGNsYW1wKGNh
bnZhcygpLT5oZWlnaHQoKSwgMSwgbV9tYXhWaWV3cG9ydERpbXNbMV0pKTsKIH0KIAorR0MzRGlu
dCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldE1heERyYXdCdWZmZXJzKCkKK3sKKyAgICBpZiAo
IW1fbWF4RHJhd0J1ZmZlcnMgJiYgRVhURHJhd0J1ZmZlcnM6OnN1cHBvcnRlZCh0aGlzKSkKKyAg
ICAgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihFeHRlbnNpb25zM0Q6Ok1BWF9EUkFXX0JVRkZF
UlNfRVhULCAmbV9tYXhEcmF3QnVmZmVycyk7CisgICAgcmV0dXJuIG1fbWF4RHJhd0J1ZmZlcnM7
Cit9CisKK0dDM0RpbnQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRNYXhDb2xvckF0dGFjaG1l
bnRzKCkKK3sKKyAgICBpZiAoIW1fbWF4Q29sb3JBdHRhY2htZW50cyAmJiBFWFREcmF3QnVmZmVy
czo6c3VwcG9ydGVkKHRoaXMpKQorICAgICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KEV4dGVu
c2lvbnMzRDo6TUFYX0NPTE9SX0FUVEFDSE1FTlRTX0VYVCwgJm1fbWF4Q29sb3JBdHRhY2htZW50
cyk7CisgICAgcmV0dXJuIG1fbWF4Q29sb3JBdHRhY2htZW50czsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgJKHJldmlzaW9u
IDE0NDAwMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgRVhURHJhd0J1ZmZlcnM7CiBjbGFzcyBFWFRUZXh0dXJlRmlsdGVyQW5p
c290cm9waWM7CiBjbGFzcyBIVE1MSW1hZ2VFbGVtZW50OwogY2xhc3MgSFRNTFZpZGVvRWxlbWVu
dDsKQEAgLTMyMyw2ICszMjQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKTsK
IAogICBwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBFWFREcmF3QnVmZmVyczsKICAgICBmcmll
bmQgY2xhc3MgV2ViR0xGcmFtZWJ1ZmZlcjsKICAgICBmcmllbmQgY2xhc3MgV2ViR0xPYmplY3Q7
CiAgICAgZnJpZW5kIGNsYXNzIE9FU1ZlcnRleEFycmF5T2JqZWN0OwpAQCAtNDc2LDYgKzQ3OCw5
IEBAIHB1YmxpYzoKICAgICBHQzNEaW50IG1fbWF4VGV4dHVyZUxldmVsOwogICAgIEdDM0RpbnQg
bV9tYXhDdWJlTWFwVGV4dHVyZUxldmVsOwogCisgICAgR0MzRGludCBtX21heERyYXdCdWZmZXJz
OworICAgIEdDM0RpbnQgbV9tYXhDb2xvckF0dGFjaG1lbnRzOworCiAgICAgR0MzRGludCBtX3Bh
Y2tBbGlnbm1lbnQ7CiAgICAgR0MzRGludCBtX3VucGFja0FsaWdubWVudDsKICAgICBib29sIG1f
dW5wYWNrRmxpcFk7CkBAIC01MDksNiArNTE0LDcgQEAgcHVibGljOgogICAgIGludCBtX251bUdM
RXJyb3JzVG9Db25zb2xlQWxsb3dlZDsKIAogICAgIC8vIEVuYWJsZWQgZXh0ZW5zaW9uIG9iamVj
dHMuCisgICAgT3duUHRyPEVYVERyYXdCdWZmZXJzPiBtX2V4dERyYXdCdWZmZXJzOwogICAgIE93
blB0cjxFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWM+IG1fZXh0VGV4dHVyZUZpbHRlckFuaXNv
dHJvcGljOwogICAgIE93blB0cjxPRVNUZXh0dXJlRmxvYXQ+IG1fb2VzVGV4dHVyZUZsb2F0Owog
ICAgIE93blB0cjxPRVNTdGFuZGFyZERlcml2YXRpdmVzPiBtX29lc1N0YW5kYXJkRGVyaXZhdGl2
ZXM7CkBAIC03MzIsNiArNzM4LDExIEBAIHB1YmxpYzoKICAgICAvLyBDbGFtcCB0aGUgd2lkdGgg
YW5kIGhlaWdodCB0byBHTF9NQVhfVklFV1BPUlRfRElNUy4KICAgICBJbnRTaXplIGNsYW1wZWRD
YW52YXNTaXplKCk7CiAKKyAgICAvLyBGaXJzdCB0aW1lIGNhbGxlZCwgaWYgRVhUX2RyYXdfYnVm
ZmVycyBpcyBzdXBwb3J0ZWQsIHF1ZXJ5IHRoZSB2YWx1ZTsgb3RoZXJ3aXNlIHJldHVybiAwLgor
ICAgIC8vIExhdGVyLCByZXR1cm4gdGhlIGNhY2hlZCB2YWx1ZS4KKyAgICBHQzNEaW50IGdldE1h
eERyYXdCdWZmZXJzKCk7CisgICAgR0MzRGludCBnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCk7CisK
ICAgICBmcmllbmQgY2xhc3MgV2ViR0xTdGF0ZVJlc3RvcmVyOwogfTsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9FeHRlbnNpb25zM0RDaHJvbWl1bS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9y
dC9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDE0NDAwMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yMTUsNCArMjE1LDkgQEAgdm9pZCBFeHRlbnNpb25zM0RDaHJv
bWl1bTo6cG9wR3JvdXBNYXJrZQogICAgIG1fcHJpdmF0ZS0+d2ViQ29udGV4dCgpLT5wb3BHcm91
cE1hcmtlckVYVCgpOwogfQogCit2b2lkIEV4dGVuc2lvbnMzRENocm9taXVtOjpkcmF3QnVmZmVy
c0VYVChHQzNEc2l6ZWkgbiwgY29uc3QgR0MzRGVudW0qIGJ1ZnMpCit7CisgICAgbV9wcml2YXRl
LT53ZWJDb250ZXh0KCktPmRyYXdCdWZmZXJzQ2hyb21pdW0obiwgYnVmcyk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0V4dGVuc2lvbnMzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0V4dGVuc2lvbnMzRC5oCShyZXZpc2lvbiAxNDQwMDApCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaAkod29ya2luZyBjb3B5KQpAQCAtNzAs
NiArNzAsNyBAQCBwdWJsaWM6CiAgICAgLy8gICBHTF9FWFRfZGVidWdfbWFya2VyCiAgICAgLy8g
ICBHTF9DSFJPTUlVTV9jb3B5X3RleHR1cmUKICAgICAvLyAgIEdMX0NIUk9NSVVNX2ZsaXB5Cisg
ICAgLy8gICBHTF9BUkJfZHJhd19idWZmZXJzIC8gR0xfRVhUX2RyYXdfYnVmZmVycwogCiAgICAg
Ly8gVGFrZXMgZnVsbCBuYW1lIG9mIGV4dGVuc2lvbjsgZm9yIGV4YW1wbGUsCiAgICAgLy8gIkdM
X0VYVF90ZXh0dXJlX2Zvcm1hdF9CR1JBODg4OCIuCkBAIC0xNTAsNyArMTUxLDQzIEBAIHB1Ymxp
YzoKIAogICAgICAgICAvLyBHTF9DSFJPTUlVTV9jb3B5X3RleHR1cmUKICAgICAgICAgVU5QQUNL
X1BSRU1VTFRJUExZX0FMUEhBX0NIUk9NSVVNID0gMHg5MjQxLAotICAgICAgICBVTlBBQ0tfVU5Q
UkVNVUxUSVBMWV9BTFBIQV9DSFJPTUlVTSA9IDB4OTI0MgorICAgICAgICBVTlBBQ0tfVU5QUkVN
VUxUSVBMWV9BTFBIQV9DSFJPTUlVTSA9IDB4OTI0MiwKKworICAgICAgICAvLyBHTF9BUkJfZHJh
d19idWZmZXJzIC8gR0xfRVhUX2RyYXdfYnVmZmVycworICAgICAgICBNQVhfRFJBV19CVUZGRVJT
X0VYVCA9IDB4ODgyNCwKKyAgICAgICAgRFJBV19CVUZGRVIwX0VYVCA9IDB4ODgyNSwKKyAgICAg
ICAgRFJBV19CVUZGRVIxX0VYVCA9IDB4ODgyNiwKKyAgICAgICAgRFJBV19CVUZGRVIyX0VYVCA9
IDB4ODgyNywKKyAgICAgICAgRFJBV19CVUZGRVIzX0VYVCA9IDB4ODgyOCwKKyAgICAgICAgRFJB
V19CVUZGRVI0X0VYVCA9IDB4ODgyOSwKKyAgICAgICAgRFJBV19CVUZGRVI1X0VYVCA9IDB4ODgy
QSwKKyAgICAgICAgRFJBV19CVUZGRVI2X0VYVCA9IDB4ODgyQiwKKyAgICAgICAgRFJBV19CVUZG
RVI3X0VYVCA9IDB4ODgyQywKKyAgICAgICAgRFJBV19CVUZGRVI4X0VYVCA9IDB4ODgyRCwKKyAg
ICAgICAgRFJBV19CVUZGRVI5X0VYVCA9IDB4ODgyRSwKKyAgICAgICAgRFJBV19CVUZGRVIxMF9F
WFQgPSAweDg4MkYsCisgICAgICAgIERSQVdfQlVGRkVSMTFfRVhUID0gMHg4ODMwLAorICAgICAg
ICBEUkFXX0JVRkZFUjEyX0VYVCA9IDB4ODgzMSwKKyAgICAgICAgRFJBV19CVUZGRVIxM19FWFQg
PSAweDg4MzIsCisgICAgICAgIERSQVdfQlVGRkVSMTRfRVhUID0gMHg4ODMzLAorICAgICAgICBE
UkFXX0JVRkZFUjE1X0VYVCA9IDB4ODgzNCwKKyAgICAgICAgTUFYX0NPTE9SX0FUVEFDSE1FTlRT
X0VYVCA9IDB4OENERiwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDBfRVhUID0gMHg4Q0UwLAor
ICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMV9FWFQgPSAweDhDRTEsCisgICAgICAgIENPTE9SX0FU
VEFDSE1FTlQyX0VYVCA9IDB4OENFMiwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDNfRVhUID0g
MHg4Q0UzLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNF9FWFQgPSAweDhDRTQsCisgICAgICAg
IENPTE9SX0FUVEFDSE1FTlQ1X0VYVCA9IDB4OENFNSwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVO
VDZfRVhUID0gMHg4Q0U2LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UN19FWFQgPSAweDhDRTcs
CisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ4X0VYVCA9IDB4OENFOCwKKyAgICAgICAgQ09MT1Jf
QVRUQUNITUVOVDlfRVhUID0gMHg4Q0U5LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTBfRVhU
ID0gMHg4Q0VBLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTFfRVhUID0gMHg4Q0VCLAorICAg
ICAgICBDT0xPUl9BVFRBQ0hNRU5UMTJfRVhUID0gMHg4Q0VDLAorICAgICAgICBDT0xPUl9BVFRB
Q0hNRU5UMTNfRVhUID0gMHg4Q0VELAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTRfRVhUID0g
MHg4Q0VFLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTVfRVhUID0gMHg4Q0VGCiAgICAgfTsK
IAogICAgIC8vIEdMX0FSQl9yb2J1c3RuZXNzCkBAIC0xOTAsNiArMjI3LDkgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBwdXNoR3JvdXBNYXJrZXJFWFQoY29uc3QgU3RyaW5nJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBwb3BHcm91cE1hcmtlckVYVCh2b2lkKSA9IDA7CiAKKyAgICAvLyBH
TF9BUkJfZHJhd19idWZmZXJzIC8gR0xfRVhUX2RyYXdfYnVmZmVycworICAgIHZpcnR1YWwgdm9p
ZCBkcmF3QnVmZmVyc0VYVChHQzNEc2l6ZWkgbiwgY29uc3QgR0MzRGVudW0qIGJ1ZnMpID0gMDsK
KwogICAgIHZpcnR1YWwgYm9vbCBpc05WSURJQSgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNB
TUQoKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzSW50ZWwoKSA9IDA7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0Qu
Y3BwCShyZXZpc2lvbiAxNDQwMDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQzRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzODksNiArMTM4OSwy
MSBAQCB1bnNpZ25lZCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2xlYXJCaXRzCiB7CiAgICAgc3dp
dGNoIChhdHRhY2htZW50KSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRU
QUNITUVOVDA6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxX0VYVDoK
KyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDJfRVhUOgorICAgIGNhc2Ug
RXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UM19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25z
M0Q6OkNPTE9SX0FUVEFDSE1FTlQ0X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1Jf
QVRUQUNITUVOVDVfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5U
Nl9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ3X0VYVDoKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDhfRVhUOgorICAgIGNhc2UgRXh0
ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UOV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6
OkNPTE9SX0FUVEFDSE1FTlQxMF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FU
VEFDSE1FTlQxMV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQx
Ml9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxM19FWFQ6Cisg
ICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxNF9FWFQ6CisgICAgY2FzZSBF
eHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxNV9FWFQ6CiAgICAgICAgIHJldHVybiBHcmFw
aGljc0NvbnRleHQzRDo6Q09MT1JfQlVGRkVSX0JJVDsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpERVBUSF9BVFRBQ0hNRU5UOgogICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6
OkRFUFRIX0JVRkZFUl9CSVQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgJ
KHJldmlzaW9uIDE0NDAwMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheU9FUyhQ
bGF0Zm9ybTNET2JqZWN0KTsKICAgICB2aXJ0dWFsIHZvaWQgYmluZFZlcnRleEFycmF5T0VTKFBs
YXRmb3JtM0RPYmplY3QpOwogICAgIHZpcnR1YWwgU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJT
b3VyY2VBTkdMRShQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0J1ZmZl
cnNFWFQoR0MzRHNpemVpLCBjb25zdCBHQzNEZW51bSopOwogCiAgICAgZW51bSB7CiAgICAgICAg
IC8vIEdMX09FU19FR0xfaW1hZ2VfZXh0ZXJuYWwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVu
R0wuY3BwCShyZXZpc2lvbiAxNDQwMDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc4
LDkgKzE3OCwxNyBAQCBib29sIEV4dGVuc2lvbnMzRE9wZW5HTDo6c3VwcG9ydHNFeHRlbnNpCiAg
ICAgaWYgKG5hbWUgPT0gIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpCiAgICAg
ICAgIHJldHVybiBtX2F2YWlsYWJsZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0VYVF90ZXh0dXJl
X2ZpbHRlcl9hbmlzb3Ryb3BpYyIpOwogCisgICAgaWYgKG5hbWUgPT0gIkdMX0VYVF9kcmF3X2J1
ZmZlcnMiKQorICAgICAgICByZXR1cm4gbV9hdmFpbGFibGVFeHRlbnNpb25zLmNvbnRhaW5zKCJH
TF9BUkJfZHJhd19idWZmZXJzIik7CisKICAgICByZXR1cm4gbV9hdmFpbGFibGVFeHRlbnNpb25z
LmNvbnRhaW5zKG5hbWUpOwogfQogCit2b2lkIEV4dGVuc2lvbnMzRE9wZW5HTDo6ZHJhd0J1ZmZl
cnNFWFQoR0MzRHNpemVpIG4sIGNvbnN0IEdDM0RlbnVtKiBidWZzKQoreworICAgIDo6Z2xEcmF3
QnVmZmVyc0FSQihuLCBidWZzKTsKK30KKwogU3RyaW5nIEV4dGVuc2lvbnMzRE9wZW5HTDo6Z2V0
RXh0ZW5zaW9ucygpCiB7CiAgICAgcmV0dXJuIFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0
IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnMzRE9wZW5HTC5oCShyZXZpc2lvbiAxNDQwMDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmgJKHdvcmtpbmcgY29weSkKQEAg
LTUxLDYgKzUxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRFdmVudE1hcmtl
ckVYVChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgcHVzaEdyb3VwTWFya2VyRVhU
KGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBwb3BHcm91cE1hcmtlckVYVCh2b2lk
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0J1ZmZlcnNFWFQoR0MzRHNpemVpLCBjb25zdCBHQzNE
ZW51bSopOwogCiBwcm90ZWN0ZWQ6CiAgICAgLy8gVGhpcyBjbGFzcyBvbmx5IG5lZWRzIHRvIGJl
IGluc3RhbnRpYXRlZCBieSBHcmFwaGljc0NvbnRleHQzRCBpbXBsZW1lbnRhdGlvbnMuCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3Bl
bkdMQ29tbW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcAkocmV2aXNpb24gMTQ0MDAw
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMz
RE9wZW5HTENvbW1vbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOCw2ICsxMTgsMTUgQEAgdm9p
ZCBFeHRlbnNpb25zM0RPcGVuR0xDb21tb246OmVuc3VyZUVuYQogICAgICAgICAgICAgQU5HTEVS
ZXNvdXJjZXMuT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzID0gMTsKICAgICAgICAgICAgIGNvbXBp
bGVyLnNldFJlc291cmNlcyhBTkdMRVJlc291cmNlcyk7CiAgICAgICAgIH0KKyAgICB9IGVsc2Ug
aWYgKG5hbWUgPT0gIkdMX0VYVF9kcmF3X2J1ZmZlcnMiKSB7CisgICAgICAgIC8vIEVuYWJsZSBz
dXBwb3J0IGluIEFOR0xFIChpZiBub3QgZW5hYmxlZCBhbHJlYWR5KQorICAgICAgICBBTkdMRVdl
YktpdEJyaWRnZSYgY29tcGlsZXIgPSBtX2NvbnRleHQtPm1fY29tcGlsZXI7CisgICAgICAgIFNo
QnVpbHRJblJlc291cmNlcyBBTkdMRVJlc291cmNlcyA9IGNvbXBpbGVyLmdldFJlc291cmNlcygp
OworICAgICAgICBpZiAoIUFOR0xFUmVzb3VyY2VzLkVYVF9kcmF3X2J1ZmZlcnMpIHsKKyAgICAg
ICAgICAgIEFOR0xFUmVzb3VyY2VzLkVYVF9kcmF3X2J1ZmZlcnMgPSAxOworICAgICAgICAgICAg
bV9jb250ZXh0LT5nZXRJbnRlZ2VydihFeHRlbnNpb25zM0Q6Ok1BWF9EUkFXX0JVRkZFUlNfRVhU
LCAmQU5HTEVSZXNvdXJjZXMuTWF4RHJhd0J1ZmZlcnMpOworICAgICAgICAgICAgY29tcGlsZXIu
c2V0UmVzb3VyY2VzKEFOR0xFUmVzb3VyY2VzKTsKKyAgICAgICAgfQogICAgIH0KIH0KIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9w
ZW5HTENvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uaAkocmV2aXNpb24gMTQ0MDAwKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9w
ZW5HTENvbW1vbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1MCw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBiaW5kVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVj
dCkgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIGRyYXdCdWZmZXJzRVhUKEdDM0RzaXplaSwgY29u
c3QgR0MzRGVudW0qKSA9IDA7CisKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRUcmFuc2xhdGVkU2hh
ZGVyU291cmNlQU5HTEUoUGxhdGZvcm0zRE9iamVjdCk7CiAKICAgICAvLyBFWFQgUm9idXN0bmVz
cyAtIHVzZXMgZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNp
b25zM0RPcGVuR0xFUy5jcHAJKHJldmlzaW9uIDE0NDAwMCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE2MCw2ICsxNjAsMTEgQEAgdm9pZCBFeHRlbnNpb25zM0RPcGVuR0xFUzo6Ymlu
ZFZlcnRleEFycgogICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdMX0lOVkFM
SURfT1BFUkFUSU9OKTsKIH0KIAordm9pZCBFeHRlbnNpb25zM0RPcGVuR0xFUzo6ZHJhd0J1ZmZl
cnNFWFQoR0MzRHNpemVpIG4sIGNvbnN0IEdDM0RlbnVtKiBidWZzKQoreworICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQgdGhlIHN1cHBvcnQuCit9CisKIGludCBFeHRlbnNpb25zM0RPcGVuR0xFUzo6
Z2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBu
b3QgY2FsbCBnZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCLCBidXQgaW5zdGVhZCBnZXRHcmFwaGlj
c1Jlc2V0U3RhdHVzRVhULgpAQCAtMjUwLDYgKzI1NSw5IEBAIGJvb2wgRXh0ZW5zaW9uczNET3Bl
bkdMRVM6OnN1cHBvcnRzRXh0ZW4KICAgICAgICAgICAgIG1fZ2xSZWFkblBpeGVsc0VYVCA9IHJl
aW50ZXJwcmV0X2Nhc3Q8UEZOR0xSRUFETlBJWEVMU0VYVFBST0M+KGVnbEdldFByb2NBZGRyZXNz
KCJnbFJlYWRuUGl4ZWxzRVhUIikpOwogICAgICAgICAgICAgbV9nbEdldG5Vbmlmb3JtZnZFWFQg
PSByZWludGVycHJldF9jYXN0PFBGTkdMR0VUTlVOSUZPUk1GVkVYVFBST0M+KGVnbEdldFByb2NB
ZGRyZXNzKCJnbEdldG5Vbmlmb3JtZnZFWFQiKSk7CiAgICAgICAgICAgICBtX2dsR2V0blVuaWZv
cm1pdkVYVCA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZOR0xHRVROVU5JRk9STUlWRVhUUFJPQz4oZWds
R2V0UHJvY0FkZHJlc3MoImdsR2V0blVuaWZvcm1pdkVYVCIpKTsKKyAgICAgICAgfSBlbHNlIGlm
IChuYW1lID09ICJHTF9FWFRfZHJhd19idWZmZXJzIikgeworICAgICAgICAgICAgLy8gRklYTUU6
IGltcGxlbWVudCB0aGUgc3VwcG9ydC4KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNE
T3BlbkdMRVMuaAkocmV2aXNpb24gMTQ0MDAwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmgJKHdvcmtpbmcgY29weSkKQEAg
LTkwLDYgKzkwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVWZXJ0ZXhBcnJh
eU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKICAgICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzVmVydGV4
QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhB
cnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0J1ZmZlcnNF
WFQoR0MzRHNpemVpLCBjb25zdCBHQzNEZW51bSopOwogCiAgICAgLy8gRVhUIFJvYnVzdG5lc3Mg
LSByZXNldAogICAgIHZpcnR1YWwgaW50IGdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190354</attachid>
            <date>2013-02-26 13:52:46 -0800</date>
            <delta_ts>2013-02-26 14:30:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109331-20130226134900.patch</filename>
            <type>text/plain</type>
            <size>62160</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEzLTAyLTI2ICBaaGVu
eWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgRVhUX2RyYXdfYnVmZmVycyBuZWVk
cyBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA5MzMxCisKKyAgICAgICAgQWRkIEVYVF9kcmF3X2J1ZmZlcnMgc3VwcG9ydCBm
b3IgY2hyb21pdW0gcG9ydC4KKworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJHcmFwaGlj
c0NvbnRleHQzRC5oOgorICAgICAgICAoV2ViR3JhcGhpY3NDb250ZXh0M0QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6ZHJhd0J1ZmZlcnNDaHJvbWl1bSk6CisKIDIw
MTMtMDItMjYgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
Q3JlYXRlIHRoZSBTaGFyZWRHcmFwaGljc0NvbnRleHQzRCB0aHJvdWdoIGl0cyBvd24gbWV0aG9k
LgpJbmRleDogU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRl
eHQzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
R3JhcGhpY3NDb250ZXh0M0QuaAkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00NzIsNiArNDcyLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhc3luY1RleEltYWdl
MkRDSFJPTUlVTShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbCwgV0dDM0RlbnVtIGlu
dGVybmFsZm9ybWF0LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCwgV0dDM0Rp
bnQgYm9yZGVyLCBXR0MzRGVudW0gZm9ybWF0LCBXR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCog
cGl4ZWxzKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXN5bmNUZXhTdWJJbWFnZTJEQ0hST01JVU0o
V0dDM0RlbnVtIHRhcmdldCwgV0dDM0RpbnQgbGV2ZWwsIFdHQzNEaW50IHhvZmZzZXQsIFdHQzNE
aW50IHlvZmZzZXQsIFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0LCBXR0MzRGVu
dW0gZm9ybWF0LCBXR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKSB7IH0KIAorICAg
IC8vIEdMX0VYVF9kcmF3X2J1ZmZlcnMgLyBHTF9BUkJfZHJhd19idWZmZXJzCisgICAgdmlydHVh
bCB2b2lkIGRyYXdCdWZmZXJzQ2hyb21pdW0oV0dDM0RzaXplaSBuLCBjb25zdCBXR0MzRGVudW0q
IGJ1ZnMpIHsgfQorCiAgICAgLy8gRklYTUU6IE1ha2UgaW1wbGVtZW50YXRpb25zIG9mIHRoaXMg
Y2xhc3Mgb3ZlcnJpZGUgdGhpcyBtZXRob2QgaW5zdGVhZCBhbmQgdGhlbiByZW1vdmUgb25DcmVh
dGVHckdMSW50ZXJmYWNlKCkuCiAgICAgdmlydHVhbCBHckdMSW50ZXJmYWNlKiBjcmVhdGVHckdM
SW50ZXJmYWNlKCkgeyByZXR1cm4gb25DcmVhdGVHckdMSW50ZXJmYWNlKCk7IH0KIApJbmRleDog
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOTIgQEAKKzIwMTMtMDItMjYgIFpoZW55YW8gTW8gIDx6
bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBFWFRfZHJhd19idWZmZXJzIG5lZWRzIGltcGxlbWVu
dGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDkzMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgRVhUX2RyYXdfYnVmZmVycyBmb3IgV2ViR0wuCisg
ICAgICAgIG1hYyBPcGVuR0wgcG9ydCBpcyBwYXNzaW5nIGtocm9ub3MgV2ViR0wgY29uZm9ybWFu
Y2UgdGVzdCB3aXRoIHRoaXMgcGF0Y2guIE9wZW5HTCBFUyBwb3J0IGltcGxlbWVudGF0aW9uIGlz
bid0IGFkZGVkIGluIHRoaXMgcGF0Y2guCisgICAgICAgIEFsc28sIGl0IGhhcyB0aGUgV2ViS2l0
IHNpZGUgc3VwcG9ydCBmb3IgY2hyb21pdW0gcG9ydCwgYnV0IHBlbmRpbmcgY29tbWFuZCBidWZm
ZXIgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgQmVzaWRlcyB0aGUgYmFzaWMgZXh0ZW5zaW9u
IGltcGxlbWVudGF0aW9uLCB3ZSBhbHNvIGFkZGVkIGRyYXdCdWZmZXJzKCkgd3JhcHBlciB0byB3
b3JrIGFyb3VuZCBhIG1hYyBkcml2ZXIgYnVnOiBpLmUuLCBkbyBub3QgZW5hYmxlIGEgYnVmZmVy
IGlmIHRoZXJlIGlzIG5vIGF0dGFjaG1lbnQgYWRkZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjp0b0ludDMyKToKKyAgICAgICAg
KFdlYkNvcmU6OnRvVUludDMyKToKKyAgICAgICAgKFdlYkNvcmU6OnRvRmxvYXQpOgorICAgICAg
ICAoV2ViQ29yZTo6dG9JbnQ2NCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjhPYmpl
Y3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkVYVERyYXdCdWZmZXJzOjpFWFRE
cmF3QnVmZmVycyk6CisgICAgICAgIChXZWJDb3JlOjpFWFREcmF3QnVmZmVyczo6fkVYVERyYXdC
dWZmZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkVYVERyYXdCdWZmZXJzOjpnZXROYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVYVERyYXdCdWZmZXJzOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RVhURHJhd0J1ZmZlcnM6OnN1cHBvcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpFWFREcmF3
QnVmZmVyczo6ZHJhd0J1ZmZlcnNFWFQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0VYVERyYXdC
dWZmZXJzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChFWFREcmF3QnVm
ZmVycyk6CisgICAgICAgICogaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaWRsOiBBZGRlZC4K
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xGcmFt
ZWJ1ZmZlcjo6c2V0QXR0YWNobWVudEZvckJvdW5kRnJhbWVidWZmZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xGcmFtZWJ1ZmZlcjo6cmVtb3ZlQXR0YWNobWVudEZyb21Cb3VuZEZyYW1lYnVm
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRnJhbWVidWZmZXI6OmRyYXdCdWZmZXJzKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xGcmFtZWJ1ZmZlcjo6
ZHJhd0J1ZmZlcnNJZk5lY2Vzc2FyeSk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xGcmFt
ZWJ1ZmZlci5oOgorICAgICAgICAoV2ViR0xGcmFtZWJ1ZmZlcik6CisgICAgICAgICogaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplTmV3Q29udGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmZyYW1lYnVmZmVy
UmVuZGVyYnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0RXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0UGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OnZhbGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldE1heERyYXdCdWZmZXJzKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0TWF4Q29sb3JBdHRhY2htZW50
cyk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkdMUmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RDaHJvbWl1bTo6ZHJhd0J1ZmZlcnNFWFQpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9u
czNELmg6CisgICAgICAgIChFeHRlbnNpb25zM0QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpnZXRDbGVhckJpdHNCeUF0dGFjaG1lbnRUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oOgorICAgICAgICAoRXh0
ZW5zaW9uczNEQ2hyb21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9F
eHRlbnNpb25zM0RPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNET3Bl
bkdMOjpzdXBwb3J0c0V4dGVuc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RP
cGVuR0w6OmRyYXdCdWZmZXJzRVhUKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaDoKKyAgICAgICAgKEV4
dGVuc2lvbnMzRE9wZW5HTCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25z
M0RPcGVuR0xDb21tb246OmVuc3VyZUVuYWJsZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uaDoKKyAgICAgICAgKEV4dGVuc2lv
bnMzRE9wZW5HTENvbW1vbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnMzRE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRE9w
ZW5HTEVTOjpkcmF3QnVmZmVyc0VYVCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTEVTOjpzdXBwb3J0c0V4dGVuc2lvbik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmg6CisgICAg
ICAgIChFeHRlbnNpb25zM0RPcGVuR0xFUyk6CisKIDIwMTMtMDItMjYgIENocmlzdGlhbiBCaWVz
aW5nZXIgIDxjYmllc2luZ2VyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBFbXB0eSA8YnV0dG9u
PnMgc2hvdWxkIGNvbGxhcHNlOyBlbXB0eSA8aW5wdXQgdHlwZT0iYnV0dG9uIj4gc2hvdWxkIG5v
dCBjb2xsYXBzZQpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE0NDA5OCkKKysr
IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01MTMsNiAr
NTEzLDcgQEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dC5pZGwKICAgICBodG1sL2NhbnZhcy9EYXRhVmlldy5pZGwKICAgICBodG1s
L2NhbnZhcy9ET01QYXRoLmlkbAorICAgIGh0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbAog
ICAgIGh0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwKICAgICBodG1s
L2NhbnZhcy9GbG9hdDMyQXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5Lmlk
bApAQCAtMTUwNiw2ICsxNTA3LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNT
dHlsZS5jcHAKICAgICBodG1sL2NhbnZhcy9EYXRhVmlldy5jcHAKKyAgICBodG1sL2NhbnZhcy9F
WFREcmF3QnVmZmVycy5jcHAKICAgICBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290
cm9waWMuY3BwCiAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAKICAg
ICBodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuY3BwCkBAIC0yNjQ3LDYgKzI2NDksNyBAQCBp
ZiAoRU5BQkxFX1dFQkdMKQogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlv
bi5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAK
ICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uY3BwCisgICAgICAgIGh0bWwvY2Fu
dmFzL0VYVERyYXdCdWZmZXJzLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmls
dGVyQW5pc290cm9waWMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5jcHAKQEAgLTI2
NTQsNiArMjY1Nyw3IEBAIGlmIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwvY2FudmFzL09F
U0VsZW1lbnRJbmRleFVpbnQuY3BwCiAgICAgKQogICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSURM
X0ZJTEVTCisgICAgICAgIGh0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbAogICAgICAgICBo
dG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaWRsCiAgICAgICAgIGh0bWwv
Y2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL09F
U1RleHR1cmVGbG9hdC5pZGwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2
aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29y
a2luZyBjb3B5KQpAQCAtMzkwLDYgKzM5MCw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwgXAogICAgICQo
V2ViQ29yZSkvaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwv
Y2FudmFzL0RPTVBhdGguaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0VYVERyYXdC
dWZmZXJzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVy
QW5pc290cm9waWMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJh
eS5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbCBcCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE0NDA5OCkKKysrIFNv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTI0OCw2
ICsyNDgsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNFcnJvckNhbGxiYWNrLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFcnJv
ckV2ZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Vycm9yRXZlbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0VYVERyYXdCdWZmZXJzLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0VYVERyYXdCdWZmZXJzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmggXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNFdmVudC5jcHAgXApAQCAtMTUzMiw3ICsxNTM0LDggQEAgZG9tX2JpbmRpbmdf
aWRscyArPSBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
aWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0RhdGFWaWV3LmlkbCBcCi0JJChXZWJDb3Jl
KS9odG1sL2NhbnZhcy9ET01QYXRoLmlkbCBcCisJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9ET01Q
YXRoLmlkbCAKKwkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbCBcCiAJ
JChXZWJDb3JlKS9odG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaWRsIFwK
IAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5pZGwgXAogCSQoV2ViQ29yZSkv
aHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbCBcCkBAIC0zMjc0LDYgKzMyNzcsOCBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaCBcCiAJU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvRE9NUGF0aC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9FWFREcmF3QnVmZmVycy5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERy
YXdCdWZmZXJzLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0
ZXJBbmlzb3Ryb3BpYy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVFRleHR1
cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNT
dGFuZGFyZERlcml2YXRpdmVzLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHJldmlzaW9uIDE0NDA5
OCkKKysrIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTQwMzgs
NiArNDAzOCw3IEBAIGVuYWJsZT8oV0VCR0wpIHsKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xT
aGFkZXIuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0
LmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oIFwKKyAgICAgICAg
aHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL0VYVFRl
eHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRh
cmREZXJpdmF0aXZlcy5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0Lmgg
XApAQCAtNDA3Miw2ICs0MDczLDcgQEAgZW5hYmxlPyhXRUJHTCkgewogICAgICAgICBodG1sL2Nh
bnZhcy9XZWJHTFNoYWRlci5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFNoYWRlclBy
ZWNpc2lvbkZvcm1hdC5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVj
dC5jcHAgXAorICAgICAgICBodG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5jcHAgXAogICAgICAg
ICBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIFwKICAgICAgICAg
aHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAgXAogICAgICAgICBodG1sL2Nh
bnZhcy9PRVNUZXh0dXJlRmxvYXQuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9u
IDE0NDA5OCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpA
QCAtMzY5LDYgKzM2OSw3IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRs
JywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9ET01QYXRoLmlkbCcsCisgICAgICAgICAgICAn
aHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZh
cy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaWRsJywKICAgICAgICAgICAgICdodG1sL2Nh
bnZhcy9GbG9hdDMyQXJyYXkuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9GbG9hdDY0
QXJyYXkuaWRsJywKQEAgLTMzMjcsNiArMzMyOCw4IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52
YXMvRGF0YVZpZXcuY3BwJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9EYXRhVmlldy5oJywK
ICAgICAgICAgICAgICdodG1sL2NhbnZhcy9ET01QYXRoLmgnLAorICAgICAgICAgICAgJ2h0bWwv
Y2FudmFzL0VYVERyYXdCdWZmZXJzLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvRVhU
RHJhd0J1ZmZlcnMuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRl
ckFuaXNvdHJvcGljLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZp
bHRlckFuaXNvdHJvcGljLmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL09FU1N0YW5kYXJk
RGVyaXZhdGl2ZXMuY3BwJywKQEAgLTYzODAsNiArNjM4Myw4IEBACiAgICAgICAgICAgICAnPChQ
Uk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Vycm9yQ2FsbGJhY2suaCcsCiAg
ICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Vycm9y
RXZlbnQuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTRXJyb3JFdmVudC5oJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTRVhURHJhd0J1ZmZlcnMuY3BwJywKKyAgICAgICAgICAgICc8
KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRVhURHJhd0J1ZmZlcnMuaCcs
CiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0VY
VFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMu
aCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0V2ZW50LmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE5MjEs
NiArMTkyMSw4IEBACiAJCTZFQkYwRTU1MTJBODkyOTgwMERCMTcwOSAvKiBXZWJHTEV4dGVuc2lv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVCRjBF
NTMxMkE4OTI5ODAwREIxNzA5IC8qIFdlYkdMRXh0ZW5zaW9uLmggKi87IH07CiAJCTZFQkYwRTc2
MTJBOTg2ODgwMERCMTcwOSAvKiBKU09FU1RleHR1cmVGbG9hdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUJGMEU3NDEyQTk4Njg4MDBEQjE3MDkg
LyogSlNPRVNUZXh0dXJlRmxvYXQuY3BwICovOyB9OwogCQk2RUJGMEU3NzEyQTk4Njg4MDBEQjE3
MDkgLyogSlNPRVNUZXh0dXJlRmxvYXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZFQkYwRTc1MTJBOTg2ODgwMERCMTcwOSAvKiBKU09FU1RleHR1cmVG
bG9hdC5oICovOyB9OworCQk2RUJGMEU3NjEyQTk4Njg4MDBEQjE3MEEgLyogSlNFWFREcmF3QnVm
ZmVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RUJGMEU3NDEyQTk4Njg4MDBEQjE3MEEgLyogSlNFWFREcmF3QnVmZmVycy5jcHAgKi87IH07CisJ
CTZFQkYwRTc3MTJBOTg2ODgwMERCMTcwQSAvKiBKU0VYVERyYXdCdWZmZXJzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUJGMEU3NTEyQTk4Njg4MDBE
QjE3MEEgLyogSlNFWFREcmF3QnVmZmVycy5oICovOyB9OwogCQk2RUQ4NzhDNDE0NzQ5M0Y0MDA0
QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFRDg3OEMyMTQ3NDkzRjQwMDRDMzU5NyAvKiBSZW5kZXJU
YWJsZUNhcHRpb24uY3BwICovOyB9OwogCQk2RUQ4NzhDNTE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVu
ZGVyVGFibGVDYXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2RUQ4NzhDMzE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmgg
Ki87IH07CiAJCTZFRThBNzcyMTBGODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJp
YnV0ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkVFOEE3NzAxMEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAg
Ki87IH07CkBAIC0zODM5LDYgKzM4NDEsOSBAQAogCQk5RkZFM0VBNTExQjVBNDM5MDAzNzg3NEUg
LyogSlNNZW1vcnlJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlGRkUzRUEzMTFCNUE0MzkwMDM3ODc0RSAvKiBKU01lbW9yeUluZm8uY3BwICov
OyB9OwogCQk5RkZFM0VBNjExQjVBNDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RkZFM0VBNDExQjVBNDM5
MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmggKi87IH07CiAJCUEwMEI3MjFBMTFERTY0MjgwMDhB
QjlGRiAvKiBDaGVja2VkSW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMDBCNzIxOTExREU2NDI3MDA4QUI5RkYgLyogQ2hlY2tlZEludC5oICovOyB9
OworCQlBMDI0NTc1MTE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTAyNDU3NEUxNkNFQUEy
NzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmNwcCAqLzsgfTsKKwkJQTAyNDU3NTIxNkNFQUEy
NzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMDI0NTc0RjE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1
ZmZlcnMuaCAqLzsgfTsKKwkJQTAyNDU3NTMxNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZm
ZXJzLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTAyNDU3NTAxNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmlkbCAqLzsgfTsKIAkJ
QTA3RDMzNTUxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTA3RDMz
NTMxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwICov
OyB9OwogCQlBMDdEMzM1NjE1MkI2MzBFMDAxQjYzOTMgLyogSlNXZWJHTFNoYWRlclByZWNpc2lv
bkZvcm1hdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTA3RDMzNTQxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQu
aCAqLzsgfTsKIAkJQTA3RDMzNTgxNTJCNjMyRDAwMUI2MzkzIC8qIFdlYkdMU2hhZGVyUHJlY2lz
aW9uRm9ybWF0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBMDdEMzM1NzE1MkI2MzJEMDAxQjYzOTMgLyogV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQu
aCAqLzsgfTsKQEAgLTkzODgsNiArOTM5Myw4IEBACiAJCTZFQkYwRTUzMTJBODkyOTgwMERCMTcw
OSAvKiBXZWJHTEV4dGVuc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
ZWJHTEV4dGVuc2lvbi5oOyBwYXRoID0gY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFQkYwRTc0MTJBOTg2ODgwMERCMTcwOSAvKiBKU09FU1Rl
eHR1cmVGbG9hdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU09F
U1RleHR1cmVGbG9hdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFQkYwRTc1
MTJBOTg2ODgwMERCMTcwOSAvKiBKU09FU1RleHR1cmVGbG9hdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU09FU1RleHR1cmVGbG9hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk2RUJGMEU3NDEyQTk4Njg4MDBEQjE3MEEgLyogSlNFWFREcmF3QnVmZmVycy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0VYVERyYXdCdWZmZXJz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkVCRjBFNzUxMkE5ODY4ODAwREIx
NzBBIC8qIEpTRVhURHJhd0J1ZmZlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNFWFREcmF3QnVmZmVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RUQ4
NzhDMjE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclRhYmxlQ2FwdGlvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFRDg3OEMzMTQ3NDkzRjQwMDRDMzU5NyAvKiBSZW5k
ZXJUYWJsZUNhcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVy
VGFibGVDYXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFRThBNzcwMTBG
ODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzM5LDYgKzExMzQ2LDkgQEAKIAkJOUZG
RTNFQTMxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lbW9yeUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5RkZFM0VBNDExQjVBNDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVtb3J5SW5mby5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMDBCNzIxOTExREU2NDI3MDA4QUI5RkYgLyogQ2hlY2tl
ZEludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDaGVja2VkSW50Lmg7IHBh
dGggPSBjYW52YXMvQ2hlY2tlZEludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
MDI0NTc0RTE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRVhURHJhd0J1ZmZlcnMuY3BwOyBwYXRoID0gY2Fu
dmFzL0VYVERyYXdCdWZmZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTAy
NDU3NEYxNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEVYVERyYXdCdWZmZXJzLmg7IHBhdGggPSBjYW52YXMvRVhURHJh
d0J1ZmZlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTAyNDU3NTAxNkNFQUEy
NzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBF
WFREcmF3QnVmZmVycy5pZGw7IHBhdGggPSBjYW52YXMvRVhURHJhd0J1ZmZlcnMuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMDdEMzM1MzE1MkI2MzBFMDAxQjYzOTMgLyogSlNX
ZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTA3RDMzNTQxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFk
ZXJQcmVjaXNpb25Gb3JtYXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNX
ZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBMDdEMzM1NzE1MkI2MzJEMDAxQjYzOTMgLyogV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViR0xTaGFkZXJQcmVjaXNpb25G
b3JtYXQuaDsgcGF0aCA9IGNhbnZhcy9XZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU3MDksNiArMTU3MTksOSBAQAogCQk0OTQ4NEZB
RTEwMkNGMDFFMDAxODdERDMgLyogY2FudmFzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQlBMDI0NTc0RTE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1
ZmZlcnMuY3BwICovLAorCQkJCUEwMjQ1NzRGMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVm
ZmVycy5oICovLAorCQkJCUEwMjQ1NzUwMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVy
cy5pZGwgKi8sCiAJCQkJNDlFRUNEQ0MxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVyLmlk
bCAqLywKIAkJCQk0OUVFQ0RDOTEwNTAzQzIzMDAwOTlGQUIgLyogQXJyYXlCdWZmZXJWaWV3Lmlk
bCAqLywKIAkJCQk2RTRFOTFBNzEwRjdGQjMxMDBBMjc3OUMgLyogQ2FudmFzQ29udGV4dEF0dHJp
YnV0ZXMuY3BwICovLApAQCAtMTg5NzksNiArMTg5OTIsOCBAQAogCQkJCTc2OTQ1NjNCMTIxNEQ5
N0MwMDA3Q0JBRSAvKiBKU0RPTVRva2VuTGlzdC5oICovLAogCQkJCTJFMzdFMDAzMTJEQkM1QTQw
MEE2QjIzMyAvKiBKU0RPTVVSTC5jcHAgKi8sCiAJCQkJMkUzN0UwMDQxMkRCQzVBNDAwQTZCMjMz
IC8qIEpTRE9NVVJMLmggKi8sCisJCQkJNkVCRjBFNzQxMkE5ODY4ODAwREIxNzBBIC8qIEpTRVhU
RHJhd0J1ZmZlcnMuY3BwICovLAorCQkJCTZFQkYwRTc1MTJBOTg2ODgwMERCMTcwQSAvKiBKU0VY
VERyYXdCdWZmZXJzLmggKi8sCiAJCQkJNzcyODY5ODExNEZEOUFEQTAwRjQ4NERDIC8qIEpTRVhU
VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcCAqLywKIAkJCQk3NzI4Njk4MjE0RkQ5QURBMDBG
NDg0REMgLyogSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCAqLywKIAkJCQk0OUVFQ0VG
NDEwNTA3MEM0MDAwOTlGQUIgLyogSlNGbG9hdDMyQXJyYXkuY3BwICovLApAQCAtMjQ5MzEsNiAr
MjQ5NDYsNyBAQAogCQkJCUUwRkVGMzcyQjM3QzUzRUFDMUMxRkJFRSAvKiBKU0V2ZW50U291cmNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1RkM3REMyNkNGRTI1NjMyMDBCODVBRTQgLyogSlNFdmVu
dFRhcmdldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzMxNEFDRUMxMDg5MjA4NjAwMEYwRTU2IC8q
IEpTRXhjZXB0aW9uQmFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkVCRjBFNzcxMkE5ODY4ODAw
REIxNzBBIC8qIEpTRVhURHJhd0J1ZmZlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTc3Mjg2OTg0
MTRGRDlBREEwMEY0ODREQyAvKiBKU0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMwMEYwMTUwRTBBMTg5NTAwRkQwNEUzIC8qIEpTRmlsZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODkzQzQ3QjgxMjM4QTA5OTAwMkIzRDg2IC8qIEpTRmlsZUNhbGxiYWNr
LmggaW4gSGVhZGVycyAqLywKQEAgLTI2NjIyLDYgKzI2NjM4LDcgQEAKIAkJCQlGRDUzNzM1MzEz
N0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQjhDRDQ2
MTZEMDQ1OTEwMDBFOENDMCAvKiBTZWxlY3RvckNoZWNrZXJGYXN0UGF0aC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDkxNDAyNTcxNjhFMDJFQzAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFBy
b2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEEwMjQ1NzUyMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CkBAIC0yODI2Niw2ICsyODI4Myw3IEBACiAJCQkJQzZBNzAzMzI1QzlEMEI2Q0RDQkM0RDc3
IC8qIEpTRXZlbnRUYXJnZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2MDkwMjAwRTkxQjhF
QzAwMEM2OEI1IC8qIEpTRXZlbnRUYXJnZXRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MzMxNEFDRUIxMDg5MjA4NjAwMEYwRTU2IC8qIEpTRXhjZXB0aW9uQmFzZS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk2RUJGMEU3NjEyQTk4Njg4MDBEQjE3MEEgLyogSlNFWFREcmF3QnVmZmVycy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3NzI4Njk4MzE0RkQ5QURBMDBGNDg0REMgLyogSlNFWFRU
ZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwMEYwMTQw
RTBBMTg5NTAwRkQwNEUzIC8qIEpTRmlsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTNDNDdC
NzEyMzhBMDk5MDAyQjNEODYgLyogSlNGaWxlQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0yOTgxNyw2ICsyOTgzNSw3IEBACiAJCQkJRkQ1MzczNTIxMzdCNjUxODAwMDA4RENFIC8qIFpl
cm9Qb2xlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxQjhDRDQ1MTZEMDQ1OTEwMDBFOENDMCAv
KiBTZWxlY3RvckNoZWNrZXJGYXN0UGF0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTE0MDI1
NjE2OEUwMkU4MDAyRDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCBpbiBT
b3VyY2VzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMDI0NTc1MTE2Q0VB
QTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwCShyZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDEwICsyOSwxMiBAQAogCiAjaW5jbHVkZSAiSlNXZWJHTFJlbmRlcmluZ0Nv
bnRleHQuaCIKIAorI2luY2x1ZGUgIkVYVERyYXdCdWZmZXJzLmgiCiAjaW5jbHVkZSAiRVhUVGV4
dHVyZUZpbHRlckFuaXNvdHJvcGljLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2lu
Y2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5o
IgorI2luY2x1ZGUgIkpTRVhURHJhd0J1ZmZlcnMuaCIKICNpbmNsdWRlICJKU0VYVFRleHR1cmVG
aWx0ZXJBbmlzb3Ryb3BpYy5oIgogI2luY2x1ZGUgIkpTRmxvYXQzMkFycmF5LmgiCiAjaW5jbHVk
ZSAiSlNIVE1MQ2FudmFzRWxlbWVudC5oIgpAQCAtMTk0LDYgKzE5Niw4IEBAIHN0YXRpYyBKU1Zh
bHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0QKICAgICBzd2l0Y2ggKGV4dGVuc2lvbi0+Z2V0
TmFtZSgpKSB7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xMb3NlQ29udGV4dE5hbWU6
CiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2Vi
R0xMb3NlQ29udGV4dCo+KGV4dGVuc2lvbikpOworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVY
VERyYXdCdWZmZXJzTmFtZToKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0
LCBzdGF0aWNfY2FzdDxFWFREcmF3QnVmZmVycyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2Vi
R0xFeHRlbnNpb246OkVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpY05hbWU6CiAgICAgICAgIHJl
dHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUVGV4dHVyZUZpbHRl
ckFuaXNvdHJvcGljKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VT
U3RhbmRhcmREZXJpdmF0aXZlc05hbWU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOEJpbmRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OEJpbmRpbmcuaAkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhCaW5kaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0Myw2ICsyNDMsMzggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHY4QXJyYXkoUGFzc1Jl
ZlB0cjxET01TdHJpbmdMaXN0Piwgdjg6Oklzb2xhdGUqKTsKIAorICAgIC8vIENvbnZlcnQgYSB2
YWx1ZSB0byBhIDMyLWJpdCBpbnRlZ2VyLiBUaGUgY29udmVyc2lvbiBmYWlscyBpZiB0aGUKKyAg
ICAvLyB2YWx1ZSBjYW5ub3QgYmUgY29udmVydGVkIHRvIGFuIGludGVnZXIgb3IgY29udmVydHMg
dG8gbmFuIG9yIHRvIGFuIGluZmluaXR5LgorICAgIGludCB0b0ludDMyKHY4OjpIYW5kbGU8djg6
OlZhbHVlPiwgYm9vbCYgb2spOworCisgICAgLy8gQ29udmVydCBhIHZhbHVlIHRvIGEgMzItYml0
IGludGVnZXIgYXNzdW1pbmcgdGhlIGNvbnZlcnNpb24gY2Fubm90IGZhaWwuCisgICAgaW5saW5l
IGludCB0b0ludDMyKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKKyAgICB7CisgICAgICAg
IGJvb2wgb2s7CisgICAgICAgIHJldHVybiB0b0ludDMyKHZhbHVlLCBvayk7CisgICAgfQorCisg
ICAgLy8gQ29udmVydCBhIHZhbHVlIHRvIGEgMzItYml0IHVuc2lnbmVkIGludGVnZXIuIFRoZSBj
b252ZXJzaW9uIGZhaWxzIGlmIHRoZQorICAgIC8vIHZhbHVlIGNhbm5vdCBiZSBjb252ZXJ0ZWQg
dG8gYW4gdW5zaWduZWQgaW50ZWdlciBvciBjb252ZXJ0cyB0byBuYW4gb3IgdG8gYW4gaW5maW5p
dHkuCisgICAgdWludDMyX3QgdG9VSW50MzIodjg6OkhhbmRsZTx2ODo6VmFsdWU+LCBib29sJiBv
ayk7CisKKyAgICAvLyBDb252ZXJ0IGEgdmFsdWUgdG8gYSAzMi1iaXQgdW5zaWduZWQgaW50ZWdl
ciBhc3N1bWluZyB0aGUgY29udmVyc2lvbiBjYW5ub3QgZmFpbC4KKyAgICBpbmxpbmUgdWludDMy
X3QgdG9VSW50MzIodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQorICAgIHsKKyAgICAgICAg
Ym9vbCBvazsKKyAgICAgICAgcmV0dXJuIHRvVUludDMyKHZhbHVlLCBvayk7CisgICAgfQorCisg
ICAgaW5saW5lIGZsb2F0IHRvRmxvYXQodjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUpCisgICAg
eworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlLT5OdW1iZXJWYWx1ZSgp
KTsKKyAgICB9CisKKyAgICBpbmxpbmUgbG9uZyBsb25nIHRvSW50NjQodjg6OkxvY2FsPHY4OjpW
YWx1ZT4gdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8bG9uZyBsb25n
Pih2YWx1ZS0+SW50ZWdlclZhbHVlKCkpOworICAgIH0KKwogICAgIHRlbXBsYXRlPGNsYXNzIFQ+
IHN0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czsKIAogICAgIHRlbXBsYXRlPD4KQEAgLTI1NCw2ICsy
ODYsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIH07CiAKICAgICB0ZW1wbGF0ZTw+Cisg
ICAgc3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzPHVuc2lnbmVkPiB7CisgICAgICAgIHN0YXRpYyBp
bmxpbmUgdW5zaWduZWQgbmF0aXZlVmFsdWUoY29uc3Qgdjg6OkhhbmRsZTx2ODo6VmFsdWU+JiB2
YWx1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRvVUludDMyKHZhbHVlKTsKKyAg
ICAgICAgfQorICAgIH07CisKKyAgICB0ZW1wbGF0ZTw+CiAgICAgc3RydWN0IE5hdGl2ZVZhbHVl
VHJhaXRzPGZsb2F0PiB7CiAgICAgICAgIHN0YXRpYyBpbmxpbmUgZmxvYXQgbmF0aXZlVmFsdWUo
Y29uc3Qgdjg6OkhhbmRsZTx2ODo6VmFsdWU+JiB2YWx1ZSkKICAgICAgICAgewpAQCAtMzQ4LDM4
ICszODgsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBQYXNzUmVmUHRyPE5vZGVGaWx0
ZXI+IHRvTm9kZUZpbHRlcih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4pOwogCi0gICAgLy8gQ29udmVy
dCBhIHZhbHVlIHRvIGEgMzItYml0IGludGVnZXIuICBUaGUgY29udmVyc2lvbiBmYWlscyBpZiB0
aGUKLSAgICAvLyB2YWx1ZSBjYW5ub3QgYmUgY29udmVydGVkIHRvIGFuIGludGVnZXIgb3IgY29u
dmVydHMgdG8gbmFuIG9yIHRvIGFuIGluZmluaXR5LgotICAgIGludCB0b0ludDMyKHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB2YWx1ZSwgYm9vbCYgb2spOwotCi0gICAgLy8gQ29udmVydCBhIHZhbHVl
IHRvIGEgMzItYml0IGludGVnZXIgYXNzdW1pbmcgdGhlIGNvbnZlcnNpb24gY2Fubm90IGZhaWwu
Ci0gICAgaW5saW5lIGludCB0b0ludDMyKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKLSAg
ICB7Ci0gICAgICAgIGJvb2wgb2s7Ci0gICAgICAgIHJldHVybiB0b0ludDMyKHZhbHVlLCBvayk7
Ci0gICAgfQotCi0gICAgLy8gQ29udmVydCBhIHZhbHVlIHRvIGEgMzItYml0IHVuc2lnbmVkIGlu
dGVnZXIuICBUaGUgY29udmVyc2lvbiBmYWlscyBpZiB0aGUKLSAgICAvLyB2YWx1ZSBjYW5ub3Qg
YmUgY29udmVydGVkIHRvIGFuIHVuc2lnbmVkIGludGVnZXIgb3IgY29udmVydHMgdG8gbmFuIG9y
IHRvIGFuIGluZmluaXR5LgotICAgIHVpbnQzMl90IHRvVUludDMyKHY4OjpIYW5kbGU8djg6OlZh
bHVlPiB2YWx1ZSwgYm9vbCYgb2spOwotCi0gICAgLy8gQ29udmVydCBhIHZhbHVlIHRvIGEgMzIt
Yml0IHVuc2lnbmVkIGludGVnZXIgYXNzdW1pbmcgdGhlIGNvbnZlcnNpb24gY2Fubm90IGZhaWwu
Ci0gICAgaW5saW5lIHVpbnQzMl90IHRvVUludDMyKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1
ZSkKLSAgICB7Ci0gICAgICAgIGJvb2wgb2s7Ci0gICAgICAgIHJldHVybiB0b1VJbnQzMih2YWx1
ZSwgb2spOwotICAgIH0KLQotICAgIGlubGluZSBmbG9hdCB0b0Zsb2F0KHY4OjpMb2NhbDx2ODo6
VmFsdWU+IHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pih2
YWx1ZS0+TnVtYmVyVmFsdWUoKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIGxvbmcgbG9uZyB0b0lu
dDY0KHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGxvbmcgbG9uZz4odmFsdWUtPkludGVnZXJWYWx1ZSgpKTsKLSAgICB9Ci0KICAg
ICBpbmxpbmUgYm9vbCBpc1VuZGVmaW5lZE9yTnVsbCh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFs
dWUpCiAgICAgewogICAgICAgICByZXR1cm4gdmFsdWUtPklzTnVsbCgpIHx8IHZhbHVlLT5Jc1Vu
ZGVmaW5lZCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCShy
ZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICsz
OCw3IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJWOEFycmF5QnVm
ZmVyVmlldy5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4RVhURHJhd0J1
ZmZlcnMuaCIKICNpbmNsdWRlICJWOEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIgogI2lu
Y2x1ZGUgIlY4RmxvYXQzMkFycmF5LmgiCiAjaW5jbHVkZSAiVjhIVE1MQ2FudmFzRWxlbWVudC5o
IgpAQCAtMTc2LDYgKzE3NywxMCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhP
YmplY3QoCiAgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xM
b3NlQ29udGV4dCo+KGV4dGVuc2lvbiksIGNvbnRleHRPYmplY3QsIGlzb2xhdGUpOwogICAgICAg
ICByZWZlcmVuY2VOYW1lID0gIndlYkdMTG9zZUNvbnRleHROYW1lIjsKICAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6RVhURHJhd0J1ZmZlcnNOYW1lOgorICAgICAgICBl
eHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PEVYVERyYXdCdWZmZXJzKj4oZXh0ZW5z
aW9uKSwgY29udGV4dE9iamVjdCwgaXNvbGF0ZSk7CisgICAgICAgIHJlZmVyZW5jZU5hbWUgPSAi
ZXh0RHJhd0J1ZmZlcnNOYW1lIjsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJHTEV4dGVu
c2lvbjo6RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljTmFtZToKICAgICAgICAgZXh0ZW5zaW9u
T2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMqPihl
eHRlbnNpb24pLCBjb250ZXh0T2JqZWN0LCBpc29sYXRlKTsKICAgICAgICAgcmVmZXJlbmNlTmFt
ZSA9ICJleHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWNOYW1lIjsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5jcHAJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5jcHAJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFC
TEUoV0VCR0wpCisKKyNpbmNsdWRlICJFWFREcmF3QnVmZmVycy5oIgorCisjaW5jbHVkZSAiRXh0
ZW5zaW9uczNELmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRVhURHJhd0J1ZmZlcnM6OkVY
VERyYXdCdWZmZXJzKFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKKyAgICA6IFdlYkdM
RXh0ZW5zaW9uKGNvbnRleHQpCit7Cit9CisKK0VYVERyYXdCdWZmZXJzOjp+RVhURHJhd0J1ZmZl
cnMoKQoreworfQorCitXZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9uTmFtZSBFWFREcmF3QnVmZmVy
czo6Z2V0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYkdMRXh0ZW5zaW9uOjpFWFREcmF3
QnVmZmVyc05hbWU7Cit9CisKK1Bhc3NPd25QdHI8RVhURHJhd0J1ZmZlcnM+IEVYVERyYXdCdWZm
ZXJzOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQoreworICAgIEVYVERy
YXdCdWZmZXJzKiB4ID0gbmV3IEVYVERyYXdCdWZmZXJzKGNvbnRleHQpOworICAgIHJldHVybiBh
ZG9wdFB0cih4KTsKK30KKworLy8gc3RhdGljCitib29sIEVYVERyYXdCdWZmZXJzOjpzdXBwb3J0
ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQoreworICAgIEV4dGVuc2lvbnMzRCog
ZXh0ZW5zaW9ucyA9IGNvbnRleHQtPmdyYXBoaWNzQ29udGV4dDNEKCktPmdldEV4dGVuc2lvbnMo
KTsKKyAgICByZXR1cm4gZXh0ZW5zaW9ucy0+c3VwcG9ydHMoIkdMX0VYVF9kcmF3X2J1ZmZlcnMi
KTsKK30KKwordm9pZCBFWFREcmF3QnVmZmVyczo6ZHJhd0J1ZmZlcnNFWFQoY29uc3QgVmVjdG9y
PEdDM0RlbnVtPiYgYnVmZmVycykKK3sKKyAgICBpZiAobV9jb250ZXh0LT5pc0NvbnRleHRMb3N0
KCkpCisgICAgICAgIHJldHVybjsKKyAgICBHQzNEc2l6ZWkgbiA9IGJ1ZmZlcnMuc2l6ZSgpOwor
ICAgIGNvbnN0IEdDM0RlbnVtKiBidWZzID0gYnVmZmVycy5kYXRhKCk7CisgICAgaWYgKCFtX2Nv
bnRleHQtPm1fZnJhbWVidWZmZXJCaW5kaW5nKSB7CisgICAgICAgIGlmIChuICE9IDEpIHsKKyAg
ICAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfVkFMVUUsICJkcmF3QnVmZmVyc0VYVCIsICJtb3JlIHRoYW4gb25lIGJ1ZmZlciIp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChidWZzWzBdICE9
IEdyYXBoaWNzQ29udGV4dDNEOjpCQUNLICYmIGJ1ZnNbMF0gIT0gR3JhcGhpY3NDb250ZXh0M0Q6
Ok5PTkUpIHsKKyAgICAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhp
Y3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCAiZHJhd0J1ZmZlcnNFWFQiLCAiQkFDSyBv
ciBOT05FIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gQmVj
YXVzZSB0aGUgYmFja2J1ZmZlciBpcyBzaW11bGF0ZWQgd2UgbmVlZCB0byBjaGFuZ2UgQkFDSyB0
byBDT0xPUl9BVFRBQ0hNRU5UMAorICAgICAgICBHQzNEZW51bSB2YWx1ZSA9IChidWZzWzBdID09
IEdyYXBoaWNzQ29udGV4dDNEOjpCQUNLKSA/IEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRB
Q0hNRU5UMCA6IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FOworICAgICAgICBtX2NvbnRleHQtPmdy
YXBoaWNzQ29udGV4dDNEKCktPmdldEV4dGVuc2lvbnMoKS0+ZHJhd0J1ZmZlcnNFWFQoMSwgJnZh
bHVlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobiA+IG1fY29udGV4dC0+Z2V0TWF4RHJh
d0J1ZmZlcnMoKSkgeworICAgICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSwgImRyYXdCdWZmZXJzRVhUIiwgIm1vcmUg
dGhhbiBtYXggZHJhdyBidWZmZXJzIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICAgICAgZm9yIChHQzNEc2l6ZWkgaSA9IDA7IGkgPCBuOyArK2kpIHsKKyAgICAgICAgICAg
IGlmIChidWZzW2ldICE9IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FICYmIGJ1ZnNbaV0gIT0gc3Rh
dGljX2Nhc3Q8R0MzRGVudW0+KEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDBfRVhUICsg
aSkpIHsKKyAgICAgICAgICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgImRyYXdCdWZmZXJzRVhUIiwgIkNPTE9S
X0FUVEFDSE1FTlRpX0VYVCBvciBOT05FIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1fY29udGV4dC0+bV9mcmFtZWJ1ZmZlckJp
bmRpbmctPmRyYXdCdWZmZXJzKGJ1ZmZlcnMpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQoKUHJvcGVydHkgY2hhbmdlcyBvbjog
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuY3BwCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
QWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0VYVERyYXdCdWZmZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIEVYVERyYXdCdWZmZXJzX2gKKyNkZWZpbmUgRVhURHJhd0J1ZmZl
cnNfaAorCisjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVYVERyYXdCdWZmZXJzIDog
cHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxF
WFREcmF3QnVmZmVycz4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworCisgICAgc3Rh
dGljIGJvb2wgc3VwcG9ydGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworCisgICAgdmlydHVh
bCB+RVhURHJhd0J1ZmZlcnMoKTsKKyAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgp
IGNvbnN0OworCisgICAgdm9pZCBkcmF3QnVmZmVyc0VYVChjb25zdCBWZWN0b3I8R0MzRGVudW0+
JiBidWZmZXJzKTsKKworcHJpdmF0ZToKKyAgICBFWFREcmF3QnVmZmVycyhXZWJHTFJlbmRlcmlu
Z0NvbnRleHQqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVY
VERyYXdCdWZmZXJzX2gKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0VYVERyYXdCdWZmZXJzLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQog
ICArIExGCgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZm
ZXJzLmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERy
YXdCdWZmZXJzLmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK3R5cGVk
ZWYgdW5zaWduZWQgbG9uZyBHTGVudW07CisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAg
ICBKU0dlbmVyYXRlSXNSZWFjaGFibGU9SW1wbENvbnRleHQsCisgICAgT21pdENvbnN0cnVjdG9y
LAorICAgIERvTm90Q2hlY2tDb25zdGFudHMKK10gaW50ZXJmYWNlIEVYVERyYXdCdWZmZXJzIHsK
KyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDBfRVhUID0gMHg4Q0UwOworICAgIGNv
bnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UMV9FWFQgPSAweDhDRTE7CisgICAgY29uc3QgR0xl
bnVtIENPTE9SX0FUVEFDSE1FTlQyX0VYVCA9IDB4OENFMjsKKyAgICBjb25zdCBHTGVudW0gQ09M
T1JfQVRUQUNITUVOVDNfRVhUID0gMHg4Q0UzOworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRB
Q0hNRU5UNF9FWFQgPSAweDhDRTQ7CisgICAgY29uc3QgR0xlbnVtIENPTE9SX0FUVEFDSE1FTlQ1
X0VYVCA9IDB4OENFNTsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDZfRVhUID0g
MHg4Q0U2OworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UN19FWFQgPSAweDhDRTc7
CisgICAgY29uc3QgR0xlbnVtIENPTE9SX0FUVEFDSE1FTlQ4X0VYVCA9IDB4OENFODsKKyAgICBj
b25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDlfRVhUID0gMHg4Q0U5OworICAgIGNvbnN0IEdM
ZW51bSBDT0xPUl9BVFRBQ0hNRU5UMTBfRVhUID0gMHg4Q0VBOworICAgIGNvbnN0IEdMZW51bSBD
T0xPUl9BVFRBQ0hNRU5UMTFfRVhUID0gMHg4Q0VCOworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9B
VFRBQ0hNRU5UMTJfRVhUID0gMHg4Q0VDOworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hN
RU5UMTNfRVhUID0gMHg4Q0VEOworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UMTRf
RVhUID0gMHg4Q0VFOworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UMTVfRVhUID0g
MHg4Q0VGOworCisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSMF9FWFQgPSAweDg4MjU7Cisg
ICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSMV9FWFQgPSAweDg4MjY7CisgICAgY29uc3QgR0xl
bnVtIERSQVdfQlVGRkVSMl9FWFQgPSAweDg4Mjc7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVG
RkVSM19FWFQgPSAweDg4Mjg7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSNF9FWFQgPSAw
eDg4Mjk7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSNV9FWFQgPSAweDg4MkE7CisgICAg
Y29uc3QgR0xlbnVtIERSQVdfQlVGRkVSNl9FWFQgPSAweDg4MkI7CisgICAgY29uc3QgR0xlbnVt
IERSQVdfQlVGRkVSN19FWFQgPSAweDg4MkM7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVS
OF9FWFQgPSAweDg4MkQ7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSOV9FWFQgPSAweDg4
MkU7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSMTBfRVhUID0gMHg4ODJGOworICAgIGNv
bnN0IEdMZW51bSBEUkFXX0JVRkZFUjExX0VYVCA9IDB4ODgzMDsKKyAgICBjb25zdCBHTGVudW0g
RFJBV19CVUZGRVIxMl9FWFQgPSAweDg4MzE7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVS
MTNfRVhUID0gMHg4ODMyOworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjE0X0VYVCA9IDB4
ODgzMzsKKyAgICBjb25zdCBHTGVudW0gRFJBV19CVUZGRVIxNV9FWFQgPSAweDg4MzQ7CisKKyAg
ICBjb25zdCBHTGVudW0gTUFYX0NPTE9SX0FUVEFDSE1FTlRTX0VYVCA9IDB4OENERjsKKyAgICBj
b25zdCBHTGVudW0gTUFYX0RSQVdfQlVGRkVSU19FWFQgPSAweDg4MjQ7CisKKyAgICB2b2lkIGRy
YXdCdWZmZXJzRVhUKGluIHNlcXVlbmNlPEdMZW51bT4gYnVmZmVycyk7Cit9OwoKUHJvcGVydHkg
Y2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaWRs
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaAkocmV2aXNpb24gMTQ0MDk4KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaAkod29ya2luZyBj
b3B5KQpAQCAtMzYsNiArMzYsNyBAQCBwdWJsaWM6CiAgICAgLy8gRXh0ZW5zaW9uIG5hbWVzIGFy
ZSBuZWVkZWQgdG8gcHJvcGVybHkgd3JhcCBpbnN0YW5jZXMgaW4gSmF2YVNjcmlwdCBvYmplY3Rz
LgogICAgIGVudW0gRXh0ZW5zaW9uTmFtZSB7CiAgICAgICAgIFdlYkdMTG9zZUNvbnRleHROYW1l
LAorICAgICAgICBFWFREcmF3QnVmZmVyc05hbWUsCiAgICAgICAgIEVYVFRleHR1cmVGaWx0ZXJB
bmlzb3Ryb3BpY05hbWUsCiAgICAgICAgIE9FU1RleHR1cmVGbG9hdE5hbWUsCiAgICAgICAgIE9F
U1N0YW5kYXJkRGVyaXZhdGl2ZXNOYW1lLApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAJKHJldmlzaW9uIDE0NDA5OCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw2ICsyOSw4IEBACiAKICNpbmNsdWRlICJXZWJHTEZyYW1lYnVmZmVyLmgiCiAKKyNp
bmNsdWRlICJFWFREcmF3QnVmZmVycy5oIgorI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgogI2lu
Y2x1ZGUgIldlYkdMQ29udGV4dEdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmgiCiAKQEAgLTI5Miw2ICsyOTQsNyBAQCB2b2lkIFdlYkdMRnJhbWVidWZmZXI6OnNldEF0
dGFjaG1lbnRGb3JCCiAgICAgICAgIHJldHVybjsKICAgICBpZiAodGV4dHVyZSAmJiB0ZXh0dXJl
LT5vYmplY3QoKSkgewogICAgICAgICBtX2F0dGFjaG1lbnRzLmFkZChhdHRhY2htZW50LCBXZWJH
TFRleHR1cmVBdHRhY2htZW50OjpjcmVhdGUodGV4dHVyZSwgdGV4VGFyZ2V0LCBsZXZlbCkpOwor
ICAgICAgICBkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5KGZhbHNlKTsKICAgICAgICAgdGV4dHVyZS0+
b25BdHRhY2hlZCgpOwogICAgIH0KIH0KQEAgLTMwNCw2ICszMDcsNyBAQCB2b2lkIFdlYkdMRnJh
bWVidWZmZXI6OnNldEF0dGFjaG1lbnRGb3JCCiAgICAgICAgIHJldHVybjsKICAgICBpZiAocmVu
ZGVyYnVmZmVyICYmIHJlbmRlcmJ1ZmZlci0+b2JqZWN0KCkpIHsKICAgICAgICAgbV9hdHRhY2ht
ZW50cy5hZGQoYXR0YWNobWVudCwgV2ViR0xSZW5kZXJidWZmZXJBdHRhY2htZW50OjpjcmVhdGUo
cmVuZGVyYnVmZmVyKSk7CisgICAgICAgIGRyYXdCdWZmZXJzSWZOZWNlc3NhcnkoZmFsc2UpOwog
ICAgICAgICByZW5kZXJidWZmZXItPm9uQXR0YWNoZWQoKTsKICAgICB9CiB9CkBAIC0zNDAsNiAr
MzQ0LDcgQEAgdm9pZCBXZWJHTEZyYW1lYnVmZmVyOjpyZW1vdmVBdHRhY2htZW50RgogICAgIGlm
IChhdHRhY2htZW50T2JqZWN0KSB7CiAgICAgICAgIGF0dGFjaG1lbnRPYmplY3QtPm9uRGV0YWNo
ZWQoY29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpKTsKICAgICAgICAgbV9hdHRhY2htZW50
cy5yZW1vdmUoYXR0YWNobWVudCk7CisgICAgICAgIGRyYXdCdWZmZXJzSWZOZWNlc3NhcnkoZmFs
c2UpOwogICAgICAgICBzd2l0Y2ggKGF0dGFjaG1lbnQpIHsKICAgICAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6REVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UOgogICAgICAgICAgICAgYXR0YWNo
KEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRBQ0hNRU5ULCBHcmFwaGljc0NvbnRleHQzRDo6
REVQVEhfQVRUQUNITUVOVCk7CkBAIC01ODUsNiArNTkwLDM5IEBAIGJvb2wgV2ViR0xGcmFtZWJ1
ZmZlcjo6aXNCb3VuZCgpIGNvbnN0CiAgICAgcmV0dXJuIChjb250ZXh0KCktPm1fZnJhbWVidWZm
ZXJCaW5kaW5nLmdldCgpID09IHRoaXMpOwogfQogCit2b2lkIFdlYkdMRnJhbWVidWZmZXI6OmRy
YXdCdWZmZXJzKGNvbnN0IFZlY3RvcjxHQzNEZW51bT4mIGJ1ZnMpCit7CisgICAgbV9kcmF3QnVm
ZmVycyA9IGJ1ZnM7CisgICAgbV9maWx0ZXJlZERyYXdCdWZmZXJzLnJlc2l6ZShtX2RyYXdCdWZm
ZXJzLnNpemUoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2ZpbHRlcmVkRHJhd0J1
ZmZlcnMuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fZmlsdGVyZWREcmF3QnVmZmVyc1tpXSA9IEdy
YXBoaWNzQ29udGV4dDNEOjpOT05FOworICAgIGRyYXdCdWZmZXJzSWZOZWNlc3NhcnkodHJ1ZSk7
Cit9CisKK3ZvaWQgV2ViR0xGcmFtZWJ1ZmZlcjo6ZHJhd0J1ZmZlcnNJZk5lY2Vzc2FyeShib29s
IGZvcmNlKQoreworICAgIGlmICghY29udGV4dCgpLT5tX2V4dERyYXdCdWZmZXJzKQorICAgICAg
ICByZXR1cm47CisgICAgYm9vbCByZXNldCA9IGZvcmNlOworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9kcmF3QnVmZmVycy5zaXplKCk7IGkrKykgeworICAgICAgICBpZiAobV9kcmF3QnVm
ZmVyc1tpXSAhPSBHcmFwaGljc0NvbnRleHQzRDo6Tk9ORSAmJiBnZXRBdHRhY2htZW50KG1fZHJh
d0J1ZmZlcnNbaV0pKSB7CisgICAgICAgICAgICBpZiAobV9maWx0ZXJlZERyYXdCdWZmZXJzW2ld
ICE9IG1fZHJhd0J1ZmZlcnNbaV0pIHsKKyAgICAgICAgICAgICAgICBtX2ZpbHRlcmVkRHJhd0J1
ZmZlcnNbaV0gPSBtX2RyYXdCdWZmZXJzW2ldOworICAgICAgICAgICAgICAgIHJlc2V0ID0gdHJ1
ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChtX2Zp
bHRlcmVkRHJhd0J1ZmZlcnNbaV0gIT0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUpIHsKKyAgICAg
ICAgICAgICAgICBtX2ZpbHRlcmVkRHJhd0J1ZmZlcnNbaV0gPSBHcmFwaGljc0NvbnRleHQzRDo6
Tk9ORTsKKyAgICAgICAgICAgICAgICByZXNldCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICB9CisgICAgaWYgKHJlc2V0KSB7CisgICAgICAgIGNvbnRleHQoKS0+Z3JhcGhp
Y3NDb250ZXh0M0QoKS0+Z2V0RXh0ZW5zaW9ucygpLT5kcmF3QnVmZmVyc0VYVCgKKyAgICAgICAg
ICAgIG1fZmlsdGVyZWREcmF3QnVmZmVycy5zaXplKCksIG1fZmlsdGVyZWREcmF3QnVmZmVycy5k
YXRhKCkpOworICAgIH0KK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaAkocmV2aXNp
b24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC05NSw2ICs5NSw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
aGFzU3RlbmNpbEJ1ZmZlcigpIGNvbnN0OwogCisgICAgLy8gV3JhcHBlciBmb3IgZHJhd0J1ZmZl
cnNFWFQvZHJhd0J1ZmZlcnNBUkIgdG8gd29yayBhcm91bmQgYSBkcml2ZXIgYnVnLgorICAgIHZv
aWQgZHJhd0J1ZmZlcnMoY29uc3QgVmVjdG9yPEdDM0RlbnVtPiYgYnVmcyk7CisKIHByb3RlY3Rl
ZDoKICAgICBXZWJHTEZyYW1lYnVmZmVyKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwogCkBAIC0x
MTQsMTEgKzExNywxNyBAQCBwcml2YXRlOgogICAgIC8vIGF0dGFjaCAnYXR0YWNobWVudCcgYXQg
J2F0dGFjaG1lbnRQb2ludCcuCiAgICAgdm9pZCBhdHRhY2goR0MzRGVudW0gYXR0YWNobWVudCwg
R0MzRGVudW0gYXR0YWNobWVudFBvaW50KTsKIAorICAgIC8vIENoZWNrIGlmIGEgbmV3IGRyYXdC
dWZmZXJzIGNhbGwgc2hvdWxkIGJlIGlzc3VlZC4gVGhpcyBpcyBjYWxsZWQgd2hlbiB3ZSBhZGQg
b3IgcmVtb3ZlIGFuIGF0dGFjaG1lbnQuCisgICAgdm9pZCBkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5
KGJvb2wgZm9yY2UpOworCiAgICAgdHlwZWRlZiBXVEY6Okhhc2hNYXA8R0MzRGVudW0sIFJlZlB0
cjxXZWJHTEF0dGFjaG1lbnQ+ID4gQXR0YWNobWVudE1hcDsKIAogICAgIEF0dGFjaG1lbnRNYXAg
bV9hdHRhY2htZW50czsKIAogICAgIGJvb2wgbV9oYXNFdmVyQmVlbkJvdW5kOworCisgICAgVmVj
dG9yPEdDM0RlbnVtPiBtX2RyYXdCdWZmZXJzOworICAgIFZlY3RvcjxHQzNEZW51bT4gbV9maWx0
ZXJlZERyYXdCdWZmZXJzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
Y3BwCShyZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAj
aW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDaGVja2VkSW50LmgiCiAjaW5jbHVk
ZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRVhURHJhd0J1ZmZlcnMuaCIKICNpbmNsdWRlICJF
WFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNELmgiCkBAIC01MzgsNiArNTM5LDEwIEBAIHZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplTmUKICAgICBtX21heFJlbmRlcmJ1ZmZlclNp
emUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6Ok1B
WF9SRU5ERVJCVUZGRVJfU0laRSwgJm1fbWF4UmVuZGVyYnVmZmVyU2l6ZSk7CiAKKyAgICAvLyBU
aGVzZSB0d28gdmFsdWVzIGZyb20gRVhUX2RyYXdfYnVmZmVycyBhcmUgbGF6aWx5IHF1ZXJpZWQu
CisgICAgbV9tYXhEcmF3QnVmZmVycyA9IDA7CisgICAgbV9tYXhDb2xvckF0dGFjaG1lbnRzID0g
MDsKKwogICAgIG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdE9FUzo6Y3JlYXRlKHRoaXMsIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OlZhb1R5cGVE
ZWZhdWx0KTsKICAgICBhZGRDb250ZXh0T2JqZWN0KG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0
LmdldCgpKTsKICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBtX2RlZmF1bHRWZXJ0ZXhB
cnJheU9iamVjdDsKQEAgLTIxNTMsMTIgKzIxNTgsNiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6ZnJhbWVidWZmZXJSCiAgICAgICAgIG1fY29udGV4dC0+ZnJhbWVidWZmZXJSZW5kZXJi
dWZmZXIodGFyZ2V0LCBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQVRUQUNITUVOVCwgcmVuZGVy
YnVmZmVydGFyZ2V0LCBidWZmZXJPYmplY3QpOwogICAgICAgICBtX2NvbnRleHQtPmZyYW1lYnVm
ZmVyUmVuZGVyYnVmZmVyKHRhcmdldCwgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQVRUQUNI
TUVOVCwgcmVuZGVyYnVmZmVydGFyZ2V0LCBidWZmZXJPYmplY3QpOwogICAgICAgICBicmVhazsK
LSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRBQ0hNRU5UOgotICAgICAgICBt
X2NvbnRleHQtPmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKHRhcmdldCwgYXR0YWNobWVudCwgcmVu
ZGVyYnVmZmVydGFyZ2V0LCBidWZmZXJPYmplY3QpOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0FUVEFDSE1FTlQ6Ci0gICAgICAgIG1fY29udGV4
dC0+ZnJhbWVidWZmZXJSZW5kZXJidWZmZXIodGFyZ2V0LCBhdHRhY2htZW50LCByZW5kZXJidWZm
ZXJ0YXJnZXQsIGJ1ZmZlck9iamVjdCk7Ci0gICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIG1fY29udGV4dC0+ZnJhbWVidWZmZXJSZW5kZXJidWZmZXIodGFyZ2V0LCBhdHRhY2ht
ZW50LCByZW5kZXJidWZmZXJ0YXJnZXQsIGJ1ZmZlck9iamVjdCk7CiAgICAgfQpAQCAtMjQyNiw2
ICsyNDI1LDEzIEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmcKICAg
ICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbERlcHRoVGV4dHVyZS5nZXQoKTsKICAgICB9
CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJFWFRfZHJhd19idWZmZXJzIikgJiYg
RVhURHJhd0J1ZmZlcnM6OnN1cHBvcnRlZCh0aGlzKSkgeworICAgICAgICBpZiAoIW1fZXh0RHJh
d0J1ZmZlcnMpIHsKKyAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5lbnN1
cmVFbmFibGVkKCJHTF9FWFRfZHJhd19idWZmZXJzIik7CisgICAgICAgICAgICBtX2V4dERyYXdC
dWZmZXJzID0gRVhURHJhd0J1ZmZlcnM6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gbV9leHREcmF3QnVmZmVycy5nZXQoKTsKKyAgICB9CiAgICAgaWYgKGFsbG93UHJp
dmlsZWdlZEV4dGVuc2lvbnMoKSkgewogICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFt
ZSwgIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8iKSkgewogICAgICAgICAgICAgaWYgKCFtX3dl
YmdsRGVidWdSZW5kZXJlckluZm8pCkBAIC0yNzA5LDYgKzI3MTUsNTAgQEAgV2ViR0xHZXRJbmZv
IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UAogICAgICAgICAgICAgcmV0dXJuIGdldFVuc2ln
bmVkSW50UGFyYW1ldGVyKEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlf
RVhUKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBFWFRfdGV4
dHVyZV9maWx0ZXJfYW5pc290cm9waWMgbm90IGVuYWJsZWQiKTsKICAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbygpOworICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpNQVhfQ09MT1JfQVRUQUNITUVO
VFNfRVhUOiAvLyBFWFRfZHJhd19idWZmZXJzIEJFR0lOCisgICAgICAgIGlmIChtX2V4dERyYXdC
dWZmZXJzKQorICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhnZXRNYXhDb2xvckF0dGFj
aG1lbnRzKCkpOworICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6
SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIEVY
VF9kcmF3X2J1ZmZlcnMgbm90IGVuYWJsZWQiKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpNQVhfRFJBV19CVUZGRVJTX0VYVDoKKyAgICAg
ICAgaWYgKG1fZXh0RHJhd0J1ZmZlcnMpCisgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KGdldE1heERyYXdCdWZmZXJzKCkpOworICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGlj
c0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1l
dGVyIG5hbWUsIEVYVF9kcmF3X2J1ZmZlcnMgbm90IGVuYWJsZWQiKTsKKyAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbygpOworICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpEUkFXX0JVRkZFUjBfRVhU
OiAvLyBEUkFXX0JVRkZFUjBfRVhUIGlzIHNwZWNpYWwgYXMgdGhlIGJhY2tidWZmZXIgaXMgc2lt
dWxhdGVkLgorICAgICAgICBpZiAobV9leHREcmF3QnVmZmVycykgeworICAgICAgICAgICAgR0Mz
RGludCB2YWx1ZSA9IDA7CisgICAgICAgICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KHBuYW1l
LCAmdmFsdWUpOworICAgICAgICAgICAgaWYgKCFtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiB2YWx1
ZSAhPSBHcmFwaGljc0NvbnRleHQzRDo6Tk9ORSkKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IEdy
YXBoaWNzQ29udGV4dDNEOjpCQUNLOworICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2
YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBu
YW1lLCBFWFRfZHJhd19idWZmZXJzIG5vdCBlbmFibGVkIik7CisgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oKTsKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIxX0VYVDoKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIyX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lv
bnMzRDo6RFJBV19CVUZGRVIzX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZG
RVI0X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVI1X0VYVDoKKyAgICBj
YXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVI2X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMz
RDo6RFJBV19CVUZGRVI3X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVI4
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVI5X0VYVDoKKyAgICBjYXNl
IEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIxMF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6
OkRSQVdfQlVGRkVSMTFfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpEUkFXX0JVRkZFUjEy
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIxM19FWFQ6CisgICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSMTRfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNE
OjpEUkFXX0JVRkZFUjE1X0VYVDogLy8gRVhUX2RyYXdfYnVmZmVycyBFTkQKKyAgICAgICAgaWYg
KG1fZXh0RHJhd0J1ZmZlcnMpIHsKKyAgICAgICAgICAgIGlmIChzdGF0aWNfY2FzdDxHQzNEZW51
bT4oRXh0ZW5zaW9uczNEOjpEUkFXX0JVRkZFUjBfRVhUICsgZ2V0TWF4RHJhd0J1ZmZlcnMoKSkg
PD0gcG5hbWUpIHsKKyAgICAgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVy
LCBleGNlZWRzIE1BWF9DT0xPUl9BVFRBQ0hNRU5UU19FWFQiKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4g
Z2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKKyAgICAgICAgfQorICAgICAgICBzeW50aGVzaXplR0xF
cnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImlu
dmFsaWQgcGFyYW1ldGVyIG5hbWUsIEVYVF9kcmF3X2J1ZmZlcnMgbm90IGVuYWJsZWQiKTsKKyAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0
ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwogICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKCk7CkBAIC0yOTEzLDYgKzI5NjMsOCBAQCBWZWN0b3I8U3RyaW5nPiBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdlCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9XRUJHTF9jb21wcmVz
c2VkX3RleHR1cmVfczN0YyIpOwogICAgIGlmIChXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVk
KGdyYXBoaWNzQ29udGV4dDNEKCkpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJLSVRfV0VC
R0xfZGVwdGhfdGV4dHVyZSIpOworICAgIGlmIChFWFREcmF3QnVmZmVyczo6c3VwcG9ydGVkKHRo
aXMpKQorICAgICAgICByZXN1bHQuYXBwZW5kKCJFWFRfZHJhd19idWZmZXJzIik7CiAKICAgICBp
ZiAoYWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9ucygpKSB7CiAgICAgICAgIGlmIChtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3Nv
dXJjZSIpKQpAQCAtNTMyNiw2ICs1Mzc4LDMxIEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0
Ojp2YWxpZGF0ZUZyYW0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0FUVEFD
SE1FTlQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfU1RFTkNJTF9BVFRBQ0hN
RU5UOgogICAgICAgICBicmVhazsKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNI
TUVOVDFfRVhUOiAvLyBFWFRfZHJhd19idWZmZXJzIEJFR0lOCisgICAgY2FzZSBFeHRlbnNpb25z
M0Q6OkNPTE9SX0FUVEFDSE1FTlQyX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1Jf
QVRUQUNITUVOVDNfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5U
NF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ1X0VYVDoKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDZfRVhUOgorICAgIGNhc2UgRXh0
ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UN19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6
OkNPTE9SX0FUVEFDSE1FTlQ4X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRU
QUNITUVOVDlfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTBf
RVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTFfRVhUOgorICAg
IGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTJfRVhUOgorICAgIGNhc2UgRXh0
ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTNfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNE
OjpDT0xPUl9BVFRBQ0hNRU5UMTRfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9B
VFRBQ0hNRU5UMTVfRVhUOiAvLyBFWFRfZHJhd19idWZmZXJzIEVORAorICAgIC8vIENPTE9SX0FU
VEFDSE1FTlQwX0VYVCBpcyBlcXVhbCB0byBDT0xPUl9BVFRBQ0hNRU5UMAorICAgICAgICBpZiAo
IW1fZXh0RHJhd0J1ZmZlcnMpIHsKKyAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sIGZ1bmN0aW9uTmFtZSwgImludmFsaWQgYXR0YWNo
bWVudCwgRVhUX2RyYXdfYnVmZmVycyBub3QgZW5hYmxlZCIpOworICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChzdGF0aWNfY2FzdDxHQzNEZW51bT4oRXh0
ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMF9FWFQgKyBnZXRNYXhDb2xvckF0dGFjaG1lbnRz
KCkpIDw9IGF0dGFjaG1lbnQpIHsKKyAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sIGZ1bmN0aW9uTmFtZSwgImludmFsaWQgYXR0YWNo
bWVudCwgZXhjZWVkcyBNQVhfRFJBV19CVUZGRVJTX0VYVCIpOworICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sIGZ1bmN0
aW9uTmFtZSwgImludmFsaWQgYXR0YWNobWVudCIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC01ODQyLDYgKzU5MTksMjAgQEAgSW50U2l6ZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmNsYW1w
ZWRDYQogICAgICAgICAgICAgICAgICAgIGNsYW1wKGNhbnZhcygpLT5oZWlnaHQoKSwgMSwgbV9t
YXhWaWV3cG9ydERpbXNbMV0pKTsKIH0KIAorR0MzRGludCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmdldE1heERyYXdCdWZmZXJzKCkKK3sKKyAgICBpZiAoIW1fbWF4RHJhd0J1ZmZlcnMgJiYgRVhU
RHJhd0J1ZmZlcnM6OnN1cHBvcnRlZCh0aGlzKSkKKyAgICAgICAgbV9jb250ZXh0LT5nZXRJbnRl
Z2VydihFeHRlbnNpb25zM0Q6Ok1BWF9EUkFXX0JVRkZFUlNfRVhULCAmbV9tYXhEcmF3QnVmZmVy
cyk7CisgICAgcmV0dXJuIG1fbWF4RHJhd0J1ZmZlcnM7Cit9CisKK0dDM0RpbnQgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCkKK3sKKyAgICBpZiAoIW1fbWF4
Q29sb3JBdHRhY2htZW50cyAmJiBFWFREcmF3QnVmZmVyczo6c3VwcG9ydGVkKHRoaXMpKQorICAg
ICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KEV4dGVuc2lvbnMzRDo6TUFYX0NPTE9SX0FUVEFD
SE1FTlRTX0VYVCwgJm1fbWF4Q29sb3JBdHRhY2htZW50cyk7CisgICAgcmV0dXJuIG1fbWF4Q29s
b3JBdHRhY2htZW50czsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKFdFQkdMKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0LmgJKHJldmlzaW9uIDE0NDA5OCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00Miw2ICs0Miw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRVhURHJhd0J1
ZmZlcnM7CiBjbGFzcyBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWM7CiBjbGFzcyBIVE1MSW1h
Z2VFbGVtZW50OwogY2xhc3MgSFRNTFZpZGVvRWxlbWVudDsKQEAgLTMyMyw2ICszMjQsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKTsKIAogICBwcml2YXRlOgorICAgIGZyaWVu
ZCBjbGFzcyBFWFREcmF3QnVmZmVyczsKICAgICBmcmllbmQgY2xhc3MgV2ViR0xGcmFtZWJ1ZmZl
cjsKICAgICBmcmllbmQgY2xhc3MgV2ViR0xPYmplY3Q7CiAgICAgZnJpZW5kIGNsYXNzIE9FU1Zl
cnRleEFycmF5T2JqZWN0OwpAQCAtNDc2LDYgKzQ3OCw5IEBAIHB1YmxpYzoKICAgICBHQzNEaW50
IG1fbWF4VGV4dHVyZUxldmVsOwogICAgIEdDM0RpbnQgbV9tYXhDdWJlTWFwVGV4dHVyZUxldmVs
OwogCisgICAgR0MzRGludCBtX21heERyYXdCdWZmZXJzOworICAgIEdDM0RpbnQgbV9tYXhDb2xv
ckF0dGFjaG1lbnRzOworCiAgICAgR0MzRGludCBtX3BhY2tBbGlnbm1lbnQ7CiAgICAgR0MzRGlu
dCBtX3VucGFja0FsaWdubWVudDsKICAgICBib29sIG1fdW5wYWNrRmxpcFk7CkBAIC01MDksNiAr
NTE0LDcgQEAgcHVibGljOgogICAgIGludCBtX251bUdMRXJyb3JzVG9Db25zb2xlQWxsb3dlZDsK
IAogICAgIC8vIEVuYWJsZWQgZXh0ZW5zaW9uIG9iamVjdHMuCisgICAgT3duUHRyPEVYVERyYXdC
dWZmZXJzPiBtX2V4dERyYXdCdWZmZXJzOwogICAgIE93blB0cjxFWFRUZXh0dXJlRmlsdGVyQW5p
c290cm9waWM+IG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljOwogICAgIE93blB0cjxPRVNU
ZXh0dXJlRmxvYXQ+IG1fb2VzVGV4dHVyZUZsb2F0OwogICAgIE93blB0cjxPRVNTdGFuZGFyZERl
cml2YXRpdmVzPiBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXM7CkBAIC03MzIsNiArNzM4LDExIEBA
IHB1YmxpYzoKICAgICAvLyBDbGFtcCB0aGUgd2lkdGggYW5kIGhlaWdodCB0byBHTF9NQVhfVklF
V1BPUlRfRElNUy4KICAgICBJbnRTaXplIGNsYW1wZWRDYW52YXNTaXplKCk7CiAKKyAgICAvLyBG
aXJzdCB0aW1lIGNhbGxlZCwgaWYgRVhUX2RyYXdfYnVmZmVycyBpcyBzdXBwb3J0ZWQsIHF1ZXJ5
IHRoZSB2YWx1ZTsgb3RoZXJ3aXNlIHJldHVybiAwLgorICAgIC8vIExhdGVyLCByZXR1cm4gdGhl
IGNhY2hlZCB2YWx1ZS4KKyAgICBHQzNEaW50IGdldE1heERyYXdCdWZmZXJzKCk7CisgICAgR0Mz
RGludCBnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCk7CisKICAgICBmcmllbmQgY2xhc3MgV2ViR0xT
dGF0ZVJlc3RvcmVyOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vc3VwcG9ydC9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9FeHRlbnNpb25zM0RDaHJvbWl1bS5j
cHAJKHJldmlzaW9uIDE0NDA5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L3N1cHBvcnQvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTUs
NCArMjE1LDkgQEAgdm9pZCBFeHRlbnNpb25zM0RDaHJvbWl1bTo6cG9wR3JvdXBNYXJrZQogICAg
IG1fcHJpdmF0ZS0+d2ViQ29udGV4dCgpLT5wb3BHcm91cE1hcmtlckVYVCgpOwogfQogCit2b2lk
IEV4dGVuc2lvbnMzRENocm9taXVtOjpkcmF3QnVmZmVyc0VYVChHQzNEc2l6ZWkgbiwgY29uc3Qg
R0MzRGVudW0qIGJ1ZnMpCit7CisgICAgbV9wcml2YXRlLT53ZWJDb250ZXh0KCktPmRyYXdCdWZm
ZXJzQ2hyb21pdW0obiwgYnVmcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCShy
ZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRl
bnNpb25zM0QuaAkod29ya2luZyBjb3B5KQpAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gICBHTF9FWFRfZGVidWdfbWFya2VyCiAgICAgLy8gICBHTF9DSFJPTUlVTV9jb3B5X3RleHR1
cmUKICAgICAvLyAgIEdMX0NIUk9NSVVNX2ZsaXB5CisgICAgLy8gICBHTF9BUkJfZHJhd19idWZm
ZXJzIC8gR0xfRVhUX2RyYXdfYnVmZmVycwogCiAgICAgLy8gVGFrZXMgZnVsbCBuYW1lIG9mIGV4
dGVuc2lvbjsgZm9yIGV4YW1wbGUsCiAgICAgLy8gIkdMX0VYVF90ZXh0dXJlX2Zvcm1hdF9CR1JB
ODg4OCIuCkBAIC0xNTAsNyArMTUxLDQzIEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBHTF9DSFJP
TUlVTV9jb3B5X3RleHR1cmUKICAgICAgICAgVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX0NIUk9N
SVVNID0gMHg5MjQxLAotICAgICAgICBVTlBBQ0tfVU5QUkVNVUxUSVBMWV9BTFBIQV9DSFJPTUlV
TSA9IDB4OTI0MgorICAgICAgICBVTlBBQ0tfVU5QUkVNVUxUSVBMWV9BTFBIQV9DSFJPTUlVTSA9
IDB4OTI0MiwKKworICAgICAgICAvLyBHTF9BUkJfZHJhd19idWZmZXJzIC8gR0xfRVhUX2RyYXdf
YnVmZmVycworICAgICAgICBNQVhfRFJBV19CVUZGRVJTX0VYVCA9IDB4ODgyNCwKKyAgICAgICAg
RFJBV19CVUZGRVIwX0VYVCA9IDB4ODgyNSwKKyAgICAgICAgRFJBV19CVUZGRVIxX0VYVCA9IDB4
ODgyNiwKKyAgICAgICAgRFJBV19CVUZGRVIyX0VYVCA9IDB4ODgyNywKKyAgICAgICAgRFJBV19C
VUZGRVIzX0VYVCA9IDB4ODgyOCwKKyAgICAgICAgRFJBV19CVUZGRVI0X0VYVCA9IDB4ODgyOSwK
KyAgICAgICAgRFJBV19CVUZGRVI1X0VYVCA9IDB4ODgyQSwKKyAgICAgICAgRFJBV19CVUZGRVI2
X0VYVCA9IDB4ODgyQiwKKyAgICAgICAgRFJBV19CVUZGRVI3X0VYVCA9IDB4ODgyQywKKyAgICAg
ICAgRFJBV19CVUZGRVI4X0VYVCA9IDB4ODgyRCwKKyAgICAgICAgRFJBV19CVUZGRVI5X0VYVCA9
IDB4ODgyRSwKKyAgICAgICAgRFJBV19CVUZGRVIxMF9FWFQgPSAweDg4MkYsCisgICAgICAgIERS
QVdfQlVGRkVSMTFfRVhUID0gMHg4ODMwLAorICAgICAgICBEUkFXX0JVRkZFUjEyX0VYVCA9IDB4
ODgzMSwKKyAgICAgICAgRFJBV19CVUZGRVIxM19FWFQgPSAweDg4MzIsCisgICAgICAgIERSQVdf
QlVGRkVSMTRfRVhUID0gMHg4ODMzLAorICAgICAgICBEUkFXX0JVRkZFUjE1X0VYVCA9IDB4ODgz
NCwKKyAgICAgICAgTUFYX0NPTE9SX0FUVEFDSE1FTlRTX0VYVCA9IDB4OENERiwKKyAgICAgICAg
Q09MT1JfQVRUQUNITUVOVDBfRVhUID0gMHg4Q0UwLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5U
MV9FWFQgPSAweDhDRTEsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQyX0VYVCA9IDB4OENFMiwK
KyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDNfRVhUID0gMHg4Q0UzLAorICAgICAgICBDT0xPUl9B
VFRBQ0hNRU5UNF9FWFQgPSAweDhDRTQsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ1X0VYVCA9
IDB4OENFNSwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDZfRVhUID0gMHg4Q0U2LAorICAgICAg
ICBDT0xPUl9BVFRBQ0hNRU5UN19FWFQgPSAweDhDRTcsCisgICAgICAgIENPTE9SX0FUVEFDSE1F
TlQ4X0VYVCA9IDB4OENFOCwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDlfRVhUID0gMHg4Q0U5
LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTBfRVhUID0gMHg4Q0VBLAorICAgICAgICBDT0xP
Ul9BVFRBQ0hNRU5UMTFfRVhUID0gMHg4Q0VCLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTJf
RVhUID0gMHg4Q0VDLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTNfRVhUID0gMHg4Q0VELAor
ICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTRfRVhUID0gMHg4Q0VFLAorICAgICAgICBDT0xPUl9B
VFRBQ0hNRU5UMTVfRVhUID0gMHg4Q0VGCiAgICAgfTsKIAogICAgIC8vIEdMX0FSQl9yb2J1c3Ru
ZXNzCkBAIC0xOTAsNiArMjI3LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwdXNoR3Jv
dXBNYXJrZXJFWFQoY29uc3QgU3RyaW5nJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwb3BHcm91
cE1hcmtlckVYVCh2b2lkKSA9IDA7CiAKKyAgICAvLyBHTF9BUkJfZHJhd19idWZmZXJzIC8gR0xf
RVhUX2RyYXdfYnVmZmVycworICAgIHZpcnR1YWwgdm9pZCBkcmF3QnVmZmVyc0VYVChHQzNEc2l6
ZWkgbiwgY29uc3QgR0MzRGVudW0qIGJ1ZnMpID0gMDsKKwogICAgIHZpcnR1YWwgYm9vbCBpc05W
SURJQSgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBTUQoKSA9IDA7CiAgICAgdmlydHVhbCBi
b29sIGlzSW50ZWwoKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQzRC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwCShyZXZpc2lvbiAxNDQwOTgpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEzODksNiArMTM4OSwyMSBAQCB1bnNpZ25lZCBHcmFwaGljc0Nv
bnRleHQzRDo6Z2V0Q2xlYXJCaXRzCiB7CiAgICAgc3dpdGNoIChhdHRhY2htZW50KSB7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDA6CisgICAgY2FzZSBFeHRl
bnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6
Q09MT1JfQVRUQUNITUVOVDJfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRB
Q0hNRU5UM19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ0X0VY
VDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDVfRVhUOgorICAgIGNh
c2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UNl9FWFQ6CisgICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ3X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09M
T1JfQVRUQUNITUVOVDhfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hN
RU5UOV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMF9FWFQ6
CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMV9FWFQ6CisgICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMl9FWFQ6CisgICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxM19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNP
TE9SX0FUVEFDSE1FTlQxNF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFD
SE1FTlQxNV9FWFQ6CiAgICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQlVG
RkVSX0JJVDsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRBQ0hNRU5UOgog
ICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JVRkZFUl9CSVQ7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RD
aHJvbWl1bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgJKHJldmlzaW9uIDE0NDA5OCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9t
aXVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKICAgICB2
aXJ0dWFsIHZvaWQgYmluZFZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOwogICAgIHZp
cnR1YWwgU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9ybTNET2Jq
ZWN0KTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0J1ZmZlcnNFWFQoR0MzRHNpemVpLCBjb25zdCBH
QzNEZW51bSopOwogCiAgICAgZW51bSB7CiAgICAgICAgIC8vIEdMX09FU19FR0xfaW1hZ2VfZXh0
ZXJuYWwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRl
bnNpb25zM0RPcGVuR0wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCShyZXZpc2lvbiAxNDQwOTgp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNE
T3BlbkdMLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc4LDkgKzE3OCwxNyBAQCBib29sIEV4dGVu
c2lvbnMzRE9wZW5HTDo6c3VwcG9ydHNFeHRlbnNpCiAgICAgaWYgKG5hbWUgPT0gIkdMX0VYVF90
ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpCiAgICAgICAgIHJldHVybiBtX2F2YWlsYWJsZUV4
dGVuc2lvbnMuY29udGFpbnMoIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpOwog
CisgICAgaWYgKG5hbWUgPT0gIkdMX0VYVF9kcmF3X2J1ZmZlcnMiKQorICAgICAgICByZXR1cm4g
bV9hdmFpbGFibGVFeHRlbnNpb25zLmNvbnRhaW5zKCJHTF9BUkJfZHJhd19idWZmZXJzIik7CisK
ICAgICByZXR1cm4gbV9hdmFpbGFibGVFeHRlbnNpb25zLmNvbnRhaW5zKG5hbWUpOwogfQogCit2
b2lkIEV4dGVuc2lvbnMzRE9wZW5HTDo6ZHJhd0J1ZmZlcnNFWFQoR0MzRHNpemVpIG4sIGNvbnN0
IEdDM0RlbnVtKiBidWZzKQoreworICAgIDo6Z2xEcmF3QnVmZmVyc0FSQihuLCBidWZzKTsKK30K
KwogU3RyaW5nIEV4dGVuc2lvbnMzRE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgcmV0
dXJuIFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdM
X0VYVEVOU0lPTlMpKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oCShyZXZpc2lvbiAx
NDQwOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5z
aW9uczNET3BlbkdMLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRFdmVudE1hcmtlckVYVChjb25zdCBTdHJpbmcmKTsKICAg
ICB2aXJ0dWFsIHZvaWQgcHVzaEdyb3VwTWFya2VyRVhUKGNvbnN0IFN0cmluZyYpOwogICAgIHZp
cnR1YWwgdm9pZCBwb3BHcm91cE1hcmtlckVYVCh2b2lkKTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJh
d0J1ZmZlcnNFWFQoR0MzRHNpemVpLCBjb25zdCBHQzNEZW51bSopOwogCiBwcm90ZWN0ZWQ6CiAg
ICAgLy8gVGhpcyBjbGFzcyBvbmx5IG5lZWRzIHRvIGJlIGluc3RhbnRpYXRlZCBieSBHcmFwaGlj
c0NvbnRleHQzRCBpbXBsZW1lbnRhdGlvbnMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNE
T3BlbkdMQ29tbW9uLmNwcAkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTExOCw2ICsxMTgsMTUgQEAgdm9pZCBFeHRlbnNpb25zM0RPcGVuR0xDb21t
b246OmVuc3VyZUVuYQogICAgICAgICAgICAgQU5HTEVSZXNvdXJjZXMuT0VTX3N0YW5kYXJkX2Rl
cml2YXRpdmVzID0gMTsKICAgICAgICAgICAgIGNvbXBpbGVyLnNldFJlc291cmNlcyhBTkdMRVJl
c291cmNlcyk7CiAgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKG5hbWUgPT0gIkdMX0VYVF9kcmF3
X2J1ZmZlcnMiKSB7CisgICAgICAgIC8vIEVuYWJsZSBzdXBwb3J0IGluIEFOR0xFIChpZiBub3Qg
ZW5hYmxlZCBhbHJlYWR5KQorICAgICAgICBBTkdMRVdlYktpdEJyaWRnZSYgY29tcGlsZXIgPSBt
X2NvbnRleHQtPm1fY29tcGlsZXI7CisgICAgICAgIFNoQnVpbHRJblJlc291cmNlcyBBTkdMRVJl
c291cmNlcyA9IGNvbXBpbGVyLmdldFJlc291cmNlcygpOworICAgICAgICBpZiAoIUFOR0xFUmVz
b3VyY2VzLkVYVF9kcmF3X2J1ZmZlcnMpIHsKKyAgICAgICAgICAgIEFOR0xFUmVzb3VyY2VzLkVY
VF9kcmF3X2J1ZmZlcnMgPSAxOworICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihF
eHRlbnNpb25zM0Q6Ok1BWF9EUkFXX0JVRkZFUlNfRVhULCAmQU5HTEVSZXNvdXJjZXMuTWF4RHJh
d0J1ZmZlcnMpOworICAgICAgICAgICAgY29tcGlsZXIuc2V0UmVzb3VyY2VzKEFOR0xFUmVzb3Vy
Y2VzKTsKKyAgICAgICAgfQogICAgIH0KIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RP
cGVuR0xDb21tb24uaAkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC01MCw2ICs1MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlz
VmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBi
aW5kVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCkgPSAwOwogCisgICAgdmlydHVhbCB2
b2lkIGRyYXdCdWZmZXJzRVhUKEdDM0RzaXplaSwgY29uc3QgR0MzRGVudW0qKSA9IDA7CisKICAg
ICB2aXJ0dWFsIFN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm0z
RE9iamVjdCk7CiAKICAgICAvLyBFWFQgUm9idXN0bmVzcyAtIHVzZXMgZ2V0R3JhcGhpY3NSZXNl
dFN0YXR1c0FSQigpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5jcHAJKHJldmlz
aW9uIDE0NDA5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9F
eHRlbnNpb25zM0RPcGVuR0xFUy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MCw2ICsxNjAsMTEg
QEAgdm9pZCBFeHRlbnNpb25zM0RPcGVuR0xFUzo6YmluZFZlcnRleEFycgogICAgICAgICBtX2Nv
bnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdMX0lOVkFMSURfT1BFUkFUSU9OKTsKIH0KIAordm9p
ZCBFeHRlbnNpb25zM0RPcGVuR0xFUzo6ZHJhd0J1ZmZlcnNFWFQoR0MzRHNpemVpIG4sIGNvbnN0
IEdDM0RlbnVtKiBidWZzKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgdGhlIHN1cHBvcnQu
Cit9CisKIGludCBFeHRlbnNpb25zM0RPcGVuR0xFUzo6Z2V0R3JhcGhpY3NSZXNldFN0YXR1c0FS
QigpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBub3QgY2FsbCBnZXRHcmFwaGljc1Jlc2V0
U3RhdHVzQVJCLCBidXQgaW5zdGVhZCBnZXRHcmFwaGljc1Jlc2V0U3RhdHVzRVhULgpAQCAtMjUw
LDYgKzI1NSw5IEBAIGJvb2wgRXh0ZW5zaW9uczNET3BlbkdMRVM6OnN1cHBvcnRzRXh0ZW4KICAg
ICAgICAgICAgIG1fZ2xSZWFkblBpeGVsc0VYVCA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZOR0xSRUFE
TlBJWEVMU0VYVFBST0M+KGVnbEdldFByb2NBZGRyZXNzKCJnbFJlYWRuUGl4ZWxzRVhUIikpOwog
ICAgICAgICAgICAgbV9nbEdldG5Vbmlmb3JtZnZFWFQgPSByZWludGVycHJldF9jYXN0PFBGTkdM
R0VUTlVOSUZPUk1GVkVYVFBST0M+KGVnbEdldFByb2NBZGRyZXNzKCJnbEdldG5Vbmlmb3JtZnZF
WFQiKSk7CiAgICAgICAgICAgICBtX2dsR2V0blVuaWZvcm1pdkVYVCA9IHJlaW50ZXJwcmV0X2Nh
c3Q8UEZOR0xHRVROVU5JRk9STUlWRVhUUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImdsR2V0blVu
aWZvcm1pdkVYVCIpKTsKKyAgICAgICAgfSBlbHNlIGlmIChuYW1lID09ICJHTF9FWFRfZHJhd19i
dWZmZXJzIikgeworICAgICAgICAgICAgLy8gRklYTUU6IGltcGxlbWVudCB0aGUgc3VwcG9ydC4K
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
RXh0ZW5zaW9uczNET3BlbkdMRVMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuaAkocmV2aXNpb24gMTQ0
MDk4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnMzRE9wZW5HTEVTLmgJKHdvcmtpbmcgY29weSkKQEAgLTkwLDYgKzkwLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBkZWxldGVWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsK
ICAgICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVj
dCk7CiAgICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0J1ZmZlcnNFWFQoR0MzRHNpemVpLCBjb25zdCBHQzNE
ZW51bSopOwogCiAgICAgLy8gRVhUIFJvYnVzdG5lc3MgLSByZXNldAogICAgIHZpcnR1YWwgaW50
IGdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190363</attachid>
            <date>2013-02-26 14:30:15 -0800</date>
            <delta_ts>2013-02-26 14:49:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109331-20130226142630.patch</filename>
            <type>text/plain</type>
            <size>62225</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEzLTAyLTI2ICBaaGVu
eWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgRVhUX2RyYXdfYnVmZmVycyBuZWVk
cyBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA5MzMxCisKKyAgICAgICAgQWRkIEVYVF9kcmF3X2J1ZmZlcnMgc3VwcG9ydCBm
b3IgY2hyb21pdW0gcG9ydC4KKworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJHcmFwaGlj
c0NvbnRleHQzRC5oOgorICAgICAgICAoV2ViR3JhcGhpY3NDb250ZXh0M0QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6ZHJhd0J1ZmZlcnNDaHJvbWl1bSk6CisKIDIw
MTMtMDItMjYgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
Q3JlYXRlIHRoZSBTaGFyZWRHcmFwaGljc0NvbnRleHQzRCB0aHJvdWdoIGl0cyBvd24gbWV0aG9k
LgpJbmRleDogU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRl
eHQzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
R3JhcGhpY3NDb250ZXh0M0QuaAkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00NzIsNiArNDcyLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhc3luY1RleEltYWdl
MkRDSFJPTUlVTShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbCwgV0dDM0RlbnVtIGlu
dGVybmFsZm9ybWF0LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCwgV0dDM0Rp
bnQgYm9yZGVyLCBXR0MzRGVudW0gZm9ybWF0LCBXR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCog
cGl4ZWxzKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXN5bmNUZXhTdWJJbWFnZTJEQ0hST01JVU0o
V0dDM0RlbnVtIHRhcmdldCwgV0dDM0RpbnQgbGV2ZWwsIFdHQzNEaW50IHhvZmZzZXQsIFdHQzNE
aW50IHlvZmZzZXQsIFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0LCBXR0MzRGVu
dW0gZm9ybWF0LCBXR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKSB7IH0KIAorICAg
IC8vIEdMX0VYVF9kcmF3X2J1ZmZlcnMgLyBHTF9BUkJfZHJhd19idWZmZXJzCisgICAgdmlydHVh
bCB2b2lkIGRyYXdCdWZmZXJzQ2hyb21pdW0oV0dDM0RzaXplaSBuLCBjb25zdCBXR0MzRGVudW0q
IGJ1ZnMpIHsgfQorCiAgICAgLy8gRklYTUU6IE1ha2UgaW1wbGVtZW50YXRpb25zIG9mIHRoaXMg
Y2xhc3Mgb3ZlcnJpZGUgdGhpcyBtZXRob2QgaW5zdGVhZCBhbmQgdGhlbiByZW1vdmUgb25DcmVh
dGVHckdMSW50ZXJmYWNlKCkuCiAgICAgdmlydHVhbCBHckdMSW50ZXJmYWNlKiBjcmVhdGVHckdM
SW50ZXJmYWNlKCkgeyByZXR1cm4gb25DcmVhdGVHckdMSW50ZXJmYWNlKCk7IH0KIApJbmRleDog
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOTIgQEAKKzIwMTMtMDItMjYgIFpoZW55YW8gTW8gIDx6
bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBFWFRfZHJhd19idWZmZXJzIG5lZWRzIGltcGxlbWVu
dGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDkzMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgRVhUX2RyYXdfYnVmZmVycyBmb3IgV2ViR0wuCisg
ICAgICAgIG1hYyBPcGVuR0wgcG9ydCBpcyBwYXNzaW5nIGtocm9ub3MgV2ViR0wgY29uZm9ybWFu
Y2UgdGVzdCB3aXRoIHRoaXMgcGF0Y2guIE9wZW5HTCBFUyBwb3J0IGltcGxlbWVudGF0aW9uIGlz
bid0IGFkZGVkIGluIHRoaXMgcGF0Y2guCisgICAgICAgIEFsc28sIGl0IGhhcyB0aGUgV2ViS2l0
IHNpZGUgc3VwcG9ydCBmb3IgY2hyb21pdW0gcG9ydCwgYnV0IHBlbmRpbmcgY29tbWFuZCBidWZm
ZXIgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgQmVzaWRlcyB0aGUgYmFzaWMgZXh0ZW5zaW9u
IGltcGxlbWVudGF0aW9uLCB3ZSBhbHNvIGFkZGVkIGRyYXdCdWZmZXJzKCkgd3JhcHBlciB0byB3
b3JrIGFyb3VuZCBhIG1hYyBkcml2ZXIgYnVnOiBpLmUuLCBkbyBub3QgZW5hYmxlIGEgYnVmZmVy
IGlmIHRoZXJlIGlzIG5vIGF0dGFjaG1lbnQgYWRkZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjp0b0ludDMyKToKKyAgICAgICAg
KFdlYkNvcmU6OnRvVUludDMyKToKKyAgICAgICAgKFdlYkNvcmU6OnRvRmxvYXQpOgorICAgICAg
ICAoV2ViQ29yZTo6dG9JbnQ2NCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjhPYmpl
Y3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkVYVERyYXdCdWZmZXJzOjpFWFRE
cmF3QnVmZmVycyk6CisgICAgICAgIChXZWJDb3JlOjpFWFREcmF3QnVmZmVyczo6fkVYVERyYXdC
dWZmZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkVYVERyYXdCdWZmZXJzOjpnZXROYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVYVERyYXdCdWZmZXJzOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RVhURHJhd0J1ZmZlcnM6OnN1cHBvcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpFWFREcmF3
QnVmZmVyczo6ZHJhd0J1ZmZlcnNFWFQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0VYVERyYXdC
dWZmZXJzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChFWFREcmF3QnVm
ZmVycyk6CisgICAgICAgICogaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaWRsOiBBZGRlZC4K
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xGcmFt
ZWJ1ZmZlcjo6c2V0QXR0YWNobWVudEZvckJvdW5kRnJhbWVidWZmZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xGcmFtZWJ1ZmZlcjo6cmVtb3ZlQXR0YWNobWVudEZyb21Cb3VuZEZyYW1lYnVm
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRnJhbWVidWZmZXI6OmRyYXdCdWZmZXJzKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xGcmFtZWJ1ZmZlcjo6
ZHJhd0J1ZmZlcnNJZk5lY2Vzc2FyeSk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xGcmFt
ZWJ1ZmZlci5oOgorICAgICAgICAoV2ViR0xGcmFtZWJ1ZmZlcik6CisgICAgICAgICogaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplTmV3Q29udGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmZyYW1lYnVmZmVy
UmVuZGVyYnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0RXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0UGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OnZhbGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldE1heERyYXdCdWZmZXJzKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0TWF4Q29sb3JBdHRhY2htZW50
cyk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkdMUmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RDaHJvbWl1bTo6ZHJhd0J1ZmZlcnNFWFQpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9u
czNELmg6CisgICAgICAgIChFeHRlbnNpb25zM0QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpnZXRDbGVhckJpdHNCeUF0dGFjaG1lbnRUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oOgorICAgICAgICAoRXh0
ZW5zaW9uczNEQ2hyb21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9F
eHRlbnNpb25zM0RPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNET3Bl
bkdMOjpzdXBwb3J0c0V4dGVuc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RP
cGVuR0w6OmRyYXdCdWZmZXJzRVhUKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaDoKKyAgICAgICAgKEV4
dGVuc2lvbnMzRE9wZW5HTCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25z
M0RPcGVuR0xDb21tb246OmVuc3VyZUVuYWJsZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uaDoKKyAgICAgICAgKEV4dGVuc2lv
bnMzRE9wZW5HTENvbW1vbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnMzRE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRE9w
ZW5HTEVTOjpkcmF3QnVmZmVyc0VYVCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTEVTOjpzdXBwb3J0c0V4dGVuc2lvbik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmg6CisgICAg
ICAgIChFeHRlbnNpb25zM0RPcGVuR0xFUyk6CisKIDIwMTMtMDItMjYgIENocmlzdGlhbiBCaWVz
aW5nZXIgIDxjYmllc2luZ2VyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBFbXB0eSA8YnV0dG9u
PnMgc2hvdWxkIGNvbGxhcHNlOyBlbXB0eSA8aW5wdXQgdHlwZT0iYnV0dG9uIj4gc2hvdWxkIG5v
dCBjb2xsYXBzZQpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE0NDA5OCkKKysr
IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01MTMsNiAr
NTEzLDcgQEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dC5pZGwKICAgICBodG1sL2NhbnZhcy9EYXRhVmlldy5pZGwKICAgICBodG1s
L2NhbnZhcy9ET01QYXRoLmlkbAorICAgIGh0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbAog
ICAgIGh0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwKICAgICBodG1s
L2NhbnZhcy9GbG9hdDMyQXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5Lmlk
bApAQCAtMTUwNiw2ICsxNTA3LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNT
dHlsZS5jcHAKICAgICBodG1sL2NhbnZhcy9EYXRhVmlldy5jcHAKKyAgICBodG1sL2NhbnZhcy9F
WFREcmF3QnVmZmVycy5jcHAKICAgICBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290
cm9waWMuY3BwCiAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAKICAg
ICBodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuY3BwCkBAIC0yNjQ3LDYgKzI2NDksNyBAQCBp
ZiAoRU5BQkxFX1dFQkdMKQogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlv
bi5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAK
ICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uY3BwCisgICAgICAgIGh0bWwvY2Fu
dmFzL0VYVERyYXdCdWZmZXJzLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmls
dGVyQW5pc290cm9waWMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5jcHAKQEAgLTI2
NTQsNiArMjY1Nyw3IEBAIGlmIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwvY2FudmFzL09F
U0VsZW1lbnRJbmRleFVpbnQuY3BwCiAgICAgKQogICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSURM
X0ZJTEVTCisgICAgICAgIGh0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbAogICAgICAgICBo
dG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaWRsCiAgICAgICAgIGh0bWwv
Y2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL09F
U1RleHR1cmVGbG9hdC5pZGwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2
aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29y
a2luZyBjb3B5KQpAQCAtMzkwLDYgKzM5MCw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwgXAogICAgICQo
V2ViQ29yZSkvaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwv
Y2FudmFzL0RPTVBhdGguaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0VYVERyYXdC
dWZmZXJzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVy
QW5pc290cm9waWMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJh
eS5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbCBcCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE0NDA5OCkKKysrIFNv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTI0OCw2
ICsyNDgsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNFcnJvckNhbGxiYWNrLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFcnJv
ckV2ZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Vycm9yRXZlbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0VYVERyYXdCdWZmZXJzLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0VYVERyYXdCdWZmZXJzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmggXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNFdmVudC5jcHAgXApAQCAtMTUzMiw3ICsxNTM0LDggQEAgZG9tX2JpbmRpbmdf
aWRscyArPSBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
aWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0RhdGFWaWV3LmlkbCBcCi0JJChXZWJDb3Jl
KS9odG1sL2NhbnZhcy9ET01QYXRoLmlkbCBcCisJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9ET01Q
YXRoLmlkbCAKKwkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbCBcCiAJ
JChXZWJDb3JlKS9odG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaWRsIFwK
IAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5pZGwgXAogCSQoV2ViQ29yZSkv
aHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbCBcCkBAIC0zMjc0LDYgKzMyNzcsOCBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaCBcCiAJU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvRE9NUGF0aC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9FWFREcmF3QnVmZmVycy5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERy
YXdCdWZmZXJzLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0
ZXJBbmlzb3Ryb3BpYy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVFRleHR1
cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNT
dGFuZGFyZERlcml2YXRpdmVzLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHJldmlzaW9uIDE0NDA5
OCkKKysrIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTQwMzgs
NiArNDAzOCw3IEBAIGVuYWJsZT8oV0VCR0wpIHsKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xT
aGFkZXIuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0
LmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oIFwKKyAgICAgICAg
aHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL0VYVFRl
eHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRh
cmREZXJpdmF0aXZlcy5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0Lmgg
XApAQCAtNDA3Miw2ICs0MDczLDcgQEAgZW5hYmxlPyhXRUJHTCkgewogICAgICAgICBodG1sL2Nh
bnZhcy9XZWJHTFNoYWRlci5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFNoYWRlclBy
ZWNpc2lvbkZvcm1hdC5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVj
dC5jcHAgXAorICAgICAgICBodG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5jcHAgXAogICAgICAg
ICBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIFwKICAgICAgICAg
aHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAgXAogICAgICAgICBodG1sL2Nh
bnZhcy9PRVNUZXh0dXJlRmxvYXQuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9u
IDE0NDA5OCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpA
QCAtMzY5LDYgKzM2OSw3IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRs
JywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9ET01QYXRoLmlkbCcsCisgICAgICAgICAgICAn
aHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZh
cy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaWRsJywKICAgICAgICAgICAgICdodG1sL2Nh
bnZhcy9GbG9hdDMyQXJyYXkuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9GbG9hdDY0
QXJyYXkuaWRsJywKQEAgLTMzMjcsNiArMzMyOCw4IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52
YXMvRGF0YVZpZXcuY3BwJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9EYXRhVmlldy5oJywK
ICAgICAgICAgICAgICdodG1sL2NhbnZhcy9ET01QYXRoLmgnLAorICAgICAgICAgICAgJ2h0bWwv
Y2FudmFzL0VYVERyYXdCdWZmZXJzLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvRVhU
RHJhd0J1ZmZlcnMuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRl
ckFuaXNvdHJvcGljLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZp
bHRlckFuaXNvdHJvcGljLmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL09FU1N0YW5kYXJk
RGVyaXZhdGl2ZXMuY3BwJywKQEAgLTYzODAsNiArNjM4Myw4IEBACiAgICAgICAgICAgICAnPChQ
Uk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Vycm9yQ2FsbGJhY2suaCcsCiAg
ICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Vycm9y
RXZlbnQuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTRXJyb3JFdmVudC5oJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTRVhURHJhd0J1ZmZlcnMuY3BwJywKKyAgICAgICAgICAgICc8
KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRVhURHJhd0J1ZmZlcnMuaCcs
CiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0VY
VFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMu
aCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0V2ZW50LmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE5MjEs
NiArMTkyMSw4IEBACiAJCTZFQkYwRTU1MTJBODkyOTgwMERCMTcwOSAvKiBXZWJHTEV4dGVuc2lv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVCRjBF
NTMxMkE4OTI5ODAwREIxNzA5IC8qIFdlYkdMRXh0ZW5zaW9uLmggKi87IH07CiAJCTZFQkYwRTc2
MTJBOTg2ODgwMERCMTcwOSAvKiBKU09FU1RleHR1cmVGbG9hdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUJGMEU3NDEyQTk4Njg4MDBEQjE3MDkg
LyogSlNPRVNUZXh0dXJlRmxvYXQuY3BwICovOyB9OwogCQk2RUJGMEU3NzEyQTk4Njg4MDBEQjE3
MDkgLyogSlNPRVNUZXh0dXJlRmxvYXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZFQkYwRTc1MTJBOTg2ODgwMERCMTcwOSAvKiBKU09FU1RleHR1cmVG
bG9hdC5oICovOyB9OworCQk2RUJGMEU3NjEyQTk4Njg4MDBEQjE3MEEgLyogSlNFWFREcmF3QnVm
ZmVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RUJGMEU3NDEyQTk4Njg4MDBEQjE3MEEgLyogSlNFWFREcmF3QnVmZmVycy5jcHAgKi87IH07CisJ
CTZFQkYwRTc3MTJBOTg2ODgwMERCMTcwQSAvKiBKU0VYVERyYXdCdWZmZXJzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUJGMEU3NTEyQTk4Njg4MDBE
QjE3MEEgLyogSlNFWFREcmF3QnVmZmVycy5oICovOyB9OwogCQk2RUQ4NzhDNDE0NzQ5M0Y0MDA0
QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFRDg3OEMyMTQ3NDkzRjQwMDRDMzU5NyAvKiBSZW5kZXJU
YWJsZUNhcHRpb24uY3BwICovOyB9OwogCQk2RUQ4NzhDNTE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVu
ZGVyVGFibGVDYXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2RUQ4NzhDMzE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmgg
Ki87IH07CiAJCTZFRThBNzcyMTBGODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJp
YnV0ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkVFOEE3NzAxMEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAg
Ki87IH07CkBAIC0zODM5LDYgKzM4NDEsOSBAQAogCQk5RkZFM0VBNTExQjVBNDM5MDAzNzg3NEUg
LyogSlNNZW1vcnlJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlGRkUzRUEzMTFCNUE0MzkwMDM3ODc0RSAvKiBKU01lbW9yeUluZm8uY3BwICov
OyB9OwogCQk5RkZFM0VBNjExQjVBNDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RkZFM0VBNDExQjVBNDM5
MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmggKi87IH07CiAJCUEwMEI3MjFBMTFERTY0MjgwMDhB
QjlGRiAvKiBDaGVja2VkSW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMDBCNzIxOTExREU2NDI3MDA4QUI5RkYgLyogQ2hlY2tlZEludC5oICovOyB9
OworCQlBMDI0NTc1MTE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTAyNDU3NEUxNkNFQUEy
NzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmNwcCAqLzsgfTsKKwkJQTAyNDU3NTIxNkNFQUEy
NzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMDI0NTc0RjE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1
ZmZlcnMuaCAqLzsgfTsKKwkJQTAyNDU3NTMxNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZm
ZXJzLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTAyNDU3NTAxNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmlkbCAqLzsgfTsKIAkJ
QTA3RDMzNTUxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTA3RDMz
NTMxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwICov
OyB9OwogCQlBMDdEMzM1NjE1MkI2MzBFMDAxQjYzOTMgLyogSlNXZWJHTFNoYWRlclByZWNpc2lv
bkZvcm1hdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTA3RDMzNTQxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQu
aCAqLzsgfTsKIAkJQTA3RDMzNTgxNTJCNjMyRDAwMUI2MzkzIC8qIFdlYkdMU2hhZGVyUHJlY2lz
aW9uRm9ybWF0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBMDdEMzM1NzE1MkI2MzJEMDAxQjYzOTMgLyogV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQu
aCAqLzsgfTsKQEAgLTkzODgsNiArOTM5Myw4IEBACiAJCTZFQkYwRTUzMTJBODkyOTgwMERCMTcw
OSAvKiBXZWJHTEV4dGVuc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
ZWJHTEV4dGVuc2lvbi5oOyBwYXRoID0gY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFQkYwRTc0MTJBOTg2ODgwMERCMTcwOSAvKiBKU09FU1Rl
eHR1cmVGbG9hdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU09F
U1RleHR1cmVGbG9hdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFQkYwRTc1
MTJBOTg2ODgwMERCMTcwOSAvKiBKU09FU1RleHR1cmVGbG9hdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU09FU1RleHR1cmVGbG9hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk2RUJGMEU3NDEyQTk4Njg4MDBEQjE3MEEgLyogSlNFWFREcmF3QnVmZmVycy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0VYVERyYXdCdWZmZXJz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkVCRjBFNzUxMkE5ODY4ODAwREIx
NzBBIC8qIEpTRVhURHJhd0J1ZmZlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNFWFREcmF3QnVmZmVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RUQ4
NzhDMjE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclRhYmxlQ2FwdGlvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFRDg3OEMzMTQ3NDkzRjQwMDRDMzU5NyAvKiBSZW5k
ZXJUYWJsZUNhcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVy
VGFibGVDYXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFRThBNzcwMTBG
ODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzM5LDYgKzExMzQ2LDkgQEAKIAkJOUZG
RTNFQTMxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lbW9yeUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5RkZFM0VBNDExQjVBNDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVtb3J5SW5mby5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMDBCNzIxOTExREU2NDI3MDA4QUI5RkYgLyogQ2hlY2tl
ZEludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDaGVja2VkSW50Lmg7IHBh
dGggPSBjYW52YXMvQ2hlY2tlZEludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
MDI0NTc0RTE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRVhURHJhd0J1ZmZlcnMuY3BwOyBwYXRoID0gY2Fu
dmFzL0VYVERyYXdCdWZmZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTAy
NDU3NEYxNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEVYVERyYXdCdWZmZXJzLmg7IHBhdGggPSBjYW52YXMvRVhURHJh
d0J1ZmZlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTAyNDU3NTAxNkNFQUEy
NzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBF
WFREcmF3QnVmZmVycy5pZGw7IHBhdGggPSBjYW52YXMvRVhURHJhd0J1ZmZlcnMuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMDdEMzM1MzE1MkI2MzBFMDAxQjYzOTMgLyogSlNX
ZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTA3RDMzNTQxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFk
ZXJQcmVjaXNpb25Gb3JtYXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNX
ZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBMDdEMzM1NzE1MkI2MzJEMDAxQjYzOTMgLyogV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViR0xTaGFkZXJQcmVjaXNpb25G
b3JtYXQuaDsgcGF0aCA9IGNhbnZhcy9XZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU3MDksNiArMTU3MTksOSBAQAogCQk0OTQ4NEZB
RTEwMkNGMDFFMDAxODdERDMgLyogY2FudmFzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQlBMDI0NTc0RTE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1
ZmZlcnMuY3BwICovLAorCQkJCUEwMjQ1NzRGMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVm
ZmVycy5oICovLAorCQkJCUEwMjQ1NzUwMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVy
cy5pZGwgKi8sCiAJCQkJNDlFRUNEQ0MxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVyLmlk
bCAqLywKIAkJCQk0OUVFQ0RDOTEwNTAzQzIzMDAwOTlGQUIgLyogQXJyYXlCdWZmZXJWaWV3Lmlk
bCAqLywKIAkJCQk2RTRFOTFBNzEwRjdGQjMxMDBBMjc3OUMgLyogQ2FudmFzQ29udGV4dEF0dHJp
YnV0ZXMuY3BwICovLApAQCAtMTg5NzksNiArMTg5OTIsOCBAQAogCQkJCTc2OTQ1NjNCMTIxNEQ5
N0MwMDA3Q0JBRSAvKiBKU0RPTVRva2VuTGlzdC5oICovLAogCQkJCTJFMzdFMDAzMTJEQkM1QTQw
MEE2QjIzMyAvKiBKU0RPTVVSTC5jcHAgKi8sCiAJCQkJMkUzN0UwMDQxMkRCQzVBNDAwQTZCMjMz
IC8qIEpTRE9NVVJMLmggKi8sCisJCQkJNkVCRjBFNzQxMkE5ODY4ODAwREIxNzBBIC8qIEpTRVhU
RHJhd0J1ZmZlcnMuY3BwICovLAorCQkJCTZFQkYwRTc1MTJBOTg2ODgwMERCMTcwQSAvKiBKU0VY
VERyYXdCdWZmZXJzLmggKi8sCiAJCQkJNzcyODY5ODExNEZEOUFEQTAwRjQ4NERDIC8qIEpTRVhU
VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcCAqLywKIAkJCQk3NzI4Njk4MjE0RkQ5QURBMDBG
NDg0REMgLyogSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCAqLywKIAkJCQk0OUVFQ0VG
NDEwNTA3MEM0MDAwOTlGQUIgLyogSlNGbG9hdDMyQXJyYXkuY3BwICovLApAQCAtMjQ5MzEsNiAr
MjQ5NDYsNyBAQAogCQkJCUUwRkVGMzcyQjM3QzUzRUFDMUMxRkJFRSAvKiBKU0V2ZW50U291cmNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1RkM3REMyNkNGRTI1NjMyMDBCODVBRTQgLyogSlNFdmVu
dFRhcmdldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzMxNEFDRUMxMDg5MjA4NjAwMEYwRTU2IC8q
IEpTRXhjZXB0aW9uQmFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkVCRjBFNzcxMkE5ODY4ODAw
REIxNzBBIC8qIEpTRVhURHJhd0J1ZmZlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTc3Mjg2OTg0
MTRGRDlBREEwMEY0ODREQyAvKiBKU0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMwMEYwMTUwRTBBMTg5NTAwRkQwNEUzIC8qIEpTRmlsZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODkzQzQ3QjgxMjM4QTA5OTAwMkIzRDg2IC8qIEpTRmlsZUNhbGxiYWNr
LmggaW4gSGVhZGVycyAqLywKQEAgLTI2NjIyLDYgKzI2NjM4LDcgQEAKIAkJCQlGRDUzNzM1MzEz
N0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQjhDRDQ2
MTZEMDQ1OTEwMDBFOENDMCAvKiBTZWxlY3RvckNoZWNrZXJGYXN0UGF0aC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDkxNDAyNTcxNjhFMDJFQzAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFBy
b2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEEwMjQ1NzUyMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CkBAIC0yODI2Niw2ICsyODI4Myw3IEBACiAJCQkJQzZBNzAzMzI1QzlEMEI2Q0RDQkM0RDc3
IC8qIEpTRXZlbnRUYXJnZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2MDkwMjAwRTkxQjhF
QzAwMEM2OEI1IC8qIEpTRXZlbnRUYXJnZXRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MzMxNEFDRUIxMDg5MjA4NjAwMEYwRTU2IC8qIEpTRXhjZXB0aW9uQmFzZS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk2RUJGMEU3NjEyQTk4Njg4MDBEQjE3MEEgLyogSlNFWFREcmF3QnVmZmVycy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3NzI4Njk4MzE0RkQ5QURBMDBGNDg0REMgLyogSlNFWFRU
ZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwMEYwMTQw
RTBBMTg5NTAwRkQwNEUzIC8qIEpTRmlsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTNDNDdC
NzEyMzhBMDk5MDAyQjNEODYgLyogSlNGaWxlQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0yOTgxNyw2ICsyOTgzNSw3IEBACiAJCQkJRkQ1MzczNTIxMzdCNjUxODAwMDA4RENFIC8qIFpl
cm9Qb2xlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxQjhDRDQ1MTZEMDQ1OTEwMDBFOENDMCAv
KiBTZWxlY3RvckNoZWNrZXJGYXN0UGF0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTE0MDI1
NjE2OEUwMkU4MDAyRDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCBpbiBT
b3VyY2VzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMDI0NTc1MTE2Q0VB
QTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwCShyZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDEwICsyOSwxMiBAQAogCiAjaW5jbHVkZSAiSlNXZWJHTFJlbmRlcmluZ0Nv
bnRleHQuaCIKIAorI2luY2x1ZGUgIkVYVERyYXdCdWZmZXJzLmgiCiAjaW5jbHVkZSAiRVhUVGV4
dHVyZUZpbHRlckFuaXNvdHJvcGljLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2lu
Y2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5o
IgorI2luY2x1ZGUgIkpTRVhURHJhd0J1ZmZlcnMuaCIKICNpbmNsdWRlICJKU0VYVFRleHR1cmVG
aWx0ZXJBbmlzb3Ryb3BpYy5oIgogI2luY2x1ZGUgIkpTRmxvYXQzMkFycmF5LmgiCiAjaW5jbHVk
ZSAiSlNIVE1MQ2FudmFzRWxlbWVudC5oIgpAQCAtMTk0LDYgKzE5Niw4IEBAIHN0YXRpYyBKU1Zh
bHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0QKICAgICBzd2l0Y2ggKGV4dGVuc2lvbi0+Z2V0
TmFtZSgpKSB7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xMb3NlQ29udGV4dE5hbWU6
CiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2Vi
R0xMb3NlQ29udGV4dCo+KGV4dGVuc2lvbikpOworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVY
VERyYXdCdWZmZXJzTmFtZToKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0
LCBzdGF0aWNfY2FzdDxFWFREcmF3QnVmZmVycyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2Vi
R0xFeHRlbnNpb246OkVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpY05hbWU6CiAgICAgICAgIHJl
dHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUVGV4dHVyZUZpbHRl
ckFuaXNvdHJvcGljKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VT
U3RhbmRhcmREZXJpdmF0aXZlc05hbWU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOEJpbmRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OEJpbmRpbmcuaAkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhCaW5kaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0Myw2ICsyNDMsMzggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHY4QXJyYXkoUGFzc1Jl
ZlB0cjxET01TdHJpbmdMaXN0Piwgdjg6Oklzb2xhdGUqKTsKIAorICAgIC8vIENvbnZlcnQgYSB2
YWx1ZSB0byBhIDMyLWJpdCBpbnRlZ2VyLiBUaGUgY29udmVyc2lvbiBmYWlscyBpZiB0aGUKKyAg
ICAvLyB2YWx1ZSBjYW5ub3QgYmUgY29udmVydGVkIHRvIGFuIGludGVnZXIgb3IgY29udmVydHMg
dG8gbmFuIG9yIHRvIGFuIGluZmluaXR5LgorICAgIGludCB0b0ludDMyKHY4OjpIYW5kbGU8djg6
OlZhbHVlPiwgYm9vbCYgb2spOworCisgICAgLy8gQ29udmVydCBhIHZhbHVlIHRvIGEgMzItYml0
IGludGVnZXIgYXNzdW1pbmcgdGhlIGNvbnZlcnNpb24gY2Fubm90IGZhaWwuCisgICAgaW5saW5l
IGludCB0b0ludDMyKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKKyAgICB7CisgICAgICAg
IGJvb2wgb2s7CisgICAgICAgIHJldHVybiB0b0ludDMyKHZhbHVlLCBvayk7CisgICAgfQorCisg
ICAgLy8gQ29udmVydCBhIHZhbHVlIHRvIGEgMzItYml0IHVuc2lnbmVkIGludGVnZXIuIFRoZSBj
b252ZXJzaW9uIGZhaWxzIGlmIHRoZQorICAgIC8vIHZhbHVlIGNhbm5vdCBiZSBjb252ZXJ0ZWQg
dG8gYW4gdW5zaWduZWQgaW50ZWdlciBvciBjb252ZXJ0cyB0byBuYW4gb3IgdG8gYW4gaW5maW5p
dHkuCisgICAgdWludDMyX3QgdG9VSW50MzIodjg6OkhhbmRsZTx2ODo6VmFsdWU+LCBib29sJiBv
ayk7CisKKyAgICAvLyBDb252ZXJ0IGEgdmFsdWUgdG8gYSAzMi1iaXQgdW5zaWduZWQgaW50ZWdl
ciBhc3N1bWluZyB0aGUgY29udmVyc2lvbiBjYW5ub3QgZmFpbC4KKyAgICBpbmxpbmUgdWludDMy
X3QgdG9VSW50MzIodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQorICAgIHsKKyAgICAgICAg
Ym9vbCBvazsKKyAgICAgICAgcmV0dXJuIHRvVUludDMyKHZhbHVlLCBvayk7CisgICAgfQorCisg
ICAgaW5saW5lIGZsb2F0IHRvRmxvYXQodjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUpCisgICAg
eworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlLT5OdW1iZXJWYWx1ZSgp
KTsKKyAgICB9CisKKyAgICBpbmxpbmUgbG9uZyBsb25nIHRvSW50NjQodjg6OkxvY2FsPHY4OjpW
YWx1ZT4gdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8bG9uZyBsb25n
Pih2YWx1ZS0+SW50ZWdlclZhbHVlKCkpOworICAgIH0KKwogICAgIHRlbXBsYXRlPGNsYXNzIFQ+
IHN0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czsKIAogICAgIHRlbXBsYXRlPD4KQEAgLTI1NCw2ICsy
ODYsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIH07CiAKICAgICB0ZW1wbGF0ZTw+Cisg
ICAgc3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzPHVuc2lnbmVkPiB7CisgICAgICAgIHN0YXRpYyBp
bmxpbmUgdW5zaWduZWQgbmF0aXZlVmFsdWUoY29uc3Qgdjg6OkhhbmRsZTx2ODo6VmFsdWU+JiB2
YWx1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRvVUludDMyKHZhbHVlKTsKKyAg
ICAgICAgfQorICAgIH07CisKKyAgICB0ZW1wbGF0ZTw+CiAgICAgc3RydWN0IE5hdGl2ZVZhbHVl
VHJhaXRzPGZsb2F0PiB7CiAgICAgICAgIHN0YXRpYyBpbmxpbmUgZmxvYXQgbmF0aXZlVmFsdWUo
Y29uc3Qgdjg6OkhhbmRsZTx2ODo6VmFsdWU+JiB2YWx1ZSkKICAgICAgICAgewpAQCAtMzQ4LDM4
ICszODgsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBQYXNzUmVmUHRyPE5vZGVGaWx0
ZXI+IHRvTm9kZUZpbHRlcih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4pOwogCi0gICAgLy8gQ29udmVy
dCBhIHZhbHVlIHRvIGEgMzItYml0IGludGVnZXIuICBUaGUgY29udmVyc2lvbiBmYWlscyBpZiB0
aGUKLSAgICAvLyB2YWx1ZSBjYW5ub3QgYmUgY29udmVydGVkIHRvIGFuIGludGVnZXIgb3IgY29u
dmVydHMgdG8gbmFuIG9yIHRvIGFuIGluZmluaXR5LgotICAgIGludCB0b0ludDMyKHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB2YWx1ZSwgYm9vbCYgb2spOwotCi0gICAgLy8gQ29udmVydCBhIHZhbHVl
IHRvIGEgMzItYml0IGludGVnZXIgYXNzdW1pbmcgdGhlIGNvbnZlcnNpb24gY2Fubm90IGZhaWwu
Ci0gICAgaW5saW5lIGludCB0b0ludDMyKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKLSAg
ICB7Ci0gICAgICAgIGJvb2wgb2s7Ci0gICAgICAgIHJldHVybiB0b0ludDMyKHZhbHVlLCBvayk7
Ci0gICAgfQotCi0gICAgLy8gQ29udmVydCBhIHZhbHVlIHRvIGEgMzItYml0IHVuc2lnbmVkIGlu
dGVnZXIuICBUaGUgY29udmVyc2lvbiBmYWlscyBpZiB0aGUKLSAgICAvLyB2YWx1ZSBjYW5ub3Qg
YmUgY29udmVydGVkIHRvIGFuIHVuc2lnbmVkIGludGVnZXIgb3IgY29udmVydHMgdG8gbmFuIG9y
IHRvIGFuIGluZmluaXR5LgotICAgIHVpbnQzMl90IHRvVUludDMyKHY4OjpIYW5kbGU8djg6OlZh
bHVlPiB2YWx1ZSwgYm9vbCYgb2spOwotCi0gICAgLy8gQ29udmVydCBhIHZhbHVlIHRvIGEgMzIt
Yml0IHVuc2lnbmVkIGludGVnZXIgYXNzdW1pbmcgdGhlIGNvbnZlcnNpb24gY2Fubm90IGZhaWwu
Ci0gICAgaW5saW5lIHVpbnQzMl90IHRvVUludDMyKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1
ZSkKLSAgICB7Ci0gICAgICAgIGJvb2wgb2s7Ci0gICAgICAgIHJldHVybiB0b1VJbnQzMih2YWx1
ZSwgb2spOwotICAgIH0KLQotICAgIGlubGluZSBmbG9hdCB0b0Zsb2F0KHY4OjpMb2NhbDx2ODo6
VmFsdWU+IHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pih2
YWx1ZS0+TnVtYmVyVmFsdWUoKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIGxvbmcgbG9uZyB0b0lu
dDY0KHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGxvbmcgbG9uZz4odmFsdWUtPkludGVnZXJWYWx1ZSgpKTsKLSAgICB9Ci0KICAg
ICBpbmxpbmUgYm9vbCBpc1VuZGVmaW5lZE9yTnVsbCh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFs
dWUpCiAgICAgewogICAgICAgICByZXR1cm4gdmFsdWUtPklzTnVsbCgpIHx8IHZhbHVlLT5Jc1Vu
ZGVmaW5lZCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCShy
ZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICsz
OCw3IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJWOEFycmF5QnVm
ZmVyVmlldy5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4RVhURHJhd0J1
ZmZlcnMuaCIKICNpbmNsdWRlICJWOEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIgogI2lu
Y2x1ZGUgIlY4RmxvYXQzMkFycmF5LmgiCiAjaW5jbHVkZSAiVjhIVE1MQ2FudmFzRWxlbWVudC5o
IgpAQCAtMTc2LDYgKzE3NywxMCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhP
YmplY3QoCiAgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xM
b3NlQ29udGV4dCo+KGV4dGVuc2lvbiksIGNvbnRleHRPYmplY3QsIGlzb2xhdGUpOwogICAgICAg
ICByZWZlcmVuY2VOYW1lID0gIndlYkdMTG9zZUNvbnRleHROYW1lIjsKICAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6RVhURHJhd0J1ZmZlcnNOYW1lOgorICAgICAgICBl
eHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PEVYVERyYXdCdWZmZXJzKj4oZXh0ZW5z
aW9uKSwgY29udGV4dE9iamVjdCwgaXNvbGF0ZSk7CisgICAgICAgIHJlZmVyZW5jZU5hbWUgPSAi
ZXh0RHJhd0J1ZmZlcnNOYW1lIjsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJHTEV4dGVu
c2lvbjo6RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljTmFtZToKICAgICAgICAgZXh0ZW5zaW9u
T2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMqPihl
eHRlbnNpb24pLCBjb250ZXh0T2JqZWN0LCBpc29sYXRlKTsKICAgICAgICAgcmVmZXJlbmNlTmFt
ZSA9ICJleHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWNOYW1lIjsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5jcHAJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5jcHAJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFC
TEUoV0VCR0wpCisKKyNpbmNsdWRlICJFWFREcmF3QnVmZmVycy5oIgorCisjaW5jbHVkZSAiRXh0
ZW5zaW9uczNELmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRVhURHJhd0J1ZmZlcnM6OkVY
VERyYXdCdWZmZXJzKFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKKyAgICA6IFdlYkdM
RXh0ZW5zaW9uKGNvbnRleHQpCit7Cit9CisKK0VYVERyYXdCdWZmZXJzOjp+RVhURHJhd0J1ZmZl
cnMoKQoreworfQorCitXZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9uTmFtZSBFWFREcmF3QnVmZmVy
czo6Z2V0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYkdMRXh0ZW5zaW9uOjpFWFREcmF3
QnVmZmVyc05hbWU7Cit9CisKK1Bhc3NPd25QdHI8RVhURHJhd0J1ZmZlcnM+IEVYVERyYXdCdWZm
ZXJzOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQoreworICAgIEVYVERy
YXdCdWZmZXJzKiB4ID0gbmV3IEVYVERyYXdCdWZmZXJzKGNvbnRleHQpOworICAgIHJldHVybiBh
ZG9wdFB0cih4KTsKK30KKworLy8gc3RhdGljCitib29sIEVYVERyYXdCdWZmZXJzOjpzdXBwb3J0
ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQoreworICAgIEV4dGVuc2lvbnMzRCog
ZXh0ZW5zaW9ucyA9IGNvbnRleHQtPmdyYXBoaWNzQ29udGV4dDNEKCktPmdldEV4dGVuc2lvbnMo
KTsKKyAgICByZXR1cm4gZXh0ZW5zaW9ucy0+c3VwcG9ydHMoIkdMX0VYVF9kcmF3X2J1ZmZlcnMi
KTsKK30KKwordm9pZCBFWFREcmF3QnVmZmVyczo6ZHJhd0J1ZmZlcnNFWFQoY29uc3QgVmVjdG9y
PEdDM0RlbnVtPiYgYnVmZmVycykKK3sKKyAgICBpZiAobV9jb250ZXh0LT5pc0NvbnRleHRMb3N0
KCkpCisgICAgICAgIHJldHVybjsKKyAgICBHQzNEc2l6ZWkgbiA9IGJ1ZmZlcnMuc2l6ZSgpOwor
ICAgIGNvbnN0IEdDM0RlbnVtKiBidWZzID0gYnVmZmVycy5kYXRhKCk7CisgICAgaWYgKCFtX2Nv
bnRleHQtPm1fZnJhbWVidWZmZXJCaW5kaW5nKSB7CisgICAgICAgIGlmIChuICE9IDEpIHsKKyAg
ICAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfVkFMVUUsICJkcmF3QnVmZmVyc0VYVCIsICJtb3JlIHRoYW4gb25lIGJ1ZmZlciIp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChidWZzWzBdICE9
IEdyYXBoaWNzQ29udGV4dDNEOjpCQUNLICYmIGJ1ZnNbMF0gIT0gR3JhcGhpY3NDb250ZXh0M0Q6
Ok5PTkUpIHsKKyAgICAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhp
Y3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCAiZHJhd0J1ZmZlcnNFWFQiLCAiQkFDSyBv
ciBOT05FIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gQmVj
YXVzZSB0aGUgYmFja2J1ZmZlciBpcyBzaW11bGF0ZWQgd2UgbmVlZCB0byBjaGFuZ2UgQkFDSyB0
byBDT0xPUl9BVFRBQ0hNRU5UMAorICAgICAgICBHQzNEZW51bSB2YWx1ZSA9IChidWZzWzBdID09
IEdyYXBoaWNzQ29udGV4dDNEOjpCQUNLKSA/IEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRB
Q0hNRU5UMCA6IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FOworICAgICAgICBtX2NvbnRleHQtPmdy
YXBoaWNzQ29udGV4dDNEKCktPmdldEV4dGVuc2lvbnMoKS0+ZHJhd0J1ZmZlcnNFWFQoMSwgJnZh
bHVlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobiA+IG1fY29udGV4dC0+Z2V0TWF4RHJh
d0J1ZmZlcnMoKSkgeworICAgICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSwgImRyYXdCdWZmZXJzRVhUIiwgIm1vcmUg
dGhhbiBtYXggZHJhdyBidWZmZXJzIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICAgICAgZm9yIChHQzNEc2l6ZWkgaSA9IDA7IGkgPCBuOyArK2kpIHsKKyAgICAgICAgICAg
IGlmIChidWZzW2ldICE9IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FICYmIGJ1ZnNbaV0gIT0gc3Rh
dGljX2Nhc3Q8R0MzRGVudW0+KEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDBfRVhUICsg
aSkpIHsKKyAgICAgICAgICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgImRyYXdCdWZmZXJzRVhUIiwgIkNPTE9S
X0FUVEFDSE1FTlRpX0VYVCBvciBOT05FIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1fY29udGV4dC0+bV9mcmFtZWJ1ZmZlckJp
bmRpbmctPmRyYXdCdWZmZXJzKGJ1ZmZlcnMpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQoKUHJvcGVydHkgY2hhbmdlcyBvbjog
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuY3BwCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
QWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0VYVERyYXdCdWZmZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIEVYVERyYXdCdWZmZXJzX2gKKyNkZWZpbmUgRVhURHJhd0J1ZmZl
cnNfaAorCisjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVYVERyYXdCdWZmZXJzIDog
cHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxF
WFREcmF3QnVmZmVycz4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworCisgICAgc3Rh
dGljIGJvb2wgc3VwcG9ydGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworCisgICAgdmlydHVh
bCB+RVhURHJhd0J1ZmZlcnMoKTsKKyAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgp
IGNvbnN0OworCisgICAgdm9pZCBkcmF3QnVmZmVyc0VYVChjb25zdCBWZWN0b3I8R0MzRGVudW0+
JiBidWZmZXJzKTsKKworcHJpdmF0ZToKKyAgICBFWFREcmF3QnVmZmVycyhXZWJHTFJlbmRlcmlu
Z0NvbnRleHQqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVY
VERyYXdCdWZmZXJzX2gKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0VYVERyYXdCdWZmZXJzLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQog
ICArIExGCgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZm
ZXJzLmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERy
YXdCdWZmZXJzLmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK3R5cGVk
ZWYgdW5zaWduZWQgbG9uZyBHTGVudW07CisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAg
ICBKU0dlbmVyYXRlSXNSZWFjaGFibGU9SW1wbENvbnRleHQsCisgICAgT21pdENvbnN0cnVjdG9y
LAorICAgIERvTm90Q2hlY2tDb25zdGFudHMKK10gaW50ZXJmYWNlIEVYVERyYXdCdWZmZXJzIHsK
KyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDBfRVhUID0gMHg4Q0UwOworICAgIGNv
bnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UMV9FWFQgPSAweDhDRTE7CisgICAgY29uc3QgR0xl
bnVtIENPTE9SX0FUVEFDSE1FTlQyX0VYVCA9IDB4OENFMjsKKyAgICBjb25zdCBHTGVudW0gQ09M
T1JfQVRUQUNITUVOVDNfRVhUID0gMHg4Q0UzOworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRB
Q0hNRU5UNF9FWFQgPSAweDhDRTQ7CisgICAgY29uc3QgR0xlbnVtIENPTE9SX0FUVEFDSE1FTlQ1
X0VYVCA9IDB4OENFNTsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDZfRVhUID0g
MHg4Q0U2OworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UN19FWFQgPSAweDhDRTc7
CisgICAgY29uc3QgR0xlbnVtIENPTE9SX0FUVEFDSE1FTlQ4X0VYVCA9IDB4OENFODsKKyAgICBj
b25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDlfRVhUID0gMHg4Q0U5OworICAgIGNvbnN0IEdM
ZW51bSBDT0xPUl9BVFRBQ0hNRU5UMTBfRVhUID0gMHg4Q0VBOworICAgIGNvbnN0IEdMZW51bSBD
T0xPUl9BVFRBQ0hNRU5UMTFfRVhUID0gMHg4Q0VCOworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9B
VFRBQ0hNRU5UMTJfRVhUID0gMHg4Q0VDOworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hN
RU5UMTNfRVhUID0gMHg4Q0VEOworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UMTRf
RVhUID0gMHg4Q0VFOworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UMTVfRVhUID0g
MHg4Q0VGOworCisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSMF9FWFQgPSAweDg4MjU7Cisg
ICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSMV9FWFQgPSAweDg4MjY7CisgICAgY29uc3QgR0xl
bnVtIERSQVdfQlVGRkVSMl9FWFQgPSAweDg4Mjc7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVG
RkVSM19FWFQgPSAweDg4Mjg7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSNF9FWFQgPSAw
eDg4Mjk7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSNV9FWFQgPSAweDg4MkE7CisgICAg
Y29uc3QgR0xlbnVtIERSQVdfQlVGRkVSNl9FWFQgPSAweDg4MkI7CisgICAgY29uc3QgR0xlbnVt
IERSQVdfQlVGRkVSN19FWFQgPSAweDg4MkM7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVS
OF9FWFQgPSAweDg4MkQ7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSOV9FWFQgPSAweDg4
MkU7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSMTBfRVhUID0gMHg4ODJGOworICAgIGNv
bnN0IEdMZW51bSBEUkFXX0JVRkZFUjExX0VYVCA9IDB4ODgzMDsKKyAgICBjb25zdCBHTGVudW0g
RFJBV19CVUZGRVIxMl9FWFQgPSAweDg4MzE7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVS
MTNfRVhUID0gMHg4ODMyOworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjE0X0VYVCA9IDB4
ODgzMzsKKyAgICBjb25zdCBHTGVudW0gRFJBV19CVUZGRVIxNV9FWFQgPSAweDg4MzQ7CisKKyAg
ICBjb25zdCBHTGVudW0gTUFYX0NPTE9SX0FUVEFDSE1FTlRTX0VYVCA9IDB4OENERjsKKyAgICBj
b25zdCBHTGVudW0gTUFYX0RSQVdfQlVGRkVSU19FWFQgPSAweDg4MjQ7CisKKyAgICB2b2lkIGRy
YXdCdWZmZXJzRVhUKGluIHNlcXVlbmNlPEdMZW51bT4gYnVmZmVycyk7Cit9OwoKUHJvcGVydHkg
Y2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaWRs
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaAkocmV2aXNpb24gMTQ0MDk4KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaAkod29ya2luZyBj
b3B5KQpAQCAtMzYsNiArMzYsNyBAQCBwdWJsaWM6CiAgICAgLy8gRXh0ZW5zaW9uIG5hbWVzIGFy
ZSBuZWVkZWQgdG8gcHJvcGVybHkgd3JhcCBpbnN0YW5jZXMgaW4gSmF2YVNjcmlwdCBvYmplY3Rz
LgogICAgIGVudW0gRXh0ZW5zaW9uTmFtZSB7CiAgICAgICAgIFdlYkdMTG9zZUNvbnRleHROYW1l
LAorICAgICAgICBFWFREcmF3QnVmZmVyc05hbWUsCiAgICAgICAgIEVYVFRleHR1cmVGaWx0ZXJB
bmlzb3Ryb3BpY05hbWUsCiAgICAgICAgIE9FU1RleHR1cmVGbG9hdE5hbWUsCiAgICAgICAgIE9F
U1N0YW5kYXJkRGVyaXZhdGl2ZXNOYW1lLApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAJKHJldmlzaW9uIDE0NDA5OCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw2ICsyOSw4IEBACiAKICNpbmNsdWRlICJXZWJHTEZyYW1lYnVmZmVyLmgiCiAKKyNp
bmNsdWRlICJFWFREcmF3QnVmZmVycy5oIgorI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgogI2lu
Y2x1ZGUgIldlYkdMQ29udGV4dEdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmgiCiAKQEAgLTI5Miw2ICsyOTQsNyBAQCB2b2lkIFdlYkdMRnJhbWVidWZmZXI6OnNldEF0
dGFjaG1lbnRGb3JCCiAgICAgICAgIHJldHVybjsKICAgICBpZiAodGV4dHVyZSAmJiB0ZXh0dXJl
LT5vYmplY3QoKSkgewogICAgICAgICBtX2F0dGFjaG1lbnRzLmFkZChhdHRhY2htZW50LCBXZWJH
TFRleHR1cmVBdHRhY2htZW50OjpjcmVhdGUodGV4dHVyZSwgdGV4VGFyZ2V0LCBsZXZlbCkpOwor
ICAgICAgICBkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5KGZhbHNlKTsKICAgICAgICAgdGV4dHVyZS0+
b25BdHRhY2hlZCgpOwogICAgIH0KIH0KQEAgLTMwNCw2ICszMDcsNyBAQCB2b2lkIFdlYkdMRnJh
bWVidWZmZXI6OnNldEF0dGFjaG1lbnRGb3JCCiAgICAgICAgIHJldHVybjsKICAgICBpZiAocmVu
ZGVyYnVmZmVyICYmIHJlbmRlcmJ1ZmZlci0+b2JqZWN0KCkpIHsKICAgICAgICAgbV9hdHRhY2ht
ZW50cy5hZGQoYXR0YWNobWVudCwgV2ViR0xSZW5kZXJidWZmZXJBdHRhY2htZW50OjpjcmVhdGUo
cmVuZGVyYnVmZmVyKSk7CisgICAgICAgIGRyYXdCdWZmZXJzSWZOZWNlc3NhcnkoZmFsc2UpOwog
ICAgICAgICByZW5kZXJidWZmZXItPm9uQXR0YWNoZWQoKTsKICAgICB9CiB9CkBAIC0zNDAsNiAr
MzQ0LDcgQEAgdm9pZCBXZWJHTEZyYW1lYnVmZmVyOjpyZW1vdmVBdHRhY2htZW50RgogICAgIGlm
IChhdHRhY2htZW50T2JqZWN0KSB7CiAgICAgICAgIGF0dGFjaG1lbnRPYmplY3QtPm9uRGV0YWNo
ZWQoY29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpKTsKICAgICAgICAgbV9hdHRhY2htZW50
cy5yZW1vdmUoYXR0YWNobWVudCk7CisgICAgICAgIGRyYXdCdWZmZXJzSWZOZWNlc3NhcnkoZmFs
c2UpOwogICAgICAgICBzd2l0Y2ggKGF0dGFjaG1lbnQpIHsKICAgICAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6REVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UOgogICAgICAgICAgICAgYXR0YWNo
KEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRBQ0hNRU5ULCBHcmFwaGljc0NvbnRleHQzRDo6
REVQVEhfQVRUQUNITUVOVCk7CkBAIC01ODUsNiArNTkwLDM5IEBAIGJvb2wgV2ViR0xGcmFtZWJ1
ZmZlcjo6aXNCb3VuZCgpIGNvbnN0CiAgICAgcmV0dXJuIChjb250ZXh0KCktPm1fZnJhbWVidWZm
ZXJCaW5kaW5nLmdldCgpID09IHRoaXMpOwogfQogCit2b2lkIFdlYkdMRnJhbWVidWZmZXI6OmRy
YXdCdWZmZXJzKGNvbnN0IFZlY3RvcjxHQzNEZW51bT4mIGJ1ZnMpCit7CisgICAgbV9kcmF3QnVm
ZmVycyA9IGJ1ZnM7CisgICAgbV9maWx0ZXJlZERyYXdCdWZmZXJzLnJlc2l6ZShtX2RyYXdCdWZm
ZXJzLnNpemUoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2ZpbHRlcmVkRHJhd0J1
ZmZlcnMuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fZmlsdGVyZWREcmF3QnVmZmVyc1tpXSA9IEdy
YXBoaWNzQ29udGV4dDNEOjpOT05FOworICAgIGRyYXdCdWZmZXJzSWZOZWNlc3NhcnkodHJ1ZSk7
Cit9CisKK3ZvaWQgV2ViR0xGcmFtZWJ1ZmZlcjo6ZHJhd0J1ZmZlcnNJZk5lY2Vzc2FyeShib29s
IGZvcmNlKQoreworICAgIGlmICghY29udGV4dCgpLT5tX2V4dERyYXdCdWZmZXJzKQorICAgICAg
ICByZXR1cm47CisgICAgYm9vbCByZXNldCA9IGZvcmNlOworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9kcmF3QnVmZmVycy5zaXplKCk7IGkrKykgeworICAgICAgICBpZiAobV9kcmF3QnVm
ZmVyc1tpXSAhPSBHcmFwaGljc0NvbnRleHQzRDo6Tk9ORSAmJiBnZXRBdHRhY2htZW50KG1fZHJh
d0J1ZmZlcnNbaV0pKSB7CisgICAgICAgICAgICBpZiAobV9maWx0ZXJlZERyYXdCdWZmZXJzW2ld
ICE9IG1fZHJhd0J1ZmZlcnNbaV0pIHsKKyAgICAgICAgICAgICAgICBtX2ZpbHRlcmVkRHJhd0J1
ZmZlcnNbaV0gPSBtX2RyYXdCdWZmZXJzW2ldOworICAgICAgICAgICAgICAgIHJlc2V0ID0gdHJ1
ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChtX2Zp
bHRlcmVkRHJhd0J1ZmZlcnNbaV0gIT0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUpIHsKKyAgICAg
ICAgICAgICAgICBtX2ZpbHRlcmVkRHJhd0J1ZmZlcnNbaV0gPSBHcmFwaGljc0NvbnRleHQzRDo6
Tk9ORTsKKyAgICAgICAgICAgICAgICByZXNldCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICB9CisgICAgaWYgKHJlc2V0KSB7CisgICAgICAgIGNvbnRleHQoKS0+Z3JhcGhp
Y3NDb250ZXh0M0QoKS0+Z2V0RXh0ZW5zaW9ucygpLT5kcmF3QnVmZmVyc0VYVCgKKyAgICAgICAg
ICAgIG1fZmlsdGVyZWREcmF3QnVmZmVycy5zaXplKCksIG1fZmlsdGVyZWREcmF3QnVmZmVycy5k
YXRhKCkpOworICAgIH0KK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaAkocmV2aXNp
b24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC05NSw2ICs5NSw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
aGFzU3RlbmNpbEJ1ZmZlcigpIGNvbnN0OwogCisgICAgLy8gV3JhcHBlciBmb3IgZHJhd0J1ZmZl
cnNFWFQvZHJhd0J1ZmZlcnNBUkIgdG8gd29yayBhcm91bmQgYSBkcml2ZXIgYnVnLgorICAgIHZv
aWQgZHJhd0J1ZmZlcnMoY29uc3QgVmVjdG9yPEdDM0RlbnVtPiYgYnVmcyk7CisKIHByb3RlY3Rl
ZDoKICAgICBXZWJHTEZyYW1lYnVmZmVyKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwogCkBAIC0x
MTQsMTEgKzExNywxNyBAQCBwcml2YXRlOgogICAgIC8vIGF0dGFjaCAnYXR0YWNobWVudCcgYXQg
J2F0dGFjaG1lbnRQb2ludCcuCiAgICAgdm9pZCBhdHRhY2goR0MzRGVudW0gYXR0YWNobWVudCwg
R0MzRGVudW0gYXR0YWNobWVudFBvaW50KTsKIAorICAgIC8vIENoZWNrIGlmIGEgbmV3IGRyYXdC
dWZmZXJzIGNhbGwgc2hvdWxkIGJlIGlzc3VlZC4gVGhpcyBpcyBjYWxsZWQgd2hlbiB3ZSBhZGQg
b3IgcmVtb3ZlIGFuIGF0dGFjaG1lbnQuCisgICAgdm9pZCBkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5
KGJvb2wgZm9yY2UpOworCiAgICAgdHlwZWRlZiBXVEY6Okhhc2hNYXA8R0MzRGVudW0sIFJlZlB0
cjxXZWJHTEF0dGFjaG1lbnQ+ID4gQXR0YWNobWVudE1hcDsKIAogICAgIEF0dGFjaG1lbnRNYXAg
bV9hdHRhY2htZW50czsKIAogICAgIGJvb2wgbV9oYXNFdmVyQmVlbkJvdW5kOworCisgICAgVmVj
dG9yPEdDM0RlbnVtPiBtX2RyYXdCdWZmZXJzOworICAgIFZlY3RvcjxHQzNEZW51bT4gbV9maWx0
ZXJlZERyYXdCdWZmZXJzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
Y3BwCShyZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAj
aW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDaGVja2VkSW50LmgiCiAjaW5jbHVk
ZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRVhURHJhd0J1ZmZlcnMuaCIKICNpbmNsdWRlICJF
WFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNELmgiCkBAIC01MzgsNiArNTM5LDEwIEBAIHZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplTmUKICAgICBtX21heFJlbmRlcmJ1ZmZlclNp
emUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6Ok1B
WF9SRU5ERVJCVUZGRVJfU0laRSwgJm1fbWF4UmVuZGVyYnVmZmVyU2l6ZSk7CiAKKyAgICAvLyBU
aGVzZSB0d28gdmFsdWVzIGZyb20gRVhUX2RyYXdfYnVmZmVycyBhcmUgbGF6aWx5IHF1ZXJpZWQu
CisgICAgbV9tYXhEcmF3QnVmZmVycyA9IDA7CisgICAgbV9tYXhDb2xvckF0dGFjaG1lbnRzID0g
MDsKKwogICAgIG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdE9FUzo6Y3JlYXRlKHRoaXMsIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OlZhb1R5cGVE
ZWZhdWx0KTsKICAgICBhZGRDb250ZXh0T2JqZWN0KG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0
LmdldCgpKTsKICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBtX2RlZmF1bHRWZXJ0ZXhB
cnJheU9iamVjdDsKQEAgLTIxNTMsMTIgKzIxNTgsNiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6ZnJhbWVidWZmZXJSCiAgICAgICAgIG1fY29udGV4dC0+ZnJhbWVidWZmZXJSZW5kZXJi
dWZmZXIodGFyZ2V0LCBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQVRUQUNITUVOVCwgcmVuZGVy
YnVmZmVydGFyZ2V0LCBidWZmZXJPYmplY3QpOwogICAgICAgICBtX2NvbnRleHQtPmZyYW1lYnVm
ZmVyUmVuZGVyYnVmZmVyKHRhcmdldCwgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQVRUQUNI
TUVOVCwgcmVuZGVyYnVmZmVydGFyZ2V0LCBidWZmZXJPYmplY3QpOwogICAgICAgICBicmVhazsK
LSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRBQ0hNRU5UOgotICAgICAgICBt
X2NvbnRleHQtPmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKHRhcmdldCwgYXR0YWNobWVudCwgcmVu
ZGVyYnVmZmVydGFyZ2V0LCBidWZmZXJPYmplY3QpOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0FUVEFDSE1FTlQ6Ci0gICAgICAgIG1fY29udGV4
dC0+ZnJhbWVidWZmZXJSZW5kZXJidWZmZXIodGFyZ2V0LCBhdHRhY2htZW50LCByZW5kZXJidWZm
ZXJ0YXJnZXQsIGJ1ZmZlck9iamVjdCk7Ci0gICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIG1fY29udGV4dC0+ZnJhbWVidWZmZXJSZW5kZXJidWZmZXIodGFyZ2V0LCBhdHRhY2ht
ZW50LCByZW5kZXJidWZmZXJ0YXJnZXQsIGJ1ZmZlck9iamVjdCk7CiAgICAgfQpAQCAtMjQyNiw2
ICsyNDI1LDEzIEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmcKICAg
ICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbERlcHRoVGV4dHVyZS5nZXQoKTsKICAgICB9
CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJFWFRfZHJhd19idWZmZXJzIikgJiYg
RVhURHJhd0J1ZmZlcnM6OnN1cHBvcnRlZCh0aGlzKSkgeworICAgICAgICBpZiAoIW1fZXh0RHJh
d0J1ZmZlcnMpIHsKKyAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5lbnN1
cmVFbmFibGVkKCJHTF9FWFRfZHJhd19idWZmZXJzIik7CisgICAgICAgICAgICBtX2V4dERyYXdC
dWZmZXJzID0gRVhURHJhd0J1ZmZlcnM6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gbV9leHREcmF3QnVmZmVycy5nZXQoKTsKKyAgICB9CiAgICAgaWYgKGFsbG93UHJp
dmlsZWdlZEV4dGVuc2lvbnMoKSkgewogICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFt
ZSwgIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8iKSkgewogICAgICAgICAgICAgaWYgKCFtX3dl
YmdsRGVidWdSZW5kZXJlckluZm8pCkBAIC0yNzA5LDYgKzI3MTUsNTAgQEAgV2ViR0xHZXRJbmZv
IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UAogICAgICAgICAgICAgcmV0dXJuIGdldFVuc2ln
bmVkSW50UGFyYW1ldGVyKEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlf
RVhUKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBFWFRfdGV4
dHVyZV9maWx0ZXJfYW5pc290cm9waWMgbm90IGVuYWJsZWQiKTsKICAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbygpOworICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpNQVhfQ09MT1JfQVRUQUNITUVO
VFNfRVhUOiAvLyBFWFRfZHJhd19idWZmZXJzIEJFR0lOCisgICAgICAgIGlmIChtX2V4dERyYXdC
dWZmZXJzKQorICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhnZXRNYXhDb2xvckF0dGFj
aG1lbnRzKCkpOworICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6
SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIEVY
VF9kcmF3X2J1ZmZlcnMgbm90IGVuYWJsZWQiKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpNQVhfRFJBV19CVUZGRVJTX0VYVDoKKyAgICAg
ICAgaWYgKG1fZXh0RHJhd0J1ZmZlcnMpCisgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KGdldE1heERyYXdCdWZmZXJzKCkpOworICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGlj
c0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1l
dGVyIG5hbWUsIEVYVF9kcmF3X2J1ZmZlcnMgbm90IGVuYWJsZWQiKTsKKyAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbygpOworICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpEUkFXX0JVRkZFUjBfRVhU
OiAvLyBEUkFXX0JVRkZFUjBfRVhUIGlzIHNwZWNpYWwgYXMgdGhlIGJhY2tidWZmZXIgaXMgc2lt
dWxhdGVkLgorICAgICAgICBpZiAobV9leHREcmF3QnVmZmVycykgeworICAgICAgICAgICAgR0Mz
RGludCB2YWx1ZSA9IDA7CisgICAgICAgICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KHBuYW1l
LCAmdmFsdWUpOworICAgICAgICAgICAgaWYgKCFtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiB2YWx1
ZSAhPSBHcmFwaGljc0NvbnRleHQzRDo6Tk9ORSkKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IEdy
YXBoaWNzQ29udGV4dDNEOjpCQUNLOworICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2
YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBu
YW1lLCBFWFRfZHJhd19idWZmZXJzIG5vdCBlbmFibGVkIik7CisgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oKTsKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIxX0VYVDoKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIyX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lv
bnMzRDo6RFJBV19CVUZGRVIzX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZG
RVI0X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVI1X0VYVDoKKyAgICBj
YXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVI2X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMz
RDo6RFJBV19CVUZGRVI3X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVI4
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVI5X0VYVDoKKyAgICBjYXNl
IEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIxMF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6
OkRSQVdfQlVGRkVSMTFfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpEUkFXX0JVRkZFUjEy
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIxM19FWFQ6CisgICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSMTRfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNE
OjpEUkFXX0JVRkZFUjE1X0VYVDogLy8gRVhUX2RyYXdfYnVmZmVycyBFTkQKKyAgICAgICAgaWYg
KG1fZXh0RHJhd0J1ZmZlcnMpIHsKKyAgICAgICAgICAgIGlmIChzdGF0aWNfY2FzdDxHQzNEZW51
bT4oRXh0ZW5zaW9uczNEOjpEUkFXX0JVRkZFUjBfRVhUICsgZ2V0TWF4RHJhd0J1ZmZlcnMoKSkg
PD0gcG5hbWUpIHsKKyAgICAgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVy
LCBleGNlZWRzIE1BWF9DT0xPUl9BVFRBQ0hNRU5UU19FWFQiKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4g
Z2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKKyAgICAgICAgfQorICAgICAgICBzeW50aGVzaXplR0xF
cnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImlu
dmFsaWQgcGFyYW1ldGVyIG5hbWUsIEVYVF9kcmF3X2J1ZmZlcnMgbm90IGVuYWJsZWQiKTsKKyAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0
ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwogICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKCk7CkBAIC0yOTEzLDYgKzI5NjMsOCBAQCBWZWN0b3I8U3RyaW5nPiBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdlCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9XRUJHTF9jb21wcmVz
c2VkX3RleHR1cmVfczN0YyIpOwogICAgIGlmIChXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVk
KGdyYXBoaWNzQ29udGV4dDNEKCkpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJLSVRfV0VC
R0xfZGVwdGhfdGV4dHVyZSIpOworICAgIGlmIChFWFREcmF3QnVmZmVyczo6c3VwcG9ydGVkKHRo
aXMpKQorICAgICAgICByZXN1bHQuYXBwZW5kKCJFWFRfZHJhd19idWZmZXJzIik7CiAKICAgICBp
ZiAoYWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9ucygpKSB7CiAgICAgICAgIGlmIChtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3Nv
dXJjZSIpKQpAQCAtNTMyNiw2ICs1Mzc4LDMxIEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0
Ojp2YWxpZGF0ZUZyYW0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0FUVEFD
SE1FTlQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfU1RFTkNJTF9BVFRBQ0hN
RU5UOgogICAgICAgICBicmVhazsKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNI
TUVOVDFfRVhUOiAvLyBFWFRfZHJhd19idWZmZXJzIEJFR0lOCisgICAgY2FzZSBFeHRlbnNpb25z
M0Q6OkNPTE9SX0FUVEFDSE1FTlQyX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1Jf
QVRUQUNITUVOVDNfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5U
NF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ1X0VYVDoKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDZfRVhUOgorICAgIGNhc2UgRXh0
ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UN19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6
OkNPTE9SX0FUVEFDSE1FTlQ4X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRU
QUNITUVOVDlfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTBf
RVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTFfRVhUOgorICAg
IGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTJfRVhUOgorICAgIGNhc2UgRXh0
ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTNfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNE
OjpDT0xPUl9BVFRBQ0hNRU5UMTRfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9B
VFRBQ0hNRU5UMTVfRVhUOiAvLyBFWFRfZHJhd19idWZmZXJzIEVORAorICAgIC8vIENPTE9SX0FU
VEFDSE1FTlQwX0VYVCBpcyBlcXVhbCB0byBDT0xPUl9BVFRBQ0hNRU5UMAorICAgICAgICBpZiAo
IW1fZXh0RHJhd0J1ZmZlcnMpIHsKKyAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sIGZ1bmN0aW9uTmFtZSwgImludmFsaWQgYXR0YWNo
bWVudCwgRVhUX2RyYXdfYnVmZmVycyBub3QgZW5hYmxlZCIpOworICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChzdGF0aWNfY2FzdDxHQzNEZW51bT4oRXh0
ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMF9FWFQgKyBnZXRNYXhDb2xvckF0dGFjaG1lbnRz
KCkpIDw9IGF0dGFjaG1lbnQpIHsKKyAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sIGZ1bmN0aW9uTmFtZSwgImludmFsaWQgYXR0YWNo
bWVudCwgZXhjZWVkcyBNQVhfRFJBV19CVUZGRVJTX0VYVCIpOworICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sIGZ1bmN0
aW9uTmFtZSwgImludmFsaWQgYXR0YWNobWVudCIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC01ODQyLDYgKzU5MTksMjAgQEAgSW50U2l6ZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmNsYW1w
ZWRDYQogICAgICAgICAgICAgICAgICAgIGNsYW1wKGNhbnZhcygpLT5oZWlnaHQoKSwgMSwgbV9t
YXhWaWV3cG9ydERpbXNbMV0pKTsKIH0KIAorR0MzRGludCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmdldE1heERyYXdCdWZmZXJzKCkKK3sKKyAgICBpZiAoIW1fbWF4RHJhd0J1ZmZlcnMgJiYgRVhU
RHJhd0J1ZmZlcnM6OnN1cHBvcnRlZCh0aGlzKSkKKyAgICAgICAgbV9jb250ZXh0LT5nZXRJbnRl
Z2VydihFeHRlbnNpb25zM0Q6Ok1BWF9EUkFXX0JVRkZFUlNfRVhULCAmbV9tYXhEcmF3QnVmZmVy
cyk7CisgICAgcmV0dXJuIG1fbWF4RHJhd0J1ZmZlcnM7Cit9CisKK0dDM0RpbnQgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCkKK3sKKyAgICBpZiAoIW1fbWF4
Q29sb3JBdHRhY2htZW50cyAmJiBFWFREcmF3QnVmZmVyczo6c3VwcG9ydGVkKHRoaXMpKQorICAg
ICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KEV4dGVuc2lvbnMzRDo6TUFYX0NPTE9SX0FUVEFD
SE1FTlRTX0VYVCwgJm1fbWF4Q29sb3JBdHRhY2htZW50cyk7CisgICAgcmV0dXJuIG1fbWF4Q29s
b3JBdHRhY2htZW50czsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKFdFQkdMKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0LmgJKHJldmlzaW9uIDE0NDA5OCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00Miw2ICs0Miw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRVhURHJhd0J1
ZmZlcnM7CiBjbGFzcyBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWM7CiBjbGFzcyBIVE1MSW1h
Z2VFbGVtZW50OwogY2xhc3MgSFRNTFZpZGVvRWxlbWVudDsKQEAgLTMyMyw2ICszMjQsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKTsKIAogICBwcml2YXRlOgorICAgIGZyaWVu
ZCBjbGFzcyBFWFREcmF3QnVmZmVyczsKICAgICBmcmllbmQgY2xhc3MgV2ViR0xGcmFtZWJ1ZmZl
cjsKICAgICBmcmllbmQgY2xhc3MgV2ViR0xPYmplY3Q7CiAgICAgZnJpZW5kIGNsYXNzIE9FU1Zl
cnRleEFycmF5T2JqZWN0OwpAQCAtNDc2LDYgKzQ3OCw5IEBAIHB1YmxpYzoKICAgICBHQzNEaW50
IG1fbWF4VGV4dHVyZUxldmVsOwogICAgIEdDM0RpbnQgbV9tYXhDdWJlTWFwVGV4dHVyZUxldmVs
OwogCisgICAgR0MzRGludCBtX21heERyYXdCdWZmZXJzOworICAgIEdDM0RpbnQgbV9tYXhDb2xv
ckF0dGFjaG1lbnRzOworCiAgICAgR0MzRGludCBtX3BhY2tBbGlnbm1lbnQ7CiAgICAgR0MzRGlu
dCBtX3VucGFja0FsaWdubWVudDsKICAgICBib29sIG1fdW5wYWNrRmxpcFk7CkBAIC01MDksNiAr
NTE0LDcgQEAgcHVibGljOgogICAgIGludCBtX251bUdMRXJyb3JzVG9Db25zb2xlQWxsb3dlZDsK
IAogICAgIC8vIEVuYWJsZWQgZXh0ZW5zaW9uIG9iamVjdHMuCisgICAgT3duUHRyPEVYVERyYXdC
dWZmZXJzPiBtX2V4dERyYXdCdWZmZXJzOwogICAgIE93blB0cjxFWFRUZXh0dXJlRmlsdGVyQW5p
c290cm9waWM+IG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljOwogICAgIE93blB0cjxPRVNU
ZXh0dXJlRmxvYXQ+IG1fb2VzVGV4dHVyZUZsb2F0OwogICAgIE93blB0cjxPRVNTdGFuZGFyZERl
cml2YXRpdmVzPiBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXM7CkBAIC03MzIsNiArNzM4LDExIEBA
IHB1YmxpYzoKICAgICAvLyBDbGFtcCB0aGUgd2lkdGggYW5kIGhlaWdodCB0byBHTF9NQVhfVklF
V1BPUlRfRElNUy4KICAgICBJbnRTaXplIGNsYW1wZWRDYW52YXNTaXplKCk7CiAKKyAgICAvLyBG
aXJzdCB0aW1lIGNhbGxlZCwgaWYgRVhUX2RyYXdfYnVmZmVycyBpcyBzdXBwb3J0ZWQsIHF1ZXJ5
IHRoZSB2YWx1ZTsgb3RoZXJ3aXNlIHJldHVybiAwLgorICAgIC8vIExhdGVyLCByZXR1cm4gdGhl
IGNhY2hlZCB2YWx1ZS4KKyAgICBHQzNEaW50IGdldE1heERyYXdCdWZmZXJzKCk7CisgICAgR0Mz
RGludCBnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCk7CisKICAgICBmcmllbmQgY2xhc3MgV2ViR0xT
dGF0ZVJlc3RvcmVyOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vc3VwcG9ydC9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9FeHRlbnNpb25zM0RDaHJvbWl1bS5j
cHAJKHJldmlzaW9uIDE0NDA5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L3N1cHBvcnQvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTUs
NCArMjE1LDkgQEAgdm9pZCBFeHRlbnNpb25zM0RDaHJvbWl1bTo6cG9wR3JvdXBNYXJrZQogICAg
IG1fcHJpdmF0ZS0+d2ViQ29udGV4dCgpLT5wb3BHcm91cE1hcmtlckVYVCgpOwogfQogCit2b2lk
IEV4dGVuc2lvbnMzRENocm9taXVtOjpkcmF3QnVmZmVyc0VYVChHQzNEc2l6ZWkgbiwgY29uc3Qg
R0MzRGVudW0qIGJ1ZnMpCit7CisgICAgbV9wcml2YXRlLT53ZWJDb250ZXh0KCktPmRyYXdCdWZm
ZXJzQ2hyb21pdW0obiwgYnVmcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCShy
ZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRl
bnNpb25zM0QuaAkod29ya2luZyBjb3B5KQpAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gICBHTF9FWFRfZGVidWdfbWFya2VyCiAgICAgLy8gICBHTF9DSFJPTUlVTV9jb3B5X3RleHR1
cmUKICAgICAvLyAgIEdMX0NIUk9NSVVNX2ZsaXB5CisgICAgLy8gICBHTF9BUkJfZHJhd19idWZm
ZXJzIC8gR0xfRVhUX2RyYXdfYnVmZmVycwogCiAgICAgLy8gVGFrZXMgZnVsbCBuYW1lIG9mIGV4
dGVuc2lvbjsgZm9yIGV4YW1wbGUsCiAgICAgLy8gIkdMX0VYVF90ZXh0dXJlX2Zvcm1hdF9CR1JB
ODg4OCIuCkBAIC0xNTAsNyArMTUxLDQzIEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBHTF9DSFJP
TUlVTV9jb3B5X3RleHR1cmUKICAgICAgICAgVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX0NIUk9N
SVVNID0gMHg5MjQxLAotICAgICAgICBVTlBBQ0tfVU5QUkVNVUxUSVBMWV9BTFBIQV9DSFJPTUlV
TSA9IDB4OTI0MgorICAgICAgICBVTlBBQ0tfVU5QUkVNVUxUSVBMWV9BTFBIQV9DSFJPTUlVTSA9
IDB4OTI0MiwKKworICAgICAgICAvLyBHTF9BUkJfZHJhd19idWZmZXJzIC8gR0xfRVhUX2RyYXdf
YnVmZmVycworICAgICAgICBNQVhfRFJBV19CVUZGRVJTX0VYVCA9IDB4ODgyNCwKKyAgICAgICAg
RFJBV19CVUZGRVIwX0VYVCA9IDB4ODgyNSwKKyAgICAgICAgRFJBV19CVUZGRVIxX0VYVCA9IDB4
ODgyNiwKKyAgICAgICAgRFJBV19CVUZGRVIyX0VYVCA9IDB4ODgyNywKKyAgICAgICAgRFJBV19C
VUZGRVIzX0VYVCA9IDB4ODgyOCwKKyAgICAgICAgRFJBV19CVUZGRVI0X0VYVCA9IDB4ODgyOSwK
KyAgICAgICAgRFJBV19CVUZGRVI1X0VYVCA9IDB4ODgyQSwKKyAgICAgICAgRFJBV19CVUZGRVI2
X0VYVCA9IDB4ODgyQiwKKyAgICAgICAgRFJBV19CVUZGRVI3X0VYVCA9IDB4ODgyQywKKyAgICAg
ICAgRFJBV19CVUZGRVI4X0VYVCA9IDB4ODgyRCwKKyAgICAgICAgRFJBV19CVUZGRVI5X0VYVCA9
IDB4ODgyRSwKKyAgICAgICAgRFJBV19CVUZGRVIxMF9FWFQgPSAweDg4MkYsCisgICAgICAgIERS
QVdfQlVGRkVSMTFfRVhUID0gMHg4ODMwLAorICAgICAgICBEUkFXX0JVRkZFUjEyX0VYVCA9IDB4
ODgzMSwKKyAgICAgICAgRFJBV19CVUZGRVIxM19FWFQgPSAweDg4MzIsCisgICAgICAgIERSQVdf
QlVGRkVSMTRfRVhUID0gMHg4ODMzLAorICAgICAgICBEUkFXX0JVRkZFUjE1X0VYVCA9IDB4ODgz
NCwKKyAgICAgICAgTUFYX0NPTE9SX0FUVEFDSE1FTlRTX0VYVCA9IDB4OENERiwKKyAgICAgICAg
Q09MT1JfQVRUQUNITUVOVDBfRVhUID0gMHg4Q0UwLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5U
MV9FWFQgPSAweDhDRTEsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQyX0VYVCA9IDB4OENFMiwK
KyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDNfRVhUID0gMHg4Q0UzLAorICAgICAgICBDT0xPUl9B
VFRBQ0hNRU5UNF9FWFQgPSAweDhDRTQsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ1X0VYVCA9
IDB4OENFNSwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDZfRVhUID0gMHg4Q0U2LAorICAgICAg
ICBDT0xPUl9BVFRBQ0hNRU5UN19FWFQgPSAweDhDRTcsCisgICAgICAgIENPTE9SX0FUVEFDSE1F
TlQ4X0VYVCA9IDB4OENFOCwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDlfRVhUID0gMHg4Q0U5
LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTBfRVhUID0gMHg4Q0VBLAorICAgICAgICBDT0xP
Ul9BVFRBQ0hNRU5UMTFfRVhUID0gMHg4Q0VCLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTJf
RVhUID0gMHg4Q0VDLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTNfRVhUID0gMHg4Q0VELAor
ICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTRfRVhUID0gMHg4Q0VFLAorICAgICAgICBDT0xPUl9B
VFRBQ0hNRU5UMTVfRVhUID0gMHg4Q0VGCiAgICAgfTsKIAogICAgIC8vIEdMX0FSQl9yb2J1c3Ru
ZXNzCkBAIC0xOTAsNiArMjI3LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwdXNoR3Jv
dXBNYXJrZXJFWFQoY29uc3QgU3RyaW5nJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwb3BHcm91
cE1hcmtlckVYVCh2b2lkKSA9IDA7CiAKKyAgICAvLyBHTF9BUkJfZHJhd19idWZmZXJzIC8gR0xf
RVhUX2RyYXdfYnVmZmVycworICAgIHZpcnR1YWwgdm9pZCBkcmF3QnVmZmVyc0VYVChHQzNEc2l6
ZWkgbiwgY29uc3QgR0MzRGVudW0qIGJ1ZnMpID0gMDsKKwogICAgIHZpcnR1YWwgYm9vbCBpc05W
SURJQSgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBTUQoKSA9IDA7CiAgICAgdmlydHVhbCBi
b29sIGlzSW50ZWwoKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQzRC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwCShyZXZpc2lvbiAxNDQwOTgpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEzODksNiArMTM4OSwyMSBAQCB1bnNpZ25lZCBHcmFwaGljc0Nv
bnRleHQzRDo6Z2V0Q2xlYXJCaXRzCiB7CiAgICAgc3dpdGNoIChhdHRhY2htZW50KSB7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDA6CisgICAgY2FzZSBFeHRl
bnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6
Q09MT1JfQVRUQUNITUVOVDJfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRB
Q0hNRU5UM19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ0X0VY
VDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDVfRVhUOgorICAgIGNh
c2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UNl9FWFQ6CisgICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ3X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09M
T1JfQVRUQUNITUVOVDhfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hN
RU5UOV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMF9FWFQ6
CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMV9FWFQ6CisgICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMl9FWFQ6CisgICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxM19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNP
TE9SX0FUVEFDSE1FTlQxNF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFD
SE1FTlQxNV9FWFQ6CiAgICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQlVG
RkVSX0JJVDsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRBQ0hNRU5UOgog
ICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JVRkZFUl9CSVQ7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RD
aHJvbWl1bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgJKHJldmlzaW9uIDE0NDA5OCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9t
aXVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKICAgICB2
aXJ0dWFsIHZvaWQgYmluZFZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOwogICAgIHZp
cnR1YWwgU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9ybTNET2Jq
ZWN0KTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0J1ZmZlcnNFWFQoR0MzRHNpemVpLCBjb25zdCBH
QzNEZW51bSopOwogCiAgICAgZW51bSB7CiAgICAgICAgIC8vIEdMX09FU19FR0xfaW1hZ2VfZXh0
ZXJuYWwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRl
bnNpb25zM0RPcGVuR0wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCShyZXZpc2lvbiAxNDQwOTgp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNE
T3BlbkdMLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc4LDkgKzE3OCwxOSBAQCBib29sIEV4dGVu
c2lvbnMzRE9wZW5HTDo6c3VwcG9ydHNFeHRlbnNpCiAgICAgaWYgKG5hbWUgPT0gIkdMX0VYVF90
ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpCiAgICAgICAgIHJldHVybiBtX2F2YWlsYWJsZUV4
dGVuc2lvbnMuY29udGFpbnMoIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpOwog
CisgICAgaWYgKG5hbWUgPT0gIkdMX0VYVF9kcmF3X2J1ZmZlcnMiKQorICAgICAgICByZXR1cm4g
bV9hdmFpbGFibGVFeHRlbnNpb25zLmNvbnRhaW5zKCJHTF9BUkJfZHJhd19idWZmZXJzIik7CisK
ICAgICByZXR1cm4gbV9hdmFpbGFibGVFeHRlbnNpb25zLmNvbnRhaW5zKG5hbWUpOwogfQogCit2
b2lkIEV4dGVuc2lvbnMzRE9wZW5HTDo6ZHJhd0J1ZmZlcnNFWFQoR0MzRHNpemVpIG4sIGNvbnN0
IEdDM0RlbnVtKiBidWZzKQoreworI2lmIGRlZmluZWQoR0xfQVJCX2RyYXdfYnVmZmVycykgJiYg
R0xfQVJCX2RyYXdfYnVmZmVycworICAgIDo6Z2xEcmF3QnVmZmVyc0FSQihuLCBidWZzKTsKKyNl
bmRpZgorfQorCiBTdHJpbmcgRXh0ZW5zaW9uczNET3BlbkdMOjpnZXRFeHRlbnNpb25zKCkKIHsK
ICAgICByZXR1cm4gU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRT
dHJpbmcoR0xfRVhURU5TSU9OUykpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmgJKHJl
dmlzaW9uIDE0NDA5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9FeHRlbnNpb25zM0RPcGVuR0wuaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGluc2VydEV2ZW50TWFya2VyRVhUKGNvbnN0IFN0cmlu
ZyYpOwogICAgIHZpcnR1YWwgdm9pZCBwdXNoR3JvdXBNYXJrZXJFWFQoY29uc3QgU3RyaW5nJik7
CiAgICAgdmlydHVhbCB2b2lkIHBvcEdyb3VwTWFya2VyRVhUKHZvaWQpOworICAgIHZpcnR1YWwg
dm9pZCBkcmF3QnVmZmVyc0VYVChHQzNEc2l6ZWksIGNvbnN0IEdDM0RlbnVtKik7CiAKIHByb3Rl
Y3RlZDoKICAgICAvLyBUaGlzIGNsYXNzIG9ubHkgbmVlZHMgdG8gYmUgaW5zdGFudGlhdGVkIGJ5
IEdyYXBoaWNzQ29udGV4dDNEIGltcGxlbWVudGF0aW9ucy4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRl
bnNpb25zM0RPcGVuR0xDb21tb24uY3BwCShyZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDYgKzExOCwxNSBAQCB2b2lkIEV4dGVuc2lvbnMzRE9w
ZW5HTENvbW1vbjo6ZW5zdXJlRW5hCiAgICAgICAgICAgICBBTkdMRVJlc291cmNlcy5PRVNfc3Rh
bmRhcmRfZGVyaXZhdGl2ZXMgPSAxOwogICAgICAgICAgICAgY29tcGlsZXIuc2V0UmVzb3VyY2Vz
KEFOR0xFUmVzb3VyY2VzKTsKICAgICAgICAgfQorICAgIH0gZWxzZSBpZiAobmFtZSA9PSAiR0xf
RVhUX2RyYXdfYnVmZmVycyIpIHsKKyAgICAgICAgLy8gRW5hYmxlIHN1cHBvcnQgaW4gQU5HTEUg
KGlmIG5vdCBlbmFibGVkIGFscmVhZHkpCisgICAgICAgIEFOR0xFV2ViS2l0QnJpZGdlJiBjb21w
aWxlciA9IG1fY29udGV4dC0+bV9jb21waWxlcjsKKyAgICAgICAgU2hCdWlsdEluUmVzb3VyY2Vz
IEFOR0xFUmVzb3VyY2VzID0gY29tcGlsZXIuZ2V0UmVzb3VyY2VzKCk7CisgICAgICAgIGlmICgh
QU5HTEVSZXNvdXJjZXMuRVhUX2RyYXdfYnVmZmVycykgeworICAgICAgICAgICAgQU5HTEVSZXNv
dXJjZXMuRVhUX2RyYXdfYnVmZmVycyA9IDE7CisgICAgICAgICAgICBtX2NvbnRleHQtPmdldElu
dGVnZXJ2KEV4dGVuc2lvbnMzRDo6TUFYX0RSQVdfQlVGRkVSU19FWFQsICZBTkdMRVJlc291cmNl
cy5NYXhEcmF3QnVmZmVycyk7CisgICAgICAgICAgICBjb21waWxlci5zZXRSZXNvdXJjZXMoQU5H
TEVSZXNvdXJjZXMpOworICAgICAgICB9CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVu
c2lvbnMzRE9wZW5HTENvbW1vbi5oCShyZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmgJKHdv
cmtpbmcgY29weSkKQEAgLTUwLDYgKzUwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgR0MzRGJv
b2xlYW4gaXNWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGJpbmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CiAKKyAgICB2
aXJ0dWFsIHZvaWQgZHJhd0J1ZmZlcnNFWFQoR0MzRHNpemVpLCBjb25zdCBHQzNEZW51bSopID0g
MDsKKwogICAgIHZpcnR1YWwgU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQ
bGF0Zm9ybTNET2JqZWN0KTsKIAogICAgIC8vIEVYVCBSb2J1c3RuZXNzIC0gdXNlcyBnZXRHcmFw
aGljc1Jlc2V0U3RhdHVzQVJCKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmNw
cAkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYwLDYg
KzE2MCwxMSBAQCB2b2lkIEV4dGVuc2lvbnMzRE9wZW5HTEVTOjpiaW5kVmVydGV4QXJyCiAgICAg
ICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR0xfSU5WQUxJRF9PUEVSQVRJT04pOwog
fQogCit2b2lkIEV4dGVuc2lvbnMzRE9wZW5HTEVTOjpkcmF3QnVmZmVyc0VYVChHQzNEc2l6ZWkg
biwgY29uc3QgR0MzRGVudW0qIGJ1ZnMpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudCB0aGUg
c3VwcG9ydC4KK30KKwogaW50IEV4dGVuc2lvbnMzRE9wZW5HTEVTOjpnZXRHcmFwaGljc1Jlc2V0
U3RhdHVzQVJCKCkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBkb2VzIG5vdCBjYWxsIGdldEdyYXBo
aWNzUmVzZXRTdGF0dXNBUkIsIGJ1dCBpbnN0ZWFkIGdldEdyYXBoaWNzUmVzZXRTdGF0dXNFWFQu
CkBAIC0yNTAsNiArMjU1LDkgQEAgYm9vbCBFeHRlbnNpb25zM0RPcGVuR0xFUzo6c3VwcG9ydHNF
eHRlbgogICAgICAgICAgICAgbV9nbFJlYWRuUGl4ZWxzRVhUID0gcmVpbnRlcnByZXRfY2FzdDxQ
Rk5HTFJFQUROUElYRUxTRVhUUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImdsUmVhZG5QaXhlbHNF
WFQiKSk7CiAgICAgICAgICAgICBtX2dsR2V0blVuaWZvcm1mdkVYVCA9IHJlaW50ZXJwcmV0X2Nh
c3Q8UEZOR0xHRVROVU5JRk9STUZWRVhUUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImdsR2V0blVu
aWZvcm1mdkVYVCIpKTsKICAgICAgICAgICAgIG1fZ2xHZXRuVW5pZm9ybWl2RVhUID0gcmVpbnRl
cnByZXRfY2FzdDxQRk5HTEdFVE5VTklGT1JNSVZFWFRQUk9DPihlZ2xHZXRQcm9jQWRkcmVzcygi
Z2xHZXRuVW5pZm9ybWl2RVhUIikpOworICAgICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gIkdMX0VY
VF9kcmF3X2J1ZmZlcnMiKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50IHRoZSBz
dXBwb3J0LgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5oCShyZXZp
c2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
RXh0ZW5zaW9uczNET3BlbkdMRVMuaAkod29ya2luZyBjb3B5KQpAQCAtOTAsNiArOTAsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RP
YmplY3QpOwogICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9y
bTNET2JqZWN0KTsKICAgICB2aXJ0dWFsIHZvaWQgYmluZFZlcnRleEFycmF5T0VTKFBsYXRmb3Jt
M0RPYmplY3QpOworICAgIHZpcnR1YWwgdm9pZCBkcmF3QnVmZmVyc0VYVChHQzNEc2l6ZWksIGNv
bnN0IEdDM0RlbnVtKik7CiAKICAgICAvLyBFWFQgUm9idXN0bmVzcyAtIHJlc2V0CiAgICAgdmly
dHVhbCBpbnQgZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190366</attachid>
            <date>2013-02-26 14:49:31 -0800</date>
            <delta_ts>2013-02-26 15:08:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109331-20130226144545.patch</filename>
            <type>text/plain</type>
            <size>62364</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEzLTAyLTI2ICBaaGVu
eWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgRVhUX2RyYXdfYnVmZmVycyBuZWVk
cyBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA5MzMxCisKKyAgICAgICAgQWRkIEVYVF9kcmF3X2J1ZmZlcnMgc3VwcG9ydCBm
b3IgY2hyb21pdW0gcG9ydC4KKworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJHcmFwaGlj
c0NvbnRleHQzRC5oOgorICAgICAgICAoV2ViR3JhcGhpY3NDb250ZXh0M0QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6ZHJhd0J1ZmZlcnNDaHJvbWl1bSk6CisKIDIw
MTMtMDItMjYgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
Q3JlYXRlIHRoZSBTaGFyZWRHcmFwaGljc0NvbnRleHQzRCB0aHJvdWdoIGl0cyBvd24gbWV0aG9k
LgpJbmRleDogU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRl
eHQzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
R3JhcGhpY3NDb250ZXh0M0QuaAkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00NzIsNiArNDcyLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhc3luY1RleEltYWdl
MkRDSFJPTUlVTShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbCwgV0dDM0RlbnVtIGlu
dGVybmFsZm9ybWF0LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCwgV0dDM0Rp
bnQgYm9yZGVyLCBXR0MzRGVudW0gZm9ybWF0LCBXR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCog
cGl4ZWxzKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXN5bmNUZXhTdWJJbWFnZTJEQ0hST01JVU0o
V0dDM0RlbnVtIHRhcmdldCwgV0dDM0RpbnQgbGV2ZWwsIFdHQzNEaW50IHhvZmZzZXQsIFdHQzNE
aW50IHlvZmZzZXQsIFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0LCBXR0MzRGVu
dW0gZm9ybWF0LCBXR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKSB7IH0KIAorICAg
IC8vIEdMX0VYVF9kcmF3X2J1ZmZlcnMgLyBHTF9BUkJfZHJhd19idWZmZXJzCisgICAgdmlydHVh
bCB2b2lkIGRyYXdCdWZmZXJzQ2hyb21pdW0oV0dDM0RzaXplaSBuLCBjb25zdCBXR0MzRGVudW0q
IGJ1ZnMpIHsgfQorCiAgICAgLy8gRklYTUU6IE1ha2UgaW1wbGVtZW50YXRpb25zIG9mIHRoaXMg
Y2xhc3Mgb3ZlcnJpZGUgdGhpcyBtZXRob2QgaW5zdGVhZCBhbmQgdGhlbiByZW1vdmUgb25DcmVh
dGVHckdMSW50ZXJmYWNlKCkuCiAgICAgdmlydHVhbCBHckdMSW50ZXJmYWNlKiBjcmVhdGVHckdM
SW50ZXJmYWNlKCkgeyByZXR1cm4gb25DcmVhdGVHckdMSW50ZXJmYWNlKCk7IH0KIApJbmRleDog
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOTIgQEAKKzIwMTMtMDItMjYgIFpoZW55YW8gTW8gIDx6
bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBFWFRfZHJhd19idWZmZXJzIG5lZWRzIGltcGxlbWVu
dGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDkzMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgRVhUX2RyYXdfYnVmZmVycyBmb3IgV2ViR0wuCisg
ICAgICAgIG1hYyBPcGVuR0wgcG9ydCBpcyBwYXNzaW5nIGtocm9ub3MgV2ViR0wgY29uZm9ybWFu
Y2UgdGVzdCB3aXRoIHRoaXMgcGF0Y2guIE9wZW5HTCBFUyBwb3J0IGltcGxlbWVudGF0aW9uIGlz
bid0IGFkZGVkIGluIHRoaXMgcGF0Y2guCisgICAgICAgIEFsc28sIGl0IGhhcyB0aGUgV2ViS2l0
IHNpZGUgc3VwcG9ydCBmb3IgY2hyb21pdW0gcG9ydCwgYnV0IHBlbmRpbmcgY29tbWFuZCBidWZm
ZXIgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgQmVzaWRlcyB0aGUgYmFzaWMgZXh0ZW5zaW9u
IGltcGxlbWVudGF0aW9uLCB3ZSBhbHNvIGFkZGVkIGRyYXdCdWZmZXJzKCkgd3JhcHBlciB0byB3
b3JrIGFyb3VuZCBhIG1hYyBkcml2ZXIgYnVnOiBpLmUuLCBkbyBub3QgZW5hYmxlIGEgYnVmZmVy
IGlmIHRoZXJlIGlzIG5vIGF0dGFjaG1lbnQgYWRkZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjp0b0ludDMyKToKKyAgICAgICAg
KFdlYkNvcmU6OnRvVUludDMyKToKKyAgICAgICAgKFdlYkNvcmU6OnRvRmxvYXQpOgorICAgICAg
ICAoV2ViQ29yZTo6dG9JbnQ2NCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjhPYmpl
Y3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkVYVERyYXdCdWZmZXJzOjpFWFRE
cmF3QnVmZmVycyk6CisgICAgICAgIChXZWJDb3JlOjpFWFREcmF3QnVmZmVyczo6fkVYVERyYXdC
dWZmZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkVYVERyYXdCdWZmZXJzOjpnZXROYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVYVERyYXdCdWZmZXJzOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RVhURHJhd0J1ZmZlcnM6OnN1cHBvcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpFWFREcmF3
QnVmZmVyczo6ZHJhd0J1ZmZlcnNFWFQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0VYVERyYXdC
dWZmZXJzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChFWFREcmF3QnVm
ZmVycyk6CisgICAgICAgICogaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaWRsOiBBZGRlZC4K
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xGcmFt
ZWJ1ZmZlcjo6c2V0QXR0YWNobWVudEZvckJvdW5kRnJhbWVidWZmZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xGcmFtZWJ1ZmZlcjo6cmVtb3ZlQXR0YWNobWVudEZyb21Cb3VuZEZyYW1lYnVm
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRnJhbWVidWZmZXI6OmRyYXdCdWZmZXJzKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xGcmFtZWJ1ZmZlcjo6
ZHJhd0J1ZmZlcnNJZk5lY2Vzc2FyeSk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xGcmFt
ZWJ1ZmZlci5oOgorICAgICAgICAoV2ViR0xGcmFtZWJ1ZmZlcik6CisgICAgICAgICogaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplTmV3Q29udGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmZyYW1lYnVmZmVy
UmVuZGVyYnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0RXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0UGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OnZhbGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldE1heERyYXdCdWZmZXJzKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0TWF4Q29sb3JBdHRhY2htZW50
cyk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkdMUmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RDaHJvbWl1bTo6ZHJhd0J1ZmZlcnNFWFQpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9u
czNELmg6CisgICAgICAgIChFeHRlbnNpb25zM0QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpnZXRDbGVhckJpdHNCeUF0dGFjaG1lbnRUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oOgorICAgICAgICAoRXh0
ZW5zaW9uczNEQ2hyb21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9F
eHRlbnNpb25zM0RPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNET3Bl
bkdMOjpzdXBwb3J0c0V4dGVuc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RP
cGVuR0w6OmRyYXdCdWZmZXJzRVhUKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaDoKKyAgICAgICAgKEV4
dGVuc2lvbnMzRE9wZW5HTCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25z
M0RPcGVuR0xDb21tb246OmVuc3VyZUVuYWJsZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uaDoKKyAgICAgICAgKEV4dGVuc2lv
bnMzRE9wZW5HTENvbW1vbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnMzRE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRE9w
ZW5HTEVTOjpkcmF3QnVmZmVyc0VYVCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTEVTOjpzdXBwb3J0c0V4dGVuc2lvbik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmg6CisgICAg
ICAgIChFeHRlbnNpb25zM0RPcGVuR0xFUyk6CisKIDIwMTMtMDItMjYgIENocmlzdGlhbiBCaWVz
aW5nZXIgIDxjYmllc2luZ2VyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBFbXB0eSA8YnV0dG9u
PnMgc2hvdWxkIGNvbGxhcHNlOyBlbXB0eSA8aW5wdXQgdHlwZT0iYnV0dG9uIj4gc2hvdWxkIG5v
dCBjb2xsYXBzZQpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE0NDA5OCkKKysr
IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01MTMsNiAr
NTEzLDcgQEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dC5pZGwKICAgICBodG1sL2NhbnZhcy9EYXRhVmlldy5pZGwKICAgICBodG1s
L2NhbnZhcy9ET01QYXRoLmlkbAorICAgIGh0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbAog
ICAgIGh0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwKICAgICBodG1s
L2NhbnZhcy9GbG9hdDMyQXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5Lmlk
bApAQCAtMTUwNiw2ICsxNTA3LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNT
dHlsZS5jcHAKICAgICBodG1sL2NhbnZhcy9EYXRhVmlldy5jcHAKKyAgICBodG1sL2NhbnZhcy9F
WFREcmF3QnVmZmVycy5jcHAKICAgICBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290
cm9waWMuY3BwCiAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAKICAg
ICBodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuY3BwCkBAIC0yNjQ3LDYgKzI2NDksNyBAQCBp
ZiAoRU5BQkxFX1dFQkdMKQogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlv
bi5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAK
ICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uY3BwCisgICAgICAgIGh0bWwvY2Fu
dmFzL0VYVERyYXdCdWZmZXJzLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmls
dGVyQW5pc290cm9waWMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5jcHAKQEAgLTI2
NTQsNiArMjY1Nyw3IEBAIGlmIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwvY2FudmFzL09F
U0VsZW1lbnRJbmRleFVpbnQuY3BwCiAgICAgKQogICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSURM
X0ZJTEVTCisgICAgICAgIGh0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbAogICAgICAgICBo
dG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaWRsCiAgICAgICAgIGh0bWwv
Y2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL09F
U1RleHR1cmVGbG9hdC5pZGwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2
aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29y
a2luZyBjb3B5KQpAQCAtMzkwLDYgKzM5MCw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwgXAogICAgICQo
V2ViQ29yZSkvaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwv
Y2FudmFzL0RPTVBhdGguaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0VYVERyYXdC
dWZmZXJzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVy
QW5pc290cm9waWMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJh
eS5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbCBcCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE0NDA5OCkKKysrIFNv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTI0OCw2
ICsyNDgsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNFcnJvckNhbGxiYWNrLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFcnJv
ckV2ZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Vycm9yRXZlbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0VYVERyYXdCdWZmZXJzLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0VYVERyYXdCdWZmZXJzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmggXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNFdmVudC5jcHAgXApAQCAtMTUzMiw3ICsxNTM0LDggQEAgZG9tX2JpbmRpbmdf
aWRscyArPSBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
aWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0RhdGFWaWV3LmlkbCBcCi0JJChXZWJDb3Jl
KS9odG1sL2NhbnZhcy9ET01QYXRoLmlkbCBcCisJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9ET01Q
YXRoLmlkbCAKKwkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbCBcCiAJ
JChXZWJDb3JlKS9odG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaWRsIFwK
IAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5pZGwgXAogCSQoV2ViQ29yZSkv
aHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbCBcCkBAIC0zMjc0LDYgKzMyNzcsOCBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaCBcCiAJU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvRE9NUGF0aC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9FWFREcmF3QnVmZmVycy5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERy
YXdCdWZmZXJzLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0
ZXJBbmlzb3Ryb3BpYy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVFRleHR1
cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNT
dGFuZGFyZERlcml2YXRpdmVzLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHJldmlzaW9uIDE0NDA5
OCkKKysrIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTQwMzgs
NiArNDAzOCw3IEBAIGVuYWJsZT8oV0VCR0wpIHsKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xT
aGFkZXIuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0
LmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oIFwKKyAgICAgICAg
aHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL0VYVFRl
eHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRh
cmREZXJpdmF0aXZlcy5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0Lmgg
XApAQCAtNDA3Miw2ICs0MDczLDcgQEAgZW5hYmxlPyhXRUJHTCkgewogICAgICAgICBodG1sL2Nh
bnZhcy9XZWJHTFNoYWRlci5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFNoYWRlclBy
ZWNpc2lvbkZvcm1hdC5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVj
dC5jcHAgXAorICAgICAgICBodG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5jcHAgXAogICAgICAg
ICBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIFwKICAgICAgICAg
aHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAgXAogICAgICAgICBodG1sL2Nh
bnZhcy9PRVNUZXh0dXJlRmxvYXQuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9u
IDE0NDA5OCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpA
QCAtMzY5LDYgKzM2OSw3IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRs
JywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9ET01QYXRoLmlkbCcsCisgICAgICAgICAgICAn
aHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZh
cy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaWRsJywKICAgICAgICAgICAgICdodG1sL2Nh
bnZhcy9GbG9hdDMyQXJyYXkuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9GbG9hdDY0
QXJyYXkuaWRsJywKQEAgLTMzMjcsNiArMzMyOCw4IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52
YXMvRGF0YVZpZXcuY3BwJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9EYXRhVmlldy5oJywK
ICAgICAgICAgICAgICdodG1sL2NhbnZhcy9ET01QYXRoLmgnLAorICAgICAgICAgICAgJ2h0bWwv
Y2FudmFzL0VYVERyYXdCdWZmZXJzLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvRVhU
RHJhd0J1ZmZlcnMuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRl
ckFuaXNvdHJvcGljLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZp
bHRlckFuaXNvdHJvcGljLmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL09FU1N0YW5kYXJk
RGVyaXZhdGl2ZXMuY3BwJywKQEAgLTYzODAsNiArNjM4Myw4IEBACiAgICAgICAgICAgICAnPChQ
Uk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Vycm9yQ2FsbGJhY2suaCcsCiAg
ICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Vycm9y
RXZlbnQuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTRXJyb3JFdmVudC5oJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTRVhURHJhd0J1ZmZlcnMuY3BwJywKKyAgICAgICAgICAgICc8
KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRVhURHJhd0J1ZmZlcnMuaCcs
CiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0VY
VFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMu
aCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0V2ZW50LmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE5MjEs
NiArMTkyMSw4IEBACiAJCTZFQkYwRTU1MTJBODkyOTgwMERCMTcwOSAvKiBXZWJHTEV4dGVuc2lv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVCRjBF
NTMxMkE4OTI5ODAwREIxNzA5IC8qIFdlYkdMRXh0ZW5zaW9uLmggKi87IH07CiAJCTZFQkYwRTc2
MTJBOTg2ODgwMERCMTcwOSAvKiBKU09FU1RleHR1cmVGbG9hdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUJGMEU3NDEyQTk4Njg4MDBEQjE3MDkg
LyogSlNPRVNUZXh0dXJlRmxvYXQuY3BwICovOyB9OwogCQk2RUJGMEU3NzEyQTk4Njg4MDBEQjE3
MDkgLyogSlNPRVNUZXh0dXJlRmxvYXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZFQkYwRTc1MTJBOTg2ODgwMERCMTcwOSAvKiBKU09FU1RleHR1cmVG
bG9hdC5oICovOyB9OworCQk2RUJGMEU3NjEyQTk4Njg4MDBEQjE3MEEgLyogSlNFWFREcmF3QnVm
ZmVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RUJGMEU3NDEyQTk4Njg4MDBEQjE3MEEgLyogSlNFWFREcmF3QnVmZmVycy5jcHAgKi87IH07CisJ
CTZFQkYwRTc3MTJBOTg2ODgwMERCMTcwQSAvKiBKU0VYVERyYXdCdWZmZXJzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUJGMEU3NTEyQTk4Njg4MDBE
QjE3MEEgLyogSlNFWFREcmF3QnVmZmVycy5oICovOyB9OwogCQk2RUQ4NzhDNDE0NzQ5M0Y0MDA0
QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFRDg3OEMyMTQ3NDkzRjQwMDRDMzU5NyAvKiBSZW5kZXJU
YWJsZUNhcHRpb24uY3BwICovOyB9OwogCQk2RUQ4NzhDNTE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVu
ZGVyVGFibGVDYXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2RUQ4NzhDMzE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmgg
Ki87IH07CiAJCTZFRThBNzcyMTBGODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJp
YnV0ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkVFOEE3NzAxMEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAg
Ki87IH07CkBAIC0zODM5LDYgKzM4NDEsOSBAQAogCQk5RkZFM0VBNTExQjVBNDM5MDAzNzg3NEUg
LyogSlNNZW1vcnlJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlGRkUzRUEzMTFCNUE0MzkwMDM3ODc0RSAvKiBKU01lbW9yeUluZm8uY3BwICov
OyB9OwogCQk5RkZFM0VBNjExQjVBNDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RkZFM0VBNDExQjVBNDM5
MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmggKi87IH07CiAJCUEwMEI3MjFBMTFERTY0MjgwMDhB
QjlGRiAvKiBDaGVja2VkSW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMDBCNzIxOTExREU2NDI3MDA4QUI5RkYgLyogQ2hlY2tlZEludC5oICovOyB9
OworCQlBMDI0NTc1MTE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTAyNDU3NEUxNkNFQUEy
NzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmNwcCAqLzsgfTsKKwkJQTAyNDU3NTIxNkNFQUEy
NzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMDI0NTc0RjE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1
ZmZlcnMuaCAqLzsgfTsKKwkJQTAyNDU3NTMxNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZm
ZXJzLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTAyNDU3NTAxNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmlkbCAqLzsgfTsKIAkJ
QTA3RDMzNTUxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTA3RDMz
NTMxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwICov
OyB9OwogCQlBMDdEMzM1NjE1MkI2MzBFMDAxQjYzOTMgLyogSlNXZWJHTFNoYWRlclByZWNpc2lv
bkZvcm1hdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTA3RDMzNTQxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQu
aCAqLzsgfTsKIAkJQTA3RDMzNTgxNTJCNjMyRDAwMUI2MzkzIC8qIFdlYkdMU2hhZGVyUHJlY2lz
aW9uRm9ybWF0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBMDdEMzM1NzE1MkI2MzJEMDAxQjYzOTMgLyogV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQu
aCAqLzsgfTsKQEAgLTkzODgsNiArOTM5Myw4IEBACiAJCTZFQkYwRTUzMTJBODkyOTgwMERCMTcw
OSAvKiBXZWJHTEV4dGVuc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
ZWJHTEV4dGVuc2lvbi5oOyBwYXRoID0gY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFQkYwRTc0MTJBOTg2ODgwMERCMTcwOSAvKiBKU09FU1Rl
eHR1cmVGbG9hdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU09F
U1RleHR1cmVGbG9hdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFQkYwRTc1
MTJBOTg2ODgwMERCMTcwOSAvKiBKU09FU1RleHR1cmVGbG9hdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU09FU1RleHR1cmVGbG9hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk2RUJGMEU3NDEyQTk4Njg4MDBEQjE3MEEgLyogSlNFWFREcmF3QnVmZmVycy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0VYVERyYXdCdWZmZXJz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkVCRjBFNzUxMkE5ODY4ODAwREIx
NzBBIC8qIEpTRVhURHJhd0J1ZmZlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNFWFREcmF3QnVmZmVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RUQ4
NzhDMjE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclRhYmxlQ2FwdGlvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFRDg3OEMzMTQ3NDkzRjQwMDRDMzU5NyAvKiBSZW5k
ZXJUYWJsZUNhcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVy
VGFibGVDYXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFRThBNzcwMTBG
ODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzM5LDYgKzExMzQ2LDkgQEAKIAkJOUZG
RTNFQTMxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lbW9yeUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5RkZFM0VBNDExQjVBNDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVtb3J5SW5mby5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMDBCNzIxOTExREU2NDI3MDA4QUI5RkYgLyogQ2hlY2tl
ZEludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDaGVja2VkSW50Lmg7IHBh
dGggPSBjYW52YXMvQ2hlY2tlZEludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
MDI0NTc0RTE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRVhURHJhd0J1ZmZlcnMuY3BwOyBwYXRoID0gY2Fu
dmFzL0VYVERyYXdCdWZmZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTAy
NDU3NEYxNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEVYVERyYXdCdWZmZXJzLmg7IHBhdGggPSBjYW52YXMvRVhURHJh
d0J1ZmZlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTAyNDU3NTAxNkNFQUEy
NzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBF
WFREcmF3QnVmZmVycy5pZGw7IHBhdGggPSBjYW52YXMvRVhURHJhd0J1ZmZlcnMuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMDdEMzM1MzE1MkI2MzBFMDAxQjYzOTMgLyogSlNX
ZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTA3RDMzNTQxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFk
ZXJQcmVjaXNpb25Gb3JtYXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNX
ZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBMDdEMzM1NzE1MkI2MzJEMDAxQjYzOTMgLyogV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViR0xTaGFkZXJQcmVjaXNpb25G
b3JtYXQuaDsgcGF0aCA9IGNhbnZhcy9XZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU3MDksNiArMTU3MTksOSBAQAogCQk0OTQ4NEZB
RTEwMkNGMDFFMDAxODdERDMgLyogY2FudmFzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQlBMDI0NTc0RTE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1
ZmZlcnMuY3BwICovLAorCQkJCUEwMjQ1NzRGMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVm
ZmVycy5oICovLAorCQkJCUEwMjQ1NzUwMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVy
cy5pZGwgKi8sCiAJCQkJNDlFRUNEQ0MxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVyLmlk
bCAqLywKIAkJCQk0OUVFQ0RDOTEwNTAzQzIzMDAwOTlGQUIgLyogQXJyYXlCdWZmZXJWaWV3Lmlk
bCAqLywKIAkJCQk2RTRFOTFBNzEwRjdGQjMxMDBBMjc3OUMgLyogQ2FudmFzQ29udGV4dEF0dHJp
YnV0ZXMuY3BwICovLApAQCAtMTg5NzksNiArMTg5OTIsOCBAQAogCQkJCTc2OTQ1NjNCMTIxNEQ5
N0MwMDA3Q0JBRSAvKiBKU0RPTVRva2VuTGlzdC5oICovLAogCQkJCTJFMzdFMDAzMTJEQkM1QTQw
MEE2QjIzMyAvKiBKU0RPTVVSTC5jcHAgKi8sCiAJCQkJMkUzN0UwMDQxMkRCQzVBNDAwQTZCMjMz
IC8qIEpTRE9NVVJMLmggKi8sCisJCQkJNkVCRjBFNzQxMkE5ODY4ODAwREIxNzBBIC8qIEpTRVhU
RHJhd0J1ZmZlcnMuY3BwICovLAorCQkJCTZFQkYwRTc1MTJBOTg2ODgwMERCMTcwQSAvKiBKU0VY
VERyYXdCdWZmZXJzLmggKi8sCiAJCQkJNzcyODY5ODExNEZEOUFEQTAwRjQ4NERDIC8qIEpTRVhU
VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcCAqLywKIAkJCQk3NzI4Njk4MjE0RkQ5QURBMDBG
NDg0REMgLyogSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCAqLywKIAkJCQk0OUVFQ0VG
NDEwNTA3MEM0MDAwOTlGQUIgLyogSlNGbG9hdDMyQXJyYXkuY3BwICovLApAQCAtMjQ5MzEsNiAr
MjQ5NDYsNyBAQAogCQkJCUUwRkVGMzcyQjM3QzUzRUFDMUMxRkJFRSAvKiBKU0V2ZW50U291cmNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1RkM3REMyNkNGRTI1NjMyMDBCODVBRTQgLyogSlNFdmVu
dFRhcmdldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzMxNEFDRUMxMDg5MjA4NjAwMEYwRTU2IC8q
IEpTRXhjZXB0aW9uQmFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkVCRjBFNzcxMkE5ODY4ODAw
REIxNzBBIC8qIEpTRVhURHJhd0J1ZmZlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTc3Mjg2OTg0
MTRGRDlBREEwMEY0ODREQyAvKiBKU0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMwMEYwMTUwRTBBMTg5NTAwRkQwNEUzIC8qIEpTRmlsZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODkzQzQ3QjgxMjM4QTA5OTAwMkIzRDg2IC8qIEpTRmlsZUNhbGxiYWNr
LmggaW4gSGVhZGVycyAqLywKQEAgLTI2NjIyLDYgKzI2NjM4LDcgQEAKIAkJCQlGRDUzNzM1MzEz
N0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQjhDRDQ2
MTZEMDQ1OTEwMDBFOENDMCAvKiBTZWxlY3RvckNoZWNrZXJGYXN0UGF0aC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDkxNDAyNTcxNjhFMDJFQzAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFBy
b2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEEwMjQ1NzUyMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CkBAIC0yODI2Niw2ICsyODI4Myw3IEBACiAJCQkJQzZBNzAzMzI1QzlEMEI2Q0RDQkM0RDc3
IC8qIEpTRXZlbnRUYXJnZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2MDkwMjAwRTkxQjhF
QzAwMEM2OEI1IC8qIEpTRXZlbnRUYXJnZXRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MzMxNEFDRUIxMDg5MjA4NjAwMEYwRTU2IC8qIEpTRXhjZXB0aW9uQmFzZS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk2RUJGMEU3NjEyQTk4Njg4MDBEQjE3MEEgLyogSlNFWFREcmF3QnVmZmVycy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3NzI4Njk4MzE0RkQ5QURBMDBGNDg0REMgLyogSlNFWFRU
ZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwMEYwMTQw
RTBBMTg5NTAwRkQwNEUzIC8qIEpTRmlsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTNDNDdC
NzEyMzhBMDk5MDAyQjNEODYgLyogSlNGaWxlQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0yOTgxNyw2ICsyOTgzNSw3IEBACiAJCQkJRkQ1MzczNTIxMzdCNjUxODAwMDA4RENFIC8qIFpl
cm9Qb2xlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxQjhDRDQ1MTZEMDQ1OTEwMDBFOENDMCAv
KiBTZWxlY3RvckNoZWNrZXJGYXN0UGF0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTE0MDI1
NjE2OEUwMkU4MDAyRDZDNkEgLyogVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCBpbiBT
b3VyY2VzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMDI0NTc1MTE2Q0VB
QTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwCShyZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDEwICsyOSwxMiBAQAogCiAjaW5jbHVkZSAiSlNXZWJHTFJlbmRlcmluZ0Nv
bnRleHQuaCIKIAorI2luY2x1ZGUgIkVYVERyYXdCdWZmZXJzLmgiCiAjaW5jbHVkZSAiRVhUVGV4
dHVyZUZpbHRlckFuaXNvdHJvcGljLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2lu
Y2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5o
IgorI2luY2x1ZGUgIkpTRVhURHJhd0J1ZmZlcnMuaCIKICNpbmNsdWRlICJKU0VYVFRleHR1cmVG
aWx0ZXJBbmlzb3Ryb3BpYy5oIgogI2luY2x1ZGUgIkpTRmxvYXQzMkFycmF5LmgiCiAjaW5jbHVk
ZSAiSlNIVE1MQ2FudmFzRWxlbWVudC5oIgpAQCAtMTk0LDYgKzE5Niw4IEBAIHN0YXRpYyBKU1Zh
bHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0QKICAgICBzd2l0Y2ggKGV4dGVuc2lvbi0+Z2V0
TmFtZSgpKSB7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xMb3NlQ29udGV4dE5hbWU6
CiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2Vi
R0xMb3NlQ29udGV4dCo+KGV4dGVuc2lvbikpOworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVY
VERyYXdCdWZmZXJzTmFtZToKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0
LCBzdGF0aWNfY2FzdDxFWFREcmF3QnVmZmVycyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2Vi
R0xFeHRlbnNpb246OkVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpY05hbWU6CiAgICAgICAgIHJl
dHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUVGV4dHVyZUZpbHRl
ckFuaXNvdHJvcGljKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VT
U3RhbmRhcmREZXJpdmF0aXZlc05hbWU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOEJpbmRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OEJpbmRpbmcuaAkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhCaW5kaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0Myw2ICsyNDMsMzggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHY4QXJyYXkoUGFzc1Jl
ZlB0cjxET01TdHJpbmdMaXN0Piwgdjg6Oklzb2xhdGUqKTsKIAorICAgIC8vIENvbnZlcnQgYSB2
YWx1ZSB0byBhIDMyLWJpdCBpbnRlZ2VyLiBUaGUgY29udmVyc2lvbiBmYWlscyBpZiB0aGUKKyAg
ICAvLyB2YWx1ZSBjYW5ub3QgYmUgY29udmVydGVkIHRvIGFuIGludGVnZXIgb3IgY29udmVydHMg
dG8gbmFuIG9yIHRvIGFuIGluZmluaXR5LgorICAgIGludCB0b0ludDMyKHY4OjpIYW5kbGU8djg6
OlZhbHVlPiwgYm9vbCYgb2spOworCisgICAgLy8gQ29udmVydCBhIHZhbHVlIHRvIGEgMzItYml0
IGludGVnZXIgYXNzdW1pbmcgdGhlIGNvbnZlcnNpb24gY2Fubm90IGZhaWwuCisgICAgaW5saW5l
IGludCB0b0ludDMyKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKKyAgICB7CisgICAgICAg
IGJvb2wgb2s7CisgICAgICAgIHJldHVybiB0b0ludDMyKHZhbHVlLCBvayk7CisgICAgfQorCisg
ICAgLy8gQ29udmVydCBhIHZhbHVlIHRvIGEgMzItYml0IHVuc2lnbmVkIGludGVnZXIuIFRoZSBj
b252ZXJzaW9uIGZhaWxzIGlmIHRoZQorICAgIC8vIHZhbHVlIGNhbm5vdCBiZSBjb252ZXJ0ZWQg
dG8gYW4gdW5zaWduZWQgaW50ZWdlciBvciBjb252ZXJ0cyB0byBuYW4gb3IgdG8gYW4gaW5maW5p
dHkuCisgICAgdWludDMyX3QgdG9VSW50MzIodjg6OkhhbmRsZTx2ODo6VmFsdWU+LCBib29sJiBv
ayk7CisKKyAgICAvLyBDb252ZXJ0IGEgdmFsdWUgdG8gYSAzMi1iaXQgdW5zaWduZWQgaW50ZWdl
ciBhc3N1bWluZyB0aGUgY29udmVyc2lvbiBjYW5ub3QgZmFpbC4KKyAgICBpbmxpbmUgdWludDMy
X3QgdG9VSW50MzIodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQorICAgIHsKKyAgICAgICAg
Ym9vbCBvazsKKyAgICAgICAgcmV0dXJuIHRvVUludDMyKHZhbHVlLCBvayk7CisgICAgfQorCisg
ICAgaW5saW5lIGZsb2F0IHRvRmxvYXQodjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUpCisgICAg
eworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlLT5OdW1iZXJWYWx1ZSgp
KTsKKyAgICB9CisKKyAgICBpbmxpbmUgbG9uZyBsb25nIHRvSW50NjQodjg6OkxvY2FsPHY4OjpW
YWx1ZT4gdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8bG9uZyBsb25n
Pih2YWx1ZS0+SW50ZWdlclZhbHVlKCkpOworICAgIH0KKwogICAgIHRlbXBsYXRlPGNsYXNzIFQ+
IHN0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czsKIAogICAgIHRlbXBsYXRlPD4KQEAgLTI1NCw2ICsy
ODYsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIH07CiAKICAgICB0ZW1wbGF0ZTw+Cisg
ICAgc3RydWN0IE5hdGl2ZVZhbHVlVHJhaXRzPHVuc2lnbmVkPiB7CisgICAgICAgIHN0YXRpYyBp
bmxpbmUgdW5zaWduZWQgbmF0aXZlVmFsdWUoY29uc3Qgdjg6OkhhbmRsZTx2ODo6VmFsdWU+JiB2
YWx1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRvVUludDMyKHZhbHVlKTsKKyAg
ICAgICAgfQorICAgIH07CisKKyAgICB0ZW1wbGF0ZTw+CiAgICAgc3RydWN0IE5hdGl2ZVZhbHVl
VHJhaXRzPGZsb2F0PiB7CiAgICAgICAgIHN0YXRpYyBpbmxpbmUgZmxvYXQgbmF0aXZlVmFsdWUo
Y29uc3Qgdjg6OkhhbmRsZTx2ODo6VmFsdWU+JiB2YWx1ZSkKICAgICAgICAgewpAQCAtMzQ4LDM4
ICszODgsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBQYXNzUmVmUHRyPE5vZGVGaWx0
ZXI+IHRvTm9kZUZpbHRlcih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4pOwogCi0gICAgLy8gQ29udmVy
dCBhIHZhbHVlIHRvIGEgMzItYml0IGludGVnZXIuICBUaGUgY29udmVyc2lvbiBmYWlscyBpZiB0
aGUKLSAgICAvLyB2YWx1ZSBjYW5ub3QgYmUgY29udmVydGVkIHRvIGFuIGludGVnZXIgb3IgY29u
dmVydHMgdG8gbmFuIG9yIHRvIGFuIGluZmluaXR5LgotICAgIGludCB0b0ludDMyKHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB2YWx1ZSwgYm9vbCYgb2spOwotCi0gICAgLy8gQ29udmVydCBhIHZhbHVl
IHRvIGEgMzItYml0IGludGVnZXIgYXNzdW1pbmcgdGhlIGNvbnZlcnNpb24gY2Fubm90IGZhaWwu
Ci0gICAgaW5saW5lIGludCB0b0ludDMyKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKLSAg
ICB7Ci0gICAgICAgIGJvb2wgb2s7Ci0gICAgICAgIHJldHVybiB0b0ludDMyKHZhbHVlLCBvayk7
Ci0gICAgfQotCi0gICAgLy8gQ29udmVydCBhIHZhbHVlIHRvIGEgMzItYml0IHVuc2lnbmVkIGlu
dGVnZXIuICBUaGUgY29udmVyc2lvbiBmYWlscyBpZiB0aGUKLSAgICAvLyB2YWx1ZSBjYW5ub3Qg
YmUgY29udmVydGVkIHRvIGFuIHVuc2lnbmVkIGludGVnZXIgb3IgY29udmVydHMgdG8gbmFuIG9y
IHRvIGFuIGluZmluaXR5LgotICAgIHVpbnQzMl90IHRvVUludDMyKHY4OjpIYW5kbGU8djg6OlZh
bHVlPiB2YWx1ZSwgYm9vbCYgb2spOwotCi0gICAgLy8gQ29udmVydCBhIHZhbHVlIHRvIGEgMzIt
Yml0IHVuc2lnbmVkIGludGVnZXIgYXNzdW1pbmcgdGhlIGNvbnZlcnNpb24gY2Fubm90IGZhaWwu
Ci0gICAgaW5saW5lIHVpbnQzMl90IHRvVUludDMyKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1
ZSkKLSAgICB7Ci0gICAgICAgIGJvb2wgb2s7Ci0gICAgICAgIHJldHVybiB0b1VJbnQzMih2YWx1
ZSwgb2spOwotICAgIH0KLQotICAgIGlubGluZSBmbG9hdCB0b0Zsb2F0KHY4OjpMb2NhbDx2ODo6
VmFsdWU+IHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pih2
YWx1ZS0+TnVtYmVyVmFsdWUoKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIGxvbmcgbG9uZyB0b0lu
dDY0KHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGxvbmcgbG9uZz4odmFsdWUtPkludGVnZXJWYWx1ZSgpKTsKLSAgICB9Ci0KICAg
ICBpbmxpbmUgYm9vbCBpc1VuZGVmaW5lZE9yTnVsbCh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFs
dWUpCiAgICAgewogICAgICAgICByZXR1cm4gdmFsdWUtPklzTnVsbCgpIHx8IHZhbHVlLT5Jc1Vu
ZGVmaW5lZCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCShy
ZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICsz
OCw3IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJWOEFycmF5QnVm
ZmVyVmlldy5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4RVhURHJhd0J1
ZmZlcnMuaCIKICNpbmNsdWRlICJWOEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIgogI2lu
Y2x1ZGUgIlY4RmxvYXQzMkFycmF5LmgiCiAjaW5jbHVkZSAiVjhIVE1MQ2FudmFzRWxlbWVudC5o
IgpAQCAtMTc2LDYgKzE3NywxMCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhP
YmplY3QoCiAgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xM
b3NlQ29udGV4dCo+KGV4dGVuc2lvbiksIGNvbnRleHRPYmplY3QsIGlzb2xhdGUpOwogICAgICAg
ICByZWZlcmVuY2VOYW1lID0gIndlYkdMTG9zZUNvbnRleHROYW1lIjsKICAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6RVhURHJhd0J1ZmZlcnNOYW1lOgorICAgICAgICBl
eHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PEVYVERyYXdCdWZmZXJzKj4oZXh0ZW5z
aW9uKSwgY29udGV4dE9iamVjdCwgaXNvbGF0ZSk7CisgICAgICAgIHJlZmVyZW5jZU5hbWUgPSAi
ZXh0RHJhd0J1ZmZlcnNOYW1lIjsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJHTEV4dGVu
c2lvbjo6RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljTmFtZToKICAgICAgICAgZXh0ZW5zaW9u
T2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMqPihl
eHRlbnNpb24pLCBjb250ZXh0T2JqZWN0LCBpc29sYXRlKTsKICAgICAgICAgcmVmZXJlbmNlTmFt
ZSA9ICJleHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWNOYW1lIjsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5jcHAJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5jcHAJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFC
TEUoV0VCR0wpCisKKyNpbmNsdWRlICJFWFREcmF3QnVmZmVycy5oIgorCisjaW5jbHVkZSAiRXh0
ZW5zaW9uczNELmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRVhURHJhd0J1ZmZlcnM6OkVY
VERyYXdCdWZmZXJzKFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKKyAgICA6IFdlYkdM
RXh0ZW5zaW9uKGNvbnRleHQpCit7Cit9CisKK0VYVERyYXdCdWZmZXJzOjp+RVhURHJhd0J1ZmZl
cnMoKQoreworfQorCitXZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9uTmFtZSBFWFREcmF3QnVmZmVy
czo6Z2V0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYkdMRXh0ZW5zaW9uOjpFWFREcmF3
QnVmZmVyc05hbWU7Cit9CisKK1Bhc3NPd25QdHI8RVhURHJhd0J1ZmZlcnM+IEVYVERyYXdCdWZm
ZXJzOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQoreworICAgIEVYVERy
YXdCdWZmZXJzKiB4ID0gbmV3IEVYVERyYXdCdWZmZXJzKGNvbnRleHQpOworICAgIHJldHVybiBh
ZG9wdFB0cih4KTsKK30KKworLy8gc3RhdGljCitib29sIEVYVERyYXdCdWZmZXJzOjpzdXBwb3J0
ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQoreworICAgIEV4dGVuc2lvbnMzRCog
ZXh0ZW5zaW9ucyA9IGNvbnRleHQtPmdyYXBoaWNzQ29udGV4dDNEKCktPmdldEV4dGVuc2lvbnMo
KTsKKyAgICByZXR1cm4gZXh0ZW5zaW9ucy0+c3VwcG9ydHMoIkdMX0VYVF9kcmF3X2J1ZmZlcnMi
KTsKK30KKwordm9pZCBFWFREcmF3QnVmZmVyczo6ZHJhd0J1ZmZlcnNFWFQoY29uc3QgVmVjdG9y
PEdDM0RlbnVtPiYgYnVmZmVycykKK3sKKyAgICBpZiAobV9jb250ZXh0LT5pc0NvbnRleHRMb3N0
KCkpCisgICAgICAgIHJldHVybjsKKyAgICBHQzNEc2l6ZWkgbiA9IGJ1ZmZlcnMuc2l6ZSgpOwor
ICAgIGNvbnN0IEdDM0RlbnVtKiBidWZzID0gYnVmZmVycy5kYXRhKCk7CisgICAgaWYgKCFtX2Nv
bnRleHQtPm1fZnJhbWVidWZmZXJCaW5kaW5nKSB7CisgICAgICAgIGlmIChuICE9IDEpIHsKKyAg
ICAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfVkFMVUUsICJkcmF3QnVmZmVyc0VYVCIsICJtb3JlIHRoYW4gb25lIGJ1ZmZlciIp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChidWZzWzBdICE9
IEdyYXBoaWNzQ29udGV4dDNEOjpCQUNLICYmIGJ1ZnNbMF0gIT0gR3JhcGhpY3NDb250ZXh0M0Q6
Ok5PTkUpIHsKKyAgICAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhp
Y3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCAiZHJhd0J1ZmZlcnNFWFQiLCAiQkFDSyBv
ciBOT05FIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gQmVj
YXVzZSB0aGUgYmFja2J1ZmZlciBpcyBzaW11bGF0ZWQgd2UgbmVlZCB0byBjaGFuZ2UgQkFDSyB0
byBDT0xPUl9BVFRBQ0hNRU5UMAorICAgICAgICBHQzNEZW51bSB2YWx1ZSA9IChidWZzWzBdID09
IEdyYXBoaWNzQ29udGV4dDNEOjpCQUNLKSA/IEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRB
Q0hNRU5UMCA6IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FOworICAgICAgICBtX2NvbnRleHQtPmdy
YXBoaWNzQ29udGV4dDNEKCktPmdldEV4dGVuc2lvbnMoKS0+ZHJhd0J1ZmZlcnNFWFQoMSwgJnZh
bHVlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobiA+IG1fY29udGV4dC0+Z2V0TWF4RHJh
d0J1ZmZlcnMoKSkgeworICAgICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSwgImRyYXdCdWZmZXJzRVhUIiwgIm1vcmUg
dGhhbiBtYXggZHJhdyBidWZmZXJzIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICAgICAgZm9yIChHQzNEc2l6ZWkgaSA9IDA7IGkgPCBuOyArK2kpIHsKKyAgICAgICAgICAg
IGlmIChidWZzW2ldICE9IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FICYmIGJ1ZnNbaV0gIT0gc3Rh
dGljX2Nhc3Q8R0MzRGVudW0+KEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDBfRVhUICsg
aSkpIHsKKyAgICAgICAgICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgImRyYXdCdWZmZXJzRVhUIiwgIkNPTE9S
X0FUVEFDSE1FTlRpX0VYVCBvciBOT05FIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1fY29udGV4dC0+bV9mcmFtZWJ1ZmZlckJp
bmRpbmctPmRyYXdCdWZmZXJzKGJ1ZmZlcnMpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQoKUHJvcGVydHkgY2hhbmdlcyBvbjog
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuY3BwCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
QWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0VYVERyYXdCdWZmZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIEVYVERyYXdCdWZmZXJzX2gKKyNkZWZpbmUgRVhURHJhd0J1ZmZl
cnNfaAorCisjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVYVERyYXdCdWZmZXJzIDog
cHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxF
WFREcmF3QnVmZmVycz4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworCisgICAgc3Rh
dGljIGJvb2wgc3VwcG9ydGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworCisgICAgdmlydHVh
bCB+RVhURHJhd0J1ZmZlcnMoKTsKKyAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgp
IGNvbnN0OworCisgICAgdm9pZCBkcmF3QnVmZmVyc0VYVChjb25zdCBWZWN0b3I8R0MzRGVudW0+
JiBidWZmZXJzKTsKKworcHJpdmF0ZToKKyAgICBFWFREcmF3QnVmZmVycyhXZWJHTFJlbmRlcmlu
Z0NvbnRleHQqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVY
VERyYXdCdWZmZXJzX2gKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0VYVERyYXdCdWZmZXJzLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQog
ICArIExGCgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZm
ZXJzLmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERy
YXdCdWZmZXJzLmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK3R5cGVk
ZWYgdW5zaWduZWQgbG9uZyBHTGVudW07CisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAg
ICBKU0dlbmVyYXRlSXNSZWFjaGFibGU9SW1wbENvbnRleHQsCisgICAgT21pdENvbnN0cnVjdG9y
LAorICAgIERvTm90Q2hlY2tDb25zdGFudHMKK10gaW50ZXJmYWNlIEVYVERyYXdCdWZmZXJzIHsK
KyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDBfRVhUID0gMHg4Q0UwOworICAgIGNv
bnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UMV9FWFQgPSAweDhDRTE7CisgICAgY29uc3QgR0xl
bnVtIENPTE9SX0FUVEFDSE1FTlQyX0VYVCA9IDB4OENFMjsKKyAgICBjb25zdCBHTGVudW0gQ09M
T1JfQVRUQUNITUVOVDNfRVhUID0gMHg4Q0UzOworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRB
Q0hNRU5UNF9FWFQgPSAweDhDRTQ7CisgICAgY29uc3QgR0xlbnVtIENPTE9SX0FUVEFDSE1FTlQ1
X0VYVCA9IDB4OENFNTsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDZfRVhUID0g
MHg4Q0U2OworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UN19FWFQgPSAweDhDRTc7
CisgICAgY29uc3QgR0xlbnVtIENPTE9SX0FUVEFDSE1FTlQ4X0VYVCA9IDB4OENFODsKKyAgICBj
b25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDlfRVhUID0gMHg4Q0U5OworICAgIGNvbnN0IEdM
ZW51bSBDT0xPUl9BVFRBQ0hNRU5UMTBfRVhUID0gMHg4Q0VBOworICAgIGNvbnN0IEdMZW51bSBD
T0xPUl9BVFRBQ0hNRU5UMTFfRVhUID0gMHg4Q0VCOworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9B
VFRBQ0hNRU5UMTJfRVhUID0gMHg4Q0VDOworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hN
RU5UMTNfRVhUID0gMHg4Q0VEOworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UMTRf
RVhUID0gMHg4Q0VFOworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UMTVfRVhUID0g
MHg4Q0VGOworCisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSMF9FWFQgPSAweDg4MjU7Cisg
ICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSMV9FWFQgPSAweDg4MjY7CisgICAgY29uc3QgR0xl
bnVtIERSQVdfQlVGRkVSMl9FWFQgPSAweDg4Mjc7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVG
RkVSM19FWFQgPSAweDg4Mjg7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSNF9FWFQgPSAw
eDg4Mjk7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSNV9FWFQgPSAweDg4MkE7CisgICAg
Y29uc3QgR0xlbnVtIERSQVdfQlVGRkVSNl9FWFQgPSAweDg4MkI7CisgICAgY29uc3QgR0xlbnVt
IERSQVdfQlVGRkVSN19FWFQgPSAweDg4MkM7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVS
OF9FWFQgPSAweDg4MkQ7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSOV9FWFQgPSAweDg4
MkU7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSMTBfRVhUID0gMHg4ODJGOworICAgIGNv
bnN0IEdMZW51bSBEUkFXX0JVRkZFUjExX0VYVCA9IDB4ODgzMDsKKyAgICBjb25zdCBHTGVudW0g
RFJBV19CVUZGRVIxMl9FWFQgPSAweDg4MzE7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVS
MTNfRVhUID0gMHg4ODMyOworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjE0X0VYVCA9IDB4
ODgzMzsKKyAgICBjb25zdCBHTGVudW0gRFJBV19CVUZGRVIxNV9FWFQgPSAweDg4MzQ7CisKKyAg
ICBjb25zdCBHTGVudW0gTUFYX0NPTE9SX0FUVEFDSE1FTlRTX0VYVCA9IDB4OENERjsKKyAgICBj
b25zdCBHTGVudW0gTUFYX0RSQVdfQlVGRkVSU19FWFQgPSAweDg4MjQ7CisKKyAgICB2b2lkIGRy
YXdCdWZmZXJzRVhUKGluIHNlcXVlbmNlPEdMZW51bT4gYnVmZmVycyk7Cit9OwoKUHJvcGVydHkg
Y2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaWRs
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaAkocmV2aXNpb24gMTQ0MDk4KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaAkod29ya2luZyBj
b3B5KQpAQCAtMzYsNiArMzYsNyBAQCBwdWJsaWM6CiAgICAgLy8gRXh0ZW5zaW9uIG5hbWVzIGFy
ZSBuZWVkZWQgdG8gcHJvcGVybHkgd3JhcCBpbnN0YW5jZXMgaW4gSmF2YVNjcmlwdCBvYmplY3Rz
LgogICAgIGVudW0gRXh0ZW5zaW9uTmFtZSB7CiAgICAgICAgIFdlYkdMTG9zZUNvbnRleHROYW1l
LAorICAgICAgICBFWFREcmF3QnVmZmVyc05hbWUsCiAgICAgICAgIEVYVFRleHR1cmVGaWx0ZXJB
bmlzb3Ryb3BpY05hbWUsCiAgICAgICAgIE9FU1RleHR1cmVGbG9hdE5hbWUsCiAgICAgICAgIE9F
U1N0YW5kYXJkRGVyaXZhdGl2ZXNOYW1lLApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAJKHJldmlzaW9uIDE0NDA5OCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw2ICsyOSw4IEBACiAKICNpbmNsdWRlICJXZWJHTEZyYW1lYnVmZmVyLmgiCiAKKyNp
bmNsdWRlICJFWFREcmF3QnVmZmVycy5oIgorI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgogI2lu
Y2x1ZGUgIldlYkdMQ29udGV4dEdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmgiCiAKQEAgLTI5Miw2ICsyOTQsNyBAQCB2b2lkIFdlYkdMRnJhbWVidWZmZXI6OnNldEF0
dGFjaG1lbnRGb3JCCiAgICAgICAgIHJldHVybjsKICAgICBpZiAodGV4dHVyZSAmJiB0ZXh0dXJl
LT5vYmplY3QoKSkgewogICAgICAgICBtX2F0dGFjaG1lbnRzLmFkZChhdHRhY2htZW50LCBXZWJH
TFRleHR1cmVBdHRhY2htZW50OjpjcmVhdGUodGV4dHVyZSwgdGV4VGFyZ2V0LCBsZXZlbCkpOwor
ICAgICAgICBkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5KGZhbHNlKTsKICAgICAgICAgdGV4dHVyZS0+
b25BdHRhY2hlZCgpOwogICAgIH0KIH0KQEAgLTMwNCw2ICszMDcsNyBAQCB2b2lkIFdlYkdMRnJh
bWVidWZmZXI6OnNldEF0dGFjaG1lbnRGb3JCCiAgICAgICAgIHJldHVybjsKICAgICBpZiAocmVu
ZGVyYnVmZmVyICYmIHJlbmRlcmJ1ZmZlci0+b2JqZWN0KCkpIHsKICAgICAgICAgbV9hdHRhY2ht
ZW50cy5hZGQoYXR0YWNobWVudCwgV2ViR0xSZW5kZXJidWZmZXJBdHRhY2htZW50OjpjcmVhdGUo
cmVuZGVyYnVmZmVyKSk7CisgICAgICAgIGRyYXdCdWZmZXJzSWZOZWNlc3NhcnkoZmFsc2UpOwog
ICAgICAgICByZW5kZXJidWZmZXItPm9uQXR0YWNoZWQoKTsKICAgICB9CiB9CkBAIC0zNDAsNiAr
MzQ0LDcgQEAgdm9pZCBXZWJHTEZyYW1lYnVmZmVyOjpyZW1vdmVBdHRhY2htZW50RgogICAgIGlm
IChhdHRhY2htZW50T2JqZWN0KSB7CiAgICAgICAgIGF0dGFjaG1lbnRPYmplY3QtPm9uRGV0YWNo
ZWQoY29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpKTsKICAgICAgICAgbV9hdHRhY2htZW50
cy5yZW1vdmUoYXR0YWNobWVudCk7CisgICAgICAgIGRyYXdCdWZmZXJzSWZOZWNlc3NhcnkoZmFs
c2UpOwogICAgICAgICBzd2l0Y2ggKGF0dGFjaG1lbnQpIHsKICAgICAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6REVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UOgogICAgICAgICAgICAgYXR0YWNo
KEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRBQ0hNRU5ULCBHcmFwaGljc0NvbnRleHQzRDo6
REVQVEhfQVRUQUNITUVOVCk7CkBAIC01ODUsNiArNTkwLDM5IEBAIGJvb2wgV2ViR0xGcmFtZWJ1
ZmZlcjo6aXNCb3VuZCgpIGNvbnN0CiAgICAgcmV0dXJuIChjb250ZXh0KCktPm1fZnJhbWVidWZm
ZXJCaW5kaW5nLmdldCgpID09IHRoaXMpOwogfQogCit2b2lkIFdlYkdMRnJhbWVidWZmZXI6OmRy
YXdCdWZmZXJzKGNvbnN0IFZlY3RvcjxHQzNEZW51bT4mIGJ1ZnMpCit7CisgICAgbV9kcmF3QnVm
ZmVycyA9IGJ1ZnM7CisgICAgbV9maWx0ZXJlZERyYXdCdWZmZXJzLnJlc2l6ZShtX2RyYXdCdWZm
ZXJzLnNpemUoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2ZpbHRlcmVkRHJhd0J1
ZmZlcnMuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fZmlsdGVyZWREcmF3QnVmZmVyc1tpXSA9IEdy
YXBoaWNzQ29udGV4dDNEOjpOT05FOworICAgIGRyYXdCdWZmZXJzSWZOZWNlc3NhcnkodHJ1ZSk7
Cit9CisKK3ZvaWQgV2ViR0xGcmFtZWJ1ZmZlcjo6ZHJhd0J1ZmZlcnNJZk5lY2Vzc2FyeShib29s
IGZvcmNlKQoreworICAgIGlmICghY29udGV4dCgpLT5tX2V4dERyYXdCdWZmZXJzKQorICAgICAg
ICByZXR1cm47CisgICAgYm9vbCByZXNldCA9IGZvcmNlOworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9kcmF3QnVmZmVycy5zaXplKCk7IGkrKykgeworICAgICAgICBpZiAobV9kcmF3QnVm
ZmVyc1tpXSAhPSBHcmFwaGljc0NvbnRleHQzRDo6Tk9ORSAmJiBnZXRBdHRhY2htZW50KG1fZHJh
d0J1ZmZlcnNbaV0pKSB7CisgICAgICAgICAgICBpZiAobV9maWx0ZXJlZERyYXdCdWZmZXJzW2ld
ICE9IG1fZHJhd0J1ZmZlcnNbaV0pIHsKKyAgICAgICAgICAgICAgICBtX2ZpbHRlcmVkRHJhd0J1
ZmZlcnNbaV0gPSBtX2RyYXdCdWZmZXJzW2ldOworICAgICAgICAgICAgICAgIHJlc2V0ID0gdHJ1
ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChtX2Zp
bHRlcmVkRHJhd0J1ZmZlcnNbaV0gIT0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUpIHsKKyAgICAg
ICAgICAgICAgICBtX2ZpbHRlcmVkRHJhd0J1ZmZlcnNbaV0gPSBHcmFwaGljc0NvbnRleHQzRDo6
Tk9ORTsKKyAgICAgICAgICAgICAgICByZXNldCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICB9CisgICAgaWYgKHJlc2V0KSB7CisgICAgICAgIGNvbnRleHQoKS0+Z3JhcGhp
Y3NDb250ZXh0M0QoKS0+Z2V0RXh0ZW5zaW9ucygpLT5kcmF3QnVmZmVyc0VYVCgKKyAgICAgICAg
ICAgIG1fZmlsdGVyZWREcmF3QnVmZmVycy5zaXplKCksIG1fZmlsdGVyZWREcmF3QnVmZmVycy5k
YXRhKCkpOworICAgIH0KK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaAkocmV2aXNp
b24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC05NSw2ICs5NSw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
aGFzU3RlbmNpbEJ1ZmZlcigpIGNvbnN0OwogCisgICAgLy8gV3JhcHBlciBmb3IgZHJhd0J1ZmZl
cnNFWFQvZHJhd0J1ZmZlcnNBUkIgdG8gd29yayBhcm91bmQgYSBkcml2ZXIgYnVnLgorICAgIHZv
aWQgZHJhd0J1ZmZlcnMoY29uc3QgVmVjdG9yPEdDM0RlbnVtPiYgYnVmcyk7CisKIHByb3RlY3Rl
ZDoKICAgICBXZWJHTEZyYW1lYnVmZmVyKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwogCkBAIC0x
MTQsMTEgKzExNywxNyBAQCBwcml2YXRlOgogICAgIC8vIGF0dGFjaCAnYXR0YWNobWVudCcgYXQg
J2F0dGFjaG1lbnRQb2ludCcuCiAgICAgdm9pZCBhdHRhY2goR0MzRGVudW0gYXR0YWNobWVudCwg
R0MzRGVudW0gYXR0YWNobWVudFBvaW50KTsKIAorICAgIC8vIENoZWNrIGlmIGEgbmV3IGRyYXdC
dWZmZXJzIGNhbGwgc2hvdWxkIGJlIGlzc3VlZC4gVGhpcyBpcyBjYWxsZWQgd2hlbiB3ZSBhZGQg
b3IgcmVtb3ZlIGFuIGF0dGFjaG1lbnQuCisgICAgdm9pZCBkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5
KGJvb2wgZm9yY2UpOworCiAgICAgdHlwZWRlZiBXVEY6Okhhc2hNYXA8R0MzRGVudW0sIFJlZlB0
cjxXZWJHTEF0dGFjaG1lbnQ+ID4gQXR0YWNobWVudE1hcDsKIAogICAgIEF0dGFjaG1lbnRNYXAg
bV9hdHRhY2htZW50czsKIAogICAgIGJvb2wgbV9oYXNFdmVyQmVlbkJvdW5kOworCisgICAgVmVj
dG9yPEdDM0RlbnVtPiBtX2RyYXdCdWZmZXJzOworICAgIFZlY3RvcjxHQzNEZW51bT4gbV9maWx0
ZXJlZERyYXdCdWZmZXJzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
Y3BwCShyZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAj
aW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDaGVja2VkSW50LmgiCiAjaW5jbHVk
ZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRVhURHJhd0J1ZmZlcnMuaCIKICNpbmNsdWRlICJF
WFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNELmgiCkBAIC01MzgsNiArNTM5LDEwIEBAIHZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplTmUKICAgICBtX21heFJlbmRlcmJ1ZmZlclNp
emUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6Ok1B
WF9SRU5ERVJCVUZGRVJfU0laRSwgJm1fbWF4UmVuZGVyYnVmZmVyU2l6ZSk7CiAKKyAgICAvLyBU
aGVzZSB0d28gdmFsdWVzIGZyb20gRVhUX2RyYXdfYnVmZmVycyBhcmUgbGF6aWx5IHF1ZXJpZWQu
CisgICAgbV9tYXhEcmF3QnVmZmVycyA9IDA7CisgICAgbV9tYXhDb2xvckF0dGFjaG1lbnRzID0g
MDsKKwogICAgIG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdE9FUzo6Y3JlYXRlKHRoaXMsIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OlZhb1R5cGVE
ZWZhdWx0KTsKICAgICBhZGRDb250ZXh0T2JqZWN0KG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0
LmdldCgpKTsKICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBtX2RlZmF1bHRWZXJ0ZXhB
cnJheU9iamVjdDsKQEAgLTIxNTMsMTIgKzIxNTgsNiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6ZnJhbWVidWZmZXJSCiAgICAgICAgIG1fY29udGV4dC0+ZnJhbWVidWZmZXJSZW5kZXJi
dWZmZXIodGFyZ2V0LCBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQVRUQUNITUVOVCwgcmVuZGVy
YnVmZmVydGFyZ2V0LCBidWZmZXJPYmplY3QpOwogICAgICAgICBtX2NvbnRleHQtPmZyYW1lYnVm
ZmVyUmVuZGVyYnVmZmVyKHRhcmdldCwgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQVRUQUNI
TUVOVCwgcmVuZGVyYnVmZmVydGFyZ2V0LCBidWZmZXJPYmplY3QpOwogICAgICAgICBicmVhazsK
LSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRBQ0hNRU5UOgotICAgICAgICBt
X2NvbnRleHQtPmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKHRhcmdldCwgYXR0YWNobWVudCwgcmVu
ZGVyYnVmZmVydGFyZ2V0LCBidWZmZXJPYmplY3QpOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0FUVEFDSE1FTlQ6Ci0gICAgICAgIG1fY29udGV4
dC0+ZnJhbWVidWZmZXJSZW5kZXJidWZmZXIodGFyZ2V0LCBhdHRhY2htZW50LCByZW5kZXJidWZm
ZXJ0YXJnZXQsIGJ1ZmZlck9iamVjdCk7Ci0gICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIG1fY29udGV4dC0+ZnJhbWVidWZmZXJSZW5kZXJidWZmZXIodGFyZ2V0LCBhdHRhY2ht
ZW50LCByZW5kZXJidWZmZXJ0YXJnZXQsIGJ1ZmZlck9iamVjdCk7CiAgICAgfQpAQCAtMjQyNiw2
ICsyNDI1LDEzIEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmcKICAg
ICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbERlcHRoVGV4dHVyZS5nZXQoKTsKICAgICB9
CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJFWFRfZHJhd19idWZmZXJzIikgJiYg
RVhURHJhd0J1ZmZlcnM6OnN1cHBvcnRlZCh0aGlzKSkgeworICAgICAgICBpZiAoIW1fZXh0RHJh
d0J1ZmZlcnMpIHsKKyAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5lbnN1
cmVFbmFibGVkKCJHTF9FWFRfZHJhd19idWZmZXJzIik7CisgICAgICAgICAgICBtX2V4dERyYXdC
dWZmZXJzID0gRVhURHJhd0J1ZmZlcnM6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gbV9leHREcmF3QnVmZmVycy5nZXQoKTsKKyAgICB9CiAgICAgaWYgKGFsbG93UHJp
dmlsZWdlZEV4dGVuc2lvbnMoKSkgewogICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFt
ZSwgIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8iKSkgewogICAgICAgICAgICAgaWYgKCFtX3dl
YmdsRGVidWdSZW5kZXJlckluZm8pCkBAIC0yNzA5LDYgKzI3MTUsNTAgQEAgV2ViR0xHZXRJbmZv
IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UAogICAgICAgICAgICAgcmV0dXJuIGdldFVuc2ln
bmVkSW50UGFyYW1ldGVyKEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlf
RVhUKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBFWFRfdGV4
dHVyZV9maWx0ZXJfYW5pc290cm9waWMgbm90IGVuYWJsZWQiKTsKICAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbygpOworICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpNQVhfQ09MT1JfQVRUQUNITUVO
VFNfRVhUOiAvLyBFWFRfZHJhd19idWZmZXJzIEJFR0lOCisgICAgICAgIGlmIChtX2V4dERyYXdC
dWZmZXJzKQorICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhnZXRNYXhDb2xvckF0dGFj
aG1lbnRzKCkpOworICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6
SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIEVY
VF9kcmF3X2J1ZmZlcnMgbm90IGVuYWJsZWQiKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpNQVhfRFJBV19CVUZGRVJTX0VYVDoKKyAgICAg
ICAgaWYgKG1fZXh0RHJhd0J1ZmZlcnMpCisgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KGdldE1heERyYXdCdWZmZXJzKCkpOworICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGlj
c0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1l
dGVyIG5hbWUsIEVYVF9kcmF3X2J1ZmZlcnMgbm90IGVuYWJsZWQiKTsKKyAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbygpOworICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpEUkFXX0JVRkZFUjBfRVhU
OiAvLyBEUkFXX0JVRkZFUjBfRVhUIGlzIHNwZWNpYWwgYXMgdGhlIGJhY2tidWZmZXIgaXMgc2lt
dWxhdGVkLgorICAgICAgICBpZiAobV9leHREcmF3QnVmZmVycykgeworICAgICAgICAgICAgR0Mz
RGludCB2YWx1ZSA9IDA7CisgICAgICAgICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KHBuYW1l
LCAmdmFsdWUpOworICAgICAgICAgICAgaWYgKCFtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiB2YWx1
ZSAhPSBHcmFwaGljc0NvbnRleHQzRDo6Tk9ORSkKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IEdy
YXBoaWNzQ29udGV4dDNEOjpCQUNLOworICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2
YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBu
YW1lLCBFWFRfZHJhd19idWZmZXJzIG5vdCBlbmFibGVkIik7CisgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oKTsKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIxX0VYVDoKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIyX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lv
bnMzRDo6RFJBV19CVUZGRVIzX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZG
RVI0X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVI1X0VYVDoKKyAgICBj
YXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVI2X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMz
RDo6RFJBV19CVUZGRVI3X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVI4
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVI5X0VYVDoKKyAgICBjYXNl
IEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIxMF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6
OkRSQVdfQlVGRkVSMTFfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpEUkFXX0JVRkZFUjEy
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIxM19FWFQ6CisgICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSMTRfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNE
OjpEUkFXX0JVRkZFUjE1X0VYVDogLy8gRVhUX2RyYXdfYnVmZmVycyBFTkQKKyAgICAgICAgaWYg
KG1fZXh0RHJhd0J1ZmZlcnMpIHsKKyAgICAgICAgICAgIGlmIChzdGF0aWNfY2FzdDxHQzNEZW51
bT4oRXh0ZW5zaW9uczNEOjpEUkFXX0JVRkZFUjBfRVhUICsgZ2V0TWF4RHJhd0J1ZmZlcnMoKSkg
PD0gcG5hbWUpIHsKKyAgICAgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVy
LCBleGNlZWRzIE1BWF9DT0xPUl9BVFRBQ0hNRU5UU19FWFQiKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4g
Z2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKKyAgICAgICAgfQorICAgICAgICBzeW50aGVzaXplR0xF
cnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImlu
dmFsaWQgcGFyYW1ldGVyIG5hbWUsIEVYVF9kcmF3X2J1ZmZlcnMgbm90IGVuYWJsZWQiKTsKKyAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0
ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwogICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKCk7CkBAIC0yOTEzLDYgKzI5NjMsOCBAQCBWZWN0b3I8U3RyaW5nPiBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdlCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9XRUJHTF9jb21wcmVz
c2VkX3RleHR1cmVfczN0YyIpOwogICAgIGlmIChXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVk
KGdyYXBoaWNzQ29udGV4dDNEKCkpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJLSVRfV0VC
R0xfZGVwdGhfdGV4dHVyZSIpOworICAgIGlmIChFWFREcmF3QnVmZmVyczo6c3VwcG9ydGVkKHRo
aXMpKQorICAgICAgICByZXN1bHQuYXBwZW5kKCJFWFRfZHJhd19idWZmZXJzIik7CiAKICAgICBp
ZiAoYWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9ucygpKSB7CiAgICAgICAgIGlmIChtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3Nv
dXJjZSIpKQpAQCAtNTMyNiw2ICs1Mzc4LDMxIEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0
Ojp2YWxpZGF0ZUZyYW0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0FUVEFD
SE1FTlQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfU1RFTkNJTF9BVFRBQ0hN
RU5UOgogICAgICAgICBicmVhazsKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNI
TUVOVDFfRVhUOiAvLyBFWFRfZHJhd19idWZmZXJzIEJFR0lOCisgICAgY2FzZSBFeHRlbnNpb25z
M0Q6OkNPTE9SX0FUVEFDSE1FTlQyX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1Jf
QVRUQUNITUVOVDNfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5U
NF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ1X0VYVDoKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDZfRVhUOgorICAgIGNhc2UgRXh0
ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UN19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6
OkNPTE9SX0FUVEFDSE1FTlQ4X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRU
QUNITUVOVDlfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTBf
RVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTFfRVhUOgorICAg
IGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTJfRVhUOgorICAgIGNhc2UgRXh0
ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTNfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNE
OjpDT0xPUl9BVFRBQ0hNRU5UMTRfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9B
VFRBQ0hNRU5UMTVfRVhUOiAvLyBFWFRfZHJhd19idWZmZXJzIEVORAorICAgIC8vIENPTE9SX0FU
VEFDSE1FTlQwX0VYVCBpcyBlcXVhbCB0byBDT0xPUl9BVFRBQ0hNRU5UMAorICAgICAgICBpZiAo
IW1fZXh0RHJhd0J1ZmZlcnMpIHsKKyAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sIGZ1bmN0aW9uTmFtZSwgImludmFsaWQgYXR0YWNo
bWVudCwgRVhUX2RyYXdfYnVmZmVycyBub3QgZW5hYmxlZCIpOworICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChzdGF0aWNfY2FzdDxHQzNEZW51bT4oRXh0
ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMF9FWFQgKyBnZXRNYXhDb2xvckF0dGFjaG1lbnRz
KCkpIDw9IGF0dGFjaG1lbnQpIHsKKyAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sIGZ1bmN0aW9uTmFtZSwgImludmFsaWQgYXR0YWNo
bWVudCwgZXhjZWVkcyBNQVhfRFJBV19CVUZGRVJTX0VYVCIpOworICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sIGZ1bmN0
aW9uTmFtZSwgImludmFsaWQgYXR0YWNobWVudCIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC01ODQyLDYgKzU5MTksMjAgQEAgSW50U2l6ZSBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmNsYW1w
ZWRDYQogICAgICAgICAgICAgICAgICAgIGNsYW1wKGNhbnZhcygpLT5oZWlnaHQoKSwgMSwgbV9t
YXhWaWV3cG9ydERpbXNbMV0pKTsKIH0KIAorR0MzRGludCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmdldE1heERyYXdCdWZmZXJzKCkKK3sKKyAgICBpZiAoIW1fbWF4RHJhd0J1ZmZlcnMgJiYgRVhU
RHJhd0J1ZmZlcnM6OnN1cHBvcnRlZCh0aGlzKSkKKyAgICAgICAgbV9jb250ZXh0LT5nZXRJbnRl
Z2VydihFeHRlbnNpb25zM0Q6Ok1BWF9EUkFXX0JVRkZFUlNfRVhULCAmbV9tYXhEcmF3QnVmZmVy
cyk7CisgICAgcmV0dXJuIG1fbWF4RHJhd0J1ZmZlcnM7Cit9CisKK0dDM0RpbnQgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCkKK3sKKyAgICBpZiAoIW1fbWF4
Q29sb3JBdHRhY2htZW50cyAmJiBFWFREcmF3QnVmZmVyczo6c3VwcG9ydGVkKHRoaXMpKQorICAg
ICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KEV4dGVuc2lvbnMzRDo6TUFYX0NPTE9SX0FUVEFD
SE1FTlRTX0VYVCwgJm1fbWF4Q29sb3JBdHRhY2htZW50cyk7CisgICAgcmV0dXJuIG1fbWF4Q29s
b3JBdHRhY2htZW50czsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKFdFQkdMKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0LmgJKHJldmlzaW9uIDE0NDA5OCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00Miw2ICs0Miw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRVhURHJhd0J1
ZmZlcnM7CiBjbGFzcyBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWM7CiBjbGFzcyBIVE1MSW1h
Z2VFbGVtZW50OwogY2xhc3MgSFRNTFZpZGVvRWxlbWVudDsKQEAgLTMyMyw2ICszMjQsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKTsKIAogICBwcml2YXRlOgorICAgIGZyaWVu
ZCBjbGFzcyBFWFREcmF3QnVmZmVyczsKICAgICBmcmllbmQgY2xhc3MgV2ViR0xGcmFtZWJ1ZmZl
cjsKICAgICBmcmllbmQgY2xhc3MgV2ViR0xPYmplY3Q7CiAgICAgZnJpZW5kIGNsYXNzIE9FU1Zl
cnRleEFycmF5T2JqZWN0OwpAQCAtNDc2LDYgKzQ3OCw5IEBAIHB1YmxpYzoKICAgICBHQzNEaW50
IG1fbWF4VGV4dHVyZUxldmVsOwogICAgIEdDM0RpbnQgbV9tYXhDdWJlTWFwVGV4dHVyZUxldmVs
OwogCisgICAgR0MzRGludCBtX21heERyYXdCdWZmZXJzOworICAgIEdDM0RpbnQgbV9tYXhDb2xv
ckF0dGFjaG1lbnRzOworCiAgICAgR0MzRGludCBtX3BhY2tBbGlnbm1lbnQ7CiAgICAgR0MzRGlu
dCBtX3VucGFja0FsaWdubWVudDsKICAgICBib29sIG1fdW5wYWNrRmxpcFk7CkBAIC01MDksNiAr
NTE0LDcgQEAgcHVibGljOgogICAgIGludCBtX251bUdMRXJyb3JzVG9Db25zb2xlQWxsb3dlZDsK
IAogICAgIC8vIEVuYWJsZWQgZXh0ZW5zaW9uIG9iamVjdHMuCisgICAgT3duUHRyPEVYVERyYXdC
dWZmZXJzPiBtX2V4dERyYXdCdWZmZXJzOwogICAgIE93blB0cjxFWFRUZXh0dXJlRmlsdGVyQW5p
c290cm9waWM+IG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljOwogICAgIE93blB0cjxPRVNU
ZXh0dXJlRmxvYXQ+IG1fb2VzVGV4dHVyZUZsb2F0OwogICAgIE93blB0cjxPRVNTdGFuZGFyZERl
cml2YXRpdmVzPiBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXM7CkBAIC03MzIsNiArNzM4LDExIEBA
IHB1YmxpYzoKICAgICAvLyBDbGFtcCB0aGUgd2lkdGggYW5kIGhlaWdodCB0byBHTF9NQVhfVklF
V1BPUlRfRElNUy4KICAgICBJbnRTaXplIGNsYW1wZWRDYW52YXNTaXplKCk7CiAKKyAgICAvLyBG
aXJzdCB0aW1lIGNhbGxlZCwgaWYgRVhUX2RyYXdfYnVmZmVycyBpcyBzdXBwb3J0ZWQsIHF1ZXJ5
IHRoZSB2YWx1ZTsgb3RoZXJ3aXNlIHJldHVybiAwLgorICAgIC8vIExhdGVyLCByZXR1cm4gdGhl
IGNhY2hlZCB2YWx1ZS4KKyAgICBHQzNEaW50IGdldE1heERyYXdCdWZmZXJzKCk7CisgICAgR0Mz
RGludCBnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCk7CisKICAgICBmcmllbmQgY2xhc3MgV2ViR0xT
dGF0ZVJlc3RvcmVyOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vc3VwcG9ydC9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9FeHRlbnNpb25zM0RDaHJvbWl1bS5j
cHAJKHJldmlzaW9uIDE0NDA5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L3N1cHBvcnQvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTUs
NCArMjE1LDkgQEAgdm9pZCBFeHRlbnNpb25zM0RDaHJvbWl1bTo6cG9wR3JvdXBNYXJrZQogICAg
IG1fcHJpdmF0ZS0+d2ViQ29udGV4dCgpLT5wb3BHcm91cE1hcmtlckVYVCgpOwogfQogCit2b2lk
IEV4dGVuc2lvbnMzRENocm9taXVtOjpkcmF3QnVmZmVyc0VYVChHQzNEc2l6ZWkgbiwgY29uc3Qg
R0MzRGVudW0qIGJ1ZnMpCit7CisgICAgbV9wcml2YXRlLT53ZWJDb250ZXh0KCktPmRyYXdCdWZm
ZXJzQ2hyb21pdW0obiwgYnVmcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCShy
ZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRl
bnNpb25zM0QuaAkod29ya2luZyBjb3B5KQpAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gICBHTF9FWFRfZGVidWdfbWFya2VyCiAgICAgLy8gICBHTF9DSFJPTUlVTV9jb3B5X3RleHR1
cmUKICAgICAvLyAgIEdMX0NIUk9NSVVNX2ZsaXB5CisgICAgLy8gICBHTF9BUkJfZHJhd19idWZm
ZXJzIC8gR0xfRVhUX2RyYXdfYnVmZmVycwogCiAgICAgLy8gVGFrZXMgZnVsbCBuYW1lIG9mIGV4
dGVuc2lvbjsgZm9yIGV4YW1wbGUsCiAgICAgLy8gIkdMX0VYVF90ZXh0dXJlX2Zvcm1hdF9CR1JB
ODg4OCIuCkBAIC0xNTAsNyArMTUxLDQzIEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBHTF9DSFJP
TUlVTV9jb3B5X3RleHR1cmUKICAgICAgICAgVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX0NIUk9N
SVVNID0gMHg5MjQxLAotICAgICAgICBVTlBBQ0tfVU5QUkVNVUxUSVBMWV9BTFBIQV9DSFJPTUlV
TSA9IDB4OTI0MgorICAgICAgICBVTlBBQ0tfVU5QUkVNVUxUSVBMWV9BTFBIQV9DSFJPTUlVTSA9
IDB4OTI0MiwKKworICAgICAgICAvLyBHTF9BUkJfZHJhd19idWZmZXJzIC8gR0xfRVhUX2RyYXdf
YnVmZmVycworICAgICAgICBNQVhfRFJBV19CVUZGRVJTX0VYVCA9IDB4ODgyNCwKKyAgICAgICAg
RFJBV19CVUZGRVIwX0VYVCA9IDB4ODgyNSwKKyAgICAgICAgRFJBV19CVUZGRVIxX0VYVCA9IDB4
ODgyNiwKKyAgICAgICAgRFJBV19CVUZGRVIyX0VYVCA9IDB4ODgyNywKKyAgICAgICAgRFJBV19C
VUZGRVIzX0VYVCA9IDB4ODgyOCwKKyAgICAgICAgRFJBV19CVUZGRVI0X0VYVCA9IDB4ODgyOSwK
KyAgICAgICAgRFJBV19CVUZGRVI1X0VYVCA9IDB4ODgyQSwKKyAgICAgICAgRFJBV19CVUZGRVI2
X0VYVCA9IDB4ODgyQiwKKyAgICAgICAgRFJBV19CVUZGRVI3X0VYVCA9IDB4ODgyQywKKyAgICAg
ICAgRFJBV19CVUZGRVI4X0VYVCA9IDB4ODgyRCwKKyAgICAgICAgRFJBV19CVUZGRVI5X0VYVCA9
IDB4ODgyRSwKKyAgICAgICAgRFJBV19CVUZGRVIxMF9FWFQgPSAweDg4MkYsCisgICAgICAgIERS
QVdfQlVGRkVSMTFfRVhUID0gMHg4ODMwLAorICAgICAgICBEUkFXX0JVRkZFUjEyX0VYVCA9IDB4
ODgzMSwKKyAgICAgICAgRFJBV19CVUZGRVIxM19FWFQgPSAweDg4MzIsCisgICAgICAgIERSQVdf
QlVGRkVSMTRfRVhUID0gMHg4ODMzLAorICAgICAgICBEUkFXX0JVRkZFUjE1X0VYVCA9IDB4ODgz
NCwKKyAgICAgICAgTUFYX0NPTE9SX0FUVEFDSE1FTlRTX0VYVCA9IDB4OENERiwKKyAgICAgICAg
Q09MT1JfQVRUQUNITUVOVDBfRVhUID0gMHg4Q0UwLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5U
MV9FWFQgPSAweDhDRTEsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQyX0VYVCA9IDB4OENFMiwK
KyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDNfRVhUID0gMHg4Q0UzLAorICAgICAgICBDT0xPUl9B
VFRBQ0hNRU5UNF9FWFQgPSAweDhDRTQsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ1X0VYVCA9
IDB4OENFNSwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDZfRVhUID0gMHg4Q0U2LAorICAgICAg
ICBDT0xPUl9BVFRBQ0hNRU5UN19FWFQgPSAweDhDRTcsCisgICAgICAgIENPTE9SX0FUVEFDSE1F
TlQ4X0VYVCA9IDB4OENFOCwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDlfRVhUID0gMHg4Q0U5
LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTBfRVhUID0gMHg4Q0VBLAorICAgICAgICBDT0xP
Ul9BVFRBQ0hNRU5UMTFfRVhUID0gMHg4Q0VCLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTJf
RVhUID0gMHg4Q0VDLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTNfRVhUID0gMHg4Q0VELAor
ICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTRfRVhUID0gMHg4Q0VFLAorICAgICAgICBDT0xPUl9B
VFRBQ0hNRU5UMTVfRVhUID0gMHg4Q0VGCiAgICAgfTsKIAogICAgIC8vIEdMX0FSQl9yb2J1c3Ru
ZXNzCkBAIC0xOTAsNiArMjI3LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwdXNoR3Jv
dXBNYXJrZXJFWFQoY29uc3QgU3RyaW5nJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwb3BHcm91
cE1hcmtlckVYVCh2b2lkKSA9IDA7CiAKKyAgICAvLyBHTF9BUkJfZHJhd19idWZmZXJzIC8gR0xf
RVhUX2RyYXdfYnVmZmVycworICAgIHZpcnR1YWwgdm9pZCBkcmF3QnVmZmVyc0VYVChHQzNEc2l6
ZWkgbiwgY29uc3QgR0MzRGVudW0qIGJ1ZnMpID0gMDsKKwogICAgIHZpcnR1YWwgYm9vbCBpc05W
SURJQSgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBTUQoKSA9IDA7CiAgICAgdmlydHVhbCBi
b29sIGlzSW50ZWwoKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQzRC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwCShyZXZpc2lvbiAxNDQwOTgpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEzODksNiArMTM4OSwyMSBAQCB1bnNpZ25lZCBHcmFwaGljc0Nv
bnRleHQzRDo6Z2V0Q2xlYXJCaXRzCiB7CiAgICAgc3dpdGNoIChhdHRhY2htZW50KSB7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDA6CisgICAgY2FzZSBFeHRl
bnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6
Q09MT1JfQVRUQUNITUVOVDJfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRB
Q0hNRU5UM19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ0X0VY
VDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDVfRVhUOgorICAgIGNh
c2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UNl9FWFQ6CisgICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ3X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09M
T1JfQVRUQUNITUVOVDhfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hN
RU5UOV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMF9FWFQ6
CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMV9FWFQ6CisgICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMl9FWFQ6CisgICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxM19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNP
TE9SX0FUVEFDSE1FTlQxNF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFD
SE1FTlQxNV9FWFQ6CiAgICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQlVG
RkVSX0JJVDsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRBQ0hNRU5UOgog
ICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JVRkZFUl9CSVQ7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RD
aHJvbWl1bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgJKHJldmlzaW9uIDE0NDA5OCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9t
aXVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKICAgICB2
aXJ0dWFsIHZvaWQgYmluZFZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOwogICAgIHZp
cnR1YWwgU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9ybTNET2Jq
ZWN0KTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0J1ZmZlcnNFWFQoR0MzRHNpemVpLCBjb25zdCBH
QzNEZW51bSopOwogCiAgICAgZW51bSB7CiAgICAgICAgIC8vIEdMX09FU19FR0xfaW1hZ2VfZXh0
ZXJuYWwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRl
bnNpb25zM0RPcGVuR0wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCShyZXZpc2lvbiAxNDQwOTgp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNE
T3BlbkdMLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc4LDkgKzE3OCwyNSBAQCBib29sIEV4dGVu
c2lvbnMzRE9wZW5HTDo6c3VwcG9ydHNFeHRlbnNpCiAgICAgaWYgKG5hbWUgPT0gIkdMX0VYVF90
ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpCiAgICAgICAgIHJldHVybiBtX2F2YWlsYWJsZUV4
dGVuc2lvbnMuY29udGFpbnMoIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpOwog
CisgICAgaWYgKG5hbWUgPT0gIkdMX0VYVF9kcmF3X2J1ZmZlcnMiKSB7CisjaWYgUExBVEZPUk0o
TUFDKQorICAgICAgICByZXR1cm4gbV9hdmFpbGFibGVFeHRlbnNpb25zLmNvbnRhaW5zKCJHTF9B
UkJfZHJhd19idWZmZXJzIik7CisjZWxzZQorICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50IHN1
cHBvcnQgZm9yIG90aGVyIHBsYXRmb3Jtcy4KKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlm
CisgICAgfQogICAgIHJldHVybiBtX2F2YWlsYWJsZUV4dGVuc2lvbnMuY29udGFpbnMobmFtZSk7
CiB9CiAKK3ZvaWQgRXh0ZW5zaW9uczNET3BlbkdMOjpkcmF3QnVmZmVyc0VYVChHQzNEc2l6ZWkg
biwgY29uc3QgR0MzRGVudW0qIGJ1ZnMpCit7CisgICAgLy8gIEZJWE1FOiBpbXBsZW1lbnQgc3Vw
cG9ydCBmb3Igb3RoZXIgcGxhdGZvcm1zLgorI2lmIFBMQVRGT1JNKE1BQykKKyAgICA6OmdsRHJh
d0J1ZmZlcnNBUkIobiwgYnVmcyk7CisjZW5kaWYKK30KKwogU3RyaW5nIEV4dGVuc2lvbnMzRE9w
ZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiB7CiAgICAgcmV0dXJuIFN0cmluZyhyZWludGVycHJldF9j
YXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdM
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0V4dGVuc2lvbnMzRE9wZW5HTC5oCShyZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRF
dmVudE1hcmtlckVYVChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgcHVzaEdyb3Vw
TWFya2VyRVhUKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBwb3BHcm91cE1hcmtl
ckVYVCh2b2lkKTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0J1ZmZlcnNFWFQoR0MzRHNpemVpLCBj
b25zdCBHQzNEZW51bSopOwogCiBwcm90ZWN0ZWQ6CiAgICAgLy8gVGhpcyBjbGFzcyBvbmx5IG5l
ZWRzIHRvIGJlIGluc3RhbnRpYXRlZCBieSBHcmFwaGljc0NvbnRleHQzRCBpbXBsZW1lbnRhdGlv
bnMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5z
aW9uczNET3BlbkdMQ29tbW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcAkocmV2aXNp
b24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOCw2ICsxMTgs
MTUgQEAgdm9pZCBFeHRlbnNpb25zM0RPcGVuR0xDb21tb246OmVuc3VyZUVuYQogICAgICAgICAg
ICAgQU5HTEVSZXNvdXJjZXMuT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzID0gMTsKICAgICAgICAg
ICAgIGNvbXBpbGVyLnNldFJlc291cmNlcyhBTkdMRVJlc291cmNlcyk7CiAgICAgICAgIH0KKyAg
ICB9IGVsc2UgaWYgKG5hbWUgPT0gIkdMX0VYVF9kcmF3X2J1ZmZlcnMiKSB7CisgICAgICAgIC8v
IEVuYWJsZSBzdXBwb3J0IGluIEFOR0xFIChpZiBub3QgZW5hYmxlZCBhbHJlYWR5KQorICAgICAg
ICBBTkdMRVdlYktpdEJyaWRnZSYgY29tcGlsZXIgPSBtX2NvbnRleHQtPm1fY29tcGlsZXI7Cisg
ICAgICAgIFNoQnVpbHRJblJlc291cmNlcyBBTkdMRVJlc291cmNlcyA9IGNvbXBpbGVyLmdldFJl
c291cmNlcygpOworICAgICAgICBpZiAoIUFOR0xFUmVzb3VyY2VzLkVYVF9kcmF3X2J1ZmZlcnMp
IHsKKyAgICAgICAgICAgIEFOR0xFUmVzb3VyY2VzLkVYVF9kcmF3X2J1ZmZlcnMgPSAxOworICAg
ICAgICAgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihFeHRlbnNpb25zM0Q6Ok1BWF9EUkFXX0JV
RkZFUlNfRVhULCAmQU5HTEVSZXNvdXJjZXMuTWF4RHJhd0J1ZmZlcnMpOworICAgICAgICAgICAg
Y29tcGlsZXIuc2V0UmVzb3VyY2VzKEFOR0xFUmVzb3VyY2VzKTsKKyAgICAgICAgfQogICAgIH0K
IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVu
c2lvbnMzRE9wZW5HTENvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uaAkocmV2aXNpb24g
MTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVu
c2lvbnMzRE9wZW5HTENvbW1vbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1MCw4IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0z
RE9iamVjdCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBiaW5kVmVydGV4QXJyYXlPRVMoUGxhdGZv
cm0zRE9iamVjdCkgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIGRyYXdCdWZmZXJzRVhUKEdDM0Rz
aXplaSwgY29uc3QgR0MzRGVudW0qKSA9IDA7CisKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRUcmFu
c2xhdGVkU2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm0zRE9iamVjdCk7CiAKICAgICAvLyBFWFQg
Um9idXN0bmVzcyAtIHVzZXMgZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9FeHRlbnNpb25zM0RPcGVuR0xFUy5jcHAJKHJldmlzaW9uIDE0NDA5OCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE2MCw2ICsxNjAsMTEgQEAgdm9pZCBFeHRlbnNpb25zM0RPcGVu
R0xFUzo6YmluZFZlcnRleEFycgogICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9y
KEdMX0lOVkFMSURfT1BFUkFUSU9OKTsKIH0KIAordm9pZCBFeHRlbnNpb25zM0RPcGVuR0xFUzo6
ZHJhd0J1ZmZlcnNFWFQoR0MzRHNpemVpIG4sIGNvbnN0IEdDM0RlbnVtKiBidWZzKQoreworICAg
IC8vIEZJWE1FOiBpbXBsZW1lbnQgdGhlIHN1cHBvcnQuCit9CisKIGludCBFeHRlbnNpb25zM0RP
cGVuR0xFUzo6Z2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpCiB7CiAgICAgLy8gRklYTUU6IFRo
aXMgZG9lcyBub3QgY2FsbCBnZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCLCBidXQgaW5zdGVhZCBn
ZXRHcmFwaGljc1Jlc2V0U3RhdHVzRVhULgpAQCAtMjUwLDYgKzI1NSw5IEBAIGJvb2wgRXh0ZW5z
aW9uczNET3BlbkdMRVM6OnN1cHBvcnRzRXh0ZW4KICAgICAgICAgICAgIG1fZ2xSZWFkblBpeGVs
c0VYVCA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZOR0xSRUFETlBJWEVMU0VYVFBST0M+KGVnbEdldFBy
b2NBZGRyZXNzKCJnbFJlYWRuUGl4ZWxzRVhUIikpOwogICAgICAgICAgICAgbV9nbEdldG5Vbmlm
b3JtZnZFWFQgPSByZWludGVycHJldF9jYXN0PFBGTkdMR0VUTlVOSUZPUk1GVkVYVFBST0M+KGVn
bEdldFByb2NBZGRyZXNzKCJnbEdldG5Vbmlmb3JtZnZFWFQiKSk7CiAgICAgICAgICAgICBtX2ds
R2V0blVuaWZvcm1pdkVYVCA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZOR0xHRVROVU5JRk9STUlWRVhU
UFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImdsR2V0blVuaWZvcm1pdkVYVCIpKTsKKyAgICAgICAg
fSBlbHNlIGlmIChuYW1lID09ICJHTF9FWFRfZHJhd19idWZmZXJzIikgeworICAgICAgICAgICAg
Ly8gRklYTUU6IGltcGxlbWVudCB0aGUgc3VwcG9ydC4KKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0
ZW5zaW9uczNET3BlbkdMRVMuaAkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTkwLDYgKzkwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVW
ZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKICAgICB2aXJ0dWFsIEdDM0Rib29sZWFu
IGlzVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lkIGJp
bmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJh
d0J1ZmZlcnNFWFQoR0MzRHNpemVpLCBjb25zdCBHQzNEZW51bSopOwogCiAgICAgLy8gRVhUIFJv
YnVzdG5lc3MgLSByZXNldAogICAgIHZpcnR1YWwgaW50IGdldEdyYXBoaWNzUmVzZXRTdGF0dXNB
UkIoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190370</attachid>
            <date>2013-02-26 15:08:41 -0800</date>
            <delta_ts>2013-02-26 16:42:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109331-20130226150455.patch</filename>
            <type>text/plain</type>
            <size>62992</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEzLTAyLTI2ICBaaGVu
eWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgRVhUX2RyYXdfYnVmZmVycyBuZWVk
cyBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA5MzMxCisKKyAgICAgICAgQWRkIEVYVF9kcmF3X2J1ZmZlcnMgc3VwcG9ydCBm
b3IgY2hyb21pdW0gcG9ydC4KKworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJHcmFwaGlj
c0NvbnRleHQzRC5oOgorICAgICAgICAoV2ViR3JhcGhpY3NDb250ZXh0M0QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6ZHJhd0J1ZmZlcnNDaHJvbWl1bSk6CisKIDIw
MTMtMDItMjYgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
Q3JlYXRlIHRoZSBTaGFyZWRHcmFwaGljc0NvbnRleHQzRCB0aHJvdWdoIGl0cyBvd24gbWV0aG9k
LgpJbmRleDogU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRl
eHQzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
R3JhcGhpY3NDb250ZXh0M0QuaAkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00NzIsNiArNDcyLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhc3luY1RleEltYWdl
MkRDSFJPTUlVTShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbCwgV0dDM0RlbnVtIGlu
dGVybmFsZm9ybWF0LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCwgV0dDM0Rp
bnQgYm9yZGVyLCBXR0MzRGVudW0gZm9ybWF0LCBXR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCog
cGl4ZWxzKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXN5bmNUZXhTdWJJbWFnZTJEQ0hST01JVU0o
V0dDM0RlbnVtIHRhcmdldCwgV0dDM0RpbnQgbGV2ZWwsIFdHQzNEaW50IHhvZmZzZXQsIFdHQzNE
aW50IHlvZmZzZXQsIFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0LCBXR0MzRGVu
dW0gZm9ybWF0LCBXR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKSB7IH0KIAorICAg
IC8vIEdMX0VYVF9kcmF3X2J1ZmZlcnMgLyBHTF9BUkJfZHJhd19idWZmZXJzCisgICAgdmlydHVh
bCB2b2lkIGRyYXdCdWZmZXJzQ2hyb21pdW0oV0dDM0RzaXplaSBuLCBjb25zdCBXR0MzRGVudW0q
IGJ1ZnMpIHsgfQorCiAgICAgLy8gRklYTUU6IE1ha2UgaW1wbGVtZW50YXRpb25zIG9mIHRoaXMg
Y2xhc3Mgb3ZlcnJpZGUgdGhpcyBtZXRob2QgaW5zdGVhZCBhbmQgdGhlbiByZW1vdmUgb25DcmVh
dGVHckdMSW50ZXJmYWNlKCkuCiAgICAgdmlydHVhbCBHckdMSW50ZXJmYWNlKiBjcmVhdGVHckdM
SW50ZXJmYWNlKCkgeyByZXR1cm4gb25DcmVhdGVHckdMSW50ZXJmYWNlKCk7IH0KIApJbmRleDog
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOTMgQEAKKzIwMTMtMDItMjYgIFpoZW55YW8gTW8gIDx6
bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBFWFRfZHJhd19idWZmZXJzIG5lZWRzIGltcGxlbWVu
dGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDkzMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgRVhUX2RyYXdfYnVmZmVycyBmb3IgV2ViR0wuCisg
ICAgICAgIG1hYyBPcGVuR0wgcG9ydCBpcyBwYXNzaW5nIGtocm9ub3MgV2ViR0wgY29uZm9ybWFu
Y2UgdGVzdCB3aXRoIHRoaXMgcGF0Y2guIE9wZW5HTCBFUyBwb3J0IGltcGxlbWVudGF0aW9uIGlz
bid0IGFkZGVkIGluIHRoaXMgcGF0Y2guCisgICAgICAgIEFsc28sIGl0IGhhcyB0aGUgV2ViS2l0
IHNpZGUgc3VwcG9ydCBmb3IgY2hyb21pdW0gcG9ydCwgYnV0IHBlbmRpbmcgY29tbWFuZCBidWZm
ZXIgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgQmVzaWRlcyB0aGUgYmFzaWMgZXh0ZW5zaW9u
IGltcGxlbWVudGF0aW9uLCB3ZSBhbHNvIGFkZGVkIGRyYXdCdWZmZXJzKCkgd3JhcHBlciB0byB3
b3JrIGFyb3VuZCBhIG1hYyBkcml2ZXIgYnVnOiBpLmUuLCBkbyBub3QgZW5hYmxlIGEgYnVmZmVy
IGlmIHRoZXJlIGlzIG5vIGF0dGFjaG1lbnQgYWRkZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIERlcml2ZWRT
b3VyY2VzLnByaToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRh
cmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOEJpbmRpbmcuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6dG9JbnQzMik6CisgICAgICAgIChXZWJDb3JlOjp0b1VJbnQzMik6CisgICAg
ICAgIChXZWJDb3JlOjp0b0Zsb2F0KToKKyAgICAgICAgKFdlYkNvcmU6OnRvSW50NjQpOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4T2JqZWN0KToKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9FWFREcmF3QnVmZmVycy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpFWFREcmF3QnVmZmVyczo6RVhURHJhd0J1ZmZlcnMpOgorICAgICAgICAoV2Vi
Q29yZTo6RVhURHJhd0J1ZmZlcnM6On5FWFREcmF3QnVmZmVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpFWFREcmF3QnVmZmVyczo6Z2V0TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFWFREcmF3QnVm
ZmVyczo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVYVERyYXdCdWZmZXJzOjpzdXBwb3J0
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RVhURHJhd0J1ZmZlcnM6OmRyYXdCdWZmZXJzRVhUKToK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoRVhURHJhd0J1ZmZlcnMpOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL0VYVERyYXdCdWZmZXJzLmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xFeHRlbnNpb24uaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRnJhbWVidWZmZXI6OnNldEF0dGFjaG1lbnRGb3JC
b3VuZEZyYW1lYnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRnJhbWVidWZmZXI6OnJl
bW92ZUF0dGFjaG1lbnRGcm9tQm91bmRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTEZyYW1lYnVmZmVyOjpkcmF3QnVmZmVycyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMRnJhbWVidWZmZXI6OmRyYXdCdWZmZXJzSWZOZWNlc3NhcnkpOgor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaDoKKyAgICAgICAgKFdlYkdM
RnJhbWVidWZmZXIpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVy
aW5nQ29udGV4dDo6aW5pdGlhbGl6ZU5ld0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0OjpmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbik6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBvcnRlZEV4dGVuc2lvbnMpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUZyYW1lYnVm
ZmVyRnVuY1BhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0OjpnZXRNYXhEcmF3QnVmZmVycyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdldE1heENvbG9yQXR0YWNobWVudHMpOgorICAgICAgICAqIGh0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJHTFJlbmRlcmluZ0NvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBv
cnQvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9u
czNEQ2hyb21pdW06OmRyYXdCdWZmZXJzRVhUKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oOgorICAgICAgICAoRXh0ZW5zaW9u
czNEKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2xlYXJCaXRzQnlBdHRh
Y2htZW50VHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0ZW5z
aW9uczNEQ2hyb21pdW0uaDoKKyAgICAgICAgKEV4dGVuc2lvbnMzRENocm9taXVtKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTDo6c3VwcG9ydHNFeHRlbnNpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNET3BlbkdMOjpkcmF3QnVmZmVyc0VYVCk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0
ZW5zaW9uczNET3BlbkdMLmg6CisgICAgICAgIChFeHRlbnNpb25zM0RPcGVuR0wpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uOjplbnN1cmVFbmFi
bGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3Bl
bkdMQ29tbW9uLmg6CisgICAgICAgIChFeHRlbnNpb25zM0RPcGVuR0xDb21tb24pOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0xFUzo6ZHJhd0J1ZmZlcnNFWFQpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0xF
Uzo6c3VwcG9ydHNFeHRlbnNpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9FeHRlbnNpb25zM0RPcGVuR0xFUy5oOgorICAgICAgICAoRXh0ZW5zaW9uczNET3BlbkdMRVMp
OgorCiAyMDEzLTAyLTI2ICBDaHJpc3RpYW4gQmllc2luZ2VyICA8Y2JpZXNpbmdlckBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgRW1wdHkgPGJ1dHRvbj5zIHNob3VsZCBjb2xsYXBzZTsgZW1wdHkg
PGlucHV0IHR5cGU9ImJ1dHRvbiI+IHNob3VsZCBub3QgY29sbGFwc2UKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CShyZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtNTEzLDYgKzUxMyw3IEBAIHNldChXZWJDb3JlX0lETF9G
SUxFUwogICAgIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaWRsCiAgICAgaHRt
bC9jYW52YXMvRGF0YVZpZXcuaWRsCiAgICAgaHRtbC9jYW52YXMvRE9NUGF0aC5pZGwKKyAgICBo
dG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5pZGwKICAgICBodG1sL2NhbnZhcy9FWFRUZXh0dXJl
RmlsdGVyQW5pc290cm9waWMuaWRsCiAgICAgaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbAog
ICAgIGh0bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5pZGwKQEAgLTE1MDYsNiArMTUwNyw3IEBAIHNl
dChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuY3BwCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwCiAgICAgaHRtbC9jYW52YXMv
RGF0YVZpZXcuY3BwCisgICAgaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuY3BwCiAgICAgaHRt
bC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcAogICAgIGh0bWwvY2FudmFz
L09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwCiAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZs
b2F0LmNwcApAQCAtMjY0Nyw2ICsyNjQ5LDcgQEAgaWYgKEVOQUJMRV9XRUJHTCkKICAgICAgICAg
aHRtbC9jYW52YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uY3BwCiAgICAgICAgIGh0bWwvY2FudmFz
L1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
RXh0ZW5zaW9uLmNwcAorICAgICAgICBodG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5jcHAKICAg
ICAgICAgaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcAogICAgICAg
ICBodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcAogICAgICAgICBodG1sL2Nh
bnZhcy9PRVNUZXh0dXJlRmxvYXQuY3BwCkBAIC0yNjU0LDYgKzI2NTcsNyBAQCBpZiAoRU5BQkxF
X1dFQkdMKQogICAgICAgICBodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcAogICAg
ICkKICAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0lETF9GSUxFUworICAgICAgICBodG1sL2NhbnZh
cy9FWFREcmF3QnVmZmVycy5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRl
ckFuaXNvdHJvcGljLmlkbAogICAgICAgICBodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRp
dmVzLmlkbAogICAgICAgICBodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaWRsCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDE0NDA5OCkKKysrIFNvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTM5MCw2ICszOTAs
NyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0RhdGFW
aWV3LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9ET01QYXRoLmlkbCBcCisgICAg
JChXZWJDb3JlKS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5pZGwgXAogICAgICQoV2ViQ29y
ZSkvaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9odG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LnByaQkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
cHJpCSh3b3JraW5nIGNvcHkpCkBAIC0zMDksNiArMzA5LDcgQEAgSURMX0JJTkRJTkdTICs9IFwK
ICAgICAkJFBXRC9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmlkbCBcCiAgICAg
JCRQV0QvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbCBcCiAgICAgJCRQ
V0QvaHRtbC9jYW52YXMvRE9NUGF0aC5pZGwgXAorICAgICQkUFdEL2h0bWwvY2FudmFzL0VYVERy
YXdCdWZmZXJzLmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFu
aXNvdHJvcGljLmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0
aXZlcy5pZGwgXAogICAgICQkUFdEL2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5pZGwgXApJ
bmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxNDQwOTgpCisrKyBT
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0yNDgs
NiArMjQ4LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTRXJyb3JDYWxsYmFjay5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRXJy
b3JFdmVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFcnJvckV2ZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFWFREcmF3QnVmZmVycy5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNFWFREcmF3QnVmZmVycy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTRXZlbnQuY3BwIFwKQEAgLTE1MzIsNyArMTUzNCw4IEBAIGRvbV9iaW5kaW5n
X2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dC5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9EYXRhVmlldy5pZGwgXAotCSQoV2ViQ29y
ZSkvaHRtbC9jYW52YXMvRE9NUGF0aC5pZGwgXAorCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRE9N
UGF0aC5pZGwgCisJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5pZGwgXAog
CSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmlkbCBc
CiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuaWRsIFwKIAkkKFdlYkNvcmUp
L2h0bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5pZGwgXApAQCAtMzI3NCw2ICszMjc3LDggQEAgd2Vi
Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmggXAogCVNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0RPTVBhdGguaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvRVhURHJhd0J1ZmZlcnMuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFRE
cmF3QnVmZmVycy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFRUZXh0dXJlRmls
dGVyQW5pc290cm9waWMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFRUZXh0
dXJlRmlsdGVyQW5pc290cm9waWMuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VT
U3RhbmRhcmREZXJpdmF0aXZlcy5jcHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCShyZXZpc2lvbiAxNDQw
OTgpCisrKyBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3b3JraW5nIGNvcHkpCkBAIC00MDM4
LDYgKzQwMzgsNyBAQCBlbmFibGU/KFdFQkdMKSB7CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
U2hhZGVyLmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFNoYWRlclByZWNpc2lvbkZvcm1h
dC5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuaCBcCisgICAgICAg
IGh0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmggXAogICAgICAgICBodG1sL2NhbnZhcy9FWFRU
ZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1N0YW5k
YXJkRGVyaXZhdGl2ZXMuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5o
IFwKQEAgLTQwNzIsNiArNDA3Myw3IEBAIGVuYWJsZT8oV0VCR0wpIHsKICAgICAgICAgaHRtbC9j
YW52YXMvV2ViR0xTaGFkZXIuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xTaGFkZXJQ
cmVjaXNpb25Gb3JtYXQuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmpl
Y3QuY3BwIFwKKyAgICAgICAgaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuY3BwIFwKICAgICAg
ICAgaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcCBcCiAgICAgICAg
IGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIFwKICAgICAgICAgaHRtbC9j
YW52YXMvT0VTVGV4dHVyZUZsb2F0LmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lv
biAxNDQwOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkK
QEAgLTM2OSw2ICszNjksNyBAQAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0RhdGFWaWV3Lmlk
bCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRE9NUGF0aC5pZGwnLAorICAgICAgICAgICAg
J2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52
YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9j
YW52YXMvRmxvYXQzMkFycmF5LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRmxvYXQ2
NEFycmF5LmlkbCcsCkBAIC0zMzI3LDYgKzMzMjgsOCBAQAogICAgICAgICAgICAgJ2h0bWwvY2Fu
dmFzL0RhdGFWaWV3LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRGF0YVZpZXcuaCcs
CiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRE9NUGF0aC5oJywKKyAgICAgICAgICAgICdodG1s
L2NhbnZhcy9FWFREcmF3QnVmZmVycy5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0VY
VERyYXdCdWZmZXJzLmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0
ZXJBbmlzb3Ryb3BpYy5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0VYVFRleHR1cmVG
aWx0ZXJBbmlzb3Ryb3BpYy5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9PRVNTdGFuZGFy
ZERlcml2YXRpdmVzLmNwcCcsCkBAIC02MzgwLDYgKzYzODMsOCBAQAogICAgICAgICAgICAgJzwo
UFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFcnJvckNhbGxiYWNrLmgnLAog
ICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFcnJv
ckV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0Vycm9yRXZlbnQuaCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0VYVERyYXdCdWZmZXJzLmNwcCcsCisgICAgICAgICAgICAn
PChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0VYVERyYXdCdWZmZXJzLmgn
LAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNF
WFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1Rf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGlj
LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNFdmVudC5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xOTIx
LDYgKzE5MjEsOCBAQAogCQk2RUJGMEU1NTEyQTg5Mjk4MDBEQjE3MDkgLyogV2ViR0xFeHRlbnNp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFQkYw
RTUzMTJBODkyOTgwMERCMTcwOSAvKiBXZWJHTEV4dGVuc2lvbi5oICovOyB9OwogCQk2RUJGMEU3
NjEyQTk4Njg4MDBEQjE3MDkgLyogSlNPRVNUZXh0dXJlRmxvYXQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVCRjBFNzQxMkE5ODY4ODAwREIxNzA5
IC8qIEpTT0VTVGV4dHVyZUZsb2F0LmNwcCAqLzsgfTsKIAkJNkVCRjBFNzcxMkE5ODY4ODAwREIx
NzA5IC8qIEpTT0VTVGV4dHVyZUZsb2F0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2RUJGMEU3NTEyQTk4Njg4MDBEQjE3MDkgLyogSlNPRVNUZXh0dXJl
RmxvYXQuaCAqLzsgfTsKKwkJNkVCRjBFNzYxMkE5ODY4ODAwREIxNzBBIC8qIEpTRVhURHJhd0J1
ZmZlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkVCRjBFNzQxMkE5ODY4ODAwREIxNzBBIC8qIEpTRVhURHJhd0J1ZmZlcnMuY3BwICovOyB9Owor
CQk2RUJGMEU3NzEyQTk4Njg4MDBEQjE3MEEgLyogSlNFWFREcmF3QnVmZmVycy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVCRjBFNzUxMkE5ODY4ODAw
REIxNzBBIC8qIEpTRVhURHJhd0J1ZmZlcnMuaCAqLzsgfTsKIAkJNkVEODc4QzQxNDc0OTNGNDAw
NEMzNTk3IC8qIFJlbmRlclRhYmxlQ2FwdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUQ4NzhDMjE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVy
VGFibGVDYXB0aW9uLmNwcCAqLzsgfTsKIAkJNkVEODc4QzUxNDc0OTNGNDAwNEMzNTk3IC8qIFJl
bmRlclRhYmxlQ2FwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkVEODc4QzMxNDc0OTNGNDAwNEMzNTk3IC8qIFJlbmRlclRhYmxlQ2FwdGlvbi5o
ICovOyB9OwogCQk2RUU4QTc3MjEwRjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENvbnRleHRBdHRy
aWJ1dGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDZFRThBNzcwMTBGODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3Bw
ICovOyB9OwpAQCAtMzgzOSw2ICszODQxLDkgQEAKIAkJOUZGRTNFQTUxMUI1QTQzOTAwMzc4NzRF
IC8qIEpTTWVtb3J5SW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5RkZFM0VBMzExQjVBNDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmNwcCAq
LzsgfTsKIAkJOUZGRTNFQTYxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUZGRTNFQTQxMUI1QTQz
OTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5oICovOyB9OwogCQlBMDBCNzIxQTExREU2NDI4MDA4
QUI5RkYgLyogQ2hlY2tlZEludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTAwQjcyMTkxMURFNjQyNzAwOEFCOUZGIC8qIENoZWNrZWRJbnQuaCAqLzsg
fTsKKwkJQTAyNDU3NTExNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEwMjQ1NzRFMTZDRUFB
MjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5jcHAgKi87IH07CisJCUEwMjQ1NzUyMTZDRUFB
MjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTAyNDU3NEYxNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdC
dWZmZXJzLmggKi87IH07CisJCUEwMjQ1NzUzMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVm
ZmVycy5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEEwMjQ1NzUwMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5pZGwgKi87IH07CiAJ
CUEwN0QzMzU1MTUyQjYzMEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEwN0Qz
MzUzMTUyQjYzMEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcCAq
LzsgfTsKIAkJQTA3RDMzNTYxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNp
b25Gb3JtYXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEEwN0QzMzU0MTUyQjYzMEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0
LmggKi87IH07CiAJCUEwN0QzMzU4MTUyQjYzMkQwMDFCNjM5MyAvKiBXZWJHTFNoYWRlclByZWNp
c2lvbkZvcm1hdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTA3RDMzNTcxNTJCNjMyRDAwMUI2MzkzIC8qIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0
LmggKi87IH07CkBAIC05Mzg4LDYgKzkzOTMsOCBAQAogCQk2RUJGMEU1MzEyQTg5Mjk4MDBEQjE3
MDkgLyogV2ViR0xFeHRlbnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
V2ViR0xFeHRlbnNpb24uaDsgcGF0aCA9IGNhbnZhcy9XZWJHTEV4dGVuc2lvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2RUJGMEU3NDEyQTk4Njg4MDBEQjE3MDkgLyogSlNPRVNU
ZXh0dXJlRmxvYXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNP
RVNUZXh0dXJlRmxvYXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RUJGMEU3
NTEyQTk4Njg4MDBEQjE3MDkgLyogSlNPRVNUZXh0dXJlRmxvYXQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNPRVNUZXh0dXJlRmxvYXQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNkVCRjBFNzQxMkE5ODY4ODAwREIxNzBBIC8qIEpTRVhURHJhd0J1ZmZlcnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFWFREcmF3QnVmZmVy
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFQkYwRTc1MTJBOTg2ODgwMERC
MTcwQSAvKiBKU0VYVERyYXdCdWZmZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTRVhURHJhd0J1ZmZlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkVE
ODc4QzIxNDc0OTNGNDAwNEMzNTk3IC8qIFJlbmRlclRhYmxlQ2FwdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUYWJsZUNhcHRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RUQ4NzhDMzE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVu
ZGVyVGFibGVDYXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRl
clRhYmxlQ2FwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RUU4QTc3MDEw
RjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTMzOSw2ICsxMTM0Niw5IEBACiAJCTlG
RkUzRUEzMTFCNUE0MzkwMDM3ODc0RSAvKiBKU01lbW9yeUluZm8uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZW1vcnlJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOUZGRTNFQTQxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lbW9yeUluZm8uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTAwQjcyMTkxMURFNjQyNzAwOEFCOUZGIC8qIENoZWNr
ZWRJbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ2hlY2tlZEludC5oOyBw
YXRoID0gY2FudmFzL0NoZWNrZWRJbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QTAyNDU3NEUxNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEVYVERyYXdCdWZmZXJzLmNwcDsgcGF0aCA9IGNh
bnZhcy9FWFREcmF3QnVmZmVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEw
MjQ1NzRGMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBFWFREcmF3QnVmZmVycy5oOyBwYXRoID0gY2FudmFzL0VYVERy
YXdCdWZmZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEwMjQ1NzUwMTZDRUFB
MjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0g
RVhURHJhd0J1ZmZlcnMuaWRsOyBwYXRoID0gY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTA3RDMzNTMxNTJCNjMwRTAwMUI2MzkzIC8qIEpT
V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUEwN0QzMzU0MTUyQjYzMEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hh
ZGVyUHJlY2lzaW9uRm9ybWF0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTA3RDMzNTcxNTJCNjMyRDAwMUI2MzkzIC8qIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkdMU2hhZGVyUHJlY2lzaW9u
Rm9ybWF0Lmg7IHBhdGggPSBjYW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NzA5LDYgKzE1NzE5LDkgQEAKIAkJNDk0ODRG
QUUxMDJDRjAxRTAwMTg3REQzIC8qIGNhbnZhcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJQTAyNDU3NEUxNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdC
dWZmZXJzLmNwcCAqLywKKwkJCQlBMDI0NTc0RjE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1
ZmZlcnMuaCAqLywKKwkJCQlBMDI0NTc1MDE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZl
cnMuaWRsICovLAogCQkJCTQ5RUVDRENDMTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlci5p
ZGwgKi8sCiAJCQkJNDlFRUNEQzkxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVyVmlldy5p
ZGwgKi8sCiAJCQkJNkU0RTkxQTcxMEY3RkIzMTAwQTI3NzlDIC8qIENhbnZhc0NvbnRleHRBdHRy
aWJ1dGVzLmNwcCAqLywKQEAgLTE4OTc5LDYgKzE4OTkyLDggQEAKIAkJCQk3Njk0NTYzQjEyMTRE
OTdDMDAwN0NCQUUgLyogSlNET01Ub2tlbkxpc3QuaCAqLywKIAkJCQkyRTM3RTAwMzEyREJDNUE0
MDBBNkIyMzMgLyogSlNET01VUkwuY3BwICovLAogCQkJCTJFMzdFMDA0MTJEQkM1QTQwMEE2QjIz
MyAvKiBKU0RPTVVSTC5oICovLAorCQkJCTZFQkYwRTc0MTJBOTg2ODgwMERCMTcwQSAvKiBKU0VY
VERyYXdCdWZmZXJzLmNwcCAqLywKKwkJCQk2RUJGMEU3NTEyQTk4Njg4MDBEQjE3MEEgLyogSlNF
WFREcmF3QnVmZmVycy5oICovLAogCQkJCTc3Mjg2OTgxMTRGRDlBREEwMEY0ODREQyAvKiBKU0VY
VFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAgKi8sCiAJCQkJNzcyODY5ODIxNEZEOUFEQTAw
RjQ4NERDIC8qIEpTRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmggKi8sCiAJCQkJNDlFRUNF
RjQxMDUwNzBDNDAwMDk5RkFCIC8qIEpTRmxvYXQzMkFycmF5LmNwcCAqLywKQEAgLTI0OTMxLDYg
KzI0OTQ2LDcgQEAKIAkJCQlFMEZFRjM3MkIzN0M1M0VBQzFDMUZCRUUgLyogSlNFdmVudFNvdXJj
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUZDN0RDMjZDRkUyNTYzMjAwQjg1QUU0IC8qIEpTRXZl
bnRUYXJnZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMzMTRBQ0VDMTA4OTIwODYwMDBGMEU1NiAv
KiBKU0V4Y2VwdGlvbkJhc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTZFQkYwRTc3MTJBOTg2ODgw
MERCMTcwQSAvKiBKU0VYVERyYXdCdWZmZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NzI4Njk4
NDE0RkQ5QURBMDBGNDg0REMgLyogSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMDBGMDE1MEUwQTE4OTUwMEZEMDRFMyAvKiBKU0ZpbGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg5M0M0N0I4MTIzOEEwOTkwMDJCM0Q4NiAvKiBKU0ZpbGVDYWxsYmFj
ay5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjYyMiw2ICsyNjYzOCw3IEBACiAJCQkJRkQ1MzczNTMx
MzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUI4Q0Q0
NjE2RDA0NTkxMDAwRThDQzAgLyogU2VsZWN0b3JDaGVja2VyRmFzdFBhdGguaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5MTQwMjU3MTY4RTAyRUMwMDJENkM2QSAvKiBUaW1lbGluZVRyYWNlRXZlbnRQ
cm9jZXNzb3IuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBMDI0NTc1MjE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpAQCAtMjgyNjYsNiArMjgyODMsNyBAQAogCQkJCUM2QTcwMzMyNUM5RDBCNkNEQ0JDNEQ3
NyAvKiBKU0V2ZW50VGFyZ2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNjA5MDIwMEU5MUI4
RUMwMDBDNjhCNSAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTMzMTRBQ0VCMTA4OTIwODYwMDBGMEU1NiAvKiBKU0V4Y2VwdGlvbkJhc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJNkVCRjBFNzYxMkE5ODY4ODAwREIxNzBBIC8qIEpTRVhURHJhd0J1ZmZlcnMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzcyODY5ODMxNEZEOUFEQTAwRjQ4NERDIC8qIEpTRVhU
VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMDBGMDE0
MEUwQTE4OTUwMEZEMDRFMyAvKiBKU0ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODkzQzQ3
QjcxMjM4QTA5OTAwMkIzRDg2IC8qIEpTRmlsZUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMjk4MTcsNiArMjk4MzUsNyBAQAogCQkJCUZENTM3MzUyMTM3QjY1MTgwMDAwOERDRSAvKiBa
ZXJvUG9sZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MUI4Q0Q0NTE2RDA0NTkxMDAwRThDQzAg
LyogU2VsZWN0b3JDaGVja2VyRmFzdFBhdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDkxNDAy
NTYxNjhFMDJFODAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAgaW4g
U291cmNlcyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQTAyNDU3NTExNkNF
QUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSwxMCArMjksMTIgQEAKIAogI2luY2x1ZGUgIkpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0LmgiCiAKKyNpbmNsdWRlICJFWFREcmF3QnVmZmVycy5oIgogI2luY2x1ZGUgIkVYVFRl
eHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNp
bmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJKU0VYVERyYXdCdWZmZXJzLmgiCiAjaW5jbHVkZSAiSlNFWFRUZXh0dXJl
RmlsdGVyQW5pc290cm9waWMuaCIKICNpbmNsdWRlICJKU0Zsb2F0MzJBcnJheS5oIgogI2luY2x1
ZGUgIkpTSFRNTENhbnZhc0VsZW1lbnQuaCIKQEAgLTE5NCw2ICsxOTYsOCBAQCBzdGF0aWMgSlNW
YWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNECiAgICAgc3dpdGNoIChleHRlbnNpb24tPmdl
dE5hbWUoKSkgewogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMTG9zZUNvbnRleHROYW1l
OgogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdl
YkdMTG9zZUNvbnRleHQqPihleHRlbnNpb24pKTsKKyAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpF
WFREcmF3QnVmZmVyc05hbWU6CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgc3RhdGljX2Nhc3Q8RVhURHJhd0J1ZmZlcnMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdl
YkdMRXh0ZW5zaW9uOjpFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWNOYW1lOgogICAgICAgICBy
ZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVFRleHR1cmVGaWx0
ZXJBbmlzb3Ryb3BpYyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9F
U1N0YW5kYXJkRGVyaXZhdGl2ZXNOYW1lOgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhCaW5kaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhCaW5kaW5nLmgJKHJldmlzaW9uIDE0NDA5OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4QmluZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDMsNiArMjQzLDM4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2OEFycmF5KFBhc3NS
ZWZQdHI8RE9NU3RyaW5nTGlzdD4sIHY4OjpJc29sYXRlKik7CiAKKyAgICAvLyBDb252ZXJ0IGEg
dmFsdWUgdG8gYSAzMi1iaXQgaW50ZWdlci4gVGhlIGNvbnZlcnNpb24gZmFpbHMgaWYgdGhlCisg
ICAgLy8gdmFsdWUgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBhbiBpbnRlZ2VyIG9yIGNvbnZlcnRz
IHRvIG5hbiBvciB0byBhbiBpbmZpbml0eS4KKyAgICBpbnQgdG9JbnQzMih2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4sIGJvb2wmIG9rKTsKKworICAgIC8vIENvbnZlcnQgYSB2YWx1ZSB0byBhIDMyLWJp
dCBpbnRlZ2VyIGFzc3VtaW5nIHRoZSBjb252ZXJzaW9uIGNhbm5vdCBmYWlsLgorICAgIGlubGlu
ZSBpbnQgdG9JbnQzMih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCisgICAgeworICAgICAg
ICBib29sIG9rOworICAgICAgICByZXR1cm4gdG9JbnQzMih2YWx1ZSwgb2spOworICAgIH0KKwor
ICAgIC8vIENvbnZlcnQgYSB2YWx1ZSB0byBhIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyLiBUaGUg
Y29udmVyc2lvbiBmYWlscyBpZiB0aGUKKyAgICAvLyB2YWx1ZSBjYW5ub3QgYmUgY29udmVydGVk
IHRvIGFuIHVuc2lnbmVkIGludGVnZXIgb3IgY29udmVydHMgdG8gbmFuIG9yIHRvIGFuIGluZmlu
aXR5LgorICAgIHVpbnQzMl90IHRvVUludDMyKHY4OjpIYW5kbGU8djg6OlZhbHVlPiwgYm9vbCYg
b2spOworCisgICAgLy8gQ29udmVydCBhIHZhbHVlIHRvIGEgMzItYml0IHVuc2lnbmVkIGludGVn
ZXIgYXNzdW1pbmcgdGhlIGNvbnZlcnNpb24gY2Fubm90IGZhaWwuCisgICAgaW5saW5lIHVpbnQz
Ml90IHRvVUludDMyKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKKyAgICB7CisgICAgICAg
IGJvb2wgb2s7CisgICAgICAgIHJldHVybiB0b1VJbnQzMih2YWx1ZSwgb2spOworICAgIH0KKwor
ICAgIGlubGluZSBmbG9hdCB0b0Zsb2F0KHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZS0+TnVtYmVyVmFsdWUo
KSk7CisgICAgfQorCisgICAgaW5saW5lIGxvbmcgbG9uZyB0b0ludDY0KHY4OjpMb2NhbDx2ODo6
VmFsdWU+IHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGxvbmcgbG9u
Zz4odmFsdWUtPkludGVnZXJWYWx1ZSgpKTsKKyAgICB9CisKICAgICB0ZW1wbGF0ZTxjbGFzcyBU
PiBzdHJ1Y3QgTmF0aXZlVmFsdWVUcmFpdHM7CiAKICAgICB0ZW1wbGF0ZTw+CkBAIC0yNTQsNiAr
Mjg2LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB9OwogCiAgICAgdGVtcGxhdGU8Pgor
ICAgIHN0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czx1bnNpZ25lZD4geworICAgICAgICBzdGF0aWMg
aW5saW5lIHVuc2lnbmVkIG5hdGl2ZVZhbHVlKGNvbnN0IHY4OjpIYW5kbGU8djg6OlZhbHVlPiYg
dmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0b1VJbnQzMih2YWx1ZSk7Cisg
ICAgICAgIH0KKyAgICB9OworCisgICAgdGVtcGxhdGU8PgogICAgIHN0cnVjdCBOYXRpdmVWYWx1
ZVRyYWl0czxmbG9hdD4gewogICAgICAgICBzdGF0aWMgaW5saW5lIGZsb2F0IG5hdGl2ZVZhbHVl
KGNvbnN0IHY4OjpIYW5kbGU8djg6OlZhbHVlPiYgdmFsdWUpCiAgICAgICAgIHsKQEAgLTM0OCwz
OCArMzg4LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgUGFzc1JlZlB0cjxOb2RlRmls
dGVyPiB0b05vZGVGaWx0ZXIodjg6OkhhbmRsZTx2ODo6VmFsdWU+KTsKIAotICAgIC8vIENvbnZl
cnQgYSB2YWx1ZSB0byBhIDMyLWJpdCBpbnRlZ2VyLiAgVGhlIGNvbnZlcnNpb24gZmFpbHMgaWYg
dGhlCi0gICAgLy8gdmFsdWUgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBhbiBpbnRlZ2VyIG9yIGNv
bnZlcnRzIHRvIG5hbiBvciB0byBhbiBpbmZpbml0eS4KLSAgICBpbnQgdG9JbnQzMih2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIGJvb2wmIG9rKTsKLQotICAgIC8vIENvbnZlcnQgYSB2YWx1
ZSB0byBhIDMyLWJpdCBpbnRlZ2VyIGFzc3VtaW5nIHRoZSBjb252ZXJzaW9uIGNhbm5vdCBmYWls
LgotICAgIGlubGluZSBpbnQgdG9JbnQzMih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCi0g
ICAgewotICAgICAgICBib29sIG9rOwotICAgICAgICByZXR1cm4gdG9JbnQzMih2YWx1ZSwgb2sp
OwotICAgIH0KLQotICAgIC8vIENvbnZlcnQgYSB2YWx1ZSB0byBhIDMyLWJpdCB1bnNpZ25lZCBp
bnRlZ2VyLiAgVGhlIGNvbnZlcnNpb24gZmFpbHMgaWYgdGhlCi0gICAgLy8gdmFsdWUgY2Fubm90
IGJlIGNvbnZlcnRlZCB0byBhbiB1bnNpZ25lZCBpbnRlZ2VyIG9yIGNvbnZlcnRzIHRvIG5hbiBv
ciB0byBhbiBpbmZpbml0eS4KLSAgICB1aW50MzJfdCB0b1VJbnQzMih2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gdmFsdWUsIGJvb2wmIG9rKTsKLQotICAgIC8vIENvbnZlcnQgYSB2YWx1ZSB0byBhIDMy
LWJpdCB1bnNpZ25lZCBpbnRlZ2VyIGFzc3VtaW5nIHRoZSBjb252ZXJzaW9uIGNhbm5vdCBmYWls
LgotICAgIGlubGluZSB1aW50MzJfdCB0b1VJbnQzMih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFs
dWUpCi0gICAgewotICAgICAgICBib29sIG9rOwotICAgICAgICByZXR1cm4gdG9VSW50MzIodmFs
dWUsIG9rKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgZmxvYXQgdG9GbG9hdCh2ODo6TG9jYWw8djg6
OlZhbHVlPiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4o
dmFsdWUtPk51bWJlclZhbHVlKCkpOwotICAgIH0KLQotICAgIGlubGluZSBsb25nIGxvbmcgdG9J
bnQ2NCh2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxsb25nIGxvbmc+KHZhbHVlLT5JbnRlZ2VyVmFsdWUoKSk7Ci0gICAgfQotCiAg
ICAgaW5saW5lIGJvb2wgaXNVbmRlZmluZWRPck51bGwodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZh
bHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIHZhbHVlLT5Jc051bGwoKSB8fCB2YWx1ZS0+SXNV
bmRlZmluZWQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdl
YkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAko
cmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiAr
MzgsNyBAQAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiVjhBcnJheUJ1
ZmZlclZpZXcuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOEVYVERyYXdC
dWZmZXJzLmgiCiAjaW5jbHVkZSAiVjhFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCIKICNp
bmNsdWRlICJWOEZsb2F0MzJBcnJheS5oIgogI2luY2x1ZGUgIlY4SFRNTENhbnZhc0VsZW1lbnQu
aCIKQEAgLTE3Niw2ICsxNzcsMTAgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4
T2JqZWN0KAogICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PFdlYkdM
TG9zZUNvbnRleHQqPihleHRlbnNpb24pLCBjb250ZXh0T2JqZWN0LCBpc29sYXRlKTsKICAgICAg
ICAgcmVmZXJlbmNlTmFtZSA9ICJ3ZWJHTExvc2VDb250ZXh0TmFtZSI7CiAgICAgICAgIGJyZWFr
OworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVERyYXdCdWZmZXJzTmFtZToKKyAgICAgICAg
ZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxFWFREcmF3QnVmZmVycyo+KGV4dGVu
c2lvbiksIGNvbnRleHRPYmplY3QsIGlzb2xhdGUpOworICAgICAgICByZWZlcmVuY2VOYW1lID0g
ImV4dERyYXdCdWZmZXJzTmFtZSI7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViR0xFeHRl
bnNpb246OkVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpY05hbWU6CiAgICAgICAgIGV4dGVuc2lv
bk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKj4o
ZXh0ZW5zaW9uKSwgY29udGV4dE9iamVjdCwgaXNvbGF0ZSk7CiAgICAgICAgIHJlZmVyZW5jZU5h
bWUgPSAiZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljTmFtZSI7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuY3BwCShyZXZpc2lvbiAwKQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuY3BwCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5B
QkxFKFdFQkdMKQorCisjaW5jbHVkZSAiRVhURHJhd0J1ZmZlcnMuaCIKKworI2luY2x1ZGUgIkV4
dGVuc2lvbnMzRC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0VYVERyYXdCdWZmZXJzOjpF
WFREcmF3QnVmZmVycyhXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCisgICAgOiBXZWJH
TEV4dGVuc2lvbihjb250ZXh0KQoreworfQorCitFWFREcmF3QnVmZmVyczo6fkVYVERyYXdCdWZm
ZXJzKCkKK3sKK30KKworV2ViR0xFeHRlbnNpb246OkV4dGVuc2lvbk5hbWUgRVhURHJhd0J1ZmZl
cnM6OmdldE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBXZWJHTEV4dGVuc2lvbjo6RVhURHJh
d0J1ZmZlcnNOYW1lOworfQorCitQYXNzT3duUHRyPEVYVERyYXdCdWZmZXJzPiBFWFREcmF3QnVm
ZmVyczo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBFWFRE
cmF3QnVmZmVycyogeCA9IG5ldyBFWFREcmF3QnVmZmVycyhjb250ZXh0KTsKKyAgICByZXR1cm4g
YWRvcHRQdHIoeCk7Cit9CisKKy8vIHN0YXRpYworYm9vbCBFWFREcmF3QnVmZmVyczo6c3VwcG9y
dGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBFeHRlbnNpb25zM0Qq
IGV4dGVuc2lvbnMgPSBjb250ZXh0LT5ncmFwaGljc0NvbnRleHQzRCgpLT5nZXRFeHRlbnNpb25z
KCk7CisgICAgcmV0dXJuIGV4dGVuc2lvbnMtPnN1cHBvcnRzKCJHTF9FWFRfZHJhd19idWZmZXJz
Iik7Cit9CisKK3ZvaWQgRVhURHJhd0J1ZmZlcnM6OmRyYXdCdWZmZXJzRVhUKGNvbnN0IFZlY3Rv
cjxHQzNEZW51bT4mIGJ1ZmZlcnMpCit7CisgICAgaWYgKG1fY29udGV4dC0+aXNDb250ZXh0TG9z
dCgpKQorICAgICAgICByZXR1cm47CisgICAgR0MzRHNpemVpIG4gPSBidWZmZXJzLnNpemUoKTsK
KyAgICBjb25zdCBHQzNEZW51bSogYnVmcyA9IGJ1ZmZlcnMuZGF0YSgpOworICAgIGlmICghbV9j
b250ZXh0LT5tX2ZyYW1lYnVmZmVyQmluZGluZykgeworICAgICAgICBpZiAobiAhPSAxKSB7Cisg
ICAgICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNE
OjpJTlZBTElEX1ZBTFVFLCAiZHJhd0J1ZmZlcnNFWFQiLCAibW9yZSB0aGFuIG9uZSBidWZmZXIi
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAoYnVmc1swXSAh
PSBHcmFwaGljc0NvbnRleHQzRDo6QkFDSyAmJiBidWZzWzBdICE9IEdyYXBoaWNzQ29udGV4dDNE
OjpOT05FKSB7CisgICAgICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgImRyYXdCdWZmZXJzRVhUIiwgIkJBQ0sg
b3IgTk9ORSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8vIEJl
Y2F1c2UgdGhlIGJhY2tidWZmZXIgaXMgc2ltdWxhdGVkIHdlIG5lZWQgdG8gY2hhbmdlIEJBQ0sg
dG8gQ09MT1JfQVRUQUNITUVOVDAKKyAgICAgICAgR0MzRGVudW0gdmFsdWUgPSAoYnVmc1swXSA9
PSBHcmFwaGljc0NvbnRleHQzRDo6QkFDSykgPyBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRU
QUNITUVOVDAgOiBHcmFwaGljc0NvbnRleHQzRDo6Tk9ORTsKKyAgICAgICAgbV9jb250ZXh0LT5n
cmFwaGljc0NvbnRleHQzRCgpLT5nZXRFeHRlbnNpb25zKCktPmRyYXdCdWZmZXJzRVhUKDEsICZ2
YWx1ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG4gPiBtX2NvbnRleHQtPmdldE1heERy
YXdCdWZmZXJzKCkpIHsKKyAgICAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3Io
R3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUsICJkcmF3QnVmZmVyc0VYVCIsICJtb3Jl
IHRoYW4gbWF4IGRyYXcgYnVmZmVycyIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgICAgIGZvciAoR0MzRHNpemVpIGkgPSAwOyBpIDwgbjsgKytpKSB7CisgICAgICAgICAg
ICBpZiAoYnVmc1tpXSAhPSBHcmFwaGljc0NvbnRleHQzRDo6Tk9ORSAmJiBidWZzW2ldICE9IHN0
YXRpY19jYXN0PEdDM0RlbnVtPihFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQwX0VYVCAr
IGkpKSB7CisgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sICJkcmF3QnVmZmVyc0VYVCIsICJDT0xP
Ul9BVFRBQ0hNRU5UaV9FWFQgb3IgTk9ORSIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBtX2NvbnRleHQtPm1fZnJhbWVidWZmZXJC
aW5kaW5nLT5kcmF3QnVmZmVycyhidWZmZXJzKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKClByb3BlcnR5IGNoYW5nZXMgb246
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmNwcApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9FWFREcmF3QnVmZmVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBFWFREcmF3QnVmZmVyc19oCisjZGVmaW5lIEVYVERyYXdCdWZm
ZXJzX2gKKworI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBFWFREcmF3QnVmZmVycyA6
IHB1YmxpYyBXZWJHTEV4dGVuc2lvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8
RVhURHJhd0J1ZmZlcnM+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKKworICAgIHN0
YXRpYyBib29sIHN1cHBvcnRlZChXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKKworICAgIHZpcnR1
YWwgfkVYVERyYXdCdWZmZXJzKCk7CisgICAgdmlydHVhbCBFeHRlbnNpb25OYW1lIGdldE5hbWUo
KSBjb25zdDsKKworICAgIHZvaWQgZHJhd0J1ZmZlcnNFWFQoY29uc3QgVmVjdG9yPEdDM0RlbnVt
PiYgYnVmZmVycyk7CisKK3ByaXZhdGU6CisgICAgRVhURHJhd0J1ZmZlcnMoV2ViR0xSZW5kZXJp
bmdDb250ZXh0Kik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
WFREcmF3QnVmZmVyc19oCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9FWFREcmF3QnVmZmVycy5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUK
ICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJz
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVm
ZmVycy5pZGwJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFRE
cmF3QnVmZmVycy5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCit0eXBl
ZGVmIHVuc2lnbmVkIGxvbmcgR0xlbnVtOworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisg
ICAgSlNHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxDb250ZXh0LAorICAgIE9taXRDb25zdHJ1Y3Rv
ciwKKyAgICBEb05vdENoZWNrQ29uc3RhbnRzCitdIGludGVyZmFjZSBFWFREcmF3QnVmZmVycyB7
CisgICAgY29uc3QgR0xlbnVtIENPTE9SX0FUVEFDSE1FTlQwX0VYVCA9IDB4OENFMDsKKyAgICBj
b25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDFfRVhUID0gMHg4Q0UxOworICAgIGNvbnN0IEdM
ZW51bSBDT0xPUl9BVFRBQ0hNRU5UMl9FWFQgPSAweDhDRTI7CisgICAgY29uc3QgR0xlbnVtIENP
TE9SX0FUVEFDSE1FTlQzX0VYVCA9IDB4OENFMzsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRU
QUNITUVOVDRfRVhUID0gMHg4Q0U0OworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5U
NV9FWFQgPSAweDhDRTU7CisgICAgY29uc3QgR0xlbnVtIENPTE9SX0FUVEFDSE1FTlQ2X0VYVCA9
IDB4OENFNjsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDdfRVhUID0gMHg4Q0U3
OworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UOF9FWFQgPSAweDhDRTg7CisgICAg
Y29uc3QgR0xlbnVtIENPTE9SX0FUVEFDSE1FTlQ5X0VYVCA9IDB4OENFOTsKKyAgICBjb25zdCBH
TGVudW0gQ09MT1JfQVRUQUNITUVOVDEwX0VYVCA9IDB4OENFQTsKKyAgICBjb25zdCBHTGVudW0g
Q09MT1JfQVRUQUNITUVOVDExX0VYVCA9IDB4OENFQjsKKyAgICBjb25zdCBHTGVudW0gQ09MT1Jf
QVRUQUNITUVOVDEyX0VYVCA9IDB4OENFQzsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNI
TUVOVDEzX0VYVCA9IDB4OENFRDsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDE0
X0VYVCA9IDB4OENFRTsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDE1X0VYVCA9
IDB4OENFRjsKKworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjBfRVhUID0gMHg4ODI1Owor
ICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjFfRVhUID0gMHg4ODI2OworICAgIGNvbnN0IEdM
ZW51bSBEUkFXX0JVRkZFUjJfRVhUID0gMHg4ODI3OworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JV
RkZFUjNfRVhUID0gMHg4ODI4OworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjRfRVhUID0g
MHg4ODI5OworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjVfRVhUID0gMHg4ODJBOworICAg
IGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjZfRVhUID0gMHg4ODJCOworICAgIGNvbnN0IEdMZW51
bSBEUkFXX0JVRkZFUjdfRVhUID0gMHg4ODJDOworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZF
UjhfRVhUID0gMHg4ODJEOworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjlfRVhUID0gMHg4
ODJFOworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjEwX0VYVCA9IDB4ODgyRjsKKyAgICBj
b25zdCBHTGVudW0gRFJBV19CVUZGRVIxMV9FWFQgPSAweDg4MzA7CisgICAgY29uc3QgR0xlbnVt
IERSQVdfQlVGRkVSMTJfRVhUID0gMHg4ODMxOworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZF
UjEzX0VYVCA9IDB4ODgzMjsKKyAgICBjb25zdCBHTGVudW0gRFJBV19CVUZGRVIxNF9FWFQgPSAw
eDg4MzM7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSMTVfRVhUID0gMHg4ODM0OworCisg
ICAgY29uc3QgR0xlbnVtIE1BWF9DT0xPUl9BVFRBQ0hNRU5UU19FWFQgPSAweDhDREY7CisgICAg
Y29uc3QgR0xlbnVtIE1BWF9EUkFXX0JVRkZFUlNfRVhUID0gMHg4ODI0OworCisgICAgdm9pZCBk
cmF3QnVmZmVyc0VYVChpbiBzZXF1ZW5jZTxHTGVudW0+IGJ1ZmZlcnMpOworfTsKClByb3BlcnR5
IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlk
bApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgJKHJldmlzaW9uIDE0NDA5OCkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM2LDYgKzM2LDcgQEAgcHVibGljOgogICAgIC8vIEV4dGVuc2lvbiBuYW1lcyBh
cmUgbmVlZGVkIHRvIHByb3Blcmx5IHdyYXAgaW5zdGFuY2VzIGluIEphdmFTY3JpcHQgb2JqZWN0
cy4KICAgICBlbnVtIEV4dGVuc2lvbk5hbWUgewogICAgICAgICBXZWJHTExvc2VDb250ZXh0TmFt
ZSwKKyAgICAgICAgRVhURHJhd0J1ZmZlcnNOYW1lLAogICAgICAgICBFWFRUZXh0dXJlRmlsdGVy
QW5pc290cm9waWNOYW1lLAogICAgICAgICBPRVNUZXh0dXJlRmxvYXROYW1lLAogICAgICAgICBP
RVNTdGFuZGFyZERlcml2YXRpdmVzTmFtZSwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCShyZXZpc2lvbiAxNDQwOTgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjksNiArMjksOCBAQAogCiAjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgogCisj
aW5jbHVkZSAiRVhURHJhd0J1ZmZlcnMuaCIKKyNpbmNsdWRlICJFeHRlbnNpb25zM0QuaCIKICNp
bmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29u
dGV4dC5oIgogCkBAIC0yOTIsNiArMjk0LDcgQEAgdm9pZCBXZWJHTEZyYW1lYnVmZmVyOjpzZXRB
dHRhY2htZW50Rm9yQgogICAgICAgICByZXR1cm47CiAgICAgaWYgKHRleHR1cmUgJiYgdGV4dHVy
ZS0+b2JqZWN0KCkpIHsKICAgICAgICAgbV9hdHRhY2htZW50cy5hZGQoYXR0YWNobWVudCwgV2Vi
R0xUZXh0dXJlQXR0YWNobWVudDo6Y3JlYXRlKHRleHR1cmUsIHRleFRhcmdldCwgbGV2ZWwpKTsK
KyAgICAgICAgZHJhd0J1ZmZlcnNJZk5lY2Vzc2FyeShmYWxzZSk7CiAgICAgICAgIHRleHR1cmUt
Pm9uQXR0YWNoZWQoKTsKICAgICB9CiB9CkBAIC0zMDQsNiArMzA3LDcgQEAgdm9pZCBXZWJHTEZy
YW1lYnVmZmVyOjpzZXRBdHRhY2htZW50Rm9yQgogICAgICAgICByZXR1cm47CiAgICAgaWYgKHJl
bmRlcmJ1ZmZlciAmJiByZW5kZXJidWZmZXItPm9iamVjdCgpKSB7CiAgICAgICAgIG1fYXR0YWNo
bWVudHMuYWRkKGF0dGFjaG1lbnQsIFdlYkdMUmVuZGVyYnVmZmVyQXR0YWNobWVudDo6Y3JlYXRl
KHJlbmRlcmJ1ZmZlcikpOworICAgICAgICBkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5KGZhbHNlKTsK
ICAgICAgICAgcmVuZGVyYnVmZmVyLT5vbkF0dGFjaGVkKCk7CiAgICAgfQogfQpAQCAtMzQwLDYg
KzM0NCw3IEBAIHZvaWQgV2ViR0xGcmFtZWJ1ZmZlcjo6cmVtb3ZlQXR0YWNobWVudEYKICAgICBp
ZiAoYXR0YWNobWVudE9iamVjdCkgewogICAgICAgICBhdHRhY2htZW50T2JqZWN0LT5vbkRldGFj
aGVkKGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKSk7CiAgICAgICAgIG1fYXR0YWNobWVu
dHMucmVtb3ZlKGF0dGFjaG1lbnQpOworICAgICAgICBkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5KGZh
bHNlKTsKICAgICAgICAgc3dpdGNoIChhdHRhY2htZW50KSB7CiAgICAgICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVDoKICAgICAgICAgICAgIGF0dGFj
aChHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQVRUQUNITUVOVCwgR3JhcGhpY3NDb250ZXh0M0Q6
OkRFUFRIX0FUVEFDSE1FTlQpOwpAQCAtNTg1LDYgKzU5MCwzOSBAQCBib29sIFdlYkdMRnJhbWVi
dWZmZXI6OmlzQm91bmQoKSBjb25zdAogICAgIHJldHVybiAoY29udGV4dCgpLT5tX2ZyYW1lYnVm
ZmVyQmluZGluZy5nZXQoKSA9PSB0aGlzKTsKIH0KIAordm9pZCBXZWJHTEZyYW1lYnVmZmVyOjpk
cmF3QnVmZmVycyhjb25zdCBWZWN0b3I8R0MzRGVudW0+JiBidWZzKQoreworICAgIG1fZHJhd0J1
ZmZlcnMgPSBidWZzOworICAgIG1fZmlsdGVyZWREcmF3QnVmZmVycy5yZXNpemUobV9kcmF3QnVm
ZmVycy5zaXplKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9maWx0ZXJlZERyYXdC
dWZmZXJzLnNpemUoKTsgKytpKQorICAgICAgICBtX2ZpbHRlcmVkRHJhd0J1ZmZlcnNbaV0gPSBH
cmFwaGljc0NvbnRleHQzRDo6Tk9ORTsKKyAgICBkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5KHRydWUp
OworfQorCit2b2lkIFdlYkdMRnJhbWVidWZmZXI6OmRyYXdCdWZmZXJzSWZOZWNlc3NhcnkoYm9v
bCBmb3JjZSkKK3sKKyAgICBpZiAoIWNvbnRleHQoKS0+bV9leHREcmF3QnVmZmVycykKKyAgICAg
ICAgcmV0dXJuOworICAgIGJvb2wgcmVzZXQgPSBmb3JjZTsKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG1fZHJhd0J1ZmZlcnMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgaWYgKG1fZHJhd0J1
ZmZlcnNbaV0gIT0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUgJiYgZ2V0QXR0YWNobWVudChtX2Ry
YXdCdWZmZXJzW2ldKSkgeworICAgICAgICAgICAgaWYgKG1fZmlsdGVyZWREcmF3QnVmZmVyc1tp
XSAhPSBtX2RyYXdCdWZmZXJzW2ldKSB7CisgICAgICAgICAgICAgICAgbV9maWx0ZXJlZERyYXdC
dWZmZXJzW2ldID0gbV9kcmF3QnVmZmVyc1tpXTsKKyAgICAgICAgICAgICAgICByZXNldCA9IHRy
dWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAobV9m
aWx0ZXJlZERyYXdCdWZmZXJzW2ldICE9IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKSB7CisgICAg
ICAgICAgICAgICAgbV9maWx0ZXJlZERyYXdCdWZmZXJzW2ldID0gR3JhcGhpY3NDb250ZXh0M0Q6
Ok5PTkU7CisgICAgICAgICAgICAgICAgcmVzZXQgPSB0cnVlOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgfQorICAgIGlmIChyZXNldCkgeworICAgICAgICBjb250ZXh0KCktPmdyYXBo
aWNzQ29udGV4dDNEKCktPmdldEV4dGVuc2lvbnMoKS0+ZHJhd0J1ZmZlcnNFWFQoCisgICAgICAg
ICAgICBtX2ZpbHRlcmVkRHJhd0J1ZmZlcnMuc2l6ZSgpLCBtX2ZpbHRlcmVkRHJhd0J1ZmZlcnMu
ZGF0YSgpKTsKKyAgICB9Cit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmgJKHJldmlz
aW9uIDE0NDA5OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZm
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtOTUsNiArOTUsOSBAQCBwdWJsaWM6CiAKICAgICBib29s
IGhhc1N0ZW5jaWxCdWZmZXIoKSBjb25zdDsKIAorICAgIC8vIFdyYXBwZXIgZm9yIGRyYXdCdWZm
ZXJzRVhUL2RyYXdCdWZmZXJzQVJCIHRvIHdvcmsgYXJvdW5kIGEgZHJpdmVyIGJ1Zy4KKyAgICB2
b2lkIGRyYXdCdWZmZXJzKGNvbnN0IFZlY3RvcjxHQzNEZW51bT4mIGJ1ZnMpOworCiBwcm90ZWN0
ZWQ6CiAgICAgV2ViR0xGcmFtZWJ1ZmZlcihXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKIApAQCAt
MTE0LDExICsxMTcsMTcgQEAgcHJpdmF0ZToKICAgICAvLyBhdHRhY2ggJ2F0dGFjaG1lbnQnIGF0
ICdhdHRhY2htZW50UG9pbnQnLgogICAgIHZvaWQgYXR0YWNoKEdDM0RlbnVtIGF0dGFjaG1lbnQs
IEdDM0RlbnVtIGF0dGFjaG1lbnRQb2ludCk7CiAKKyAgICAvLyBDaGVjayBpZiBhIG5ldyBkcmF3
QnVmZmVycyBjYWxsIHNob3VsZCBiZSBpc3N1ZWQuIFRoaXMgaXMgY2FsbGVkIHdoZW4gd2UgYWRk
IG9yIHJlbW92ZSBhbiBhdHRhY2htZW50LgorICAgIHZvaWQgZHJhd0J1ZmZlcnNJZk5lY2Vzc2Fy
eShib29sIGZvcmNlKTsKKwogICAgIHR5cGVkZWYgV1RGOjpIYXNoTWFwPEdDM0RlbnVtLCBSZWZQ
dHI8V2ViR0xBdHRhY2htZW50PiA+IEF0dGFjaG1lbnRNYXA7CiAKICAgICBBdHRhY2htZW50TWFw
IG1fYXR0YWNobWVudHM7CiAKICAgICBib29sIG1faGFzRXZlckJlZW5Cb3VuZDsKKworICAgIFZl
Y3RvcjxHQzNEZW51bT4gbV9kcmF3QnVmZmVyczsKKyAgICBWZWN0b3I8R0MzRGVudW0+IG1fZmls
dGVyZWREcmF3QnVmZmVyczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
LmNwcAkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAog
I2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2hlY2tlZEludC5oIgogI2luY2x1
ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkVYVERyYXdCdWZmZXJzLmgiCiAjaW5jbHVkZSAi
RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5o
IgogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgpAQCAtNTM4LDYgKzUzOSwxMCBAQCB2b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6ZU5lCiAgICAgbV9tYXhSZW5kZXJidWZmZXJT
aXplID0gMDsKICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KEdyYXBoaWNzQ29udGV4dDNEOjpN
QVhfUkVOREVSQlVGRkVSX1NJWkUsICZtX21heFJlbmRlcmJ1ZmZlclNpemUpOwogCisgICAgLy8g
VGhlc2UgdHdvIHZhbHVlcyBmcm9tIEVYVF9kcmF3X2J1ZmZlcnMgYXJlIGxhemlseSBxdWVyaWVk
LgorICAgIG1fbWF4RHJhd0J1ZmZlcnMgPSAwOworICAgIG1fbWF4Q29sb3JBdHRhY2htZW50cyA9
IDA7CisKICAgICBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlP
YmplY3RPRVM6OmNyZWF0ZSh0aGlzLCBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpWYW9UeXBl
RGVmYXVsdCk7CiAgICAgYWRkQ29udGV4dE9iamVjdChtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVj
dC5nZXQoKSk7CiAgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0ID0gbV9kZWZhdWx0VmVydGV4
QXJyYXlPYmplY3Q7CkBAIC0yMTUzLDEyICsyMTU4LDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OmZyYW1lYnVmZmVyUgogICAgICAgICBtX2NvbnRleHQtPmZyYW1lYnVmZmVyUmVuZGVy
YnVmZmVyKHRhcmdldCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0FUVEFDSE1FTlQsIHJlbmRl
cmJ1ZmZlcnRhcmdldCwgYnVmZmVyT2JqZWN0KTsKICAgICAgICAgbV9jb250ZXh0LT5mcmFtZWJ1
ZmZlclJlbmRlcmJ1ZmZlcih0YXJnZXQsIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0FUVEFD
SE1FTlQsIHJlbmRlcmJ1ZmZlcnRhcmdldCwgYnVmZmVyT2JqZWN0KTsKICAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQVRUQUNITUVOVDoKLSAgICAgICAg
bV9jb250ZXh0LT5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcih0YXJnZXQsIGF0dGFjaG1lbnQsIHJl
bmRlcmJ1ZmZlcnRhcmdldCwgYnVmZmVyT2JqZWN0KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9BVFRBQ0hNRU5UOgotICAgICAgICBtX2NvbnRl
eHQtPmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKHRhcmdldCwgYXR0YWNobWVudCwgcmVuZGVyYnVm
ZmVydGFyZ2V0LCBidWZmZXJPYmplY3QpOwotICAgICAgICBicmVhazsKICAgICBkZWZhdWx0Ogog
ICAgICAgICBtX2NvbnRleHQtPmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKHRhcmdldCwgYXR0YWNo
bWVudCwgcmVuZGVyYnVmZmVydGFyZ2V0LCBidWZmZXJPYmplY3QpOwogICAgIH0KQEAgLTI0MjYs
NiArMjQyNSwxMyBAQCBXZWJHTEV4dGVuc2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnCiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEZXB0aFRleHR1cmUuZ2V0KCk7CiAgICAg
fQorICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiRVhUX2RyYXdfYnVmZmVycyIpICYm
IEVYVERyYXdCdWZmZXJzOjpzdXBwb3J0ZWQodGhpcykpIHsKKyAgICAgICAgaWYgKCFtX2V4dERy
YXdCdWZmZXJzKSB7CisgICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+ZW5z
dXJlRW5hYmxlZCgiR0xfRVhUX2RyYXdfYnVmZmVycyIpOworICAgICAgICAgICAgbV9leHREcmF3
QnVmZmVycyA9IEVYVERyYXdCdWZmZXJzOjpjcmVhdGUodGhpcyk7CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIG1fZXh0RHJhd0J1ZmZlcnMuZ2V0KCk7CisgICAgfQogICAgIGlmIChhbGxvd1By
aXZpbGVnZWRFeHRlbnNpb25zKCkpIHsKICAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5h
bWUsICJXRUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIikpIHsKICAgICAgICAgICAgIGlmICghbV93
ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQpAQCAtMjcwOSw2ICsyNzE1LDUwIEBAIFdlYkdMR2V0SW5m
byBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFAKICAgICAgICAgICAgIHJldHVybiBnZXRVbnNp
Z25lZEludFBhcmFtZXRlcihFeHRlbnNpb25zM0Q6Ok1BWF9URVhUVVJFX01BWF9BTklTT1RST1BZ
X0VYVCk7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZB
TElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgRVhUX3Rl
eHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIG5vdCBlbmFibGVkIik7CiAgICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oKTsKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFYX0NPTE9SX0FUVEFDSE1F
TlRTX0VYVDogLy8gRVhUX2RyYXdfYnVmZmVycyBCRUdJTgorICAgICAgICBpZiAobV9leHREcmF3
QnVmZmVycykKKyAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oZ2V0TWF4Q29sb3JBdHRh
Y2htZW50cygpKTsKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBF
WFRfZHJhd19idWZmZXJzIG5vdCBlbmFibGVkIik7CisgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oKTsKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFYX0RSQVdfQlVGRkVSU19FWFQ6CisgICAg
ICAgIGlmIChtX2V4dERyYXdCdWZmZXJzKQorICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhnZXRNYXhEcmF3QnVmZmVycygpKTsKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhp
Y3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFt
ZXRlciBuYW1lLCBFWFRfZHJhd19idWZmZXJzIG5vdCBlbmFibGVkIik7CisgICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oKTsKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIwX0VY
VDogLy8gRFJBV19CVUZGRVIwX0VYVCBpcyBzcGVjaWFsIGFzIHRoZSBiYWNrYnVmZmVyIGlzIHNp
bXVsYXRlZC4KKyAgICAgICAgaWYgKG1fZXh0RHJhd0J1ZmZlcnMpIHsKKyAgICAgICAgICAgIEdD
M0RpbnQgdmFsdWUgPSAwOworICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihwbmFt
ZSwgJnZhbHVlKTsKKyAgICAgICAgICAgIGlmICghbV9mcmFtZWJ1ZmZlckJpbmRpbmcgJiYgdmFs
dWUgIT0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgdmFsdWUgPSBH
cmFwaGljc0NvbnRleHQzRDo6QkFDSzsKKyAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
dmFsdWUpOworICAgICAgICB9CisgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIg
bmFtZSwgRVhUX2RyYXdfYnVmZmVycyBub3QgZW5hYmxlZCIpOworICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKCk7CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSMV9FWFQ6Cisg
ICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSMl9FWFQ6CisgICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkRSQVdfQlVGRkVSM19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVG
RkVSNF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSNV9FWFQ6CisgICAg
Y2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSNl9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25z
M0Q6OkRSQVdfQlVGRkVSN19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVS
OF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSOV9FWFQ6CisgICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSMTBfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNE
OjpEUkFXX0JVRkZFUjExX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIx
Ml9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSMTNfRVhUOgorICAgIGNh
c2UgRXh0ZW5zaW9uczNEOjpEUkFXX0JVRkZFUjE0X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMz
RDo6RFJBV19CVUZGRVIxNV9FWFQ6IC8vIEVYVF9kcmF3X2J1ZmZlcnMgRU5ECisgICAgICAgIGlm
IChtX2V4dERyYXdCdWZmZXJzKSB7CisgICAgICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8R0MzRGVu
dW0+KEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIwX0VYVCArIGdldE1heERyYXdCdWZmZXJzKCkp
IDw9IHBuYW1lKSB7CisgICAgICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRl
ciwgZXhjZWVkcyBNQVhfQ09MT1JfQVRUQUNITUVOVFNfRVhUIik7CisgICAgICAgICAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJu
IGdldEludFBhcmFtZXRlcihwbmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgc3ludGhlc2l6ZUdM
RXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJp
bnZhbGlkIHBhcmFtZXRlciBuYW1lLCBFWFRfZHJhd19idWZmZXJzIG5vdCBlbmFibGVkIik7Cisg
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50
aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1l
dGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKICAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbygpOwpAQCAtMjkxMyw2ICsyOTYzLDggQEAgVmVjdG9yPFN0cmluZz4gV2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpnZQogICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJLSVRfV0VCR0xfY29tcHJl
c3NlZF90ZXh0dXJlX3MzdGMiKTsKICAgICBpZiAoV2ViR0xEZXB0aFRleHR1cmU6OnN1cHBvcnRl
ZChncmFwaGljc0NvbnRleHQzRCgpKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dF
QkdMX2RlcHRoX3RleHR1cmUiKTsKKyAgICBpZiAoRVhURHJhd0J1ZmZlcnM6OnN1cHBvcnRlZCh0
aGlzKSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiRVhUX2RyYXdfYnVmZmVycyIpOwogCiAgICAg
aWYgKGFsbG93UHJpdmlsZWdlZEV4dGVuc2lvbnMoKSkgewogICAgICAgICBpZiAobV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9z
b3VyY2UiKSkKQEAgLTUzMjYsNiArNTM3OCwzMSBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4
dDo6dmFsaWRhdGVGcmFtCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9BVFRB
Q0hNRU5UOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUxfQVRUQUNI
TUVOVDoKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFD
SE1FTlQxX0VYVDogLy8gRVhUX2RyYXdfYnVmZmVycyBCRUdJTgorICAgIGNhc2UgRXh0ZW5zaW9u
czNEOjpDT0xPUl9BVFRBQ0hNRU5UMl9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9S
X0FUVEFDSE1FTlQzX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVO
VDRfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UNV9FWFQ6Cisg
ICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ2X0VYVDoKKyAgICBjYXNlIEV4
dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDdfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNE
OjpDT0xPUl9BVFRBQ0hNRU5UOF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FU
VEFDSE1FTlQ5X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEw
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDExX0VYVDoKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEyX0VYVDoKKyAgICBjYXNlIEV4
dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEzX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMz
RDo6Q09MT1JfQVRUQUNITUVOVDE0X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1Jf
QVRUQUNITUVOVDE1X0VYVDogLy8gRVhUX2RyYXdfYnVmZmVycyBFTkQKKyAgICAvLyBDT0xPUl9B
VFRBQ0hNRU5UMF9FWFQgaXMgZXF1YWwgdG8gQ09MT1JfQVRUQUNITUVOVDAKKyAgICAgICAgaWYg
KCFtX2V4dERyYXdCdWZmZXJzKSB7CisgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIGF0dGFj
aG1lbnQsIEVYVF9kcmF3X2J1ZmZlcnMgbm90IGVuYWJsZWQiKTsKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8R0MzRGVudW0+KEV4
dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDBfRVhUICsgZ2V0TWF4Q29sb3JBdHRhY2htZW50
cygpKSA8PSBhdHRhY2htZW50KSB7CisgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIGF0dGFj
aG1lbnQsIGV4Y2VlZHMgTUFYX0RSQVdfQlVGRkVSU19FWFQiKTsKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAg
ICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCBmdW5j
dGlvbk5hbWUsICJpbnZhbGlkIGF0dGFjaG1lbnQiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtNTg0Miw2ICs1OTE5LDIwIEBAIEludFNpemUgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpjbGFt
cGVkQ2EKICAgICAgICAgICAgICAgICAgICBjbGFtcChjYW52YXMoKS0+aGVpZ2h0KCksIDEsIG1f
bWF4Vmlld3BvcnREaW1zWzFdKSk7CiB9CiAKK0dDM0RpbnQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpnZXRNYXhEcmF3QnVmZmVycygpCit7CisgICAgaWYgKCFtX21heERyYXdCdWZmZXJzICYmIEVY
VERyYXdCdWZmZXJzOjpzdXBwb3J0ZWQodGhpcykpCisgICAgICAgIG1fY29udGV4dC0+Z2V0SW50
ZWdlcnYoRXh0ZW5zaW9uczNEOjpNQVhfRFJBV19CVUZGRVJTX0VYVCwgJm1fbWF4RHJhd0J1ZmZl
cnMpOworICAgIHJldHVybiBtX21heERyYXdCdWZmZXJzOworfQorCitHQzNEaW50IFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0TWF4Q29sb3JBdHRhY2htZW50cygpCit7CisgICAgaWYgKCFtX21h
eENvbG9yQXR0YWNobWVudHMgJiYgRVhURHJhd0J1ZmZlcnM6OnN1cHBvcnRlZCh0aGlzKSkKKyAg
ICAgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihFeHRlbnNpb25zM0Q6Ok1BWF9DT0xPUl9BVFRB
Q0hNRU5UU19FWFQsICZtX21heENvbG9yQXR0YWNobWVudHMpOworICAgIHJldHVybiBtX21heENv
bG9yQXR0YWNobWVudHM7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShXRUJHTCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCShyZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpA
QCAtNDIsNiArNDIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEVYVERyYXdC
dWZmZXJzOwogY2xhc3MgRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljOwogY2xhc3MgSFRNTElt
YWdlRWxlbWVudDsKIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7CkBAIC0zMjMsNiArMzI0LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCk7CiAKICAgcHJpdmF0ZToKKyAgICBmcmll
bmQgY2xhc3MgRVhURHJhd0J1ZmZlcnM7CiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMRnJhbWVidWZm
ZXI7CiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMT2JqZWN0OwogICAgIGZyaWVuZCBjbGFzcyBPRVNW
ZXJ0ZXhBcnJheU9iamVjdDsKQEAgLTQ3Niw2ICs0NzgsOSBAQCBwdWJsaWM6CiAgICAgR0MzRGlu
dCBtX21heFRleHR1cmVMZXZlbDsKICAgICBHQzNEaW50IG1fbWF4Q3ViZU1hcFRleHR1cmVMZXZl
bDsKIAorICAgIEdDM0RpbnQgbV9tYXhEcmF3QnVmZmVyczsKKyAgICBHQzNEaW50IG1fbWF4Q29s
b3JBdHRhY2htZW50czsKKwogICAgIEdDM0RpbnQgbV9wYWNrQWxpZ25tZW50OwogICAgIEdDM0Rp
bnQgbV91bnBhY2tBbGlnbm1lbnQ7CiAgICAgYm9vbCBtX3VucGFja0ZsaXBZOwpAQCAtNTA5LDYg
KzUxNCw3IEBAIHB1YmxpYzoKICAgICBpbnQgbV9udW1HTEVycm9yc1RvQ29uc29sZUFsbG93ZWQ7
CiAKICAgICAvLyBFbmFibGVkIGV4dGVuc2lvbiBvYmplY3RzLgorICAgIE93blB0cjxFWFREcmF3
QnVmZmVycz4gbV9leHREcmF3QnVmZmVyczsKICAgICBPd25QdHI8RVhUVGV4dHVyZUZpbHRlckFu
aXNvdHJvcGljPiBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYzsKICAgICBPd25QdHI8T0VT
VGV4dHVyZUZsb2F0PiBtX29lc1RleHR1cmVGbG9hdDsKICAgICBPd25QdHI8T0VTU3RhbmRhcmRE
ZXJpdmF0aXZlcz4gbV9vZXNTdGFuZGFyZERlcml2YXRpdmVzOwpAQCAtNzMyLDYgKzczOCwxMSBA
QCBwdWJsaWM6CiAgICAgLy8gQ2xhbXAgdGhlIHdpZHRoIGFuZCBoZWlnaHQgdG8gR0xfTUFYX1ZJ
RVdQT1JUX0RJTVMuCiAgICAgSW50U2l6ZSBjbGFtcGVkQ2FudmFzU2l6ZSgpOwogCisgICAgLy8g
Rmlyc3QgdGltZSBjYWxsZWQsIGlmIEVYVF9kcmF3X2J1ZmZlcnMgaXMgc3VwcG9ydGVkLCBxdWVy
eSB0aGUgdmFsdWU7IG90aGVyd2lzZSByZXR1cm4gMC4KKyAgICAvLyBMYXRlciwgcmV0dXJuIHRo
ZSBjYWNoZWQgdmFsdWUuCisgICAgR0MzRGludCBnZXRNYXhEcmF3QnVmZmVycygpOworICAgIEdD
M0RpbnQgZ2V0TWF4Q29sb3JBdHRhY2htZW50cygpOworCiAgICAgZnJpZW5kIGNsYXNzIFdlYkdM
U3RhdGVSZXN0b3JlcjsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL3N1cHBvcnQvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvRXh0ZW5zaW9uczNEQ2hyb21pdW0u
Y3BwCShyZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9zdXBwb3J0L0V4dGVuc2lvbnMzRENocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE1
LDQgKzIxNSw5IEBAIHZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OnBvcEdyb3VwTWFya2UKICAg
ICBtX3ByaXZhdGUtPndlYkNvbnRleHQoKS0+cG9wR3JvdXBNYXJrZXJFWFQoKTsKIH0KIAordm9p
ZCBFeHRlbnNpb25zM0RDaHJvbWl1bTo6ZHJhd0J1ZmZlcnNFWFQoR0MzRHNpemVpIG4sIGNvbnN0
IEdDM0RlbnVtKiBidWZzKQoreworICAgIG1fcHJpdmF0ZS0+d2ViQ29udGV4dCgpLT5kcmF3QnVm
ZmVyc0Nocm9taXVtKG4sIGJ1ZnMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaAko
cmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0
ZW5zaW9uczNELmgJKHdvcmtpbmcgY29weSkKQEAgLTcwLDYgKzcwLDcgQEAgcHVibGljOgogICAg
IC8vICAgR0xfRVhUX2RlYnVnX21hcmtlcgogICAgIC8vICAgR0xfQ0hST01JVU1fY29weV90ZXh0
dXJlCiAgICAgLy8gICBHTF9DSFJPTUlVTV9mbGlweQorICAgIC8vICAgR0xfQVJCX2RyYXdfYnVm
ZmVycyAvIEdMX0VYVF9kcmF3X2J1ZmZlcnMKIAogICAgIC8vIFRha2VzIGZ1bGwgbmFtZSBvZiBl
eHRlbnNpb247IGZvciBleGFtcGxlLAogICAgIC8vICJHTF9FWFRfdGV4dHVyZV9mb3JtYXRfQkdS
QTg4ODgiLgpAQCAtMTUwLDcgKzE1MSw0MyBAQCBwdWJsaWM6CiAKICAgICAgICAgLy8gR0xfQ0hS
T01JVU1fY29weV90ZXh0dXJlCiAgICAgICAgIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9DSFJP
TUlVTSA9IDB4OTI0MSwKLSAgICAgICAgVU5QQUNLX1VOUFJFTVVMVElQTFlfQUxQSEFfQ0hST01J
VU0gPSAweDkyNDIKKyAgICAgICAgVU5QQUNLX1VOUFJFTVVMVElQTFlfQUxQSEFfQ0hST01JVU0g
PSAweDkyNDIsCisKKyAgICAgICAgLy8gR0xfQVJCX2RyYXdfYnVmZmVycyAvIEdMX0VYVF9kcmF3
X2J1ZmZlcnMKKyAgICAgICAgTUFYX0RSQVdfQlVGRkVSU19FWFQgPSAweDg4MjQsCisgICAgICAg
IERSQVdfQlVGRkVSMF9FWFQgPSAweDg4MjUsCisgICAgICAgIERSQVdfQlVGRkVSMV9FWFQgPSAw
eDg4MjYsCisgICAgICAgIERSQVdfQlVGRkVSMl9FWFQgPSAweDg4MjcsCisgICAgICAgIERSQVdf
QlVGRkVSM19FWFQgPSAweDg4MjgsCisgICAgICAgIERSQVdfQlVGRkVSNF9FWFQgPSAweDg4Mjks
CisgICAgICAgIERSQVdfQlVGRkVSNV9FWFQgPSAweDg4MkEsCisgICAgICAgIERSQVdfQlVGRkVS
Nl9FWFQgPSAweDg4MkIsCisgICAgICAgIERSQVdfQlVGRkVSN19FWFQgPSAweDg4MkMsCisgICAg
ICAgIERSQVdfQlVGRkVSOF9FWFQgPSAweDg4MkQsCisgICAgICAgIERSQVdfQlVGRkVSOV9FWFQg
PSAweDg4MkUsCisgICAgICAgIERSQVdfQlVGRkVSMTBfRVhUID0gMHg4ODJGLAorICAgICAgICBE
UkFXX0JVRkZFUjExX0VYVCA9IDB4ODgzMCwKKyAgICAgICAgRFJBV19CVUZGRVIxMl9FWFQgPSAw
eDg4MzEsCisgICAgICAgIERSQVdfQlVGRkVSMTNfRVhUID0gMHg4ODMyLAorICAgICAgICBEUkFX
X0JVRkZFUjE0X0VYVCA9IDB4ODgzMywKKyAgICAgICAgRFJBV19CVUZGRVIxNV9FWFQgPSAweDg4
MzQsCisgICAgICAgIE1BWF9DT0xPUl9BVFRBQ0hNRU5UU19FWFQgPSAweDhDREYsCisgICAgICAg
IENPTE9SX0FUVEFDSE1FTlQwX0VYVCA9IDB4OENFMCwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVO
VDFfRVhUID0gMHg4Q0UxLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMl9FWFQgPSAweDhDRTIs
CisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQzX0VYVCA9IDB4OENFMywKKyAgICAgICAgQ09MT1Jf
QVRUQUNITUVOVDRfRVhUID0gMHg4Q0U0LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNV9FWFQg
PSAweDhDRTUsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ2X0VYVCA9IDB4OENFNiwKKyAgICAg
ICAgQ09MT1JfQVRUQUNITUVOVDdfRVhUID0gMHg4Q0U3LAorICAgICAgICBDT0xPUl9BVFRBQ0hN
RU5UOF9FWFQgPSAweDhDRTgsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ5X0VYVCA9IDB4OENF
OSwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDEwX0VYVCA9IDB4OENFQSwKKyAgICAgICAgQ09M
T1JfQVRUQUNITUVOVDExX0VYVCA9IDB4OENFQiwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDEy
X0VYVCA9IDB4OENFQywKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDEzX0VYVCA9IDB4OENFRCwK
KyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDE0X0VYVCA9IDB4OENFRSwKKyAgICAgICAgQ09MT1Jf
QVRUQUNITUVOVDE1X0VYVCA9IDB4OENFRgogICAgIH07CiAKICAgICAvLyBHTF9BUkJfcm9idXN0
bmVzcwpAQCAtMTkwLDYgKzIyNyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHVzaEdy
b3VwTWFya2VyRVhUKGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcG9wR3Jv
dXBNYXJrZXJFWFQodm9pZCkgPSAwOwogCisgICAgLy8gR0xfQVJCX2RyYXdfYnVmZmVycyAvIEdM
X0VYVF9kcmF3X2J1ZmZlcnMKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0J1ZmZlcnNFWFQoR0MzRHNp
emVpIG4sIGNvbnN0IEdDM0RlbnVtKiBidWZzKSA9IDA7CisKICAgICB2aXJ0dWFsIGJvb2wgaXNO
VklESUEoKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzQU1EKCkgPSAwOwogICAgIHZpcnR1YWwg
Ym9vbCBpc0ludGVsKCkgPSAwOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAkocmV2aXNpb24gMTQ0MDk4KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMzg5LDYgKzEzODksMjEgQEAgdW5zaWduZWQgR3JhcGhpY3ND
b250ZXh0M0Q6OmdldENsZWFyQml0cwogewogICAgIHN3aXRjaCAoYXR0YWNobWVudCkgewogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwOgorICAgIGNhc2UgRXh0
ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6
OkNPTE9SX0FUVEFDSE1FTlQyX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRU
QUNITUVOVDNfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UNF9F
WFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ1X0VYVDoKKyAgICBj
YXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDZfRVhUOgorICAgIGNhc2UgRXh0ZW5z
aW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UN19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNP
TE9SX0FUVEFDSE1FTlQ4X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNI
TUVOVDlfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTBfRVhU
OgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTFfRVhUOgorICAgIGNh
c2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTJfRVhUOgorICAgIGNhc2UgRXh0ZW5z
aW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTNfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpD
T0xPUl9BVFRBQ0hNRU5UMTRfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRB
Q0hNRU5UMTVfRVhUOgogICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0JV
RkZFUl9CSVQ7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQVRUQUNITUVOVDoK
ICAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9CVUZGRVJfQklUOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0ZW5zaW9uczNE
Q2hyb21pdW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oCShyZXZpc2lvbiAxNDQwOTgpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJv
bWl1bS5oCSh3b3JraW5nIGNvcHkpCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIEdDM0Rib29sZWFuIGlzVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAg
dmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKICAgICB2
aXJ0dWFsIFN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm0zRE9i
amVjdCk7CisgICAgdmlydHVhbCB2b2lkIGRyYXdCdWZmZXJzRVhUKEdDM0RzaXplaSwgY29uc3Qg
R0MzRGVudW0qKTsKIAogICAgIGVudW0gewogICAgICAgICAvLyBHTF9PRVNfRUdMX2ltYWdlX2V4
dGVybmFsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0
ZW5zaW9uczNET3BlbkdMLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcAkocmV2aXNpb24gMTQ0MDk4
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMz
RE9wZW5HTC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3OCw5ICsxNzgsMjUgQEAgYm9vbCBFeHRl
bnNpb25zM0RPcGVuR0w6OnN1cHBvcnRzRXh0ZW5zaQogICAgIGlmIChuYW1lID09ICJHTF9FWFRf
dGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKQogICAgICAgICByZXR1cm4gbV9hdmFpbGFibGVF
eHRlbnNpb25zLmNvbnRhaW5zKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTsK
IAorICAgIGlmIChuYW1lID09ICJHTF9FWFRfZHJhd19idWZmZXJzIikgeworI2lmIFBMQVRGT1JN
KE1BQykKKyAgICAgICAgcmV0dXJuIG1fYXZhaWxhYmxlRXh0ZW5zaW9ucy5jb250YWlucygiR0xf
QVJCX2RyYXdfYnVmZmVycyIpOworI2Vsc2UKKyAgICAgICAgLy8gRklYTUU6IGltcGxlbWVudCBz
dXBwb3J0IGZvciBvdGhlciBwbGF0Zm9ybXMuCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRp
ZgorICAgIH0KICAgICByZXR1cm4gbV9hdmFpbGFibGVFeHRlbnNpb25zLmNvbnRhaW5zKG5hbWUp
OwogfQogCit2b2lkIEV4dGVuc2lvbnMzRE9wZW5HTDo6ZHJhd0J1ZmZlcnNFWFQoR0MzRHNpemVp
IG4sIGNvbnN0IEdDM0RlbnVtKiBidWZzKQoreworICAgIC8vICBGSVhNRTogaW1wbGVtZW50IHN1
cHBvcnQgZm9yIG90aGVyIHBsYXRmb3Jtcy4KKyNpZiBQTEFURk9STShNQUMpCisgICAgOjpnbERy
YXdCdWZmZXJzQVJCKG4sIGJ1ZnMpOworI2VuZGlmCit9CisKIFN0cmluZyBFeHRlbnNpb25zM0RP
cGVuR0w6OmdldEV4dGVuc2lvbnMoKQogewogICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5H
TC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9FeHRlbnNpb25zM0RPcGVuR0wuaAkocmV2aXNpb24gMTQ0MDk4KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oCSh3b3JraW5n
IGNvcHkpCkBAIC01MSw2ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0
RXZlbnRNYXJrZXJFWFQoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIHB1c2hHcm91
cE1hcmtlckVYVChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgcG9wR3JvdXBNYXJr
ZXJFWFQodm9pZCk7CisgICAgdmlydHVhbCB2b2lkIGRyYXdCdWZmZXJzRVhUKEdDM0RzaXplaSwg
Y29uc3QgR0MzRGVudW0qKTsKIAogcHJvdGVjdGVkOgogICAgIC8vIFRoaXMgY2xhc3Mgb25seSBu
ZWVkcyB0byBiZSBpbnN0YW50aWF0ZWQgYnkgR3JhcGhpY3NDb250ZXh0M0QgaW1wbGVtZW50YXRp
b25zLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVu
c2lvbnMzRE9wZW5HTENvbW1vbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAJKHJldmlz
aW9uIDE0NDA5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9F
eHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNiArMTE4
LDE1IEBAIHZvaWQgRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uOjplbnN1cmVFbmEKICAgICAgICAg
ICAgIEFOR0xFUmVzb3VyY2VzLk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyA9IDE7CiAgICAgICAg
ICAgICBjb21waWxlci5zZXRSZXNvdXJjZXMoQU5HTEVSZXNvdXJjZXMpOwogICAgICAgICB9Cisg
ICAgfSBlbHNlIGlmIChuYW1lID09ICJHTF9FWFRfZHJhd19idWZmZXJzIikgeworICAgICAgICAv
LyBFbmFibGUgc3VwcG9ydCBpbiBBTkdMRSAoaWYgbm90IGVuYWJsZWQgYWxyZWFkeSkKKyAgICAg
ICAgQU5HTEVXZWJLaXRCcmlkZ2UmIGNvbXBpbGVyID0gbV9jb250ZXh0LT5tX2NvbXBpbGVyOwor
ICAgICAgICBTaEJ1aWx0SW5SZXNvdXJjZXMgQU5HTEVSZXNvdXJjZXMgPSBjb21waWxlci5nZXRS
ZXNvdXJjZXMoKTsKKyAgICAgICAgaWYgKCFBTkdMRVJlc291cmNlcy5FWFRfZHJhd19idWZmZXJz
KSB7CisgICAgICAgICAgICBBTkdMRVJlc291cmNlcy5FWFRfZHJhd19idWZmZXJzID0gMTsKKyAg
ICAgICAgICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYoRXh0ZW5zaW9uczNEOjpNQVhfRFJBV19C
VUZGRVJTX0VYVCwgJkFOR0xFUmVzb3VyY2VzLk1heERyYXdCdWZmZXJzKTsKKyAgICAgICAgICAg
IGNvbXBpbGVyLnNldFJlc291cmNlcyhBTkdMRVJlc291cmNlcyk7CisgICAgICAgIH0KICAgICB9
CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRl
bnNpb25zM0RPcGVuR0xDb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmgJKHJldmlzaW9u
IDE0NDA5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRl
bnNpb25zM0RPcGVuR0xDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBHQzNEYm9vbGVhbiBpc1ZlcnRleEFycmF5T0VTKFBsYXRmb3Jt
M0RPYmplY3QpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYmluZFZlcnRleEFycmF5T0VTKFBsYXRm
b3JtM0RPYmplY3QpID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBkcmF3QnVmZmVyc0VYVChHQzNE
c2l6ZWksIGNvbnN0IEdDM0RlbnVtKikgPSAwOworCiAgICAgdmlydHVhbCBTdHJpbmcgZ2V0VHJh
bnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3QpOwogCiAgICAgLy8gRVhU
IFJvYnVzdG5lc3MgLSB1c2VzIGdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVT
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCShyZXZpc2lvbiAxNDQwOTgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNjAsNiArMTYwLDExIEBAIHZvaWQgRXh0ZW5zaW9uczNET3Bl
bkdMRVM6OmJpbmRWZXJ0ZXhBcnIKICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJv
cihHTF9JTlZBTElEX09QRVJBVElPTik7CiB9CiAKK3ZvaWQgRXh0ZW5zaW9uczNET3BlbkdMRVM6
OmRyYXdCdWZmZXJzRVhUKEdDM0RzaXplaSBuLCBjb25zdCBHQzNEZW51bSogYnVmcykKK3sKKyAg
ICAvLyBGSVhNRTogaW1wbGVtZW50IHRoZSBzdXBwb3J0LgorfQorCiBpbnQgRXh0ZW5zaW9uczNE
T3BlbkdMRVM6OmdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKQogewogICAgIC8vIEZJWE1FOiBU
aGlzIGRvZXMgbm90IGNhbGwgZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQiwgYnV0IGluc3RlYWQg
Z2V0R3JhcGhpY3NSZXNldFN0YXR1c0VYVC4KQEAgLTI1MCw2ICsyNTUsOSBAQCBib29sIEV4dGVu
c2lvbnMzRE9wZW5HTEVTOjpzdXBwb3J0c0V4dGVuCiAgICAgICAgICAgICBtX2dsUmVhZG5QaXhl
bHNFWFQgPSByZWludGVycHJldF9jYXN0PFBGTkdMUkVBRE5QSVhFTFNFWFRQUk9DPihlZ2xHZXRQ
cm9jQWRkcmVzcygiZ2xSZWFkblBpeGVsc0VYVCIpKTsKICAgICAgICAgICAgIG1fZ2xHZXRuVW5p
Zm9ybWZ2RVhUID0gcmVpbnRlcnByZXRfY2FzdDxQRk5HTEdFVE5VTklGT1JNRlZFWFRQUk9DPihl
Z2xHZXRQcm9jQWRkcmVzcygiZ2xHZXRuVW5pZm9ybWZ2RVhUIikpOwogICAgICAgICAgICAgbV9n
bEdldG5Vbmlmb3JtaXZFWFQgPSByZWludGVycHJldF9jYXN0PFBGTkdMR0VUTlVOSUZPUk1JVkVY
VFBST0M+KGVnbEdldFByb2NBZGRyZXNzKCJnbEdldG5Vbmlmb3JtaXZFWFQiKSk7CisgICAgICAg
IH0gZWxzZSBpZiAobmFtZSA9PSAiR0xfRVhUX2RyYXdfYnVmZmVycyIpIHsKKyAgICAgICAgICAg
IC8vIEZJWE1FOiBpbXBsZW1lbnQgdGhlIHN1cHBvcnQuCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnMzRE9wZW5HTEVTLmgJKHJldmlzaW9uIDE0NDA5OCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5oCSh3b3JraW5n
IGNvcHkpCkBAIC05MCw2ICs5MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRl
VmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCBHQzNEYm9vbGVh
biBpc1ZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBi
aW5kVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CisgICAgdmlydHVhbCB2b2lkIGRy
YXdCdWZmZXJzRVhUKEdDM0RzaXplaSwgY29uc3QgR0MzRGVudW0qKTsKIAogICAgIC8vIEVYVCBS
b2J1c3RuZXNzIC0gcmVzZXQKICAgICB2aXJ0dWFsIGludCBnZXRHcmFwaGljc1Jlc2V0U3RhdHVz
QVJCKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190391</attachid>
            <date>2013-02-26 16:42:26 -0800</date>
            <delta_ts>2013-02-27 10:00:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109331-20130226163840.patch</filename>
            <type>text/plain</type>
            <size>62953</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ0MTE0KQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEzLTAyLTI2ICBaaGVu
eWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgRVhUX2RyYXdfYnVmZmVycyBuZWVk
cyBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA5MzMxCisKKyAgICAgICAgQWRkIEVYVF9kcmF3X2J1ZmZlcnMgc3VwcG9ydCBm
b3IgY2hyb21pdW0gcG9ydC4KKworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJHcmFwaGlj
c0NvbnRleHQzRC5oOgorICAgICAgICAoV2ViR3JhcGhpY3NDb250ZXh0M0QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6ZHJhd0J1ZmZlcnNDaHJvbWl1bSk6CisKIDIw
MTMtMDItMjYgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
Q3JlYXRlIHRoZSBTaGFyZWRHcmFwaGljc0NvbnRleHQzRCB0aHJvdWdoIGl0cyBvd24gbWV0aG9k
LgpJbmRleDogU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRl
eHQzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
R3JhcGhpY3NDb250ZXh0M0QuaAkocmV2aXNpb24gMTQ0MTE0KQorKysgU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00NzIsNiArNDcyLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhc3luY1RleEltYWdl
MkRDSFJPTUlVTShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbCwgV0dDM0RlbnVtIGlu
dGVybmFsZm9ybWF0LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCwgV0dDM0Rp
bnQgYm9yZGVyLCBXR0MzRGVudW0gZm9ybWF0LCBXR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCog
cGl4ZWxzKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXN5bmNUZXhTdWJJbWFnZTJEQ0hST01JVU0o
V0dDM0RlbnVtIHRhcmdldCwgV0dDM0RpbnQgbGV2ZWwsIFdHQzNEaW50IHhvZmZzZXQsIFdHQzNE
aW50IHlvZmZzZXQsIFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0LCBXR0MzRGVu
dW0gZm9ybWF0LCBXR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKSB7IH0KIAorICAg
IC8vIEdMX0VYVF9kcmF3X2J1ZmZlcnMgLyBHTF9BUkJfZHJhd19idWZmZXJzCisgICAgdmlydHVh
bCB2b2lkIGRyYXdCdWZmZXJzQ2hyb21pdW0oV0dDM0RzaXplaSBuLCBjb25zdCBXR0MzRGVudW0q
IGJ1ZnMpIHsgfQorCiAgICAgLy8gRklYTUU6IE1ha2UgaW1wbGVtZW50YXRpb25zIG9mIHRoaXMg
Y2xhc3Mgb3ZlcnJpZGUgdGhpcyBtZXRob2QgaW5zdGVhZCBhbmQgdGhlbiByZW1vdmUgb25DcmVh
dGVHckdMSW50ZXJmYWNlKCkuCiAgICAgdmlydHVhbCBHckdMSW50ZXJmYWNlKiBjcmVhdGVHckdM
SW50ZXJmYWNlKCkgeyByZXR1cm4gb25DcmVhdGVHckdMSW50ZXJmYWNlKCk7IH0KIApJbmRleDog
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwkocmV2aXNpb24gMTQ0MTE0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOTMgQEAKKzIwMTMtMDItMjYgIFpoZW55YW8gTW8gIDx6
bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBFWFRfZHJhd19idWZmZXJzIG5lZWRzIGltcGxlbWVu
dGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDkzMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgRVhUX2RyYXdfYnVmZmVycyBmb3IgV2ViR0wuCisg
ICAgICAgIG1hYyBPcGVuR0wgcG9ydCBpcyBwYXNzaW5nIGtocm9ub3MgV2ViR0wgY29uZm9ybWFu
Y2UgdGVzdCB3aXRoIHRoaXMgcGF0Y2guIE9wZW5HTCBFUyBwb3J0IGltcGxlbWVudGF0aW9uIGlz
bid0IGFkZGVkIGluIHRoaXMgcGF0Y2guCisgICAgICAgIEFsc28sIGl0IGhhcyB0aGUgV2ViS2l0
IHNpZGUgc3VwcG9ydCBmb3IgY2hyb21pdW0gcG9ydCwgYnV0IHBlbmRpbmcgY29tbWFuZCBidWZm
ZXIgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgQmVzaWRlcyB0aGUgYmFzaWMgZXh0ZW5zaW9u
IGltcGxlbWVudGF0aW9uLCB3ZSBhbHNvIGFkZGVkIGRyYXdCdWZmZXJzKCkgd3JhcHBlciB0byB3
b3JrIGFyb3VuZCBhIG1hYyBkcml2ZXIgYnVnOiBpLmUuLCBkbyBub3QgZW5hYmxlIGEgYnVmZmVy
IGlmIHRoZXJlIGlzIG5vIGF0dGFjaG1lbnQgYWRkZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIERlcml2ZWRT
b3VyY2VzLnByaToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRh
cmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOEJpbmRpbmcuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6dG9JbnQzMik6CisgICAgICAgIChXZWJDb3JlOjp0b1VJbnQzMik6CisgICAg
ICAgIChXZWJDb3JlOjp0b0Zsb2F0KToKKyAgICAgICAgKFdlYkNvcmU6OnRvSW50NjQpOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4T2JqZWN0KToKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9FWFREcmF3QnVmZmVycy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpFWFREcmF3QnVmZmVyczo6RVhURHJhd0J1ZmZlcnMpOgorICAgICAgICAoV2Vi
Q29yZTo6RVhURHJhd0J1ZmZlcnM6On5FWFREcmF3QnVmZmVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpFWFREcmF3QnVmZmVyczo6Z2V0TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpFWFREcmF3QnVm
ZmVyczo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVYVERyYXdCdWZmZXJzOjpzdXBwb3J0
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RVhURHJhd0J1ZmZlcnM6OmRyYXdCdWZmZXJzRVhUKToK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoRVhURHJhd0J1ZmZlcnMpOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL0VYVERyYXdCdWZmZXJzLmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xFeHRlbnNpb24uaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRnJhbWVidWZmZXI6OnNldEF0dGFjaG1lbnRGb3JC
b3VuZEZyYW1lYnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRnJhbWVidWZmZXI6OnJl
bW92ZUF0dGFjaG1lbnRGcm9tQm91bmRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTEZyYW1lYnVmZmVyOjpkcmF3QnVmZmVycyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMRnJhbWVidWZmZXI6OmRyYXdCdWZmZXJzSWZOZWNlc3NhcnkpOgor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaDoKKyAgICAgICAgKFdlYkdM
RnJhbWVidWZmZXIpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVy
aW5nQ29udGV4dDo6aW5pdGlhbGl6ZU5ld0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0OjpmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbik6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBvcnRlZEV4dGVuc2lvbnMpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUZyYW1lYnVm
ZmVyRnVuY1BhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0OjpnZXRNYXhEcmF3QnVmZmVycyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdldE1heENvbG9yQXR0YWNobWVudHMpOgorICAgICAgICAqIGh0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJHTFJlbmRlcmluZ0NvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBv
cnQvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9u
czNEQ2hyb21pdW06OmRyYXdCdWZmZXJzRVhUKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oOgorICAgICAgICAoRXh0ZW5zaW9u
czNEKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2xlYXJCaXRzQnlBdHRh
Y2htZW50VHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0ZW5z
aW9uczNEQ2hyb21pdW0uaDoKKyAgICAgICAgKEV4dGVuc2lvbnMzRENocm9taXVtKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTDo6c3VwcG9ydHNFeHRlbnNpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNET3BlbkdMOjpkcmF3QnVmZmVyc0VYVCk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0
ZW5zaW9uczNET3BlbkdMLmg6CisgICAgICAgIChFeHRlbnNpb25zM0RPcGVuR0wpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uOjplbnN1cmVFbmFi
bGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3Bl
bkdMQ29tbW9uLmg6CisgICAgICAgIChFeHRlbnNpb25zM0RPcGVuR0xDb21tb24pOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0xFUzo6ZHJhd0J1ZmZlcnNFWFQpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0xF
Uzo6c3VwcG9ydHNFeHRlbnNpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9FeHRlbnNpb25zM0RPcGVuR0xFUy5oOgorICAgICAgICAoRXh0ZW5zaW9uczNET3BlbkdMRVMp
OgorCiAyMDEzLTAyLTI2ICBTdGVwaGVuIENoZW5uZXkgIDxzY2hlbm5leUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgZmVEaXNwbGFjZW1lbnRNYXAgZmlsdGVyIGdldHMgY29sb3Igc3BhY2Ugd3Jv
bmcKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNDQxMTQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNTEzLDYgKzUxMyw3IEBA
IHNldChXZWJDb3JlX0lETF9GSUxFUwogICAgIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQuaWRsCiAgICAgaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRsCiAgICAgaHRtbC9jYW52YXMv
RE9NUGF0aC5pZGwKKyAgICBodG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5pZGwKICAgICBodG1s
L2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaWRsCiAgICAgaHRtbC9jYW52YXMv
RmxvYXQzMkFycmF5LmlkbAogICAgIGh0bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5pZGwKQEAgLTE1
MDYsNiArMTUwNyw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3Bw
CiAgICAgaHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwCisgICAgaHRtbC9jYW52YXMvRVhURHJhd0J1
ZmZlcnMuY3BwCiAgICAgaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNw
cAogICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwCiAgICAgaHRtbC9j
YW52YXMvT0VTVGV4dHVyZUZsb2F0LmNwcApAQCAtMjY0Nyw2ICsyNjQ5LDcgQEAgaWYgKEVOQUJM
RV9XRUJHTCkKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uY3BwCiAg
ICAgICAgIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwCiAgICAgICAg
IGh0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmNwcAorICAgICAgICBodG1sL2NhbnZhcy9FWFRE
cmF3QnVmZmVycy5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNv
dHJvcGljLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNw
cAogICAgICAgICBodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuY3BwCkBAIC0yNjU0LDYgKzI2
NTcsNyBAQCBpZiAoRU5BQkxFX1dFQkdMKQogICAgICAgICBodG1sL2NhbnZhcy9PRVNFbGVtZW50
SW5kZXhVaW50LmNwcAogICAgICkKICAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0lETF9GSUxFUwor
ICAgICAgICBodG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5pZGwKICAgICAgICAgaHRtbC9jYW52
YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmlkbAogICAgICAgICBodG1sL2NhbnZhcy9P
RVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbAogICAgICAgICBodG1sL2NhbnZhcy9PRVNUZXh0dXJl
RmxvYXQuaWRsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDE0
NDExNCkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29w
eSkKQEAgLTM5MCw2ICszOTAsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9o
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2h0bWwvY2FudmFzL0RhdGFWaWV3LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9E
T01QYXRoLmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5p
ZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJv
cGljLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5pZGwgXApJbmRleDogU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLnByaQkocmV2aXNpb24gMTQ0MTE0KQorKysgU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0zMDksNiArMzA5LDcgQEAg
SURMX0JJTkRJTkdTICs9IFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0LmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvRE9NUGF0aC5pZGwgXAorICAgICQkUFdE
L2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMv
RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMv
T0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwgXAogICAgICQkUFdEL2h0bWwvY2FudmFzL09FU1Rl
eHR1cmVGbG9hdC5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZp
c2lvbiAxNDQxMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNDgsNiArMjQ4LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRXJyb3JDYWxsYmFjay5oIFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTRXJyb3JFdmVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNFcnJvckV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFWFREcmF3QnVmZmVy
cy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFWFREcmF3QnVmZmVycy5oIFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5o
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRXZlbnQuY3BwIFwKQEAgLTE1MzIsNyArMTUz
NCw4IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dC5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9EYXRhVmll
dy5pZGwgXAotCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRE9NUGF0aC5pZGwgXAorCSQoV2ViQ29y
ZSkvaHRtbC9jYW52YXMvRE9NUGF0aC5pZGwgCisJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9FWFRE
cmF3QnVmZmVycy5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRl
ckFuaXNvdHJvcGljLmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9GbG9hdDMyQXJyYXku
aWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5pZGwgXApAQCAtMzI3
NCw2ICszMjc3LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9EYXRhVmlldy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFW
aWV3LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RPTVBhdGguaCBcCisJU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuY3BwIFwKKwlTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCBcCiAJU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAgXApJbmRleDogU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCShyZXZpc2lvbiAxNDQxMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MDM4LDYgKzQwMzgsNyBAQCBlbmFibGU/KFdFQkdMKSB7CiAgICAgICAg
IGh0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFNo
YWRlclByZWNpc2lvbkZvcm1hdC5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRP
YmplY3QuaCBcCisgICAgICAgIGh0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmggXAogICAgICAg
ICBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCBcCiAgICAgICAgIGh0
bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCBcCiAgICAgICAgIGh0bWwvY2FudmFz
L09FU1RleHR1cmVGbG9hdC5oIFwKQEAgLTQwNzIsNiArNDA3Myw3IEBAIGVuYWJsZT8oV0VCR0wp
IHsKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuY3BwIFwKICAgICAgICAgaHRtbC9j
YW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwIFwKICAgICAgICAgaHRtbC9jYW52
YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwIFwKKyAgICAgICAgaHRtbC9jYW52YXMvRVhURHJhd0J1
ZmZlcnMuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJv
cGljLmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3Bw
IFwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmNwcCBcCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCShyZXZpc2lvbiAxNDQxMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkJKHdvcmtpbmcgY29weSkKQEAgLTM2OSw2ICszNjksNyBAQAogICAgICAgICAgICAgJ2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwv
Y2FudmFzL0RhdGFWaWV3LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRE9NUGF0aC5p
ZGwnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbCcsCiAgICAg
ICAgICAgICAnaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmlkbCcsCiAg
ICAgICAgICAgICAnaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbCcsCiAgICAgICAgICAgICAn
aHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbCcsCkBAIC0zMzI3LDYgKzMzMjgsOCBAQAogICAg
ICAgICAgICAgJ2h0bWwvY2FudmFzL0RhdGFWaWV3LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9j
YW52YXMvRGF0YVZpZXcuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRE9NUGF0aC5oJywK
KyAgICAgICAgICAgICdodG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5jcHAnLAorICAgICAgICAg
ICAgJ2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmgnLAogICAgICAgICAgICAgJ2h0bWwvY2Fu
dmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAnLAogICAgICAgICAgICAgJ2h0bWwv
Y2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oJywKICAgICAgICAgICAgICdodG1s
L2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCcsCkBAIC02MzgwLDYgKzYzODMsOCBA
QAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNF
cnJvckNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNFcnJvckV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Vycm9yRXZlbnQuaCcsCisgICAgICAgICAgICAn
PChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0VYVERyYXdCdWZmZXJzLmNw
cCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0VYVERyYXdCdWZmZXJzLmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwJywKICAgICAg
ICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRVhUVGV4dHVy
ZUZpbHRlckFuaXNvdHJvcGljLmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNFdmVudC5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTQ0MTE0KQor
KysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xOTIxLDYgKzE5MjEsOCBAQAogCQk2RUJGMEU1NTEyQTg5Mjk4MDBEQjE3
MDkgLyogV2ViR0xFeHRlbnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZFQkYwRTUzMTJBODkyOTgwMERCMTcwOSAvKiBXZWJHTEV4dGVuc2lvbi5o
ICovOyB9OwogCQk2RUJGMEU3NjEyQTk4Njg4MDBEQjE3MDkgLyogSlNPRVNUZXh0dXJlRmxvYXQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVCRjBF
NzQxMkE5ODY4ODAwREIxNzA5IC8qIEpTT0VTVGV4dHVyZUZsb2F0LmNwcCAqLzsgfTsKIAkJNkVC
RjBFNzcxMkE5ODY4ODAwREIxNzA5IC8qIEpTT0VTVGV4dHVyZUZsb2F0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUJGMEU3NTEyQTk4Njg4MDBEQjE3
MDkgLyogSlNPRVNUZXh0dXJlRmxvYXQuaCAqLzsgfTsKKwkJNkVCRjBFNzYxMkE5ODY4ODAwREIx
NzBBIC8qIEpTRVhURHJhd0J1ZmZlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkVCRjBFNzQxMkE5ODY4ODAwREIxNzBBIC8qIEpTRVhURHJhd0J1
ZmZlcnMuY3BwICovOyB9OworCQk2RUJGMEU3NzEyQTk4Njg4MDBEQjE3MEEgLyogSlNFWFREcmF3
QnVmZmVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkVCRjBFNzUxMkE5ODY4ODAwREIxNzBBIC8qIEpTRVhURHJhd0J1ZmZlcnMuaCAqLzsgfTsKIAkJ
NkVEODc4QzQxNDc0OTNGNDAwNEMzNTk3IC8qIFJlbmRlclRhYmxlQ2FwdGlvbi5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUQ4NzhDMjE0NzQ5M0Y0
MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmNwcCAqLzsgfTsKIAkJNkVEODc4QzUxNDc0
OTNGNDAwNEMzNTk3IC8qIFJlbmRlclRhYmxlQ2FwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVEODc4QzMxNDc0OTNGNDAwNEMzNTk3IC8qIFJl
bmRlclRhYmxlQ2FwdGlvbi5oICovOyB9OwogCQk2RUU4QTc3MjEwRjgwM0YzMDA1QTRBMjQgLyog
SlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZFRThBNzcwMTBGODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdMQ29u
dGV4dEF0dHJpYnV0ZXMuY3BwICovOyB9OwpAQCAtMzgzOSw2ICszODQxLDkgQEAKIAkJOUZGRTNF
QTUxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RkZFM0VBMzExQjVBNDM5MDAzNzg3NEUgLyog
SlNNZW1vcnlJbmZvLmNwcCAqLzsgfTsKIAkJOUZGRTNFQTYxMUI1QTQzOTAwMzc4NzRFIC8qIEpT
TWVtb3J5SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOUZGRTNFQTQxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5oICovOyB9OwogCQlB
MDBCNzIxQTExREU2NDI4MDA4QUI5RkYgLyogQ2hlY2tlZEludC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTAwQjcyMTkxMURFNjQyNzAwOEFCOUZGIC8q
IENoZWNrZWRJbnQuaCAqLzsgfTsKKwkJQTAyNDU3NTExNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERy
YXdCdWZmZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEEwMjQ1NzRFMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5jcHAgKi87IH07
CisJCUEwMjQ1NzUyMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTAyNDU3NEYxNkNFQUEyNzAw
MEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmggKi87IH07CisJCUEwMjQ1NzUzMTZDRUFBMjcwMDBF
NTY3MSAvKiBFWFREcmF3QnVmZmVycy5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEEwMjQ1NzUwMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVm
ZmVycy5pZGwgKi87IH07CiAJCUEwN0QzMzU1MTUyQjYzMEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hh
ZGVyUHJlY2lzaW9uRm9ybWF0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEEwN0QzMzUzMTUyQjYzMEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hhZGVyUHJl
Y2lzaW9uRm9ybWF0LmNwcCAqLzsgfTsKIAkJQTA3RDMzNTYxNTJCNjMwRTAwMUI2MzkzIC8qIEpT
V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEEwN0QzMzU0MTUyQjYzMEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hh
ZGVyUHJlY2lzaW9uRm9ybWF0LmggKi87IH07CiAJCUEwN0QzMzU4MTUyQjYzMkQwMDFCNjM5MyAv
KiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTA3RDMzNTcxNTJCNjMyRDAwMUI2MzkzIC8qIFdlYkdMU2hh
ZGVyUHJlY2lzaW9uRm9ybWF0LmggKi87IH07CkBAIC05Mzg4LDYgKzkzOTMsOCBAQAogCQk2RUJG
MEU1MzEyQTg5Mjk4MDBEQjE3MDkgLyogV2ViR0xFeHRlbnNpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV2ViR0xFeHRlbnNpb24uaDsgcGF0aCA9IGNhbnZhcy9XZWJHTEV4
dGVuc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RUJGMEU3NDEyQTk4Njg4
MDBEQjE3MDkgLyogSlNPRVNUZXh0dXJlRmxvYXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNPRVNUZXh0dXJlRmxvYXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2RUJGMEU3NTEyQTk4Njg4MDBEQjE3MDkgLyogSlNPRVNUZXh0dXJlRmxvYXQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNPRVNUZXh0dXJlRmxvYXQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkVCRjBFNzQxMkE5ODY4ODAwREIxNzBBIC8q
IEpTRVhURHJhd0J1ZmZlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNFWFREcmF3QnVmZmVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZF
QkYwRTc1MTJBOTg2ODgwMERCMTcwQSAvKiBKU0VYVERyYXdCdWZmZXJzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRVhURHJhd0J1ZmZlcnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNkVEODc4QzIxNDc0OTNGNDAwNEMzNTk3IC8qIFJlbmRlclRhYmxlQ2Fw
dGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUYWJs
ZUNhcHRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RUQ4NzhDMzE0NzQ5
M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbmRlclRhYmxlQ2FwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2RUU4QTc3MDEwRjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1
dGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xDb250
ZXh0QXR0cmlidXRlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTMzOSw2
ICsxMTM0Niw5IEBACiAJCTlGRkUzRUEzMTFCNUE0MzkwMDM3ODc0RSAvKiBKU01lbW9yeUluZm8u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZW1vcnlJbmZvLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUZGRTNFQTQxMUI1QTQzOTAwMzc4NzRF
IC8qIEpTTWVtb3J5SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01l
bW9yeUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTAwQjcyMTkxMURFNjQy
NzAwOEFCOUZGIC8qIENoZWNrZWRJbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gQ2hlY2tlZEludC5oOyBwYXRoID0gY2FudmFzL0NoZWNrZWRJbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTAyNDU3NEUxNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZm
ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEVYVERyYXdCdWZm
ZXJzLmNwcDsgcGF0aCA9IGNhbnZhcy9FWFREcmF3QnVmZmVycy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUEwMjQ1NzRGMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVy
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBFWFREcmF3QnVmZmVycy5oOyBw
YXRoID0gY2FudmFzL0VYVERyYXdCdWZmZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUEwMjQ1NzUwMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBuYW1lID0gRVhURHJhd0J1ZmZlcnMuaWRsOyBwYXRoID0gY2FudmFzL0VYVERy
YXdCdWZmZXJzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTA3RDMzNTMxNTJC
NjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1h
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEwN0QzMzU0MTUyQjYzMEUwMDFC
NjM5MyAvKiBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTA3RDMzNTcxNTJCNjMyRDAwMUI2MzkzIC8qIFdlYkdMU2hh
ZGVyUHJlY2lzaW9uRm9ybWF0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdl
YkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0Lmg7IHBhdGggPSBjYW52YXMvV2ViR0xTaGFkZXJQcmVj
aXNpb25Gb3JtYXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NzA5LDYgKzE1
NzE5LDkgQEAKIAkJNDk0ODRGQUUxMDJDRjAxRTAwMTg3REQzIC8qIGNhbnZhcyAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQTAyNDU3NEUxNkNFQUEyNzAw
MEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmNwcCAqLywKKwkJCQlBMDI0NTc0RjE2Q0VBQTI3MDAw
RTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuaCAqLywKKwkJCQlBMDI0NTc1MDE2Q0VBQTI3MDAwRTU2
NzEgLyogRVhURHJhd0J1ZmZlcnMuaWRsICovLAogCQkJCTQ5RUVDRENDMTA1MDNDMjMwMDA5OUZB
QiAvKiBBcnJheUJ1ZmZlci5pZGwgKi8sCiAJCQkJNDlFRUNEQzkxMDUwM0MyMzAwMDk5RkFCIC8q
IEFycmF5QnVmZmVyVmlldy5pZGwgKi8sCiAJCQkJNkU0RTkxQTcxMEY3RkIzMTAwQTI3NzlDIC8q
IENhbnZhc0NvbnRleHRBdHRyaWJ1dGVzLmNwcCAqLywKQEAgLTE4OTc5LDYgKzE4OTkyLDggQEAK
IAkJCQk3Njk0NTYzQjEyMTREOTdDMDAwN0NCQUUgLyogSlNET01Ub2tlbkxpc3QuaCAqLywKIAkJ
CQkyRTM3RTAwMzEyREJDNUE0MDBBNkIyMzMgLyogSlNET01VUkwuY3BwICovLAogCQkJCTJFMzdF
MDA0MTJEQkM1QTQwMEE2QjIzMyAvKiBKU0RPTVVSTC5oICovLAorCQkJCTZFQkYwRTc0MTJBOTg2
ODgwMERCMTcwQSAvKiBKU0VYVERyYXdCdWZmZXJzLmNwcCAqLywKKwkJCQk2RUJGMEU3NTEyQTk4
Njg4MDBEQjE3MEEgLyogSlNFWFREcmF3QnVmZmVycy5oICovLAogCQkJCTc3Mjg2OTgxMTRGRDlB
REEwMEY0ODREQyAvKiBKU0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAgKi8sCiAJCQkJ
NzcyODY5ODIxNEZEOUFEQTAwRjQ4NERDIC8qIEpTRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGlj
LmggKi8sCiAJCQkJNDlFRUNFRjQxMDUwNzBDNDAwMDk5RkFCIC8qIEpTRmxvYXQzMkFycmF5LmNw
cCAqLywKQEAgLTI0OTMxLDYgKzI0OTQ2LDcgQEAKIAkJCQlFMEZFRjM3MkIzN0M1M0VBQzFDMUZC
RUUgLyogSlNFdmVudFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUZDN0RDMjZDRkUyNTYz
MjAwQjg1QUU0IC8qIEpTRXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMzMTRBQ0VD
MTA4OTIwODYwMDBGMEU1NiAvKiBKU0V4Y2VwdGlvbkJhc2UuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTZFQkYwRTc3MTJBOTg2ODgwMERCMTcwQSAvKiBKU0VYVERyYXdCdWZmZXJzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3NzI4Njk4NDE0RkQ5QURBMDBGNDg0REMgLyogSlNFWFRUZXh0dXJlRmlsdGVy
QW5pc290cm9waWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDBGMDE1MEUwQTE4OTUwMEZEMDRF
MyAvKiBKU0ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg5M0M0N0I4MTIzOEEwOTkwMDJCM0Q4
NiAvKiBKU0ZpbGVDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjYyMiw2ICsyNjYzOCw3
IEBACiAJCQkJRkQ1MzczNTMxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MUI4Q0Q0NjE2RDA0NTkxMDAwRThDQzAgLyogU2VsZWN0b3JDaGVja2VyRmFz
dFBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5MTQwMjU3MTY4RTAyRUMwMDJENkM2QSAvKiBU
aW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBBMDI0NTc1MjE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1
ZmZlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjgyNjYsNiArMjgyODMsNyBAQAogCQkJCUM2QTcw
MzMyNUM5RDBCNkNEQ0JDNEQ3NyAvKiBKU0V2ZW50VGFyZ2V0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDNjA5MDIwMEU5MUI4RUMwMDBDNjhCNSAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTMzMTRBQ0VCMTA4OTIwODYwMDBGMEU1NiAvKiBKU0V4Y2VwdGlv
bkJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNkVCRjBFNzYxMkE5ODY4ODAwREIxNzBBIC8q
IEpTRVhURHJhd0J1ZmZlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzcyODY5ODMxNEZEOUFE
QTAwRjQ4NERDIC8qIEpTRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDMDBGMDE0MEUwQTE4OTUwMEZEMDRFMyAvKiBKU0ZpbGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODkzQzQ3QjcxMjM4QTA5OTAwMkIzRDg2IC8qIEpTRmlsZUNhbGxiYWNrLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjk4MTcsNiArMjk4MzUsNyBAQAogCQkJCUZENTM3MzUyMTM3
QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MUI4Q0Q0
NTE2RDA0NTkxMDAwRThDQzAgLyogU2VsZWN0b3JDaGVja2VyRmFzdFBhdGguY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDkxNDAyNTYxNjhFMDJFODAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVu
dFByb2Nlc3Nvci5jcHAgaW4gU291cmNlcyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQTAyNDU3NTExNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkocmV2aXNpb24gMTQ0MTE0
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRD
dXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMCArMjksMTIgQEAKIAogI2luY2x1ZGUg
IkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCiAKKyNpbmNsdWRlICJFWFREcmF3QnVmZmVycy5o
IgogI2luY2x1ZGUgIkVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIgogI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJKU0VYVERyYXdCdWZmZXJzLmgiCiAjaW5j
bHVkZSAiSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCIKICNpbmNsdWRlICJKU0Zsb2F0
MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTSFRNTENhbnZhc0VsZW1lbnQuaCIKQEAgLTE5NCw2ICsx
OTYsOCBAQCBzdGF0aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNECiAgICAgc3dp
dGNoIChleHRlbnNpb24tPmdldE5hbWUoKSkgewogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Oldl
YkdMTG9zZUNvbnRleHROYW1lOgogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmpl
Y3QsIHN0YXRpY19jYXN0PFdlYkdMTG9zZUNvbnRleHQqPihleHRlbnNpb24pKTsKKyAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpFWFREcmF3QnVmZmVyc05hbWU6CisgICAgICAgIHJldHVybiB0b0pT
KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhURHJhd0J1ZmZlcnMqPihleHRlbnNp
b24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9w
aWNOYW1lOgogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19j
YXN0PEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2Ug
V2ViR0xFeHRlbnNpb246Ok9FU1N0YW5kYXJkRGVyaXZhdGl2ZXNOYW1lOgpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgJKHJldmlzaW9uIDE0NDExNCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDMs
NiArMjQzLDM4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiB2OEFycmF5KFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4sIHY4OjpJc29sYXRlKik7CiAK
KyAgICAvLyBDb252ZXJ0IGEgdmFsdWUgdG8gYSAzMi1iaXQgaW50ZWdlci4gVGhlIGNvbnZlcnNp
b24gZmFpbHMgaWYgdGhlCisgICAgLy8gdmFsdWUgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBhbiBp
bnRlZ2VyIG9yIGNvbnZlcnRzIHRvIG5hbiBvciB0byBhbiBpbmZpbml0eS4KKyAgICBpbnQgdG9J
bnQzMih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4sIGJvb2wmIG9rKTsKKworICAgIC8vIENvbnZlcnQg
YSB2YWx1ZSB0byBhIDMyLWJpdCBpbnRlZ2VyIGFzc3VtaW5nIHRoZSBjb252ZXJzaW9uIGNhbm5v
dCBmYWlsLgorICAgIGlubGluZSBpbnQgdG9JbnQzMih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFs
dWUpCisgICAgeworICAgICAgICBib29sIG9rOworICAgICAgICByZXR1cm4gdG9JbnQzMih2YWx1
ZSwgb2spOworICAgIH0KKworICAgIC8vIENvbnZlcnQgYSB2YWx1ZSB0byBhIDMyLWJpdCB1bnNp
Z25lZCBpbnRlZ2VyLiBUaGUgY29udmVyc2lvbiBmYWlscyBpZiB0aGUKKyAgICAvLyB2YWx1ZSBj
YW5ub3QgYmUgY29udmVydGVkIHRvIGFuIHVuc2lnbmVkIGludGVnZXIgb3IgY29udmVydHMgdG8g
bmFuIG9yIHRvIGFuIGluZmluaXR5LgorICAgIHVpbnQzMl90IHRvVUludDMyKHY4OjpIYW5kbGU8
djg6OlZhbHVlPiwgYm9vbCYgb2spOworCisgICAgLy8gQ29udmVydCBhIHZhbHVlIHRvIGEgMzIt
Yml0IHVuc2lnbmVkIGludGVnZXIgYXNzdW1pbmcgdGhlIGNvbnZlcnNpb24gY2Fubm90IGZhaWwu
CisgICAgaW5saW5lIHVpbnQzMl90IHRvVUludDMyKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1
ZSkKKyAgICB7CisgICAgICAgIGJvb2wgb2s7CisgICAgICAgIHJldHVybiB0b1VJbnQzMih2YWx1
ZSwgb2spOworICAgIH0KKworICAgIGlubGluZSBmbG9hdCB0b0Zsb2F0KHY4OjpMb2NhbDx2ODo6
VmFsdWU+IHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pih2
YWx1ZS0+TnVtYmVyVmFsdWUoKSk7CisgICAgfQorCisgICAgaW5saW5lIGxvbmcgbG9uZyB0b0lu
dDY0KHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGxvbmcgbG9uZz4odmFsdWUtPkludGVnZXJWYWx1ZSgpKTsKKyAgICB9CisKICAg
ICB0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3QgTmF0aXZlVmFsdWVUcmFpdHM7CiAKICAgICB0ZW1w
bGF0ZTw+CkBAIC0yNTQsNiArMjg2LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB9Owog
CiAgICAgdGVtcGxhdGU8PgorICAgIHN0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czx1bnNpZ25lZD4g
eworICAgICAgICBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIG5hdGl2ZVZhbHVlKGNvbnN0IHY4OjpI
YW5kbGU8djg6OlZhbHVlPiYgdmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0
b1VJbnQzMih2YWx1ZSk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgdGVtcGxhdGU8PgogICAg
IHN0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czxmbG9hdD4gewogICAgICAgICBzdGF0aWMgaW5saW5l
IGZsb2F0IG5hdGl2ZVZhbHVlKGNvbnN0IHY4OjpIYW5kbGU8djg6OlZhbHVlPiYgdmFsdWUpCiAg
ICAgICAgIHsKQEAgLTM0OCwzOCArMzg4LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
UGFzc1JlZlB0cjxOb2RlRmlsdGVyPiB0b05vZGVGaWx0ZXIodjg6OkhhbmRsZTx2ODo6VmFsdWU+
KTsKIAotICAgIC8vIENvbnZlcnQgYSB2YWx1ZSB0byBhIDMyLWJpdCBpbnRlZ2VyLiAgVGhlIGNv
bnZlcnNpb24gZmFpbHMgaWYgdGhlCi0gICAgLy8gdmFsdWUgY2Fubm90IGJlIGNvbnZlcnRlZCB0
byBhbiBpbnRlZ2VyIG9yIGNvbnZlcnRzIHRvIG5hbiBvciB0byBhbiBpbmZpbml0eS4KLSAgICBp
bnQgdG9JbnQzMih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIGJvb2wmIG9rKTsKLQotICAg
IC8vIENvbnZlcnQgYSB2YWx1ZSB0byBhIDMyLWJpdCBpbnRlZ2VyIGFzc3VtaW5nIHRoZSBjb252
ZXJzaW9uIGNhbm5vdCBmYWlsLgotICAgIGlubGluZSBpbnQgdG9JbnQzMih2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gdmFsdWUpCi0gICAgewotICAgICAgICBib29sIG9rOwotICAgICAgICByZXR1cm4g
dG9JbnQzMih2YWx1ZSwgb2spOwotICAgIH0KLQotICAgIC8vIENvbnZlcnQgYSB2YWx1ZSB0byBh
IDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyLiAgVGhlIGNvbnZlcnNpb24gZmFpbHMgaWYgdGhlCi0g
ICAgLy8gdmFsdWUgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBhbiB1bnNpZ25lZCBpbnRlZ2VyIG9y
IGNvbnZlcnRzIHRvIG5hbiBvciB0byBhbiBpbmZpbml0eS4KLSAgICB1aW50MzJfdCB0b1VJbnQz
Mih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIGJvb2wmIG9rKTsKLQotICAgIC8vIENvbnZl
cnQgYSB2YWx1ZSB0byBhIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyIGFzc3VtaW5nIHRoZSBjb252
ZXJzaW9uIGNhbm5vdCBmYWlsLgotICAgIGlubGluZSB1aW50MzJfdCB0b1VJbnQzMih2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCi0gICAgewotICAgICAgICBib29sIG9rOwotICAgICAgICBy
ZXR1cm4gdG9VSW50MzIodmFsdWUsIG9rKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgZmxvYXQgdG9G
bG9hdCh2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxmbG9hdD4odmFsdWUtPk51bWJlclZhbHVlKCkpOwotICAgIH0KLQotICAgIGlu
bGluZSBsb25nIGxvbmcgdG9JbnQ2NCh2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KHZhbHVlLT5JbnRlZ2VyVmFs
dWUoKSk7Ci0gICAgfQotCiAgICAgaW5saW5lIGJvb2wgaXNVbmRlZmluZWRPck51bGwodjg6Okhh
bmRsZTx2ODo6VmFsdWU+IHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIHZhbHVlLT5Jc051
bGwoKSB8fCB2YWx1ZS0+SXNVbmRlZmluZWQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdD
b250ZXh0Q3VzdG9tLmNwcAkocmV2aXNpb24gMTQ0MTE0KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAj
aW5jbHVkZSAiVjhBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNp
bmNsdWRlICJWOEVYVERyYXdCdWZmZXJzLmgiCiAjaW5jbHVkZSAiVjhFWFRUZXh0dXJlRmlsdGVy
QW5pc290cm9waWMuaCIKICNpbmNsdWRlICJWOEZsb2F0MzJBcnJheS5oIgogI2luY2x1ZGUgIlY4
SFRNTENhbnZhc0VsZW1lbnQuaCIKQEAgLTE3Niw2ICsxNzcsMTAgQEAgc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB0b1Y4T2JqZWN0KAogICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4
KHN0YXRpY19jYXN0PFdlYkdMTG9zZUNvbnRleHQqPihleHRlbnNpb24pLCBjb250ZXh0T2JqZWN0
LCBpc29sYXRlKTsKICAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJ3ZWJHTExvc2VDb250ZXh0TmFt
ZSI7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVERyYXdCdWZm
ZXJzTmFtZToKKyAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxFWFRE
cmF3QnVmZmVycyo+KGV4dGVuc2lvbiksIGNvbnRleHRPYmplY3QsIGlzb2xhdGUpOworICAgICAg
ICByZWZlcmVuY2VOYW1lID0gImV4dERyYXdCdWZmZXJzTmFtZSI7CisgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpY05hbWU6
CiAgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8RVhUVGV4dHVyZUZp
bHRlckFuaXNvdHJvcGljKj4oZXh0ZW5zaW9uKSwgY29udGV4dE9iamVjdCwgaXNvbGF0ZSk7CiAg
ICAgICAgIHJlZmVyZW5jZU5hbWUgPSAiZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljTmFtZSI7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuY3Bw
CShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZl
cnMuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQkdMKQorCisjaW5jbHVkZSAiRVhURHJhd0J1ZmZlcnMu
aCIKKworI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K0VYVERyYXdCdWZmZXJzOjpFWFREcmF3QnVmZmVycyhXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNv
bnRleHQpCisgICAgOiBXZWJHTEV4dGVuc2lvbihjb250ZXh0KQoreworfQorCitFWFREcmF3QnVm
ZmVyczo6fkVYVERyYXdCdWZmZXJzKCkKK3sKK30KKworV2ViR0xFeHRlbnNpb246OkV4dGVuc2lv
bk5hbWUgRVhURHJhd0J1ZmZlcnM6OmdldE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBXZWJH
TEV4dGVuc2lvbjo6RVhURHJhd0J1ZmZlcnNOYW1lOworfQorCitQYXNzT3duUHRyPEVYVERyYXdC
dWZmZXJzPiBFWFREcmF3QnVmZmVyczo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29u
dGV4dCkKK3sKKyAgICBFWFREcmF3QnVmZmVycyogeCA9IG5ldyBFWFREcmF3QnVmZmVycyhjb250
ZXh0KTsKKyAgICByZXR1cm4gYWRvcHRQdHIoeCk7Cit9CisKKy8vIHN0YXRpYworYm9vbCBFWFRE
cmF3QnVmZmVyczo6c3VwcG9ydGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKK3sK
KyAgICBFeHRlbnNpb25zM0QqIGV4dGVuc2lvbnMgPSBjb250ZXh0LT5ncmFwaGljc0NvbnRleHQz
RCgpLT5nZXRFeHRlbnNpb25zKCk7CisgICAgcmV0dXJuIGV4dGVuc2lvbnMtPnN1cHBvcnRzKCJH
TF9FWFRfZHJhd19idWZmZXJzIik7Cit9CisKK3ZvaWQgRVhURHJhd0J1ZmZlcnM6OmRyYXdCdWZm
ZXJzRVhUKGNvbnN0IFZlY3RvcjxHQzNEZW51bT4mIGJ1ZmZlcnMpCit7CisgICAgaWYgKG1fY29u
dGV4dC0+aXNDb250ZXh0TG9zdCgpKQorICAgICAgICByZXR1cm47CisgICAgR0MzRHNpemVpIG4g
PSBidWZmZXJzLnNpemUoKTsKKyAgICBjb25zdCBHQzNEZW51bSogYnVmcyA9IGJ1ZmZlcnMuZGF0
YSgpOworICAgIGlmICghbV9jb250ZXh0LT5tX2ZyYW1lYnVmZmVyQmluZGluZykgeworICAgICAg
ICBpZiAobiAhPSAxKSB7CisgICAgICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9y
KEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFLCAiZHJhd0J1ZmZlcnNFWFQiLCAibW9y
ZSB0aGFuIG9uZSBidWZmZXIiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
ICAgICBpZiAoYnVmc1swXSAhPSBHcmFwaGljc0NvbnRleHQzRDo6QkFDSyAmJiBidWZzWzBdICE9
IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKSB7CisgICAgICAgICAgICBtX2NvbnRleHQtPnN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgImRyYXdC
dWZmZXJzRVhUIiwgIkJBQ0sgb3IgTk9ORSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIC8vIEJlY2F1c2UgdGhlIGJhY2tidWZmZXIgaXMgc2ltdWxhdGVkIHdlIG5l
ZWQgdG8gY2hhbmdlIEJBQ0sgdG8gQ09MT1JfQVRUQUNITUVOVDAKKyAgICAgICAgR0MzRGVudW0g
dmFsdWUgPSAoYnVmc1swXSA9PSBHcmFwaGljc0NvbnRleHQzRDo6QkFDSykgPyBHcmFwaGljc0Nv
bnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDAgOiBHcmFwaGljc0NvbnRleHQzRDo6Tk9ORTsKKyAg
ICAgICAgbV9jb250ZXh0LT5ncmFwaGljc0NvbnRleHQzRCgpLT5nZXRFeHRlbnNpb25zKCktPmRy
YXdCdWZmZXJzRVhUKDEsICZ2YWx1ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG4gPiBt
X2NvbnRleHQtPmdldE1heERyYXdCdWZmZXJzKCkpIHsKKyAgICAgICAgICAgIG1fY29udGV4dC0+
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUsICJkcmF3
QnVmZmVyc0VYVCIsICJtb3JlIHRoYW4gbWF4IGRyYXcgYnVmZmVycyIpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgICAgIGZvciAoR0MzRHNpemVpIGkgPSAwOyBpIDwgbjsg
KytpKSB7CisgICAgICAgICAgICBpZiAoYnVmc1tpXSAhPSBHcmFwaGljc0NvbnRleHQzRDo6Tk9O
RSAmJiBidWZzW2ldICE9IHN0YXRpY19jYXN0PEdDM0RlbnVtPihFeHRlbnNpb25zM0Q6OkNPTE9S
X0FUVEFDSE1FTlQwX0VYVCArIGkpKSB7CisgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5zeW50
aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sICJkcmF3
QnVmZmVyc0VYVCIsICJDT0xPUl9BVFRBQ0hNRU5UaV9FWFQgb3IgTk9ORSIpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBtX2NvbnRl
eHQtPm1fZnJhbWVidWZmZXJCaW5kaW5nLT5kcmF3QnVmZmVycyhidWZmZXJzKTsKKyAgICB9Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKClBy
b3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZm
ZXJzLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmgJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBFWFREcmF3QnVmZmVyc19oCisj
ZGVmaW5lIEVYVERyYXdCdWZmZXJzX2gKKworI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCisj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBFWFREcmF3QnVmZmVycyA6IHB1YmxpYyBXZWJHTEV4dGVuc2lvbiB7CitwdWJsaWM6CisgICAg
c3RhdGljIFBhc3NPd25QdHI8RVhURHJhd0J1ZmZlcnM+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0Nv
bnRleHQqKTsKKworICAgIHN0YXRpYyBib29sIHN1cHBvcnRlZChXZWJHTFJlbmRlcmluZ0NvbnRl
eHQqKTsKKworICAgIHZpcnR1YWwgfkVYVERyYXdCdWZmZXJzKCk7CisgICAgdmlydHVhbCBFeHRl
bnNpb25OYW1lIGdldE5hbWUoKSBjb25zdDsKKworICAgIHZvaWQgZHJhd0J1ZmZlcnNFWFQoY29u
c3QgVmVjdG9yPEdDM0RlbnVtPiYgYnVmZmVycyk7CisKK3ByaXZhdGU6CisgICAgRVhURHJhd0J1
ZmZlcnMoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFWFREcmF3QnVmZmVyc19oCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5oCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRk
ZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0VYVERyYXdCdWZmZXJzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9FWFREcmF3QnVmZmVycy5pZGwJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgR0xlbnVtOworCitbCisgICAgQ29u
ZGl0aW9uYWw9V0VCR0wsCisgICAgSlNHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxDb250ZXh0LAor
ICAgIE9taXRDb25zdHJ1Y3RvciwKKyAgICBEb05vdENoZWNrQ29uc3RhbnRzCitdIGludGVyZmFj
ZSBFWFREcmF3QnVmZmVycyB7CisgICAgY29uc3QgR0xlbnVtIENPTE9SX0FUVEFDSE1FTlQwX0VY
VCA9IDB4OENFMDsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDFfRVhUID0gMHg4
Q0UxOworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UMl9FWFQgPSAweDhDRTI7Cisg
ICAgY29uc3QgR0xlbnVtIENPTE9SX0FUVEFDSE1FTlQzX0VYVCA9IDB4OENFMzsKKyAgICBjb25z
dCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDRfRVhUID0gMHg4Q0U0OworICAgIGNvbnN0IEdMZW51
bSBDT0xPUl9BVFRBQ0hNRU5UNV9FWFQgPSAweDhDRTU7CisgICAgY29uc3QgR0xlbnVtIENPTE9S
X0FUVEFDSE1FTlQ2X0VYVCA9IDB4OENFNjsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNI
TUVOVDdfRVhUID0gMHg4Q0U3OworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UOF9F
WFQgPSAweDhDRTg7CisgICAgY29uc3QgR0xlbnVtIENPTE9SX0FUVEFDSE1FTlQ5X0VYVCA9IDB4
OENFOTsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDEwX0VYVCA9IDB4OENFQTsK
KyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDExX0VYVCA9IDB4OENFQjsKKyAgICBj
b25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDEyX0VYVCA9IDB4OENFQzsKKyAgICBjb25zdCBH
TGVudW0gQ09MT1JfQVRUQUNITUVOVDEzX0VYVCA9IDB4OENFRDsKKyAgICBjb25zdCBHTGVudW0g
Q09MT1JfQVRUQUNITUVOVDE0X0VYVCA9IDB4OENFRTsKKyAgICBjb25zdCBHTGVudW0gQ09MT1Jf
QVRUQUNITUVOVDE1X0VYVCA9IDB4OENFRjsKKworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZF
UjBfRVhUID0gMHg4ODI1OworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjFfRVhUID0gMHg4
ODI2OworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjJfRVhUID0gMHg4ODI3OworICAgIGNv
bnN0IEdMZW51bSBEUkFXX0JVRkZFUjNfRVhUID0gMHg4ODI4OworICAgIGNvbnN0IEdMZW51bSBE
UkFXX0JVRkZFUjRfRVhUID0gMHg4ODI5OworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjVf
RVhUID0gMHg4ODJBOworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjZfRVhUID0gMHg4ODJC
OworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjdfRVhUID0gMHg4ODJDOworICAgIGNvbnN0
IEdMZW51bSBEUkFXX0JVRkZFUjhfRVhUID0gMHg4ODJEOworICAgIGNvbnN0IEdMZW51bSBEUkFX
X0JVRkZFUjlfRVhUID0gMHg4ODJFOworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjEwX0VY
VCA9IDB4ODgyRjsKKyAgICBjb25zdCBHTGVudW0gRFJBV19CVUZGRVIxMV9FWFQgPSAweDg4MzA7
CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSMTJfRVhUID0gMHg4ODMxOworICAgIGNvbnN0
IEdMZW51bSBEUkFXX0JVRkZFUjEzX0VYVCA9IDB4ODgzMjsKKyAgICBjb25zdCBHTGVudW0gRFJB
V19CVUZGRVIxNF9FWFQgPSAweDg4MzM7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSMTVf
RVhUID0gMHg4ODM0OworCisgICAgY29uc3QgR0xlbnVtIE1BWF9DT0xPUl9BVFRBQ0hNRU5UU19F
WFQgPSAweDhDREY7CisgICAgY29uc3QgR0xlbnVtIE1BWF9EUkFXX0JVRkZFUlNfRVhUID0gMHg4
ODI0OworCisgICAgdm9pZCBkcmF3QnVmZmVyc0VYVChpbiBzZXF1ZW5jZTxHTGVudW0+IGJ1ZmZl
cnMpOworfTsKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0VYVERyYXdCdWZmZXJzLmlkbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsg
TEYKCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgJ
KHJldmlzaW9uIDE0NDExNCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0
ZW5zaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAgcHVibGljOgogICAgIC8v
IEV4dGVuc2lvbiBuYW1lcyBhcmUgbmVlZGVkIHRvIHByb3Blcmx5IHdyYXAgaW5zdGFuY2VzIGlu
IEphdmFTY3JpcHQgb2JqZWN0cy4KICAgICBlbnVtIEV4dGVuc2lvbk5hbWUgewogICAgICAgICBX
ZWJHTExvc2VDb250ZXh0TmFtZSwKKyAgICAgICAgRVhURHJhd0J1ZmZlcnNOYW1lLAogICAgICAg
ICBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWNOYW1lLAogICAgICAgICBPRVNUZXh0dXJlRmxv
YXROYW1lLAogICAgICAgICBPRVNTdGFuZGFyZERlcml2YXRpdmVzTmFtZSwKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCShyZXZpc2lv
biAxNDQxMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksOCBAQAogCiAjaW5jbHVkZSAiV2ViR0xG
cmFtZWJ1ZmZlci5oIgogCisjaW5jbHVkZSAiRVhURHJhd0J1ZmZlcnMuaCIKKyNpbmNsdWRlICJF
eHRlbnNpb25zM0QuaCIKICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUg
IldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgogCkBAIC0yOTIsNiArMjk0LDcgQEAgdm9pZCBXZWJH
TEZyYW1lYnVmZmVyOjpzZXRBdHRhY2htZW50Rm9yQgogICAgICAgICByZXR1cm47CiAgICAgaWYg
KHRleHR1cmUgJiYgdGV4dHVyZS0+b2JqZWN0KCkpIHsKICAgICAgICAgbV9hdHRhY2htZW50cy5h
ZGQoYXR0YWNobWVudCwgV2ViR0xUZXh0dXJlQXR0YWNobWVudDo6Y3JlYXRlKHRleHR1cmUsIHRl
eFRhcmdldCwgbGV2ZWwpKTsKKyAgICAgICAgZHJhd0J1ZmZlcnNJZk5lY2Vzc2FyeShmYWxzZSk7
CiAgICAgICAgIHRleHR1cmUtPm9uQXR0YWNoZWQoKTsKICAgICB9CiB9CkBAIC0zMDQsNiArMzA3
LDcgQEAgdm9pZCBXZWJHTEZyYW1lYnVmZmVyOjpzZXRBdHRhY2htZW50Rm9yQgogICAgICAgICBy
ZXR1cm47CiAgICAgaWYgKHJlbmRlcmJ1ZmZlciAmJiByZW5kZXJidWZmZXItPm9iamVjdCgpKSB7
CiAgICAgICAgIG1fYXR0YWNobWVudHMuYWRkKGF0dGFjaG1lbnQsIFdlYkdMUmVuZGVyYnVmZmVy
QXR0YWNobWVudDo6Y3JlYXRlKHJlbmRlcmJ1ZmZlcikpOworICAgICAgICBkcmF3QnVmZmVyc0lm
TmVjZXNzYXJ5KGZhbHNlKTsKICAgICAgICAgcmVuZGVyYnVmZmVyLT5vbkF0dGFjaGVkKCk7CiAg
ICAgfQogfQpAQCAtMzQwLDYgKzM0NCw3IEBAIHZvaWQgV2ViR0xGcmFtZWJ1ZmZlcjo6cmVtb3Zl
QXR0YWNobWVudEYKICAgICBpZiAoYXR0YWNobWVudE9iamVjdCkgewogICAgICAgICBhdHRhY2ht
ZW50T2JqZWN0LT5vbkRldGFjaGVkKGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKSk7CiAg
ICAgICAgIG1fYXR0YWNobWVudHMucmVtb3ZlKGF0dGFjaG1lbnQpOworICAgICAgICBkcmF3QnVm
ZmVyc0lmTmVjZXNzYXJ5KGZhbHNlKTsKICAgICAgICAgc3dpdGNoIChhdHRhY2htZW50KSB7CiAg
ICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVDoK
ICAgICAgICAgICAgIGF0dGFjaChHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQVRUQUNITUVOVCwg
R3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0FUVEFDSE1FTlQpOwpAQCAtNTg1LDYgKzU5MCwzOSBA
QCBib29sIFdlYkdMRnJhbWVidWZmZXI6OmlzQm91bmQoKSBjb25zdAogICAgIHJldHVybiAoY29u
dGV4dCgpLT5tX2ZyYW1lYnVmZmVyQmluZGluZy5nZXQoKSA9PSB0aGlzKTsKIH0KIAordm9pZCBX
ZWJHTEZyYW1lYnVmZmVyOjpkcmF3QnVmZmVycyhjb25zdCBWZWN0b3I8R0MzRGVudW0+JiBidWZz
KQoreworICAgIG1fZHJhd0J1ZmZlcnMgPSBidWZzOworICAgIG1fZmlsdGVyZWREcmF3QnVmZmVy
cy5yZXNpemUobV9kcmF3QnVmZmVycy5zaXplKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbV9maWx0ZXJlZERyYXdCdWZmZXJzLnNpemUoKTsgKytpKQorICAgICAgICBtX2ZpbHRlcmVk
RHJhd0J1ZmZlcnNbaV0gPSBHcmFwaGljc0NvbnRleHQzRDo6Tk9ORTsKKyAgICBkcmF3QnVmZmVy
c0lmTmVjZXNzYXJ5KHRydWUpOworfQorCit2b2lkIFdlYkdMRnJhbWVidWZmZXI6OmRyYXdCdWZm
ZXJzSWZOZWNlc3NhcnkoYm9vbCBmb3JjZSkKK3sKKyAgICBpZiAoIWNvbnRleHQoKS0+bV9leHRE
cmF3QnVmZmVycykKKyAgICAgICAgcmV0dXJuOworICAgIGJvb2wgcmVzZXQgPSBmb3JjZTsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fZHJhd0J1ZmZlcnMuc2l6ZSgpOyBpKyspIHsKKyAg
ICAgICAgaWYgKG1fZHJhd0J1ZmZlcnNbaV0gIT0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUgJiYg
Z2V0QXR0YWNobWVudChtX2RyYXdCdWZmZXJzW2ldKSkgeworICAgICAgICAgICAgaWYgKG1fZmls
dGVyZWREcmF3QnVmZmVyc1tpXSAhPSBtX2RyYXdCdWZmZXJzW2ldKSB7CisgICAgICAgICAgICAg
ICAgbV9maWx0ZXJlZERyYXdCdWZmZXJzW2ldID0gbV9kcmF3QnVmZmVyc1tpXTsKKyAgICAgICAg
ICAgICAgICByZXNldCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBpZiAobV9maWx0ZXJlZERyYXdCdWZmZXJzW2ldICE9IEdyYXBoaWNzQ29udGV4
dDNEOjpOT05FKSB7CisgICAgICAgICAgICAgICAgbV9maWx0ZXJlZERyYXdCdWZmZXJzW2ldID0g
R3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkU7CisgICAgICAgICAgICAgICAgcmVzZXQgPSB0cnVlOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIGlmIChyZXNldCkgeworICAgICAg
ICBjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCktPmdldEV4dGVuc2lvbnMoKS0+ZHJhd0J1
ZmZlcnNFWFQoCisgICAgICAgICAgICBtX2ZpbHRlcmVkRHJhd0J1ZmZlcnMuc2l6ZSgpLCBtX2Zp
bHRlcmVkRHJhd0J1ZmZlcnMuZGF0YSgpKTsKKyAgICB9Cit9CisKIH0KIAogI2VuZGlmIC8vIEVO
QUJMRShXRUJHTCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVi
dWZmZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZy
YW1lYnVmZmVyLmgJKHJldmlzaW9uIDE0NDExNCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMRnJhbWVidWZmZXIuaAkod29ya2luZyBjb3B5KQpAQCAtOTUsNiArOTUsOSBAQCBw
dWJsaWM6CiAKICAgICBib29sIGhhc1N0ZW5jaWxCdWZmZXIoKSBjb25zdDsKIAorICAgIC8vIFdy
YXBwZXIgZm9yIGRyYXdCdWZmZXJzRVhUL2RyYXdCdWZmZXJzQVJCIHRvIHdvcmsgYXJvdW5kIGEg
ZHJpdmVyIGJ1Zy4KKyAgICB2b2lkIGRyYXdCdWZmZXJzKGNvbnN0IFZlY3RvcjxHQzNEZW51bT4m
IGJ1ZnMpOworCiBwcm90ZWN0ZWQ6CiAgICAgV2ViR0xGcmFtZWJ1ZmZlcihXZWJHTFJlbmRlcmlu
Z0NvbnRleHQqKTsKIApAQCAtMTE0LDExICsxMTcsMTcgQEAgcHJpdmF0ZToKICAgICAvLyBhdHRh
Y2ggJ2F0dGFjaG1lbnQnIGF0ICdhdHRhY2htZW50UG9pbnQnLgogICAgIHZvaWQgYXR0YWNoKEdD
M0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIGF0dGFjaG1lbnRQb2ludCk7CiAKKyAgICAvLyBD
aGVjayBpZiBhIG5ldyBkcmF3QnVmZmVycyBjYWxsIHNob3VsZCBiZSBpc3N1ZWQuIFRoaXMgaXMg
Y2FsbGVkIHdoZW4gd2UgYWRkIG9yIHJlbW92ZSBhbiBhdHRhY2htZW50LgorICAgIHZvaWQgZHJh
d0J1ZmZlcnNJZk5lY2Vzc2FyeShib29sIGZvcmNlKTsKKwogICAgIHR5cGVkZWYgV1RGOjpIYXNo
TWFwPEdDM0RlbnVtLCBSZWZQdHI8V2ViR0xBdHRhY2htZW50PiA+IEF0dGFjaG1lbnRNYXA7CiAK
ICAgICBBdHRhY2htZW50TWFwIG1fYXR0YWNobWVudHM7CiAKICAgICBib29sIG1faGFzRXZlckJl
ZW5Cb3VuZDsKKworICAgIFZlY3RvcjxHQzNEZW51bT4gbV9kcmF3QnVmZmVyczsKKyAgICBWZWN0
b3I8R0MzRGVudW0+IG1fZmlsdGVyZWREcmF3QnVmZmVyczsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmNwcAkocmV2aXNpb24gMTQ0MTE0KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2hl
Y2tlZEludC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkVYVERyYXdCdWZm
ZXJzLmgiCiAjaW5jbHVkZSAiRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmgiCiAjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgpAQCAtNTM4LDYg
KzUzOSwxMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6ZU5lCiAgICAg
bV9tYXhSZW5kZXJidWZmZXJTaXplID0gMDsKICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KEdy
YXBoaWNzQ29udGV4dDNEOjpNQVhfUkVOREVSQlVGRkVSX1NJWkUsICZtX21heFJlbmRlcmJ1ZmZl
clNpemUpOwogCisgICAgLy8gVGhlc2UgdHdvIHZhbHVlcyBmcm9tIEVYVF9kcmF3X2J1ZmZlcnMg
YXJlIGxhemlseSBxdWVyaWVkLgorICAgIG1fbWF4RHJhd0J1ZmZlcnMgPSAwOworICAgIG1fbWF4
Q29sb3JBdHRhY2htZW50cyA9IDA7CisKICAgICBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdCA9
IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmNyZWF0ZSh0aGlzLCBXZWJHTFZlcnRleEFycmF5
T2JqZWN0T0VTOjpWYW9UeXBlRGVmYXVsdCk7CiAgICAgYWRkQ29udGV4dE9iamVjdChtX2RlZmF1
bHRWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKSk7CiAgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0
ID0gbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CkBAIC0yMTUzLDEyICsyMTU4LDYgQEAgdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmZyYW1lYnVmZmVyUgogICAgICAgICBtX2NvbnRleHQt
PmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKHRhcmdldCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRI
X0FUVEFDSE1FTlQsIHJlbmRlcmJ1ZmZlcnRhcmdldCwgYnVmZmVyT2JqZWN0KTsKICAgICAgICAg
bV9jb250ZXh0LT5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcih0YXJnZXQsIEdyYXBoaWNzQ29udGV4
dDNEOjpTVEVOQ0lMX0FUVEFDSE1FTlQsIHJlbmRlcmJ1ZmZlcnRhcmdldCwgYnVmZmVyT2JqZWN0
KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQVRU
QUNITUVOVDoKLSAgICAgICAgbV9jb250ZXh0LT5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcih0YXJn
ZXQsIGF0dGFjaG1lbnQsIHJlbmRlcmJ1ZmZlcnRhcmdldCwgYnVmZmVyT2JqZWN0KTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9BVFRBQ0hNRU5U
OgotICAgICAgICBtX2NvbnRleHQtPmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKHRhcmdldCwgYXR0
YWNobWVudCwgcmVuZGVyYnVmZmVydGFyZ2V0LCBidWZmZXJPYmplY3QpOwotICAgICAgICBicmVh
azsKICAgICBkZWZhdWx0OgogICAgICAgICBtX2NvbnRleHQtPmZyYW1lYnVmZmVyUmVuZGVyYnVm
ZmVyKHRhcmdldCwgYXR0YWNobWVudCwgcmVuZGVyYnVmZmVydGFyZ2V0LCBidWZmZXJPYmplY3Qp
OwogICAgIH0KQEAgLTI0MjYsNiArMjQyNSwxMyBAQCBXZWJHTEV4dGVuc2lvbiogV2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpnCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEZXB0aFRl
eHR1cmUuZ2V0KCk7CiAgICAgfQorICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiRVhU
X2RyYXdfYnVmZmVycyIpICYmIEVYVERyYXdCdWZmZXJzOjpzdXBwb3J0ZWQodGhpcykpIHsKKyAg
ICAgICAgaWYgKCFtX2V4dERyYXdCdWZmZXJzKSB7CisgICAgICAgICAgICBtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS0+ZW5zdXJlRW5hYmxlZCgiR0xfRVhUX2RyYXdfYnVmZmVycyIpOworICAg
ICAgICAgICAgbV9leHREcmF3QnVmZmVycyA9IEVYVERyYXdCdWZmZXJzOjpjcmVhdGUodGhpcyk7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fZXh0RHJhd0J1ZmZlcnMuZ2V0KCk7CisgICAg
fQogICAgIGlmIChhbGxvd1ByaXZpbGVnZWRFeHRlbnNpb25zKCkpIHsKICAgICAgICAgaWYgKGVx
dWFsSWdub3JpbmdDYXNlKG5hbWUsICJXRUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIikpIHsKICAg
ICAgICAgICAgIGlmICghbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQpAQCAtMjcwOSw2ICsyNzE1
LDUwIEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFAKICAgICAgICAg
ICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihFeHRlbnNpb25zM0Q6Ok1BWF9URVhU
VVJFX01BWF9BTklTT1RST1BZX0VYVCk7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJh
bWV0ZXIgbmFtZSwgRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIG5vdCBlbmFibGVkIik7
CiAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6
TUFYX0NPTE9SX0FUVEFDSE1FTlRTX0VYVDogLy8gRVhUX2RyYXdfYnVmZmVycyBCRUdJTgorICAg
ICAgICBpZiAobV9leHREcmF3QnVmZmVycykKKyAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oZ2V0TWF4Q29sb3JBdHRhY2htZW50cygpKTsKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3Io
R3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlk
IHBhcmFtZXRlciBuYW1lLCBFWFRfZHJhd19idWZmZXJzIG5vdCBlbmFibGVkIik7CisgICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFYX0RSQVdf
QlVGRkVSU19FWFQ6CisgICAgICAgIGlmIChtX2V4dERyYXdCdWZmZXJzKQorICAgICAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhnZXRNYXhEcmF3QnVmZmVycygpKTsKKyAgICAgICAgc3ludGhl
c2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRl
ciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBFWFRfZHJhd19idWZmZXJzIG5vdCBlbmFibGVk
Iik7CisgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICBjYXNlIEV4dGVuc2lvbnMz
RDo6RFJBV19CVUZGRVIwX0VYVDogLy8gRFJBV19CVUZGRVIwX0VYVCBpcyBzcGVjaWFsIGFzIHRo
ZSBiYWNrYnVmZmVyIGlzIHNpbXVsYXRlZC4KKyAgICAgICAgaWYgKG1fZXh0RHJhd0J1ZmZlcnMp
IHsKKyAgICAgICAgICAgIEdDM0RpbnQgdmFsdWUgPSAwOworICAgICAgICAgICAgbV9jb250ZXh0
LT5nZXRJbnRlZ2VydihwbmFtZSwgJnZhbHVlKTsKKyAgICAgICAgICAgIGlmICghbV9mcmFtZWJ1
ZmZlckJpbmRpbmcgJiYgdmFsdWUgIT0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUpCisgICAgICAg
ICAgICAgICAgdmFsdWUgPSBHcmFwaGljc0NvbnRleHQzRDo6QkFDSzsKKyAgICAgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgICAgICB9CisgICAgICAgIHN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAi
aW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgRVhUX2RyYXdfYnVmZmVycyBub3QgZW5hYmxlZCIpOwor
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRS
QVdfQlVGRkVSMV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSMl9FWFQ6
CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSM19FWFQ6CisgICAgY2FzZSBFeHRl
bnNpb25zM0Q6OkRSQVdfQlVGRkVSNF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdf
QlVGRkVSNV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSNl9FWFQ6Cisg
ICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSN19FWFQ6CisgICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkRSQVdfQlVGRkVSOF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVG
RkVSOV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSMTBfRVhUOgorICAg
IGNhc2UgRXh0ZW5zaW9uczNEOjpEUkFXX0JVRkZFUjExX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lv
bnMzRDo6RFJBV19CVUZGRVIxMl9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVG
RkVSMTNfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpEUkFXX0JVRkZFUjE0X0VYVDoKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIxNV9FWFQ6IC8vIEVYVF9kcmF3X2J1ZmZl
cnMgRU5ECisgICAgICAgIGlmIChtX2V4dERyYXdCdWZmZXJzKSB7CisgICAgICAgICAgICBpZiAo
c3RhdGljX2Nhc3Q8R0MzRGVudW0+KEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIwX0VYVCArIGdl
dE1heERyYXdCdWZmZXJzKCkpIDw9IHBuYW1lKSB7CisgICAgICAgICAgICAgICAgc3ludGhlc2l6
ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIs
ICJpbnZhbGlkIHBhcmFtZXRlciwgZXhjZWVkcyBNQVhfQ09MT1JfQVRUQUNITUVOVFNfRVhUIik7
CisgICAgICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CisgICAgICAgIH0KKyAg
ICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwg
ImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBFWFRfZHJhd19idWZmZXJz
IG5vdCBlbmFibGVkIik7CisgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKICAgICBkZWZh
dWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJ
RF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKICAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwpAQCAtMjkxMyw2ICsyOTYzLDggQEAgVmVjdG9yPFN0
cmluZz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZQogICAgICAgICByZXN1bHQuYXBwZW5kKCJX
RUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKTsKICAgICBpZiAoV2ViR0xEZXB0
aFRleHR1cmU6OnN1cHBvcnRlZChncmFwaGljc0NvbnRleHQzRCgpKSkKICAgICAgICAgcmVzdWx0
LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2RlcHRoX3RleHR1cmUiKTsKKyAgICBpZiAoRVhURHJhd0J1
ZmZlcnM6OnN1cHBvcnRlZCh0aGlzKSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiRVhUX2RyYXdf
YnVmZmVycyIpOwogCiAgICAgaWYgKGFsbG93UHJpdmlsZWdlZEV4dGVuc2lvbnMoKSkgewogICAg
ICAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9BTkdMRV90
cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkKQEAgLTUzMjYsNiArNTM3OCwzMSBAQCBib29sIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVGcmFtCiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6U1RFTkNJTF9BVFRBQ0hNRU5UOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRF
UFRIX1NURU5DSUxfQVRUQUNITUVOVDoKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxX0VYVDogLy8gRVhUX2RyYXdfYnVmZmVycyBCRUdJTgor
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMl9FWFQ6CisgICAgY2FzZSBF
eHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQzX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMz
RDo6Q09MT1JfQVRUQUNITUVOVDRfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9B
VFRBQ0hNRU5UNV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ2
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDdfRVhUOgorICAg
IGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UOF9FWFQ6CisgICAgY2FzZSBFeHRl
bnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ5X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6
Q09MT1JfQVRUQUNITUVOVDEwX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRU
QUNITUVOVDExX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEy
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEzX0VYVDoKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDE0X0VYVDoKKyAgICBjYXNlIEV4
dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDE1X0VYVDogLy8gRVhUX2RyYXdfYnVmZmVycyBF
TkQKKyAgICAvLyBDT0xPUl9BVFRBQ0hNRU5UMF9FWFQgaXMgZXF1YWwgdG8gQ09MT1JfQVRUQUNI
TUVOVDAKKyAgICAgICAgaWYgKCFtX2V4dERyYXdCdWZmZXJzKSB7CisgICAgICAgICAgICBzeW50
aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCBmdW5jdGlvbk5h
bWUsICJpbnZhbGlkIGF0dGFjaG1lbnQsIEVYVF9kcmF3X2J1ZmZlcnMgbm90IGVuYWJsZWQiKTsK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RhdGlj
X2Nhc3Q8R0MzRGVudW0+KEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDBfRVhUICsgZ2V0
TWF4Q29sb3JBdHRhY2htZW50cygpKSA8PSBhdHRhY2htZW50KSB7CisgICAgICAgICAgICBzeW50
aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCBmdW5jdGlvbk5h
bWUsICJpbnZhbGlkIGF0dGFjaG1lbnQsIGV4Y2VlZHMgTUFYX0RSQVdfQlVGRkVSU19FWFQiKTsK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKICAg
ICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6
SU5WQUxJRF9FTlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIGF0dGFjaG1lbnQiKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtNTg0Miw2ICs1OTE5LDIwIEBAIEludFNpemUgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpjbGFtcGVkQ2EKICAgICAgICAgICAgICAgICAgICBjbGFtcChjYW52YXMo
KS0+aGVpZ2h0KCksIDEsIG1fbWF4Vmlld3BvcnREaW1zWzFdKSk7CiB9CiAKK0dDM0RpbnQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0OjpnZXRNYXhEcmF3QnVmZmVycygpCit7CisgICAgaWYgKCFtX21h
eERyYXdCdWZmZXJzICYmIEVYVERyYXdCdWZmZXJzOjpzdXBwb3J0ZWQodGhpcykpCisgICAgICAg
IG1fY29udGV4dC0+Z2V0SW50ZWdlcnYoRXh0ZW5zaW9uczNEOjpNQVhfRFJBV19CVUZGRVJTX0VY
VCwgJm1fbWF4RHJhd0J1ZmZlcnMpOworICAgIHJldHVybiBtX21heERyYXdCdWZmZXJzOworfQor
CitHQzNEaW50IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0TWF4Q29sb3JBdHRhY2htZW50cygp
Cit7CisgICAgaWYgKCFtX21heENvbG9yQXR0YWNobWVudHMgJiYgRVhURHJhd0J1ZmZlcnM6OnN1
cHBvcnRlZCh0aGlzKSkKKyAgICAgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihFeHRlbnNpb25z
M0Q6Ok1BWF9DT0xPUl9BVFRBQ0hNRU5UU19FWFQsICZtX21heENvbG9yQXR0YWNobWVudHMpOwor
ICAgIHJldHVybiBtX21heENvbG9yQXR0YWNobWVudHM7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCShyZXZpc2lvbiAxNDQx
MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
aAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK2NsYXNzIEVYVERyYXdCdWZmZXJzOwogY2xhc3MgRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJv
cGljOwogY2xhc3MgSFRNTEltYWdlRWxlbWVudDsKIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7CkBA
IC0zMjMsNiArMzI0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCk7CiAKICAg
cHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgRVhURHJhd0J1ZmZlcnM7CiAgICAgZnJpZW5kIGNs
YXNzIFdlYkdMRnJhbWVidWZmZXI7CiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMT2JqZWN0OwogICAg
IGZyaWVuZCBjbGFzcyBPRVNWZXJ0ZXhBcnJheU9iamVjdDsKQEAgLTQ3Niw2ICs0NzgsOSBAQCBw
dWJsaWM6CiAgICAgR0MzRGludCBtX21heFRleHR1cmVMZXZlbDsKICAgICBHQzNEaW50IG1fbWF4
Q3ViZU1hcFRleHR1cmVMZXZlbDsKIAorICAgIEdDM0RpbnQgbV9tYXhEcmF3QnVmZmVyczsKKyAg
ICBHQzNEaW50IG1fbWF4Q29sb3JBdHRhY2htZW50czsKKwogICAgIEdDM0RpbnQgbV9wYWNrQWxp
Z25tZW50OwogICAgIEdDM0RpbnQgbV91bnBhY2tBbGlnbm1lbnQ7CiAgICAgYm9vbCBtX3VucGFj
a0ZsaXBZOwpAQCAtNTA5LDYgKzUxNCw3IEBAIHB1YmxpYzoKICAgICBpbnQgbV9udW1HTEVycm9y
c1RvQ29uc29sZUFsbG93ZWQ7CiAKICAgICAvLyBFbmFibGVkIGV4dGVuc2lvbiBvYmplY3RzLgor
ICAgIE93blB0cjxFWFREcmF3QnVmZmVycz4gbV9leHREcmF3QnVmZmVyczsKICAgICBPd25QdHI8
RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPiBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3Bp
YzsKICAgICBPd25QdHI8T0VTVGV4dHVyZUZsb2F0PiBtX29lc1RleHR1cmVGbG9hdDsKICAgICBP
d25QdHI8T0VTU3RhbmRhcmREZXJpdmF0aXZlcz4gbV9vZXNTdGFuZGFyZERlcml2YXRpdmVzOwpA
QCAtNzMyLDYgKzczOCwxMSBAQCBwdWJsaWM6CiAgICAgLy8gQ2xhbXAgdGhlIHdpZHRoIGFuZCBo
ZWlnaHQgdG8gR0xfTUFYX1ZJRVdQT1JUX0RJTVMuCiAgICAgSW50U2l6ZSBjbGFtcGVkQ2FudmFz
U2l6ZSgpOwogCisgICAgLy8gRmlyc3QgdGltZSBjYWxsZWQsIGlmIEVYVF9kcmF3X2J1ZmZlcnMg
aXMgc3VwcG9ydGVkLCBxdWVyeSB0aGUgdmFsdWU7IG90aGVyd2lzZSByZXR1cm4gMC4KKyAgICAv
LyBMYXRlciwgcmV0dXJuIHRoZSBjYWNoZWQgdmFsdWUuCisgICAgR0MzRGludCBnZXRNYXhEcmF3
QnVmZmVycygpOworICAgIEdDM0RpbnQgZ2V0TWF4Q29sb3JBdHRhY2htZW50cygpOworCiAgICAg
ZnJpZW5kIGNsYXNzIFdlYkdMU3RhdGVSZXN0b3JlcjsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvRXh0
ZW5zaW9uczNEQ2hyb21pdW0uY3BwCShyZXZpc2lvbiAxNDQxMTQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0V4dGVuc2lvbnMzRENocm9taXVtLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjE1LDQgKzIxNSw5IEBAIHZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06
OnBvcEdyb3VwTWFya2UKICAgICBtX3ByaXZhdGUtPndlYkNvbnRleHQoKS0+cG9wR3JvdXBNYXJr
ZXJFWFQoKTsKIH0KIAordm9pZCBFeHRlbnNpb25zM0RDaHJvbWl1bTo6ZHJhd0J1ZmZlcnNFWFQo
R0MzRHNpemVpIG4sIGNvbnN0IEdDM0RlbnVtKiBidWZzKQoreworICAgIG1fcHJpdmF0ZS0+d2Vi
Q29udGV4dCgpLT5kcmF3QnVmZmVyc0Nocm9taXVtKG4sIGJ1ZnMpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRl
bnNpb25zM0QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9FeHRlbnNpb25zM0QuaAkocmV2aXNpb24gMTQ0MTE0KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uczNELmgJKHdvcmtpbmcgY29weSkKQEAgLTcwLDYgKzcw
LDcgQEAgcHVibGljOgogICAgIC8vICAgR0xfRVhUX2RlYnVnX21hcmtlcgogICAgIC8vICAgR0xf
Q0hST01JVU1fY29weV90ZXh0dXJlCiAgICAgLy8gICBHTF9DSFJPTUlVTV9mbGlweQorICAgIC8v
ICAgR0xfQVJCX2RyYXdfYnVmZmVycyAvIEdMX0VYVF9kcmF3X2J1ZmZlcnMKIAogICAgIC8vIFRh
a2VzIGZ1bGwgbmFtZSBvZiBleHRlbnNpb247IGZvciBleGFtcGxlLAogICAgIC8vICJHTF9FWFRf
dGV4dHVyZV9mb3JtYXRfQkdSQTg4ODgiLgpAQCAtMTUwLDcgKzE1MSw0MyBAQCBwdWJsaWM6CiAK
ICAgICAgICAgLy8gR0xfQ0hST01JVU1fY29weV90ZXh0dXJlCiAgICAgICAgIFVOUEFDS19QUkVN
VUxUSVBMWV9BTFBIQV9DSFJPTUlVTSA9IDB4OTI0MSwKLSAgICAgICAgVU5QQUNLX1VOUFJFTVVM
VElQTFlfQUxQSEFfQ0hST01JVU0gPSAweDkyNDIKKyAgICAgICAgVU5QQUNLX1VOUFJFTVVMVElQ
TFlfQUxQSEFfQ0hST01JVU0gPSAweDkyNDIsCisKKyAgICAgICAgLy8gR0xfQVJCX2RyYXdfYnVm
ZmVycyAvIEdMX0VYVF9kcmF3X2J1ZmZlcnMKKyAgICAgICAgTUFYX0RSQVdfQlVGRkVSU19FWFQg
PSAweDg4MjQsCisgICAgICAgIERSQVdfQlVGRkVSMF9FWFQgPSAweDg4MjUsCisgICAgICAgIERS
QVdfQlVGRkVSMV9FWFQgPSAweDg4MjYsCisgICAgICAgIERSQVdfQlVGRkVSMl9FWFQgPSAweDg4
MjcsCisgICAgICAgIERSQVdfQlVGRkVSM19FWFQgPSAweDg4MjgsCisgICAgICAgIERSQVdfQlVG
RkVSNF9FWFQgPSAweDg4MjksCisgICAgICAgIERSQVdfQlVGRkVSNV9FWFQgPSAweDg4MkEsCisg
ICAgICAgIERSQVdfQlVGRkVSNl9FWFQgPSAweDg4MkIsCisgICAgICAgIERSQVdfQlVGRkVSN19F
WFQgPSAweDg4MkMsCisgICAgICAgIERSQVdfQlVGRkVSOF9FWFQgPSAweDg4MkQsCisgICAgICAg
IERSQVdfQlVGRkVSOV9FWFQgPSAweDg4MkUsCisgICAgICAgIERSQVdfQlVGRkVSMTBfRVhUID0g
MHg4ODJGLAorICAgICAgICBEUkFXX0JVRkZFUjExX0VYVCA9IDB4ODgzMCwKKyAgICAgICAgRFJB
V19CVUZGRVIxMl9FWFQgPSAweDg4MzEsCisgICAgICAgIERSQVdfQlVGRkVSMTNfRVhUID0gMHg4
ODMyLAorICAgICAgICBEUkFXX0JVRkZFUjE0X0VYVCA9IDB4ODgzMywKKyAgICAgICAgRFJBV19C
VUZGRVIxNV9FWFQgPSAweDg4MzQsCisgICAgICAgIE1BWF9DT0xPUl9BVFRBQ0hNRU5UU19FWFQg
PSAweDhDREYsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQwX0VYVCA9IDB4OENFMCwKKyAgICAg
ICAgQ09MT1JfQVRUQUNITUVOVDFfRVhUID0gMHg4Q0UxLAorICAgICAgICBDT0xPUl9BVFRBQ0hN
RU5UMl9FWFQgPSAweDhDRTIsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQzX0VYVCA9IDB4OENF
MywKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDRfRVhUID0gMHg4Q0U0LAorICAgICAgICBDT0xP
Ul9BVFRBQ0hNRU5UNV9FWFQgPSAweDhDRTUsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ2X0VY
VCA9IDB4OENFNiwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDdfRVhUID0gMHg4Q0U3LAorICAg
ICAgICBDT0xPUl9BVFRBQ0hNRU5UOF9FWFQgPSAweDhDRTgsCisgICAgICAgIENPTE9SX0FUVEFD
SE1FTlQ5X0VYVCA9IDB4OENFOSwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDEwX0VYVCA9IDB4
OENFQSwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDExX0VYVCA9IDB4OENFQiwKKyAgICAgICAg
Q09MT1JfQVRUQUNITUVOVDEyX0VYVCA9IDB4OENFQywKKyAgICAgICAgQ09MT1JfQVRUQUNITUVO
VDEzX0VYVCA9IDB4OENFRCwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDE0X0VYVCA9IDB4OENF
RSwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDE1X0VYVCA9IDB4OENFRgogICAgIH07CiAKICAg
ICAvLyBHTF9BUkJfcm9idXN0bmVzcwpAQCAtMTkwLDYgKzIyNyw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgcHVzaEdyb3VwTWFya2VyRVhUKGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgcG9wR3JvdXBNYXJrZXJFWFQodm9pZCkgPSAwOwogCisgICAgLy8gR0xfQVJC
X2RyYXdfYnVmZmVycyAvIEdMX0VYVF9kcmF3X2J1ZmZlcnMKKyAgICB2aXJ0dWFsIHZvaWQgZHJh
d0J1ZmZlcnNFWFQoR0MzRHNpemVpIG4sIGNvbnN0IEdDM0RlbnVtKiBidWZzKSA9IDA7CisKICAg
ICB2aXJ0dWFsIGJvb2wgaXNOVklESUEoKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzQU1EKCkg
PSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0ludGVsKCkgPSAwOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAko
cmV2aXNpb24gMTQ0MTE0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0M0QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzg5LDYgKzEzODksMjEgQEAg
dW5zaWduZWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdldENsZWFyQml0cwogewogICAgIHN3aXRjaCAo
YXR0YWNobWVudCkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1F
TlQwOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMV9FWFQ6CisgICAg
Y2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQyX0VYVDoKKyAgICBjYXNlIEV4dGVu
c2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDNfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpD
T0xPUl9BVFRBQ0hNRU5UNF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFD
SE1FTlQ1X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDZfRVhU
OgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UN19FWFQ6CisgICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ4X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lv
bnMzRDo6Q09MT1JfQVRUQUNITUVOVDlfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xP
Ul9BVFRBQ0hNRU5UMTBfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hN
RU5UMTFfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTJfRVhU
OgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTNfRVhUOgorICAgIGNh
c2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTRfRVhUOgorICAgIGNhc2UgRXh0ZW5z
aW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTVfRVhUOgogICAgICAgICByZXR1cm4gR3JhcGhpY3ND
b250ZXh0M0Q6OkNPTE9SX0JVRkZFUl9CSVQ7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
REVQVEhfQVRUQUNITUVOVDoKICAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNEOjpERVBU
SF9CVUZGRVJfQklUOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oCShyZXZp
c2lvbiAxNDQxMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oCSh3b3JraW5nIGNvcHkpCkBAIC02NSw2ICs2NSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzVmVydGV4QXJyYXlPRVMoUGxhdGZv
cm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9y
bTNET2JqZWN0KTsKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNl
QU5HTEUoUGxhdGZvcm0zRE9iamVjdCk7CisgICAgdmlydHVhbCB2b2lkIGRyYXdCdWZmZXJzRVhU
KEdDM0RzaXplaSwgY29uc3QgR0MzRGVudW0qKTsKIAogICAgIGVudW0gewogICAgICAgICAvLyBH
TF9PRVNfRUdMX2ltYWdlX2V4dGVybmFsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNw
cAkocmV2aXNpb24gMTQ0MTE0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3OCw5ICsx
NzgsMjUgQEAgYm9vbCBFeHRlbnNpb25zM0RPcGVuR0w6OnN1cHBvcnRzRXh0ZW5zaQogICAgIGlm
IChuYW1lID09ICJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKQogICAgICAgICBy
ZXR1cm4gbV9hdmFpbGFibGVFeHRlbnNpb25zLmNvbnRhaW5zKCJHTF9FWFRfdGV4dHVyZV9maWx0
ZXJfYW5pc290cm9waWMiKTsKIAorICAgIGlmIChuYW1lID09ICJHTF9FWFRfZHJhd19idWZmZXJz
IikgeworI2lmIFBMQVRGT1JNKE1BQykKKyAgICAgICAgcmV0dXJuIG1fYXZhaWxhYmxlRXh0ZW5z
aW9ucy5jb250YWlucygiR0xfQVJCX2RyYXdfYnVmZmVycyIpOworI2Vsc2UKKyAgICAgICAgLy8g
RklYTUU6IGltcGxlbWVudCBzdXBwb3J0IGZvciBvdGhlciBwbGF0Zm9ybXMuCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyNlbmRpZgorICAgIH0KICAgICByZXR1cm4gbV9hdmFpbGFibGVFeHRlbnNp
b25zLmNvbnRhaW5zKG5hbWUpOwogfQogCit2b2lkIEV4dGVuc2lvbnMzRE9wZW5HTDo6ZHJhd0J1
ZmZlcnNFWFQoR0MzRHNpemVpIG4sIGNvbnN0IEdDM0RlbnVtKiBidWZzKQoreworICAgIC8vICBG
SVhNRTogaW1wbGVtZW50IHN1cHBvcnQgZm9yIG90aGVyIHBsYXRmb3Jtcy4KKyNpZiBQTEFURk9S
TShNQUMpCisgICAgOjpnbERyYXdCdWZmZXJzQVJCKG4sIGJ1ZnMpOworI2VuZGlmCit9CisKIFN0
cmluZyBFeHRlbnNpb25zM0RPcGVuR0w6OmdldEV4dGVuc2lvbnMoKQogewogICAgIHJldHVybiBT
dHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRF
TlNJT05TKSkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0V4dGVuc2lvbnMzRE9wZW5HTC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaAkocmV2aXNpb24gMTQ0MTE0
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMz
RE9wZW5HTC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgaW5zZXJ0RXZlbnRNYXJrZXJFWFQoY29uc3QgU3RyaW5nJik7CiAgICAgdmly
dHVhbCB2b2lkIHB1c2hHcm91cE1hcmtlckVYVChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFs
IHZvaWQgcG9wR3JvdXBNYXJrZXJFWFQodm9pZCk7CisgICAgdmlydHVhbCB2b2lkIGRyYXdCdWZm
ZXJzRVhUKEdDM0RzaXplaSwgY29uc3QgR0MzRGVudW0qKTsKIAogcHJvdGVjdGVkOgogICAgIC8v
IFRoaXMgY2xhc3Mgb25seSBuZWVkcyB0byBiZSBpbnN0YW50aWF0ZWQgYnkgR3JhcGhpY3NDb250
ZXh0M0QgaW1wbGVtZW50YXRpb25zLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5H
TENvbW1vbi5jcHAJKHJldmlzaW9uIDE0NDExNCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTgsNiArMTE4LDE1IEBAIHZvaWQgRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uOjpl
bnN1cmVFbmEKICAgICAgICAgICAgIEFOR0xFUmVzb3VyY2VzLk9FU19zdGFuZGFyZF9kZXJpdmF0
aXZlcyA9IDE7CiAgICAgICAgICAgICBjb21waWxlci5zZXRSZXNvdXJjZXMoQU5HTEVSZXNvdXJj
ZXMpOwogICAgICAgICB9CisgICAgfSBlbHNlIGlmIChuYW1lID09ICJHTF9FWFRfZHJhd19idWZm
ZXJzIikgeworICAgICAgICAvLyBFbmFibGUgc3VwcG9ydCBpbiBBTkdMRSAoaWYgbm90IGVuYWJs
ZWQgYWxyZWFkeSkKKyAgICAgICAgQU5HTEVXZWJLaXRCcmlkZ2UmIGNvbXBpbGVyID0gbV9jb250
ZXh0LT5tX2NvbXBpbGVyOworICAgICAgICBTaEJ1aWx0SW5SZXNvdXJjZXMgQU5HTEVSZXNvdXJj
ZXMgPSBjb21waWxlci5nZXRSZXNvdXJjZXMoKTsKKyAgICAgICAgaWYgKCFBTkdMRVJlc291cmNl
cy5FWFRfZHJhd19idWZmZXJzKSB7CisgICAgICAgICAgICBBTkdMRVJlc291cmNlcy5FWFRfZHJh
d19idWZmZXJzID0gMTsKKyAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYoRXh0ZW5z
aW9uczNEOjpNQVhfRFJBV19CVUZGRVJTX0VYVCwgJkFOR0xFUmVzb3VyY2VzLk1heERyYXdCdWZm
ZXJzKTsKKyAgICAgICAgICAgIGNvbXBpbGVyLnNldFJlc291cmNlcyhBTkdMRVJlc291cmNlcyk7
CisgICAgICAgIH0KICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdM
Q29tbW9uLmgJKHJldmlzaW9uIDE0NDExNCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uaAkod29ya2luZyBjb3B5KQpA
QCAtNTAsNiArNTAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBHQzNEYm9vbGVhbiBpc1ZlcnRl
eEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYmluZFZl
cnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBk
cmF3QnVmZmVyc0VYVChHQzNEc2l6ZWksIGNvbnN0IEdDM0RlbnVtKikgPSAwOworCiAgICAgdmly
dHVhbCBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmpl
Y3QpOwogCiAgICAgLy8gRVhUIFJvYnVzdG5lc3MgLSB1c2VzIGdldEdyYXBoaWNzUmVzZXRTdGF0
dXNBUkIoKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnMzRE9wZW5HTEVTLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCShyZXZpc2lvbiAx
NDQxMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5z
aW9uczNET3BlbkdMRVMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjAsNiArMTYwLDExIEBAIHZv
aWQgRXh0ZW5zaW9uczNET3BlbkdMRVM6OmJpbmRWZXJ0ZXhBcnIKICAgICAgICAgbV9jb250ZXh0
LT5zeW50aGVzaXplR0xFcnJvcihHTF9JTlZBTElEX09QRVJBVElPTik7CiB9CiAKK3ZvaWQgRXh0
ZW5zaW9uczNET3BlbkdMRVM6OmRyYXdCdWZmZXJzRVhUKEdDM0RzaXplaSBuLCBjb25zdCBHQzNE
ZW51bSogYnVmcykKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50IHRoZSBzdXBwb3J0LgorfQor
CiBpbnQgRXh0ZW5zaW9uczNET3BlbkdMRVM6OmdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKQog
ewogICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90IGNhbGwgZ2V0R3JhcGhpY3NSZXNldFN0YXR1
c0FSQiwgYnV0IGluc3RlYWQgZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0VYVC4KQEAgLTI1MCw2ICsy
NTUsOSBAQCBib29sIEV4dGVuc2lvbnMzRE9wZW5HTEVTOjpzdXBwb3J0c0V4dGVuCiAgICAgICAg
ICAgICBtX2dsUmVhZG5QaXhlbHNFWFQgPSByZWludGVycHJldF9jYXN0PFBGTkdMUkVBRE5QSVhF
TFNFWFRQUk9DPihlZ2xHZXRQcm9jQWRkcmVzcygiZ2xSZWFkblBpeGVsc0VYVCIpKTsKICAgICAg
ICAgICAgIG1fZ2xHZXRuVW5pZm9ybWZ2RVhUID0gcmVpbnRlcnByZXRfY2FzdDxQRk5HTEdFVE5V
TklGT1JNRlZFWFRQUk9DPihlZ2xHZXRQcm9jQWRkcmVzcygiZ2xHZXRuVW5pZm9ybWZ2RVhUIikp
OwogICAgICAgICAgICAgbV9nbEdldG5Vbmlmb3JtaXZFWFQgPSByZWludGVycHJldF9jYXN0PFBG
TkdMR0VUTlVOSUZPUk1JVkVYVFBST0M+KGVnbEdldFByb2NBZGRyZXNzKCJnbEdldG5Vbmlmb3Jt
aXZFWFQiKSk7CisgICAgICAgIH0gZWxzZSBpZiAobmFtZSA9PSAiR0xfRVhUX2RyYXdfYnVmZmVy
cyIpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgdGhlIHN1cHBvcnQuCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVu
c2lvbnMzRE9wZW5HTEVTLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmgJKHJldmlzaW9uIDE0NDExNCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RP
cGVuR0xFUy5oCSh3b3JraW5nIGNvcHkpCkBAIC05MCw2ICs5MCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAg
dmlydHVhbCBHQzNEYm9vbGVhbiBpc1ZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOwog
ICAgIHZpcnR1YWwgdm9pZCBiaW5kVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7Cisg
ICAgdmlydHVhbCB2b2lkIGRyYXdCdWZmZXJzRVhUKEdDM0RzaXplaSwgY29uc3QgR0MzRGVudW0q
KTsKIAogICAgIC8vIEVYVCBSb2J1c3RuZXNzIC0gcmVzZXQKICAgICB2aXJ0dWFsIGludCBnZXRH
cmFwaGljc1Jlc2V0U3RhdHVzQVJCKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190550</attachid>
            <date>2013-02-27 10:00:20 -0800</date>
            <delta_ts>2013-02-27 10:48:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109331-20130227095634.patch</filename>
            <type>text/plain</type>
            <size>61156</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NDIwMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDkzIEBACisyMDEzLTAyLTI2ICBaaGVueWFv
IE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgRVhUX2RyYXdfYnVmZmVycyBuZWVkcyBp
bXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5MzMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIEVYVF9kcmF3X2J1ZmZlcnMgZm9yIFdl
YkdMLgorICAgICAgICBtYWMgT3BlbkdMIHBvcnQgaXMgcGFzc2luZyBraHJvbm9zIFdlYkdMIGNv
bmZvcm1hbmNlIHRlc3Qgd2l0aCB0aGlzIHBhdGNoLiBPcGVuR0wgRVMgcG9ydCBpbXBsZW1lbnRh
dGlvbiBpc24ndCBhZGRlZCBpbiB0aGlzIHBhdGNoLgorICAgICAgICBBbHNvLCBpdCBoYXMgdGhl
IFdlYktpdCBzaWRlIHN1cHBvcnQgZm9yIGNocm9taXVtIHBvcnQsIGJ1dCBwZW5kaW5nIGNvbW1h
bmQgYnVmZmVyIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgIEJlc2lkZXMgdGhlIGJhc2ljIGV4
dGVuc2lvbiBpbXBsZW1lbnRhdGlvbiwgd2UgYWxzbyBhZGRlZCBkcmF3QnVmZmVycygpIHdyYXBw
ZXIgdG8gd29yayBhcm91bmQgYSBtYWMgZHJpdmVyIGJ1ZzogaS5lLiwgZG8gbm90IGVuYWJsZSBh
IGJ1ZmZlciBpZiB0aGVyZSBpcyBubyBhdHRhY2htZW50IGFkZGVkLgorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5wcmk6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAg
ICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNX
ZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6
CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OnRvSW50MzIpOgorICAgICAgICAoV2ViQ29yZTo6dG9VSW50MzIp
OgorICAgICAgICAoV2ViQ29yZTo6dG9GbG9hdCk6CisgICAgICAgIChXZWJDb3JlOjp0b0ludDY0
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9WOE9iamVjdCk6CisgICAgICAgICogaHRt
bC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6RVhURHJhd0J1ZmZlcnM6OkVYVERyYXdCdWZmZXJzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVYVERyYXdCdWZmZXJzOjp+RVhURHJhd0J1ZmZlcnMpOgorICAgICAgICAo
V2ViQ29yZTo6RVhURHJhd0J1ZmZlcnM6OmdldE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RVhU
RHJhd0J1ZmZlcnM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFWFREcmF3QnVmZmVyczo6
c3VwcG9ydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVYVERyYXdCdWZmZXJzOjpkcmF3QnVmZmVy
c0VYVCk6CisgICAgICAgICogaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEVYVERyYXdCdWZmZXJzKToKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMRXh0ZW5zaW9uLmg6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1
ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTEZyYW1lYnVmZmVyOjpzZXRBdHRhY2ht
ZW50Rm9yQm91bmRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTEZyYW1lYnVm
ZmVyOjpyZW1vdmVBdHRhY2htZW50RnJvbUJvdW5kRnJhbWVidWZmZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xGcmFtZWJ1ZmZlcjo6ZHJhd0J1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTEZyYW1lYnVmZmVyOjpkcmF3QnVmZmVyc0lmTmVjZXNz
YXJ5KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmg6CisgICAgICAg
IChXZWJHTEZyYW1lYnVmZmVyKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmluaXRpYWxpemVOZXdDb250ZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6ZnJhbWVidWZmZXJSZW5kZXJidWZmZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNp
b25zKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVG
cmFtZWJ1ZmZlckZ1bmNQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVy
aW5nQ29udGV4dDo6Z2V0TWF4RHJhd0J1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpnZXRNYXhDb2xvckF0dGFjaG1lbnRzKToKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViR0xSZW5kZXJpbmdDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9zdXBwb3J0L0V4dGVuc2lvbnMzRENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4
dGVuc2lvbnMzRENocm9taXVtOjpkcmF3QnVmZmVyc0VYVCk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaDoKKyAgICAgICAgKEV4
dGVuc2lvbnMzRCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldENsZWFyQml0
c0J5QXR0YWNobWVudFR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0V4dGVuc2lvbnMzRENocm9taXVtLmg6CisgICAgICAgIChFeHRlbnNpb25zM0RDaHJvbWl1bSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0w6OnN1cHBvcnRzRXh0ZW5z
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTDo6ZHJhd0J1ZmZlcnNF
WFQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oOgorICAgICAgICAoRXh0ZW5zaW9uczNET3BlbkdMKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29t
bW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTENvbW1vbjo6ZW5z
dXJlRW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnMzRE9wZW5HTENvbW1vbi5oOgorICAgICAgICAoRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNET3BlbkdMRVM6OmRyYXdCdWZmZXJz
RVhUKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNE
T3BlbkdMRVM6OnN1cHBvcnRzRXh0ZW5zaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuaDoKKyAgICAgICAgKEV4dGVuc2lvbnMzRE9w
ZW5HTEVTKToKKwogMjAxMy0wMi0yNyAgQWFyb24gQ29sd2VsbCAgPGFjb2x3ZWxsQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBGaXggU291cmNlQnVmZmVyTGlzdCBzbyBTb3VyY2VCdWZmZXIuYXBw
ZW5kKCkgY2FsbHMgYXJlIGFsd2F5cyByZWplY3RlZCBhZnRlciB0aGUgTWVkaWFTb3VyY2UgaXMg
Y2xvc2VkLgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE0NDIwMykKKysrIFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01MTMsNiArNTEz
LDcgQEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dC5pZGwKICAgICBodG1sL2NhbnZhcy9EYXRhVmlldy5pZGwKICAgICBodG1sL2Nh
bnZhcy9ET01QYXRoLmlkbAorICAgIGh0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbAogICAg
IGh0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwKICAgICBodG1sL2Nh
bnZhcy9GbG9hdDMyQXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbApA
QCAtMTUwNiw2ICsxNTA3LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvY2FudmFz
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNTdHls
ZS5jcHAKICAgICBodG1sL2NhbnZhcy9EYXRhVmlldy5jcHAKKyAgICBodG1sL2NhbnZhcy9FWFRE
cmF3QnVmZmVycy5jcHAKICAgICBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9w
aWMuY3BwCiAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAKICAgICBo
dG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuY3BwCkBAIC0yNjQ3LDYgKzI2NDksNyBAQCBpZiAo
RU5BQkxFX1dFQkdMKQogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5j
cHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKICAg
ICAgICAgaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uY3BwCisgICAgICAgIGh0bWwvY2FudmFz
L0VYVERyYXdCdWZmZXJzLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVy
QW5pc290cm9waWMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2
ZXMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5jcHAKQEAgLTI2NTQs
NiArMjY1Nyw3IEBAIGlmIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwvY2FudmFzL09FU0Vs
ZW1lbnRJbmRleFVpbnQuY3BwCiAgICAgKQogICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSURMX0ZJ
TEVTCisgICAgICAgIGh0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbAogICAgICAgICBodG1s
L2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaWRsCiAgICAgICAgIGh0bWwvY2Fu
dmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1Rl
eHR1cmVGbG9hdC5pZGwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNp
b24gMTQ0MjAzKQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2lu
ZyBjb3B5KQpAQCAtMzkwLDYgKzM5MCw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNv
cmUpL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwgXAogICAgICQoV2Vi
Q29yZSkvaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2Fu
dmFzL0RPTVBhdGguaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0VYVERyYXdCdWZm
ZXJzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5p
c290cm9waWMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbCBcCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCShyZXZpc2lvbiAxNDQyMDMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTMwOSw2ICszMDks
NyBAQCBJRExfQklORElOR1MgKz0gXAogICAgICQkUFdEL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQuaWRsIFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuaWRsIFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9ET01QYXRoLmlkbCBcCisgICAg
JCRQV0QvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaWRsIFwKICAgICAkJFBXRC9odG1sL2Nh
bnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaWRsIFwKICAgICAkJFBXRC9odG1sL2Nh
bnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMv
T0VTVGV4dHVyZUZsb2F0LmlkbCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0J
KHJldmlzaW9uIDE0NDIwMykKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0J
KHdvcmtpbmcgY29weSkKQEAgLTI0OCw2ICsyNDgsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMg
Kz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFcnJvckNhbGxiYWNrLmggXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNFcnJvckV2ZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0Vycm9yRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0VYVERyYXdC
dWZmZXJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0VYVERyYXdCdWZmZXJzLmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMu
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJv
cGljLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFdmVudC5jcHAgXApAQCAtMTUzMyw2
ICsxNTM1LDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFz
L0RhdGFWaWV3LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9ET01QYXRoLmlkbCBcCisJ
JChXZWJDb3JlKS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5pZGwgXAogCSQoV2ViQ29yZSkv
aHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmlkbCBcCiAJJChXZWJDb3Jl
KS9odG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFz
L0Zsb2F0NjRBcnJheS5pZGwgXApAQCAtMzI3Myw2ICszMjc2LDggQEAgd2ViY29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0RPTVBhdGguaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhURHJhd0J1
ZmZlcnMuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9w
aWMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5p
c290cm9waWMuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJp
dmF0aXZlcy5jcHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCShyZXZpc2lvbiAxNDQyMDMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3b3JraW5nIGNvcHkpCkBAIC00MDM3LDYgKzQwMzcsNyBA
QCBlbmFibGU/KFdFQkdMKSB7CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmggXAog
ICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oIFwKICAgICAg
ICAgaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuaCBcCisgICAgICAgIGh0bWwvY2FudmFz
L0VYVERyYXdCdWZmZXJzLmggXAogICAgICAgICBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVy
QW5pc290cm9waWMuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2
ZXMuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5oIFwKQEAgLTQwNzEs
NiArNDA3Miw3IEBAIGVuYWJsZT8oV0VCR0wpIHsKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xT
aGFkZXIuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3Jt
YXQuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwIFwKKyAg
ICAgICAgaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuY3BwIFwKICAgICAgICAgaHRtbC9jYW52
YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFz
L09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTVGV4
dHVyZUZsb2F0LmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAxNDQyMDMpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTM2OSw2ICsz
NjksNyBAQAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0RhdGFWaWV3LmlkbCcsCiAgICAgICAg
ICAgICAnaHRtbC9jYW52YXMvRE9NUGF0aC5pZGwnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFz
L0VYVERyYXdCdWZmZXJzLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRVhUVGV4dHVy
ZUZpbHRlckFuaXNvdHJvcGljLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRmxvYXQz
MkFycmF5LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbCcs
CkBAIC0zMzI3LDYgKzMzMjgsOCBAQAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0RhdGFWaWV3
LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRGF0YVZpZXcuaCcsCiAgICAgICAgICAg
ICAnaHRtbC9jYW52YXMvRE9NUGF0aC5oJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9FWFRE
cmF3QnVmZmVycy5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJz
LmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3Bp
Yy5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ry
b3BpYy5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVz
LmNwcCcsCkBAIC02MzgxLDYgKzYzODQsOCBAQAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFcnJvckNhbGxiYWNrLmgnLAogICAgICAgICAgICAg
JzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFcnJvckV2ZW50LmNwcCcs
CiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Vy
cm9yRXZlbnQuaCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0VYVERyYXdCdWZmZXJzLmNwcCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0VYVERyYXdCdWZmZXJzLmgnLAogICAgICAgICAg
ICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFWFRUZXh0dXJlRmls
dGVyQW5pc290cm9waWMuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmgnLAogICAgICAg
ICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFdmVudC5jcHAn
LApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMTQ0MjAzKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xOTIwLDYgKzE5MjAsOCBA
QAogCQk2RUJGMEU1NTEyQTg5Mjk4MDBEQjE3MDkgLyogV2ViR0xFeHRlbnNpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFQkYwRTUzMTJBODkyOTgw
MERCMTcwOSAvKiBXZWJHTEV4dGVuc2lvbi5oICovOyB9OwogCQk2RUJGMEU3NjEyQTk4Njg4MDBE
QjE3MDkgLyogSlNPRVNUZXh0dXJlRmxvYXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkVCRjBFNzQxMkE5ODY4ODAwREIxNzA5IC8qIEpTT0VTVGV4
dHVyZUZsb2F0LmNwcCAqLzsgfTsKIAkJNkVCRjBFNzcxMkE5ODY4ODAwREIxNzA5IC8qIEpTT0VT
VGV4dHVyZUZsb2F0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2RUJGMEU3NTEyQTk4Njg4MDBEQjE3MDkgLyogSlNPRVNUZXh0dXJlRmxvYXQuaCAqLzsg
fTsKKwkJNkVCRjBFNzYxMkE5ODY4ODAwREIxNzBBIC8qIEpTRVhURHJhd0J1ZmZlcnMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVCRjBFNzQxMkE5
ODY4ODAwREIxNzBBIC8qIEpTRVhURHJhd0J1ZmZlcnMuY3BwICovOyB9OworCQk2RUJGMEU3NzEy
QTk4Njg4MDBEQjE3MEEgLyogSlNFWFREcmF3QnVmZmVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVCRjBFNzUxMkE5ODY4ODAwREIxNzBBIC8qIEpT
RVhURHJhd0J1ZmZlcnMuaCAqLzsgfTsKIAkJNkVEODc4QzQxNDc0OTNGNDAwNEMzNTk3IC8qIFJl
bmRlclRhYmxlQ2FwdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2RUQ4NzhDMjE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9u
LmNwcCAqLzsgfTsKIAkJNkVEODc4QzUxNDc0OTNGNDAwNEMzNTk3IC8qIFJlbmRlclRhYmxlQ2Fw
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVE
ODc4QzMxNDc0OTNGNDAwNEMzNTk3IC8qIFJlbmRlclRhYmxlQ2FwdGlvbi5oICovOyB9OwogCQk2
RUU4QTc3MjEwRjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFRThBNzcwMTBG
ODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwICovOyB9OwpAQCAt
MzgzOCw2ICszODQwLDkgQEAKIAkJOUZGRTNFQTUxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5
SW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
RkZFM0VBMzExQjVBNDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmNwcCAqLzsgfTsKIAkJOUZG
RTNFQTYxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUZGRTNFQTQxMUI1QTQzOTAwMzc4NzRFIC8q
IEpTTWVtb3J5SW5mby5oICovOyB9OwogCQlBMDBCNzIxQTExREU2NDI4MDA4QUI5RkYgLyogQ2hl
Y2tlZEludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTAwQjcyMTkxMURFNjQyNzAwOEFCOUZGIC8qIENoZWNrZWRJbnQuaCAqLzsgfTsKKwkJQTAyNDU3
NTExNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEwMjQ1NzRFMTZDRUFBMjcwMDBFNTY3MSAv
KiBFWFREcmF3QnVmZmVycy5jcHAgKi87IH07CisJCUEwMjQ1NzUyMTZDRUFBMjcwMDBFNTY3MSAv
KiBFWFREcmF3QnVmZmVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTAyNDU3NEYxNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmggKi87
IH07CisJCUEwMjQ1NzUzMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5pZGwgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEwMjQ1NzUwMTZD
RUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5pZGwgKi87IH07CiAJCUEwN0QzMzU1MTUy
QjYzMEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEwN0QzMzUzMTUyQjYzMEUw
MDFCNjM5MyAvKiBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcCAqLzsgfTsKIAkJQTA3
RDMzNTYxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEwN0QzMzU0MTUy
QjYzMEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggKi87IH07CiAJ
CUEwN0QzMzU4MTUyQjYzMkQwMDFCNjM5MyAvKiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTA3RDMzNTcx
NTJCNjMyRDAwMUI2MzkzIC8qIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggKi87IH07CkBA
IC05Mzg2LDYgKzkzOTEsOCBAQAogCQk2RUJGMEU1MzEyQTg5Mjk4MDBEQjE3MDkgLyogV2ViR0xF
eHRlbnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViR0xFeHRlbnNp
b24uaDsgcGF0aCA9IGNhbnZhcy9XZWJHTEV4dGVuc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2RUJGMEU3NDEyQTk4Njg4MDBEQjE3MDkgLyogSlNPRVNUZXh0dXJlRmxvYXQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNPRVNUZXh0dXJlRmxv
YXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RUJGMEU3NTEyQTk4Njg4MDBE
QjE3MDkgLyogSlNPRVNUZXh0dXJlRmxvYXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNPRVNUZXh0dXJlRmxvYXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NkVCRjBFNzQxMkE5ODY4ODAwREIxNzBBIC8qIEpTRVhURHJhd0J1ZmZlcnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFWFREcmF3QnVmZmVycy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFQkYwRTc1MTJBOTg2ODgwMERCMTcwQSAvKiBKU0VY
VERyYXdCdWZmZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRVhURHJh
d0J1ZmZlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkVEODc4QzIxNDc0OTNG
NDAwNEMzNTk3IC8qIFJlbmRlclRhYmxlQ2FwdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUYWJsZUNhcHRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk2RUQ4NzhDMzE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclRhYmxlQ2FwdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RUU4QTc3MDEwRjgwM0YzMDA1QTRB
MjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMTMzNyw2ICsxMTM0NCw5IEBACiAJCTlGRkUzRUEzMTFCNUE0
MzkwMDM3ODc0RSAvKiBKU01lbW9yeUluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNNZW1vcnlJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOUZGRTNFQTQxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lbW9yeUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTAwQjcyMTkxMURFNjQyNzAwOEFCOUZGIC8qIENoZWNrZWRJbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ2hlY2tlZEludC5oOyBwYXRoID0gY2FudmFz
L0NoZWNrZWRJbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTAyNDU3NEUxNkNF
QUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IEVYVERyYXdCdWZmZXJzLmNwcDsgcGF0aCA9IGNhbnZhcy9FWFREcmF3
QnVmZmVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEwMjQ1NzRGMTZDRUFB
MjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBFWFREcmF3QnVmZmVycy5oOyBwYXRoID0gY2FudmFzL0VYVERyYXdCdWZmZXJzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEwMjQ1NzUwMTZDRUFBMjcwMDBFNTY3MSAv
KiBFWFREcmF3QnVmZmVycy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gRVhURHJhd0J1ZmZl
cnMuaWRsOyBwYXRoID0gY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTA3RDMzNTMxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQ
cmVjaXNpb25Gb3JtYXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUEwN0QzMzU0MTUyQjYzMEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hhZGVyUHJlY2lzaW9u
Rm9ybWF0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xTaGFkZXJQ
cmVjaXNpb25Gb3JtYXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTA3RDMzNTcx
NTJCNjMyRDAwMUI2MzkzIC8qIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0Lmg7IHBh
dGggPSBjYW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE1NzA3LDYgKzE1NzE3LDkgQEAKIAkJNDk0ODRGQUUxMDJDRjAxRTAw
MTg3REQzIC8qIGNhbnZhcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJQTAyNDU3NEUxNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmNwcCAq
LywKKwkJCQlBMDI0NTc0RjE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuaCAqLywK
KwkJCQlBMDI0NTc1MDE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuaWRsICovLAog
CQkJCTQ5RUVDRENDMTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlci5pZGwgKi8sCiAJCQkJ
NDlFRUNEQzkxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVyVmlldy5pZGwgKi8sCiAJCQkJ
NkU0RTkxQTcxMEY3RkIzMTAwQTI3NzlDIC8qIENhbnZhc0NvbnRleHRBdHRyaWJ1dGVzLmNwcCAq
LywKQEAgLTE4OTc3LDYgKzE4OTkwLDggQEAKIAkJCQk3Njk0NTYzQjEyMTREOTdDMDAwN0NCQUUg
LyogSlNET01Ub2tlbkxpc3QuaCAqLywKIAkJCQkyRTM3RTAwMzEyREJDNUE0MDBBNkIyMzMgLyog
SlNET01VUkwuY3BwICovLAogCQkJCTJFMzdFMDA0MTJEQkM1QTQwMEE2QjIzMyAvKiBKU0RPTVVS
TC5oICovLAorCQkJCTZFQkYwRTc0MTJBOTg2ODgwMERCMTcwQSAvKiBKU0VYVERyYXdCdWZmZXJz
LmNwcCAqLywKKwkJCQk2RUJGMEU3NTEyQTk4Njg4MDBEQjE3MEEgLyogSlNFWFREcmF3QnVmZmVy
cy5oICovLAogCQkJCTc3Mjg2OTgxMTRGRDlBREEwMEY0ODREQyAvKiBKU0VYVFRleHR1cmVGaWx0
ZXJBbmlzb3Ryb3BpYy5jcHAgKi8sCiAJCQkJNzcyODY5ODIxNEZEOUFEQTAwRjQ4NERDIC8qIEpT
RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmggKi8sCiAJCQkJNDlFRUNFRjQxMDUwNzBDNDAw
MDk5RkFCIC8qIEpTRmxvYXQzMkFycmF5LmNwcCAqLywKQEAgLTI0OTI4LDYgKzI0OTQzLDcgQEAK
IAkJCQlFMEZFRjM3MkIzN0M1M0VBQzFDMUZCRUUgLyogSlNFdmVudFNvdXJjZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUZDN0RDMjZDRkUyNTYzMjAwQjg1QUU0IC8qIEpTRXZlbnRUYXJnZXQuaCBp
biBIZWFkZXJzICovLAogCQkJCTMzMTRBQ0VDMTA4OTIwODYwMDBGMEU1NiAvKiBKU0V4Y2VwdGlv
bkJhc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTZFQkYwRTc3MTJBOTg2ODgwMERCMTcwQSAvKiBK
U0VYVERyYXdCdWZmZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NzI4Njk4NDE0RkQ5QURBMDBG
NDg0REMgLyogSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDMDBGMDE1MEUwQTE4OTUwMEZEMDRFMyAvKiBKU0ZpbGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg5M0M0N0I4MTIzOEEwOTkwMDJCM0Q4NiAvKiBKU0ZpbGVDYWxsYmFjay5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yNjYxOSw2ICsyNjYzNSw3IEBACiAJCQkJRkQ1MzczNTMxMzdCNjUxODAwMDA4
RENFIC8qIFplcm9Qb2xlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUI4Q0Q0NjE2RDA0NTkxMDAw
RThDQzAgLyogU2VsZWN0b3JDaGVja2VyRmFzdFBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5
MTQwMjU3MTY4RTAyRUMwMDJENkM2QSAvKiBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaCBp
biBIZWFkZXJzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMDI0NTc1MjE2
Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjgy
NjMsNiArMjgyODAsNyBAQAogCQkJCUM2QTcwMzMyNUM5RDBCNkNEQ0JDNEQ3NyAvKiBKU0V2ZW50
VGFyZ2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNjA5MDIwMEU5MUI4RUMwMDBDNjhCNSAv
KiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzMTRBQ0VCMTA4
OTIwODYwMDBGMEU1NiAvKiBKU0V4Y2VwdGlvbkJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NkVCRjBFNzYxMkE5ODY4ODAwREIxNzBBIC8qIEpTRVhURHJhd0J1ZmZlcnMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNzcyODY5ODMxNEZEOUFEQTAwRjQ4NERDIC8qIEpTRVhUVGV4dHVyZUZpbHRl
ckFuaXNvdHJvcGljLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMDBGMDE0MEUwQTE4OTUwMEZE
MDRFMyAvKiBKU0ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODkzQzQ3QjcxMjM4QTA5OTAw
MkIzRDg2IC8qIEpTRmlsZUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk4MTMsNiAr
Mjk4MzEsNyBAQAogCQkJCUZENTM3MzUyMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk0MUI4Q0Q0NTE2RDA0NTkxMDAwRThDQzAgLyogU2VsZWN0b3JD
aGVja2VyRmFzdFBhdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDkxNDAyNTYxNjhFMDJFODAw
MkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAgaW4gU291cmNlcyAqLywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQTAyNDU3NTExNkNFQUEyNzAwMEU1Njcx
IC8qIEVYVERyYXdCdWZmZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcAkocmV2aXNpb24gMTQ0MjAzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
OSwxMCArMjksMTIgQEAKIAogI2luY2x1ZGUgIkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCiAK
KyNpbmNsdWRlICJFWFREcmF3QnVmZmVycy5oIgogI2luY2x1ZGUgIkVYVFRleHR1cmVGaWx0ZXJB
bmlzb3Ryb3BpYy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJIVE1M
Q2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJKU0VYVERyYXdCdWZmZXJzLmgiCiAjaW5jbHVkZSAiSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290
cm9waWMuaCIKICNpbmNsdWRlICJKU0Zsb2F0MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTSFRNTENh
bnZhc0VsZW1lbnQuaCIKQEAgLTE5NCw2ICsxOTYsOCBAQCBzdGF0aWMgSlNWYWx1ZSB0b0pTKEV4
ZWNTdGF0ZSogZXhlYywgSlNECiAgICAgc3dpdGNoIChleHRlbnNpb24tPmdldE5hbWUoKSkgewog
ICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMTG9zZUNvbnRleHROYW1lOgogICAgICAgICBy
ZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMTG9zZUNvbnRl
eHQqPihleHRlbnNpb24pKTsKKyAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFREcmF3QnVmZmVy
c05hbWU6CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8RVhURHJhd0J1ZmZlcnMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9u
OjpFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWNOYW1lOgogICAgICAgICByZXR1cm4gdG9KUyhl
eGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3Bp
Yyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1N0YW5kYXJkRGVy
aXZhdGl2ZXNOYW1lOgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5n
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgJ
KHJldmlzaW9uIDE0NDIwMykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGlu
Zy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDMsNiArMjQzLDM4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2OEFycmF5KFBhc3NSZWZQdHI8RE9NU3Ry
aW5nTGlzdD4sIHY4OjpJc29sYXRlKik7CiAKKyAgICAvLyBDb252ZXJ0IGEgdmFsdWUgdG8gYSAz
Mi1iaXQgaW50ZWdlci4gVGhlIGNvbnZlcnNpb24gZmFpbHMgaWYgdGhlCisgICAgLy8gdmFsdWUg
Y2Fubm90IGJlIGNvbnZlcnRlZCB0byBhbiBpbnRlZ2VyIG9yIGNvbnZlcnRzIHRvIG5hbiBvciB0
byBhbiBpbmZpbml0eS4KKyAgICBpbnQgdG9JbnQzMih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4sIGJv
b2wmIG9rKTsKKworICAgIC8vIENvbnZlcnQgYSB2YWx1ZSB0byBhIDMyLWJpdCBpbnRlZ2VyIGFz
c3VtaW5nIHRoZSBjb252ZXJzaW9uIGNhbm5vdCBmYWlsLgorICAgIGlubGluZSBpbnQgdG9JbnQz
Mih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCisgICAgeworICAgICAgICBib29sIG9rOwor
ICAgICAgICByZXR1cm4gdG9JbnQzMih2YWx1ZSwgb2spOworICAgIH0KKworICAgIC8vIENvbnZl
cnQgYSB2YWx1ZSB0byBhIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyLiBUaGUgY29udmVyc2lvbiBm
YWlscyBpZiB0aGUKKyAgICAvLyB2YWx1ZSBjYW5ub3QgYmUgY29udmVydGVkIHRvIGFuIHVuc2ln
bmVkIGludGVnZXIgb3IgY29udmVydHMgdG8gbmFuIG9yIHRvIGFuIGluZmluaXR5LgorICAgIHVp
bnQzMl90IHRvVUludDMyKHY4OjpIYW5kbGU8djg6OlZhbHVlPiwgYm9vbCYgb2spOworCisgICAg
Ly8gQ29udmVydCBhIHZhbHVlIHRvIGEgMzItYml0IHVuc2lnbmVkIGludGVnZXIgYXNzdW1pbmcg
dGhlIGNvbnZlcnNpb24gY2Fubm90IGZhaWwuCisgICAgaW5saW5lIHVpbnQzMl90IHRvVUludDMy
KHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKKyAgICB7CisgICAgICAgIGJvb2wgb2s7Cisg
ICAgICAgIHJldHVybiB0b1VJbnQzMih2YWx1ZSwgb2spOworICAgIH0KKworICAgIGlubGluZSBm
bG9hdCB0b0Zsb2F0KHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZS0+TnVtYmVyVmFsdWUoKSk7CisgICAgfQor
CisgICAgaW5saW5lIGxvbmcgbG9uZyB0b0ludDY0KHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVl
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4odmFsdWUtPklu
dGVnZXJWYWx1ZSgpKTsKKyAgICB9CisKICAgICB0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3QgTmF0
aXZlVmFsdWVUcmFpdHM7CiAKICAgICB0ZW1wbGF0ZTw+CkBAIC0yNTQsNiArMjg2LDE0IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICB9OwogCiAgICAgdGVtcGxhdGU8PgorICAgIHN0cnVjdCBO
YXRpdmVWYWx1ZVRyYWl0czx1bnNpZ25lZD4geworICAgICAgICBzdGF0aWMgaW5saW5lIHVuc2ln
bmVkIG5hdGl2ZVZhbHVlKGNvbnN0IHY4OjpIYW5kbGU8djg6OlZhbHVlPiYgdmFsdWUpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0b1VJbnQzMih2YWx1ZSk7CisgICAgICAgIH0KKyAg
ICB9OworCisgICAgdGVtcGxhdGU8PgogICAgIHN0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czxmbG9h
dD4gewogICAgICAgICBzdGF0aWMgaW5saW5lIGZsb2F0IG5hdGl2ZVZhbHVlKGNvbnN0IHY4OjpI
YW5kbGU8djg6OlZhbHVlPiYgdmFsdWUpCiAgICAgICAgIHsKQEAgLTM0OCwzOCArMzg4LDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiB0b05vZGVG
aWx0ZXIodjg6OkhhbmRsZTx2ODo6VmFsdWU+KTsKIAotICAgIC8vIENvbnZlcnQgYSB2YWx1ZSB0
byBhIDMyLWJpdCBpbnRlZ2VyLiAgVGhlIGNvbnZlcnNpb24gZmFpbHMgaWYgdGhlCi0gICAgLy8g
dmFsdWUgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBhbiBpbnRlZ2VyIG9yIGNvbnZlcnRzIHRvIG5h
biBvciB0byBhbiBpbmZpbml0eS4KLSAgICBpbnQgdG9JbnQzMih2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gdmFsdWUsIGJvb2wmIG9rKTsKLQotICAgIC8vIENvbnZlcnQgYSB2YWx1ZSB0byBhIDMyLWJp
dCBpbnRlZ2VyIGFzc3VtaW5nIHRoZSBjb252ZXJzaW9uIGNhbm5vdCBmYWlsLgotICAgIGlubGlu
ZSBpbnQgdG9JbnQzMih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCi0gICAgewotICAgICAg
ICBib29sIG9rOwotICAgICAgICByZXR1cm4gdG9JbnQzMih2YWx1ZSwgb2spOwotICAgIH0KLQot
ICAgIC8vIENvbnZlcnQgYSB2YWx1ZSB0byBhIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyLiAgVGhl
IGNvbnZlcnNpb24gZmFpbHMgaWYgdGhlCi0gICAgLy8gdmFsdWUgY2Fubm90IGJlIGNvbnZlcnRl
ZCB0byBhbiB1bnNpZ25lZCBpbnRlZ2VyIG9yIGNvbnZlcnRzIHRvIG5hbiBvciB0byBhbiBpbmZp
bml0eS4KLSAgICB1aW50MzJfdCB0b1VJbnQzMih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUs
IGJvb2wmIG9rKTsKLQotICAgIC8vIENvbnZlcnQgYSB2YWx1ZSB0byBhIDMyLWJpdCB1bnNpZ25l
ZCBpbnRlZ2VyIGFzc3VtaW5nIHRoZSBjb252ZXJzaW9uIGNhbm5vdCBmYWlsLgotICAgIGlubGlu
ZSB1aW50MzJfdCB0b1VJbnQzMih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCi0gICAgewot
ICAgICAgICBib29sIG9rOwotICAgICAgICByZXR1cm4gdG9VSW50MzIodmFsdWUsIG9rKTsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgZmxvYXQgdG9GbG9hdCh2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1
ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUtPk51bWJl
clZhbHVlKCkpOwotICAgIH0KLQotICAgIGlubGluZSBsb25nIGxvbmcgdG9JbnQ2NCh2ODo6TG9j
YWw8djg6OlZhbHVlPiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxs
b25nIGxvbmc+KHZhbHVlLT5JbnRlZ2VyVmFsdWUoKSk7Ci0gICAgfQotCiAgICAgaW5saW5lIGJv
b2wgaXNVbmRlZmluZWRPck51bGwodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIHZhbHVlLT5Jc051bGwoKSB8fCB2YWx1ZS0+SXNVbmRlZmluZWQoKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5n
Q29udGV4dEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkocmV2aXNpb24gMTQ0
MjAzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJp
bmdDb250ZXh0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiVjhBcnJheUJ1ZmZlclZpZXcuaCIK
ICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOEVYVERyYXdCdWZmZXJzLmgiCiAj
aW5jbHVkZSAiVjhFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCIKICNpbmNsdWRlICJWOEZs
b2F0MzJBcnJheS5oIgogI2luY2x1ZGUgIlY4SFRNTENhbnZhc0VsZW1lbnQuaCIKQEAgLTE3Niw2
ICsxNzcsMTAgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4T2JqZWN0KAogICAg
ICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PFdlYkdMTG9zZUNvbnRleHQq
PihleHRlbnNpb24pLCBjb250ZXh0T2JqZWN0LCBpc29sYXRlKTsKICAgICAgICAgcmVmZXJlbmNl
TmFtZSA9ICJ3ZWJHTExvc2VDb250ZXh0TmFtZSI7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
V2ViR0xFeHRlbnNpb246OkVYVERyYXdCdWZmZXJzTmFtZToKKyAgICAgICAgZXh0ZW5zaW9uT2Jq
ZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxFWFREcmF3QnVmZmVycyo+KGV4dGVuc2lvbiksIGNvbnRl
eHRPYmplY3QsIGlzb2xhdGUpOworICAgICAgICByZWZlcmVuY2VOYW1lID0gImV4dERyYXdCdWZm
ZXJzTmFtZSI7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVFRl
eHR1cmVGaWx0ZXJBbmlzb3Ryb3BpY05hbWU6CiAgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRv
Vjgoc3RhdGljX2Nhc3Q8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKj4oZXh0ZW5zaW9uKSwg
Y29udGV4dE9iamVjdCwgaXNvbGF0ZSk7CiAgICAgICAgIHJlZmVyZW5jZU5hbWUgPSAiZXh0VGV4
dHVyZUZpbHRlckFuaXNvdHJvcGljTmFtZSI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9FWFREcmF3QnVmZmVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQkdMKQor
CisjaW5jbHVkZSAiRVhURHJhd0J1ZmZlcnMuaCIKKworI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0VYVERyYXdCdWZmZXJzOjpFWFREcmF3QnVmZmVy
cyhXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCisgICAgOiBXZWJHTEV4dGVuc2lvbihj
b250ZXh0KQoreworfQorCitFWFREcmF3QnVmZmVyczo6fkVYVERyYXdCdWZmZXJzKCkKK3sKK30K
KworV2ViR0xFeHRlbnNpb246OkV4dGVuc2lvbk5hbWUgRVhURHJhd0J1ZmZlcnM6OmdldE5hbWUo
KSBjb25zdAoreworICAgIHJldHVybiBXZWJHTEV4dGVuc2lvbjo6RVhURHJhd0J1ZmZlcnNOYW1l
OworfQorCitQYXNzT3duUHRyPEVYVERyYXdCdWZmZXJzPiBFWFREcmF3QnVmZmVyczo6Y3JlYXRl
KFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBFWFREcmF3QnVmZmVycyog
eCA9IG5ldyBFWFREcmF3QnVmZmVycyhjb250ZXh0KTsKKyAgICByZXR1cm4gYWRvcHRQdHIoeCk7
Cit9CisKKy8vIHN0YXRpYworYm9vbCBFWFREcmF3QnVmZmVyczo6c3VwcG9ydGVkKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBFeHRlbnNpb25zM0QqIGV4dGVuc2lvbnMg
PSBjb250ZXh0LT5ncmFwaGljc0NvbnRleHQzRCgpLT5nZXRFeHRlbnNpb25zKCk7CisgICAgcmV0
dXJuIGV4dGVuc2lvbnMtPnN1cHBvcnRzKCJHTF9FWFRfZHJhd19idWZmZXJzIik7Cit9CisKK3Zv
aWQgRVhURHJhd0J1ZmZlcnM6OmRyYXdCdWZmZXJzRVhUKGNvbnN0IFZlY3RvcjxHQzNEZW51bT4m
IGJ1ZmZlcnMpCit7CisgICAgaWYgKG1fY29udGV4dC0+aXNDb250ZXh0TG9zdCgpKQorICAgICAg
ICByZXR1cm47CisgICAgR0MzRHNpemVpIG4gPSBidWZmZXJzLnNpemUoKTsKKyAgICBjb25zdCBH
QzNEZW51bSogYnVmcyA9IGJ1ZmZlcnMuZGF0YSgpOworICAgIGlmICghbV9jb250ZXh0LT5tX2Zy
YW1lYnVmZmVyQmluZGluZykgeworICAgICAgICBpZiAobiAhPSAxKSB7CisgICAgICAgICAgICBt
X2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZB
TFVFLCAiZHJhd0J1ZmZlcnNFWFQiLCAibW9yZSB0aGFuIG9uZSBidWZmZXIiKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAoYnVmc1swXSAhPSBHcmFwaGljc0Nv
bnRleHQzRDo6QkFDSyAmJiBidWZzWzBdICE9IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKSB7Cisg
ICAgICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNE
OjpJTlZBTElEX09QRVJBVElPTiwgImRyYXdCdWZmZXJzRVhUIiwgIkJBQ0sgb3IgTk9ORSIpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8vIEJlY2F1c2UgdGhlIGJh
Y2tidWZmZXIgaXMgc2ltdWxhdGVkIHdlIG5lZWQgdG8gY2hhbmdlIEJBQ0sgdG8gQ09MT1JfQVRU
QUNITUVOVDAKKyAgICAgICAgR0MzRGVudW0gdmFsdWUgPSAoYnVmc1swXSA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6QkFDSykgPyBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDAgOiBH
cmFwaGljc0NvbnRleHQzRDo6Tk9ORTsKKyAgICAgICAgbV9jb250ZXh0LT5ncmFwaGljc0NvbnRl
eHQzRCgpLT5nZXRFeHRlbnNpb25zKCktPmRyYXdCdWZmZXJzRVhUKDEsICZ2YWx1ZSk7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgaWYgKG4gPiBtX2NvbnRleHQtPmdldE1heERyYXdCdWZmZXJzKCkp
IHsKKyAgICAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0M0Q6OklOVkFMSURfVkFMVUUsICJkcmF3QnVmZmVyc0VYVCIsICJtb3JlIHRoYW4gbWF4IGRy
YXcgYnVmZmVycyIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGZv
ciAoR0MzRHNpemVpIGkgPSAwOyBpIDwgbjsgKytpKSB7CisgICAgICAgICAgICBpZiAoYnVmc1tp
XSAhPSBHcmFwaGljc0NvbnRleHQzRDo6Tk9ORSAmJiBidWZzW2ldICE9IHN0YXRpY19jYXN0PEdD
M0RlbnVtPihFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQwX0VYVCArIGkpKSB7CisgICAg
ICAgICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQz
RDo6SU5WQUxJRF9PUEVSQVRJT04sICJkcmF3QnVmZmVyc0VYVCIsICJDT0xPUl9BVFRBQ0hNRU5U
aV9FWFQgb3IgTk9ORSIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgICAgICBtX2NvbnRleHQtPm1fZnJhbWVidWZmZXJCaW5kaW5nLT5kcmF3
QnVmZmVycyhidWZmZXJzKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmNwcApfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46
ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFRE
cmF3QnVmZmVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VY
VERyYXdCdWZmZXJzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9FWFREcmF3QnVmZmVycy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBFWFREcmF3QnVmZmVyc19oCisjZGVmaW5lIEVYVERyYXdCdWZmZXJzX2gKKworI2lu
Y2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBFWFREcmF3QnVmZmVycyA6IHB1YmxpYyBXZWJH
TEV4dGVuc2lvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8RVhURHJhd0J1ZmZl
cnM+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKKworICAgIHN0YXRpYyBib29sIHN1
cHBvcnRlZChXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKKworICAgIHZpcnR1YWwgfkVYVERyYXdC
dWZmZXJzKCk7CisgICAgdmlydHVhbCBFeHRlbnNpb25OYW1lIGdldE5hbWUoKSBjb25zdDsKKwor
ICAgIHZvaWQgZHJhd0J1ZmZlcnNFWFQoY29uc3QgVmVjdG9yPEdDM0RlbnVtPiYgYnVmZmVycyk7
CisKK3ByaXZhdGU6CisgICAgRVhURHJhd0J1ZmZlcnMoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFWFREcmF3QnVmZmVy
c19oCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFRE
cmF3QnVmZmVycy5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5pZGwJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5p
ZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCit0eXBlZGVmIHVuc2lnbmVk
IGxvbmcgR0xlbnVtOworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgSlNHZW5lcmF0
ZUlzUmVhY2hhYmxlPUltcGxDb250ZXh0LAorICAgIE9taXRDb25zdHJ1Y3RvciwKKyAgICBEb05v
dENoZWNrQ29uc3RhbnRzCitdIGludGVyZmFjZSBFWFREcmF3QnVmZmVycyB7CisgICAgY29uc3Qg
R0xlbnVtIENPTE9SX0FUVEFDSE1FTlQwX0VYVCA9IDB4OENFMDsKKyAgICBjb25zdCBHTGVudW0g
Q09MT1JfQVRUQUNITUVOVDFfRVhUID0gMHg4Q0UxOworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9B
VFRBQ0hNRU5UMl9FWFQgPSAweDhDRTI7CisgICAgY29uc3QgR0xlbnVtIENPTE9SX0FUVEFDSE1F
TlQzX0VYVCA9IDB4OENFMzsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDRfRVhU
ID0gMHg4Q0U0OworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UNV9FWFQgPSAweDhD
RTU7CisgICAgY29uc3QgR0xlbnVtIENPTE9SX0FUVEFDSE1FTlQ2X0VYVCA9IDB4OENFNjsKKyAg
ICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDdfRVhUID0gMHg4Q0U3OworICAgIGNvbnN0
IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UOF9FWFQgPSAweDhDRTg7CisgICAgY29uc3QgR0xlbnVt
IENPTE9SX0FUVEFDSE1FTlQ5X0VYVCA9IDB4OENFOTsKKyAgICBjb25zdCBHTGVudW0gQ09MT1Jf
QVRUQUNITUVOVDEwX0VYVCA9IDB4OENFQTsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNI
TUVOVDExX0VYVCA9IDB4OENFQjsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDEy
X0VYVCA9IDB4OENFQzsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDEzX0VYVCA9
IDB4OENFRDsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDE0X0VYVCA9IDB4OENF
RTsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDE1X0VYVCA9IDB4OENFRjsKKwor
ICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjBfRVhUID0gMHg4ODI1OworICAgIGNvbnN0IEdM
ZW51bSBEUkFXX0JVRkZFUjFfRVhUID0gMHg4ODI2OworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JV
RkZFUjJfRVhUID0gMHg4ODI3OworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjNfRVhUID0g
MHg4ODI4OworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjRfRVhUID0gMHg4ODI5OworICAg
IGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjVfRVhUID0gMHg4ODJBOworICAgIGNvbnN0IEdMZW51
bSBEUkFXX0JVRkZFUjZfRVhUID0gMHg4ODJCOworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZF
UjdfRVhUID0gMHg4ODJDOworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjhfRVhUID0gMHg4
ODJEOworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjlfRVhUID0gMHg4ODJFOworICAgIGNv
bnN0IEdMZW51bSBEUkFXX0JVRkZFUjEwX0VYVCA9IDB4ODgyRjsKKyAgICBjb25zdCBHTGVudW0g
RFJBV19CVUZGRVIxMV9FWFQgPSAweDg4MzA7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVS
MTJfRVhUID0gMHg4ODMxOworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjEzX0VYVCA9IDB4
ODgzMjsKKyAgICBjb25zdCBHTGVudW0gRFJBV19CVUZGRVIxNF9FWFQgPSAweDg4MzM7CisgICAg
Y29uc3QgR0xlbnVtIERSQVdfQlVGRkVSMTVfRVhUID0gMHg4ODM0OworCisgICAgY29uc3QgR0xl
bnVtIE1BWF9DT0xPUl9BVFRBQ0hNRU5UU19FWFQgPSAweDhDREY7CisgICAgY29uc3QgR0xlbnVt
IE1BWF9EUkFXX0JVRkZFUlNfRVhUID0gMHg4ODI0OworCisgICAgdm9pZCBkcmF3QnVmZmVyc0VY
VChpbiBzZXF1ZW5jZTxHTGVudW0+IGJ1ZmZlcnMpOworfTsKClByb3BlcnR5IGNoYW5nZXMgb246
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgJKHJldmlzaW9uIDE0NDIwMykKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2
LDYgKzM2LDcgQEAgcHVibGljOgogICAgIC8vIEV4dGVuc2lvbiBuYW1lcyBhcmUgbmVlZGVkIHRv
IHByb3Blcmx5IHdyYXAgaW5zdGFuY2VzIGluIEphdmFTY3JpcHQgb2JqZWN0cy4KICAgICBlbnVt
IEV4dGVuc2lvbk5hbWUgewogICAgICAgICBXZWJHTExvc2VDb250ZXh0TmFtZSwKKyAgICAgICAg
RVhURHJhd0J1ZmZlcnNOYW1lLAogICAgICAgICBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWNO
YW1lLAogICAgICAgICBPRVNUZXh0dXJlRmxvYXROYW1lLAogICAgICAgICBPRVNTdGFuZGFyZERl
cml2YXRpdmVzTmFtZSwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJh
bWVidWZmZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMRnJhbWVidWZmZXIuY3BwCShyZXZpc2lvbiAxNDQyMDMpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiAr
MjksOCBAQAogCiAjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgogCisjaW5jbHVkZSAiRVhU
RHJhd0J1ZmZlcnMuaCIKKyNpbmNsdWRlICJFeHRlbnNpb25zM0QuaCIKICNpbmNsdWRlICJXZWJH
TENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgogCkBA
IC0yOTIsNiArMjk0LDcgQEAgdm9pZCBXZWJHTEZyYW1lYnVmZmVyOjpzZXRBdHRhY2htZW50Rm9y
QgogICAgICAgICByZXR1cm47CiAgICAgaWYgKHRleHR1cmUgJiYgdGV4dHVyZS0+b2JqZWN0KCkp
IHsKICAgICAgICAgbV9hdHRhY2htZW50cy5hZGQoYXR0YWNobWVudCwgV2ViR0xUZXh0dXJlQXR0
YWNobWVudDo6Y3JlYXRlKHRleHR1cmUsIHRleFRhcmdldCwgbGV2ZWwpKTsKKyAgICAgICAgZHJh
d0J1ZmZlcnNJZk5lY2Vzc2FyeShmYWxzZSk7CiAgICAgICAgIHRleHR1cmUtPm9uQXR0YWNoZWQo
KTsKICAgICB9CiB9CkBAIC0zMDQsNiArMzA3LDcgQEAgdm9pZCBXZWJHTEZyYW1lYnVmZmVyOjpz
ZXRBdHRhY2htZW50Rm9yQgogICAgICAgICByZXR1cm47CiAgICAgaWYgKHJlbmRlcmJ1ZmZlciAm
JiByZW5kZXJidWZmZXItPm9iamVjdCgpKSB7CiAgICAgICAgIG1fYXR0YWNobWVudHMuYWRkKGF0
dGFjaG1lbnQsIFdlYkdMUmVuZGVyYnVmZmVyQXR0YWNobWVudDo6Y3JlYXRlKHJlbmRlcmJ1ZmZl
cikpOworICAgICAgICBkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5KGZhbHNlKTsKICAgICAgICAgcmVu
ZGVyYnVmZmVyLT5vbkF0dGFjaGVkKCk7CiAgICAgfQogfQpAQCAtMzQwLDYgKzM0NCw3IEBAIHZv
aWQgV2ViR0xGcmFtZWJ1ZmZlcjo6cmVtb3ZlQXR0YWNobWVudEYKICAgICBpZiAoYXR0YWNobWVu
dE9iamVjdCkgewogICAgICAgICBhdHRhY2htZW50T2JqZWN0LT5vbkRldGFjaGVkKGNvbnRleHQo
KS0+Z3JhcGhpY3NDb250ZXh0M0QoKSk7CiAgICAgICAgIG1fYXR0YWNobWVudHMucmVtb3ZlKGF0
dGFjaG1lbnQpOworICAgICAgICBkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5KGZhbHNlKTsKICAgICAg
ICAgc3dpdGNoIChhdHRhY2htZW50KSB7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVDoKICAgICAgICAgICAgIGF0dGFjaChHcmFwaGljc0Nv
bnRleHQzRDo6REVQVEhfQVRUQUNITUVOVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0FUVEFD
SE1FTlQpOwpAQCAtNTg1LDYgKzU5MCwzOSBAQCBib29sIFdlYkdMRnJhbWVidWZmZXI6OmlzQm91
bmQoKSBjb25zdAogICAgIHJldHVybiAoY29udGV4dCgpLT5tX2ZyYW1lYnVmZmVyQmluZGluZy5n
ZXQoKSA9PSB0aGlzKTsKIH0KIAordm9pZCBXZWJHTEZyYW1lYnVmZmVyOjpkcmF3QnVmZmVycyhj
b25zdCBWZWN0b3I8R0MzRGVudW0+JiBidWZzKQoreworICAgIG1fZHJhd0J1ZmZlcnMgPSBidWZz
OworICAgIG1fZmlsdGVyZWREcmF3QnVmZmVycy5yZXNpemUobV9kcmF3QnVmZmVycy5zaXplKCkp
OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9maWx0ZXJlZERyYXdCdWZmZXJzLnNpemUo
KTsgKytpKQorICAgICAgICBtX2ZpbHRlcmVkRHJhd0J1ZmZlcnNbaV0gPSBHcmFwaGljc0NvbnRl
eHQzRDo6Tk9ORTsKKyAgICBkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5KHRydWUpOworfQorCit2b2lk
IFdlYkdMRnJhbWVidWZmZXI6OmRyYXdCdWZmZXJzSWZOZWNlc3NhcnkoYm9vbCBmb3JjZSkKK3sK
KyAgICBpZiAoIWNvbnRleHQoKS0+bV9leHREcmF3QnVmZmVycykKKyAgICAgICAgcmV0dXJuOwor
ICAgIGJvb2wgcmVzZXQgPSBmb3JjZTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fZHJh
d0J1ZmZlcnMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgaWYgKG1fZHJhd0J1ZmZlcnNbaV0gIT0g
R3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUgJiYgZ2V0QXR0YWNobWVudChtX2RyYXdCdWZmZXJzW2ld
KSkgeworICAgICAgICAgICAgaWYgKG1fZmlsdGVyZWREcmF3QnVmZmVyc1tpXSAhPSBtX2RyYXdC
dWZmZXJzW2ldKSB7CisgICAgICAgICAgICAgICAgbV9maWx0ZXJlZERyYXdCdWZmZXJzW2ldID0g
bV9kcmF3QnVmZmVyc1tpXTsKKyAgICAgICAgICAgICAgICByZXNldCA9IHRydWU7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAobV9maWx0ZXJlZERyYXdC
dWZmZXJzW2ldICE9IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKSB7CisgICAgICAgICAgICAgICAg
bV9maWx0ZXJlZERyYXdCdWZmZXJzW2ldID0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkU7CisgICAg
ICAgICAgICAgICAgcmVzZXQgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
fQorICAgIGlmIChyZXNldCkgeworICAgICAgICBjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNE
KCktPmdldEV4dGVuc2lvbnMoKS0+ZHJhd0J1ZmZlcnNFWFQoCisgICAgICAgICAgICBtX2ZpbHRl
cmVkRHJhd0J1ZmZlcnMuc2l6ZSgpLCBtX2ZpbHRlcmVkRHJhd0J1ZmZlcnMuZGF0YSgpKTsKKyAg
ICB9Cit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmgJKHJldmlzaW9uIDE0NDIwMykK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtOTUsNiArOTUsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc1N0ZW5jaWxC
dWZmZXIoKSBjb25zdDsKIAorICAgIC8vIFdyYXBwZXIgZm9yIGRyYXdCdWZmZXJzRVhUL2RyYXdC
dWZmZXJzQVJCIHRvIHdvcmsgYXJvdW5kIGEgZHJpdmVyIGJ1Zy4KKyAgICB2b2lkIGRyYXdCdWZm
ZXJzKGNvbnN0IFZlY3RvcjxHQzNEZW51bT4mIGJ1ZnMpOworCiBwcm90ZWN0ZWQ6CiAgICAgV2Vi
R0xGcmFtZWJ1ZmZlcihXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKIApAQCAtMTE0LDExICsxMTcs
MTcgQEAgcHJpdmF0ZToKICAgICAvLyBhdHRhY2ggJ2F0dGFjaG1lbnQnIGF0ICdhdHRhY2htZW50
UG9pbnQnLgogICAgIHZvaWQgYXR0YWNoKEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIGF0
dGFjaG1lbnRQb2ludCk7CiAKKyAgICAvLyBDaGVjayBpZiBhIG5ldyBkcmF3QnVmZmVycyBjYWxs
IHNob3VsZCBiZSBpc3N1ZWQuIFRoaXMgaXMgY2FsbGVkIHdoZW4gd2UgYWRkIG9yIHJlbW92ZSBh
biBhdHRhY2htZW50LgorICAgIHZvaWQgZHJhd0J1ZmZlcnNJZk5lY2Vzc2FyeShib29sIGZvcmNl
KTsKKwogICAgIHR5cGVkZWYgV1RGOjpIYXNoTWFwPEdDM0RlbnVtLCBSZWZQdHI8V2ViR0xBdHRh
Y2htZW50PiA+IEF0dGFjaG1lbnRNYXA7CiAKICAgICBBdHRhY2htZW50TWFwIG1fYXR0YWNobWVu
dHM7CiAKICAgICBib29sIG1faGFzRXZlckJlZW5Cb3VuZDsKKworICAgIFZlY3RvcjxHQzNEZW51
bT4gbV9kcmF3QnVmZmVyczsKKyAgICBWZWN0b3I8R0MzRGVudW0+IG1fZmlsdGVyZWREcmF3QnVm
ZmVyczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkocmV2aXNp
b24gMTQ0MjAzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNh
Y2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2hlY2tlZEludC5oIgogI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgorI2luY2x1ZGUgIkVYVERyYXdCdWZmZXJzLmgiCiAjaW5jbHVkZSAiRVhUVGV4dHVyZUZp
bHRlckFuaXNvdHJvcGljLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUg
IkV4dGVuc2lvbnMzRC5oIgpAQCAtNTM4LDYgKzUzOSwxMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6aW5pdGlhbGl6ZU5lCiAgICAgbV9tYXhSZW5kZXJidWZmZXJTaXplID0gMDsKICAg
ICBtX2NvbnRleHQtPmdldEludGVnZXJ2KEdyYXBoaWNzQ29udGV4dDNEOjpNQVhfUkVOREVSQlVG
RkVSX1NJWkUsICZtX21heFJlbmRlcmJ1ZmZlclNpemUpOwogCisgICAgLy8gVGhlc2UgdHdvIHZh
bHVlcyBmcm9tIEVYVF9kcmF3X2J1ZmZlcnMgYXJlIGxhemlseSBxdWVyaWVkLgorICAgIG1fbWF4
RHJhd0J1ZmZlcnMgPSAwOworICAgIG1fbWF4Q29sb3JBdHRhY2htZW50cyA9IDA7CisKICAgICBt
X2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmNy
ZWF0ZSh0aGlzLCBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpWYW9UeXBlRGVmYXVsdCk7CiAg
ICAgYWRkQ29udGV4dE9iamVjdChtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKSk7CiAg
ICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0ID0gbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7
CkBAIC0yMTUzLDEyICsyMTU4LDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmZyYW1l
YnVmZmVyUgogICAgICAgICBtX2NvbnRleHQtPmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKHRhcmdl
dCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0FUVEFDSE1FTlQsIHJlbmRlcmJ1ZmZlcnRhcmdl
dCwgYnVmZmVyT2JqZWN0KTsKICAgICAgICAgbV9jb250ZXh0LT5mcmFtZWJ1ZmZlclJlbmRlcmJ1
ZmZlcih0YXJnZXQsIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0FUVEFDSE1FTlQsIHJlbmRl
cmJ1ZmZlcnRhcmdldCwgYnVmZmVyT2JqZWN0KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6REVQVEhfQVRUQUNITUVOVDoKLSAgICAgICAgbV9jb250ZXh0LT5m
cmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcih0YXJnZXQsIGF0dGFjaG1lbnQsIHJlbmRlcmJ1ZmZlcnRh
cmdldCwgYnVmZmVyT2JqZWN0KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6U1RFTkNJTF9BVFRBQ0hNRU5UOgotICAgICAgICBtX2NvbnRleHQtPmZyYW1lYnVm
ZmVyUmVuZGVyYnVmZmVyKHRhcmdldCwgYXR0YWNobWVudCwgcmVuZGVyYnVmZmVydGFyZ2V0LCBi
dWZmZXJPYmplY3QpOwotICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBtX2Nv
bnRleHQtPmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKHRhcmdldCwgYXR0YWNobWVudCwgcmVuZGVy
YnVmZmVydGFyZ2V0LCBidWZmZXJPYmplY3QpOwogICAgIH0KQEAgLTI0MjYsNiArMjQyNSwxMyBA
QCBXZWJHTEV4dGVuc2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnCiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuIG1fd2ViZ2xEZXB0aFRleHR1cmUuZ2V0KCk7CiAgICAgfQorICAgIGlmIChl
cXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiRVhUX2RyYXdfYnVmZmVycyIpICYmIEVYVERyYXdCdWZm
ZXJzOjpzdXBwb3J0ZWQodGhpcykpIHsKKyAgICAgICAgaWYgKCFtX2V4dERyYXdCdWZmZXJzKSB7
CisgICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+ZW5zdXJlRW5hYmxlZCgi
R0xfRVhUX2RyYXdfYnVmZmVycyIpOworICAgICAgICAgICAgbV9leHREcmF3QnVmZmVycyA9IEVY
VERyYXdCdWZmZXJzOjpjcmVhdGUodGhpcyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1f
ZXh0RHJhd0J1ZmZlcnMuZ2V0KCk7CisgICAgfQogICAgIGlmIChhbGxvd1ByaXZpbGVnZWRFeHRl
bnNpb25zKCkpIHsKICAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJXRUJHTF9k
ZWJ1Z19yZW5kZXJlcl9pbmZvIikpIHsKICAgICAgICAgICAgIGlmICghbV93ZWJnbERlYnVnUmVu
ZGVyZXJJbmZvKQpAQCAtMjcwOSw2ICsyNzE1LDUwIEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OmdldFAKICAgICAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFt
ZXRlcihFeHRlbnNpb25zM0Q6Ok1BWF9URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCk7CiAgICAg
ICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJn
ZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgRVhUX3RleHR1cmVfZmlsdGVy
X2FuaXNvdHJvcGljIG5vdCBlbmFibGVkIik7CiAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
KTsKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFYX0NPTE9SX0FUVEFDSE1FTlRTX0VYVDogLy8g
RVhUX2RyYXdfYnVmZmVycyBCRUdJTgorICAgICAgICBpZiAobV9leHREcmF3QnVmZmVycykKKyAg
ICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oZ2V0TWF4Q29sb3JBdHRhY2htZW50cygpKTsK
KyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5V
TSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBFWFRfZHJhd19idWZm
ZXJzIG5vdCBlbmFibGVkIik7CisgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICBj
YXNlIEV4dGVuc2lvbnMzRDo6TUFYX0RSQVdfQlVGRkVSU19FWFQ6CisgICAgICAgIGlmIChtX2V4
dERyYXdCdWZmZXJzKQorICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhnZXRNYXhEcmF3
QnVmZmVycygpKTsKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBF
WFRfZHJhd19idWZmZXJzIG5vdCBlbmFibGVkIik7CisgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oKTsKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIwX0VYVDogLy8gRFJBV19C
VUZGRVIwX0VYVCBpcyBzcGVjaWFsIGFzIHRoZSBiYWNrYnVmZmVyIGlzIHNpbXVsYXRlZC4KKyAg
ICAgICAgaWYgKG1fZXh0RHJhd0J1ZmZlcnMpIHsKKyAgICAgICAgICAgIEdDM0RpbnQgdmFsdWUg
PSAwOworICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihwbmFtZSwgJnZhbHVlKTsK
KyAgICAgICAgICAgIGlmICghbV9mcmFtZWJ1ZmZlckJpbmRpbmcgJiYgdmFsdWUgIT0gR3JhcGhp
Y3NDb250ZXh0M0Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgdmFsdWUgPSBHcmFwaGljc0NvbnRl
eHQzRDo6QkFDSzsKKyAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAg
ICAgICB9CisgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZB
TElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgRVhUX2Ry
YXdfYnVmZmVycyBub3QgZW5hYmxlZCIpOworICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7
CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSMV9FWFQ6CisgICAgY2FzZSBFeHRl
bnNpb25zM0Q6OkRSQVdfQlVGRkVSMl9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdf
QlVGRkVSM19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSNF9FWFQ6Cisg
ICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSNV9FWFQ6CisgICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkRSQVdfQlVGRkVSNl9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVG
RkVSN19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSOF9FWFQ6CisgICAg
Y2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSOV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25z
M0Q6OkRSQVdfQlVGRkVSMTBfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpEUkFXX0JVRkZF
UjExX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIxMl9FWFQ6CisgICAg
Y2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSMTNfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9u
czNEOjpEUkFXX0JVRkZFUjE0X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZG
RVIxNV9FWFQ6IC8vIEVYVF9kcmF3X2J1ZmZlcnMgRU5ECisgICAgICAgIGlmIChtX2V4dERyYXdC
dWZmZXJzKSB7CisgICAgICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8R0MzRGVudW0+KEV4dGVuc2lv
bnMzRDo6RFJBV19CVUZGRVIwX0VYVCArIGdldE1heERyYXdCdWZmZXJzKCkpIDw9IHBuYW1lKSB7
CisgICAgICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklO
VkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciwgZXhjZWVkcyBN
QVhfQ09MT1JfQVRUQUNITUVOVFNfRVhUIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGdldEludFBhcmFt
ZXRlcihwbmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhp
Y3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFt
ZXRlciBuYW1lLCBFWFRfZHJhd19idWZmZXJzIG5vdCBlbmFibGVkIik7CisgICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oKTsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFs
aWQgcGFyYW1ldGVyIG5hbWUiKTsKICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwpAQCAt
MjkxMyw2ICsyOTYzLDggQEAgVmVjdG9yPFN0cmluZz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpn
ZQogICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJl
X3MzdGMiKTsKICAgICBpZiAoV2ViR0xEZXB0aFRleHR1cmU6OnN1cHBvcnRlZChncmFwaGljc0Nv
bnRleHQzRCgpKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2RlcHRoX3Rl
eHR1cmUiKTsKKyAgICBpZiAoRVhURHJhd0J1ZmZlcnM6OnN1cHBvcnRlZCh0aGlzKSkKKyAgICAg
ICAgcmVzdWx0LmFwcGVuZCgiRVhUX2RyYXdfYnVmZmVycyIpOwogCiAgICAgaWYgKGFsbG93UHJp
dmlsZWdlZEV4dGVuc2lvbnMoKSkgewogICAgICAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCktPnN1cHBvcnRzKCJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkKQEAg
LTUzMjYsNiArNTM3OCwzMSBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVG
cmFtCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9BVFRBQ0hNRU5UOgogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVDoKICAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxX0VYVDog
Ly8gRVhUX2RyYXdfYnVmZmVycyBCRUdJTgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9B
VFRBQ0hNRU5UMl9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQz
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDRfRVhUOgorICAg
IGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UNV9FWFQ6CisgICAgY2FzZSBFeHRl
bnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ2X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6
Q09MT1JfQVRUQUNITUVOVDdfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRB
Q0hNRU5UOF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ5X0VY
VDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEwX0VYVDoKKyAgICBj
YXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDExX0VYVDoKKyAgICBjYXNlIEV4dGVu
c2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEyX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6
Q09MT1JfQVRUQUNITUVOVDEzX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRU
QUNITUVOVDE0X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDE1
X0VYVDogLy8gRVhUX2RyYXdfYnVmZmVycyBFTkQKKyAgICAvLyBDT0xPUl9BVFRBQ0hNRU5UMF9F
WFQgaXMgZXF1YWwgdG8gQ09MT1JfQVRUQUNITUVOVDAKKyAgICAgICAgaWYgKCFtX2V4dERyYXdC
dWZmZXJzKSB7CisgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQz
RDo6SU5WQUxJRF9FTlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIGF0dGFjaG1lbnQsIEVYVF9k
cmF3X2J1ZmZlcnMgbm90IGVuYWJsZWQiKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgfQorICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8R0MzRGVudW0+KEV4dGVuc2lvbnMzRDo6
Q09MT1JfQVRUQUNITUVOVDBfRVhUICsgZ2V0TWF4Q29sb3JBdHRhY2htZW50cygpKSA8PSBhdHRh
Y2htZW50KSB7CisgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQz
RDo6SU5WQUxJRF9FTlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIGF0dGFjaG1lbnQsIGV4Y2Vl
ZHMgTUFYX0RSQVdfQlVGRkVSU19FWFQiKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgfQorICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCBmdW5jdGlvbk5hbWUsICJp
bnZhbGlkIGF0dGFjaG1lbnQiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNTg0Miw2ICs1
OTE5LDIwIEBAIEludFNpemUgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpjbGFtcGVkQ2EKICAgICAg
ICAgICAgICAgICAgICBjbGFtcChjYW52YXMoKS0+aGVpZ2h0KCksIDEsIG1fbWF4Vmlld3BvcnRE
aW1zWzFdKSk7CiB9CiAKK0dDM0RpbnQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRNYXhEcmF3
QnVmZmVycygpCit7CisgICAgaWYgKCFtX21heERyYXdCdWZmZXJzICYmIEVYVERyYXdCdWZmZXJz
OjpzdXBwb3J0ZWQodGhpcykpCisgICAgICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYoRXh0ZW5z
aW9uczNEOjpNQVhfRFJBV19CVUZGRVJTX0VYVCwgJm1fbWF4RHJhd0J1ZmZlcnMpOworICAgIHJl
dHVybiBtX21heERyYXdCdWZmZXJzOworfQorCitHQzNEaW50IFdlYkdMUmVuZGVyaW5nQ29udGV4
dDo6Z2V0TWF4Q29sb3JBdHRhY2htZW50cygpCit7CisgICAgaWYgKCFtX21heENvbG9yQXR0YWNo
bWVudHMgJiYgRVhURHJhd0J1ZmZlcnM6OnN1cHBvcnRlZCh0aGlzKSkKKyAgICAgICAgbV9jb250
ZXh0LT5nZXRJbnRlZ2VydihFeHRlbnNpb25zM0Q6Ok1BWF9DT0xPUl9BVFRBQ0hNRU5UU19FWFQs
ICZtX21heENvbG9yQXR0YWNobWVudHMpOworICAgIHJldHVybiBtX21heENvbG9yQXR0YWNobWVu
dHM7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJH
TCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dC5oCShyZXZpc2lvbiAxNDQyMDMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIs
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEVYVERyYXdCdWZmZXJzOwogY2xh
c3MgRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljOwogY2xhc3MgSFRNTEltYWdlRWxlbWVudDsK
IGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7CkBAIC0zMjMsNiArMzI0LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzdG9wKCk7CiAKICAgcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgRVhU
RHJhd0J1ZmZlcnM7CiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMRnJhbWVidWZmZXI7CiAgICAgZnJp
ZW5kIGNsYXNzIFdlYkdMT2JqZWN0OwogICAgIGZyaWVuZCBjbGFzcyBPRVNWZXJ0ZXhBcnJheU9i
amVjdDsKQEAgLTQ3Niw2ICs0NzgsOSBAQCBwdWJsaWM6CiAgICAgR0MzRGludCBtX21heFRleHR1
cmVMZXZlbDsKICAgICBHQzNEaW50IG1fbWF4Q3ViZU1hcFRleHR1cmVMZXZlbDsKIAorICAgIEdD
M0RpbnQgbV9tYXhEcmF3QnVmZmVyczsKKyAgICBHQzNEaW50IG1fbWF4Q29sb3JBdHRhY2htZW50
czsKKwogICAgIEdDM0RpbnQgbV9wYWNrQWxpZ25tZW50OwogICAgIEdDM0RpbnQgbV91bnBhY2tB
bGlnbm1lbnQ7CiAgICAgYm9vbCBtX3VucGFja0ZsaXBZOwpAQCAtNTA5LDYgKzUxNCw3IEBAIHB1
YmxpYzoKICAgICBpbnQgbV9udW1HTEVycm9yc1RvQ29uc29sZUFsbG93ZWQ7CiAKICAgICAvLyBF
bmFibGVkIGV4dGVuc2lvbiBvYmplY3RzLgorICAgIE93blB0cjxFWFREcmF3QnVmZmVycz4gbV9l
eHREcmF3QnVmZmVyczsKICAgICBPd25QdHI8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPiBt
X2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYzsKICAgICBPd25QdHI8T0VTVGV4dHVyZUZsb2F0
PiBtX29lc1RleHR1cmVGbG9hdDsKICAgICBPd25QdHI8T0VTU3RhbmRhcmREZXJpdmF0aXZlcz4g
bV9vZXNTdGFuZGFyZERlcml2YXRpdmVzOwpAQCAtNzMyLDYgKzczOCwxMSBAQCBwdWJsaWM6CiAg
ICAgLy8gQ2xhbXAgdGhlIHdpZHRoIGFuZCBoZWlnaHQgdG8gR0xfTUFYX1ZJRVdQT1JUX0RJTVMu
CiAgICAgSW50U2l6ZSBjbGFtcGVkQ2FudmFzU2l6ZSgpOwogCisgICAgLy8gRmlyc3QgdGltZSBj
YWxsZWQsIGlmIEVYVF9kcmF3X2J1ZmZlcnMgaXMgc3VwcG9ydGVkLCBxdWVyeSB0aGUgdmFsdWU7
IG90aGVyd2lzZSByZXR1cm4gMC4KKyAgICAvLyBMYXRlciwgcmV0dXJuIHRoZSBjYWNoZWQgdmFs
dWUuCisgICAgR0MzRGludCBnZXRNYXhEcmF3QnVmZmVycygpOworICAgIEdDM0RpbnQgZ2V0TWF4
Q29sb3JBdHRhY2htZW50cygpOworCiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMU3RhdGVSZXN0b3Jl
cjsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQv
RXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwCShyZXZpc2lv
biAxNDQyMDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0V4
dGVuc2lvbnMzRENocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE1LDQgKzIxNSw5IEBA
IHZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OnBvcEdyb3VwTWFya2UKICAgICBtX3ByaXZhdGUt
PndlYkNvbnRleHQoKS0+cG9wR3JvdXBNYXJrZXJFWFQoKTsKIH0KIAordm9pZCBFeHRlbnNpb25z
M0RDaHJvbWl1bTo6ZHJhd0J1ZmZlcnNFWFQoR0MzRHNpemVpIG4sIGNvbnN0IEdDM0RlbnVtKiBi
dWZzKQoreworICAgIG1fcHJpdmF0ZS0+d2ViQ29udGV4dCgpLT5kcmF3QnVmZmVyc0Nocm9taXVt
KG4sIGJ1ZnMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaAkocmV2aXNpb24gMTQ0
MjAzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uczNELmgJ
KHdvcmtpbmcgY29weSkKQEAgLTcwLDYgKzcwLDcgQEAgcHVibGljOgogICAgIC8vICAgR0xfRVhU
X2RlYnVnX21hcmtlcgogICAgIC8vICAgR0xfQ0hST01JVU1fY29weV90ZXh0dXJlCiAgICAgLy8g
ICBHTF9DSFJPTUlVTV9mbGlweQorICAgIC8vICAgR0xfQVJCX2RyYXdfYnVmZmVycyAvIEdMX0VY
VF9kcmF3X2J1ZmZlcnMKIAogICAgIC8vIFRha2VzIGZ1bGwgbmFtZSBvZiBleHRlbnNpb247IGZv
ciBleGFtcGxlLAogICAgIC8vICJHTF9FWFRfdGV4dHVyZV9mb3JtYXRfQkdSQTg4ODgiLgpAQCAt
MTUwLDcgKzE1MSw0MyBAQCBwdWJsaWM6CiAKICAgICAgICAgLy8gR0xfQ0hST01JVU1fY29weV90
ZXh0dXJlCiAgICAgICAgIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9DSFJPTUlVTSA9IDB4OTI0
MSwKLSAgICAgICAgVU5QQUNLX1VOUFJFTVVMVElQTFlfQUxQSEFfQ0hST01JVU0gPSAweDkyNDIK
KyAgICAgICAgVU5QQUNLX1VOUFJFTVVMVElQTFlfQUxQSEFfQ0hST01JVU0gPSAweDkyNDIsCisK
KyAgICAgICAgLy8gR0xfQVJCX2RyYXdfYnVmZmVycyAvIEdMX0VYVF9kcmF3X2J1ZmZlcnMKKyAg
ICAgICAgTUFYX0RSQVdfQlVGRkVSU19FWFQgPSAweDg4MjQsCisgICAgICAgIERSQVdfQlVGRkVS
MF9FWFQgPSAweDg4MjUsCisgICAgICAgIERSQVdfQlVGRkVSMV9FWFQgPSAweDg4MjYsCisgICAg
ICAgIERSQVdfQlVGRkVSMl9FWFQgPSAweDg4MjcsCisgICAgICAgIERSQVdfQlVGRkVSM19FWFQg
PSAweDg4MjgsCisgICAgICAgIERSQVdfQlVGRkVSNF9FWFQgPSAweDg4MjksCisgICAgICAgIERS
QVdfQlVGRkVSNV9FWFQgPSAweDg4MkEsCisgICAgICAgIERSQVdfQlVGRkVSNl9FWFQgPSAweDg4
MkIsCisgICAgICAgIERSQVdfQlVGRkVSN19FWFQgPSAweDg4MkMsCisgICAgICAgIERSQVdfQlVG
RkVSOF9FWFQgPSAweDg4MkQsCisgICAgICAgIERSQVdfQlVGRkVSOV9FWFQgPSAweDg4MkUsCisg
ICAgICAgIERSQVdfQlVGRkVSMTBfRVhUID0gMHg4ODJGLAorICAgICAgICBEUkFXX0JVRkZFUjEx
X0VYVCA9IDB4ODgzMCwKKyAgICAgICAgRFJBV19CVUZGRVIxMl9FWFQgPSAweDg4MzEsCisgICAg
ICAgIERSQVdfQlVGRkVSMTNfRVhUID0gMHg4ODMyLAorICAgICAgICBEUkFXX0JVRkZFUjE0X0VY
VCA9IDB4ODgzMywKKyAgICAgICAgRFJBV19CVUZGRVIxNV9FWFQgPSAweDg4MzQsCisgICAgICAg
IE1BWF9DT0xPUl9BVFRBQ0hNRU5UU19FWFQgPSAweDhDREYsCisgICAgICAgIENPTE9SX0FUVEFD
SE1FTlQwX0VYVCA9IDB4OENFMCwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDFfRVhUID0gMHg4
Q0UxLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMl9FWFQgPSAweDhDRTIsCisgICAgICAgIENP
TE9SX0FUVEFDSE1FTlQzX0VYVCA9IDB4OENFMywKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDRf
RVhUID0gMHg4Q0U0LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNV9FWFQgPSAweDhDRTUsCisg
ICAgICAgIENPTE9SX0FUVEFDSE1FTlQ2X0VYVCA9IDB4OENFNiwKKyAgICAgICAgQ09MT1JfQVRU
QUNITUVOVDdfRVhUID0gMHg4Q0U3LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UOF9FWFQgPSAw
eDhDRTgsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ5X0VYVCA9IDB4OENFOSwKKyAgICAgICAg
Q09MT1JfQVRUQUNITUVOVDEwX0VYVCA9IDB4OENFQSwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVO
VDExX0VYVCA9IDB4OENFQiwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDEyX0VYVCA9IDB4OENF
QywKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDEzX0VYVCA9IDB4OENFRCwKKyAgICAgICAgQ09M
T1JfQVRUQUNITUVOVDE0X0VYVCA9IDB4OENFRSwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDE1
X0VYVCA9IDB4OENFRgogICAgIH07CiAKICAgICAvLyBHTF9BUkJfcm9idXN0bmVzcwpAQCAtMTkw
LDYgKzIyNyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHVzaEdyb3VwTWFya2VyRVhU
KGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcG9wR3JvdXBNYXJrZXJFWFQo
dm9pZCkgPSAwOwogCisgICAgLy8gR0xfQVJCX2RyYXdfYnVmZmVycyAvIEdMX0VYVF9kcmF3X2J1
ZmZlcnMKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0J1ZmZlcnNFWFQoR0MzRHNpemVpIG4sIGNvbnN0
IEdDM0RlbnVtKiBidWZzKSA9IDA7CisKICAgICB2aXJ0dWFsIGJvb2wgaXNOVklESUEoKSA9IDA7
CiAgICAgdmlydHVhbCBib29sIGlzQU1EKCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0ludGVs
KCkgPSAwOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAkocmV2aXNpb24gMTQ0MjAzKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzg5LDYgKzEzODksMjEgQEAgdW5zaWduZWQgR3JhcGhpY3NDb250ZXh0M0Q6Omdl
dENsZWFyQml0cwogewogICAgIHN3aXRjaCAoYXR0YWNobWVudCkgewogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpD
T0xPUl9BVFRBQ0hNRU5UMV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFD
SE1FTlQyX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDNfRVhU
OgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UNF9FWFQ6CisgICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ1X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lv
bnMzRDo6Q09MT1JfQVRUQUNITUVOVDZfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xP
Ul9BVFRBQ0hNRU5UN19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1F
TlQ4X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDlfRVhUOgor
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTBfRVhUOgorICAgIGNhc2Ug
RXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTFfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9u
czNEOjpDT0xPUl9BVFRBQ0hNRU5UMTJfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xP
Ul9BVFRBQ0hNRU5UMTNfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hN
RU5UMTRfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTVfRVhU
OgogICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0JVRkZFUl9CSVQ7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQVRUQUNITUVOVDoKICAgICAgICAgcmV0
dXJuIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9CVUZGRVJfQklUOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9F
eHRlbnNpb25zM0RDaHJvbWl1bS5oCShyZXZpc2lvbiAxNDQyMDMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEdDM0Rib29s
ZWFuIGlzVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lk
IGJpbmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKICAgICB2aXJ0dWFsIFN0cmlu
ZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm0zRE9iamVjdCk7CisgICAg
dmlydHVhbCB2b2lkIGRyYXdCdWZmZXJzRVhUKEdDM0RzaXplaSwgY29uc3QgR0MzRGVudW0qKTsK
IAogICAgIGVudW0gewogICAgICAgICAvLyBHTF9PRVNfRUdMX2ltYWdlX2V4dGVybmFsCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3Bl
bkdMLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcAkocmV2aXNpb24gMTQ0MjAzKQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE3OCw5ICsxNzgsMjUgQEAgYm9vbCBFeHRlbnNpb25zM0RPcGVu
R0w6OnN1cHBvcnRzRXh0ZW5zaQogICAgIGlmIChuYW1lID09ICJHTF9FWFRfdGV4dHVyZV9maWx0
ZXJfYW5pc290cm9waWMiKQogICAgICAgICByZXR1cm4gbV9hdmFpbGFibGVFeHRlbnNpb25zLmNv
bnRhaW5zKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTsKIAorICAgIGlmIChu
YW1lID09ICJHTF9FWFRfZHJhd19idWZmZXJzIikgeworI2lmIFBMQVRGT1JNKE1BQykKKyAgICAg
ICAgcmV0dXJuIG1fYXZhaWxhYmxlRXh0ZW5zaW9ucy5jb250YWlucygiR0xfQVJCX2RyYXdfYnVm
ZmVycyIpOworI2Vsc2UKKyAgICAgICAgLy8gRklYTUU6IGltcGxlbWVudCBzdXBwb3J0IGZvciBv
dGhlciBwbGF0Zm9ybXMuCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgIH0KICAg
ICByZXR1cm4gbV9hdmFpbGFibGVFeHRlbnNpb25zLmNvbnRhaW5zKG5hbWUpOwogfQogCit2b2lk
IEV4dGVuc2lvbnMzRE9wZW5HTDo6ZHJhd0J1ZmZlcnNFWFQoR0MzRHNpemVpIG4sIGNvbnN0IEdD
M0RlbnVtKiBidWZzKQoreworICAgIC8vICBGSVhNRTogaW1wbGVtZW50IHN1cHBvcnQgZm9yIG90
aGVyIHBsYXRmb3Jtcy4KKyNpZiBQTEFURk9STShNQUMpCisgICAgOjpnbERyYXdCdWZmZXJzQVJC
KG4sIGJ1ZnMpOworI2VuZGlmCit9CisKIFN0cmluZyBFeHRlbnNpb25zM0RPcGVuR0w6OmdldEV4
dGVuc2lvbnMoKQogewogICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBj
aGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25z
M0RPcGVuR0wuaAkocmV2aXNpb24gMTQ0MjAzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oCSh3b3JraW5nIGNvcHkpCkBAIC01
MSw2ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0RXZlbnRNYXJrZXJF
WFQoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIHB1c2hHcm91cE1hcmtlckVYVChj
b25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgcG9wR3JvdXBNYXJrZXJFWFQodm9pZCk7
CisgICAgdmlydHVhbCB2b2lkIGRyYXdCdWZmZXJzRVhUKEdDM0RzaXplaSwgY29uc3QgR0MzRGVu
dW0qKTsKIAogcHJvdGVjdGVkOgogICAgIC8vIFRoaXMgY2xhc3Mgb25seSBuZWVkcyB0byBiZSBp
bnN0YW50aWF0ZWQgYnkgR3JhcGhpY3NDb250ZXh0M0QgaW1wbGVtZW50YXRpb25zLgpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5H
TENvbW1vbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAJKHJldmlzaW9uIDE0NDIwMykK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RP
cGVuR0xDb21tb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNiArMTE4LDE1IEBAIHZvaWQg
RXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uOjplbnN1cmVFbmEKICAgICAgICAgICAgIEFOR0xFUmVz
b3VyY2VzLk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyA9IDE7CiAgICAgICAgICAgICBjb21waWxl
ci5zZXRSZXNvdXJjZXMoQU5HTEVSZXNvdXJjZXMpOwogICAgICAgICB9CisgICAgfSBlbHNlIGlm
IChuYW1lID09ICJHTF9FWFRfZHJhd19idWZmZXJzIikgeworICAgICAgICAvLyBFbmFibGUgc3Vw
cG9ydCBpbiBBTkdMRSAoaWYgbm90IGVuYWJsZWQgYWxyZWFkeSkKKyAgICAgICAgQU5HTEVXZWJL
aXRCcmlkZ2UmIGNvbXBpbGVyID0gbV9jb250ZXh0LT5tX2NvbXBpbGVyOworICAgICAgICBTaEJ1
aWx0SW5SZXNvdXJjZXMgQU5HTEVSZXNvdXJjZXMgPSBjb21waWxlci5nZXRSZXNvdXJjZXMoKTsK
KyAgICAgICAgaWYgKCFBTkdMRVJlc291cmNlcy5FWFRfZHJhd19idWZmZXJzKSB7CisgICAgICAg
ICAgICBBTkdMRVJlc291cmNlcy5FWFRfZHJhd19idWZmZXJzID0gMTsKKyAgICAgICAgICAgIG1f
Y29udGV4dC0+Z2V0SW50ZWdlcnYoRXh0ZW5zaW9uczNEOjpNQVhfRFJBV19CVUZGRVJTX0VYVCwg
JkFOR0xFUmVzb3VyY2VzLk1heERyYXdCdWZmZXJzKTsKKyAgICAgICAgICAgIGNvbXBpbGVyLnNl
dFJlc291cmNlcyhBTkdMRVJlc291cmNlcyk7CisgICAgICAgIH0KICAgICB9CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVu
R0xDb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmgJKHJldmlzaW9uIDE0NDIwMykKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVu
R0xDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBHQzNEYm9vbGVhbiBpc1ZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgYmluZFZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3Qp
ID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBkcmF3QnVmZmVyc0VYVChHQzNEc2l6ZWksIGNvbnN0
IEdDM0RlbnVtKikgPSAwOworCiAgICAgdmlydHVhbCBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRl
clNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3QpOwogCiAgICAgLy8gRVhUIFJvYnVzdG5lc3Mg
LSB1c2VzIGdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9u
czNET3BlbkdMRVMuY3BwCShyZXZpc2lvbiAxNDQyMDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNjAsNiArMTYwLDExIEBAIHZvaWQgRXh0ZW5zaW9uczNET3BlbkdMRVM6OmJpbmRW
ZXJ0ZXhBcnIKICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHTF9JTlZBTElE
X09QRVJBVElPTik7CiB9CiAKK3ZvaWQgRXh0ZW5zaW9uczNET3BlbkdMRVM6OmRyYXdCdWZmZXJz
RVhUKEdDM0RzaXplaSBuLCBjb25zdCBHQzNEZW51bSogYnVmcykKK3sKKyAgICAvLyBGSVhNRTog
aW1wbGVtZW50IHRoZSBzdXBwb3J0LgorfQorCiBpbnQgRXh0ZW5zaW9uczNET3BlbkdMRVM6Omdl
dEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKQogewogICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90
IGNhbGwgZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQiwgYnV0IGluc3RlYWQgZ2V0R3JhcGhpY3NS
ZXNldFN0YXR1c0VYVC4KQEAgLTI1MCw2ICsyNTUsOSBAQCBib29sIEV4dGVuc2lvbnMzRE9wZW5H
TEVTOjpzdXBwb3J0c0V4dGVuCiAgICAgICAgICAgICBtX2dsUmVhZG5QaXhlbHNFWFQgPSByZWlu
dGVycHJldF9jYXN0PFBGTkdMUkVBRE5QSVhFTFNFWFRQUk9DPihlZ2xHZXRQcm9jQWRkcmVzcygi
Z2xSZWFkblBpeGVsc0VYVCIpKTsKICAgICAgICAgICAgIG1fZ2xHZXRuVW5pZm9ybWZ2RVhUID0g
cmVpbnRlcnByZXRfY2FzdDxQRk5HTEdFVE5VTklGT1JNRlZFWFRQUk9DPihlZ2xHZXRQcm9jQWRk
cmVzcygiZ2xHZXRuVW5pZm9ybWZ2RVhUIikpOwogICAgICAgICAgICAgbV9nbEdldG5Vbmlmb3Jt
aXZFWFQgPSByZWludGVycHJldF9jYXN0PFBGTkdMR0VUTlVOSUZPUk1JVkVYVFBST0M+KGVnbEdl
dFByb2NBZGRyZXNzKCJnbEdldG5Vbmlmb3JtaXZFWFQiKSk7CisgICAgICAgIH0gZWxzZSBpZiAo
bmFtZSA9PSAiR0xfRVhUX2RyYXdfYnVmZmVycyIpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBp
bXBsZW1lbnQgdGhlIHN1cHBvcnQuCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IH0KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9w
ZW5HTEVTLmgJKHJldmlzaW9uIDE0NDIwMykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5oCSh3b3JraW5nIGNvcHkpCkBAIC05
MCw2ICs5MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJyYXlP
RVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCBHQzNEYm9vbGVhbiBpc1ZlcnRleEFy
cmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBiaW5kVmVydGV4QXJy
YXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CisgICAgdmlydHVhbCB2b2lkIGRyYXdCdWZmZXJzRVhU
KEdDM0RzaXplaSwgY29uc3QgR0MzRGVudW0qKTsKIAogICAgIC8vIEVYVCBSb2J1c3RuZXNzIC0g
cmVzZXQKICAgICB2aXJ0dWFsIGludCBnZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190555</attachid>
            <date>2013-02-27 10:48:54 -0800</date>
            <delta_ts>2013-02-28 10:47:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109331-20130227104508.patch</filename>
            <type>text/plain</type>
            <size>62911</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ0MjAzKQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEzLTAyLTI2ICBaaGVu
eWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgRVhUX2RyYXdfYnVmZmVycyBuZWVk
cyBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA5MzMxCisKKyAgICAgICAgQWRkIEVYVF9kcmF3X2J1ZmZlcnMgc3VwcG9ydCBm
b3IgY2hyb21pdW0gcG9ydC4KKworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJHcmFwaGlj
c0NvbnRleHQzRC5oOgorICAgICAgICAoV2ViR3JhcGhpY3NDb250ZXh0M0QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6ZHJhd0J1ZmZlcnNDaHJvbWl1bSk6CisKIDIw
MTMtMDItMjcgIE1hcmsgUGlsZ3JpbSAgPHBpbGdyaW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFtDaHJvbWl1bV0gUmVtb3ZlIHVudXNlZCBXZWJLaXRQbGF0Zm9ybVN1cHBvcnQgY2xhc3MKSW5k
ZXg6IFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkdyYXBo
aWNzQ29udGV4dDNELmgJKHJldmlzaW9uIDE0NDIwMykKKysrIFNvdXJjZS9QbGF0Zm9ybS9jaHJv
bWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaAkod29ya2luZyBjb3B5KQpAQCAtNDcy
LDYgKzQ3Miw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYXN5bmNUZXhJbWFnZTJEQ0hS
T01JVU0oV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RpbnQgbGV2ZWwsIFdHQzNEZW51bSBpbnRlcm5h
bGZvcm1hdCwgV0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBoZWlnaHQsIFdHQzNEaW50IGJv
cmRlciwgV0dDM0RlbnVtIGZvcm1hdCwgV0dDM0RlbnVtIHR5cGUsIGNvbnN0IHZvaWQqIHBpeGVs
cykgeyB9CiAgICAgdmlydHVhbCB2b2lkIGFzeW5jVGV4U3ViSW1hZ2UyRENIUk9NSVVNKFdHQzNE
ZW51bSB0YXJnZXQsIFdHQzNEaW50IGxldmVsLCBXR0MzRGludCB4b2Zmc2V0LCBXR0MzRGludCB5
b2Zmc2V0LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCwgV0dDM0RlbnVtIGZv
cm1hdCwgV0dDM0RlbnVtIHR5cGUsIGNvbnN0IHZvaWQqIHBpeGVscykgeyB9CiAKKyAgICAvLyBH
TF9FWFRfZHJhd19idWZmZXJzIC8gR0xfQVJCX2RyYXdfYnVmZmVycworICAgIHZpcnR1YWwgdm9p
ZCBkcmF3QnVmZmVyc0Nocm9taXVtKFdHQzNEc2l6ZWkgbiwgY29uc3QgV0dDM0RlbnVtKiBidWZz
KSB7IH0KKwogICAgIC8vIEZJWE1FOiBNYWtlIGltcGxlbWVudGF0aW9ucyBvZiB0aGlzIGNsYXNz
IG92ZXJyaWRlIHRoaXMgbWV0aG9kIGluc3RlYWQgYW5kIHRoZW4gcmVtb3ZlIG9uQ3JlYXRlR3JH
TEludGVyZmFjZSgpLgogICAgIHZpcnR1YWwgR3JHTEludGVyZmFjZSogY3JlYXRlR3JHTEludGVy
ZmFjZSgpIHsgcmV0dXJuIG9uQ3JlYXRlR3JHTEludGVyZmFjZSgpOyB9CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE0NDIwMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDkzIEBACisyMDEzLTAyLTI2ICBaaGVueWFvIE1vICA8em1vQGdv
b2dsZS5jb20+CisKKyAgICAgICAgRVhUX2RyYXdfYnVmZmVycyBuZWVkcyBpbXBsZW1lbnRhdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MzMx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBhZGRzIHN1cHBvcnQgZm9yIEVYVF9kcmF3X2J1ZmZlcnMgZm9yIFdlYkdMLgorICAgICAg
ICBtYWMgT3BlbkdMIHBvcnQgaXMgcGFzc2luZyBraHJvbm9zIFdlYkdMIGNvbmZvcm1hbmNlIHRl
c3Qgd2l0aCB0aGlzIHBhdGNoLiBPcGVuR0wgRVMgcG9ydCBpbXBsZW1lbnRhdGlvbiBpc24ndCBh
ZGRlZCBpbiB0aGlzIHBhdGNoLgorICAgICAgICBBbHNvLCBpdCBoYXMgdGhlIFdlYktpdCBzaWRl
IHN1cHBvcnQgZm9yIGNocm9taXVtIHBvcnQsIGJ1dCBwZW5kaW5nIGNvbW1hbmQgYnVmZmVyIGlt
cGxlbWVudGF0aW9uLgorCisgICAgICAgIEJlc2lkZXMgdGhlIGJhc2ljIGV4dGVuc2lvbiBpbXBs
ZW1lbnRhdGlvbiwgd2UgYWxzbyBhZGRlZCBkcmF3QnVmZmVycygpIHdyYXBwZXIgdG8gd29yayBh
cm91bmQgYSBtYWMgZHJpdmVyIGJ1ZzogaS5lLiwgZG8gbm90IGVuYWJsZSBhIGJ1ZmZlciBpZiB0
aGVyZSBpcyBubyBhdHRhY2htZW50IGFkZGVkLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5wcmk6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQu
cHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICog
YmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OnRvSW50MzIpOgorICAgICAgICAoV2ViQ29yZTo6dG9VSW50MzIpOgorICAgICAgICAo
V2ViQ29yZTo6dG9GbG9hdCk6CisgICAgICAgIChXZWJDb3JlOjp0b0ludDY0KToKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6dG9WOE9iamVjdCk6CisgICAgICAgICogaHRtbC9jYW52YXMvRVhU
RHJhd0J1ZmZlcnMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6RVhURHJhd0J1ZmZlcnM6OkVYVERyYXdCdWZmZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
OkVYVERyYXdCdWZmZXJzOjp+RVhURHJhd0J1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6RVhU
RHJhd0J1ZmZlcnM6OmdldE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RVhURHJhd0J1ZmZlcnM6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFWFREcmF3QnVmZmVyczo6c3VwcG9ydGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OkVYVERyYXdCdWZmZXJzOjpkcmF3QnVmZmVyc0VYVCk6CisgICAg
ICAgICogaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKEVYVERyYXdCdWZmZXJzKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9F
WFREcmF3QnVmZmVycy5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRXh0
ZW5zaW9uLmg6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTEZyYW1lYnVmZmVyOjpzZXRBdHRhY2htZW50Rm9yQm91bmRG
cmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTEZyYW1lYnVmZmVyOjpyZW1vdmVB
dHRhY2htZW50RnJvbUJvdW5kRnJhbWVidWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xG
cmFtZWJ1ZmZlcjo6ZHJhd0J1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTEZyYW1lYnVmZmVyOjpkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5KToKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmg6CisgICAgICAgIChXZWJHTEZyYW1l
YnVmZmVyKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OmluaXRpYWxpemVOZXdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6ZnJhbWVidWZmZXJSZW5kZXJidWZmZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVGcmFtZWJ1ZmZlckZ1
bmNQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0TWF4RHJhd0J1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0OjpnZXRNYXhDb2xvckF0dGFjaG1lbnRzKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0V4
dGVuc2lvbnMzRENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRENo
cm9taXVtOjpkcmF3QnVmZmVyc0VYVCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaDoKKyAgICAgICAgKEV4dGVuc2lvbnMzRCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldENsZWFyQml0c0J5QXR0YWNobWVu
dFR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMz
RENocm9taXVtLmg6CisgICAgICAgIChFeHRlbnNpb25zM0RDaHJvbWl1bSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0w6OnN1cHBvcnRzRXh0ZW5zaW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTDo6ZHJhd0J1ZmZlcnNFWFQpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lv
bnMzRE9wZW5HTC5oOgorICAgICAgICAoRXh0ZW5zaW9uczNET3BlbkdMKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTENvbW1vbjo6ZW5zdXJlRW5hYmxlZCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENv
bW1vbi5oOgorICAgICAgICAoRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNET3BlbkdMRVM6OmRyYXdCdWZmZXJzRVhUKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNET3BlbkdMRVM6OnN1
cHBvcnRzRXh0ZW5zaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0
ZW5zaW9uczNET3BlbkdMRVMuaDoKKyAgICAgICAgKEV4dGVuc2lvbnMzRE9wZW5HTEVTKToKKwog
MjAxMy0wMi0yNyAgQWFyb24gQ29sd2VsbCAgPGFjb2x3ZWxsQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBGaXggU291cmNlQnVmZmVyTGlzdCBzbyBTb3VyY2VCdWZmZXIuYXBwZW5kKCkgY2FsbHMg
YXJlIGFsd2F5cyByZWplY3RlZCBhZnRlciB0aGUgTWVkaWFTb3VyY2UgaXMgY2xvc2VkLgpJbmRl
eDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE0NDIwMykKKysrIFNvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01MTMsNiArNTEzLDcgQEAgc2V0KFdl
YkNvcmVfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5p
ZGwKICAgICBodG1sL2NhbnZhcy9EYXRhVmlldy5pZGwKICAgICBodG1sL2NhbnZhcy9ET01QYXRo
LmlkbAorICAgIGh0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbAogICAgIGh0bWwvY2FudmFz
L0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwKICAgICBodG1sL2NhbnZhcy9GbG9hdDMy
QXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbApAQCAtMTUwNiw2ICsx
NTA3LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAKICAgICBo
dG1sL2NhbnZhcy9EYXRhVmlldy5jcHAKKyAgICBodG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5j
cHAKICAgICBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwCiAgICAg
aHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAKICAgICBodG1sL2NhbnZhcy9P
RVNUZXh0dXJlRmxvYXQuY3BwCkBAIC0yNjQ3LDYgKzI2NDksNyBAQCBpZiAoRU5BQkxFX1dFQkdM
KQogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5jcHAKICAgICAgICAg
aHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKICAgICAgICAgaHRtbC9j
YW52YXMvV2ViR0xFeHRlbnNpb24uY3BwCisgICAgICAgIGh0bWwvY2FudmFzL0VYVERyYXdCdWZm
ZXJzLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMu
Y3BwCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwCiAgICAg
ICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5jcHAKQEAgLTI2NTQsNiArMjY1Nyw3IEBA
IGlmIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVp
bnQuY3BwCiAgICAgKQogICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSURMX0ZJTEVTCisgICAgICAg
IGh0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbAogICAgICAgICBodG1sL2NhbnZhcy9FWFRU
ZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1N0YW5k
YXJkRGVyaXZhdGl2ZXMuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5p
ZGwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMTQ0MjAzKQor
KysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAt
MzkwLDYgKzM5MCw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9j
YW52YXMvRGF0YVZpZXcuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0RPTVBhdGgu
aWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaWRs
IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5pZGwgXAogICAgICQo
V2ViQ29yZSkvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbCBcCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMucHJpCShyZXZpc2lvbiAxNDQyMDMpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTMwOSw2ICszMDksNyBAQCBJRExfQklO
RElOR1MgKz0gXAogICAgICQkUFdEL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQu
aWRsIFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRs
IFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9ET01QYXRoLmlkbCBcCisgICAgJCRQV0QvaHRtbC9j
YW52YXMvRVhURHJhd0J1ZmZlcnMuaWRsIFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9FWFRUZXh0
dXJlRmlsdGVyQW5pc290cm9waWMuaWRsIFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9PRVNTdGFu
ZGFyZERlcml2YXRpdmVzLmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZs
b2F0LmlkbCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE0
NDIwMykKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29w
eSkKQEAgLTI0OCw2ICsyNDgsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNFcnJvckNhbGxiYWNrLmggXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNFcnJvckV2ZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Vycm9y
RXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0VYVERyYXdCdWZmZXJzLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0VYVERyYXdCdWZmZXJzLmggXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmggXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFdmVudC5jcHAgXApAQCAtMTUzMyw2ICsxNTM1LDcgQEAg
ZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0RhdGFWaWV3Lmlk
bCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9ET01QYXRoLmlkbCBcCisJJChXZWJDb3JlKS9o
dG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMv
RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZh
cy9GbG9hdDMyQXJyYXkuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0Zsb2F0NjRBcnJh
eS5pZGwgXApAQCAtMzI3Myw2ICszMjc2LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0RhdGFWaWV3LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RPTVBh
dGguaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhURHJhd0J1ZmZlcnMuY3BwIFwK
KwlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCBc
CiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAg
XApJbmRleDogU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCShyZXZpc2lvbiAxNDQyMDMpCisrKyBTb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCSh3b3JraW5nIGNvcHkpCkBAIC00MDM3LDYgKzQwMzcsNyBAQCBlbmFibGU/KFdF
QkdMKSB7CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmggXAogICAgICAgICBodG1s
L2NhbnZhcy9XZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oIFwKICAgICAgICAgaHRtbC9jYW52
YXMvV2ViR0xTaGFyZWRPYmplY3QuaCBcCisgICAgICAgIGh0bWwvY2FudmFzL0VYVERyYXdCdWZm
ZXJzLmggXAogICAgICAgICBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMu
aCBcCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCBcCiAgICAg
ICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5oIFwKQEAgLTQwNzEsNiArNDA3Miw3IEBA
IGVuYWJsZT8oV0VCR0wpIHsKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuY3BwIFwK
ICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwIFwKICAg
ICAgICAgaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwIFwKKyAgICAgICAgaHRtbC9j
YW52YXMvRVhURHJhd0J1ZmZlcnMuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvRVhUVGV4dHVy
ZUZpbHRlckFuaXNvdHJvcGljLmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1N0YW5kYXJk
RGVyaXZhdGl2ZXMuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmNw
cCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAxNDQyMDMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTM2OSw2ICszNjksNyBAQAogICAg
ICAgICAgICAgJ2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwnLAogICAg
ICAgICAgICAgJ2h0bWwvY2FudmFzL0RhdGFWaWV3LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9j
YW52YXMvRE9NUGF0aC5pZGwnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0VYVERyYXdCdWZm
ZXJzLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNv
dHJvcGljLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbCcs
CiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbCcsCkBAIC0zMzI3LDYg
KzMzMjgsOCBAQAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0RhdGFWaWV3LmNwcCcsCiAgICAg
ICAgICAgICAnaHRtbC9jYW52YXMvRGF0YVZpZXcuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52
YXMvRE9NUGF0aC5oJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5j
cHAnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmgnLAogICAgICAg
ICAgICAgJ2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAnLAogICAg
ICAgICAgICAgJ2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oJywKICAg
ICAgICAgICAgICdodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCcsCkBAIC02
MzgxLDYgKzYzODQsOCBAQAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNFcnJvckNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFcnJvckV2ZW50LmNwcCcsCiAgICAgICAgICAg
ICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Vycm9yRXZlbnQuaCcs
CisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0VY
VERyYXdCdWZmZXJzLmNwcCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0VYVERyYXdCdWZmZXJzLmgnLAogICAgICAgICAgICAgJzwoUFJPRFVD
VF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9w
aWMuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmgnLAogICAgICAgICAgICAgJzwoUFJP
RFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNFdmVudC5jcHAnLApJbmRleDogU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMTQ0MjAzKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xOTIwLDYgKzE5MjAsOCBAQAogCQk2RUJGMEU1
NTEyQTg5Mjk4MDBEQjE3MDkgLyogV2ViR0xFeHRlbnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFQkYwRTUzMTJBODkyOTgwMERCMTcwOSAvKiBX
ZWJHTEV4dGVuc2lvbi5oICovOyB9OwogCQk2RUJGMEU3NjEyQTk4Njg4MDBEQjE3MDkgLyogSlNP
RVNUZXh0dXJlRmxvYXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkVCRjBFNzQxMkE5ODY4ODAwREIxNzA5IC8qIEpTT0VTVGV4dHVyZUZsb2F0LmNw
cCAqLzsgfTsKIAkJNkVCRjBFNzcxMkE5ODY4ODAwREIxNzA5IC8qIEpTT0VTVGV4dHVyZUZsb2F0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUJGMEU3
NTEyQTk4Njg4MDBEQjE3MDkgLyogSlNPRVNUZXh0dXJlRmxvYXQuaCAqLzsgfTsKKwkJNkVCRjBF
NzYxMkE5ODY4ODAwREIxNzBBIC8qIEpTRVhURHJhd0J1ZmZlcnMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVCRjBFNzQxMkE5ODY4ODAwREIxNzBB
IC8qIEpTRVhURHJhd0J1ZmZlcnMuY3BwICovOyB9OworCQk2RUJGMEU3NzEyQTk4Njg4MDBEQjE3
MEEgLyogSlNFWFREcmF3QnVmZmVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNkVCRjBFNzUxMkE5ODY4ODAwREIxNzBBIC8qIEpTRVhURHJhd0J1ZmZl
cnMuaCAqLzsgfTsKIAkJNkVEODc4QzQxNDc0OTNGNDAwNEMzNTk3IC8qIFJlbmRlclRhYmxlQ2Fw
dGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RUQ4NzhDMjE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmNwcCAqLzsgfTsK
IAkJNkVEODc4QzUxNDc0OTNGNDAwNEMzNTk3IC8qIFJlbmRlclRhYmxlQ2FwdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVEODc4QzMxNDc0OTNG
NDAwNEMzNTk3IC8qIFJlbmRlclRhYmxlQ2FwdGlvbi5oICovOyB9OwogCQk2RUU4QTc3MjEwRjgw
M0YzMDA1QTRBMjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFRThBNzcwMTBGODAzRjMwMDVBNEEy
NCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwICovOyB9OwpAQCAtMzgzOCw2ICszODQw
LDkgQEAKIAkJOUZGRTNFQTUxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RkZFM0VBMzExQjVB
NDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmNwcCAqLzsgfTsKIAkJOUZGRTNFQTYxMUI1QTQz
OTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUZGRTNFQTQxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5m
by5oICovOyB9OwogCQlBMDBCNzIxQTExREU2NDI4MDA4QUI5RkYgLyogQ2hlY2tlZEludC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTAwQjcyMTkxMURF
NjQyNzAwOEFCOUZGIC8qIENoZWNrZWRJbnQuaCAqLzsgfTsKKwkJQTAyNDU3NTExNkNFQUEyNzAw
MEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEEwMjQ1NzRFMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVm
ZmVycy5jcHAgKi87IH07CisJCUEwMjQ1NzUyMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVm
ZmVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTAy
NDU3NEYxNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmggKi87IH07CisJCUEwMjQ1
NzUzMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5pZGwgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEwMjQ1NzUwMTZDRUFBMjcwMDBFNTY3
MSAvKiBFWFREcmF3QnVmZmVycy5pZGwgKi87IH07CiAJCUEwN0QzMzU1MTUyQjYzMEUwMDFCNjM5
MyAvKiBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEwN0QzMzUzMTUyQjYzMEUwMDFCNjM5MyAvKiBK
U1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcCAqLzsgfTsKIAkJQTA3RDMzNTYxNTJCNjMw
RTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEwN0QzMzU0MTUyQjYzMEUwMDFCNjM5
MyAvKiBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggKi87IH07CiAJCUEwN0QzMzU4MTUy
QjYzMkQwMDFCNjM5MyAvKiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTA3RDMzNTcxNTJCNjMyRDAwMUI2
MzkzIC8qIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggKi87IH07CkBAIC05Mzg2LDYgKzkz
OTEsOCBAQAogCQk2RUJGMEU1MzEyQTg5Mjk4MDBEQjE3MDkgLyogV2ViR0xFeHRlbnNpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViR0xFeHRlbnNpb24uaDsgcGF0aCA9
IGNhbnZhcy9XZWJHTEV4dGVuc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RUJGMEU3NDEyQTk4Njg4MDBEQjE3MDkgLyogSlNPRVNUZXh0dXJlRmxvYXQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNPRVNUZXh0dXJlRmxvYXQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RUJGMEU3NTEyQTk4Njg4MDBEQjE3MDkgLyogSlNP
RVNUZXh0dXJlRmxvYXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNPRVNU
ZXh0dXJlRmxvYXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkVCRjBFNzQxMkE5
ODY4ODAwREIxNzBBIC8qIEpTRVhURHJhd0J1ZmZlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNFWFREcmF3QnVmZmVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTZFQkYwRTc1MTJBOTg2ODgwMERCMTcwQSAvKiBKU0VYVERyYXdCdWZmZXJz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRVhURHJhd0J1ZmZlcnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkVEODc4QzIxNDc0OTNGNDAwNEMzNTk3IC8q
IFJlbmRlclRhYmxlQ2FwdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW5kZXJUYWJsZUNhcHRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk2RUQ4NzhDMzE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclRhYmxlQ2FwdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2RUU4QTc3MDEwRjgwM0YzMDA1QTRBMjQgLyogSlNXZWJH
TENvbnRleHRBdHRyaWJ1dGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMTMzNyw2ICsxMTM0NCw5IEBACiAJCTlGRkUzRUEzMTFCNUE0MzkwMDM3ODc0RSAv
KiBKU01lbW9yeUluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNNZW1vcnlJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUZGRTNFQTQx
MUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU01lbW9yeUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTAwQjcyMTkxMURFNjQyNzAwOEFCOUZGIC8qIENoZWNrZWRJbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gQ2hlY2tlZEludC5oOyBwYXRoID0gY2FudmFzL0NoZWNrZWRJbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTAyNDU3NEUxNkNFQUEyNzAwMEU1Njcx
IC8qIEVYVERyYXdCdWZmZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IEVYVERyYXdCdWZmZXJzLmNwcDsgcGF0aCA9IGNhbnZhcy9FWFREcmF3QnVmZmVycy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEwMjQ1NzRGMTZDRUFBMjcwMDBFNTY3MSAv
KiBFWFREcmF3QnVmZmVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBFWFRE
cmF3QnVmZmVycy5oOyBwYXRoID0gY2FudmFzL0VYVERyYXdCdWZmZXJzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUEwMjQ1NzUwMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVm
ZmVycy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gRVhURHJhd0J1ZmZlcnMuaWRsOyBwYXRo
ID0gY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTA3RDMzNTMxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3Jt
YXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTFNoYWRl
clByZWNpc2lvbkZvcm1hdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEwN0Qz
MzU0MTUyQjYzMEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3Jt
YXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTA3RDMzNTcxNTJCNjMyRDAwMUI2
MzkzIC8qIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0Lmg7IHBhdGggPSBjYW52YXMv
V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE1NzA3LDYgKzE1NzE3LDkgQEAKIAkJNDk0ODRGQUUxMDJDRjAxRTAwMTg3REQzIC8qIGNh
bnZhcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQTAy
NDU3NEUxNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmNwcCAqLywKKwkJCQlBMDI0
NTc0RjE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuaCAqLywKKwkJCQlBMDI0NTc1
MDE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuaWRsICovLAogCQkJCTQ5RUVDREND
MTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlci5pZGwgKi8sCiAJCQkJNDlFRUNEQzkxMDUw
M0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVyVmlldy5pZGwgKi8sCiAJCQkJNkU0RTkxQTcxMEY3
RkIzMTAwQTI3NzlDIC8qIENhbnZhc0NvbnRleHRBdHRyaWJ1dGVzLmNwcCAqLywKQEAgLTE4OTc3
LDYgKzE4OTkwLDggQEAKIAkJCQk3Njk0NTYzQjEyMTREOTdDMDAwN0NCQUUgLyogSlNET01Ub2tl
bkxpc3QuaCAqLywKIAkJCQkyRTM3RTAwMzEyREJDNUE0MDBBNkIyMzMgLyogSlNET01VUkwuY3Bw
ICovLAogCQkJCTJFMzdFMDA0MTJEQkM1QTQwMEE2QjIzMyAvKiBKU0RPTVVSTC5oICovLAorCQkJ
CTZFQkYwRTc0MTJBOTg2ODgwMERCMTcwQSAvKiBKU0VYVERyYXdCdWZmZXJzLmNwcCAqLywKKwkJ
CQk2RUJGMEU3NTEyQTk4Njg4MDBEQjE3MEEgLyogSlNFWFREcmF3QnVmZmVycy5oICovLAogCQkJ
CTc3Mjg2OTgxMTRGRDlBREEwMEY0ODREQyAvKiBKU0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3Bp
Yy5jcHAgKi8sCiAJCQkJNzcyODY5ODIxNEZEOUFEQTAwRjQ4NERDIC8qIEpTRVhUVGV4dHVyZUZp
bHRlckFuaXNvdHJvcGljLmggKi8sCiAJCQkJNDlFRUNFRjQxMDUwNzBDNDAwMDk5RkFCIC8qIEpT
RmxvYXQzMkFycmF5LmNwcCAqLywKQEAgLTI0OTI4LDYgKzI0OTQzLDcgQEAKIAkJCQlFMEZFRjM3
MkIzN0M1M0VBQzFDMUZCRUUgLyogSlNFdmVudFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUZDN0RDMjZDRkUyNTYzMjAwQjg1QUU0IC8qIEpTRXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTMzMTRBQ0VDMTA4OTIwODYwMDBGMEU1NiAvKiBKU0V4Y2VwdGlvbkJhc2UuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTZFQkYwRTc3MTJBOTg2ODgwMERCMTcwQSAvKiBKU0VYVERyYXdCdWZm
ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NzI4Njk4NDE0RkQ5QURBMDBGNDg0REMgLyogSlNF
WFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDBGMDE1
MEUwQTE4OTUwMEZEMDRFMyAvKiBKU0ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg5M0M0N0I4
MTIzOEEwOTkwMDJCM0Q4NiAvKiBKU0ZpbGVDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NjYxOSw2ICsyNjYzNSw3IEBACiAJCQkJRkQ1MzczNTMxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Q
b2xlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUI4Q0Q0NjE2RDA0NTkxMDAwRThDQzAgLyogU2Vs
ZWN0b3JDaGVja2VyRmFzdFBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5MTQwMjU3MTY4RTAy
RUMwMDJENkM2QSAvKiBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaCBpbiBIZWFkZXJzICov
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMDI0NTc1MjE2Q0VBQTI3MDAwRTU2
NzEgLyogRVhURHJhd0J1ZmZlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjgyNjMsNiArMjgyODAs
NyBAQAogCQkJCUM2QTcwMzMyNUM5RDBCNkNEQ0JDNEQ3NyAvKiBKU0V2ZW50VGFyZ2V0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDNjA5MDIwMEU5MUI4RUMwMDBDNjhCNSAvKiBKU0V2ZW50VGFy
Z2V0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzMTRBQ0VCMTA4OTIwODYwMDBGMEU1
NiAvKiBKU0V4Y2VwdGlvbkJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNkVCRjBFNzYxMkE5
ODY4ODAwREIxNzBBIC8qIEpTRVhURHJhd0J1ZmZlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NzcyODY5ODMxNEZEOUFEQTAwRjQ4NERDIC8qIEpTRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGlj
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMDBGMDE0MEUwQTE4OTUwMEZEMDRFMyAvKiBKU0Zp
bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODkzQzQ3QjcxMjM4QTA5OTAwMkIzRDg2IC8qIEpT
RmlsZUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk4MTMsNiArMjk4MzEsNyBAQAog
CQkJCUZENTM3MzUyMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk0MUI4Q0Q0NTE2RDA0NTkxMDAwRThDQzAgLyogU2VsZWN0b3JDaGVja2VyRmFzdFBh
dGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDkxNDAyNTYxNjhFMDJFODAwMkQ2QzZBIC8qIFRp
bWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAgaW4gU291cmNlcyAqLywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQTAyNDU3NTExNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdC
dWZmZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAko
cmV2aXNpb24gMTQ0MjAzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMCArMjksMTIg
QEAKIAogI2luY2x1ZGUgIkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCiAKKyNpbmNsdWRlICJF
WFREcmF3QnVmZmVycy5oIgogI2luY2x1ZGUgIkVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5o
IgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJKU0VYVERyYXdC
dWZmZXJzLmgiCiAjaW5jbHVkZSAiSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCIKICNp
bmNsdWRlICJKU0Zsb2F0MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTSFRNTENhbnZhc0VsZW1lbnQu
aCIKQEAgLTE5NCw2ICsxOTYsOCBAQCBzdGF0aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhl
YywgSlNECiAgICAgc3dpdGNoIChleHRlbnNpb24tPmdldE5hbWUoKSkgewogICAgIGNhc2UgV2Vi
R0xFeHRlbnNpb246OldlYkdMTG9zZUNvbnRleHROYW1lOgogICAgICAgICByZXR1cm4gdG9KUyhl
eGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMTG9zZUNvbnRleHQqPihleHRlbnNp
b24pKTsKKyAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFREcmF3QnVmZmVyc05hbWU6CisgICAg
ICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhURHJhd0J1
ZmZlcnMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFRUZXh0dXJl
RmlsdGVyQW5pc290cm9waWNOYW1lOgogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxP
YmplY3QsIHN0YXRpY19jYXN0PEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyo+KGV4dGVuc2lv
bikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1N0YW5kYXJkRGVyaXZhdGl2ZXNOYW1l
OgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgJKHJldmlzaW9uIDE0
NDIwMykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNDMsNiArMjQzLDM4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB2OEFycmF5KFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4sIHY4
OjpJc29sYXRlKik7CiAKKyAgICAvLyBDb252ZXJ0IGEgdmFsdWUgdG8gYSAzMi1iaXQgaW50ZWdl
ci4gVGhlIGNvbnZlcnNpb24gZmFpbHMgaWYgdGhlCisgICAgLy8gdmFsdWUgY2Fubm90IGJlIGNv
bnZlcnRlZCB0byBhbiBpbnRlZ2VyIG9yIGNvbnZlcnRzIHRvIG5hbiBvciB0byBhbiBpbmZpbml0
eS4KKyAgICBpbnQgdG9JbnQzMih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4sIGJvb2wmIG9rKTsKKwor
ICAgIC8vIENvbnZlcnQgYSB2YWx1ZSB0byBhIDMyLWJpdCBpbnRlZ2VyIGFzc3VtaW5nIHRoZSBj
b252ZXJzaW9uIGNhbm5vdCBmYWlsLgorICAgIGlubGluZSBpbnQgdG9JbnQzMih2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gdmFsdWUpCisgICAgeworICAgICAgICBib29sIG9rOworICAgICAgICByZXR1
cm4gdG9JbnQzMih2YWx1ZSwgb2spOworICAgIH0KKworICAgIC8vIENvbnZlcnQgYSB2YWx1ZSB0
byBhIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyLiBUaGUgY29udmVyc2lvbiBmYWlscyBpZiB0aGUK
KyAgICAvLyB2YWx1ZSBjYW5ub3QgYmUgY29udmVydGVkIHRvIGFuIHVuc2lnbmVkIGludGVnZXIg
b3IgY29udmVydHMgdG8gbmFuIG9yIHRvIGFuIGluZmluaXR5LgorICAgIHVpbnQzMl90IHRvVUlu
dDMyKHY4OjpIYW5kbGU8djg6OlZhbHVlPiwgYm9vbCYgb2spOworCisgICAgLy8gQ29udmVydCBh
IHZhbHVlIHRvIGEgMzItYml0IHVuc2lnbmVkIGludGVnZXIgYXNzdW1pbmcgdGhlIGNvbnZlcnNp
b24gY2Fubm90IGZhaWwuCisgICAgaW5saW5lIHVpbnQzMl90IHRvVUludDMyKHY4OjpIYW5kbGU8
djg6OlZhbHVlPiB2YWx1ZSkKKyAgICB7CisgICAgICAgIGJvb2wgb2s7CisgICAgICAgIHJldHVy
biB0b1VJbnQzMih2YWx1ZSwgb2spOworICAgIH0KKworICAgIGlubGluZSBmbG9hdCB0b0Zsb2F0
KHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGZsb2F0Pih2YWx1ZS0+TnVtYmVyVmFsdWUoKSk7CisgICAgfQorCisgICAgaW5saW5l
IGxvbmcgbG9uZyB0b0ludDY0KHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4odmFsdWUtPkludGVnZXJWYWx1ZSgp
KTsKKyAgICB9CisKICAgICB0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3QgTmF0aXZlVmFsdWVUcmFp
dHM7CiAKICAgICB0ZW1wbGF0ZTw+CkBAIC0yNTQsNiArMjg2LDE0IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICB9OwogCiAgICAgdGVtcGxhdGU8PgorICAgIHN0cnVjdCBOYXRpdmVWYWx1ZVRy
YWl0czx1bnNpZ25lZD4geworICAgICAgICBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIG5hdGl2ZVZh
bHVlKGNvbnN0IHY4OjpIYW5kbGU8djg6OlZhbHVlPiYgdmFsdWUpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIHJldHVybiB0b1VJbnQzMih2YWx1ZSk7CisgICAgICAgIH0KKyAgICB9OworCisgICAg
dGVtcGxhdGU8PgogICAgIHN0cnVjdCBOYXRpdmVWYWx1ZVRyYWl0czxmbG9hdD4gewogICAgICAg
ICBzdGF0aWMgaW5saW5lIGZsb2F0IG5hdGl2ZVZhbHVlKGNvbnN0IHY4OjpIYW5kbGU8djg6OlZh
bHVlPiYgdmFsdWUpCiAgICAgICAgIHsKQEAgLTM0OCwzOCArMzg4LDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAgICAgUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiB0b05vZGVGaWx0ZXIodjg6Okhh
bmRsZTx2ODo6VmFsdWU+KTsKIAotICAgIC8vIENvbnZlcnQgYSB2YWx1ZSB0byBhIDMyLWJpdCBp
bnRlZ2VyLiAgVGhlIGNvbnZlcnNpb24gZmFpbHMgaWYgdGhlCi0gICAgLy8gdmFsdWUgY2Fubm90
IGJlIGNvbnZlcnRlZCB0byBhbiBpbnRlZ2VyIG9yIGNvbnZlcnRzIHRvIG5hbiBvciB0byBhbiBp
bmZpbml0eS4KLSAgICBpbnQgdG9JbnQzMih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIGJv
b2wmIG9rKTsKLQotICAgIC8vIENvbnZlcnQgYSB2YWx1ZSB0byBhIDMyLWJpdCBpbnRlZ2VyIGFz
c3VtaW5nIHRoZSBjb252ZXJzaW9uIGNhbm5vdCBmYWlsLgotICAgIGlubGluZSBpbnQgdG9JbnQz
Mih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCi0gICAgewotICAgICAgICBib29sIG9rOwot
ICAgICAgICByZXR1cm4gdG9JbnQzMih2YWx1ZSwgb2spOwotICAgIH0KLQotICAgIC8vIENvbnZl
cnQgYSB2YWx1ZSB0byBhIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyLiAgVGhlIGNvbnZlcnNpb24g
ZmFpbHMgaWYgdGhlCi0gICAgLy8gdmFsdWUgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBhbiB1bnNp
Z25lZCBpbnRlZ2VyIG9yIGNvbnZlcnRzIHRvIG5hbiBvciB0byBhbiBpbmZpbml0eS4KLSAgICB1
aW50MzJfdCB0b1VJbnQzMih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIGJvb2wmIG9rKTsK
LQotICAgIC8vIENvbnZlcnQgYSB2YWx1ZSB0byBhIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyIGFz
c3VtaW5nIHRoZSBjb252ZXJzaW9uIGNhbm5vdCBmYWlsLgotICAgIGlubGluZSB1aW50MzJfdCB0
b1VJbnQzMih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCi0gICAgewotICAgICAgICBib29s
IG9rOwotICAgICAgICByZXR1cm4gdG9VSW50MzIodmFsdWUsIG9rKTsKLSAgICB9Ci0KLSAgICBp
bmxpbmUgZmxvYXQgdG9GbG9hdCh2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUtPk51bWJlclZhbHVlKCkpOwot
ICAgIH0KLQotICAgIGlubGluZSBsb25nIGxvbmcgdG9JbnQ2NCh2ODo6TG9jYWw8djg6OlZhbHVl
PiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KHZh
bHVlLT5JbnRlZ2VyVmFsdWUoKSk7Ci0gICAgfQotCiAgICAgaW5saW5lIGJvb2wgaXNVbmRlZmlu
ZWRPck51bGwodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0
dXJuIHZhbHVlLT5Jc051bGwoKSB8fCB2YWx1ZS0+SXNVbmRlZmluZWQoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3Rv
bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkocmV2aXNpb24gMTQ0MjAzKQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3Vz
dG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiVjhBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRlICJW
OEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOEVYVERyYXdCdWZmZXJzLmgiCiAjaW5jbHVkZSAiVjhF
WFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCIKICNpbmNsdWRlICJWOEZsb2F0MzJBcnJheS5o
IgogI2luY2x1ZGUgIlY4SFRNTENhbnZhc0VsZW1lbnQuaCIKQEAgLTE3Niw2ICsxNzcsMTAgQEAg
c3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4T2JqZWN0KAogICAgICAgICBleHRlbnNp
b25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PFdlYkdMTG9zZUNvbnRleHQqPihleHRlbnNpb24p
LCBjb250ZXh0T2JqZWN0LCBpc29sYXRlKTsKICAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJ3ZWJH
TExvc2VDb250ZXh0TmFtZSI7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViR0xFeHRlbnNp
b246OkVYVERyYXdCdWZmZXJzTmFtZToKKyAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChz
dGF0aWNfY2FzdDxFWFREcmF3QnVmZmVycyo+KGV4dGVuc2lvbiksIGNvbnRleHRPYmplY3QsIGlz
b2xhdGUpOworICAgICAgICByZWZlcmVuY2VOYW1lID0gImV4dERyYXdCdWZmZXJzTmFtZSI7Cisg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVFRleHR1cmVGaWx0ZXJB
bmlzb3Ryb3BpY05hbWU6CiAgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nh
c3Q8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKj4oZXh0ZW5zaW9uKSwgY29udGV4dE9iamVj
dCwgaXNvbGF0ZSk7CiAgICAgICAgIHJlZmVyZW5jZU5hbWUgPSAiZXh0VGV4dHVyZUZpbHRlckFu
aXNvdHJvcGljTmFtZSI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3
QnVmZmVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhU
RHJhd0J1ZmZlcnMuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvRVhURHJhd0J1ZmZlcnMuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDk4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAq
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQkdMKQorCisjaW5jbHVkZSAi
RVhURHJhd0J1ZmZlcnMuaCIKKworI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK0VYVERyYXdCdWZmZXJzOjpFWFREcmF3QnVmZmVycyhXZWJHTFJlbmRl
cmluZ0NvbnRleHQqIGNvbnRleHQpCisgICAgOiBXZWJHTEV4dGVuc2lvbihjb250ZXh0KQorewor
fQorCitFWFREcmF3QnVmZmVyczo6fkVYVERyYXdCdWZmZXJzKCkKK3sKK30KKworV2ViR0xFeHRl
bnNpb246OkV4dGVuc2lvbk5hbWUgRVhURHJhd0J1ZmZlcnM6OmdldE5hbWUoKSBjb25zdAorewor
ICAgIHJldHVybiBXZWJHTEV4dGVuc2lvbjo6RVhURHJhd0J1ZmZlcnNOYW1lOworfQorCitQYXNz
T3duUHRyPEVYVERyYXdCdWZmZXJzPiBFWFREcmF3QnVmZmVyczo6Y3JlYXRlKFdlYkdMUmVuZGVy
aW5nQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBFWFREcmF3QnVmZmVycyogeCA9IG5ldyBFWFRE
cmF3QnVmZmVycyhjb250ZXh0KTsKKyAgICByZXR1cm4gYWRvcHRQdHIoeCk7Cit9CisKKy8vIHN0
YXRpYworYm9vbCBFWFREcmF3QnVmZmVyczo6c3VwcG9ydGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4
dCogY29udGV4dCkKK3sKKyAgICBFeHRlbnNpb25zM0QqIGV4dGVuc2lvbnMgPSBjb250ZXh0LT5n
cmFwaGljc0NvbnRleHQzRCgpLT5nZXRFeHRlbnNpb25zKCk7CisgICAgcmV0dXJuIGV4dGVuc2lv
bnMtPnN1cHBvcnRzKCJHTF9FWFRfZHJhd19idWZmZXJzIik7Cit9CisKK3ZvaWQgRVhURHJhd0J1
ZmZlcnM6OmRyYXdCdWZmZXJzRVhUKGNvbnN0IFZlY3RvcjxHQzNEZW51bT4mIGJ1ZmZlcnMpCit7
CisgICAgaWYgKG1fY29udGV4dC0+aXNDb250ZXh0TG9zdCgpKQorICAgICAgICByZXR1cm47Cisg
ICAgR0MzRHNpemVpIG4gPSBidWZmZXJzLnNpemUoKTsKKyAgICBjb25zdCBHQzNEZW51bSogYnVm
cyA9IGJ1ZmZlcnMuZGF0YSgpOworICAgIGlmICghbV9jb250ZXh0LT5tX2ZyYW1lYnVmZmVyQmlu
ZGluZykgeworICAgICAgICBpZiAobiAhPSAxKSB7CisgICAgICAgICAgICBtX2NvbnRleHQtPnN5
bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFLCAiZHJhd0J1
ZmZlcnNFWFQiLCAibW9yZSB0aGFuIG9uZSBidWZmZXIiKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgICAgICBpZiAoYnVmc1swXSAhPSBHcmFwaGljc0NvbnRleHQzRDo6QkFD
SyAmJiBidWZzWzBdICE9IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKSB7CisgICAgICAgICAgICBt
X2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09Q
RVJBVElPTiwgImRyYXdCdWZmZXJzRVhUIiwgIkJBQ0sgb3IgTk9ORSIpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8vIEJlY2F1c2UgdGhlIGJhY2tidWZmZXIgaXMg
c2ltdWxhdGVkIHdlIG5lZWQgdG8gY2hhbmdlIEJBQ0sgdG8gQ09MT1JfQVRUQUNITUVOVDAKKyAg
ICAgICAgR0MzRGVudW0gdmFsdWUgPSAoYnVmc1swXSA9PSBHcmFwaGljc0NvbnRleHQzRDo6QkFD
SykgPyBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDAgOiBHcmFwaGljc0NvbnRl
eHQzRDo6Tk9ORTsKKyAgICAgICAgbV9jb250ZXh0LT5ncmFwaGljc0NvbnRleHQzRCgpLT5nZXRF
eHRlbnNpb25zKCktPmRyYXdCdWZmZXJzRVhUKDEsICZ2YWx1ZSk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgaWYgKG4gPiBtX2NvbnRleHQtPmdldE1heERyYXdCdWZmZXJzKCkpIHsKKyAgICAgICAg
ICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfVkFMVUUsICJkcmF3QnVmZmVyc0VYVCIsICJtb3JlIHRoYW4gbWF4IGRyYXcgYnVmZmVycyIp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGZvciAoR0MzRHNpemVp
IGkgPSAwOyBpIDwgbjsgKytpKSB7CisgICAgICAgICAgICBpZiAoYnVmc1tpXSAhPSBHcmFwaGlj
c0NvbnRleHQzRDo6Tk9ORSAmJiBidWZzW2ldICE9IHN0YXRpY19jYXN0PEdDM0RlbnVtPihFeHRl
bnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQwX0VYVCArIGkpKSB7CisgICAgICAgICAgICAgICAg
bV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9P
UEVSQVRJT04sICJkcmF3QnVmZmVyc0VYVCIsICJDT0xPUl9BVFRBQ0hNRU5UaV9FWFQgb3IgTk9O
RSIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgICAgICBtX2NvbnRleHQtPm1fZnJhbWVidWZmZXJCaW5kaW5nLT5kcmF3QnVmZmVycyhidWZm
ZXJzKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShXRUJHTCkKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0VYVERyYXdCdWZmZXJzLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAg
ICsgTEYKCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJz
LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVm
ZmVycy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBFWFRE
cmF3QnVmZmVyc19oCisjZGVmaW5lIEVYVERyYXdCdWZmZXJzX2gKKworI2luY2x1ZGUgIldlYkdM
RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBFWFREcmF3QnVmZmVycyA6IHB1YmxpYyBXZWJHTEV4dGVuc2lvbiB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8RVhURHJhd0J1ZmZlcnM+IGNyZWF0ZShX
ZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKKworICAgIHN0YXRpYyBib29sIHN1cHBvcnRlZChXZWJH
TFJlbmRlcmluZ0NvbnRleHQqKTsKKworICAgIHZpcnR1YWwgfkVYVERyYXdCdWZmZXJzKCk7Cisg
ICAgdmlydHVhbCBFeHRlbnNpb25OYW1lIGdldE5hbWUoKSBjb25zdDsKKworICAgIHZvaWQgZHJh
d0J1ZmZlcnNFWFQoY29uc3QgVmVjdG9yPEdDM0RlbnVtPiYgYnVmZmVycyk7CisKK3ByaXZhdGU6
CisgICAgRVhURHJhd0J1ZmZlcnMoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFWFREcmF3QnVmZmVyc19oCgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5o
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5pZGwJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFREcmF3QnVmZmVycy5pZGwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgR0xlbnVt
OworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgSlNHZW5lcmF0ZUlzUmVhY2hhYmxl
PUltcGxDb250ZXh0LAorICAgIE9taXRDb25zdHJ1Y3RvciwKKyAgICBEb05vdENoZWNrQ29uc3Rh
bnRzCitdIGludGVyZmFjZSBFWFREcmF3QnVmZmVycyB7CisgICAgY29uc3QgR0xlbnVtIENPTE9S
X0FUVEFDSE1FTlQwX0VYVCA9IDB4OENFMDsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNI
TUVOVDFfRVhUID0gMHg4Q0UxOworICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UMl9F
WFQgPSAweDhDRTI7CisgICAgY29uc3QgR0xlbnVtIENPTE9SX0FUVEFDSE1FTlQzX0VYVCA9IDB4
OENFMzsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDRfRVhUID0gMHg4Q0U0Owor
ICAgIGNvbnN0IEdMZW51bSBDT0xPUl9BVFRBQ0hNRU5UNV9FWFQgPSAweDhDRTU7CisgICAgY29u
c3QgR0xlbnVtIENPTE9SX0FUVEFDSE1FTlQ2X0VYVCA9IDB4OENFNjsKKyAgICBjb25zdCBHTGVu
dW0gQ09MT1JfQVRUQUNITUVOVDdfRVhUID0gMHg4Q0U3OworICAgIGNvbnN0IEdMZW51bSBDT0xP
Ul9BVFRBQ0hNRU5UOF9FWFQgPSAweDhDRTg7CisgICAgY29uc3QgR0xlbnVtIENPTE9SX0FUVEFD
SE1FTlQ5X0VYVCA9IDB4OENFOTsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDEw
X0VYVCA9IDB4OENFQTsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDExX0VYVCA9
IDB4OENFQjsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDEyX0VYVCA9IDB4OENF
QzsKKyAgICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDEzX0VYVCA9IDB4OENFRDsKKyAg
ICBjb25zdCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDE0X0VYVCA9IDB4OENFRTsKKyAgICBjb25z
dCBHTGVudW0gQ09MT1JfQVRUQUNITUVOVDE1X0VYVCA9IDB4OENFRjsKKworICAgIGNvbnN0IEdM
ZW51bSBEUkFXX0JVRkZFUjBfRVhUID0gMHg4ODI1OworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JV
RkZFUjFfRVhUID0gMHg4ODI2OworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjJfRVhUID0g
MHg4ODI3OworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjNfRVhUID0gMHg4ODI4OworICAg
IGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjRfRVhUID0gMHg4ODI5OworICAgIGNvbnN0IEdMZW51
bSBEUkFXX0JVRkZFUjVfRVhUID0gMHg4ODJBOworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZF
UjZfRVhUID0gMHg4ODJCOworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjdfRVhUID0gMHg4
ODJDOworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjhfRVhUID0gMHg4ODJEOworICAgIGNv
bnN0IEdMZW51bSBEUkFXX0JVRkZFUjlfRVhUID0gMHg4ODJFOworICAgIGNvbnN0IEdMZW51bSBE
UkFXX0JVRkZFUjEwX0VYVCA9IDB4ODgyRjsKKyAgICBjb25zdCBHTGVudW0gRFJBV19CVUZGRVIx
MV9FWFQgPSAweDg4MzA7CisgICAgY29uc3QgR0xlbnVtIERSQVdfQlVGRkVSMTJfRVhUID0gMHg4
ODMxOworICAgIGNvbnN0IEdMZW51bSBEUkFXX0JVRkZFUjEzX0VYVCA9IDB4ODgzMjsKKyAgICBj
b25zdCBHTGVudW0gRFJBV19CVUZGRVIxNF9FWFQgPSAweDg4MzM7CisgICAgY29uc3QgR0xlbnVt
IERSQVdfQlVGRkVSMTVfRVhUID0gMHg4ODM0OworCisgICAgY29uc3QgR0xlbnVtIE1BWF9DT0xP
Ul9BVFRBQ0hNRU5UU19FWFQgPSAweDhDREY7CisgICAgY29uc3QgR0xlbnVtIE1BWF9EUkFXX0JV
RkZFUlNfRVhUID0gMHg4ODI0OworCisgICAgdm9pZCBkcmF3QnVmZmVyc0VYVChpbiBzZXF1ZW5j
ZTxHTGVudW0+IGJ1ZmZlcnMpOworfTsKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0VYVERyYXdCdWZmZXJzLmlkbApfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46
ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TEV4dGVuc2lvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMRXh0ZW5zaW9uLmgJKHJldmlzaW9uIDE0NDIwMykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAg
cHVibGljOgogICAgIC8vIEV4dGVuc2lvbiBuYW1lcyBhcmUgbmVlZGVkIHRvIHByb3Blcmx5IHdy
YXAgaW5zdGFuY2VzIGluIEphdmFTY3JpcHQgb2JqZWN0cy4KICAgICBlbnVtIEV4dGVuc2lvbk5h
bWUgewogICAgICAgICBXZWJHTExvc2VDb250ZXh0TmFtZSwKKyAgICAgICAgRVhURHJhd0J1ZmZl
cnNOYW1lLAogICAgICAgICBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWNOYW1lLAogICAgICAg
ICBPRVNUZXh0dXJlRmxvYXROYW1lLAogICAgICAgICBPRVNTdGFuZGFyZERlcml2YXRpdmVzTmFt
ZSwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZm
ZXIuY3BwCShyZXZpc2lvbiAxNDQyMDMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTEZyYW1lYnVmZmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksOCBAQAogCiAj
aW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgogCisjaW5jbHVkZSAiRVhURHJhd0J1ZmZlcnMu
aCIKKyNpbmNsdWRlICJFeHRlbnNpb25zM0QuaCIKICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91
cC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgogCkBAIC0yOTIsNiArMjk0
LDcgQEAgdm9pZCBXZWJHTEZyYW1lYnVmZmVyOjpzZXRBdHRhY2htZW50Rm9yQgogICAgICAgICBy
ZXR1cm47CiAgICAgaWYgKHRleHR1cmUgJiYgdGV4dHVyZS0+b2JqZWN0KCkpIHsKICAgICAgICAg
bV9hdHRhY2htZW50cy5hZGQoYXR0YWNobWVudCwgV2ViR0xUZXh0dXJlQXR0YWNobWVudDo6Y3Jl
YXRlKHRleHR1cmUsIHRleFRhcmdldCwgbGV2ZWwpKTsKKyAgICAgICAgZHJhd0J1ZmZlcnNJZk5l
Y2Vzc2FyeShmYWxzZSk7CiAgICAgICAgIHRleHR1cmUtPm9uQXR0YWNoZWQoKTsKICAgICB9CiB9
CkBAIC0zMDQsNiArMzA3LDcgQEAgdm9pZCBXZWJHTEZyYW1lYnVmZmVyOjpzZXRBdHRhY2htZW50
Rm9yQgogICAgICAgICByZXR1cm47CiAgICAgaWYgKHJlbmRlcmJ1ZmZlciAmJiByZW5kZXJidWZm
ZXItPm9iamVjdCgpKSB7CiAgICAgICAgIG1fYXR0YWNobWVudHMuYWRkKGF0dGFjaG1lbnQsIFdl
YkdMUmVuZGVyYnVmZmVyQXR0YWNobWVudDo6Y3JlYXRlKHJlbmRlcmJ1ZmZlcikpOworICAgICAg
ICBkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5KGZhbHNlKTsKICAgICAgICAgcmVuZGVyYnVmZmVyLT5v
bkF0dGFjaGVkKCk7CiAgICAgfQogfQpAQCAtMzQwLDYgKzM0NCw3IEBAIHZvaWQgV2ViR0xGcmFt
ZWJ1ZmZlcjo6cmVtb3ZlQXR0YWNobWVudEYKICAgICBpZiAoYXR0YWNobWVudE9iamVjdCkgewog
ICAgICAgICBhdHRhY2htZW50T2JqZWN0LT5vbkRldGFjaGVkKGNvbnRleHQoKS0+Z3JhcGhpY3ND
b250ZXh0M0QoKSk7CiAgICAgICAgIG1fYXR0YWNobWVudHMucmVtb3ZlKGF0dGFjaG1lbnQpOwor
ICAgICAgICBkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5KGZhbHNlKTsKICAgICAgICAgc3dpdGNoIChh
dHRhY2htZW50KSB7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX1NURU5D
SUxfQVRUQUNITUVOVDoKICAgICAgICAgICAgIGF0dGFjaChHcmFwaGljc0NvbnRleHQzRDo6REVQ
VEhfQVRUQUNITUVOVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0FUVEFDSE1FTlQpOwpAQCAt
NTg1LDYgKzU5MCwzOSBAQCBib29sIFdlYkdMRnJhbWVidWZmZXI6OmlzQm91bmQoKSBjb25zdAog
ICAgIHJldHVybiAoY29udGV4dCgpLT5tX2ZyYW1lYnVmZmVyQmluZGluZy5nZXQoKSA9PSB0aGlz
KTsKIH0KIAordm9pZCBXZWJHTEZyYW1lYnVmZmVyOjpkcmF3QnVmZmVycyhjb25zdCBWZWN0b3I8
R0MzRGVudW0+JiBidWZzKQoreworICAgIG1fZHJhd0J1ZmZlcnMgPSBidWZzOworICAgIG1fZmls
dGVyZWREcmF3QnVmZmVycy5yZXNpemUobV9kcmF3QnVmZmVycy5zaXplKCkpOworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbV9maWx0ZXJlZERyYXdCdWZmZXJzLnNpemUoKTsgKytpKQorICAg
ICAgICBtX2ZpbHRlcmVkRHJhd0J1ZmZlcnNbaV0gPSBHcmFwaGljc0NvbnRleHQzRDo6Tk9ORTsK
KyAgICBkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5KHRydWUpOworfQorCit2b2lkIFdlYkdMRnJhbWVi
dWZmZXI6OmRyYXdCdWZmZXJzSWZOZWNlc3NhcnkoYm9vbCBmb3JjZSkKK3sKKyAgICBpZiAoIWNv
bnRleHQoKS0+bV9leHREcmF3QnVmZmVycykKKyAgICAgICAgcmV0dXJuOworICAgIGJvb2wgcmVz
ZXQgPSBmb3JjZTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fZHJhd0J1ZmZlcnMuc2l6
ZSgpOyBpKyspIHsKKyAgICAgICAgaWYgKG1fZHJhd0J1ZmZlcnNbaV0gIT0gR3JhcGhpY3NDb250
ZXh0M0Q6Ok5PTkUgJiYgZ2V0QXR0YWNobWVudChtX2RyYXdCdWZmZXJzW2ldKSkgeworICAgICAg
ICAgICAgaWYgKG1fZmlsdGVyZWREcmF3QnVmZmVyc1tpXSAhPSBtX2RyYXdCdWZmZXJzW2ldKSB7
CisgICAgICAgICAgICAgICAgbV9maWx0ZXJlZERyYXdCdWZmZXJzW2ldID0gbV9kcmF3QnVmZmVy
c1tpXTsKKyAgICAgICAgICAgICAgICByZXNldCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAobV9maWx0ZXJlZERyYXdCdWZmZXJzW2ldICE9
IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKSB7CisgICAgICAgICAgICAgICAgbV9maWx0ZXJlZERy
YXdCdWZmZXJzW2ldID0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkU7CisgICAgICAgICAgICAgICAg
cmVzZXQgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIGlmIChy
ZXNldCkgeworICAgICAgICBjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCktPmdldEV4dGVu
c2lvbnMoKS0+ZHJhd0J1ZmZlcnNFWFQoCisgICAgICAgICAgICBtX2ZpbHRlcmVkRHJhd0J1ZmZl
cnMuc2l6ZSgpLCBtX2ZpbHRlcmVkRHJhd0J1ZmZlcnMuZGF0YSgpKTsKKyAgICB9Cit9CisKIH0K
IAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMRnJhbWVidWZmZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmgJKHJldmlzaW9uIDE0NDIwMykKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
OTUsNiArOTUsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc1N0ZW5jaWxCdWZmZXIoKSBjb25z
dDsKIAorICAgIC8vIFdyYXBwZXIgZm9yIGRyYXdCdWZmZXJzRVhUL2RyYXdCdWZmZXJzQVJCIHRv
IHdvcmsgYXJvdW5kIGEgZHJpdmVyIGJ1Zy4KKyAgICB2b2lkIGRyYXdCdWZmZXJzKGNvbnN0IFZl
Y3RvcjxHQzNEZW51bT4mIGJ1ZnMpOworCiBwcm90ZWN0ZWQ6CiAgICAgV2ViR0xGcmFtZWJ1ZmZl
cihXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKIApAQCAtMTE0LDExICsxMTcsMTcgQEAgcHJpdmF0
ZToKICAgICAvLyBhdHRhY2ggJ2F0dGFjaG1lbnQnIGF0ICdhdHRhY2htZW50UG9pbnQnLgogICAg
IHZvaWQgYXR0YWNoKEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIGF0dGFjaG1lbnRQb2lu
dCk7CiAKKyAgICAvLyBDaGVjayBpZiBhIG5ldyBkcmF3QnVmZmVycyBjYWxsIHNob3VsZCBiZSBp
c3N1ZWQuIFRoaXMgaXMgY2FsbGVkIHdoZW4gd2UgYWRkIG9yIHJlbW92ZSBhbiBhdHRhY2htZW50
LgorICAgIHZvaWQgZHJhd0J1ZmZlcnNJZk5lY2Vzc2FyeShib29sIGZvcmNlKTsKKwogICAgIHR5
cGVkZWYgV1RGOjpIYXNoTWFwPEdDM0RlbnVtLCBSZWZQdHI8V2ViR0xBdHRhY2htZW50PiA+IEF0
dGFjaG1lbnRNYXA7CiAKICAgICBBdHRhY2htZW50TWFwIG1fYXR0YWNobWVudHM7CiAKICAgICBi
b29sIG1faGFzRXZlckJlZW5Cb3VuZDsKKworICAgIFZlY3RvcjxHQzNEZW51bT4gbV9kcmF3QnVm
ZmVyczsKKyAgICBWZWN0b3I8R0MzRGVudW0+IG1fZmlsdGVyZWREcmF3QnVmZmVyczsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkocmV2aXNpb24gMTQ0MjAzKQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgi
CiAjaW5jbHVkZSAiQ2hlY2tlZEludC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1
ZGUgIkVYVERyYXdCdWZmZXJzLmgiCiAjaW5jbHVkZSAiRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJv
cGljLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkV4dGVuc2lvbnMz
RC5oIgpAQCAtNTM4LDYgKzUzOSwxMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6aW5p
dGlhbGl6ZU5lCiAgICAgbV9tYXhSZW5kZXJidWZmZXJTaXplID0gMDsKICAgICBtX2NvbnRleHQt
PmdldEludGVnZXJ2KEdyYXBoaWNzQ29udGV4dDNEOjpNQVhfUkVOREVSQlVGRkVSX1NJWkUsICZt
X21heFJlbmRlcmJ1ZmZlclNpemUpOwogCisgICAgLy8gVGhlc2UgdHdvIHZhbHVlcyBmcm9tIEVY
VF9kcmF3X2J1ZmZlcnMgYXJlIGxhemlseSBxdWVyaWVkLgorICAgIG1fbWF4RHJhd0J1ZmZlcnMg
PSAwOworICAgIG1fbWF4Q29sb3JBdHRhY2htZW50cyA9IDA7CisKICAgICBtX2RlZmF1bHRWZXJ0
ZXhBcnJheU9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmNyZWF0ZSh0aGlzLCBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpWYW9UeXBlRGVmYXVsdCk7CiAgICAgYWRkQ29udGV4
dE9iamVjdChtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKSk7CiAgICAgbV9ib3VuZFZl
cnRleEFycmF5T2JqZWN0ID0gbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CkBAIC0yMTUzLDEy
ICsyMTU4LDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmZyYW1lYnVmZmVyUgogICAg
ICAgICBtX2NvbnRleHQtPmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKHRhcmdldCwgR3JhcGhpY3ND
b250ZXh0M0Q6OkRFUFRIX0FUVEFDSE1FTlQsIHJlbmRlcmJ1ZmZlcnRhcmdldCwgYnVmZmVyT2Jq
ZWN0KTsKICAgICAgICAgbV9jb250ZXh0LT5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcih0YXJnZXQs
IEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0FUVEFDSE1FTlQsIHJlbmRlcmJ1ZmZlcnRhcmdl
dCwgYnVmZmVyT2JqZWN0KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6REVQVEhfQVRUQUNITUVOVDoKLSAgICAgICAgbV9jb250ZXh0LT5mcmFtZWJ1ZmZlclJl
bmRlcmJ1ZmZlcih0YXJnZXQsIGF0dGFjaG1lbnQsIHJlbmRlcmJ1ZmZlcnRhcmdldCwgYnVmZmVy
T2JqZWN0KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RF
TkNJTF9BVFRBQ0hNRU5UOgotICAgICAgICBtX2NvbnRleHQtPmZyYW1lYnVmZmVyUmVuZGVyYnVm
ZmVyKHRhcmdldCwgYXR0YWNobWVudCwgcmVuZGVyYnVmZmVydGFyZ2V0LCBidWZmZXJPYmplY3Qp
OwotICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBtX2NvbnRleHQtPmZyYW1l
YnVmZmVyUmVuZGVyYnVmZmVyKHRhcmdldCwgYXR0YWNobWVudCwgcmVuZGVyYnVmZmVydGFyZ2V0
LCBidWZmZXJPYmplY3QpOwogICAgIH0KQEAgLTI0MjYsNiArMjQyNSwxMyBAQCBXZWJHTEV4dGVu
c2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJu
IG1fd2ViZ2xEZXB0aFRleHR1cmUuZ2V0KCk7CiAgICAgfQorICAgIGlmIChlcXVhbElnbm9yaW5n
Q2FzZShuYW1lLCAiRVhUX2RyYXdfYnVmZmVycyIpICYmIEVYVERyYXdCdWZmZXJzOjpzdXBwb3J0
ZWQodGhpcykpIHsKKyAgICAgICAgaWYgKCFtX2V4dERyYXdCdWZmZXJzKSB7CisgICAgICAgICAg
ICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+ZW5zdXJlRW5hYmxlZCgiR0xfRVhUX2RyYXdf
YnVmZmVycyIpOworICAgICAgICAgICAgbV9leHREcmF3QnVmZmVycyA9IEVYVERyYXdCdWZmZXJz
OjpjcmVhdGUodGhpcyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fZXh0RHJhd0J1ZmZl
cnMuZ2V0KCk7CisgICAgfQogICAgIGlmIChhbGxvd1ByaXZpbGVnZWRFeHRlbnNpb25zKCkpIHsK
ICAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJXRUJHTF9kZWJ1Z19yZW5kZXJl
cl9pbmZvIikpIHsKICAgICAgICAgICAgIGlmICghbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQpA
QCAtMjcwOSw2ICsyNzE1LDUwIEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmdldFAKICAgICAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihFeHRlbnNp
b25zM0Q6Ok1BWF9URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCk7CiAgICAgICAgIHN5bnRoZXNp
emVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIi
LCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGlj
IG5vdCBlbmFibGVkIik7CiAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICBjYXNl
IEV4dGVuc2lvbnMzRDo6TUFYX0NPTE9SX0FUVEFDSE1FTlRTX0VYVDogLy8gRVhUX2RyYXdfYnVm
ZmVycyBCRUdJTgorICAgICAgICBpZiAobV9leHREcmF3QnVmZmVycykKKyAgICAgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oZ2V0TWF4Q29sb3JBdHRhY2htZW50cygpKTsKKyAgICAgICAgc3lu
dGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFt
ZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBFWFRfZHJhd19idWZmZXJzIG5vdCBlbmFi
bGVkIik7CisgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICBjYXNlIEV4dGVuc2lv
bnMzRDo6TUFYX0RSQVdfQlVGRkVSU19FWFQ6CisgICAgICAgIGlmIChtX2V4dERyYXdCdWZmZXJz
KQorICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhnZXRNYXhEcmF3QnVmZmVycygpKTsK
KyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5V
TSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBFWFRfZHJhd19idWZm
ZXJzIG5vdCBlbmFibGVkIik7CisgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICBj
YXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIwX0VYVDogLy8gRFJBV19CVUZGRVIwX0VYVCBp
cyBzcGVjaWFsIGFzIHRoZSBiYWNrYnVmZmVyIGlzIHNpbXVsYXRlZC4KKyAgICAgICAgaWYgKG1f
ZXh0RHJhd0J1ZmZlcnMpIHsKKyAgICAgICAgICAgIEdDM0RpbnQgdmFsdWUgPSAwOworICAgICAg
ICAgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihwbmFtZSwgJnZhbHVlKTsKKyAgICAgICAgICAg
IGlmICghbV9mcmFtZWJ1ZmZlckJpbmRpbmcgJiYgdmFsdWUgIT0gR3JhcGhpY3NDb250ZXh0M0Q6
Ok5PTkUpCisgICAgICAgICAgICAgICAgdmFsdWUgPSBHcmFwaGljc0NvbnRleHQzRDo6QkFDSzsK
KyAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgICAgICB9CisgICAg
ICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJn
ZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgRVhUX2RyYXdfYnVmZmVycyBu
b3QgZW5hYmxlZCIpOworICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgY2FzZSBF
eHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSMV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRS
QVdfQlVGRkVSMl9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSM19FWFQ6
CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSNF9FWFQ6CisgICAgY2FzZSBFeHRl
bnNpb25zM0Q6OkRSQVdfQlVGRkVSNV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdf
QlVGRkVSNl9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSN19FWFQ6Cisg
ICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSOF9FWFQ6CisgICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkRSQVdfQlVGRkVSOV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVG
RkVSMTBfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpEUkFXX0JVRkZFUjExX0VYVDoKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIxMl9FWFQ6CisgICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkRSQVdfQlVGRkVSMTNfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpEUkFXX0JV
RkZFUjE0X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIxNV9FWFQ6IC8v
IEVYVF9kcmF3X2J1ZmZlcnMgRU5ECisgICAgICAgIGlmIChtX2V4dERyYXdCdWZmZXJzKSB7Cisg
ICAgICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8R0MzRGVudW0+KEV4dGVuc2lvbnMzRDo6RFJBV19C
VUZGRVIwX0VYVCArIGdldE1heERyYXdCdWZmZXJzKCkpIDw9IHBuYW1lKSB7CisgICAgICAgICAg
ICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwg
ImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciwgZXhjZWVkcyBNQVhfQ09MT1JfQVRU
QUNITUVOVFNfRVhUIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7
CisgICAgICAgIH0KKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBF
WFRfZHJhd19idWZmZXJzIG5vdCBlbmFibGVkIik7CisgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oKTsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVy
IG5hbWUiKTsKICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwpAQCAtMjkxMyw2ICsyOTYz
LDggQEAgVmVjdG9yPFN0cmluZz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZQogICAgICAgICBy
ZXN1bHQuYXBwZW5kKCJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKTsKICAg
ICBpZiAoV2ViR0xEZXB0aFRleHR1cmU6OnN1cHBvcnRlZChncmFwaGljc0NvbnRleHQzRCgpKSkK
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2RlcHRoX3RleHR1cmUiKTsKKyAg
ICBpZiAoRVhURHJhd0J1ZmZlcnM6OnN1cHBvcnRlZCh0aGlzKSkKKyAgICAgICAgcmVzdWx0LmFw
cGVuZCgiRVhUX2RyYXdfYnVmZmVycyIpOwogCiAgICAgaWYgKGFsbG93UHJpdmlsZWdlZEV4dGVu
c2lvbnMoKSkgewogICAgICAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBv
cnRzKCJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkKQEAgLTUzMjYsNiArNTM3
OCwzMSBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVGcmFtCiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9BVFRBQ0hNRU5UOgogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVDoKICAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxX0VYVDogLy8gRVhUX2RyYXdf
YnVmZmVycyBCRUdJTgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMl9F
WFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQzX0VYVDoKKyAgICBj
YXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDRfRVhUOgorICAgIGNhc2UgRXh0ZW5z
aW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UNV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNP
TE9SX0FUVEFDSE1FTlQ2X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNI
TUVOVDdfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UOF9FWFQ6
CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ5X0VYVDoKKyAgICBjYXNl
IEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEwX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lv
bnMzRDo6Q09MT1JfQVRUQUNITUVOVDExX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09M
T1JfQVRUQUNITUVOVDEyX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNI
TUVOVDEzX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDE0X0VY
VDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDE1X0VYVDogLy8gRVhU
X2RyYXdfYnVmZmVycyBFTkQKKyAgICAvLyBDT0xPUl9BVFRBQ0hNRU5UMF9FWFQgaXMgZXF1YWwg
dG8gQ09MT1JfQVRUQUNITUVOVDAKKyAgICAgICAgaWYgKCFtX2V4dERyYXdCdWZmZXJzKSB7Cisg
ICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIGF0dGFjaG1lbnQsIEVYVF9kcmF3X2J1ZmZlcnMg
bm90IGVuYWJsZWQiKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAg
ICAgICBpZiAoc3RhdGljX2Nhc3Q8R0MzRGVudW0+KEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNI
TUVOVDBfRVhUICsgZ2V0TWF4Q29sb3JBdHRhY2htZW50cygpKSA8PSBhdHRhY2htZW50KSB7Cisg
ICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIGF0dGFjaG1lbnQsIGV4Y2VlZHMgTUFYX0RSQVdf
QlVGRkVSU19FWFQiKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAg
ICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIGF0dGFj
aG1lbnQiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNTg0Miw2ICs1OTE5LDIwIEBAIElu
dFNpemUgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpjbGFtcGVkQ2EKICAgICAgICAgICAgICAgICAg
ICBjbGFtcChjYW52YXMoKS0+aGVpZ2h0KCksIDEsIG1fbWF4Vmlld3BvcnREaW1zWzFdKSk7CiB9
CiAKK0dDM0RpbnQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRNYXhEcmF3QnVmZmVycygpCit7
CisgICAgaWYgKCFtX21heERyYXdCdWZmZXJzICYmIEVYVERyYXdCdWZmZXJzOjpzdXBwb3J0ZWQo
dGhpcykpCisgICAgICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYoRXh0ZW5zaW9uczNEOjpNQVhf
RFJBV19CVUZGRVJTX0VYVCwgJm1fbWF4RHJhd0J1ZmZlcnMpOworICAgIHJldHVybiBtX21heERy
YXdCdWZmZXJzOworfQorCitHQzNEaW50IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0TWF4Q29s
b3JBdHRhY2htZW50cygpCit7CisgICAgaWYgKCFtX21heENvbG9yQXR0YWNobWVudHMgJiYgRVhU
RHJhd0J1ZmZlcnM6OnN1cHBvcnRlZCh0aGlzKSkKKyAgICAgICAgbV9jb250ZXh0LT5nZXRJbnRl
Z2VydihFeHRlbnNpb25zM0Q6Ok1BWF9DT0xPUl9BVFRBQ0hNRU5UU19FWFQsICZtX21heENvbG9y
QXR0YWNobWVudHMpOworICAgIHJldHVybiBtX21heENvbG9yQXR0YWNobWVudHM7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5o
CShyZXZpc2lvbiAxNDQyMDMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEVYVERyYXdCdWZmZXJzOwogY2xhc3MgRVhUVGV4dHVy
ZUZpbHRlckFuaXNvdHJvcGljOwogY2xhc3MgSFRNTEltYWdlRWxlbWVudDsKIGNsYXNzIEhUTUxW
aWRlb0VsZW1lbnQ7CkBAIC0zMjMsNiArMzI0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzdG9wKCk7CiAKICAgcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgRVhURHJhd0J1ZmZlcnM7
CiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMRnJhbWVidWZmZXI7CiAgICAgZnJpZW5kIGNsYXNzIFdl
YkdMT2JqZWN0OwogICAgIGZyaWVuZCBjbGFzcyBPRVNWZXJ0ZXhBcnJheU9iamVjdDsKQEAgLTQ3
Niw2ICs0NzgsOSBAQCBwdWJsaWM6CiAgICAgR0MzRGludCBtX21heFRleHR1cmVMZXZlbDsKICAg
ICBHQzNEaW50IG1fbWF4Q3ViZU1hcFRleHR1cmVMZXZlbDsKIAorICAgIEdDM0RpbnQgbV9tYXhE
cmF3QnVmZmVyczsKKyAgICBHQzNEaW50IG1fbWF4Q29sb3JBdHRhY2htZW50czsKKwogICAgIEdD
M0RpbnQgbV9wYWNrQWxpZ25tZW50OwogICAgIEdDM0RpbnQgbV91bnBhY2tBbGlnbm1lbnQ7CiAg
ICAgYm9vbCBtX3VucGFja0ZsaXBZOwpAQCAtNTA5LDYgKzUxNCw3IEBAIHB1YmxpYzoKICAgICBp
bnQgbV9udW1HTEVycm9yc1RvQ29uc29sZUFsbG93ZWQ7CiAKICAgICAvLyBFbmFibGVkIGV4dGVu
c2lvbiBvYmplY3RzLgorICAgIE93blB0cjxFWFREcmF3QnVmZmVycz4gbV9leHREcmF3QnVmZmVy
czsKICAgICBPd25QdHI8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPiBtX2V4dFRleHR1cmVG
aWx0ZXJBbmlzb3Ryb3BpYzsKICAgICBPd25QdHI8T0VTVGV4dHVyZUZsb2F0PiBtX29lc1RleHR1
cmVGbG9hdDsKICAgICBPd25QdHI8T0VTU3RhbmRhcmREZXJpdmF0aXZlcz4gbV9vZXNTdGFuZGFy
ZERlcml2YXRpdmVzOwpAQCAtNzMyLDYgKzczOCwxMSBAQCBwdWJsaWM6CiAgICAgLy8gQ2xhbXAg
dGhlIHdpZHRoIGFuZCBoZWlnaHQgdG8gR0xfTUFYX1ZJRVdQT1JUX0RJTVMuCiAgICAgSW50U2l6
ZSBjbGFtcGVkQ2FudmFzU2l6ZSgpOwogCisgICAgLy8gRmlyc3QgdGltZSBjYWxsZWQsIGlmIEVY
VF9kcmF3X2J1ZmZlcnMgaXMgc3VwcG9ydGVkLCBxdWVyeSB0aGUgdmFsdWU7IG90aGVyd2lzZSBy
ZXR1cm4gMC4KKyAgICAvLyBMYXRlciwgcmV0dXJuIHRoZSBjYWNoZWQgdmFsdWUuCisgICAgR0Mz
RGludCBnZXRNYXhEcmF3QnVmZmVycygpOworICAgIEdDM0RpbnQgZ2V0TWF4Q29sb3JBdHRhY2ht
ZW50cygpOworCiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMU3RhdGVSZXN0b3JlcjsKIH07CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvRXh0ZW5zaW9uczNE
Q2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL3N1cHBvcnQvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwCShyZXZpc2lvbiAxNDQyMDMpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0V4dGVuc2lvbnMzRENo
cm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE1LDQgKzIxNSw5IEBAIHZvaWQgRXh0ZW5z
aW9uczNEQ2hyb21pdW06OnBvcEdyb3VwTWFya2UKICAgICBtX3ByaXZhdGUtPndlYkNvbnRleHQo
KS0+cG9wR3JvdXBNYXJrZXJFWFQoKTsKIH0KIAordm9pZCBFeHRlbnNpb25zM0RDaHJvbWl1bTo6
ZHJhd0J1ZmZlcnNFWFQoR0MzRHNpemVpIG4sIGNvbnN0IEdDM0RlbnVtKiBidWZzKQoreworICAg
IG1fcHJpdmF0ZS0+d2ViQ29udGV4dCgpLT5kcmF3QnVmZmVyc0Nocm9taXVtKG4sIGJ1ZnMpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaAkocmV2aXNpb24gMTQ0MjAzKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uczNELmgJKHdvcmtpbmcgY29w
eSkKQEAgLTcwLDYgKzcwLDcgQEAgcHVibGljOgogICAgIC8vICAgR0xfRVhUX2RlYnVnX21hcmtl
cgogICAgIC8vICAgR0xfQ0hST01JVU1fY29weV90ZXh0dXJlCiAgICAgLy8gICBHTF9DSFJPTUlV
TV9mbGlweQorICAgIC8vICAgR0xfQVJCX2RyYXdfYnVmZmVycyAvIEdMX0VYVF9kcmF3X2J1ZmZl
cnMKIAogICAgIC8vIFRha2VzIGZ1bGwgbmFtZSBvZiBleHRlbnNpb247IGZvciBleGFtcGxlLAog
ICAgIC8vICJHTF9FWFRfdGV4dHVyZV9mb3JtYXRfQkdSQTg4ODgiLgpAQCAtMTUwLDcgKzE1MSw0
MyBAQCBwdWJsaWM6CiAKICAgICAgICAgLy8gR0xfQ0hST01JVU1fY29weV90ZXh0dXJlCiAgICAg
ICAgIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9DSFJPTUlVTSA9IDB4OTI0MSwKLSAgICAgICAg
VU5QQUNLX1VOUFJFTVVMVElQTFlfQUxQSEFfQ0hST01JVU0gPSAweDkyNDIKKyAgICAgICAgVU5Q
QUNLX1VOUFJFTVVMVElQTFlfQUxQSEFfQ0hST01JVU0gPSAweDkyNDIsCisKKyAgICAgICAgLy8g
R0xfQVJCX2RyYXdfYnVmZmVycyAvIEdMX0VYVF9kcmF3X2J1ZmZlcnMKKyAgICAgICAgTUFYX0RS
QVdfQlVGRkVSU19FWFQgPSAweDg4MjQsCisgICAgICAgIERSQVdfQlVGRkVSMF9FWFQgPSAweDg4
MjUsCisgICAgICAgIERSQVdfQlVGRkVSMV9FWFQgPSAweDg4MjYsCisgICAgICAgIERSQVdfQlVG
RkVSMl9FWFQgPSAweDg4MjcsCisgICAgICAgIERSQVdfQlVGRkVSM19FWFQgPSAweDg4MjgsCisg
ICAgICAgIERSQVdfQlVGRkVSNF9FWFQgPSAweDg4MjksCisgICAgICAgIERSQVdfQlVGRkVSNV9F
WFQgPSAweDg4MkEsCisgICAgICAgIERSQVdfQlVGRkVSNl9FWFQgPSAweDg4MkIsCisgICAgICAg
IERSQVdfQlVGRkVSN19FWFQgPSAweDg4MkMsCisgICAgICAgIERSQVdfQlVGRkVSOF9FWFQgPSAw
eDg4MkQsCisgICAgICAgIERSQVdfQlVGRkVSOV9FWFQgPSAweDg4MkUsCisgICAgICAgIERSQVdf
QlVGRkVSMTBfRVhUID0gMHg4ODJGLAorICAgICAgICBEUkFXX0JVRkZFUjExX0VYVCA9IDB4ODgz
MCwKKyAgICAgICAgRFJBV19CVUZGRVIxMl9FWFQgPSAweDg4MzEsCisgICAgICAgIERSQVdfQlVG
RkVSMTNfRVhUID0gMHg4ODMyLAorICAgICAgICBEUkFXX0JVRkZFUjE0X0VYVCA9IDB4ODgzMywK
KyAgICAgICAgRFJBV19CVUZGRVIxNV9FWFQgPSAweDg4MzQsCisgICAgICAgIE1BWF9DT0xPUl9B
VFRBQ0hNRU5UU19FWFQgPSAweDhDREYsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQwX0VYVCA9
IDB4OENFMCwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDFfRVhUID0gMHg4Q0UxLAorICAgICAg
ICBDT0xPUl9BVFRBQ0hNRU5UMl9FWFQgPSAweDhDRTIsCisgICAgICAgIENPTE9SX0FUVEFDSE1F
TlQzX0VYVCA9IDB4OENFMywKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDRfRVhUID0gMHg4Q0U0
LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNV9FWFQgPSAweDhDRTUsCisgICAgICAgIENPTE9S
X0FUVEFDSE1FTlQ2X0VYVCA9IDB4OENFNiwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDdfRVhU
ID0gMHg4Q0U3LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UOF9FWFQgPSAweDhDRTgsCisgICAg
ICAgIENPTE9SX0FUVEFDSE1FTlQ5X0VYVCA9IDB4OENFOSwKKyAgICAgICAgQ09MT1JfQVRUQUNI
TUVOVDEwX0VYVCA9IDB4OENFQSwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDExX0VYVCA9IDB4
OENFQiwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDEyX0VYVCA9IDB4OENFQywKKyAgICAgICAg
Q09MT1JfQVRUQUNITUVOVDEzX0VYVCA9IDB4OENFRCwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVO
VDE0X0VYVCA9IDB4OENFRSwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDE1X0VYVCA9IDB4OENF
RgogICAgIH07CiAKICAgICAvLyBHTF9BUkJfcm9idXN0bmVzcwpAQCAtMTkwLDYgKzIyNyw5IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHVzaEdyb3VwTWFya2VyRVhUKGNvbnN0IFN0cmlu
ZyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcG9wR3JvdXBNYXJrZXJFWFQodm9pZCkgPSAwOwog
CisgICAgLy8gR0xfQVJCX2RyYXdfYnVmZmVycyAvIEdMX0VYVF9kcmF3X2J1ZmZlcnMKKyAgICB2
aXJ0dWFsIHZvaWQgZHJhd0J1ZmZlcnNFWFQoR0MzRHNpemVpIG4sIGNvbnN0IEdDM0RlbnVtKiBi
dWZzKSA9IDA7CisKICAgICB2aXJ0dWFsIGJvb2wgaXNOVklESUEoKSA9IDA7CiAgICAgdmlydHVh
bCBib29sIGlzQU1EKCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0ludGVsKCkgPSAwOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dDNELmNwcAkocmV2aXNpb24gMTQ0MjAzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzg5
LDYgKzEzODksMjEgQEAgdW5zaWduZWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdldENsZWFyQml0cwog
ewogICAgIHN3aXRjaCAoYXR0YWNobWVudCkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkNPTE9SX0FUVEFDSE1FTlQwOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hN
RU5UMV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQyX0VYVDoK
KyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDNfRVhUOgorICAgIGNhc2Ug
RXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UNF9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25z
M0Q6OkNPTE9SX0FUVEFDSE1FTlQ1X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1Jf
QVRUQUNITUVOVDZfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5U
N19FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ4X0VYVDoKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDlfRVhUOgorICAgIGNhc2UgRXh0
ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTBfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNE
OjpDT0xPUl9BVFRBQ0hNRU5UMTFfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9B
VFRBQ0hNRU5UMTJfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5U
MTNfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTRfRVhUOgor
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMTVfRVhUOgogICAgICAgICBy
ZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0JVRkZFUl9CSVQ7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6REVQVEhfQVRUQUNITUVOVDoKICAgICAgICAgcmV0dXJuIEdyYXBoaWNz
Q29udGV4dDNEOjpERVBUSF9CVUZGRVJfQklUOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RD
aHJvbWl1bS5oCShyZXZpc2lvbiAxNDQyMDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oCSh3b3JraW5nIGNvcHkpCkBA
IC02NSw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzVmVydGV4
QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhB
cnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRUcmFuc2xh
dGVkU2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm0zRE9iamVjdCk7CisgICAgdmlydHVhbCB2b2lk
IGRyYXdCdWZmZXJzRVhUKEdDM0RzaXplaSwgY29uc3QgR0MzRGVudW0qKTsKIAogICAgIGVudW0g
ewogICAgICAgICAvLyBHTF9PRVNfRUdMX2ltYWdlX2V4dGVybmFsCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5z
aW9uczNET3BlbkdMLmNwcAkocmV2aXNpb24gMTQ0MjAzKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE3OCw5ICsxNzgsMjUgQEAgYm9vbCBFeHRlbnNpb25zM0RPcGVuR0w6OnN1cHBvcnRz
RXh0ZW5zaQogICAgIGlmIChuYW1lID09ICJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9w
aWMiKQogICAgICAgICByZXR1cm4gbV9hdmFpbGFibGVFeHRlbnNpb25zLmNvbnRhaW5zKCJHTF9F
WFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTsKIAorICAgIGlmIChuYW1lID09ICJHTF9F
WFRfZHJhd19idWZmZXJzIikgeworI2lmIFBMQVRGT1JNKE1BQykKKyAgICAgICAgcmV0dXJuIG1f
YXZhaWxhYmxlRXh0ZW5zaW9ucy5jb250YWlucygiR0xfQVJCX2RyYXdfYnVmZmVycyIpOworI2Vs
c2UKKyAgICAgICAgLy8gRklYTUU6IGltcGxlbWVudCBzdXBwb3J0IGZvciBvdGhlciBwbGF0Zm9y
bXMuCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgIH0KICAgICByZXR1cm4gbV9h
dmFpbGFibGVFeHRlbnNpb25zLmNvbnRhaW5zKG5hbWUpOwogfQogCit2b2lkIEV4dGVuc2lvbnMz
RE9wZW5HTDo6ZHJhd0J1ZmZlcnNFWFQoR0MzRHNpemVpIG4sIGNvbnN0IEdDM0RlbnVtKiBidWZz
KQoreworICAgIC8vICBGSVhNRTogaW1wbGVtZW50IHN1cHBvcnQgZm9yIG90aGVyIHBsYXRmb3Jt
cy4KKyNpZiBQTEFURk9STShNQUMpCisgICAgOjpnbERyYXdCdWZmZXJzQVJCKG4sIGJ1ZnMpOwor
I2VuZGlmCit9CisKIFN0cmluZyBFeHRlbnNpb25zM0RPcGVuR0w6OmdldEV4dGVuc2lvbnMoKQog
ewogICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdl
dFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaAko
cmV2aXNpb24gMTQ0MjAzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0RXZlbnRNYXJrZXJFWFQoY29uc3QgU3Ry
aW5nJik7CiAgICAgdmlydHVhbCB2b2lkIHB1c2hHcm91cE1hcmtlckVYVChjb25zdCBTdHJpbmcm
KTsKICAgICB2aXJ0dWFsIHZvaWQgcG9wR3JvdXBNYXJrZXJFWFQodm9pZCk7CisgICAgdmlydHVh
bCB2b2lkIGRyYXdCdWZmZXJzRVhUKEdDM0RzaXplaSwgY29uc3QgR0MzRGVudW0qKTsKIAogcHJv
dGVjdGVkOgogICAgIC8vIFRoaXMgY2xhc3Mgb25seSBuZWVkcyB0byBiZSBpbnN0YW50aWF0ZWQg
YnkgR3JhcGhpY3NDb250ZXh0M0QgaW1wbGVtZW50YXRpb25zLgpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAJKHJldmlzaW9uIDE0NDIwMykKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNiArMTE4LDE1IEBAIHZvaWQgRXh0ZW5zaW9uczNE
T3BlbkdMQ29tbW9uOjplbnN1cmVFbmEKICAgICAgICAgICAgIEFOR0xFUmVzb3VyY2VzLk9FU19z
dGFuZGFyZF9kZXJpdmF0aXZlcyA9IDE7CiAgICAgICAgICAgICBjb21waWxlci5zZXRSZXNvdXJj
ZXMoQU5HTEVSZXNvdXJjZXMpOwogICAgICAgICB9CisgICAgfSBlbHNlIGlmIChuYW1lID09ICJH
TF9FWFRfZHJhd19idWZmZXJzIikgeworICAgICAgICAvLyBFbmFibGUgc3VwcG9ydCBpbiBBTkdM
RSAoaWYgbm90IGVuYWJsZWQgYWxyZWFkeSkKKyAgICAgICAgQU5HTEVXZWJLaXRCcmlkZ2UmIGNv
bXBpbGVyID0gbV9jb250ZXh0LT5tX2NvbXBpbGVyOworICAgICAgICBTaEJ1aWx0SW5SZXNvdXJj
ZXMgQU5HTEVSZXNvdXJjZXMgPSBjb21waWxlci5nZXRSZXNvdXJjZXMoKTsKKyAgICAgICAgaWYg
KCFBTkdMRVJlc291cmNlcy5FWFRfZHJhd19idWZmZXJzKSB7CisgICAgICAgICAgICBBTkdMRVJl
c291cmNlcy5FWFRfZHJhd19idWZmZXJzID0gMTsKKyAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0
SW50ZWdlcnYoRXh0ZW5zaW9uczNEOjpNQVhfRFJBV19CVUZGRVJTX0VYVCwgJkFOR0xFUmVzb3Vy
Y2VzLk1heERyYXdCdWZmZXJzKTsKKyAgICAgICAgICAgIGNvbXBpbGVyLnNldFJlc291cmNlcyhB
TkdMRVJlc291cmNlcyk7CisgICAgICAgIH0KICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0
ZW5zaW9uczNET3BlbkdMQ29tbW9uLmgJKHJldmlzaW9uIDE0NDIwMykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xDb21tb24uaAko
d29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBHQzNE
Ym9vbGVhbiBpc1ZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgYmluZFZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKIAorICAg
IHZpcnR1YWwgdm9pZCBkcmF3QnVmZmVyc0VYVChHQzNEc2l6ZWksIGNvbnN0IEdDM0RlbnVtKikg
PSAwOworCiAgICAgdmlydHVhbCBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xF
KFBsYXRmb3JtM0RPYmplY3QpOwogCiAgICAgLy8gRVhUIFJvYnVzdG5lc3MgLSB1c2VzIGdldEdy
YXBoaWNzUmVzZXRTdGF0dXNBUkIoKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMu
Y3BwCShyZXZpc2lvbiAxNDQyMDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjAs
NiArMTYwLDExIEBAIHZvaWQgRXh0ZW5zaW9uczNET3BlbkdMRVM6OmJpbmRWZXJ0ZXhBcnIKICAg
ICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHTF9JTlZBTElEX09QRVJBVElPTik7
CiB9CiAKK3ZvaWQgRXh0ZW5zaW9uczNET3BlbkdMRVM6OmRyYXdCdWZmZXJzRVhUKEdDM0RzaXpl
aSBuLCBjb25zdCBHQzNEZW51bSogYnVmcykKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50IHRo
ZSBzdXBwb3J0LgorfQorCiBpbnQgRXh0ZW5zaW9uczNET3BlbkdMRVM6OmdldEdyYXBoaWNzUmVz
ZXRTdGF0dXNBUkIoKQogewogICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90IGNhbGwgZ2V0R3Jh
cGhpY3NSZXNldFN0YXR1c0FSQiwgYnV0IGluc3RlYWQgZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0VY
VC4KQEAgLTI1MCw2ICsyNTUsOSBAQCBib29sIEV4dGVuc2lvbnMzRE9wZW5HTEVTOjpzdXBwb3J0
c0V4dGVuCiAgICAgICAgICAgICBtX2dsUmVhZG5QaXhlbHNFWFQgPSByZWludGVycHJldF9jYXN0
PFBGTkdMUkVBRE5QSVhFTFNFWFRQUk9DPihlZ2xHZXRQcm9jQWRkcmVzcygiZ2xSZWFkblBpeGVs
c0VYVCIpKTsKICAgICAgICAgICAgIG1fZ2xHZXRuVW5pZm9ybWZ2RVhUID0gcmVpbnRlcnByZXRf
Y2FzdDxQRk5HTEdFVE5VTklGT1JNRlZFWFRQUk9DPihlZ2xHZXRQcm9jQWRkcmVzcygiZ2xHZXRu
VW5pZm9ybWZ2RVhUIikpOwogICAgICAgICAgICAgbV9nbEdldG5Vbmlmb3JtaXZFWFQgPSByZWlu
dGVycHJldF9jYXN0PFBGTkdMR0VUTlVOSUZPUk1JVkVYVFBST0M+KGVnbEdldFByb2NBZGRyZXNz
KCJnbEdldG5Vbmlmb3JtaXZFWFQiKSk7CisgICAgICAgIH0gZWxzZSBpZiAobmFtZSA9PSAiR0xf
RVhUX2RyYXdfYnVmZmVycyIpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgdGhl
IHN1cHBvcnQuCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmgJKHJl
dmlzaW9uIDE0NDIwMykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9FeHRlbnNpb25zM0RPcGVuR0xFUy5oCSh3b3JraW5nIGNvcHkpCkBAIC05MCw2ICs5MCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0z
RE9iamVjdCk7CiAgICAgdmlydHVhbCBHQzNEYm9vbGVhbiBpc1ZlcnRleEFycmF5T0VTKFBsYXRm
b3JtM0RPYmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBiaW5kVmVydGV4QXJyYXlPRVMoUGxhdGZv
cm0zRE9iamVjdCk7CisgICAgdmlydHVhbCB2b2lkIGRyYXdCdWZmZXJzRVhUKEdDM0RzaXplaSwg
Y29uc3QgR0MzRGVudW0qKTsKIAogICAgIC8vIEVYVCBSb2J1c3RuZXNzIC0gcmVzZXQKICAgICB2
aXJ0dWFsIGludCBnZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKCk7Cg==
</data>
<flag name="review"
          id="211267"
          type_id="1"
          status="+"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="211365"
          type_id="3"
          status="-"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>