<?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>203863</bug_id>
          
          <creation_ts>2019-11-05 14:08:44 -0800</creation_ts>
          <short_desc>Implement AXIsolatedTreeNode::roleDescription.</short_desc>
          <delta_ts>2019-11-07 05:22:08 -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>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andres Gonzalez">andresg_22</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1587539</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2019-11-05 14:08:44 -0800</bug_when>
    <thetext>Implement AXIsolatedTreeNode::roleDescription.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587552</commentid>
    <comment_count>1</comment_count>
      <attachid>382852</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2019-11-05 14:38:45 -0800</bug_when>
    <thetext>Created attachment 382852
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587694</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-05 23:24:55 -0800</bug_when>
    <thetext>&lt;rdar://problem/56934435&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587695</commentid>
    <comment_count>3</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2019-11-05 23:25:02 -0800</bug_when>
    <thetext>../../Source/WebCore/accessibility/AccessibilityObject.cpp: In member function ‘virtual WTF::String WebCore::AccessibilityObject::ariaLandmarkRoleDescription() const’:
../../Source/WebCore/accessibility/AccessibilityObject.cpp:2622:16: error: ‘AXARIAContentGroupText’ was not declared in this scope</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587696</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-05 23:25:07 -0800</bug_when>
    <thetext>&lt;rdar://problem/56934437&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587697</commentid>
    <comment_count>5</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2019-11-05 23:25:20 -0800</bug_when>
    <thetext>C:\Buildbot\WinCairo-EWS\build\Source\WebCore\accessibility/AccessibilityObject.cpp(2657): error C3861: &apos;AXARIAContentGroupText&apos;: identifier not found
C:\Buildbot\WinCairo-EWS\build\Source\WebCore\accessibility/AccessibilityObject.cpp(2659): error C3861: &apos;AXARIAContentGroupText&apos;: identifier not found
C:\Buildbot\WinCairo-EWS\build\Source\WebCore\accessibility/AccessibilityObject.cpp(2661): error C3861: &apos;AXARIAContentGroupText&apos;: identifier not found</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587698</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-05 23:25:32 -0800</bug_when>
    <thetext>&lt;rdar://problem/56934443&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587701</commentid>
    <comment_count>7</comment_count>
      <attachid>382852</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2019-11-05 23:36:04 -0800</bug_when>
    <thetext>Comment on attachment 382852
Patch

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

&gt; Source/WebCore/ChangeLog:21
&gt; +        platforms are pending.

add new line after this sentence

&gt; Source/WebCore/accessibility/AccessibilityObject.h:836
&gt; +using PlatformRoleMap = HashMap&lt;AccessibilityRole, String, DefaultHash&lt;int&gt;::Hash, WTF::UnsignedWithZeroKeyHashTraits&lt;int&gt;&gt;;

should this be DefaultHash &lt;int&gt; or unsigned?

&gt; Source/WebCore/accessibility/AccessibilityObject.h:838
&gt; +PlatformRoleMap createPlatformRoleMap();

it doesn&apos;t seem like createPlatformRoleMap should be in the .h. It&apos;s meant to be created the first time roleToPlatformString is accessed

&gt; Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm:155
&gt; +    NSString* axRole = rolePlatformString();

NSString *axRole
(pointer on other side)

&gt; Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm:264
&gt; +        __unsafe_unretained NSString *string;

this file isn&apos;t ARC, so I don&apos;t think we need unsafe_unretained. that is the default behavior

&gt; Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm:413
&gt; +        roleMap.add(static_cast&lt;int&gt;(role.value), (__bridge CFStringRef)role.string);

do we need this cast (__bridge CFStringRef)
maybe we just need a NSString * cast do get rid of the const NSString *

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:2040
&gt; +    NSString* string = m_object-&gt;rolePlatformString();

* on wrong side

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:2270
&gt; +    const String roleDescription = m_object-&gt;roleDescription();

the const seems unnecessary here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587762</commentid>
    <comment_count>8</comment_count>
      <attachid>382924</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2019-11-06 06:49:39 -0800</bug_when>
    <thetext>Created attachment 382924
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587767</commentid>
    <comment_count>9</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2019-11-06 07:17:12 -0800</bug_when>
    <thetext>(In reply to chris fleizach from comment #7)
&gt; Comment on attachment 382852 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=382852&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:21
&gt; &gt; +        platforms are pending.
&gt; 
&gt; add new line after this sentence

Done.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityObject.h:836
&gt; &gt; +using PlatformRoleMap = HashMap&lt;AccessibilityRole, String, DefaultHash&lt;int&gt;::Hash, WTF::UnsignedWithZeroKeyHashTraits&lt;int&gt;&gt;;
&gt; 
&gt; should this be DefaultHash &lt;int&gt; or unsigned?

Changed it to unsigned. Other existing RoleMap is using int and thus I thought to leave it as is, but we probably come back and change the other too.
 &gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityObject.h:838
&gt; &gt; +PlatformRoleMap createPlatformRoleMap();
&gt; 
&gt; it doesn&apos;t seem like createPlatformRoleMap should be in the .h. It&apos;s meant
&gt; to be created the first time roleToPlatformString is accessed

The prototype has to be visible to both the core .cpp and the platform overrides, the .mm on Mac. So the options were to duplicate the prototype or to put it in a common header. Eventually, some of these methods should be moved to their own header file. I would leave it here for now unless you feel strongly about moving it somewhere else.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm:155
&gt; &gt; +    NSString* axRole = rolePlatformString();
&gt; 
&gt; NSString *axRole
&gt; (pointer on other side)

Done.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm:264
&gt; &gt; +        __unsafe_unretained NSString *string;
&gt; 
&gt; this file isn&apos;t ARC, so I don&apos;t think we need unsafe_unretained. that is the
&gt; default behavior

Done.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm:413
&gt; &gt; +        roleMap.add(static_cast&lt;int&gt;(role.value), (__bridge CFStringRef)role.string);
&gt; 
&gt; do we need this cast (__bridge CFStringRef)
&gt; maybe we just need a NSString * cast do get rid of the const NSString *

Got rid of it.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:2040
&gt; &gt; +    NSString* string = m_object-&gt;rolePlatformString();
&gt; 
&gt; * on wrong side

Done.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:2270
&gt; &gt; +    const String roleDescription = m_object-&gt;roleDescription();
&gt; 
&gt; the const seems unnecessary here

Got rid of it.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588174</commentid>
    <comment_count>10</comment_count>
      <attachid>382924</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-07 05:22:06 -0800</bug_when>
    <thetext>Comment on attachment 382924
Patch

Clearing flags on attachment: 382924

Committed r252181: &lt;https://trac.webkit.org/changeset/252181&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588175</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-07 05:22:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382852</attachid>
            <date>2019-11-05 14:38:45 -0800</date>
            <delta_ts>2019-11-06 06:49:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203863-20191105173843.patch</filename>
            <type>text/plain</type>
            <size>53251</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxOTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjM4MWRjYWU3ZTIzNmZi
MmJkOGEzYWI4NTFiODRkMjRkZDUzZjI3MC4uYWMxMjg5M2ZiY2Y4ODBkNDJhZmFjNDkwYTgxZDA5
MzgyYWFhZTU0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE5LTExLTA1ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQg
QVhJc29sYXRlZFRyZWVOb2RlOjpyb2xlRGVzY3JpcHRpb24uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM4NjMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgbmVlZGVkLCBubyBuZXcg
ZnVuY3Rpb25hbGl0eS4KKworICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBjYW5u
b3QgY2FsbCBhbnkgb2YgdGhlIEFYLipUZXh0IGZ1bmN0aW9ucyB0bworICAgICAgICByZXRyaWV2
ZSBsb2NhbGl6ZWQgcm9sZSBkZXNjcmlwdGlvbnMsIGJlY2F1c2Ugd2hlbiBydW5uaW5nIG9uIHRo
ZQorICAgICAgICBzZWNvbmRhcnkgdGhyZWFkLCB0aG9zZSBBdG9tU3RyaW5ncyBhcmUgbm90IGFj
Y2Vzc2libGUuIE1vcmVvdmVyLCBzb21lCisgICAgICAgIG9mIHRoZSBzcGVjaWFsIGNhc2VzIHJl
cXVpcmUgYWNjZXNzIHRvIERPTSBvYmplY3RzIHRoYXQgYXJlIG5vdAorICAgICAgICBhdmFpbGFi
bGUgaW4gdGhlIHNlY29uZGFyeSB0aHJlYWQuIFRoZXJlZm9yZSwgYWRkZWQKKyAgICAgICAgQVhD
b3JlT2JqZWN0Ojpyb2xlUGxhdGZvcm1EZXNjcmlwdGlvbiB0aGF0IHJ1bnMgaW4gdGhlIG1haW4g
dGhyZWFkIHRvCisgICAgICAgIGluaXRpYWxpemUgdGhlIGNvcnJlc3BvbmRpbmcgYXR0cmlidXRl
IGluIEFYSXNvbGF0ZWRUcmVlTm9kZS4KKyAgICAgICAgcm9sZVBsYXRmb3JtU3RyaW5nLCBjcmVh
dGVQbGF0Zm9ybVJvbGVNYXAsIHJvbGVUb1BsYXRmb3JtU3RyaW5nLAorICAgICAgICBhcmlhTGFu
ZG1hcmtSb2xlRGVzY3JpcHRpb24sIGFyZSBoZWxwZXIgZnVuY3Rpb25zLiBUaGUgcGxhdGZvcm0K
KyAgICAgICAgZnVuY3Rpb25zIGFsbG93IHRvIGN1c3RvbWl6ZSB0aGUgYmVoYXZpb3Igb2Ygcm9s
ZURlc2NyaXB0aW9uIGluIGVhY2gKKyAgICAgICAgcGxhdGZvcm0uIFRoZSBwbGF0Zm9ybSBvdmVy
cmlkZXMgYXJlIGltcGxlbWVudGVkIGZvciBtYWMuIE90aGVyCisgICAgICAgIHBsYXRmb3JtcyBh
cmUgcGVuZGluZy4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6cm9sZVBsYXRmb3Jt
U3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnJv
bGVQbGF0Zm9ybURlc2NyaXB0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3Q6OmFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbiBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlRGVzY3JpcHRpb24gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6Y3JlYXRlUGxhdGZvcm1Sb2xlTWFwKToK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHk6OnJvbGVUb1BsYXRmb3JtU3RyaW5nKToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZU5vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWVOb2RlOjppbml0aWFsaXplQXR0cmlidXRlRGF0
YSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWVO
b2RlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnJvbGVQbGF0Zm9y
bVN0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpy
b2xlUGxhdGZvcm1EZXNjcmlwdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5OjpjcmVhdGVQbGF0Zm9ybVJvbGVNYXApOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbToKKyAgICAgICAgKC1bV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlIGFjY2Vzc2liaWxpdHlPYmplY3RdKToKKyAg
ICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlIGFyaWFMYW5kbWFya1Jv
bGVEZXNjcmlwdGlvbl0pOiBJbXBsZW1lbnRhdGlvbiBtb3ZlZCB0byBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0LgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyTWFjLm1tOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBy
b2xlXSk6IFNwZWNpYWwgY2FzZXMgbW92ZWQgdG8gcm9sZVBsYXRmb3JtU3RyaW5nLgorICAgICAg
ICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciByb2xlRGVzY3JpcHRpb25dKToKKyAg
ICAgICAgKGNyZWF0ZUFjY2Vzc2liaWxpdHlSb2xlTWFwKTogRGVsZXRlZCwgYmVjYW1lIEFjY2Vz
c2liaWxpdHk6OmNyZWF0ZVBsYXRmb3JtUm9sZU1hcC4KKyAgICAgICAgKHJvbGVWYWx1ZVRvTlNT
dHJpbmcpOiBEZWxldGVkLCBCZWNhbWUgQWNjZXNzaWJpbGl0eTo6cm9sZVRvUGxhdGZvcm1TdHJp
bmcuCisKIDIwMTktMTEtMDQgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIE9yZGVyIG9mIHBvc3RNZXNzYWdlIGFuZCBmZXRjaCBldmVudHMgc2hvdWxkIGJlIHBy
ZXNlcnZlZCB3aGVuIGdvaW5nIGZyb20gY2xpZW50IHRvIHNlcnZpY2Ugd29ya2VyCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApp
bmRleCAxY2E4MWU0MzkzMjRjNmJjYWUwOTUwODFkMWZjNzFjMzU0YzY4Nzc5Li5lNWQwOTEyMDQy
MDY2NDc0M2YzNTc5ZjZmMzZmODI1MTVjODI4YmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTI2MDEsNiArMjYw
MSw3MSBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6Omhhc0hpZ2hsaWdodGluZygpIGNvbnN0
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWYgIVBMQVRGT1JNKE1BQykKK1N0cmluZyBBY2Nl
c3NpYmlsaXR5T2JqZWN0Ojpyb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdAoreworICAgIC8vIEZJ
WE1FOiBpbXBsZW1lbnQgaW4gb3RoZXIgcGxhdGZvcm1zLgorICAgIHJldHVybiBTdHJpbmcoKTsK
K30KKworU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJvbGVQbGF0Zm9ybURlc2NyaXB0aW9u
KCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50IGluIG90aGVyIHBsYXRmb3Jtcy4K
KyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisjZW5kaWYKKworU3RyaW5nIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OmFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgc3dpdGNo
IChyb2xlVmFsdWUoKSkgeworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQmFu
bmVyOgorICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dCgiQVJJQUxhbmRtYXJr
QmFubmVyIik7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtDb21wbGVtZW50
YXJ5OgorICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dCgiQVJJQUxhbmRtYXJr
Q29tcGxlbWVudGFyeSIpOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29u
dGVudEluZm86CisgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KCJBUklBTGFu
ZG1hcmtDb250ZW50SW5mbyIpOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJr
TWFpbjoKKyAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoIkFSSUFMYW5kbWFy
a01haW4iKTsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya05hdmlnYXRpb246
CisgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KCJBUklBTGFuZG1hcmtOYXZp
Z2F0aW9uIik7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtEb2NSZWdpb246
CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtSZWdpb246CisgICAgICAgIHJl
dHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KCJBUklBTGFuZG1hcmtSZWdpb24iKTsKKyAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya1NlYXJjaDoKKyAgICAgICAgcmV0dXJuIEFY
QVJJQUNvbnRlbnRHcm91cFRleHQoIkFSSUFMYW5kbWFya1NlYXJjaCIpOworICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uQWxlcnQ6CisgICAgICAgIHJldHVybiBBWEFSSUFD
b250ZW50R3JvdXBUZXh0KCJBUklBQXBwbGljYXRpb25BbGVydCIpOworICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uQWxlcnREaWFsb2c6CisgICAgICAgIHJldHVybiBBWEFS
SUFDb250ZW50R3JvdXBUZXh0KCJBUklBQXBwbGljYXRpb25BbGVydERpYWxvZyIpOworICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uRGlhbG9nOgorICAgICAgICByZXR1cm4g
QVhBUklBQ29udGVudEdyb3VwVGV4dCgiQVJJQUFwcGxpY2F0aW9uRGlhbG9nIik7CisgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25Mb2c6CisgICAgICAgIHJldHVybiBBWEFS
SUFDb250ZW50R3JvdXBUZXh0KCJBUklBQXBwbGljYXRpb25Mb2ciKTsKKyAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbk1hcnF1ZWU6CisgICAgICAgIHJldHVybiBBWEFSSUFD
b250ZW50R3JvdXBUZXh0KCJBUklBQXBwbGljYXRpb25NYXJxdWVlIik7CisgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25TdGF0dXM6CisgICAgICAgIHJldHVybiBBWEFSSUFD
b250ZW50R3JvdXBUZXh0KCJBUklBQXBwbGljYXRpb25TdGF0dXMiKTsKKyAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblRpbWVyOgorICAgICAgICByZXR1cm4gQVhBUklBQ29u
dGVudEdyb3VwVGV4dCgiQVJJQUFwcGxpY2F0aW9uVGltZXIiKTsKKyAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpEb2N1bWVudDoKKyAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRl
eHQoIkFSSUFEb2N1bWVudCIpOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50
QXJ0aWNsZToKKyAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoIkFSSUFEb2N1
bWVudEFydGljbGUiKTsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudE1hdGg6
CisgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KCJBUklBRG9jdW1lbnRNYXRo
Iik7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnROb3RlOgorICAgICAgICBy
ZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dCgiQVJJQURvY3VtZW50Tm90ZSIpOworICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OlVzZXJJbnRlcmZhY2VUb29sdGlwOgorICAgICAgICByZXR1
cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dCgiQVJJQVVzZXJJbnRlcmZhY2VUb29sdGlwIik7Cisg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFiUGFuZWw6CisgICAgICAgIHJldHVybiBBWEFS
SUFDb250ZW50R3JvdXBUZXh0KCJBUklBVGFiUGFuZWwiKTsKKyAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpXZWJBcHBsaWNhdGlvbjoKKyAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91
cFRleHQoIkFSSUFXZWJBcHBsaWNhdGlvbiIpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKKyAgICB9Cit9CisKIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xl
RGVzY3JpcHRpb24oKSBjb25zdAogewogICAgIC8vIGFyaWEtcm9sZWRlc2NyaXB0aW9uIHRha2Vz
IHByZWNlZGVuY2Ugb3ZlciBhbnkgb3RoZXIgcnVsZS4KQEAgLTI2MDgsNiArMjY3MywxMCBAQCBT
dHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6cm9sZURlc2NyaXB0aW9uKCkgY29uc3QKICAgICBp
ZiAoIXJvbGVEZXNjcmlwdGlvbi5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiByb2xlRGVzY3Jp
cHRpb247CiAKKyAgICByb2xlRGVzY3JpcHRpb24gPSByb2xlUGxhdGZvcm1EZXNjcmlwdGlvbigp
OworICAgIGlmICghcm9sZURlc2NyaXB0aW9uLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHJv
bGVEZXNjcmlwdGlvbjsKKwogICAgIGlmIChyb2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RmlndXJlKQogICAgICAgICByZXR1cm4gQVhGaWd1cmVUZXh0KCk7CiAKQEAgLTM3NjYsNCAr
MzgzNSwxOSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNldElzSWdub3JlZEZyb21QYXJl
bnREYXRhRm9yQ2hpbGQoQVhDb3JlT2JqZWN0KiBjaGlsZAogICAgIGNoaWxkLT5zZXRJc0lnbm9y
ZWRGcm9tUGFyZW50RGF0YShyZXN1bHQpOwogfQogCituYW1lc3BhY2UgQWNjZXNzaWJpbGl0eSB7
CisKKyNpZiAhUExBVEZPUk0oTUFDKQorLy8gRklYTUU6IGltcGxlbWVudCBpbiBvdGhlciBwbGF0
Zm9ybXMuCitQbGF0Zm9ybVJvbGVNYXAgY3JlYXRlUGxhdGZvcm1Sb2xlTWFwKCkgeyByZXR1cm4g
UGxhdGZvcm1Sb2xlTWFwKCk7IH0KKyNlbmRpZgorCitTdHJpbmcgcm9sZVRvUGxhdGZvcm1TdHJp
bmcoQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
UGxhdGZvcm1Sb2xlTWFwPiByb2xlTWFwID0gY3JlYXRlUGxhdGZvcm1Sb2xlTWFwKCk7CisgICAg
cmV0dXJuIHJvbGVNYXAtPmdldChzdGF0aWNfY2FzdDxpbnQ+KHJvbGUpKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgQWNjZXNzaWJpbGl0eQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4
IGM5NmY1MDhkMGQyZDI0NjdkYWZiYzcxNTc2YTA2NzVjOGFlOWM4ODguLjU2YTNkMjFlOWNjY2Ey
ZDc5MmRjOTM0OTY0NzcxMTJlYWVkYTM2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC0zMjYsNyArMzI2LDYgQEAgcHVi
bGljOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGlkZW50aWZpZXJBdHRyaWJ1dGUoKSBjb25zdCBv
dmVycmlkZTsKICAgICBjb25zdCBBdG9tU3RyaW5nJiBsaW5rUmVsVmFsdWUoKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2b2lkIGNsYXNzTGlzdChWZWN0b3I8U3RyaW5nPiYpIGNvbnN0IG92ZXJyaWRl
OwotICAgIFN0cmluZyByb2xlRGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZTsKICAgICBBY2Nl
c3NpYmlsaXR5Q3VycmVudFN0YXRlIGN1cnJlbnRTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAg
IFN0cmluZyBjdXJyZW50VmFsdWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHN1cHBvcnRz
Q3VycmVudCgpIGNvbnN0IG92ZXJyaWRlOwpAQCAtNDI4LDYgKzQyNyw5IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGNvbG9yVmFsdWUoaW50JiByLCBpbnQmIGcsIGludCYgYikgY29uc3Qgb3ZlcnJpZGUg
eyByID0gMDsgZyA9IDA7IGIgPSAwOyB9CiAKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFs
dWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3JvbGU7IH0KKyAgICBTdHJpbmcgcm9sZVBs
YXRmb3JtU3RyaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgU3RyaW5nIHJvbGVEZXNjcmlwdGlv
bigpIGNvbnN0IG92ZXJyaWRlOworICAgIFN0cmluZyBhcmlhTGFuZG1hcmtSb2xlRGVzY3JpcHRp
b24oKSBjb25zdCBvdmVycmlkZTsKIAogICAgIEFYT2JqZWN0Q2FjaGUqIGF4T2JqZWN0Q2FjaGUo
KSBjb25zdCBvdmVycmlkZTsKICAgICBBWElEIG9iamVjdElEKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9pZDsgfQpAQCAtNzk0LDYgKzc5Niw3IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMg
Ym9vbCBpc0FjY2Vzc2liaWxpdHlUZXh0U2VhcmNoTWF0Y2goQVhDb3JlT2JqZWN0KiwgQWNjZXNz
aWJpbGl0eVNlYXJjaENyaXRlcmlhKik7CiAgICAgc3RhdGljIGJvb2wgb2JqZWN0TWF0Y2hlc1Nl
YXJjaENyaXRlcmlhV2l0aFJlc3VsdExpbWl0KEFYQ29yZU9iamVjdCosIEFjY2Vzc2liaWxpdHlT
ZWFyY2hDcml0ZXJpYSosIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpOwogICAgIHZpcnR1
YWwgQWNjZXNzaWJpbGl0eVJvbGUgYnV0dG9uUm9sZVR5cGUoKSBjb25zdDsKKyAgICBTdHJpbmcg
cm9sZVBsYXRmb3JtRGVzY3JpcHRpb24oKSBjb25zdDsKICAgICBib29sIGlzT25TY3JlZW4oKSBj
b25zdCBvdmVycmlkZTsKICAgICBib29sIGRpc3BhdGNoVG91Y2hFdmVudCgpOwogCkBAIC04Mjgs
NiArODMxLDE1IEBAIGlubGluZSB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnVwZGF0ZUJhY2tp
bmdTdG9yZSgpIG92ZXJyaWRlIHsgfQogCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmaXJzdEFjY2Vz
c2libGVPYmplY3RGcm9tTm9kZShjb25zdCBOb2RlKiwgY29uc3QgV1RGOjpGdW5jdGlvbjxib29s
KGNvbnN0IEFjY2Vzc2liaWxpdHlPYmplY3QmKT4mIGlzQWNjZXNzaWJsZSk7CiAKK25hbWVzcGFj
ZSBBY2Nlc3NpYmlsaXR5IHsKKwordXNpbmcgUGxhdGZvcm1Sb2xlTWFwID0gSGFzaE1hcDxBY2Nl
c3NpYmlsaXR5Um9sZSwgU3RyaW5nLCBEZWZhdWx0SGFzaDxpbnQ+OjpIYXNoLCBXVEY6OlVuc2ln
bmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPGludD4+OworCitQbGF0Zm9ybVJvbGVNYXAgY3JlYXRl
UGxhdGZvcm1Sb2xlTWFwKCk7CitTdHJpbmcgcm9sZVRvUGxhdGZvcm1TdHJpbmcoQWNjZXNzaWJp
bGl0eVJvbGUpOworCit9IC8vIG5hbWVzcGFjZSBBY2Nlc3NpYmlsaXR5CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2RlZmluZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0FDQ0VTU0lCSUxJ
VFkoVG9WYWx1ZVR5cGVOYW1lLCBwcmVkaWNhdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5k
ZXggMDZkMDEyYTM4YzBkYTY4NGY1NTgwYmM3ZTI4ZDU1ZWE1ZTQ1ZGQ2MS4uNDBiY2YwOWM5Y2Jj
N2IyODZkNmY4ZTE0MTRjOGZjMjY0Nzg3NmU0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAg
LTY2OSw3ICs2NjksNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBBdG9tU3RyaW5nJiBp
ZGVudGlmaWVyQXR0cmlidXRlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbVN0
cmluZyYgbGlua1JlbFZhbHVlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbGFzc0xp
c3QoVmVjdG9yPFN0cmluZz4mKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgcm9sZURl
c2NyaXB0aW9uKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eUN1cnJlbnRT
dGF0ZSBjdXJyZW50U3RhdGUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgY3VycmVu
dFZhbHVlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0N1cnJlbnQoKSBj
b25zdCA9IDA7CkBAIC03NjQsNiArNzYzLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
Y29sb3JWYWx1ZShpbnQmIHIsIGludCYgZywgaW50JiBiKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0
dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0ID0gMDsKKyAgICAvLyBOb24t
bG9jYWxpemVkIHN0cmluZyBhc3NvY2lhdGVkIHdpdGggdGhlIG9iamVjdCByb2xlLgorICAgIHZp
cnR1YWwgU3RyaW5nIHJvbGVQbGF0Zm9ybVN0cmluZygpIGNvbnN0ID0gMDsKKyAgICAvLyBMb2Nh
bGl6ZWQgc3RyaW5nIHRoYXQgZGVzY3JpYmVzIHRoZSBvYmplY3QncyByb2xlLgorICAgIHZpcnR1
YWwgU3RyaW5nIHJvbGVEZXNjcmlwdGlvbigpIGNvbnN0ID0gMDsKKyAgICAvLyBMb2NhbGl6ZWQg
c3RyaW5nIHRoYXQgZGVzY3JpYmVzIEFSSUEgbGFuZG1hcmsgcm9sZXMuCisgICAgdmlydHVhbCBT
dHJpbmcgYXJpYUxhbmRtYXJrUm9sZURlc2NyaXB0aW9uKCkgY29uc3QgPSAwOwogCiAgICAgdmly
dHVhbCBBWE9iamVjdENhY2hlKiBheE9iamVjdENhY2hlKCkgY29uc3QgPSAwOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
VHJlZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZFRyZWVOb2RlLmNwcAppbmRleCBjYWU4NzgzOGZiZDVkODI2YTljY2I0OTVmNDY2
MDY1Mjg5Mjk4ZTY0Li4zN2NmYWUyZjA2YjExMjVlMjk4YmM3ZTViYmM0MzExMTBiNjUwZWJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkVHJlZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNv
bGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlTm9kZS5jcHAKQEAgLTU0LDYgKzU0LDkgQEAgQVhJc29s
YXRlZFRyZWVOb2RlOjp+QVhJc29sYXRlZFRyZWVOb2RlKCkgPSBkZWZhdWx0Owogdm9pZCBBWElz
b2xhdGVkVHJlZU5vZGU6OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKGNvbnN0IEFYQ29yZU9iamVj
dCYgb2JqZWN0KQogewogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpSb2xlVmFsdWUs
IHN0YXRpY19jYXN0PGludD4ob2JqZWN0LnJvbGVWYWx1ZSgpKSk7CisgICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OlJvbGVQbGF0Zm9ybVN0cmluZywgb2JqZWN0LnJvbGVQbGF0Zm9ybVN0
cmluZygpLmlzb2xhdGVkQ29weSgpKTsKKyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6
QVJJQUxhbmRtYXJrUm9sZURlc2NyaXB0aW9uLCBvYmplY3QuYXJpYUxhbmRtYXJrUm9sZURlc2Ny
aXB0aW9uKCkuaXNvbGF0ZWRDb3B5KCkpOworICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1l
OjpSb2xlRGVzY3JpcHRpb24sIG9iamVjdC5yb2xlRGVzY3JpcHRpb24oKS5pc29sYXRlZENvcHko
KSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzQXR0YWNobWVudCwgb2JqZWN0
LmlzQXR0YWNobWVudCgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNNZWRp
YUNvbnRyb2xMYWJlbCwgb2JqZWN0LmlzTWVkaWFDb250cm9sTGFiZWwoKSk7CiAgICAgc2V0UHJv
cGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzTGluaywgb2JqZWN0LmlzTGluaygpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRU
cmVlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZFRyZWVOb2RlLmgKaW5kZXggMmNlMDA4ZmMwMGIzOGEyMWE5ZDRlMzkyNDkyMmE3ZjNm
OGFhOTdiNy4uOWE0YTJiYTc0Yjg3MGI4ZDA1OTI5NzYwY2Q2YmQ5NGExNjEyMTllMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWVOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZFRyZWVOb2RlLmgKQEAgLTU0LDkgKzU0LDE0IEBAIHB1YmxpYzoKICAgICBB
WElEIG9iamVjdElEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pZDsgfQogICAgIHZvaWQg
aW5pdCgpIG92ZXJyaWRlIHsgfQogCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIqIHdy
YXBwZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3dyYXBwZXIuZ2V0KCk7IH0KICAgICB2
b2lkIGRldGFjaChBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUsIEFYT2JqZWN0Q2FjaGUqID0g
bnVsbHB0cikgb3ZlcnJpZGUgeyB9CiAgICAgYm9vbCBpc0RldGFjaGVkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHZvaWQgc2V0VHJlZUlkZW50aWZpZXIoQVhJc29s
YXRlZFRyZWVJRCk7CisgICAgdm9pZCBzZXRQYXJlbnQoQVhJRCk7CisgICAgdm9pZCBhcHBlbmRD
aGlsZChBWElEKTsKKwogcHJpdmF0ZToKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eU9iamVjdCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTI1OSw3
ICsyNjQsNiBAQCBwcml2YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGlkZW50aWZpZXJBdHRy
aWJ1dGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxsQXRvbSgpOyB9CiAgICAgY29uc3Qg
QXRvbVN0cmluZyYgbGlua1JlbFZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbEF0
b20oKTsgfQogICAgIHZvaWQgY2xhc3NMaXN0KFZlY3RvcjxTdHJpbmc+JikgY29uc3Qgb3ZlcnJp
ZGUgeyB9Ci0gICAgU3RyaW5nIHJvbGVEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIFN0cmluZygpOyB9CiAgICAgQWNjZXNzaWJpbGl0eUN1cnJlbnRTdGF0ZSBjdXJyZW50U3Rh
dGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBBY2Nlc3NpYmlsaXR5Q3VycmVudFN0YXRlOjpG
YWxzZTsgfQogICAgIFN0cmluZyBjdXJyZW50VmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBTdHJpbmcoKTsgfQogICAgIGJvb2wgc3VwcG9ydHNDdXJyZW50KCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gZmFsc2U7IH0KQEAgLTM0Myw2ICszNDcsOSBAQCBwcml2YXRlOgogICAgIHZvaWQg
Y29sb3JWYWx1ZShpbnQmLCBpbnQmLCBpbnQmKSBjb25zdCBvdmVycmlkZSB7IH0KIAogICAgIEFj
Y2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0YXRp
Y19jYXN0PEFjY2Vzc2liaWxpdHlSb2xlPihpbnRBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFt
ZTo6Um9sZVZhbHVlKSk7IH0KKyAgICBTdHJpbmcgcm9sZVBsYXRmb3JtU3RyaW5nKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlJv
bGVQbGF0Zm9ybVN0cmluZyk7IH0KKyAgICBTdHJpbmcgcm9sZURlc2NyaXB0aW9uKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlJv
bGVEZXNjcmlwdGlvbik7IH0KKyAgICBTdHJpbmcgYXJpYUxhbmRtYXJrUm9sZURlc2NyaXB0aW9u
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0
eU5hbWU6OkFSSUFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbik7IH0KIAogICAgIEFYT2JqZWN0Q2Fj
aGUqIGF4T2JqZWN0Q2FjaGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CiAK
QEAgLTU5MCw3ICs1OTcsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNET01IaWRkZW4oKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNIaWRkZW4oKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXIqIHdyYXBwZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3dyYXBwZXIuZ2V0KCk7IH0K
ICAgICB2b2lkIHNldFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIqIHdyYXBwZXIp
IG92ZXJyaWRlIHsgbV93cmFwcGVyID0gd3JhcHBlcjsgfQogCiAgICAgdm9pZCBvdmVycmlkZUF0
dGFjaG1lbnRQYXJlbnQoQVhDb3JlT2JqZWN0Kikgb3ZlcnJpZGUgeyB9CkBAIC02MzEsMTEgKzYz
Nyw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjbGVhcklzSWdub3JlZEZyb21QYXJlbnREYXRhKCkg
b3ZlcnJpZGUgeyB9CiAgICAgdm9pZCBzZXRJc0lnbm9yZWRGcm9tUGFyZW50RGF0YUZvckNoaWxk
KEFYQ29yZU9iamVjdCopIG92ZXJyaWRlIHsgfQogCi0gICAgdm9pZCBzZXRUcmVlSWRlbnRpZmll
cihBWElzb2xhdGVkVHJlZUlEKTsKLSAgICBBWElzb2xhdGVkVHJlZSogdHJlZSgpIGNvbnN0Owot
ICAgIHZvaWQgc2V0UGFyZW50KEFYSUQpOwotICAgIHZvaWQgYXBwZW5kQ2hpbGQoQVhJRCk7Ci0K
ICAgICBlbnVtIGNsYXNzIEFYUHJvcGVydHlOYW1lIDogdWludDhfdCB7CiAgICAgICAgIE5vbmUg
PSAwLAogICAgICAgICBIZWxwVGV4dCwKQEAgLTY1Miw2ICs2NTMsOSBAQCBwcml2YXRlOgogICAg
ICAgICBEZXNjcmlwdGlvbiwKICAgICAgICAgUmVsYXRpdmVGcmFtZSwKICAgICAgICAgUm9sZVZh
bHVlLAorICAgICAgICBSb2xlUGxhdGZvcm1TdHJpbmcsCisgICAgICAgIFJvbGVEZXNjcmlwdGlv
biwKKyAgICAgICAgQVJJQUxhbmRtYXJrUm9sZURlc2NyaXB0aW9uLAogICAgICAgICBTcGVlY2hI
aW50LAogICAgICAgICBUaXRsZSwKICAgICB9OwpAQCAtNjU5LDYgKzY2Myw3IEBAIHByaXZhdGU6
CiAgICAgQVhJRCBwYXJlbnQoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudDsgfQogCiAgICAgQVhJ
c29sYXRlZFRyZWVJRCB0cmVlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fdHJlZUlkZW50
aWZpZXI7IH0KKyAgICBBWElzb2xhdGVkVHJlZSogdHJlZSgpIGNvbnN0OwogCiAgICAgQVhJc29s
YXRlZFRyZWVOb2RlKCkgPSBkZWZhdWx0OwogICAgIEFYSXNvbGF0ZWRUcmVlTm9kZShjb25zdCBB
WENvcmVPYmplY3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCmluZGV4IDJjZGJjNzNhYjg5OGJmYjVj
MzJlZWZlYjVjN2RhYmM0NjYyMTlhODIuLjVjMzc0YmZkZWY1NDM2ZmQyNmE1MmY0NTkyOTZjZmU0
YThkODA2MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0Fj
Y2Vzc2liaWxpdHlPYmplY3RNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQpAQCAtMjUsOCArMjUsMTIgQEAKIAogI2lt
cG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW1wb3J0
ICJBY2Nlc3NpYmlsaXR5TGFiZWwuaCIKKyNpbXBvcnQgIkFjY2Vzc2liaWxpdHlMaXN0LmgiCiAj
aW1wb3J0ICJFbGVtZW50QW5jZXN0b3JJdGVyYXRvci5oIgogI2ltcG9ydCAiSFRNTEZpZWxkU2V0
RWxlbWVudC5oIgorI2ltcG9ydCAiSFRNTElucHV0RWxlbWVudC5oIgorI2ltcG9ydCAiTG9jYWxp
emVkU3RyaW5ncy5oIgogI2ltcG9ydCAiUmVuZGVyT2JqZWN0LmgiCiAjaW1wb3J0ICJTZXR0aW5n
cy5oIgogCkBAIC0xMjgsNiArMTMyLDI5MCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNl
dENhcmV0QnJvd3NpbmdFbmFibGVkKGJvb2wgb24pCiAgICAgZnJhbWUtPnNldHRpbmdzKCkuc2V0
Q2FyZXRCcm93c2luZ0VuYWJsZWQob24pOwogfQogCitTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVj
dDo6cm9sZVBsYXRmb3JtU3RyaW5nKCkgY29uc3QKK3sKKyAgICBBY2Nlc3NpYmlsaXR5Um9sZSBy
b2xlID0gcm9sZVZhbHVlKCk7CisKKyAgICAvLyBJZiBpdCBpcyBhIGxhYmVsIHdpdGgganVzdCBz
dGF0aWMgdGV4dCBvciBhbiBhbm9ueW1vdXMgbWF0aCBvcGVyYXRvciwgcmVtYXAgcm9sZSB0byBT
dGF0aWNUZXh0LgorICAgIC8vIFRoZSBtZmVuY2VkIGVsZW1lbnQgY3JlYXRlcyBhbm9ueW1vdXMg
UmVuZGVyTWF0aE1MT3BlcmF0b3JzIHdpdGggbm8gUmVuZGVyVGV4dAorICAgIC8vIGRlc2NlbmRh
bnRzLiBUaGVzZSBhbm9ueW1vdXMgcmVuZGVyZXJzIGFyZSB0aGUgb25seSBhY2Nlc3NpYmxlIG9i
amVjdHMKKyAgICAvLyBjb250YWluaW5nIHRoZSBvcGVyYXRvci4KKyAgICBpZiAoKHJvbGUgPT0g
QWNjZXNzaWJpbGl0eVJvbGU6OkxhYmVsICYmIGlzPEFjY2Vzc2liaWxpdHlMYWJlbD4oKnRoaXMp
ICYmIGRvd25jYXN0PEFjY2Vzc2liaWxpdHlMYWJlbD4oKnRoaXMpLmNvbnRhaW5zT25seVN0YXRp
Y1RleHQoKSkKKyAgICAgICAgfHwgaXNBbm9ueW1vdXNNYXRoT3BlcmF0b3IoKSkKKyAgICAgICAg
cm9sZSA9IEFjY2Vzc2liaWxpdHlSb2xlOjpTdGF0aWNUZXh0OworICAgIGVsc2UgaWYgKHJvbGUg
PT0gQWNjZXNzaWJpbGl0eVJvbGU6OkNhbnZhcyAmJiBjYW52YXNIYXNGYWxsYmFja0NvbnRlbnQo
KSkKKyAgICAgICAgcm9sZSA9IEFjY2Vzc2liaWxpdHlSb2xlOjpHcm91cDsKKworICAgIHJldHVy
biBBY2Nlc3NpYmlsaXR5Ojpyb2xlVG9QbGF0Zm9ybVN0cmluZyhyb2xlKTsKK30KKworU3RyaW5n
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJvbGVQbGF0Zm9ybURlc2NyaXB0aW9uKCkgY29uc3QKK3sK
KyAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlID0gcm9sZVZhbHVlKCk7CisgICAgTlNTdHJpbmcq
IGF4Um9sZSA9IHJvbGVQbGF0Zm9ybVN0cmluZygpOworCisgICAgaWYgKFtheFJvbGUgaXNFcXVh
bFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZV0pIHsKKyAgICAgICAgaWYgKGlzT3V0
cHV0KCkpCisgICAgICAgICAgICByZXR1cm4gQVhPdXRwdXRUZXh0KCk7CisKKyAgICAgICAgU3Ry
aW5nIGFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbiA9IHRoaXMtPmFyaWFMYW5kbWFya1JvbGVE
ZXNjcmlwdGlvbigpOworICAgICAgICBpZiAoIWFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbi5p
c0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gYXJpYUxhbmRtYXJrUm9sZURlc2NyaXB0aW9u
OworCisgICAgICAgIHN3aXRjaCAocm9sZSkgeworICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpBdWRpbzoKKyAgICAgICAgICAgIHJldHVybiBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVt
ZW50U3RyaW5nKCJBdWRpb0VsZW1lbnQiKTsKKyAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RGVmaW5pdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBBWERlZmluaXRpb25UZXh0KCk7Cisg
ICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdFRlcm06CisgICAg
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRlcm06CisgICAgICAgICAgICByZXR1cm4gQVhE
ZXNjcmlwdGlvbkxpc3RUZXJtVGV4dCgpOworICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpEZXNjcmlwdGlvbkxpc3REZXRhaWw6CisgICAgICAgICAgICByZXR1cm4gQVhEZXNjcmlwdGlv
bkxpc3REZXRhaWxUZXh0KCk7CisgICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRldGFp
bHM6CisgICAgICAgICAgICByZXR1cm4gQVhEZXRhaWxzVGV4dCgpOworICAgICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpGZWVkOgorICAgICAgICAgICAgcmV0dXJuIEFYRmVlZFRleHQoKTsK
KyAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Rm9vdGVyOgorICAgICAgICAgICAgcmV0
dXJuIEFYRm9vdGVyUm9sZURlc2NyaXB0aW9uVGV4dCgpOworICAgICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpNYXJrOgorICAgICAgICAgICAgcmV0dXJuIEFYTWFya1RleHQoKTsKKyAgICAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VmlkZW86CisgICAgICAgICAgICByZXR1cm4gbG9j
YWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZygiVmlkZW9FbGVtZW50Iik7CisgICAgICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNzRG9jdW1lbnQ6CisgICAgICAgICAgICBy
ZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFEb2N1bWVudCIpOworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICB9CisgICAgfQor
CisgICAgaWYgKFtheFJvbGUgaXNFcXVhbFRvU3RyaW5nOkAiQVhXZWJBcmVhIl0pCisgICAgICAg
IHJldHVybiBBWFdlYkFyZWFUZXh0KCk7CisKKyAgICBpZiAoW2F4Um9sZSBpc0VxdWFsVG9TdHJp
bmc6QCJBWExpbmsiXSkKKyAgICAgICAgcmV0dXJuIEFYTGlua1RleHQoKTsKKworICAgIGlmIChb
YXhSb2xlIGlzRXF1YWxUb1N0cmluZzpAIkFYTGlzdE1hcmtlciJdKQorICAgICAgICByZXR1cm4g
QVhMaXN0TWFya2VyVGV4dCgpOworCisgICAgaWYgKFtheFJvbGUgaXNFcXVhbFRvU3RyaW5nOkAi
QVhJbWFnZU1hcCJdKQorICAgICAgICByZXR1cm4gQVhJbWFnZU1hcFRleHQoKTsKKworICAgIGlm
IChbYXhSb2xlIGlzRXF1YWxUb1N0cmluZzpAIkFYSGVhZGluZyJdKQorICAgICAgICByZXR1cm4g
QVhIZWFkaW5nVGV4dCgpOworCisgICAgaWYgKFtheFJvbGUgaXNFcXVhbFRvU3RyaW5nOk5TQWNj
ZXNzaWJpbGl0eVRleHRGaWVsZFJvbGVdKSB7CisgICAgICAgIGF1dG8qIG5vZGUgPSB0aGlzLT5u
b2RlKCk7CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pihub2RlKSkgeworICAgICAg
ICAgICAgYXV0byYgaW5wdXQgPSBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pigqbm9kZSk7Cisg
ICAgICAgICAgICBpZiAoaW5wdXQuaXNFbWFpbEZpZWxkKCkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIEFYRW1haWxGaWVsZFRleHQoKTsKKyAgICAgICAgICAgIGlmIChpbnB1dC5pc1RlbGVwaG9u
ZUZpZWxkKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEFYVGVsZXBob25lRmllbGRUZXh0KCk7
CisgICAgICAgICAgICBpZiAoaW5wdXQuaXNVUkxGaWVsZCgpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBBWFVSTEZpZWxkVGV4dCgpOworICAgICAgICAgICAgaWYgKGlucHV0LmlzTnVtYmVyRmll
bGQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gQVhOdW1iZXJGaWVsZFRleHQoKTsKKworICAg
ICAgICAgICAgLy8gVGhlc2UgaW5wdXQgdHlwZXMgYXJlIG5vdCBlbmFibGVkIG9uIG1hYyB5ZXQs
IHdlIGNoZWNrIHRoZSB0eXBlIGF0dHJpYnV0ZSBmb3Igbm93LgorICAgICAgICAgICAgYXV0byYg
dHlwZSA9IGlucHV0LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjp0
eXBlQXR0cik7CisgICAgICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
dHlwZSwgImRhdGUiKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gQVhEYXRlRmllbGRUZXh0KCk7
CisgICAgICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodHlwZSwgInRp
bWUiKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gQVhUaW1lRmllbGRUZXh0KCk7CisgICAgICAg
ICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodHlwZSwgIndlZWsiKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gQVhXZWVrRmllbGRUZXh0KCk7CisgICAgICAgICAgICBpZiAo
ZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodHlwZSwgIm1vbnRoIikpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIEFYTW9udGhGaWVsZFRleHQoKTsKKyAgICAgICAgICAgIGlmIChlcXVhbExl
dHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBlLCAiZGF0ZXRpbWUtbG9jYWwiKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gQVhEYXRlVGltZUZpZWxkVGV4dCgpOworICAgICAgICB9CisgICAgfQor
CisgICAgaWYgKGlzRmlsZVVwbG9hZEJ1dHRvbigpKQorICAgICAgICByZXR1cm4gQVhGaWxlVXBs
b2FkQnV0dG9uVGV4dCgpOworCisgICAgLy8gT25seSByZXR1cm5pbmcgZm9yIERMIChub3QgVUwg
b3IgT0wpIGJlY2F1c2UgZGVzY3JpcHRpb24gY2hhbmdlZCB3aXRoIEhUTUw1IGZyb20gJ2RlZmlu
aXRpb24gbGlzdCcgdG8KKyAgICAvLyBzdXBlcnNldCAnZGVzY3JpcHRpb24gbGlzdCcgYW5kIGRv
ZXMgbm90IHJldHVybiB0aGUgc2FtZSB2YWx1ZXMgaW4gQVggQVBJIG9uIHNvbWUgT1MgdmVyc2lv
bnMuCisgICAgaWYgKGlzPEFjY2Vzc2liaWxpdHlMaXN0PigqdGhpcykpIHsKKyAgICAgICAgaWYg
KGRvd25jYXN0PEFjY2Vzc2liaWxpdHlMaXN0PigqdGhpcykuaXNEZXNjcmlwdGlvbkxpc3QoKSkK
KyAgICAgICAgICAgIHJldHVybiBBWERlc2NyaXB0aW9uTGlzdFRleHQoKTsKKyAgICB9CisKKyAg
ICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SG9yaXpvbnRhbFJ1bGUpCisgICAgICAg
IHJldHVybiBBWEhvcml6b250YWxSdWxlRGVzY3JpcHRpb25UZXh0KCk7CisKKyAgICAvLyBBcHBL
aXQgYWxzbyByZXR1cm5zIEFYVGFiIGZvciB0aGUgcm9sZSBkZXNjcmlwdGlvbiBmb3IgYSB0YWIg
aXRlbS4KKyAgICBpZiAoaXNUYWJJdGVtKCkpCisgICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxp
dHlSb2xlRGVzY3JpcHRpb24oQCJBWFRhYiIsIG5pbCk7CisKKyAgICBpZiAoaXNTdW1tYXJ5KCkp
CisgICAgICAgIHJldHVybiBBWFN1bW1hcnlUZXh0KCk7CisKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK25hbWVzcGFjZSBBY2Nlc3NpYmlsaXR5IHsKKworUGxhdGZvcm1Sb2xlTWFwIGNyZWF0
ZVBsYXRmb3JtUm9sZU1hcCgpCit7CisgICAgc3RydWN0IFJvbGVFbnRyeSB7CisgICAgICAgIEFj
Y2Vzc2liaWxpdHlSb2xlIHZhbHVlOworICAgICAgICBfX3Vuc2FmZV91bnJldGFpbmVkIE5TU3Ry
aW5nICpzdHJpbmc7CisgICAgfTsKKyAgICBzdGF0aWMgY29uc3QgUm9sZUVudHJ5IHJvbGVzW10g
PSB7CisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd24sIE5TQWNjZXNzaWJpbGl0
eVVua25vd25Sb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkJ1dHRvbiwgTlNB
Y2Nlc3NpYmlsaXR5QnV0dG9uUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpS
YWRpb0J1dHRvbiwgTlNBY2Nlc3NpYmlsaXR5UmFkaW9CdXR0b25Sb2xlIH0sCisgICAgICAgIHsg
QWNjZXNzaWJpbGl0eVJvbGU6OkNoZWNrQm94LCBOU0FjY2Vzc2liaWxpdHlDaGVja0JveFJvbGUg
fSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6U2xpZGVyLCBOU0FjY2Vzc2liaWxpdHlT
bGlkZXJSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYkdyb3VwLCBOU0Fj
Y2Vzc2liaWxpdHlUYWJHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6
VGV4dEZpZWxkLCBOU0FjY2Vzc2liaWxpdHlUZXh0RmllbGRSb2xlIH0sCisgICAgICAgIHsgQWNj
ZXNzaWJpbGl0eVJvbGU6OlN0YXRpY1RleHQsIE5TQWNjZXNzaWJpbGl0eVN0YXRpY1RleHRSb2xl
IH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlRleHRBcmVhLCBOU0FjY2Vzc2liaWxp
dHlUZXh0QXJlYVJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6U2Nyb2xsQXJl
YSwgTlNBY2Nlc3NpYmlsaXR5U2Nyb2xsQXJlYVJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmls
aXR5Um9sZTo6UG9wVXBCdXR0b24sIE5TQWNjZXNzaWJpbGl0eVBvcFVwQnV0dG9uUm9sZSB9LAor
ICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51QnV0dG9uLCBOU0FjY2Vzc2liaWxpdHlN
ZW51QnV0dG9uUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJsZSwgTlNB
Y2Nlc3NpYmlsaXR5VGFibGVSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkFw
cGxpY2F0aW9uLCBOU0FjY2Vzc2liaWxpdHlBcHBsaWNhdGlvblJvbGUgfSwKKyAgICAgICAgeyBB
Y2Nlc3NpYmlsaXR5Um9sZTo6R3JvdXAsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAg
ICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpUZXh0R3JvdXAsIE5TQWNjZXNzaWJpbGl0eUdyb3Vw
Um9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpSYWRpb0dyb3VwLCBOU0FjY2Vz
c2liaWxpdHlSYWRpb0dyb3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpM
aXN0LCBOU0FjY2Vzc2liaWxpdHlMaXN0Um9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlS
b2xlOjpEaXJlY3RvcnksIE5TQWNjZXNzaWJpbGl0eUxpc3RSb2xlIH0sCisgICAgICAgIHsgQWNj
ZXNzaWJpbGl0eVJvbGU6OlNjcm9sbEJhciwgTlNBY2Nlc3NpYmlsaXR5U2Nyb2xsQmFyUm9sZSB9
LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpWYWx1ZUluZGljYXRvciwgTlNBY2Nlc3Np
YmlsaXR5VmFsdWVJbmRpY2F0b3JSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6
OkltYWdlLCBOU0FjY2Vzc2liaWxpdHlJbWFnZVJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmls
aXR5Um9sZTo6TWVudUJhciwgTlNBY2Nlc3NpYmlsaXR5TWVudUJhclJvbGUgfSwKKyAgICAgICAg
eyBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudSwgTlNBY2Nlc3NpYmlsaXR5TWVudVJvbGUgfSwKKyAg
ICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUl0ZW0sIE5TQWNjZXNzaWJpbGl0eU1lbnVJ
dGVtUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51SXRlbUNoZWNrYm94
LCBOU0FjY2Vzc2liaWxpdHlNZW51SXRlbVJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5
Um9sZTo6TWVudUl0ZW1SYWRpbywgTlNBY2Nlc3NpYmlsaXR5TWVudUl0ZW1Sb2xlIH0sCisgICAg
ICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkNvbHVtbiwgTlNBY2Nlc3NpYmlsaXR5Q29sdW1uUm9s
ZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpSb3csIE5TQWNjZXNzaWJpbGl0eVJv
d1JvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6VG9vbGJhciwgTlNBY2Nlc3Np
YmlsaXR5VG9vbGJhclJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6QnVzeUlu
ZGljYXRvciwgTlNBY2Nlc3NpYmlsaXR5QnVzeUluZGljYXRvclJvbGUgfSwKKyAgICAgICAgeyBB
Y2Nlc3NpYmlsaXR5Um9sZTo6UHJvZ3Jlc3NJbmRpY2F0b3IsIE5TQWNjZXNzaWJpbGl0eVByb2dy
ZXNzSW5kaWNhdG9yUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpNZXRlciwg
TlNBY2Nlc3NpYmlsaXR5TGV2ZWxJbmRpY2F0b3JSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJp
bGl0eVJvbGU6OldpbmRvdywgTlNBY2Nlc3NpYmlsaXR5V2luZG93Um9sZSB9LAorICAgICAgICB7
IEFjY2Vzc2liaWxpdHlSb2xlOjpEcmF3ZXIsIE5TQWNjZXNzaWJpbGl0eURyYXdlclJvbGUgfSwK
KyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6U3lzdGVtV2lkZSwgTlNBY2Nlc3NpYmlsaXR5
U3lzdGVtV2lkZVJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6T3V0bGluZSwg
TlNBY2Nlc3NpYmlsaXR5T3V0bGluZVJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9s
ZTo6SW5jcmVtZW50b3IsIE5TQWNjZXNzaWJpbGl0eUluY3JlbWVudG9yUm9sZSB9LAorICAgICAg
ICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpCcm93c2VyLCBOU0FjY2Vzc2liaWxpdHlCcm93c2VyUm9s
ZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpDb21ib0JveCwgTlNBY2Nlc3NpYmls
aXR5Q29tYm9Cb3hSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlNwbGl0R3Jv
dXAsIE5TQWNjZXNzaWJpbGl0eVNwbGl0R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJp
bGl0eVJvbGU6OlNwbGl0dGVyLCBOU0FjY2Vzc2liaWxpdHlTcGxpdHRlclJvbGUgfSwKKyAgICAg
ICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6Q29sb3JXZWxsLCBOU0FjY2Vzc2liaWxpdHlDb2xvcldl
bGxSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Okdyb3dBcmVhLCBOU0FjY2Vz
c2liaWxpdHlHcm93QXJlYVJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6U2hl
ZXQsIE5TQWNjZXNzaWJpbGl0eVNoZWV0Um9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlS
b2xlOjpIZWxwVGFnLCBOU0FjY2Vzc2liaWxpdHlIZWxwVGFnUm9sZSB9LAorICAgICAgICB7IEFj
Y2Vzc2liaWxpdHlSb2xlOjpNYXR0ZSwgTlNBY2Nlc3NpYmlsaXR5TWF0dGVSb2xlIH0sCisgICAg
ICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1bGVyLCBOU0FjY2Vzc2liaWxpdHlSdWxlclJvbGUg
fSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVsZXJNYXJrZXIsIE5TQWNjZXNzaWJp
bGl0eVJ1bGVyTWFya2VyUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpMaW5r
LCBOU0FjY2Vzc2liaWxpdHlMaW5rUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xl
OjpEaXNjbG9zdXJlVHJpYW5nbGUsIE5TQWNjZXNzaWJpbGl0eURpc2Nsb3N1cmVUcmlhbmdsZVJv
bGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JpZCwgTlNBY2Nlc3NpYmlsaXR5
VGFibGVSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlRyZWVHcmlkLCBOU0Fj
Y2Vzc2liaWxpdHlUYWJsZVJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6V2Vi
Q29yZUxpbmssIE5TQWNjZXNzaWJpbGl0eUxpbmtSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJp
bGl0eVJvbGU6OkltYWdlTWFwTGluaywgTlNBY2Nlc3NpYmlsaXR5TGlua1JvbGUgfSwKKyAgICAg
ICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6SW1hZ2VNYXAsIEAiQVhJbWFnZU1hcCIgfSwKKyAgICAg
ICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdE1hcmtlciwgQCJBWExpc3RNYXJrZXIiIH0sCisg
ICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OldlYkFyZWEsIEAiQVhXZWJBcmVhIiB9LAorICAg
ICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpIZWFkaW5nLCBAIkFYSGVhZGluZyIgfSwKKyAgICAg
ICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdEJveCwgTlNBY2Nlc3NpYmlsaXR5TGlzdFJvbGUg
fSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdEJveE9wdGlvbiwgTlNBY2Nlc3Np
YmlsaXR5U3RhdGljVGV4dFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2Vs
bCwgTlNBY2Nlc3NpYmlsaXR5Q2VsbFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9s
ZTo6R3JpZENlbGwsIE5TQWNjZXNzaWJpbGl0eUNlbGxSb2xlIH0sCisgICAgICAgIHsgQWNjZXNz
aWJpbGl0eVJvbGU6OlRhYmxlSGVhZGVyQ29udGFpbmVyLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJv
bGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6Q29sdW1uSGVhZGVyLCBOU0FjY2Vz
c2liaWxpdHlDZWxsUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpSb3dIZWFk
ZXIsIE5TQWNjZXNzaWJpbGl0eUNlbGxSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJv
bGU6OkRlZmluaXRpb24sIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAgICAgICB7IEFj
Y2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxpc3REZXRhaWwsIE5TQWNjZXNzaWJpbGl0eUdy
b3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxpc3RU
ZXJtLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5
Um9sZTo6VGVybSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNz
aWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdCwgTlNBY2Nlc3NpYmlsaXR5TGlzdFJvbGUgfSwK
KyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6U2xpZGVyVGh1bWIsIE5TQWNjZXNzaWJpbGl0
eVZhbHVlSW5kaWNhdG9yUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpXZWJB
cHBsaWNhdGlvbiwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNz
aWJpbGl0eVJvbGU6OkxhbmRtYXJrQmFubmVyLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwK
KyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtDb21wbGVtZW50YXJ5LCBOU0Fj
Y2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFu
ZG1hcmtEb2NSZWdpb24sIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAgICAgICB7IEFj
Y2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0NvbnRlbnRJbmZvLCBOU0FjY2Vzc2liaWxpdHlHcm91
cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtNYWluLCBOU0Fj
Y2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFu
ZG1hcmtOYXZpZ2F0aW9uLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBB
Y2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtSZWdpb24sIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9s
ZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya1NlYXJjaCwgTlNBY2Nl
c3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxp
Y2F0aW9uQWxlcnQsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vz
c2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nLCBOU0FjY2Vzc2liaWxpdHlHcm91
cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25EaWFsb2cs
IE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xl
OjpBcHBsaWNhdGlvbkdyb3VwLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAg
eyBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25UZXh0R3JvdXAsIE5TQWNjZXNzaWJpbGl0
eUdyb3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkxv
ZywgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJv
bGU6OkFwcGxpY2F0aW9uTWFycXVlZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAg
ICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uU3RhdHVzLCBOU0FjY2Vzc2liaWxp
dHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25U
aW1lciwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0
eVJvbGU6OkRvY3VtZW50LCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBB
Y2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRBcnRpY2xlLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJv
bGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRNYXRoLCBOU0FjY2Vz
c2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1l
bnROb3RlLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmls
aXR5Um9sZTo6VXNlckludGVyZmFjZVRvb2x0aXAsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9
LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpUYWIsIE5TQWNjZXNzaWJpbGl0eVJhZGlv
QnV0dG9uUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJMaXN0LCBOU0Fj
Y2Vzc2liaWxpdHlUYWJHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6
VGFiUGFuZWwsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2li
aWxpdHlSb2xlOjpUcmVlLCBOU0FjY2Vzc2liaWxpdHlPdXRsaW5lUm9sZSB9LAorICAgICAgICB7
IEFjY2Vzc2liaWxpdHlSb2xlOjpUcmVlSXRlbSwgTlNBY2Nlc3NpYmlsaXR5Um93Um9sZSB9LAor
ICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpMaXN0SXRlbSwgTlNBY2Nlc3NpYmlsaXR5R3Jv
dXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlBhcmFncmFwaCwgTlNBY2Nl
c3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkxhYmVs
LCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RGl2LCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmls
aXR5Um9sZTo6Rm9ybSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNj
ZXNzaWJpbGl0eVJvbGU6OlNwaW5CdXR0b24sIE5TQWNjZXNzaWJpbGl0eUluY3JlbWVudG9yUm9s
ZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpGb290ZXIsIE5TQWNjZXNzaWJpbGl0
eUdyb3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpUb2dnbGVCdXR0b24s
IE5TQWNjZXNzaWJpbGl0eUNoZWNrQm94Um9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlS
b2xlOjpDYW52YXMsIE5TQWNjZXNzaWJpbGl0eUltYWdlUm9sZSB9LAorICAgICAgICB7IEFjY2Vz
c2liaWxpdHlSb2xlOjpTVkdSb290LCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAg
ICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TGVnZW5kLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUg
fSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TWF0aEVsZW1lbnQsIE5TQWNjZXNzaWJp
bGl0eUdyb3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpBdWRpbywgTlNB
Y2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlZp
ZGVvLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5
Um9sZTo6SG9yaXpvbnRhbFJ1bGUsIE5TQWNjZXNzaWJpbGl0eVNwbGl0dGVyUm9sZSB9LAorICAg
ICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpCbG9ja3F1b3RlLCBOU0FjY2Vzc2liaWxpdHlHcm91
cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6U3dpdGNoLCBOU0FjY2Vzc2li
aWxpdHlDaGVja0JveFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6U2VhcmNo
RmllbGQsIE5TQWNjZXNzaWJpbGl0eVRleHRGaWVsZFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3Np
YmlsaXR5Um9sZTo6UHJlLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBB
Y2Nlc3NpYmlsaXR5Um9sZTo6UnVieUJhc2UsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAor
ICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5QmxvY2ssIE5TQWNjZXNzaWJpbGl0eUdy
b3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5SW5saW5lLCBOU0Fj
Y2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVi
eVJ1biwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0
eVJvbGU6OlJ1YnlUZXh0LCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBB
Y2Nlc3NpYmlsaXR5Um9sZTo6RGV0YWlscywgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisg
ICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlN1bW1hcnksIE5TQWNjZXNzaWJpbGl0eUJ1dHRv
blJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6U1ZHVGV4dFBhdGgsIE5TQWNj
ZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpTVkdU
ZXh0LCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5
Um9sZTo6U1ZHVFNwYW4sIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAgICAgICB7IEFj
Y2Vzc2liaWxpdHlSb2xlOjpJbmxpbmUsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAg
ICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpNYXJrLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUg
fSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6VGltZSwgTlNBY2Nlc3NpYmlsaXR5R3Jv
dXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkZlZWQsIE5TQWNjZXNzaWJp
bGl0eUdyb3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpGaWd1cmUsIE5T
QWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpG
b290bm90ZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJp
bGl0eVJvbGU6OkdyYXBoaWNzRG9jdW1lbnQsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAor
ICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpHcmFwaGljc09iamVjdCwgTlNBY2Nlc3NpYmls
aXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNzU3lt
Ym9sLCBOU0FjY2Vzc2liaWxpdHlJbWFnZVJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5
Um9sZTo6Q2FwdGlvbiwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNj
ZXNzaWJpbGl0eVJvbGU6OkRlbGV0aW9uLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAg
ICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6SW5zZXJ0aW9uLCBOU0FjY2Vzc2liaWxpdHlHcm91
cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6U3Vic2NyaXB0LCBOU0FjY2Vz
c2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6U3VwZXJz
Y3JpcHQsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAgIH07CisgICAgUGxhdGZvcm1S
b2xlTWFwIHJvbGVNYXA7CisgICAgZm9yIChhdXRvJiByb2xlIDogcm9sZXMpCisgICAgICAgIHJv
bGVNYXAuYWRkKHN0YXRpY19jYXN0PGludD4ocm9sZS52YWx1ZSksIChfX2JyaWRnZSBDRlN0cmlu
Z1JlZilyb2xlLnN0cmluZyk7CisgICAgcmV0dXJuIHJvbGVNYXA7Cit9CisKK30gLy8gbmFtZXNw
YWNlIEFjY2Vzc2liaWxpdHkKKwogfSAvLyBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQUND
RVNTSUJJTElUWSkgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJCYXNlLm1tCmluZGV4IGYwZmVhMjM4ZjAxMDFhNTM2YjRhNjc5MGFmNzI5ZDM5MmI0ZmFh
NTYuLjRmOWI0ZDk4NjM4ZmQ1MTdlNzZjOWE4ZjBmZTlkZjYwY2Q5MTFjYTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyQmFzZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KQEAgLTMyNiw5ICszMjYsNiBAQCBOU0Fy
cmF5ICpjb252ZXJ0VG9OU0FycmF5KGNvbnN0IFdlYkNvcmU6OkFYQ29yZU9iamVjdDo6QWNjZXNz
aWJpbGl0eUNoaWxkcmVuVmVjdAogCiAtIChBWENvcmVPYmplY3QqKWFjY2Vzc2liaWxpdHlPYmpl
Y3QKIHsKLSNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQotICAgIEFTU0VS
VCghX0FYVUlFbGVtZW50UmVxdWVzdFNlcnZpY2VkQnlTZWNvbmRhcnlBWFRocmVhZCgpKTsKLSNl
bmRpZgogICAgIHJldHVybiBtX29iamVjdDsKIH0KIApAQCAtNDcyLDUzICs0NjksNyBAQCBzdGF0
aWMgdm9pZCBjb252ZXJ0UGF0aFRvU2NyZWVuU3BhY2VGdW5jdGlvbihQYXRoQ29udmVyc2lvbklu
Zm8mIGNvbnZlcnNpb24sIGNvbgogCiAtIChOU1N0cmluZyAqKWFyaWFMYW5kbWFya1JvbGVEZXNj
cmlwdGlvbgogewotICAgIHN3aXRjaCAoX2F4QmFja2luZ09iamVjdC0+cm9sZVZhbHVlKCkpIHsK
LSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0Jhbm5lcjoKLSAgICAgICAgcmV0
dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBTGFuZG1hcmtCYW5uZXIiKTsKLSAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0NvbXBsZW1lbnRhcnk6Ci0gICAgICAgIHJl
dHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQUxhbmRtYXJrQ29tcGxlbWVudGFyeSIp
OwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29udGVudEluZm86Ci0gICAg
ICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQUxhbmRtYXJrQ29udGVudElu
Zm8iKTsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya01haW46Ci0gICAgICAg
IHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQUxhbmRtYXJrTWFpbiIpOwotICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrTmF2aWdhdGlvbjoKLSAgICAgICAgcmV0
dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBTGFuZG1hcmtOYXZpZ2F0aW9uIik7Ci0g
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtEb2NSZWdpb246Ci0gICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtSZWdpb246Ci0gICAgICAgIHJldHVybiBBWEFSSUFD
b250ZW50R3JvdXBUZXh0KEAiQVJJQUxhbmRtYXJrUmVnaW9uIik7Ci0gICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6TGFuZG1hcmtTZWFyY2g6Ci0gICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50
R3JvdXBUZXh0KEAiQVJJQUxhbmRtYXJrU2VhcmNoIik7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6QXBwbGljYXRpb25BbGVydDoKLSAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91
cFRleHQoQCJBUklBQXBwbGljYXRpb25BbGVydCIpOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkFwcGxpY2F0aW9uQWxlcnREaWFsb2c6Ci0gICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50
R3JvdXBUZXh0KEAiQVJJQUFwcGxpY2F0aW9uQWxlcnREaWFsb2ciKTsKLSAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkRpYWxvZzoKLSAgICAgICAgcmV0dXJuIEFYQVJJQUNv
bnRlbnRHcm91cFRleHQoQCJBUklBQXBwbGljYXRpb25EaWFsb2ciKTsKLSAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkxvZzoKLSAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRl
bnRHcm91cFRleHQoQCJBUklBQXBwbGljYXRpb25Mb2ciKTsKLSAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpBcHBsaWNhdGlvbk1hcnF1ZWU6Ci0gICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50
R3JvdXBUZXh0KEAiQVJJQUFwcGxpY2F0aW9uTWFycXVlZSIpOwotICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OkFwcGxpY2F0aW9uU3RhdHVzOgotICAgICAgICByZXR1cm4gQVhBUklBQ29udGVu
dEdyb3VwVGV4dChAIkFSSUFBcHBsaWNhdGlvblN0YXR1cyIpOwotICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OkFwcGxpY2F0aW9uVGltZXI6Ci0gICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50
R3JvdXBUZXh0KEAiQVJJQUFwcGxpY2F0aW9uVGltZXIiKTsKLSAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpEb2N1bWVudDoKLSAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQo
QCJBUklBRG9jdW1lbnQiKTsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudEFy
dGljbGU6Ci0gICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQURvY3Vt
ZW50QXJ0aWNsZSIpOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50TWF0aDoK
LSAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBRG9jdW1lbnRNYXRo
Iik7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnROb3RlOgotICAgICAgICBy
ZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFEb2N1bWVudE5vdGUiKTsKLSAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpVc2VySW50ZXJmYWNlVG9vbHRpcDoKLSAgICAgICAgcmV0
dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBVXNlckludGVyZmFjZVRvb2x0aXAiKTsK
LSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJQYW5lbDoKLSAgICAgICAgcmV0dXJuIEFY
QVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBVGFiUGFuZWwiKTsKLSAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpXZWJBcHBsaWNhdGlvbjoKLSAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRH
cm91cFRleHQoQCJBUklBV2ViQXBwbGljYXRpb24iKTsKLSAgICBkZWZhdWx0OgotICAgICAgICBy
ZXR1cm4gbmlsOwotICAgIH0KKyAgICByZXR1cm4gbV9vYmplY3QtPmFyaWFMYW5kbWFya1JvbGVE
ZXNjcmlwdGlvbigpOwogfQogCiAtICh2b2lkKWJhc2VBY2Nlc3NpYmlsaXR5U2V0Rm9jdXM6KEJP
T0wpZm9jdXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXggNjgw
ZDgwMDhhYjEzY2M4NTAxNzM5YmJmY2FmOGQwNDEyNzYwMzg4ZC4uNmQyZjFhMzUxNWI5Njg0NzFl
YzRjYTdkNWQ0MGI4N2M0Y2YwMDg2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJNYWMubW0KQEAgLTIwMzAsMTkyICsyMDMwLDE1IEBAIHN0YXRpYyB2b2lkIFdlYlRyYW5zZm9y
bUNHUGF0aFRvTlNCZXppZXJQYXRoKHZvaWQqIGluZm8sIGNvbnN0IENHUGF0aEVsZW1lbnQgKmVs
CiAgICAgcmV0dXJuIFtOU1ZhbHVlIHZhbHVlV2l0aFBvaW50Ok5TUG9pbnRGcm9tQ0dQb2ludChj
Z1BvaW50KV07CiB9CiAKLXVzaW5nIEFjY2Vzc2liaWxpdHlSb2xlTWFwID0gSGFzaE1hcDxpbnQs
IENGU3RyaW5nUmVmPjsKLQotc3RhdGljIEFjY2Vzc2liaWxpdHlSb2xlTWFwIGNyZWF0ZUFjY2Vz
c2liaWxpdHlSb2xlTWFwKCkKLXsKLSAgICBzdHJ1Y3QgUm9sZUVudHJ5IHsKLSAgICAgICAgQWNj
ZXNzaWJpbGl0eVJvbGUgdmFsdWU7Ci0gICAgICAgIF9fdW5zYWZlX3VucmV0YWluZWQgTlNTdHJp
bmcgKnN0cmluZzsKLSAgICB9OwotICAgIHN0YXRpYyBjb25zdCBSb2xlRW50cnkgcm9sZXNbXSA9
IHsKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6VW5rbm93biwgTlNBY2Nlc3NpYmlsaXR5
VW5rbm93blJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6QnV0dG9uLCBOU0Fj
Y2Vzc2liaWxpdHlCdXR0b25Sb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlJh
ZGlvQnV0dG9uLCBOU0FjY2Vzc2liaWxpdHlSYWRpb0J1dHRvblJvbGUgfSwKLSAgICAgICAgeyBB
Y2Nlc3NpYmlsaXR5Um9sZTo6Q2hlY2tCb3gsIE5TQWNjZXNzaWJpbGl0eUNoZWNrQm94Um9sZSB9
LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpTbGlkZXIsIE5TQWNjZXNzaWJpbGl0eVNs
aWRlclJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFiR3JvdXAsIE5TQWNj
ZXNzaWJpbGl0eVRhYkdyb3VwUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpU
ZXh0RmllbGQsIE5TQWNjZXNzaWJpbGl0eVRleHRGaWVsZFJvbGUgfSwKLSAgICAgICAgeyBBY2Nl
c3NpYmlsaXR5Um9sZTo6U3RhdGljVGV4dCwgTlNBY2Nlc3NpYmlsaXR5U3RhdGljVGV4dFJvbGUg
fSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6VGV4dEFyZWEsIE5TQWNjZXNzaWJpbGl0
eVRleHRBcmVhUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpTY3JvbGxBcmVh
LCBOU0FjY2Vzc2liaWxpdHlTY3JvbGxBcmVhUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxp
dHlSb2xlOjpQb3BVcEJ1dHRvbiwgTlNBY2Nlc3NpYmlsaXR5UG9wVXBCdXR0b25Sb2xlIH0sCi0g
ICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVCdXR0b24sIE5TQWNjZXNzaWJpbGl0eU1l
bnVCdXR0b25Sb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYmxlLCBOU0Fj
Y2Vzc2liaWxpdHlUYWJsZVJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBw
bGljYXRpb24sIE5TQWNjZXNzaWJpbGl0eUFwcGxpY2F0aW9uUm9sZSB9LAotICAgICAgICB7IEFj
Y2Vzc2liaWxpdHlSb2xlOjpHcm91cCwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAg
ICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlRleHRHcm91cCwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBS
b2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlJhZGlvR3JvdXAsIE5TQWNjZXNz
aWJpbGl0eVJhZGlvR3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Okxp
c3QsIE5TQWNjZXNzaWJpbGl0eUxpc3RSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJv
bGU6OkRpcmVjdG9yeSwgTlNBY2Nlc3NpYmlsaXR5TGlzdFJvbGUgfSwKLSAgICAgICAgeyBBY2Nl
c3NpYmlsaXR5Um9sZTo6U2Nyb2xsQmFyLCBOU0FjY2Vzc2liaWxpdHlTY3JvbGxCYXJSb2xlIH0s
Ci0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlZhbHVlSW5kaWNhdG9yLCBOU0FjY2Vzc2li
aWxpdHlWYWx1ZUluZGljYXRvclJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6
SW1hZ2UsIE5TQWNjZXNzaWJpbGl0eUltYWdlUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxp
dHlSb2xlOjpNZW51QmFyLCBOU0FjY2Vzc2liaWxpdHlNZW51QmFyUm9sZSB9LAotICAgICAgICB7
IEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51LCBOU0FjY2Vzc2liaWxpdHlNZW51Um9sZSB9LAotICAg
ICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51SXRlbSwgTlNBY2Nlc3NpYmlsaXR5TWVudUl0
ZW1Sb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVJdGVtQ2hlY2tib3gs
IE5TQWNjZXNzaWJpbGl0eU1lbnVJdGVtUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlS
b2xlOjpNZW51SXRlbVJhZGlvLCBOU0FjY2Vzc2liaWxpdHlNZW51SXRlbVJvbGUgfSwKLSAgICAg
ICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6Q29sdW1uLCBOU0FjY2Vzc2liaWxpdHlDb2x1bW5Sb2xl
IH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlJvdywgTlNBY2Nlc3NpYmlsaXR5Um93
Um9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpUb29sYmFyLCBOU0FjY2Vzc2li
aWxpdHlUb29sYmFyUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpCdXN5SW5k
aWNhdG9yLCBOU0FjY2Vzc2liaWxpdHlCdXN5SW5kaWNhdG9yUm9sZSB9LAotICAgICAgICB7IEFj
Y2Vzc2liaWxpdHlSb2xlOjpQcm9ncmVzc0luZGljYXRvciwgTlNBY2Nlc3NpYmlsaXR5UHJvZ3Jl
c3NJbmRpY2F0b3JSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Ok1ldGVyLCBO
U0FjY2Vzc2liaWxpdHlMZXZlbEluZGljYXRvclJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmls
aXR5Um9sZTo6V2luZG93LCBOU0FjY2Vzc2liaWxpdHlXaW5kb3dSb2xlIH0sCi0gICAgICAgIHsg
QWNjZXNzaWJpbGl0eVJvbGU6OkRyYXdlciwgTlNBY2Nlc3NpYmlsaXR5RHJhd2VyUm9sZSB9LAot
ICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpTeXN0ZW1XaWRlLCBOU0FjY2Vzc2liaWxpdHlT
eXN0ZW1XaWRlUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpPdXRsaW5lLCBO
U0FjY2Vzc2liaWxpdHlPdXRsaW5lUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xl
OjpJbmNyZW1lbnRvciwgTlNBY2Nlc3NpYmlsaXR5SW5jcmVtZW50b3JSb2xlIH0sCi0gICAgICAg
IHsgQWNjZXNzaWJpbGl0eVJvbGU6OkJyb3dzZXIsIE5TQWNjZXNzaWJpbGl0eUJyb3dzZXJSb2xl
IH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkNvbWJvQm94LCBOU0FjY2Vzc2liaWxp
dHlDb21ib0JveFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6U3BsaXRHcm91
cCwgTlNBY2Nlc3NpYmlsaXR5U3BsaXRHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmls
aXR5Um9sZTo6U3BsaXR0ZXIsIE5TQWNjZXNzaWJpbGl0eVNwbGl0dGVyUm9sZSB9LAotICAgICAg
ICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpDb2xvcldlbGwsIE5TQWNjZXNzaWJpbGl0eUNvbG9yV2Vs
bFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6R3Jvd0FyZWEsIE5TQWNjZXNz
aWJpbGl0eUdyb3dBcmVhUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpTaGVl
dCwgTlNBY2Nlc3NpYmlsaXR5U2hlZXRSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJv
bGU6OkhlbHBUYWcsIE5TQWNjZXNzaWJpbGl0eUhlbHBUYWdSb2xlIH0sCi0gICAgICAgIHsgQWNj
ZXNzaWJpbGl0eVJvbGU6Ok1hdHRlLCBOU0FjY2Vzc2liaWxpdHlNYXR0ZVJvbGUgfSwKLSAgICAg
ICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVsZXIsIE5TQWNjZXNzaWJpbGl0eVJ1bGVyUm9sZSB9
LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpSdWxlck1hcmtlciwgTlNBY2Nlc3NpYmls
aXR5UnVsZXJNYXJrZXJSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Okxpbmss
IE5TQWNjZXNzaWJpbGl0eUxpbmtSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6
OkRpc2Nsb3N1cmVUcmlhbmdsZSwgTlNBY2Nlc3NpYmlsaXR5RGlzY2xvc3VyZVRyaWFuZ2xlUm9s
ZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpHcmlkLCBOU0FjY2Vzc2liaWxpdHlU
YWJsZVJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZUdyaWQsIE5TQWNj
ZXNzaWJpbGl0eVRhYmxlUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpXZWJD
b3JlTGluaywgTlNBY2Nlc3NpYmlsaXR5TGlua1JvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmls
aXR5Um9sZTo6SW1hZ2VNYXBMaW5rLCBOU0FjY2Vzc2liaWxpdHlMaW5rUm9sZSB9LAotICAgICAg
ICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpJbWFnZU1hcCwgQCJBWEltYWdlTWFwIiB9LAotICAgICAg
ICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpMaXN0TWFya2VyLCBAIkFYTGlzdE1hcmtlciIgfSwKLSAg
ICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6V2ViQXJlYSwgQCJBWFdlYkFyZWEiIH0sCi0gICAg
ICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkhlYWRpbmcsIEAiQVhIZWFkaW5nIiB9LAotICAgICAg
ICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpMaXN0Qm94LCBOU0FjY2Vzc2liaWxpdHlMaXN0Um9sZSB9
LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpMaXN0Qm94T3B0aW9uLCBOU0FjY2Vzc2li
aWxpdHlTdGF0aWNUZXh0Um9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpDZWxs
LCBOU0FjY2Vzc2liaWxpdHlDZWxsUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xl
OjpHcmlkQ2VsbCwgTlNBY2Nlc3NpYmlsaXR5Q2VsbFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3Np
YmlsaXR5Um9sZTo6VGFibGVIZWFkZXJDb250YWluZXIsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9s
ZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpDb2x1bW5IZWFkZXIsIE5TQWNjZXNz
aWJpbGl0eUNlbGxSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlJvd0hlYWRl
ciwgTlNBY2Nlc3NpYmlsaXR5Q2VsbFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RGVmaW5pdGlvbiwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNj
ZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdERldGFpbCwgTlNBY2Nlc3NpYmlsaXR5R3Jv
dXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdFRl
cm0sIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlS
b2xlOjpUZXJtLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3Np
YmlsaXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0LCBOU0FjY2Vzc2liaWxpdHlMaXN0Um9sZSB9LAot
ICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpTbGlkZXJUaHVtYiwgTlNBY2Nlc3NpYmlsaXR5
VmFsdWVJbmRpY2F0b3JSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OldlYkFw
cGxpY2F0aW9uLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3Np
YmlsaXR5Um9sZTo6TGFuZG1hcmtCYW5uZXIsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAot
ICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0NvbXBsZW1lbnRhcnksIE5TQWNj
ZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5k
bWFya0RvY1JlZ2lvbiwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNj
ZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29udGVudEluZm8sIE5TQWNjZXNzaWJpbGl0eUdyb3Vw
Um9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya01haW4sIE5TQWNj
ZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5k
bWFya05hdmlnYXRpb24sIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFj
Y2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya1JlZ2lvbiwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xl
IH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrU2VhcmNoLCBOU0FjY2Vz
c2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGlj
YXRpb25BbGVydCwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNz
aWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uQWxlcnREaWFsb2csIE5TQWNjZXNzaWJpbGl0eUdyb3Vw
Um9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkRpYWxvZywg
TlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6
OkFwcGxpY2F0aW9uR3JvdXAsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7
IEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblRleHRHcm91cCwgTlNBY2Nlc3NpYmlsaXR5
R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uTG9n
LCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9s
ZTo6QXBwbGljYXRpb25NYXJxdWVlLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAg
ICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25TdGF0dXMsIE5TQWNjZXNzaWJpbGl0
eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblRp
bWVyLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5
Um9sZTo6RG9jdW1lbnQsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFj
Y2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudEFydGljbGUsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9s
ZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudE1hdGgsIE5TQWNjZXNz
aWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVu
dE5vdGUsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxp
dHlSb2xlOjpVc2VySW50ZXJmYWNlVG9vbHRpcCwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0s
Ci0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYiwgTlNBY2Nlc3NpYmlsaXR5UmFkaW9C
dXR0b25Sb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYkxpc3QsIE5TQWNj
ZXNzaWJpbGl0eVRhYkdyb3VwUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpU
YWJQYW5lbCwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJp
bGl0eVJvbGU6OlRyZWUsIE5TQWNjZXNzaWJpbGl0eU91dGxpbmVSb2xlIH0sCi0gICAgICAgIHsg
QWNjZXNzaWJpbGl0eVJvbGU6OlRyZWVJdGVtLCBOU0FjY2Vzc2liaWxpdHlSb3dSb2xlIH0sCi0g
ICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Okxpc3RJdGVtLCBOU0FjY2Vzc2liaWxpdHlHcm91
cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6UGFyYWdyYXBoLCBOU0FjY2Vz
c2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFiZWws
IE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xl
OjpEaXYsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxp
dHlSb2xlOjpGb3JtLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nl
c3NpYmlsaXR5Um9sZTo6U3BpbkJ1dHRvbiwgTlNBY2Nlc3NpYmlsaXR5SW5jcmVtZW50b3JSb2xl
IH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkZvb3RlciwgTlNBY2Nlc3NpYmlsaXR5
R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlRvZ2dsZUJ1dHRvbiwg
TlNBY2Nlc3NpYmlsaXR5Q2hlY2tCb3hSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJv
bGU6OkNhbnZhcywgTlNBY2Nlc3NpYmlsaXR5SW1hZ2VSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNz
aWJpbGl0eVJvbGU6OlNWR1Jvb3QsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAg
ICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpMZWdlbmQsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9
LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpNYXRoRWxlbWVudCwgTlNBY2Nlc3NpYmls
aXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkF1ZGlvLCBOU0Fj
Y2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6Vmlk
ZW8sIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlS
b2xlOjpIb3Jpem9udGFsUnVsZSwgTlNBY2Nlc3NpYmlsaXR5U3BsaXR0ZXJSb2xlIH0sCi0gICAg
ICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkJsb2NrcXVvdGUsIE5TQWNjZXNzaWJpbGl0eUdyb3Vw
Um9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpTd2l0Y2gsIE5TQWNjZXNzaWJp
bGl0eUNoZWNrQm94Um9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpTZWFyY2hG
aWVsZCwgTlNBY2Nlc3NpYmlsaXR5VGV4dEZpZWxkUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2li
aWxpdHlSb2xlOjpQcmUsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFj
Y2Vzc2liaWxpdHlSb2xlOjpSdWJ5QmFzZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0g
ICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlCbG9jaywgTlNBY2Nlc3NpYmlsaXR5R3Jv
dXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlJbmxpbmUsIE5TQWNj
ZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5
UnVuLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5
Um9sZTo6UnVieVRleHQsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFj
Y2Vzc2liaWxpdHlSb2xlOjpEZXRhaWxzLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAg
ICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6U3VtbWFyeSwgTlNBY2Nlc3NpYmlsaXR5QnV0dG9u
Um9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpTVkdUZXh0UGF0aCwgTlNBY2Nl
c3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlNWR1Rl
eHQsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlS
b2xlOjpTVkdUU3BhbiwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNj
ZXNzaWJpbGl0eVJvbGU6OklubGluZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAg
ICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Ok1hcmssIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9
LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpUaW1lLCBOU0FjY2Vzc2liaWxpdHlHcm91
cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6RmVlZCwgTlNBY2Nlc3NpYmls
aXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkZpZ3VyZSwgTlNB
Y2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkZv
b3Rub3RlLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmls
aXR5Um9sZTo6R3JhcGhpY3NEb2N1bWVudCwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0g
ICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNzT2JqZWN0LCBOU0FjY2Vzc2liaWxp
dHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JhcGhpY3NTeW1i
b2wsIE5TQWNjZXNzaWJpbGl0eUltYWdlUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlS
b2xlOjpDYXB0aW9uLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nl
c3NpYmlsaXR5Um9sZTo6RGVsZXRpb24sIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAg
ICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpJbnNlcnRpb24sIE5TQWNjZXNzaWJpbGl0eUdyb3Vw
Um9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpTdWJzY3JpcHQsIE5TQWNjZXNz
aWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpTdXBlcnNj
cmlwdCwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgfTsKLSAgICBBY2Nlc3NpYmls
aXR5Um9sZU1hcCByb2xlTWFwOwotICAgIGZvciAoYXV0byYgcm9sZSA6IHJvbGVzKQotICAgICAg
ICByb2xlTWFwLmFkZChzdGF0aWNfY2FzdDxpbnQ+KHJvbGUudmFsdWUpLCAoX19icmlkZ2UgQ0ZT
dHJpbmdSZWYpcm9sZS5zdHJpbmcpOwotICAgIHJldHVybiByb2xlTWFwOwotfQotCi1zdGF0aWMg
TlNTdHJpbmcgKnJvbGVWYWx1ZVRvTlNTdHJpbmcoQWNjZXNzaWJpbGl0eVJvbGUgdmFsdWUpCi17
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEFjY2Vzc2liaWxpdHlSb2xlTWFwPiByb2xlTWFw
ID0gY3JlYXRlQWNjZXNzaWJpbGl0eVJvbGVNYXAoKTsKLSAgICByZXR1cm4gKF9fYnJpZGdlIE5T
U3RyaW5nICopcm9sZU1hcC5nZXQoKS5nZXQoc3RhdGljX2Nhc3Q8aW50Pih2YWx1ZSkpOwotfQot
CiAtIChOU1N0cmluZyopcm9sZQogewogICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgaWYgKF9heEJhY2tpbmdPYmplY3QtPmlzQXR0YWNobWVudCgpKQogICAgICAg
ICByZXR1cm4gW1tzZWxmIGF0dGFjaG1lbnRWaWV3XSBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFs
dWU6TlNBY2Nlc3NpYmlsaXR5Um9sZUF0dHJpYnV0ZV07CiAgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECi0gICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9IF9heEJhY2tpbmdP
YmplY3QtPnJvbGVWYWx1ZSgpOwotCi0gICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6
OkxhYmVsICYmIGlzPEFjY2Vzc2liaWxpdHlMYWJlbD4oKm1fb2JqZWN0KSAmJiBkb3duY2FzdDxB
Y2Nlc3NpYmlsaXR5TGFiZWw+KCptX29iamVjdCkuY29udGFpbnNPbmx5U3RhdGljVGV4dCgpKQot
ICAgICAgICByb2xlID0gQWNjZXNzaWJpbGl0eVJvbGU6OlN0YXRpY1RleHQ7CiAKLSAgICAvLyBU
aGUgbWZlbmNlZCBlbGVtZW50IGNyZWF0ZXMgYW5vbnltb3VzIFJlbmRlck1hdGhNTE9wZXJhdG9y
cyB3aXRoIG5vIFJlbmRlclRleHQKLSAgICAvLyBkZXNjZW5kYW50cy4gQmVjYXVzZSB0aGVzZSBh
bm9ueW1vdXMgcmVuZGVyZXJzIGFyZSB0aGUgb25seSBhY2Nlc3NpYmxlIG9iamVjdHMKLSAgICAv
LyBjb250YWluaW5nIHRoZSBvcGVyYXRvciwgYXNzaWduIEFjY2Vzc2liaWxpdHlSb2xlOjpTdGF0
aWNUZXh0LgotICAgIGlmIChtX29iamVjdC0+aXNBbm9ueW1vdXNNYXRoT3BlcmF0b3IoKSkKLSAg
ICAgICAgcm9sZSA9IEFjY2Vzc2liaWxpdHlSb2xlOjpTdGF0aWNUZXh0OwotCi0gICAgaWYgKHJv
bGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkNhbnZhcyAmJiBtX29iamVjdC0+Y2FudmFzSGFzRmFs
bGJhY2tDb250ZW50KCkpCi0gICAgICAgIHJvbGUgPSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JvdXA7
Ci0gICAgTlNTdHJpbmcqIHN0cmluZyA9IHJvbGVWYWx1ZVRvTlNTdHJpbmcocm9sZSk7Ci0gICAg
aWYgKHN0cmluZyAhPSBuaWwpCisgICAgTlNTdHJpbmcqIHN0cmluZyA9IG1fb2JqZWN0LT5yb2xl
UGxhdGZvcm1TdHJpbmcoKTsKKyAgICBpZiAoc3RyaW5nLmxlbmd0aCkKICAgICAgICAgcmV0dXJu
IHN0cmluZzsKICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5VW5rbm93blJvbGU7CiB9CkBAIC0y
NDQ0LDExNSArMjI2NywxNSBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAg
ICAgICAgcmV0dXJuIFtbc2VsZiBhdHRhY2htZW50Vmlld10gYWNjZXNzaWJpbGl0eUF0dHJpYnV0
ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVJvbGVEZXNjcmlwdGlvbkF0dHJpYnV0ZV07CiAgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKLSAgICBjb25zdCBBdG9tU3RyaW5nJiBv
dmVycmlkZVJvbGVEZXNjcmlwdGlvbiA9IG1fb2JqZWN0LT5yb2xlRGVzY3JpcHRpb24oKTsKLSAg
ICBpZiAoIW92ZXJyaWRlUm9sZURlc2NyaXB0aW9uLmlzTnVsbCgpICYmICFvdmVycmlkZVJvbGVE
ZXNjcmlwdGlvbi5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBvdmVycmlkZVJvbGVEZXNjcmlw
dGlvbjsKLSAgICAKLSAgICBOU1N0cmluZyogYXhSb2xlID0gW3NlbGYgcm9sZV07Ci0gICAgCi0g
ICAgaWYgKFtheFJvbGUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZV0p
IHsKLSAgICAgICAgCi0gICAgICAgIGlmIChtX29iamVjdC0+aXNPdXRwdXQoKSkKLSAgICAgICAg
ICAgIHJldHVybiBBWE91dHB1dFRleHQoKTsKLSAgICAgICAgCi0gICAgICAgIE5TU3RyaW5nICph
cmlhTGFuZG1hcmtSb2xlRGVzY3JpcHRpb24gPSBbc2VsZiBhcmlhTGFuZG1hcmtSb2xlRGVzY3Jp
cHRpb25dOwotICAgICAgICBpZiAoYXJpYUxhbmRtYXJrUm9sZURlc2NyaXB0aW9uKQotICAgICAg
ICAgICAgcmV0dXJuIGFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbjsKLSAgICAgICAgCi0gICAg
ICAgIHN3aXRjaCAobV9vYmplY3QtPnJvbGVWYWx1ZSgpKSB7Ci0gICAgICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkF1ZGlvOgotICAgICAgICAgICAgcmV0dXJuIGxvY2FsaXplZE1lZGlhQ29u
dHJvbEVsZW1lbnRTdHJpbmcoIkF1ZGlvRWxlbWVudCIpOwotICAgICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpEZWZpbml0aW9uOgotICAgICAgICAgICAgcmV0dXJuIEFYRGVmaW5pdGlvblRl
eHQoKTsKLSAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0VGVy
bToKLSAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGVybToKLSAgICAgICAgICAgIHJl
dHVybiBBWERlc2NyaXB0aW9uTGlzdFRlcm1UZXh0KCk7Ci0gICAgICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdERldGFpbDoKLSAgICAgICAgICAgIHJldHVybiBBWERl
c2NyaXB0aW9uTGlzdERldGFpbFRleHQoKTsKLSAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RGV0YWlsczoKLSAgICAgICAgICAgIHJldHVybiBBWERldGFpbHNUZXh0KCk7Ci0gICAgICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkZlZWQ6Ci0gICAgICAgICAgICByZXR1cm4gQVhGZWVk
VGV4dCgpOwotICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGb290ZXI6Ci0gICAgICAg
ICAgICByZXR1cm4gQVhGb290ZXJSb2xlRGVzY3JpcHRpb25UZXh0KCk7Ci0gICAgICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6Ok1hcms6Ci0gICAgICAgICAgICByZXR1cm4gQVhNYXJrVGV4dCgp
OwotICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpWaWRlbzoKLSAgICAgICAgICAgIHJl
dHVybiBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKCJWaWRlb0VsZW1lbnQiKTsK
LSAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JhcGhpY3NEb2N1bWVudDoKLSAgICAg
ICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQURvY3VtZW50Iik7Ci0g
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5Um9sZURl
c2NyaXB0aW9uKE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSwgW3NlbGYgc3Vicm9sZV0pOwotICAg
ICAgICB9Ci0gICAgfQotICAgIAotICAgIGlmIChbYXhSb2xlIGlzRXF1YWxUb1N0cmluZzpAIkFY
V2ViQXJlYSJdKQotICAgICAgICByZXR1cm4gQVhXZWJBcmVhVGV4dCgpOwotICAgIAotICAgIGlm
IChbYXhSb2xlIGlzRXF1YWxUb1N0cmluZzpAIkFYTGluayJdKQotICAgICAgICByZXR1cm4gQVhM
aW5rVGV4dCgpOwotICAgIAotICAgIGlmIChbYXhSb2xlIGlzRXF1YWxUb1N0cmluZzpAIkFYTGlz
dE1hcmtlciJdKQotICAgICAgICByZXR1cm4gQVhMaXN0TWFya2VyVGV4dCgpOwotICAgIAotICAg
IGlmIChbYXhSb2xlIGlzRXF1YWxUb1N0cmluZzpAIkFYSW1hZ2VNYXAiXSkKLSAgICAgICAgcmV0
dXJuIEFYSW1hZ2VNYXBUZXh0KCk7Ci0gICAgCi0gICAgaWYgKFtheFJvbGUgaXNFcXVhbFRvU3Ry
aW5nOkAiQVhIZWFkaW5nIl0pCi0gICAgICAgIHJldHVybiBBWEhlYWRpbmdUZXh0KCk7Ci0gICAg
Ci0gICAgaWYgKFtheFJvbGUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVRleHRGaWVs
ZFJvbGVdKSB7Ci0gICAgICAgIGF1dG8qIG5vZGUgPSBtX29iamVjdC0+bm9kZSgpOwotICAgICAg
ICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4obm9kZSkpIHsKLSAgICAgICAgICAgIGF1dG8mIGlu
cHV0ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKm5vZGUpOwotICAgICAgICAgICAgaWYg
KGlucHV0LmlzRW1haWxGaWVsZCgpKQotICAgICAgICAgICAgICAgIHJldHVybiBBWEVtYWlsRmll
bGRUZXh0KCk7Ci0gICAgICAgICAgICBpZiAoaW5wdXQuaXNUZWxlcGhvbmVGaWVsZCgpKQotICAg
ICAgICAgICAgICAgIHJldHVybiBBWFRlbGVwaG9uZUZpZWxkVGV4dCgpOwotICAgICAgICAgICAg
aWYgKGlucHV0LmlzVVJMRmllbGQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gQVhVUkxGaWVs
ZFRleHQoKTsKLSAgICAgICAgICAgIGlmIChpbnB1dC5pc051bWJlckZpZWxkKCkpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIEFYTnVtYmVyRmllbGRUZXh0KCk7Ci0gICAgICAgICAgICAKLSAgICAg
ICAgICAgIC8vIFRoZXNlIGlucHV0IHR5cGVzIGFyZSBub3QgZW5hYmxlZCBvbiBtYWMgeWV0LCB3
ZSBjaGVjayB0aGUgdHlwZSBhdHRyaWJ1dGUgZm9yIG5vdy4KLSAgICAgICAgICAgIGF1dG8mIHR5
cGUgPSBpbnB1dC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHR5cGVBdHRyKTsKLSAg
ICAgICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBlLCAiZGF0ZSIp
KQotICAgICAgICAgICAgICAgIHJldHVybiBBWERhdGVGaWVsZFRleHQoKTsKLSAgICAgICAgICAg
IGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBlLCAidGltZSIpKQotICAgICAg
ICAgICAgICAgIHJldHVybiBBWFRpbWVGaWVsZFRleHQoKTsKLSAgICAgICAgICAgIGlmIChlcXVh
bExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBlLCAid2VlayIpKQotICAgICAgICAgICAgICAg
IHJldHVybiBBWFdlZWtGaWVsZFRleHQoKTsKLSAgICAgICAgICAgIGlmIChlcXVhbExldHRlcnNJ
Z25vcmluZ0FTQ0lJQ2FzZSh0eXBlLCAibW9udGgiKSkKLSAgICAgICAgICAgICAgICByZXR1cm4g
QVhNb250aEZpZWxkVGV4dCgpOwotICAgICAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5n
QVNDSUlDYXNlKHR5cGUsICJkYXRldGltZS1sb2NhbCIpKQotICAgICAgICAgICAgICAgIHJldHVy
biBBWERhdGVUaW1lRmllbGRUZXh0KCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgaWYg
KF9heEJhY2tpbmdPYmplY3QtPmlzRmlsZVVwbG9hZEJ1dHRvbigpKQotICAgICAgICByZXR1cm4g
QVhGaWxlVXBsb2FkQnV0dG9uVGV4dCgpOwotICAgIAotICAgIC8vIE9ubHkgcmV0dXJuaW5nIGZv
ciBETCAobm90IFVMIG9yIE9MKSBiZWNhdXNlIGRlc2NyaXB0aW9uIGNoYW5nZWQgd2l0aCBIVE1M
NSBmcm9tICdkZWZpbml0aW9uIGxpc3QnIHRvCi0gICAgLy8gc3VwZXJzZXQgJ2Rlc2NyaXB0aW9u
IGxpc3QnIGFuZCBkb2VzIG5vdCByZXR1cm4gdGhlIHNhbWUgdmFsdWVzIGluIEFYIEFQSSBvbiBz
b21lIE9TIHZlcnNpb25zLiAKLSAgICBpZiAoaXM8QWNjZXNzaWJpbGl0eUxpc3Q+KCptX29iamVj
dCkpIHsKLSAgICAgICAgaWYgKGRvd25jYXN0PEFjY2Vzc2liaWxpdHlMaXN0PigqbV9vYmplY3Qp
LmlzRGVzY3JpcHRpb25MaXN0KCkpCi0gICAgICAgICAgICByZXR1cm4gQVhEZXNjcmlwdGlvbkxp
c3RUZXh0KCk7Ci0gICAgfQotICAgIAotICAgIGlmIChtX29iamVjdC0+cm9sZVZhbHVlKCkgPT0g
QWNjZXNzaWJpbGl0eVJvbGU6Okhvcml6b250YWxSdWxlKQotICAgICAgICByZXR1cm4gQVhIb3Jp
em9udGFsUnVsZURlc2NyaXB0aW9uVGV4dCgpOwotICAgIAotICAgIC8vIEFwcEtpdCBhbHNvIHJl
dHVybnMgQVhUYWIgZm9yIHRoZSByb2xlIGRlc2NyaXB0aW9uIGZvciBhIHRhYiBpdGVtLgotICAg
IGlmIChtX29iamVjdC0+aXNUYWJJdGVtKCkpCi0gICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxp
dHlSb2xlRGVzY3JpcHRpb24oQCJBWFRhYiIsIG5pbCk7Ci0gICAgCi0gICAgaWYgKG1fb2JqZWN0
LT5pc1N1bW1hcnkoKSkKLSAgICAgICAgcmV0dXJuIEFYU3VtbWFyeVRleHQoKTsKLSAgICAKLSAg
ICAvLyBXZSBzaG91bGQgdHJ5IHRoZSBzeXN0ZW0gZGVmYXVsdCByb2xlIGRlc2NyaXB0aW9uIGZv
ciBhbGwgb3RoZXIgcm9sZXMuCisgICAgY29uc3QgU3RyaW5nIHJvbGVEZXNjcmlwdGlvbiA9IG1f
b2JqZWN0LT5yb2xlRGVzY3JpcHRpb24oKTsKKyAgICBpZiAoIXJvbGVEZXNjcmlwdGlvbi5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybiByb2xlRGVzY3JpcHRpb247CisKKyAgICBOU1N0cmluZyAq
YXhSb2xlID0gbV9vYmplY3QtPnJvbGVQbGF0Zm9ybVN0cmluZygpOworICAgIC8vIEZhbGxiYWNr
IHRvIHRoZSBzeXN0ZW0gZGVmYXVsdCByb2xlIGRlc2NyaXB0aW9uLgogICAgIC8vIElmIHdlIGdl
dCB0aGUgc2FtZSBzdHJpbmcgYmFjaywgdGhlbiBhcyBhIGxhc3QgcmVzb3J0LCByZXR1cm4gdW5r
bm93bi4KICAgICBOU1N0cmluZyogZGVmYXVsdFJvbGVEZXNjcmlwdGlvbiA9IE5TQWNjZXNzaWJp
bGl0eVJvbGVEZXNjcmlwdGlvbihheFJvbGUsIFtzZWxmIHN1YnJvbGVdKTsKLSAgICAKKwogICAg
IC8vIE9uIGVhcmxpZXIgTWFjIHZlcnNpb25zIChMaW9uKSwgdXNpbmcgYSBub24tc3RhbmRhcmQg
c3Vicm9sZSB3b3VsZCByZXN1bHQgaW4gYSByb2xlIGRlc2NyaXB0aW9uCiAgICAgLy8gYmVpbmcg
cmV0dXJuZWQgdGhhdCBsb29rZWQgbGlrZSBBWFJvbGU6QVhTdWJyb2xlLiBUbyBtYWtlIGFsbCBw
bGF0Zm9ybXMgaGF2ZSB0aGUgc2FtZSByb2xlIGRlc2NyaXB0aW9ucwogICAgIC8vIHdlIHNob3Vs
ZCBmYWxsYmFjayBvbiBhIHJvbGUgZGVzY3JpcHRpb24gaWdub3JpbmcgdGhlIHN1YnJvbGUgaW4g
dGhlc2UgY2FzZXMuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382924</attachid>
            <date>2019-11-06 06:49:39 -0800</date>
            <delta_ts>2019-11-07 05:22:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203863-20191106094938.patch</filename>
            <type>text/plain</type>
            <size>63151</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxOTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjM4MWRjYWU3ZTIzNmZi
MmJkOGEzYWI4NTFiODRkMjRkZDUzZjI3MC4uOTFjZTBmYzJhNjZlYjI2YmQ1ODIzYTk1NzViYjEw
OThjZGU3ZjJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDE5LTExLTA2ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQg
QVhJc29sYXRlZFRyZWVOb2RlOjpyb2xlRGVzY3JpcHRpb24uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM4NjMKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzU2OTM0NDQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyBuZWVkZWQsIG5vIG5ldyBmdW5jdGlvbmFsaXR5LgorCisgICAg
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGNhbm5vdCBjYWxsIGFueSBvZiB0aGUgQVgu
KlRleHQgZnVuY3Rpb25zIHRvCisgICAgICAgIHJldHJpZXZlIGxvY2FsaXplZCByb2xlIGRlc2Ny
aXB0aW9ucywgYmVjYXVzZSB3aGVuIHJ1bm5pbmcgb24gdGhlCisgICAgICAgIHNlY29uZGFyeSB0
aHJlYWQsIHRob3NlIEF0b21TdHJpbmdzIGFyZSBub3QgYWNjZXNzaWJsZS4gTW9yZW92ZXIsIHNv
bWUKKyAgICAgICAgb2YgdGhlIHNwZWNpYWwgY2FzZXMgcmVxdWlyZSBhY2Nlc3MgdG8gRE9NIG9i
amVjdHMgdGhhdCBhcmUgbm90CisgICAgICAgIGF2YWlsYWJsZSBpbiB0aGUgc2Vjb25kYXJ5IHRo
cmVhZC4gVGhlcmVmb3JlLCBhZGRlZAorICAgICAgICBBWENvcmVPYmplY3Q6OnJvbGVQbGF0Zm9y
bURlc2NyaXB0aW9uIHRoYXQgcnVucyBpbiB0aGUgbWFpbiB0aHJlYWQgdG8KKyAgICAgICAgaW5p
dGlhbGl6ZSB0aGUgY29ycmVzcG9uZGluZyBhdHRyaWJ1dGUgaW4gQVhJc29sYXRlZFRyZWVOb2Rl
LgorICAgICAgICByb2xlUGxhdGZvcm1TdHJpbmcsIGNyZWF0ZVBsYXRmb3JtUm9sZU1hcCwgcm9s
ZVRvUGxhdGZvcm1TdHJpbmcsCisgICAgICAgIGFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbiwg
YXJlIGhlbHBlciBmdW5jdGlvbnMuIFRoZSBwbGF0Zm9ybQorICAgICAgICBmdW5jdGlvbnMgYWxs
b3cgdG8gY3VzdG9taXplIHRoZSBiZWhhdmlvciBvZiByb2xlRGVzY3JpcHRpb24gaW4gZWFjaAor
ICAgICAgICBwbGF0Zm9ybS4gVGhlIHBsYXRmb3JtIG92ZXJyaWRlcyBhcmUgaW1wbGVtZW50ZWQg
Zm9yIG1hYy4gT3RoZXIKKyAgICAgICAgcGxhdGZvcm1zIGFyZSBwZW5kaW5nLgorCisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnJvbGVQbGF0Zm9ybVN0cmluZyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlUGxhdGZvcm1EZXNjcmlwdGlv
biBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphcmlhTGFu
ZG1hcmtSb2xlRGVzY3JpcHRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdDo6cm9sZURlc2NyaXB0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHk6OmNyZWF0ZVBsYXRmb3JtUm9sZU1hcCk6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5Ojpyb2xlVG9QbGF0Zm9ybVN0cmluZyk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZFRyZWVOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNv
bGF0ZWRUcmVlTm9kZTo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlTm9kZS5oOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlUGxhdGZvcm1TdHJpbmcgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6cm9sZVBsYXRmb3JtRGVzY3JpcHRp
b24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6Y3JlYXRlUGxhdGZv
cm1Sb2xlTWFwKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlckJhc2UubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyQmFzZSBhY2Nlc3NpYmlsaXR5T2JqZWN0XSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyQmFzZSBhcmlhTGFuZG1hcmtSb2xlRGVzY3JpcHRpb25dKTogSW1w
bGVtZW50YXRpb24gbW92ZWQgdG8gQWNjZXNzaWJpbGl0eU9iamVjdC4KKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAgICAg
ICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgcm9sZV0pOiBTcGVjaWFsIGNhc2Vz
IG1vdmVkIHRvIHJvbGVQbGF0Zm9ybVN0cmluZy4KKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXIgcm9sZURlc2NyaXB0aW9uXSk6CisgICAgICAgIChjcmVhdGVBY2Nlc3Np
YmlsaXR5Um9sZU1hcCk6IERlbGV0ZWQsIGJlY2FtZSBBY2Nlc3NpYmlsaXR5OjpjcmVhdGVQbGF0
Zm9ybVJvbGVNYXAuCisgICAgICAgIChyb2xlVmFsdWVUb05TU3RyaW5nKTogRGVsZXRlZCwgYmVj
YW1lIEFjY2Vzc2liaWxpdHk6OnJvbGVUb1BsYXRmb3JtU3RyaW5nLgorICAgICAgICAqIHBsYXRm
b3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhBUklBQ29udGVu
dEdyb3VwVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWEhvcml6b250YWxSdWxlRGVzY3JpcHRp
b25UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYTWFya1RleHQpOgorICAgICAgICAqIHBsYXRm
b3JtL0xvY2FsaXplZFN0cmluZ3MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6
ZWRTdHJpbmdzQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpBWEFSSUFDb250ZW50R3JvdXBU
ZXh0KTogRGVsZXRlZCwgbW92ZWQgdG8gTG9jYWxpemVkU3RyaW5ncy5jcHAuCisgICAgICAgIChX
ZWJDb3JlOjpBWEhvcml6b250YWxSdWxlRGVzY3JpcHRpb25UZXh0KTogRGVsZXRlZCwgbW92ZWQg
dG8gTG9jYWxpemVkU3RyaW5ncy5jcHAuCisgICAgICAgIChXZWJDb3JlOjpBWE1hcmtUZXh0KTog
RGVsZXRlZCwgbW92ZWQgdG8gTG9jYWxpemVkU3RyaW5ncy5jcHAuCisKIDIwMTktMTEtMDQgIHlv
dWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE9yZGVyIG9mIHBvc3RN
ZXNzYWdlIGFuZCBmZXRjaCBldmVudHMgc2hvdWxkIGJlIHByZXNlcnZlZCB3aGVuIGdvaW5nIGZy
b20gY2xpZW50IHRvIHNlcnZpY2Ugd29ya2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCAxY2E4MWU0MzkzMjRjNmJj
YWUwOTUwODFkMWZjNzFjMzU0YzY4Nzc5Li40NjFlNGJmYmMzZGFkZjAzMmE4ZGU3MzFiYzMyM2Vm
MDUxMmFlMDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTI2MDEsNiArMjYwMSw3MSBAQCBib29sIEFjY2Vzc2li
aWxpdHlPYmplY3Q6Omhhc0hpZ2hsaWdodGluZygpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCisjaWYgIVBMQVRGT1JNKE1BQykKK1N0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xl
UGxhdGZvcm1TdHJpbmcoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgaW4gb3Ro
ZXIgcGxhdGZvcm1zLgorICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFjY2Vzc2li
aWxpdHlPYmplY3Q6OnJvbGVQbGF0Zm9ybURlc2NyaXB0aW9uKCkgY29uc3QKK3sKKyAgICAvLyBG
SVhNRTogaW1wbGVtZW50IGluIG90aGVyIHBsYXRmb3Jtcy4KKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisjZW5kaWYKKworU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFyaWFMYW5kbWFya1Jv
bGVEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgc3dpdGNoIChyb2xlVmFsdWUoKSkgeworICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQmFubmVyOgorICAgICAgICByZXR1cm4g
QVhBUklBQ29udGVudEdyb3VwVGV4dCgiQVJJQUxhbmRtYXJrQmFubmVyIik7CisgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtDb21wbGVtZW50YXJ5OgorICAgICAgICByZXR1cm4g
QVhBUklBQ29udGVudEdyb3VwVGV4dCgiQVJJQUxhbmRtYXJrQ29tcGxlbWVudGFyeSIpOworICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29udGVudEluZm86CisgICAgICAgIHJl
dHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KCJBUklBTGFuZG1hcmtDb250ZW50SW5mbyIpOwor
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrTWFpbjoKKyAgICAgICAgcmV0dXJu
IEFYQVJJQUNvbnRlbnRHcm91cFRleHQoIkFSSUFMYW5kbWFya01haW4iKTsKKyAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya05hdmlnYXRpb246CisgICAgICAgIHJldHVybiBBWEFS
SUFDb250ZW50R3JvdXBUZXh0KCJBUklBTGFuZG1hcmtOYXZpZ2F0aW9uIik7CisgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtEb2NSZWdpb246CisgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6TGFuZG1hcmtSZWdpb246CisgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3Jv
dXBUZXh0KCJBUklBTGFuZG1hcmtSZWdpb24iKTsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpMYW5kbWFya1NlYXJjaDoKKyAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQo
IkFSSUFMYW5kbWFya1NlYXJjaCIpOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxp
Y2F0aW9uQWxlcnQ6CisgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KCJBUklB
QXBwbGljYXRpb25BbGVydCIpOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0
aW9uQWxlcnREaWFsb2c6CisgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KCJB
UklBQXBwbGljYXRpb25BbGVydERpYWxvZyIpOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkFwcGxpY2F0aW9uRGlhbG9nOgorICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4
dCgiQVJJQUFwcGxpY2F0aW9uRGlhbG9nIik7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
QXBwbGljYXRpb25Mb2c6CisgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KCJB
UklBQXBwbGljYXRpb25Mb2ciKTsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNh
dGlvbk1hcnF1ZWU6CisgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KCJBUklB
QXBwbGljYXRpb25NYXJxdWVlIik7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGlj
YXRpb25TdGF0dXM6CisgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KCJBUklB
QXBwbGljYXRpb25TdGF0dXMiKTsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNh
dGlvblRpbWVyOgorICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dCgiQVJJQUFw
cGxpY2F0aW9uVGltZXIiKTsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudDoK
KyAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoIkFSSUFEb2N1bWVudCIpOwor
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50QXJ0aWNsZToKKyAgICAgICAgcmV0
dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoIkFSSUFEb2N1bWVudEFydGljbGUiKTsKKyAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudE1hdGg6CisgICAgICAgIHJldHVybiBBWEFS
SUFDb250ZW50R3JvdXBUZXh0KCJBUklBRG9jdW1lbnRNYXRoIik7CisgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6RG9jdW1lbnROb3RlOgorICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdy
b3VwVGV4dCgiQVJJQURvY3VtZW50Tm90ZSIpOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OlVzZXJJbnRlcmZhY2VUb29sdGlwOgorICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3Vw
VGV4dCgiQVJJQVVzZXJJbnRlcmZhY2VUb29sdGlwIik7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6VGFiUGFuZWw6CisgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KCJB
UklBVGFiUGFuZWwiKTsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpXZWJBcHBsaWNhdGlv
bjoKKyAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoIkFSSUFXZWJBcHBsaWNh
dGlvbiIpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICB9Cit9
CisKIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlRGVzY3JpcHRpb24oKSBjb25zdAog
ewogICAgIC8vIGFyaWEtcm9sZWRlc2NyaXB0aW9uIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBhbnkg
b3RoZXIgcnVsZS4KQEAgLTI2MDgsNiArMjY3MywxMCBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9i
amVjdDo6cm9sZURlc2NyaXB0aW9uKCkgY29uc3QKICAgICBpZiAoIXJvbGVEZXNjcmlwdGlvbi5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybiByb2xlRGVzY3JpcHRpb247CiAKKyAgICByb2xlRGVz
Y3JpcHRpb24gPSByb2xlUGxhdGZvcm1EZXNjcmlwdGlvbigpOworICAgIGlmICghcm9sZURlc2Ny
aXB0aW9uLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHJvbGVEZXNjcmlwdGlvbjsKKwogICAg
IGlmIChyb2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6RmlndXJlKQogICAgICAgICBy
ZXR1cm4gQVhGaWd1cmVUZXh0KCk7CiAKQEAgLTM3NjYsNCArMzgzNSwxOSBAQCB2b2lkIEFjY2Vz
c2liaWxpdHlPYmplY3Q6OnNldElzSWdub3JlZEZyb21QYXJlbnREYXRhRm9yQ2hpbGQoQVhDb3Jl
T2JqZWN0KiBjaGlsZAogICAgIGNoaWxkLT5zZXRJc0lnbm9yZWRGcm9tUGFyZW50RGF0YShyZXN1
bHQpOwogfQogCituYW1lc3BhY2UgQWNjZXNzaWJpbGl0eSB7CisKKyNpZiAhUExBVEZPUk0oTUFD
KQorLy8gRklYTUU6IGltcGxlbWVudCBpbiBvdGhlciBwbGF0Zm9ybXMuCitQbGF0Zm9ybVJvbGVN
YXAgY3JlYXRlUGxhdGZvcm1Sb2xlTWFwKCkgeyByZXR1cm4gUGxhdGZvcm1Sb2xlTWFwKCk7IH0K
KyNlbmRpZgorCitTdHJpbmcgcm9sZVRvUGxhdGZvcm1TdHJpbmcoQWNjZXNzaWJpbGl0eVJvbGUg
cm9sZSkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UGxhdGZvcm1Sb2xlTWFwPiByb2xl
TWFwID0gY3JlYXRlUGxhdGZvcm1Sb2xlTWFwKCk7CisgICAgcmV0dXJuIHJvbGVNYXAtPmdldChz
dGF0aWNfY2FzdDx1bnNpZ25lZD4ocm9sZSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBBY2Nlc3Np
YmlsaXR5CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggYzk2ZjUwOGQwZDJkMjQ2
N2RhZmJjNzE1NzZhMDY3NWM4YWU5Yzg4OC4uOWZhOTJmOGY3ODM5Yjc4YmIzYzZkNDdiZDA1MTZm
ZWFiYzMxMTEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgKQEAgLTMyNiw3ICszMjYsNiBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
QXRvbVN0cmluZyYgaWRlbnRpZmllckF0dHJpYnV0ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGNv
bnN0IEF0b21TdHJpbmcmIGxpbmtSZWxWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQg
Y2xhc3NMaXN0KFZlY3RvcjxTdHJpbmc+JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgU3RyaW5nIHJv
bGVEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIEFjY2Vzc2liaWxpdHlDdXJyZW50
U3RhdGUgY3VycmVudFN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgU3RyaW5nIGN1cnJlbnRW
YWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgc3VwcG9ydHNDdXJyZW50KCkgY29uc3Qg
b3ZlcnJpZGU7CkBAIC00MjgsNiArNDI3LDkgQEAgcHVibGljOgogICAgIHZvaWQgY29sb3JWYWx1
ZShpbnQmIHIsIGludCYgZywgaW50JiBiKSBjb25zdCBvdmVycmlkZSB7IHIgPSAwOyBnID0gMDsg
YiA9IDA7IH0KIAogICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fcm9sZTsgfQorICAgIFN0cmluZyByb2xlUGxhdGZvcm1TdHJpbmcoKSBj
b25zdCBvdmVycmlkZTsKKyAgICBTdHJpbmcgcm9sZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgU3RyaW5nIGFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgQVhPYmplY3RDYWNoZSogYXhPYmplY3RDYWNoZSgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIEFYSUQgb2JqZWN0SUQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lkOyB9CkBA
IC03OTQsNiArNzk2LDcgQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyBib29sIGlzQWNjZXNzaWJp
bGl0eVRleHRTZWFyY2hNYXRjaChBWENvcmVPYmplY3QqLCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3Jp
dGVyaWEqKTsKICAgICBzdGF0aWMgYm9vbCBvYmplY3RNYXRjaGVzU2VhcmNoQ3JpdGVyaWFXaXRo
UmVzdWx0TGltaXQoQVhDb3JlT2JqZWN0KiwgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhKiwg
QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJik7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5
Um9sZSBidXR0b25Sb2xlVHlwZSgpIGNvbnN0OworICAgIFN0cmluZyByb2xlUGxhdGZvcm1EZXNj
cmlwdGlvbigpIGNvbnN0OwogICAgIGJvb2wgaXNPblNjcmVlbigpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGJvb2wgZGlzcGF0Y2hUb3VjaEV2ZW50KCk7CiAKQEAgLTgyOCw2ICs4MzEsMTUgQEAgaW5s
aW5lIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6dXBkYXRlQmFja2luZ1N0b3JlKCkgb3ZlcnJp
ZGUgeyB9CiAKIEFjY2Vzc2liaWxpdHlPYmplY3QqIGZpcnN0QWNjZXNzaWJsZU9iamVjdEZyb21O
b2RlKGNvbnN0IE5vZGUqLCBjb25zdCBXVEY6OkZ1bmN0aW9uPGJvb2woY29uc3QgQWNjZXNzaWJp
bGl0eU9iamVjdCYpPiYgaXNBY2Nlc3NpYmxlKTsKIAorbmFtZXNwYWNlIEFjY2Vzc2liaWxpdHkg
eworCit1c2luZyBQbGF0Zm9ybVJvbGVNYXAgPSBIYXNoTWFwPEFjY2Vzc2liaWxpdHlSb2xlLCBT
dHJpbmcsIERlZmF1bHRIYXNoPHVuc2lnbmVkPjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJv
S2V5SGFzaFRyYWl0czx1bnNpZ25lZD4+OworCitQbGF0Zm9ybVJvbGVNYXAgY3JlYXRlUGxhdGZv
cm1Sb2xlTWFwKCk7CitTdHJpbmcgcm9sZVRvUGxhdGZvcm1TdHJpbmcoQWNjZXNzaWJpbGl0eVJv
bGUpOworCit9IC8vIG5hbWVzcGFjZSBBY2Nlc3NpYmlsaXR5CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2RlZmluZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0FDQ0VTU0lCSUxJVFkoVG9W
YWx1ZVR5cGVOYW1lLCBwcmVkaWNhdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggMDZk
MDEyYTM4YzBkYTY4NGY1NTgwYmM3ZTI4ZDU1ZWE1ZTQ1ZGQ2MS4uNDBiY2YwOWM5Y2JjN2IyODZk
NmY4ZTE0MTRjOGZjMjY0Nzg3NmU0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTY2OSw3
ICs2NjksNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBBdG9tU3RyaW5nJiBpZGVudGlm
aWVyQXR0cmlidXRlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbVN0cmluZyYg
bGlua1JlbFZhbHVlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbGFzc0xpc3QoVmVj
dG9yPFN0cmluZz4mKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgcm9sZURlc2NyaXB0
aW9uKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eUN1cnJlbnRTdGF0ZSBj
dXJyZW50U3RhdGUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgY3VycmVudFZhbHVl
KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0N1cnJlbnQoKSBjb25zdCA9
IDA7CkBAIC03NjQsNiArNzYzLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY29sb3JW
YWx1ZShpbnQmIHIsIGludCYgZywgaW50JiBiKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIEFj
Y2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0ID0gMDsKKyAgICAvLyBOb24tbG9jYWxp
emVkIHN0cmluZyBhc3NvY2lhdGVkIHdpdGggdGhlIG9iamVjdCByb2xlLgorICAgIHZpcnR1YWwg
U3RyaW5nIHJvbGVQbGF0Zm9ybVN0cmluZygpIGNvbnN0ID0gMDsKKyAgICAvLyBMb2NhbGl6ZWQg
c3RyaW5nIHRoYXQgZGVzY3JpYmVzIHRoZSBvYmplY3QncyByb2xlLgorICAgIHZpcnR1YWwgU3Ry
aW5nIHJvbGVEZXNjcmlwdGlvbigpIGNvbnN0ID0gMDsKKyAgICAvLyBMb2NhbGl6ZWQgc3RyaW5n
IHRoYXQgZGVzY3JpYmVzIEFSSUEgbGFuZG1hcmsgcm9sZXMuCisgICAgdmlydHVhbCBTdHJpbmcg
YXJpYUxhbmRtYXJrUm9sZURlc2NyaXB0aW9uKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBB
WE9iamVjdENhY2hlKiBheE9iamVjdENhY2hlKCkgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZU5v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZFRyZWVOb2RlLmNwcAppbmRleCBjYWU4NzgzOGZiZDVkODI2YTljY2I0OTVmNDY2MDY1Mjg5
Mjk4ZTY0Li4zN2NmYWUyZjA2YjExMjVlMjk4YmM3ZTViYmM0MzExMTBiNjUwZWJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
VHJlZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRUcmVlTm9kZS5jcHAKQEAgLTU0LDYgKzU0LDkgQEAgQVhJc29sYXRlZFRy
ZWVOb2RlOjp+QVhJc29sYXRlZFRyZWVOb2RlKCkgPSBkZWZhdWx0Owogdm9pZCBBWElzb2xhdGVk
VHJlZU5vZGU6OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKGNvbnN0IEFYQ29yZU9iamVjdCYgb2Jq
ZWN0KQogewogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpSb2xlVmFsdWUsIHN0YXRp
Y19jYXN0PGludD4ob2JqZWN0LnJvbGVWYWx1ZSgpKSk7CisgICAgc2V0UHJvcGVydHkoQVhQcm9w
ZXJ0eU5hbWU6OlJvbGVQbGF0Zm9ybVN0cmluZywgb2JqZWN0LnJvbGVQbGF0Zm9ybVN0cmluZygp
Lmlzb2xhdGVkQ29weSgpKTsKKyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6QVJJQUxh
bmRtYXJrUm9sZURlc2NyaXB0aW9uLCBvYmplY3QuYXJpYUxhbmRtYXJrUm9sZURlc2NyaXB0aW9u
KCkuaXNvbGF0ZWRDb3B5KCkpOworICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpSb2xl
RGVzY3JpcHRpb24sIG9iamVjdC5yb2xlRGVzY3JpcHRpb24oKS5pc29sYXRlZENvcHkoKSk7CiAg
ICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzQXR0YWNobWVudCwgb2JqZWN0LmlzQXR0
YWNobWVudCgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNNZWRpYUNvbnRy
b2xMYWJlbCwgb2JqZWN0LmlzTWVkaWFDb250cm9sTGFiZWwoKSk7CiAgICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OklzTGluaywgb2JqZWN0LmlzTGluaygpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlTm9k
ZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWVOb2RlLmgKaW5kZXggMmNlMDA4ZmMwMGIzOGEyMWE5ZDRlMzkyNDkyMmE3ZjNmOGFhOTdi
Ny4uOWE0YTJiYTc0Yjg3MGI4ZDA1OTI5NzYwY2Q2YmQ5NGExNjEyMTllMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWVO
b2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZFRyZWVOb2RlLmgKQEAgLTU0LDkgKzU0LDE0IEBAIHB1YmxpYzoKICAgICBBWElEIG9i
amVjdElEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pZDsgfQogICAgIHZvaWQgaW5pdCgp
IG92ZXJyaWRlIHsgfQogCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIqIHdyYXBwZXIo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3dyYXBwZXIuZ2V0KCk7IH0KICAgICB2b2lkIGRl
dGFjaChBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUsIEFYT2JqZWN0Q2FjaGUqID0gbnVsbHB0
cikgb3ZlcnJpZGUgeyB9CiAgICAgYm9vbCBpc0RldGFjaGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gZmFsc2U7IH0KIAorICAgIHZvaWQgc2V0VHJlZUlkZW50aWZpZXIoQVhJc29sYXRlZFRy
ZWVJRCk7CisgICAgdm9pZCBzZXRQYXJlbnQoQVhJRCk7CisgICAgdm9pZCBhcHBlbmRDaGlsZChB
WElEKTsKKwogcHJpdmF0ZToKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eU9iamVjdCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTI1OSw3ICsyNjQs
NiBAQCBwcml2YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGlkZW50aWZpZXJBdHRyaWJ1dGUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxsQXRvbSgpOyB9CiAgICAgY29uc3QgQXRvbVN0
cmluZyYgbGlua1JlbFZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbEF0b20oKTsg
fQogICAgIHZvaWQgY2xhc3NMaXN0KFZlY3RvcjxTdHJpbmc+JikgY29uc3Qgb3ZlcnJpZGUgeyB9
Ci0gICAgU3RyaW5nIHJvbGVEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFN0
cmluZygpOyB9CiAgICAgQWNjZXNzaWJpbGl0eUN1cnJlbnRTdGF0ZSBjdXJyZW50U3RhdGUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBBY2Nlc3NpYmlsaXR5Q3VycmVudFN0YXRlOjpGYWxzZTsg
fQogICAgIFN0cmluZyBjdXJyZW50VmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTdHJp
bmcoKTsgfQogICAgIGJvb2wgc3VwcG9ydHNDdXJyZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gZmFsc2U7IH0KQEAgLTM0Myw2ICszNDcsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgY29sb3JW
YWx1ZShpbnQmLCBpbnQmLCBpbnQmKSBjb25zdCBvdmVycmlkZSB7IH0KIAogICAgIEFjY2Vzc2li
aWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0YXRpY19jYXN0
PEFjY2Vzc2liaWxpdHlSb2xlPihpbnRBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6Um9s
ZVZhbHVlKSk7IH0KKyAgICBTdHJpbmcgcm9sZVBsYXRmb3JtU3RyaW5nKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlJvbGVQbGF0
Zm9ybVN0cmluZyk7IH0KKyAgICBTdHJpbmcgcm9sZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlJvbGVEZXNj
cmlwdGlvbik7IH0KKyAgICBTdHJpbmcgYXJpYUxhbmRtYXJrUm9sZURlc2NyaXB0aW9uKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6
OkFSSUFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbik7IH0KIAogICAgIEFYT2JqZWN0Q2FjaGUqIGF4
T2JqZWN0Q2FjaGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CiAKQEAgLTU5
MCw3ICs1OTcsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNET01IaWRkZW4oKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNIaWRkZW4oKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIqIHdy
YXBwZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3dyYXBwZXIuZ2V0KCk7IH0KICAgICB2
b2lkIHNldFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIqIHdyYXBwZXIpIG92ZXJy
aWRlIHsgbV93cmFwcGVyID0gd3JhcHBlcjsgfQogCiAgICAgdm9pZCBvdmVycmlkZUF0dGFjaG1l
bnRQYXJlbnQoQVhDb3JlT2JqZWN0Kikgb3ZlcnJpZGUgeyB9CkBAIC02MzEsMTEgKzYzNyw2IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBjbGVhcklzSWdub3JlZEZyb21QYXJlbnREYXRhKCkgb3ZlcnJp
ZGUgeyB9CiAgICAgdm9pZCBzZXRJc0lnbm9yZWRGcm9tUGFyZW50RGF0YUZvckNoaWxkKEFYQ29y
ZU9iamVjdCopIG92ZXJyaWRlIHsgfQogCi0gICAgdm9pZCBzZXRUcmVlSWRlbnRpZmllcihBWElz
b2xhdGVkVHJlZUlEKTsKLSAgICBBWElzb2xhdGVkVHJlZSogdHJlZSgpIGNvbnN0OwotICAgIHZv
aWQgc2V0UGFyZW50KEFYSUQpOwotICAgIHZvaWQgYXBwZW5kQ2hpbGQoQVhJRCk7Ci0KICAgICBl
bnVtIGNsYXNzIEFYUHJvcGVydHlOYW1lIDogdWludDhfdCB7CiAgICAgICAgIE5vbmUgPSAwLAog
ICAgICAgICBIZWxwVGV4dCwKQEAgLTY1Miw2ICs2NTMsOSBAQCBwcml2YXRlOgogICAgICAgICBE
ZXNjcmlwdGlvbiwKICAgICAgICAgUmVsYXRpdmVGcmFtZSwKICAgICAgICAgUm9sZVZhbHVlLAor
ICAgICAgICBSb2xlUGxhdGZvcm1TdHJpbmcsCisgICAgICAgIFJvbGVEZXNjcmlwdGlvbiwKKyAg
ICAgICAgQVJJQUxhbmRtYXJrUm9sZURlc2NyaXB0aW9uLAogICAgICAgICBTcGVlY2hIaW50LAog
ICAgICAgICBUaXRsZSwKICAgICB9OwpAQCAtNjU5LDYgKzY2Myw3IEBAIHByaXZhdGU6CiAgICAg
QVhJRCBwYXJlbnQoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudDsgfQogCiAgICAgQVhJc29sYXRl
ZFRyZWVJRCB0cmVlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fdHJlZUlkZW50aWZpZXI7
IH0KKyAgICBBWElzb2xhdGVkVHJlZSogdHJlZSgpIGNvbnN0OwogCiAgICAgQVhJc29sYXRlZFRy
ZWVOb2RlKCkgPSBkZWZhdWx0OwogICAgIEFYSXNvbGF0ZWRUcmVlTm9kZShjb25zdCBBWENvcmVP
YmplY3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0Fj
Y2Vzc2liaWxpdHlPYmplY3RNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCmluZGV4IDJjZGJjNzNhYjg5OGJmYjVjMzJlZWZl
YjVjN2RhYmM0NjYyMTlhODIuLmI5OGY2MDkwYTlhNTZhNjM5ODkzYWUzNWM3NmY1NmMyNzYyMDBl
N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2li
aWxpdHlPYmplY3RNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
QWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQpAQCAtMjUsOCArMjUsMTIgQEAKIAogI2ltcG9ydCAi
Y29uZmlnLmgiCiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW1wb3J0ICJBY2Nl
c3NpYmlsaXR5TGFiZWwuaCIKKyNpbXBvcnQgIkFjY2Vzc2liaWxpdHlMaXN0LmgiCiAjaW1wb3J0
ICJFbGVtZW50QW5jZXN0b3JJdGVyYXRvci5oIgogI2ltcG9ydCAiSFRNTEZpZWxkU2V0RWxlbWVu
dC5oIgorI2ltcG9ydCAiSFRNTElucHV0RWxlbWVudC5oIgorI2ltcG9ydCAiTG9jYWxpemVkU3Ry
aW5ncy5oIgogI2ltcG9ydCAiUmVuZGVyT2JqZWN0LmgiCiAjaW1wb3J0ICJTZXR0aW5ncy5oIgog
CkBAIC0xMjgsNiArMTMyLDI5MCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNldENhcmV0
QnJvd3NpbmdFbmFibGVkKGJvb2wgb24pCiAgICAgZnJhbWUtPnNldHRpbmdzKCkuc2V0Q2FyZXRC
cm93c2luZ0VuYWJsZWQob24pOwogfQogCitTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6cm9s
ZVBsYXRmb3JtU3RyaW5nKCkgY29uc3QKK3sKKyAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlID0g
cm9sZVZhbHVlKCk7CisKKyAgICAvLyBJZiBpdCBpcyBhIGxhYmVsIHdpdGgganVzdCBzdGF0aWMg
dGV4dCBvciBhbiBhbm9ueW1vdXMgbWF0aCBvcGVyYXRvciwgcmVtYXAgcm9sZSB0byBTdGF0aWNU
ZXh0LgorICAgIC8vIFRoZSBtZmVuY2VkIGVsZW1lbnQgY3JlYXRlcyBhbm9ueW1vdXMgUmVuZGVy
TWF0aE1MT3BlcmF0b3JzIHdpdGggbm8gUmVuZGVyVGV4dAorICAgIC8vIGRlc2NlbmRhbnRzLiBU
aGVzZSBhbm9ueW1vdXMgcmVuZGVyZXJzIGFyZSB0aGUgb25seSBhY2Nlc3NpYmxlIG9iamVjdHMK
KyAgICAvLyBjb250YWluaW5nIHRoZSBvcGVyYXRvci4KKyAgICBpZiAoKHJvbGUgPT0gQWNjZXNz
aWJpbGl0eVJvbGU6OkxhYmVsICYmIGlzPEFjY2Vzc2liaWxpdHlMYWJlbD4oKnRoaXMpICYmIGRv
d25jYXN0PEFjY2Vzc2liaWxpdHlMYWJlbD4oKnRoaXMpLmNvbnRhaW5zT25seVN0YXRpY1RleHQo
KSkKKyAgICAgICAgfHwgaXNBbm9ueW1vdXNNYXRoT3BlcmF0b3IoKSkKKyAgICAgICAgcm9sZSA9
IEFjY2Vzc2liaWxpdHlSb2xlOjpTdGF0aWNUZXh0OworICAgIGVsc2UgaWYgKHJvbGUgPT0gQWNj
ZXNzaWJpbGl0eVJvbGU6OkNhbnZhcyAmJiBjYW52YXNIYXNGYWxsYmFja0NvbnRlbnQoKSkKKyAg
ICAgICAgcm9sZSA9IEFjY2Vzc2liaWxpdHlSb2xlOjpHcm91cDsKKworICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5Ojpyb2xlVG9QbGF0Zm9ybVN0cmluZyhyb2xlKTsKK30KKworU3RyaW5nIEFjY2Vz
c2liaWxpdHlPYmplY3Q6OnJvbGVQbGF0Zm9ybURlc2NyaXB0aW9uKCkgY29uc3QKK3sKKyAgICBB
Y2Nlc3NpYmlsaXR5Um9sZSByb2xlID0gcm9sZVZhbHVlKCk7CisgICAgTlNTdHJpbmcgKmF4Um9s
ZSA9IHJvbGVQbGF0Zm9ybVN0cmluZygpOworCisgICAgaWYgKFtheFJvbGUgaXNFcXVhbFRvU3Ry
aW5nOk5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZV0pIHsKKyAgICAgICAgaWYgKGlzT3V0cHV0KCkp
CisgICAgICAgICAgICByZXR1cm4gQVhPdXRwdXRUZXh0KCk7CisKKyAgICAgICAgU3RyaW5nIGFy
aWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbiA9IHRoaXMtPmFyaWFMYW5kbWFya1JvbGVEZXNjcmlw
dGlvbigpOworICAgICAgICBpZiAoIWFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbi5pc0VtcHR5
KCkpCisgICAgICAgICAgICByZXR1cm4gYXJpYUxhbmRtYXJrUm9sZURlc2NyaXB0aW9uOworCisg
ICAgICAgIHN3aXRjaCAocm9sZSkgeworICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpB
dWRpbzoKKyAgICAgICAgICAgIHJldHVybiBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3Ry
aW5nKCJBdWRpb0VsZW1lbnQiKTsKKyAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVm
aW5pdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBBWERlZmluaXRpb25UZXh0KCk7CisgICAgICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdFRlcm06CisgICAgICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRlcm06CisgICAgICAgICAgICByZXR1cm4gQVhEZXNjcmlw
dGlvbkxpc3RUZXJtVGV4dCgpOworICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNj
cmlwdGlvbkxpc3REZXRhaWw6CisgICAgICAgICAgICByZXR1cm4gQVhEZXNjcmlwdGlvbkxpc3RE
ZXRhaWxUZXh0KCk7CisgICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRldGFpbHM6Cisg
ICAgICAgICAgICByZXR1cm4gQVhEZXRhaWxzVGV4dCgpOworICAgICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpGZWVkOgorICAgICAgICAgICAgcmV0dXJuIEFYRmVlZFRleHQoKTsKKyAgICAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Rm9vdGVyOgorICAgICAgICAgICAgcmV0dXJuIEFY
Rm9vdGVyUm9sZURlc2NyaXB0aW9uVGV4dCgpOworICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpNYXJrOgorICAgICAgICAgICAgcmV0dXJuIEFYTWFya1RleHQoKTsKKyAgICAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VmlkZW86CisgICAgICAgICAgICByZXR1cm4gbG9jYWxpemVk
TWVkaWFDb250cm9sRWxlbWVudFN0cmluZygiVmlkZW9FbGVtZW50Iik7CisgICAgICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNzRG9jdW1lbnQ6CisgICAgICAgICAgICByZXR1cm4g
QVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFEb2N1bWVudCIpOworICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICB9CisgICAgfQorCisgICAg
aWYgKFtheFJvbGUgaXNFcXVhbFRvU3RyaW5nOkAiQVhXZWJBcmVhIl0pCisgICAgICAgIHJldHVy
biBBWFdlYkFyZWFUZXh0KCk7CisKKyAgICBpZiAoW2F4Um9sZSBpc0VxdWFsVG9TdHJpbmc6QCJB
WExpbmsiXSkKKyAgICAgICAgcmV0dXJuIEFYTGlua1RleHQoKTsKKworICAgIGlmIChbYXhSb2xl
IGlzRXF1YWxUb1N0cmluZzpAIkFYTGlzdE1hcmtlciJdKQorICAgICAgICByZXR1cm4gQVhMaXN0
TWFya2VyVGV4dCgpOworCisgICAgaWYgKFtheFJvbGUgaXNFcXVhbFRvU3RyaW5nOkAiQVhJbWFn
ZU1hcCJdKQorICAgICAgICByZXR1cm4gQVhJbWFnZU1hcFRleHQoKTsKKworICAgIGlmIChbYXhS
b2xlIGlzRXF1YWxUb1N0cmluZzpAIkFYSGVhZGluZyJdKQorICAgICAgICByZXR1cm4gQVhIZWFk
aW5nVGV4dCgpOworCisgICAgaWYgKFtheFJvbGUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJp
bGl0eVRleHRGaWVsZFJvbGVdKSB7CisgICAgICAgIGF1dG8qIG5vZGUgPSB0aGlzLT5ub2RlKCk7
CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pihub2RlKSkgeworICAgICAgICAgICAg
YXV0byYgaW5wdXQgPSBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pigqbm9kZSk7CisgICAgICAg
ICAgICBpZiAoaW5wdXQuaXNFbWFpbEZpZWxkKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEFY
RW1haWxGaWVsZFRleHQoKTsKKyAgICAgICAgICAgIGlmIChpbnB1dC5pc1RlbGVwaG9uZUZpZWxk
KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEFYVGVsZXBob25lRmllbGRUZXh0KCk7CisgICAg
ICAgICAgICBpZiAoaW5wdXQuaXNVUkxGaWVsZCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBB
WFVSTEZpZWxkVGV4dCgpOworICAgICAgICAgICAgaWYgKGlucHV0LmlzTnVtYmVyRmllbGQoKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gQVhOdW1iZXJGaWVsZFRleHQoKTsKKworICAgICAgICAg
ICAgLy8gVGhlc2UgaW5wdXQgdHlwZXMgYXJlIG5vdCBlbmFibGVkIG9uIG1hYyB5ZXQsIHdlIGNo
ZWNrIHRoZSB0eXBlIGF0dHJpYnV0ZSBmb3Igbm93LgorICAgICAgICAgICAgYXV0byYgdHlwZSA9
IGlucHV0LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjp0eXBlQXR0
cik7CisgICAgICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodHlwZSwg
ImRhdGUiKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gQVhEYXRlRmllbGRUZXh0KCk7CisgICAg
ICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodHlwZSwgInRpbWUiKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gQVhUaW1lRmllbGRUZXh0KCk7CisgICAgICAgICAgICBp
ZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodHlwZSwgIndlZWsiKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gQVhXZWVrRmllbGRUZXh0KCk7CisgICAgICAgICAgICBpZiAoZXF1YWxM
ZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodHlwZSwgIm1vbnRoIikpCisgICAgICAgICAgICAgICAg
cmV0dXJuIEFYTW9udGhGaWVsZFRleHQoKTsKKyAgICAgICAgICAgIGlmIChlcXVhbExldHRlcnNJ
Z25vcmluZ0FTQ0lJQ2FzZSh0eXBlLCAiZGF0ZXRpbWUtbG9jYWwiKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gQVhEYXRlVGltZUZpZWxkVGV4dCgpOworICAgICAgICB9CisgICAgfQorCisgICAg
aWYgKGlzRmlsZVVwbG9hZEJ1dHRvbigpKQorICAgICAgICByZXR1cm4gQVhGaWxlVXBsb2FkQnV0
dG9uVGV4dCgpOworCisgICAgLy8gT25seSByZXR1cm5pbmcgZm9yIERMIChub3QgVUwgb3IgT0wp
IGJlY2F1c2UgZGVzY3JpcHRpb24gY2hhbmdlZCB3aXRoIEhUTUw1IGZyb20gJ2RlZmluaXRpb24g
bGlzdCcgdG8KKyAgICAvLyBzdXBlcnNldCAnZGVzY3JpcHRpb24gbGlzdCcgYW5kIGRvZXMgbm90
IHJldHVybiB0aGUgc2FtZSB2YWx1ZXMgaW4gQVggQVBJIG9uIHNvbWUgT1MgdmVyc2lvbnMuCisg
ICAgaWYgKGlzPEFjY2Vzc2liaWxpdHlMaXN0PigqdGhpcykpIHsKKyAgICAgICAgaWYgKGRvd25j
YXN0PEFjY2Vzc2liaWxpdHlMaXN0PigqdGhpcykuaXNEZXNjcmlwdGlvbkxpc3QoKSkKKyAgICAg
ICAgICAgIHJldHVybiBBWERlc2NyaXB0aW9uTGlzdFRleHQoKTsKKyAgICB9CisKKyAgICBpZiAo
cm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SG9yaXpvbnRhbFJ1bGUpCisgICAgICAgIHJldHVy
biBBWEhvcml6b250YWxSdWxlRGVzY3JpcHRpb25UZXh0KCk7CisKKyAgICAvLyBBcHBLaXQgYWxz
byByZXR1cm5zIEFYVGFiIGZvciB0aGUgcm9sZSBkZXNjcmlwdGlvbiBmb3IgYSB0YWIgaXRlbS4K
KyAgICBpZiAoaXNUYWJJdGVtKCkpCisgICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlSb2xl
RGVzY3JpcHRpb24oQCJBWFRhYiIsIG5pbCk7CisKKyAgICBpZiAoaXNTdW1tYXJ5KCkpCisgICAg
ICAgIHJldHVybiBBWFN1bW1hcnlUZXh0KCk7CisKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisK
K25hbWVzcGFjZSBBY2Nlc3NpYmlsaXR5IHsKKworUGxhdGZvcm1Sb2xlTWFwIGNyZWF0ZVBsYXRm
b3JtUm9sZU1hcCgpCit7CisgICAgc3RydWN0IFJvbGVFbnRyeSB7CisgICAgICAgIEFjY2Vzc2li
aWxpdHlSb2xlIHZhbHVlOworICAgICAgICBOU1N0cmluZyAqc3RyaW5nOworICAgIH07CisgICAg
c3RhdGljIGNvbnN0IFJvbGVFbnRyeSByb2xlc1tdID0geworICAgICAgICB7IEFjY2Vzc2liaWxp
dHlSb2xlOjpVbmtub3duLCBOU0FjY2Vzc2liaWxpdHlVbmtub3duUm9sZSB9LAorICAgICAgICB7
IEFjY2Vzc2liaWxpdHlSb2xlOjpCdXR0b24sIE5TQWNjZXNzaWJpbGl0eUJ1dHRvblJvbGUgfSwK
KyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6UmFkaW9CdXR0b24sIE5TQWNjZXNzaWJpbGl0
eVJhZGlvQnV0dG9uUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpDaGVja0Jv
eCwgTlNBY2Nlc3NpYmlsaXR5Q2hlY2tCb3hSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0
eVJvbGU6OlNsaWRlciwgTlNBY2Nlc3NpYmlsaXR5U2xpZGVyUm9sZSB9LAorICAgICAgICB7IEFj
Y2Vzc2liaWxpdHlSb2xlOjpUYWJHcm91cCwgTlNBY2Nlc3NpYmlsaXR5VGFiR3JvdXBSb2xlIH0s
CisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlRleHRGaWVsZCwgTlNBY2Nlc3NpYmlsaXR5
VGV4dEZpZWxkUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpTdGF0aWNUZXh0
LCBOU0FjY2Vzc2liaWxpdHlTdGF0aWNUZXh0Um9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxp
dHlSb2xlOjpUZXh0QXJlYSwgTlNBY2Nlc3NpYmlsaXR5VGV4dEFyZWFSb2xlIH0sCisgICAgICAg
IHsgQWNjZXNzaWJpbGl0eVJvbGU6OlNjcm9sbEFyZWEsIE5TQWNjZXNzaWJpbGl0eVNjcm9sbEFy
ZWFSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlBvcFVwQnV0dG9uLCBOU0Fj
Y2Vzc2liaWxpdHlQb3BVcEJ1dHRvblJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9s
ZTo6TWVudUJ1dHRvbiwgTlNBY2Nlc3NpYmlsaXR5TWVudUJ1dHRvblJvbGUgfSwKKyAgICAgICAg
eyBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFibGUsIE5TQWNjZXNzaWJpbGl0eVRhYmxlUm9sZSB9LAor
ICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbiwgTlNBY2Nlc3NpYmlsaXR5
QXBwbGljYXRpb25Sb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Okdyb3VwLCBO
U0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6
VGV4dEdyb3VwLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3Np
YmlsaXR5Um9sZTo6UmFkaW9Hcm91cCwgTlNBY2Nlc3NpYmlsaXR5UmFkaW9Hcm91cFJvbGUgfSwK
KyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdCwgTlNBY2Nlc3NpYmlsaXR5TGlzdFJv
bGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6RGlyZWN0b3J5LCBOU0FjY2Vzc2li
aWxpdHlMaXN0Um9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpTY3JvbGxCYXIs
IE5TQWNjZXNzaWJpbGl0eVNjcm9sbEJhclJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5
Um9sZTo6VmFsdWVJbmRpY2F0b3IsIE5TQWNjZXNzaWJpbGl0eVZhbHVlSW5kaWNhdG9yUm9sZSB9
LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpJbWFnZSwgTlNBY2Nlc3NpYmlsaXR5SW1h
Z2VSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVCYXIsIE5TQWNjZXNz
aWJpbGl0eU1lbnVCYXJSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnUs
IE5TQWNjZXNzaWJpbGl0eU1lbnVSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6
Ok1lbnVJdGVtLCBOU0FjY2Vzc2liaWxpdHlNZW51SXRlbVJvbGUgfSwKKyAgICAgICAgeyBBY2Nl
c3NpYmlsaXR5Um9sZTo6TWVudUl0ZW1DaGVja2JveCwgTlNBY2Nlc3NpYmlsaXR5TWVudUl0ZW1S
b2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVJdGVtUmFkaW8sIE5TQWNj
ZXNzaWJpbGl0eU1lbnVJdGVtUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpD
b2x1bW4sIE5TQWNjZXNzaWJpbGl0eUNvbHVtblJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmls
aXR5Um9sZTo6Um93LCBOU0FjY2Vzc2liaWxpdHlSb3dSb2xlIH0sCisgICAgICAgIHsgQWNjZXNz
aWJpbGl0eVJvbGU6OlRvb2xiYXIsIE5TQWNjZXNzaWJpbGl0eVRvb2xiYXJSb2xlIH0sCisgICAg
ICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkJ1c3lJbmRpY2F0b3IsIE5TQWNjZXNzaWJpbGl0eUJ1
c3lJbmRpY2F0b3JSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlByb2dyZXNz
SW5kaWNhdG9yLCBOU0FjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvclJvbGUgfSwKKyAgICAg
ICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TWV0ZXIsIE5TQWNjZXNzaWJpbGl0eUxldmVsSW5kaWNh
dG9yUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpXaW5kb3csIE5TQWNjZXNz
aWJpbGl0eVdpbmRvd1JvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6RHJhd2Vy
LCBOU0FjY2Vzc2liaWxpdHlEcmF3ZXJSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJv
bGU6OlN5c3RlbVdpZGUsIE5TQWNjZXNzaWJpbGl0eVN5c3RlbVdpZGVSb2xlIH0sCisgICAgICAg
IHsgQWNjZXNzaWJpbGl0eVJvbGU6Ok91dGxpbmUsIE5TQWNjZXNzaWJpbGl0eU91dGxpbmVSb2xl
IH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkluY3JlbWVudG9yLCBOU0FjY2Vzc2li
aWxpdHlJbmNyZW1lbnRvclJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6QnJv
d3NlciwgTlNBY2Nlc3NpYmlsaXR5QnJvd3NlclJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmls
aXR5Um9sZTo6Q29tYm9Cb3gsIE5TQWNjZXNzaWJpbGl0eUNvbWJvQm94Um9sZSB9LAorICAgICAg
ICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpTcGxpdEdyb3VwLCBOU0FjY2Vzc2liaWxpdHlTcGxpdEdy
b3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpTcGxpdHRlciwgTlNBY2Nl
c3NpYmlsaXR5U3BsaXR0ZXJSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkNv
bG9yV2VsbCwgTlNBY2Nlc3NpYmlsaXR5Q29sb3JXZWxsUm9sZSB9LAorICAgICAgICB7IEFjY2Vz
c2liaWxpdHlSb2xlOjpHcm93QXJlYSwgTlNBY2Nlc3NpYmlsaXR5R3Jvd0FyZWFSb2xlIH0sCisg
ICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlNoZWV0LCBOU0FjY2Vzc2liaWxpdHlTaGVldFJv
bGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6SGVscFRhZywgTlNBY2Nlc3NpYmls
aXR5SGVscFRhZ1JvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TWF0dGUsIE5T
QWNjZXNzaWJpbGl0eU1hdHRlUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpS
dWxlciwgTlNBY2Nlc3NpYmlsaXR5UnVsZXJSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0
eVJvbGU6OlJ1bGVyTWFya2VyLCBOU0FjY2Vzc2liaWxpdHlSdWxlck1hcmtlclJvbGUgfSwKKyAg
ICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TGluaywgTlNBY2Nlc3NpYmlsaXR5TGlua1JvbGUg
fSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6RGlzY2xvc3VyZVRyaWFuZ2xlLCBOU0Fj
Y2Vzc2liaWxpdHlEaXNjbG9zdXJlVHJpYW5nbGVSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJp
bGl0eVJvbGU6OkdyaWQsIE5TQWNjZXNzaWJpbGl0eVRhYmxlUm9sZSB9LAorICAgICAgICB7IEFj
Y2Vzc2liaWxpdHlSb2xlOjpUcmVlR3JpZCwgTlNBY2Nlc3NpYmlsaXR5VGFibGVSb2xlIH0sCisg
ICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OldlYkNvcmVMaW5rLCBOU0FjY2Vzc2liaWxpdHlM
aW5rUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpJbWFnZU1hcExpbmssIE5T
QWNjZXNzaWJpbGl0eUxpbmtSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Oklt
YWdlTWFwLCBAIkFYSW1hZ2VNYXAiIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Okxp
c3RNYXJrZXIsIEAiQVhMaXN0TWFya2VyIiB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xl
OjpXZWJBcmVhLCBAIkFYV2ViQXJlYSIgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6
SGVhZGluZywgQCJBWEhlYWRpbmciIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Okxp
c3RCb3gsIE5TQWNjZXNzaWJpbGl0eUxpc3RSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0
eVJvbGU6Okxpc3RCb3hPcHRpb24sIE5TQWNjZXNzaWJpbGl0eVN0YXRpY1RleHRSb2xlIH0sCisg
ICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkNlbGwsIE5TQWNjZXNzaWJpbGl0eUNlbGxSb2xl
IH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkdyaWRDZWxsLCBOU0FjY2Vzc2liaWxp
dHlDZWxsUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJsZUhlYWRlckNv
bnRhaW5lciwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJp
bGl0eVJvbGU6OkNvbHVtbkhlYWRlciwgTlNBY2Nlc3NpYmlsaXR5Q2VsbFJvbGUgfSwKKyAgICAg
ICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6Um93SGVhZGVyLCBOU0FjY2Vzc2liaWxpdHlDZWxsUm9s
ZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpEZWZpbml0aW9uLCBOU0FjY2Vzc2li
aWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRp
b25MaXN0RGV0YWlsLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nl
c3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0VGVybSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBS
b2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlRlcm0sIE5TQWNjZXNzaWJpbGl0
eUdyb3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxp
c3QsIE5TQWNjZXNzaWJpbGl0eUxpc3RSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJv
bGU6OlNsaWRlclRodW1iLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUluZGljYXRvclJvbGUgfSwKKyAg
ICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6V2ViQXBwbGljYXRpb24sIE5TQWNjZXNzaWJpbGl0
eUdyb3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0Jhbm5l
ciwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJv
bGU6OkxhbmRtYXJrQ29tcGxlbWVudGFyeSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisg
ICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrRG9jUmVnaW9uLCBOU0FjY2Vzc2li
aWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtD
b250ZW50SW5mbywgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNz
aWJpbGl0eVJvbGU6OkxhbmRtYXJrTWFpbiwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisg
ICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrTmF2aWdhdGlvbiwgTlNBY2Nlc3Np
YmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJr
UmVnaW9uLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmls
aXR5Um9sZTo6TGFuZG1hcmtTZWFyY2gsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAg
ICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFsZXJ0LCBOU0FjY2Vzc2liaWxp
dHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25B
bGVydERpYWxvZywgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNz
aWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uRGlhbG9nLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUg
fSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25Hcm91cCwgTlNBY2Nl
c3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxp
Y2F0aW9uVGV4dEdyb3VwLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBB
Y2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25Mb2csIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9s
ZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbk1hcnF1ZWUsIE5T
QWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpB
cHBsaWNhdGlvblN0YXR1cywgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsg
QWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uVGltZXIsIE5TQWNjZXNzaWJpbGl0eUdyb3Vw
Um9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudCwgTlNBY2Nlc3Np
YmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50
QXJ0aWNsZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJp
bGl0eVJvbGU6OkRvY3VtZW50TWF0aCwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAg
ICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50Tm90ZSwgTlNBY2Nlc3NpYmlsaXR5R3Jv
dXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlVzZXJJbnRlcmZhY2VUb29s
dGlwLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5
Um9sZTo6VGFiLCBOU0FjY2Vzc2liaWxpdHlSYWRpb0J1dHRvblJvbGUgfSwKKyAgICAgICAgeyBB
Y2Nlc3NpYmlsaXR5Um9sZTo6VGFiTGlzdCwgTlNBY2Nlc3NpYmlsaXR5VGFiR3JvdXBSb2xlIH0s
CisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYlBhbmVsLCBOU0FjY2Vzc2liaWxpdHlH
cm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZSwgTlNBY2Nlc3Np
YmlsaXR5T3V0bGluZVJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZUl0
ZW0sIE5TQWNjZXNzaWJpbGl0eVJvd1JvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9s
ZTo6TGlzdEl0ZW0sIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vz
c2liaWxpdHlSb2xlOjpQYXJhZ3JhcGgsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAg
ICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpMYWJlbCwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xl
IH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkRpdiwgTlNBY2Nlc3NpYmlsaXR5R3Jv
dXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkZvcm0sIE5TQWNjZXNzaWJp
bGl0eUdyb3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpTcGluQnV0dG9u
LCBOU0FjY2Vzc2liaWxpdHlJbmNyZW1lbnRvclJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmls
aXR5Um9sZTo6Rm9vdGVyLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBB
Y2Nlc3NpYmlsaXR5Um9sZTo6VG9nZ2xlQnV0dG9uLCBOU0FjY2Vzc2liaWxpdHlDaGVja0JveFJv
bGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2FudmFzLCBOU0FjY2Vzc2liaWxp
dHlJbWFnZVJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6U1ZHUm9vdCwgTlNB
Y2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Okxl
Z2VuZCwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0
eVJvbGU6Ok1hdGhFbGVtZW50LCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAg
eyBBY2Nlc3NpYmlsaXR5Um9sZTo6QXVkaW8sIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAor
ICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpWaWRlbywgTlNBY2Nlc3NpYmlsaXR5R3JvdXBS
b2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Okhvcml6b250YWxSdWxlLCBOU0Fj
Y2Vzc2liaWxpdHlTcGxpdHRlclJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6
QmxvY2txdW90ZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNz
aWJpbGl0eVJvbGU6OlN3aXRjaCwgTlNBY2Nlc3NpYmlsaXR5Q2hlY2tCb3hSb2xlIH0sCisgICAg
ICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlNlYXJjaEZpZWxkLCBOU0FjY2Vzc2liaWxpdHlUZXh0
RmllbGRSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlByZSwgTlNBY2Nlc3Np
YmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlCYXNl
LCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9s
ZTo6UnVieUJsb2NrLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nl
c3NpYmlsaXR5Um9sZTo6UnVieUlubGluZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisg
ICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlSdW4sIE5TQWNjZXNzaWJpbGl0eUdyb3Vw
Um9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5VGV4dCwgTlNBY2Nlc3Np
YmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkRldGFpbHMs
IE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xl
OjpTdW1tYXJ5LCBOU0FjY2Vzc2liaWxpdHlCdXR0b25Sb2xlIH0sCisgICAgICAgIHsgQWNjZXNz
aWJpbGl0eVJvbGU6OlNWR1RleHRQYXRoLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAg
ICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6U1ZHVGV4dCwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBS
b2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlNWR1RTcGFuLCBOU0FjY2Vzc2li
aWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6SW5saW5lLCBO
U0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6
TWFyaywgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0
eVJvbGU6OlRpbWUsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vz
c2liaWxpdHlSb2xlOjpGZWVkLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAg
eyBBY2Nlc3NpYmlsaXR5Um9sZTo6RmlndXJlLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwK
KyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6Rm9vdG5vdGUsIE5TQWNjZXNzaWJpbGl0eUdy
b3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpHcmFwaGljc0RvY3VtZW50
LCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9s
ZTo6R3JhcGhpY3NPYmplY3QsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAgICAgICB7
IEFjY2Vzc2liaWxpdHlSb2xlOjpHcmFwaGljc1N5bWJvbCwgTlNBY2Nlc3NpYmlsaXR5SW1hZ2VS
b2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkNhcHRpb24sIE5TQWNjZXNzaWJp
bGl0eUdyb3VwUm9sZSB9LAorICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpEZWxldGlvbiwg
TlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6
Okluc2VydGlvbiwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgQWNjZXNz
aWJpbGl0eVJvbGU6OlN1YnNjcmlwdCwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAg
ICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlN1cGVyc2NyaXB0LCBOU0FjY2Vzc2liaWxpdHlHcm91
cFJvbGUgfSwKKyAgICB9OworICAgIFBsYXRmb3JtUm9sZU1hcCByb2xlTWFwOworICAgIGZvciAo
YXV0byYgcm9sZSA6IHJvbGVzKQorICAgICAgICByb2xlTWFwLmFkZChzdGF0aWNfY2FzdDx1bnNp
Z25lZD4ocm9sZS52YWx1ZSksIHJvbGUuc3RyaW5nKTsKKyAgICByZXR1cm4gcm9sZU1hcDsKK30K
KworfSAvLyBuYW1lc3BhY2UgQWNjZXNzaWJpbGl0eQorCiB9IC8vIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlckJhc2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KaW5kZXggZjBmZWEyMzhmMDEwMWE1MzZiNGE2Nzkw
YWY3MjlkMzkyYjRmYWE1Ni4uNGY5YjRkOTg2MzhmZDUxN2U3NmM5YThmMGZlOWRmNjBjZDkxMWNh
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbQpAQCAtMzI2LDkg
KzMyNiw2IEBAIE5TQXJyYXkgKmNvbnZlcnRUb05TQXJyYXkoY29uc3QgV2ViQ29yZTo6QVhDb3Jl
T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0CiAKIC0gKEFYQ29yZU9iamVjdCopYWNj
ZXNzaWJpbGl0eU9iamVjdAogewotI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RS
RUUpCi0gICAgQVNTRVJUKCFfQVhVSUVsZW1lbnRSZXF1ZXN0U2VydmljZWRCeVNlY29uZGFyeUFY
VGhyZWFkKCkpOwotI2VuZGlmCiAgICAgcmV0dXJuIG1fb2JqZWN0OwogfQogCkBAIC00NzIsNTMg
KzQ2OSw3IEBAIHN0YXRpYyB2b2lkIGNvbnZlcnRQYXRoVG9TY3JlZW5TcGFjZUZ1bmN0aW9uKFBh
dGhDb252ZXJzaW9uSW5mbyYgY29udmVyc2lvbiwgY29uCiAKIC0gKE5TU3RyaW5nICopYXJpYUxh
bmRtYXJrUm9sZURlc2NyaXB0aW9uCiB7Ci0gICAgc3dpdGNoIChfYXhCYWNraW5nT2JqZWN0LT5y
b2xlVmFsdWUoKSkgewotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQmFubmVy
OgotICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFMYW5kbWFya0Jh
bm5lciIpOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29tcGxlbWVudGFy
eToKLSAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBTGFuZG1hcmtD
b21wbGVtZW50YXJ5Iik7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtDb250
ZW50SW5mbzoKLSAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBTGFu
ZG1hcmtDb250ZW50SW5mbyIpOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJr
TWFpbjoKLSAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBTGFuZG1h
cmtNYWluIik7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtOYXZpZ2F0aW9u
OgotICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFMYW5kbWFya05h
dmlnYXRpb24iKTsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0RvY1JlZ2lv
bjoKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya1JlZ2lvbjoKLSAgICAgICAg
cmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBTGFuZG1hcmtSZWdpb24iKTsKLSAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya1NlYXJjaDoKLSAgICAgICAgcmV0dXJu
IEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBTGFuZG1hcmtTZWFyY2giKTsKLSAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFsZXJ0OgotICAgICAgICByZXR1cm4gQVhB
UklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFBcHBsaWNhdGlvbkFsZXJ0Iik7Ci0gICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25BbGVydERpYWxvZzoKLSAgICAgICAgcmV0dXJu
IEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBQXBwbGljYXRpb25BbGVydERpYWxvZyIpOwot
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uRGlhbG9nOgotICAgICAgICBy
ZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFBcHBsaWNhdGlvbkRpYWxvZyIpOwot
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uTG9nOgotICAgICAgICByZXR1
cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFBcHBsaWNhdGlvbkxvZyIpOwotICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uTWFycXVlZToKLSAgICAgICAgcmV0dXJu
IEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBQXBwbGljYXRpb25NYXJxdWVlIik7Ci0gICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25TdGF0dXM6Ci0gICAgICAgIHJldHVy
biBBWEFSSUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQUFwcGxpY2F0aW9uU3RhdHVzIik7Ci0gICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25UaW1lcjoKLSAgICAgICAgcmV0dXJu
IEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBQXBwbGljYXRpb25UaW1lciIpOwotICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50OgotICAgICAgICByZXR1cm4gQVhBUklBQ29u
dGVudEdyb3VwVGV4dChAIkFSSUFEb2N1bWVudCIpOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkRvY3VtZW50QXJ0aWNsZToKLSAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRl
eHQoQCJBUklBRG9jdW1lbnRBcnRpY2xlIik7Ci0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
RG9jdW1lbnRNYXRoOgotICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFS
SUFEb2N1bWVudE1hdGgiKTsKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudE5v
dGU6Ci0gICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQURvY3VtZW50
Tm90ZSIpOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlVzZXJJbnRlcmZhY2VUb29sdGlw
OgotICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFVc2VySW50ZXJm
YWNlVG9vbHRpcCIpOwotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYlBhbmVsOgotICAg
ICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFUYWJQYW5lbCIpOwotICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OldlYkFwcGxpY2F0aW9uOgotICAgICAgICByZXR1cm4g
QVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFXZWJBcHBsaWNhdGlvbiIpOwotICAgIGRlZmF1
bHQ6Ci0gICAgICAgIHJldHVybiBuaWw7Ci0gICAgfQorICAgIHJldHVybiBtX29iamVjdC0+YXJp
YUxhbmRtYXJrUm9sZURlc2NyaXB0aW9uKCk7CiB9CiAKIC0gKHZvaWQpYmFzZUFjY2Vzc2liaWxp
dHlTZXRGb2N1czooQk9PTClmb2N1cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1h
Yy5tbQppbmRleCA2ODBkODAwOGFiMTNjYzg1MDE3MzliYmZjYWY4ZDA0MTI3NjAzODhkLi5lOWY1
ZjdlNDMzODIyODJmZjg1NTcyOGY5NzVlYjUxMzJjZWJlNjkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMjAzMCwxOTIgKzIwMzAsMTUgQEAgc3RhdGljIHZv
aWQgV2ViVHJhbnNmb3JtQ0dQYXRoVG9OU0JlemllclBhdGgodm9pZCogaW5mbywgY29uc3QgQ0dQ
YXRoRWxlbWVudCAqZWwKICAgICByZXR1cm4gW05TVmFsdWUgdmFsdWVXaXRoUG9pbnQ6TlNQb2lu
dEZyb21DR1BvaW50KGNnUG9pbnQpXTsKIH0KIAotdXNpbmcgQWNjZXNzaWJpbGl0eVJvbGVNYXAg
PSBIYXNoTWFwPGludCwgQ0ZTdHJpbmdSZWY+OwotCi1zdGF0aWMgQWNjZXNzaWJpbGl0eVJvbGVN
YXAgY3JlYXRlQWNjZXNzaWJpbGl0eVJvbGVNYXAoKQotewotICAgIHN0cnVjdCBSb2xlRW50cnkg
ewotICAgICAgICBBY2Nlc3NpYmlsaXR5Um9sZSB2YWx1ZTsKLSAgICAgICAgX191bnNhZmVfdW5y
ZXRhaW5lZCBOU1N0cmluZyAqc3RyaW5nOwotICAgIH07Ci0gICAgc3RhdGljIGNvbnN0IFJvbGVF
bnRyeSByb2xlc1tdID0gewotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpVbmtub3duLCBO
U0FjY2Vzc2liaWxpdHlVbmtub3duUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xl
OjpCdXR0b24sIE5TQWNjZXNzaWJpbGl0eUJ1dHRvblJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3Np
YmlsaXR5Um9sZTo6UmFkaW9CdXR0b24sIE5TQWNjZXNzaWJpbGl0eVJhZGlvQnV0dG9uUm9sZSB9
LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpDaGVja0JveCwgTlNBY2Nlc3NpYmlsaXR5
Q2hlY2tCb3hSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlNsaWRlciwgTlNB
Y2Nlc3NpYmlsaXR5U2xpZGVyUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpU
YWJHcm91cCwgTlNBY2Nlc3NpYmlsaXR5VGFiR3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNz
aWJpbGl0eVJvbGU6OlRleHRGaWVsZCwgTlNBY2Nlc3NpYmlsaXR5VGV4dEZpZWxkUm9sZSB9LAot
ICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpTdGF0aWNUZXh0LCBOU0FjY2Vzc2liaWxpdHlT
dGF0aWNUZXh0Um9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpUZXh0QXJlYSwg
TlNBY2Nlc3NpYmlsaXR5VGV4dEFyZWFSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJv
bGU6OlNjcm9sbEFyZWEsIE5TQWNjZXNzaWJpbGl0eVNjcm9sbEFyZWFSb2xlIH0sCi0gICAgICAg
IHsgQWNjZXNzaWJpbGl0eVJvbGU6OlBvcFVwQnV0dG9uLCBOU0FjY2Vzc2liaWxpdHlQb3BVcEJ1
dHRvblJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUJ1dHRvbiwgTlNB
Y2Nlc3NpYmlsaXR5TWVudUJ1dHRvblJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9s
ZTo6VGFibGUsIE5TQWNjZXNzaWJpbGl0eVRhYmxlUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2li
aWxpdHlSb2xlOjpBcHBsaWNhdGlvbiwgTlNBY2Nlc3NpYmlsaXR5QXBwbGljYXRpb25Sb2xlIH0s
Ci0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Okdyb3VwLCBOU0FjY2Vzc2liaWxpdHlHcm91
cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6VGV4dEdyb3VwLCBOU0FjY2Vz
c2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6UmFkaW9H
cm91cCwgTlNBY2Nlc3NpYmlsaXR5UmFkaW9Hcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3Np
YmlsaXR5Um9sZTo6TGlzdCwgTlNBY2Nlc3NpYmlsaXR5TGlzdFJvbGUgfSwKLSAgICAgICAgeyBB
Y2Nlc3NpYmlsaXR5Um9sZTo6RGlyZWN0b3J5LCBOU0FjY2Vzc2liaWxpdHlMaXN0Um9sZSB9LAot
ICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpTY3JvbGxCYXIsIE5TQWNjZXNzaWJpbGl0eVNj
cm9sbEJhclJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6VmFsdWVJbmRpY2F0
b3IsIE5TQWNjZXNzaWJpbGl0eVZhbHVlSW5kaWNhdG9yUm9sZSB9LAotICAgICAgICB7IEFjY2Vz
c2liaWxpdHlSb2xlOjpJbWFnZSwgTlNBY2Nlc3NpYmlsaXR5SW1hZ2VSb2xlIH0sCi0gICAgICAg
IHsgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVCYXIsIE5TQWNjZXNzaWJpbGl0eU1lbnVCYXJSb2xl
IH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnUsIE5TQWNjZXNzaWJpbGl0eU1l
bnVSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVJdGVtLCBOU0FjY2Vz
c2liaWxpdHlNZW51SXRlbVJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVu
dUl0ZW1DaGVja2JveCwgTlNBY2Nlc3NpYmlsaXR5TWVudUl0ZW1Sb2xlIH0sCi0gICAgICAgIHsg
QWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVJdGVtUmFkaW8sIE5TQWNjZXNzaWJpbGl0eU1lbnVJdGVt
Um9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpDb2x1bW4sIE5TQWNjZXNzaWJp
bGl0eUNvbHVtblJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6Um93LCBOU0Fj
Y2Vzc2liaWxpdHlSb3dSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlRvb2xi
YXIsIE5TQWNjZXNzaWJpbGl0eVRvb2xiYXJSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0
eVJvbGU6OkJ1c3lJbmRpY2F0b3IsIE5TQWNjZXNzaWJpbGl0eUJ1c3lJbmRpY2F0b3JSb2xlIH0s
Ci0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlByb2dyZXNzSW5kaWNhdG9yLCBOU0FjY2Vz
c2liaWxpdHlQcm9ncmVzc0luZGljYXRvclJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5
Um9sZTo6TWV0ZXIsIE5TQWNjZXNzaWJpbGl0eUxldmVsSW5kaWNhdG9yUm9sZSB9LAotICAgICAg
ICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpXaW5kb3csIE5TQWNjZXNzaWJpbGl0eVdpbmRvd1JvbGUg
fSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6RHJhd2VyLCBOU0FjY2Vzc2liaWxpdHlE
cmF3ZXJSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlN5c3RlbVdpZGUsIE5T
QWNjZXNzaWJpbGl0eVN5c3RlbVdpZGVSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJv
bGU6Ok91dGxpbmUsIE5TQWNjZXNzaWJpbGl0eU91dGxpbmVSb2xlIH0sCi0gICAgICAgIHsgQWNj
ZXNzaWJpbGl0eVJvbGU6OkluY3JlbWVudG9yLCBOU0FjY2Vzc2liaWxpdHlJbmNyZW1lbnRvclJv
bGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6QnJvd3NlciwgTlNBY2Nlc3NpYmls
aXR5QnJvd3NlclJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6Q29tYm9Cb3gs
IE5TQWNjZXNzaWJpbGl0eUNvbWJvQm94Um9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlS
b2xlOjpTcGxpdEdyb3VwLCBOU0FjY2Vzc2liaWxpdHlTcGxpdEdyb3VwUm9sZSB9LAotICAgICAg
ICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpTcGxpdHRlciwgTlNBY2Nlc3NpYmlsaXR5U3BsaXR0ZXJS
b2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkNvbG9yV2VsbCwgTlNBY2Nlc3Np
YmlsaXR5Q29sb3JXZWxsUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpHcm93
QXJlYSwgTlNBY2Nlc3NpYmlsaXR5R3Jvd0FyZWFSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJp
bGl0eVJvbGU6OlNoZWV0LCBOU0FjY2Vzc2liaWxpdHlTaGVldFJvbGUgfSwKLSAgICAgICAgeyBB
Y2Nlc3NpYmlsaXR5Um9sZTo6SGVscFRhZywgTlNBY2Nlc3NpYmlsaXR5SGVscFRhZ1JvbGUgfSwK
LSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TWF0dGUsIE5TQWNjZXNzaWJpbGl0eU1hdHRl
Um9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpSdWxlciwgTlNBY2Nlc3NpYmls
aXR5UnVsZXJSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1bGVyTWFya2Vy
LCBOU0FjY2Vzc2liaWxpdHlSdWxlck1hcmtlclJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmls
aXR5Um9sZTo6TGluaywgTlNBY2Nlc3NpYmlsaXR5TGlua1JvbGUgfSwKLSAgICAgICAgeyBBY2Nl
c3NpYmlsaXR5Um9sZTo6RGlzY2xvc3VyZVRyaWFuZ2xlLCBOU0FjY2Vzc2liaWxpdHlEaXNjbG9z
dXJlVHJpYW5nbGVSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkdyaWQsIE5T
QWNjZXNzaWJpbGl0eVRhYmxlUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpU
cmVlR3JpZCwgTlNBY2Nlc3NpYmlsaXR5VGFibGVSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJp
bGl0eVJvbGU6OldlYkNvcmVMaW5rLCBOU0FjY2Vzc2liaWxpdHlMaW5rUm9sZSB9LAotICAgICAg
ICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpJbWFnZU1hcExpbmssIE5TQWNjZXNzaWJpbGl0eUxpbmtS
b2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkltYWdlTWFwLCBAIkFYSW1hZ2VN
YXAiIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Okxpc3RNYXJrZXIsIEAiQVhMaXN0
TWFya2VyIiB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpXZWJBcmVhLCBAIkFYV2Vi
QXJlYSIgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6SGVhZGluZywgQCJBWEhlYWRp
bmciIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Okxpc3RCb3gsIE5TQWNjZXNzaWJp
bGl0eUxpc3RSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Okxpc3RCb3hPcHRp
b24sIE5TQWNjZXNzaWJpbGl0eVN0YXRpY1RleHRSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJp
bGl0eVJvbGU6OkNlbGwsIE5TQWNjZXNzaWJpbGl0eUNlbGxSb2xlIH0sCi0gICAgICAgIHsgQWNj
ZXNzaWJpbGl0eVJvbGU6OkdyaWRDZWxsLCBOU0FjY2Vzc2liaWxpdHlDZWxsUm9sZSB9LAotICAg
ICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJsZUhlYWRlckNvbnRhaW5lciwgTlNBY2Nlc3Np
YmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkNvbHVtbkhl
YWRlciwgTlNBY2Nlc3NpYmlsaXR5Q2VsbFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5
Um9sZTo6Um93SGVhZGVyLCBOU0FjY2Vzc2liaWxpdHlDZWxsUm9sZSB9LAotICAgICAgICB7IEFj
Y2Vzc2liaWxpdHlSb2xlOjpEZWZpbml0aW9uLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwK
LSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0RGV0YWlsLCBOU0Fj
Y2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVz
Y3JpcHRpb25MaXN0VGVybSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsg
QWNjZXNzaWJpbGl0eVJvbGU6OlRlcm0sIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAg
ICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxpc3QsIE5TQWNjZXNzaWJpbGl0
eUxpc3RSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlNsaWRlclRodW1iLCBO
U0FjY2Vzc2liaWxpdHlWYWx1ZUluZGljYXRvclJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmls
aXR5Um9sZTo6V2ViQXBwbGljYXRpb24sIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAg
ICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0Jhbm5lciwgTlNBY2Nlc3NpYmlsaXR5
R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29tcGxl
bWVudGFyeSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJp
bGl0eVJvbGU6OkxhbmRtYXJrRG9jUmVnaW9uLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwK
LSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtDb250ZW50SW5mbywgTlNBY2Nl
c3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRt
YXJrTWFpbiwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJp
bGl0eVJvbGU6OkxhbmRtYXJrTmF2aWdhdGlvbiwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0s
Ci0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrUmVnaW9uLCBOU0FjY2Vzc2li
aWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtT
ZWFyY2gsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxp
dHlSb2xlOjpBcHBsaWNhdGlvbkFsZXJ0LCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAg
ICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25BbGVydERpYWxvZywgTlNBY2Nl
c3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxp
Y2F0aW9uRGlhbG9nLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nl
c3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25Hcm91cCwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xl
IH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uVGV4dEdyb3VwLCBO
U0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6
QXBwbGljYXRpb25Mb2csIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFj
Y2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbk1hcnF1ZWUsIE5TQWNjZXNzaWJpbGl0eUdyb3Vw
Um9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblN0YXR1cywg
TlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6
OkFwcGxpY2F0aW9uVGltZXIsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7
IEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudCwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0s
Ci0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50QXJ0aWNsZSwgTlNBY2Nlc3Np
YmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50
TWF0aCwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0
eVJvbGU6OkRvY3VtZW50Tm90ZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAg
IHsgQWNjZXNzaWJpbGl0eVJvbGU6OlVzZXJJbnRlcmZhY2VUb29sdGlwLCBOU0FjY2Vzc2liaWxp
dHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFiLCBOU0FjY2Vz
c2liaWxpdHlSYWRpb0J1dHRvblJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6
VGFiTGlzdCwgTlNBY2Nlc3NpYmlsaXR5VGFiR3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNz
aWJpbGl0eVJvbGU6OlRhYlBhbmVsLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAg
ICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZSwgTlNBY2Nlc3NpYmlsaXR5T3V0bGluZVJvbGUg
fSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZUl0ZW0sIE5TQWNjZXNzaWJpbGl0
eVJvd1JvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdEl0ZW0sIE5TQWNj
ZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpQYXJh
Z3JhcGgsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxp
dHlSb2xlOjpMYWJlbCwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNj
ZXNzaWJpbGl0eVJvbGU6OkRpdiwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAg
IHsgQWNjZXNzaWJpbGl0eVJvbGU6OkZvcm0sIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAot
ICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpTcGluQnV0dG9uLCBOU0FjY2Vzc2liaWxpdHlJ
bmNyZW1lbnRvclJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6Rm9vdGVyLCBO
U0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6
VG9nZ2xlQnV0dG9uLCBOU0FjY2Vzc2liaWxpdHlDaGVja0JveFJvbGUgfSwKLSAgICAgICAgeyBB
Y2Nlc3NpYmlsaXR5Um9sZTo6Q2FudmFzLCBOU0FjY2Vzc2liaWxpdHlJbWFnZVJvbGUgfSwKLSAg
ICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6U1ZHUm9vdCwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBS
b2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkxlZ2VuZCwgTlNBY2Nlc3NpYmls
aXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Ok1hdGhFbGVtZW50
LCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9s
ZTo6QXVkaW8sIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2li
aWxpdHlSb2xlOjpWaWRlbywgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsg
QWNjZXNzaWJpbGl0eVJvbGU6Okhvcml6b250YWxSdWxlLCBOU0FjY2Vzc2liaWxpdHlTcGxpdHRl
clJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6QmxvY2txdW90ZSwgTlNBY2Nl
c3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlN3aXRj
aCwgTlNBY2Nlc3NpYmlsaXR5Q2hlY2tCb3hSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0
eVJvbGU6OlNlYXJjaEZpZWxkLCBOU0FjY2Vzc2liaWxpdHlUZXh0RmllbGRSb2xlIH0sCi0gICAg
ICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlByZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0s
Ci0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlCYXNlLCBOU0FjY2Vzc2liaWxpdHlH
cm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieUJsb2NrLCBOU0Fj
Y2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVi
eUlubGluZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJp
bGl0eVJvbGU6OlJ1YnlSdW4sIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7
IEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5VGV4dCwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0s
Ci0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OkRldGFpbHMsIE5TQWNjZXNzaWJpbGl0eUdy
b3VwUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpTdW1tYXJ5LCBOU0FjY2Vz
c2liaWxpdHlCdXR0b25Sb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlNWR1Rl
eHRQYXRoLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmls
aXR5Um9sZTo6U1ZHVGV4dCwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsg
QWNjZXNzaWJpbGl0eVJvbGU6OlNWR1RTcGFuLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwK
LSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6SW5saW5lLCBOU0FjY2Vzc2liaWxpdHlHcm91
cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TWFyaywgTlNBY2Nlc3NpYmls
aXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlRpbWUsIE5TQWNj
ZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpGZWVk
LCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RmlndXJlLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3Np
YmlsaXR5Um9sZTo6Rm9vdG5vdGUsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAg
ICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpHcmFwaGljc0RvY3VtZW50LCBOU0FjY2Vzc2liaWxpdHlH
cm91cFJvbGUgfSwKLSAgICAgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JhcGhpY3NPYmplY3Qs
IE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAotICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xl
OjpHcmFwaGljc1N5bWJvbCwgTlNBY2Nlc3NpYmlsaXR5SW1hZ2VSb2xlIH0sCi0gICAgICAgIHsg
QWNjZXNzaWJpbGl0eVJvbGU6OkNhcHRpb24sIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAot
ICAgICAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpEZWxldGlvbiwgTlNBY2Nlc3NpYmlsaXR5R3Jv
dXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Okluc2VydGlvbiwgTlNBY2Nl
c3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlN1YnNj
cmlwdCwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCi0gICAgICAgIHsgQWNjZXNzaWJpbGl0
eVJvbGU6OlN1cGVyc2NyaXB0LCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKLSAgICB9Owot
ICAgIEFjY2Vzc2liaWxpdHlSb2xlTWFwIHJvbGVNYXA7Ci0gICAgZm9yIChhdXRvJiByb2xlIDog
cm9sZXMpCi0gICAgICAgIHJvbGVNYXAuYWRkKHN0YXRpY19jYXN0PGludD4ocm9sZS52YWx1ZSks
IChfX2JyaWRnZSBDRlN0cmluZ1JlZilyb2xlLnN0cmluZyk7Ci0gICAgcmV0dXJuIHJvbGVNYXA7
Ci19Ci0KLXN0YXRpYyBOU1N0cmluZyAqcm9sZVZhbHVlVG9OU1N0cmluZyhBY2Nlc3NpYmlsaXR5
Um9sZSB2YWx1ZSkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QWNjZXNzaWJpbGl0eVJv
bGVNYXA+IHJvbGVNYXAgPSBjcmVhdGVBY2Nlc3NpYmlsaXR5Um9sZU1hcCgpOwotICAgIHJldHVy
biAoX19icmlkZ2UgTlNTdHJpbmcgKilyb2xlTWFwLmdldCgpLmdldChzdGF0aWNfY2FzdDxpbnQ+
KHZhbHVlKSk7Ci19Ci0KIC0gKE5TU3RyaW5nKilyb2xlCiB7CiAgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAoX2F4QmFja2luZ09iamVjdC0+aXNBdHRhY2ht
ZW50KCkpCiAgICAgICAgIHJldHVybiBbW3NlbGYgYXR0YWNobWVudFZpZXddIGFjY2Vzc2liaWxp
dHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlSb2xlQXR0cmlidXRlXTsKICAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKLSAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xl
ID0gX2F4QmFja2luZ09iamVjdC0+cm9sZVZhbHVlKCk7Ci0KLSAgICBpZiAocm9sZSA9PSBBY2Nl
c3NpYmlsaXR5Um9sZTo6TGFiZWwgJiYgaXM8QWNjZXNzaWJpbGl0eUxhYmVsPigqbV9vYmplY3Qp
ICYmIGRvd25jYXN0PEFjY2Vzc2liaWxpdHlMYWJlbD4oKm1fb2JqZWN0KS5jb250YWluc09ubHlT
dGF0aWNUZXh0KCkpCi0gICAgICAgIHJvbGUgPSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3RhdGljVGV4
dDsKIAotICAgIC8vIFRoZSBtZmVuY2VkIGVsZW1lbnQgY3JlYXRlcyBhbm9ueW1vdXMgUmVuZGVy
TWF0aE1MT3BlcmF0b3JzIHdpdGggbm8gUmVuZGVyVGV4dAotICAgIC8vIGRlc2NlbmRhbnRzLiBC
ZWNhdXNlIHRoZXNlIGFub255bW91cyByZW5kZXJlcnMgYXJlIHRoZSBvbmx5IGFjY2Vzc2libGUg
b2JqZWN0cwotICAgIC8vIGNvbnRhaW5pbmcgdGhlIG9wZXJhdG9yLCBhc3NpZ24gQWNjZXNzaWJp
bGl0eVJvbGU6OlN0YXRpY1RleHQuCi0gICAgaWYgKG1fb2JqZWN0LT5pc0Fub255bW91c01hdGhP
cGVyYXRvcigpKQotICAgICAgICByb2xlID0gQWNjZXNzaWJpbGl0eVJvbGU6OlN0YXRpY1RleHQ7
Ci0KLSAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2FudmFzICYmIG1fb2JqZWN0
LT5jYW52YXNIYXNGYWxsYmFja0NvbnRlbnQoKSkKLSAgICAgICAgcm9sZSA9IEFjY2Vzc2liaWxp
dHlSb2xlOjpHcm91cDsKLSAgICBOU1N0cmluZyogc3RyaW5nID0gcm9sZVZhbHVlVG9OU1N0cmlu
Zyhyb2xlKTsKLSAgICBpZiAoc3RyaW5nICE9IG5pbCkKKyAgICBOU1N0cmluZyAqc3RyaW5nID0g
bV9vYmplY3QtPnJvbGVQbGF0Zm9ybVN0cmluZygpOworICAgIGlmIChzdHJpbmcubGVuZ3RoKQog
ICAgICAgICByZXR1cm4gc3RyaW5nOwogICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlVbmtub3du
Um9sZTsKIH0KQEAgLTI0NDQsMTE1ICsyMjY3LDE1IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogICAgICAgICByZXR1cm4gW1tzZWxmIGF0dGFjaG1lbnRWaWV3XSBhY2Nlc3Np
YmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5Um9sZURlc2NyaXB0aW9uQXR0cmli
dXRlXTsKICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAotICAgIGNvbnN0
IEF0b21TdHJpbmcmIG92ZXJyaWRlUm9sZURlc2NyaXB0aW9uID0gbV9vYmplY3QtPnJvbGVEZXNj
cmlwdGlvbigpOwotICAgIGlmICghb3ZlcnJpZGVSb2xlRGVzY3JpcHRpb24uaXNOdWxsKCkgJiYg
IW92ZXJyaWRlUm9sZURlc2NyaXB0aW9uLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIG92ZXJy
aWRlUm9sZURlc2NyaXB0aW9uOwotICAgIAotICAgIE5TU3RyaW5nKiBheFJvbGUgPSBbc2VsZiBy
b2xlXTsKLSAgICAKLSAgICBpZiAoW2F4Um9sZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmls
aXR5R3JvdXBSb2xlXSkgewotICAgICAgICAKLSAgICAgICAgaWYgKG1fb2JqZWN0LT5pc091dHB1
dCgpKQotICAgICAgICAgICAgcmV0dXJuIEFYT3V0cHV0VGV4dCgpOwotICAgICAgICAKLSAgICAg
ICAgTlNTdHJpbmcgKmFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbiA9IFtzZWxmIGFyaWFMYW5k
bWFya1JvbGVEZXNjcmlwdGlvbl07Ci0gICAgICAgIGlmIChhcmlhTGFuZG1hcmtSb2xlRGVzY3Jp
cHRpb24pCi0gICAgICAgICAgICByZXR1cm4gYXJpYUxhbmRtYXJrUm9sZURlc2NyaXB0aW9uOwot
ICAgICAgICAKLSAgICAgICAgc3dpdGNoIChtX29iamVjdC0+cm9sZVZhbHVlKCkpIHsKLSAgICAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXVkaW86Ci0gICAgICAgICAgICByZXR1cm4gbG9j
YWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZygiQXVkaW9FbGVtZW50Iik7Ci0gICAgICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlZmluaXRpb246Ci0gICAgICAgICAgICByZXR1cm4g
QVhEZWZpbml0aW9uVGV4dCgpOwotICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNj
cmlwdGlvbkxpc3RUZXJtOgotICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUZXJtOgot
ICAgICAgICAgICAgcmV0dXJuIEFYRGVzY3JpcHRpb25MaXN0VGVybVRleHQoKTsKLSAgICAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0RGV0YWlsOgotICAgICAgICAg
ICAgcmV0dXJuIEFYRGVzY3JpcHRpb25MaXN0RGV0YWlsVGV4dCgpOwotICAgICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpEZXRhaWxzOgotICAgICAgICAgICAgcmV0dXJuIEFYRGV0YWlsc1Rl
eHQoKTsKLSAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RmVlZDoKLSAgICAgICAgICAg
IHJldHVybiBBWEZlZWRUZXh0KCk7Ci0gICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkZv
b3RlcjoKLSAgICAgICAgICAgIHJldHVybiBBWEZvb3RlclJvbGVEZXNjcmlwdGlvblRleHQoKTsK
LSAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWFyazoKLSAgICAgICAgICAgIHJldHVy
biBBWE1hcmtUZXh0KCk7Ci0gICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlZpZGVvOgot
ICAgICAgICAgICAgcmV0dXJuIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoIlZp
ZGVvRWxlbWVudCIpOwotICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmFwaGljc0Rv
Y3VtZW50OgotICAgICAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklB
RG9jdW1lbnQiKTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBOU0FjY2Vz
c2liaWxpdHlSb2xlRGVzY3JpcHRpb24oTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlLCBbc2VsZiBz
dWJyb2xlXSk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgaWYgKFtheFJvbGUgaXNFcXVh
bFRvU3RyaW5nOkAiQVhXZWJBcmVhIl0pCi0gICAgICAgIHJldHVybiBBWFdlYkFyZWFUZXh0KCk7
Ci0gICAgCi0gICAgaWYgKFtheFJvbGUgaXNFcXVhbFRvU3RyaW5nOkAiQVhMaW5rIl0pCi0gICAg
ICAgIHJldHVybiBBWExpbmtUZXh0KCk7Ci0gICAgCi0gICAgaWYgKFtheFJvbGUgaXNFcXVhbFRv
U3RyaW5nOkAiQVhMaXN0TWFya2VyIl0pCi0gICAgICAgIHJldHVybiBBWExpc3RNYXJrZXJUZXh0
KCk7Ci0gICAgCi0gICAgaWYgKFtheFJvbGUgaXNFcXVhbFRvU3RyaW5nOkAiQVhJbWFnZU1hcCJd
KQotICAgICAgICByZXR1cm4gQVhJbWFnZU1hcFRleHQoKTsKLSAgICAKLSAgICBpZiAoW2F4Um9s
ZSBpc0VxdWFsVG9TdHJpbmc6QCJBWEhlYWRpbmciXSkKLSAgICAgICAgcmV0dXJuIEFYSGVhZGlu
Z1RleHQoKTsKLSAgICAKLSAgICBpZiAoW2F4Um9sZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3Np
YmlsaXR5VGV4dEZpZWxkUm9sZV0pIHsKLSAgICAgICAgYXV0byogbm9kZSA9IG1fb2JqZWN0LT5u
b2RlKCk7Ci0gICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pihub2RlKSkgewotICAgICAg
ICAgICAgYXV0byYgaW5wdXQgPSBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pigqbm9kZSk7Ci0g
ICAgICAgICAgICBpZiAoaW5wdXQuaXNFbWFpbEZpZWxkKCkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIEFYRW1haWxGaWVsZFRleHQoKTsKLSAgICAgICAgICAgIGlmIChpbnB1dC5pc1RlbGVwaG9u
ZUZpZWxkKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEFYVGVsZXBob25lRmllbGRUZXh0KCk7
Ci0gICAgICAgICAgICBpZiAoaW5wdXQuaXNVUkxGaWVsZCgpKQotICAgICAgICAgICAgICAgIHJl
dHVybiBBWFVSTEZpZWxkVGV4dCgpOwotICAgICAgICAgICAgaWYgKGlucHV0LmlzTnVtYmVyRmll
bGQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gQVhOdW1iZXJGaWVsZFRleHQoKTsKLSAgICAg
ICAgICAgIAotICAgICAgICAgICAgLy8gVGhlc2UgaW5wdXQgdHlwZXMgYXJlIG5vdCBlbmFibGVk
IG9uIG1hYyB5ZXQsIHdlIGNoZWNrIHRoZSB0eXBlIGF0dHJpYnV0ZSBmb3Igbm93LgotICAgICAg
ICAgICAgYXV0byYgdHlwZSA9IGlucHV0LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
dHlwZUF0dHIpOwotICAgICAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNl
KHR5cGUsICJkYXRlIikpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEFYRGF0ZUZpZWxkVGV4dCgp
OwotICAgICAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHR5cGUsICJ0
aW1lIikpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEFYVGltZUZpZWxkVGV4dCgpOwotICAgICAg
ICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHR5cGUsICJ3ZWVrIikpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIEFYV2Vla0ZpZWxkVGV4dCgpOwotICAgICAgICAgICAgaWYg
KGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHR5cGUsICJtb250aCIpKQotICAgICAgICAg
ICAgICAgIHJldHVybiBBWE1vbnRoRmllbGRUZXh0KCk7Ci0gICAgICAgICAgICBpZiAoZXF1YWxM
ZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodHlwZSwgImRhdGV0aW1lLWxvY2FsIikpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIEFYRGF0ZVRpbWVGaWVsZFRleHQoKTsKLSAgICAgICAgfQotICAgIH0K
LSAgICAKLSAgICBpZiAoX2F4QmFja2luZ09iamVjdC0+aXNGaWxlVXBsb2FkQnV0dG9uKCkpCi0g
ICAgICAgIHJldHVybiBBWEZpbGVVcGxvYWRCdXR0b25UZXh0KCk7Ci0gICAgCi0gICAgLy8gT25s
eSByZXR1cm5pbmcgZm9yIERMIChub3QgVUwgb3IgT0wpIGJlY2F1c2UgZGVzY3JpcHRpb24gY2hh
bmdlZCB3aXRoIEhUTUw1IGZyb20gJ2RlZmluaXRpb24gbGlzdCcgdG8KLSAgICAvLyBzdXBlcnNl
dCAnZGVzY3JpcHRpb24gbGlzdCcgYW5kIGRvZXMgbm90IHJldHVybiB0aGUgc2FtZSB2YWx1ZXMg
aW4gQVggQVBJIG9uIHNvbWUgT1MgdmVyc2lvbnMuIAotICAgIGlmIChpczxBY2Nlc3NpYmlsaXR5
TGlzdD4oKm1fb2JqZWN0KSkgewotICAgICAgICBpZiAoZG93bmNhc3Q8QWNjZXNzaWJpbGl0eUxp
c3Q+KCptX29iamVjdCkuaXNEZXNjcmlwdGlvbkxpc3QoKSkKLSAgICAgICAgICAgIHJldHVybiBB
WERlc2NyaXB0aW9uTGlzdFRleHQoKTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKG1fb2JqZWN0LT5y
b2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SG9yaXpvbnRhbFJ1bGUpCi0gICAgICAg
IHJldHVybiBBWEhvcml6b250YWxSdWxlRGVzY3JpcHRpb25UZXh0KCk7Ci0gICAgCi0gICAgLy8g
QXBwS2l0IGFsc28gcmV0dXJucyBBWFRhYiBmb3IgdGhlIHJvbGUgZGVzY3JpcHRpb24gZm9yIGEg
dGFiIGl0ZW0uCi0gICAgaWYgKG1fb2JqZWN0LT5pc1RhYkl0ZW0oKSkKLSAgICAgICAgcmV0dXJu
IE5TQWNjZXNzaWJpbGl0eVJvbGVEZXNjcmlwdGlvbihAIkFYVGFiIiwgbmlsKTsKLSAgICAKLSAg
ICBpZiAobV9vYmplY3QtPmlzU3VtbWFyeSgpKQotICAgICAgICByZXR1cm4gQVhTdW1tYXJ5VGV4
dCgpOwotICAgIAotICAgIC8vIFdlIHNob3VsZCB0cnkgdGhlIHN5c3RlbSBkZWZhdWx0IHJvbGUg
ZGVzY3JpcHRpb24gZm9yIGFsbCBvdGhlciByb2xlcy4KKyAgICBTdHJpbmcgcm9sZURlc2NyaXB0
aW9uID0gbV9vYmplY3QtPnJvbGVEZXNjcmlwdGlvbigpOworICAgIGlmICghcm9sZURlc2NyaXB0
aW9uLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHJvbGVEZXNjcmlwdGlvbjsKKworICAgIE5T
U3RyaW5nICpheFJvbGUgPSBtX29iamVjdC0+cm9sZVBsYXRmb3JtU3RyaW5nKCk7CisgICAgLy8g
RmFsbGJhY2sgdG8gdGhlIHN5c3RlbSBkZWZhdWx0IHJvbGUgZGVzY3JpcHRpb24uCiAgICAgLy8g
SWYgd2UgZ2V0IHRoZSBzYW1lIHN0cmluZyBiYWNrLCB0aGVuIGFzIGEgbGFzdCByZXNvcnQsIHJl
dHVybiB1bmtub3duLgotICAgIE5TU3RyaW5nKiBkZWZhdWx0Um9sZURlc2NyaXB0aW9uID0gTlNB
Y2Nlc3NpYmlsaXR5Um9sZURlc2NyaXB0aW9uKGF4Um9sZSwgW3NlbGYgc3Vicm9sZV0pOwotICAg
IAorICAgIE5TU3RyaW5nICpkZWZhdWx0Um9sZURlc2NyaXB0aW9uID0gTlNBY2Nlc3NpYmlsaXR5
Um9sZURlc2NyaXB0aW9uKGF4Um9sZSwgW3NlbGYgc3Vicm9sZV0pOworCiAgICAgLy8gT24gZWFy
bGllciBNYWMgdmVyc2lvbnMgKExpb24pLCB1c2luZyBhIG5vbi1zdGFuZGFyZCBzdWJyb2xlIHdv
dWxkIHJlc3VsdCBpbiBhIHJvbGUgZGVzY3JpcHRpb24KICAgICAvLyBiZWluZyByZXR1cm5lZCB0
aGF0IGxvb2tlZCBsaWtlIEFYUm9sZTpBWFN1YnJvbGUuIFRvIG1ha2UgYWxsIHBsYXRmb3JtcyBo
YXZlIHRoZSBzYW1lIHJvbGUgZGVzY3JpcHRpb25zCiAgICAgLy8gd2Ugc2hvdWxkIGZhbGxiYWNr
IG9uIGEgcm9sZSBkZXNjcmlwdGlvbiBpZ25vcmluZyB0aGUgc3Vicm9sZSBpbiB0aGVzZSBjYXNl
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3Mu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXgg
NzcwZjQwYmQ1ZjI5YzU4YjVlYjdlNDVjOGJjZmM2MWFiOGUxZDI0My4uZTIzNTU2YTMwNGNiODZj
NWMwOTViZjRkODMyZWVmM2U4MmNhNWRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTU4MCw2ICs1ODAsNjMgQEAgU3RyaW5nIEFYV2Vla0Zp
ZWxkVGV4dCgpCiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIndlZWsgYW5kIHllYXIgZmllbGQi
LCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBhIHRpbWUgZmllbGQuIik7CiB9
CiAKK1N0cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KGNvbnN0IFN0cmluZyYgYXJpYVR5cGUp
Cit7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25BbGVydCIpCisgICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJhbGVydCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3Jv
dXAgdGhhdCBhY3RzIGFzIGFuIGFsZXJ0LiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFw
cGxpY2F0aW9uQWxlcnREaWFsb2ciKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygid2Vi
IGFsZXJ0IGRpYWxvZyIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFz
IGFuIGFsZXJ0IGRpYWxvZy4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlv
bkRpYWxvZyIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ3ZWIgZGlhbG9nIiwgIkFu
IEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gZGlhbG9nLiIpOworICAg
IGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uTG9nIikKKyAgICAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkcoImxvZyIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3Rz
IGFzIGEgY29uc29sZSBsb2cuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRp
b25NYXJxdWVlIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1hcnF1ZWUiLCAiQW4g
QVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIG1hcnF1ZWUuIik7CisgICAg
aWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25TdGF0dXMiKQorICAgICAgICByZXR1cm4g
V0VCX1VJX1NUUklORygiYXBwbGljYXRpb24gc3RhdHVzIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0
eSBncm91cCB0aGF0IGFjdHMgYXMgYSBzdGF0dXMgdXBkYXRlLiIpOworICAgIGlmIChhcmlhVHlw
ZSA9PSAiQVJJQUFwcGxpY2F0aW9uVGltZXIiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklO
RygidGltZXIiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiB1
cGRhdGluZyB0aW1lci4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFEb2N1bWVudCIpCisg
ICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJkb2N1bWVudCIsICJBbiBBUklBIGFjY2Vzc2li
aWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgZG9jdW1lbnQuIik7CisgICAgaWYgKGFyaWFUeXBl
ID09ICJBUklBRG9jdW1lbnRBcnRpY2xlIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
ImFydGljbGUiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBh
cnRpY2xlLiIpOworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50Tm90ZSIpCisgICAg
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJub3RlIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBn
cm91cCB0aGF0IGFjdHMgYXMgYSBub3RlIGluIGEgZG9jdW1lbnQuIik7CisgICAgaWYgKGFyaWFU
eXBlID09ICJBUklBV2ViQXBwbGljYXRpb24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklO
Rygid2ViIGFwcGxpY2F0aW9uIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFj
dHMgYXMgYW4gYXBwbGljYXRpb24uIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1h
cmtCYW5uZXIiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYmFubmVyIiwgIkFuIEFS
SUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBiYW5uZXIuIik7CisgICAgaWYg
KGFyaWFUeXBlID09ICJBUklBTGFuZG1hcmtDb21wbGVtZW50YXJ5IikKKyAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoImNvbXBsZW1lbnRhcnkiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdy
b3VwIHRoYXQgYWN0cyBhcyBhIHJlZ2lvbiBvZiBjb21wbGVtZW50YXJ5IGluZm9ybWF0aW9uLiIp
OworICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrQ29udGVudEluZm8iKQorICAgICAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygiY29udGVudCBpbmZvcm1hdGlvbiIsICJBbiBBUklBIGFj
Y2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBjb250YWlucyBjb250ZW50LiIpOworICAgIGlmIChhcmlh
VHlwZSA9PSAiQVJJQUxhbmRtYXJrTWFpbiIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJtYWluIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGlzIHRoZSBtYWluIHBv
cnRpb24gb2YgdGhlIHdlYnNpdGUuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBTGFuZG1h
cmtOYXZpZ2F0aW9uIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm5hdmlnYXRpb24i
LCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgY29udGFpbnMgdGhlIG1haW4gbmF2
aWdhdGlvbiBlbGVtZW50cyBvZiBhIHdlYnNpdGUuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJB
UklBTGFuZG1hcmtSZWdpb24iKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygicmVnaW9u
IiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSBkaXN0aW5jdCBy
ZWdpb24gaW4gYSBkb2N1bWVudC4iKTsKKyAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFy
a1NlYXJjaCIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJzZWFyY2giLCAiQW4gQVJJ
QSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgY29udGFpbnMgYSBzZWFyY2ggZmVhdHVyZSBvZiBh
IHdlYnNpdGUuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBVXNlckludGVyZmFjZVRvb2x0
aXAiKQorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygidG9vbHRpcCIsICJBbiBBUklBIGFj
Y2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgdG9vbHRpcC4iKTsKKyAgICBpZiAoYXJp
YVR5cGUgPT0gIkFSSUFUYWJQYW5lbCIpCisgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ0
YWIgcGFuZWwiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgY29udGFpbnMgdGhl
IGNvbnRlbnQgb2YgYSB0YWIuIik7CisgICAgaWYgKGFyaWFUeXBlID09ICJBUklBRG9jdW1lbnRN
YXRoIikKKyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIm1hdGgiLCAiQW4gQVJJQSBhY2Nl
c3NpYmlsaXR5IGdyb3VwIHRoYXQgY29udGFpbnMgbWF0aGVtYXRpY2FsIHN5bWJvbHMuIik7Cisg
ICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhIb3Jpem9udGFsUnVsZURlc2NyaXB0
aW9uVGV4dCgpCit7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInNlcGFyYXRvciIsICJhY2Nl
c3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGEgaG9yaXpvbnRhbCBydWxlIFs8aHI+XSIp
OworfQorCitTdHJpbmcgQVhNYXJrVGV4dCgpCit7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
ImhpZ2hsaWdodGVkIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgYSBtYXJr
IGVsZW1lbnQiKTsKK30KKwogU3RyaW5nIEFYQnV0dG9uQWN0aW9uVmVyYigpCiB7CiAgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoInByZXNzIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQg
d2lsbCBvY2N1ciB3aGVuIGEgYnV0dG9uIGlzIHByZXNzZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJp
bGl0eSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCmluZGV4
IDk0YTBkNjNhZmE3YWNkMjg3NWVkNjY1YTRiMDQyMzZjNGNkNDVlOWUuLjNlMzMxNjRmYjJkNzg1
MzY4YTU3NzRlZDRhYjFmM2VhY2FmNDUyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
b2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTE4Niw3ICsxODYsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIFN0cmluZyBBWE1vbnRoRmllbGRUZXh0KCk7CiAgICAgU3RyaW5nIEFYTnVtYmVyRmll
bGRUZXh0KCk7CiAgICAgU3RyaW5nIEFYV2Vla0ZpZWxkVGV4dCgpOwotICAgIAorICAgIFN0cmlu
ZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KGNvbnN0IFN0cmluZyYgYXJpYVR5cGUpOworICAgIFN0
cmluZyBBWEhvcml6b250YWxSdWxlRGVzY3JpcHRpb25UZXh0KCk7CisgICAgU3RyaW5nIEFYTWFy
a1RleHQoKTsKKwogICAgIFN0cmluZyBBWEJ1dHRvbkFjdGlvblZlcmIoKTsKICAgICBTdHJpbmcg
QVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKTsKICAgICBTdHJpbmcgQVhUZXh0RmllbGRBY3Rpb25W
ZXJiKCk7CkBAIC0yMDMsOSArMjA2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmlu
ZyB3ZWVrRm9ybWF0SW5MRE1MKCk7CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBT
dHJpbmcgQVhBUklBQ29udGVudEdyb3VwVGV4dChjb25zdCBTdHJpbmcmIGFyaWFUeXBlKTsKLSAg
ICBTdHJpbmcgQVhIb3Jpem9udGFsUnVsZURlc2NyaXB0aW9uVGV4dCgpOwotICAgIFN0cmluZyBB
WE1hcmtUZXh0KCk7CiAjaWYgRU5BQkxFKE1FVEVSX0VMRU1FTlQpCiAgICAgU3RyaW5nIEFYTWV0
ZXJHYXVnZVJlZ2lvbk9wdGltdW1UZXh0KCk7CiAgICAgU3RyaW5nIEFYTWV0ZXJHYXVnZVJlZ2lv
blN1Ym9wdGltYWxUZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KaW5kZXggM2I3OWI2YzJkMjAzNGY4NmY0Yzgw
MzEwYjYzNjU4ZmNhZmQzMTM3OC4uOTg1MWY0MzBjNDcyN2NiYzZmMWJmZDI0NDBmZWZmZGY4MDcz
ZGRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTG9jYWxpemVk
U3RyaW5nc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0xvY2Fs
aXplZFN0cmluZ3NDb2NvYS5tbQpAQCAtMTgxLDYzICsxODEsNiBAQCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnRXhpdFZpZGVvRW5oYW5jZWRGdWxsc2NyZWVuKCkKICNlbmRpZgogI2VuZGlmIC8v
IEVOQUJMRShDT05URVhUX01FTlVTKQogCi1TdHJpbmcgQVhBUklBQ29udGVudEdyb3VwVGV4dChj
b25zdCBTdHJpbmcmIGFyaWFUeXBlKQotewotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxp
Y2F0aW9uQWxlcnQiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYWxlcnQiLCAiQW4g
QVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhbGVydC4iKTsKLSAgICBp
ZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nIikKLSAgICAgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIndlYiBhbGVydCBkaWFsb2ciLCAiQW4gQVJJQSBhY2Nlc3NpYmls
aXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhbGVydCBkaWFsb2cuIik7Ci0gICAgaWYgKGFyaWFU
eXBlID09ICJBUklBQXBwbGljYXRpb25EaWFsb2ciKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygid2ViIGRpYWxvZyIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3Rz
IGFzIGFuIGRpYWxvZy4iKTsKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbkxv
ZyIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJsb2ciLCAiQW4gQVJJQSBhY2Nlc3Np
YmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIGNvbnNvbGUgbG9nLiIpOwotICAgIGlmIChhcmlh
VHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uTWFycXVlZSIpCi0gICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HKCJtYXJxdWVlIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMg
YXMgYSBtYXJxdWVlLiIpOwotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uU3Rh
dHVzIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFwcGxpY2F0aW9uIHN0YXR1cyIs
ICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgc3RhdHVzIHVwZGF0
ZS4iKTsKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvblRpbWVyIikKLSAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoInRpbWVyIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBn
cm91cCB0aGF0IGFjdHMgYXMgYW4gdXBkYXRpbmcgdGltZXIuIik7Ci0gICAgaWYgKGFyaWFUeXBl
ID09ICJBUklBRG9jdW1lbnQiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiZG9jdW1l
bnQiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIGRvY3VtZW50
LiIpOwotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQURvY3VtZW50QXJ0aWNsZSIpCi0gICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJhcnRpY2xlIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBn
cm91cCB0aGF0IGFjdHMgYXMgYW4gYXJ0aWNsZS4iKTsKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFS
SUFEb2N1bWVudE5vdGUiKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygibm90ZSIsICJB
biBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGEgbm90ZSBpbiBhIGRvY3Vt
ZW50LiIpOwotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQVdlYkFwcGxpY2F0aW9uIikKLSAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIndlYiBhcHBsaWNhdGlvbiIsICJBbiBBUklBIGFjY2Vz
c2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGFuIGFwcGxpY2F0aW9uLiIpOwotICAgIGlmIChh
cmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrQmFubmVyIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoImJhbm5lciIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFz
IGEgYmFubmVyLiIpOwotICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrQ29tcGxlbWVu
dGFyeSIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJjb21wbGVtZW50YXJ5IiwgIkFu
IEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYSByZWdpb24gb2YgY29tcGxl
bWVudGFyeSBpbmZvcm1hdGlvbi4iKTsKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFy
a0NvbnRlbnRJbmZvIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImNvbnRlbnQgaW5m
b3JtYXRpb24iLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgY29udGFpbnMgY29u
dGVudC4iKTsKLSAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFMYW5kbWFya01haW4iKQotICAgICAg
ICByZXR1cm4gV0VCX1VJX1NUUklORygibWFpbiIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3Jv
dXAgdGhhdCBpcyB0aGUgbWFpbiBwb3J0aW9uIG9mIHRoZSB3ZWJzaXRlLiIpOwotICAgIGlmIChh
cmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrTmF2aWdhdGlvbiIpCi0gICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJuYXZpZ2F0aW9uIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0
IGNvbnRhaW5zIHRoZSBtYWluIG5hdmlnYXRpb24gZWxlbWVudHMgb2YgYSB3ZWJzaXRlLiIpOwot
ICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUxhbmRtYXJrUmVnaW9uIikKLSAgICAgICAgcmV0dXJu
IFdFQl9VSV9TVFJJTkcoInJlZ2lvbiIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhh
dCBhY3RzIGFzIGEgZGlzdGluY3QgcmVnaW9uIGluIGEgZG9jdW1lbnQuIik7Ci0gICAgaWYgKGFy
aWFUeXBlID09ICJBUklBTGFuZG1hcmtTZWFyY2giKQotICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygic2VhcmNoIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5z
IGEgc2VhcmNoIGZlYXR1cmUgb2YgYSB3ZWJzaXRlLiIpOwotICAgIGlmIChhcmlhVHlwZSA9PSAi
QVJJQVVzZXJJbnRlcmZhY2VUb29sdGlwIikKLSAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
InRvb2x0aXAiLCAiQW4gQVJJQSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhIHRv
b2x0aXAuIik7Ci0gICAgaWYgKGFyaWFUeXBlID09ICJBUklBVGFiUGFuZWwiKQotICAgICAgICBy
ZXR1cm4gV0VCX1VJX1NUUklORygidGFiIHBhbmVsIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBn
cm91cCB0aGF0IGNvbnRhaW5zIHRoZSBjb250ZW50IG9mIGEgdGFiLiIpOwotICAgIGlmIChhcmlh
VHlwZSA9PSAiQVJJQURvY3VtZW50TWF0aCIpCi0gICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJtYXRoIiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGNvbnRhaW5zIG1hdGhl
bWF0aWNhbCBzeW1ib2xzLiIpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIEFY
SG9yaXpvbnRhbFJ1bGVEZXNjcmlwdGlvblRleHQoKQotewotICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJzZXBhcmF0b3IiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBhIGhv
cml6b250YWwgcnVsZSBbPGhyPl0iKTsKLX0KLQotU3RyaW5nIEFYTWFya1RleHQoKQotewotICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJoaWdobGlnaHRlZCIsICJhY2Nlc3NpYmlsaXR5IHJvbGUg
ZGVzY3JpcHRpb24gZm9yIGEgbWFyayBlbGVtZW50Iik7Ci19Ci0KICNpZiBFTkFCTEUoTUVURVJf
RUxFTUVOVCkKIFN0cmluZyBBWE1ldGVyR2F1Z2VSZWdpb25PcHRpbXVtVGV4dCgpCiB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>