<?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>33773</bug_id>
          
          <creation_ts>2010-01-17 14:26:05 -0800</creation_ts>
          <short_desc>MSAA: The child &lt;option&gt; elements of a non-multiple &lt;select&gt; are not exposed</short_desc>
          <delta_ts>2010-01-19 18:04:07 -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>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</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="Jon Honeycutt">jhoneycutt</reporter>
          <assigned_to name="Jon Honeycutt">jhoneycutt</assigned_to>
          <cc>alice.barraclough</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>yaar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>181621</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2010-01-17 14:26:05 -0800</bug_when>
    <thetext>The accessibility of the child &lt;option&gt; elements of a non-multiple &lt;select&gt; element do not appear in the accessibility tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181622</commentid>
    <comment_count>1</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2010-01-17 14:28:04 -0800</bug_when>
    <thetext>&lt;rdar://problem/7550556&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181993</commentid>
    <comment_count>2</comment_count>
      <attachid>46850</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2010-01-18 14:14:28 -0800</bug_when>
    <thetext>Created attachment 46850
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182020</commentid>
    <comment_count>3</comment_count>
      <attachid>46850</attachid>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2010-01-18 15:39:46 -0800</bug_when>
    <thetext>Comment on attachment 46850
patch


&gt; diff --git a/WebCore/WebCore.vcproj/WebCore.vcproj b/WebCore/WebCore.vcproj/WebCore.vcproj
&gt; index bc40848..d27492c 100644
&gt; --- a/WebCore/WebCore.vcproj/WebCore.vcproj
&gt; +++ b/WebCore/WebCore.vcproj/WebCore.vcproj
&gt; @@ -20380,14 +20404,6 @@
&gt;  				RelativePath=&quot;..\accessibility\AXObjectCache.cpp&quot;
&gt;  				&gt;
&gt;  				&lt;FileConfiguration
&gt; -					Name=&quot;Debug|Win32&quot;
&gt; -					ExcludedFromBuild=&quot;true&quot;
&gt; -					&gt;
&gt; -					&lt;Tool
&gt; -						Name=&quot;VCCLCompilerTool&quot;
&gt; -					/&gt;
&gt; -				&lt;/FileConfiguration&gt;
&gt; -				&lt;FileConfiguration
&gt;  					Name=&quot;Release|Win32&quot;
&gt;  					ExcludedFromBuild=&quot;true&quot;
&gt;  					&gt;

i guess you&apos;ll want to put this back.

&gt; diff --git a/WebCore/accessibility/AccessibilityMenuListHiddenList.cpp b/WebCore/accessibility/AccessibilityMenuListHiddenList.cpp
&gt; +void AccessibilityMenuListHiddenList::addChildren()
&gt; +{
&gt; +    Node* selectNode = m_menuList-&gt;renderer()-&gt;node();
&gt; +    if (!selectNode)
&gt; +        return;
&gt; +
&gt; +    m_haveChildren = true;
&gt; +
&gt; +    const Vector&lt;Element*&gt;&amp; listItems = static_cast&lt;HTMLSelectElement*&gt;(selectNode)-&gt;listItems();

All your other code seems to have checks to ensure the safety of the static cast, but it&apos;s not present here. 


&gt; diff --git a/WebCore/accessibility/AccessibilityMenuListOption.cpp b/WebCore/accessibility/AccessibilityMenuListOption.cpp
&gt; +bool AccessibilityMenuListOption::isVisible() const
&gt; +{
&gt; +    // In a single-option select, only the selected item is considered visible.
&gt; +    return isSelected();
&gt; +}
&gt; +

This doesn&apos;t seem right if a menu is expanded.  please investigate.  If you can&apos;t find out a definitive answer by using an inspection tool on firefox, then i would suggest adding a case for isExpanded().  


&gt; diff --git a/WebCore/accessibility/AccessibilityMenuListOption.h b/WebCore/accessibility/AccessibilityMenuListOption.h

&gt; +    void setElement(HTMLElement* element);

I forgot to mention this earlier, but i think our style is to leave out the name of the param in unambiguous circumstances.  applies to rest of all your files. 


r- only for the suspected incorrectness of AccessibilityMenuListOption::isVisible()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182417</commentid>
    <comment_count>4</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2010-01-19 13:28:53 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 46850 [details])
&gt; 
&gt; &gt; diff --git a/WebCore/WebCore.vcproj/WebCore.vcproj b/WebCore/WebCore.vcproj/WebCore.vcproj
&gt; &gt; index bc40848..d27492c 100644
&gt; &gt; --- a/WebCore/WebCore.vcproj/WebCore.vcproj
&gt; &gt; +++ b/WebCore/WebCore.vcproj/WebCore.vcproj
&gt; &gt; @@ -20380,14 +20404,6 @@
&gt; &gt;  				RelativePath=&quot;..\accessibility\AXObjectCache.cpp&quot;
&gt; &gt;  				&gt;
&gt; &gt;  				&lt;FileConfiguration
&gt; &gt; -					Name=&quot;Debug|Win32&quot;
&gt; &gt; -					ExcludedFromBuild=&quot;true&quot;
&gt; &gt; -					&gt;
&gt; &gt; -					&lt;Tool
&gt; &gt; -						Name=&quot;VCCLCompilerTool&quot;
&gt; &gt; -					/&gt;
&gt; &gt; -				&lt;/FileConfiguration&gt;
&gt; &gt; -				&lt;FileConfiguration
&gt; &gt;  					Name=&quot;Release|Win32&quot;
&gt; &gt;  					ExcludedFromBuild=&quot;true&quot;
&gt; &gt;  					&gt;
&gt; 
&gt; i guess you&apos;ll want to put this back.

Fixed.

&gt; 
&gt; &gt; diff --git a/WebCore/accessibility/AccessibilityMenuListHiddenList.cpp b/WebCore/accessibility/AccessibilityMenuListHiddenList.cpp
&gt; &gt; +void AccessibilityMenuListHiddenList::addChildren()
&gt; &gt; +{
&gt; &gt; +    Node* selectNode = m_menuList-&gt;renderer()-&gt;node();
&gt; &gt; +    if (!selectNode)
&gt; &gt; +        return;
&gt; &gt; +
&gt; &gt; +    m_haveChildren = true;
&gt; &gt; +
&gt; &gt; +    const Vector&lt;Element*&gt;&amp; listItems = static_cast&lt;HTMLSelectElement*&gt;(selectNode)-&gt;listItems();
&gt; 
&gt; All your other code seems to have checks to ensure the safety of the static
&gt; cast, but it&apos;s not present here. 

I added an ASSERT that the node has the expected tag name.

&gt; 
&gt; 
&gt; &gt; diff --git a/WebCore/accessibility/AccessibilityMenuListOption.cpp b/WebCore/accessibility/AccessibilityMenuListOption.cpp
&gt; &gt; +bool AccessibilityMenuListOption::isVisible() const
&gt; &gt; +{
&gt; &gt; +    // In a single-option select, only the selected item is considered visible.
&gt; &gt; +    return isSelected();
&gt; &gt; +}
&gt; &gt; +
&gt; 
&gt; This doesn&apos;t seem right if a menu is expanded.  please investigate.  If you
&gt; can&apos;t find out a definitive answer by using an inspection tool on firefox, then
&gt; i would suggest adding a case for isExpanded().  

You&apos;re right - fixed.

&gt; 
&gt; 
&gt; &gt; diff --git a/WebCore/accessibility/AccessibilityMenuListOption.h b/WebCore/accessibility/AccessibilityMenuListOption.h
&gt; 
&gt; &gt; +    void setElement(HTMLElement* element);
&gt; 
&gt; I forgot to mention this earlier, but i think our style is to leave out the
&gt; name of the param in unambiguous circumstances.  applies to rest of all your
&gt; files. 

Fixed.

&gt; 
&gt; 
&gt; r- only for the suspected incorrectness of
&gt; AccessibilityMenuListOption::isVisible()

Thanks for the review! Next patch coming shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182425</commentid>
    <comment_count>5</comment_count>
      <attachid>46947</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2010-01-19 13:38:09 -0800</bug_when>
    <thetext>Created attachment 46947
patch

This patch adds Alice&apos;s suggested changes.

The class AccessibilityMenuListHiddenList was renamed to AccessibilityMenuListPopup to better reflect which object in the tree it represents.

The &quot;collapsed&quot;, &quot;expanded&quot;, and &quot;has popup&quot; states were added to the MSAA wrapper object.

To test the expanded state of the select menu, we now allow the menu to be expanded and collapsed via the MSAA wrapper&apos;s accDoDefaultAction() call. Code was added to the layout test to test the popup menu&apos;s state and the state of its child option elements with the menu expanded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182431</commentid>
    <comment_count>6</comment_count>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2010-01-19 13:50:02 -0800</bug_when>
    <thetext>awesome.  r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182561</commentid>
    <comment_count>7</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2010-01-19 17:45:09 -0800</bug_when>
    <thetext>Committed in r53512. Added some pre-emptive build fixes by stubbing out the localized string functions on other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182564</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-19 18:01:08 -0800</bug_when>
    <thetext>I think this broke all 3 chromium builds.

The chromium EWS should have caught this, but looks like this wasn&apos;t up for review quite long enough for it to finish.  We&apos;ll need to make it faster.  https://bugs.webkit.org/show_activity.cgi?id=33773</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182565</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-19 18:02:35 -0800</bug_when>
    <thetext>I&apos;m not sure this actually was the cause of the chromium break yet:
http://build.webkit.org/builders/Chromium%20Win%20Release/builds/1210/steps/compile-webkit/logs/stdio</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46850</attachid>
            <date>2010-01-18 14:14:28 -0800</date>
            <delta_ts>2010-01-19 13:38:09 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-MSAA-The-child-option-elements-of-a-non-multiple-sel.patch</filename>
            <type>text/plain</type>
            <size>69437</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSBmNDYxMWFkNDg3MWNlMGM3ZDlkZGM3ZjM1Y2FjYTgxMzFkODNmMjRlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogTW9uLCAxOCBKYW4gMjAxMCAxNDoxMToxNyAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIE1T
QUE6IFRoZSBjaGlsZCA8b3B0aW9uPiBlbGVtZW50cyBvZiBhIG5vbi1tdWx0aXBsZSA8c2VsZWN0
PiBhcmUgbm90CiBleHBvc2VkCgpodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzM3NzMKPHJkYXI6Ly9wcm9ibGVtLzc1NTA1NTY+CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KCldlYkNvcmU6CgpUaGlzIGV4cG9zZXMgdGhlIGNoaWxkIDxvcHRpb24+IGVsZW1lbnRz
IGluIGEgZm9ybWF0IHNpbWlsYXIgdG8KRmlyZWZveCdzOiB0aGUgPHNlbGVjdD4gZWxlbWVudCBo
YXMgb25lIGNoaWxkLCBhIGhpZGRlbiBsaXN0IG9iamVjdCwKYW5kIHRoaXMgbGlzdCBoYXMgYXMg
aXRzIGNoaWxkcmVuIHRoZSA8b3B0aW9uPiBlbGVtZW50cy4KCiogR05VbWFrZWZpbGUuYW06Ciog
V2ViQ29yZS5neXBpOgoqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgoqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKQWRkIG5ldyBmaWxlcyB0byBwcm9qZWN0LgoKKiBh
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
Z2V0T3JDcmVhdGUpOgpJZiB0aGUgZWxlbWVudCBpcyBhIFJlbmRlck1lbnVMaXN0LCBjcmVhdGUg
YW4gQWNjZXNzaWJpbGl0eU1lbnVMaXN0LgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Z2V0T3JD
cmVhdGUpOgpBZGQgbmV3IHR5cGVzIHRvIGNyZWF0ZSBieSByb2xlIHZhbHVlLgoKKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHA6IEFkZGVkLgooV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU1lbnVMaXN0OjpBY2Nlc3NpYmlsaXR5TWVudUxpc3QpOgpDYWxsIHRoZSBiYXNlIGNs
YXNzIGNvbnN0cnVjdG9yLgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0OjphZGRDaGls
ZHJlbik6CkNyZWF0ZSBhIEFjY2Vzc2liaWxpdHlNZW51TGlzdEhpZGRlbkxpc3QuIElmIHRoZSBw
bGF0Zm9ybSBpZ25vcmVzIGl0cwphY2Nlc3NpYmlsaXR5LCByZW1vdmUgaXQgZnJvbSB0aGUgb2Jq
ZWN0IGNhY2hlIGFuZCByZXR1cm4gZWFybHkuCk90aGVyd2lzZSwgc2V0IGl0cyBwYXJlbnQgb2Jq
ZWN0IHRvIHRoaXMgb2JqZWN0LCBhZGQgaXQgdG8gb3VyIGxpc3Qgb2YKY2hpbGRyZW4sIGFuZCB0
ZWxsIGl0IHRvIGFkZCBpdHMgY2hpbGRyZW4uCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxp
c3Q6OmNoaWxkcmVuQ2hhbmdlZCk6ClRlbGwgb3VyIGNoaWxkIGhpZGRlbiBsaXN0IHRoYXQgaXRz
IGNoaWxkcmVuIGNoYW5nZWQuCgoqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0
Lmg6IEFkZGVkLgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0OjpjcmVhdGUpOgpBZG9w
dCBhbmQgcmV0dXJuIGEgbmV3IFJlbmRlck1lbnVMaXN0LgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU1lbnVMaXN0Ojppc01lbnVMaXN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdDo6
cm9sZVZhbHVlKToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdDo6YWNjZXNzaWJpbGl0
eUlzSWdub3JlZCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmNhblNldEZvY3Vz
QXR0cmlidXRlKToKCiogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5M
aXN0LmNwcDogQWRkZWQuCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0
OjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0KToKSW5pdGlhbGl6ZSB0aGUgcG9pbnRl
ciB0byBvdXIgcGFyZW50IGxpc3QuCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRk
ZW5MaXN0OjpwYXJlbnRPYmplY3QpOgpSZXR1cm4gb3VyIHBhcmVudCBsaXN0LgooV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlzdDo6aXNFbmFibGVkKToKUmV0dXJuIHRydWUg
aWYgb3VyIHBhcmVudCBpcyBlbmFibGVkLgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0
SGlkZGVuTGlzdDo6bWVudUxpc3RPcHRpb25BY2Nlc3NpYmlsaXR5T2JqZWN0KToKSWYgdGhlIGVs
ZW1lbnQgaXMgYW4gPG9wdGlvbj4gZWxlbWVudCwgY3JlYXRlIGEgbGlzdCBpdGVtIGZvciBpdCwg
YW5kCnNldCB0aGUgb2JqZWN0J3MgZWxlbWVudCB0byB0aGlzIGVsZW1lbnQuCihXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0OjphZGRDaGlsZHJlbik6CldhbGsgdGhlIHNl
bGVjdCBlbGVtZW50J3MgY2hpbGRyZW4sIGFuZCBjcmVhdGUgbGlzdCBpdGVtcyBmb3IgdGhlbS4g
QWRkCnRoZW0gdG8gb3VyIGxpc3Qgb2YgY2hpbGRyZW4uCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
TWVudUxpc3RIaWRkZW5MaXN0OjpjaGlsZHJlbkNoYW5nZWQpOgpJZiBhbnkgb2Ygb3VyIGNoaWxk
cmVuIGhhdmUgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSBkb2N1bWVudCwgcmVtb3ZlCnRoZW0gZnJv
bSB0aGUgQVhPYmplY3RDYWNoZSBhbmQgZnJvbSBvdXIgY2hpbGQgbGlzdC4KKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlNZW51TGlzdEhpZGRlbkxpc3Q6OnNldE1lbnVMaXN0KToKCiogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0Lmg6IEFkZGVkLgooV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlzdDo6Y3JlYXRlKToKQWRvcHQgYW5kIHJldHVy
biBhbiBBY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0LgooV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU1lbnVMaXN0SGlkZGVuTGlzdDo6aXNNZW51TGlzdEhpZGRlbkxpc3QpOgooV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlzdDo6aXNWaXNpYmxlKToKUmV0dXJuIGZhbHNl
OyB0aGlzIGhpZGRlbiBsaXN0IGlzIG5ldmVyIHZpc2libGUuCihXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5TWVudUxpc3RIaWRkZW5MaXN0Ojppc09mZlNjcmVlbik6ClRoZSBoaWRkZW4gbGlzdCBpcyBh
bHdheXMgb2Zmc2NyZWVuLgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlz
dDo6ZWxlbWVudFJlY3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlz
dDo6c2l6ZSk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0Ojpyb2xl
VmFsdWUpOgoKKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5jcHA6
IEFkZGVkLgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjpBY2Nlc3NpYmls
aXR5TWVudUxpc3RPcHRpb24pOgpJbml0aWFsaXplIHRoZSBwb2ludGVyIHRvIG91ciBwYXJlbnQg
bGlzdC4KKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6c2V0RWxlbWVudCk6
CkFzc2VydCB0aGF0IHRoZSBlbGVtZW50IGlzIGFuIDxvcHRpb24+IGVsZW1lbnQuCihXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb246OmFjdGlvbkVsZW1lbnQpOgpSZXR1cm4gb3Vy
IGVsZW1lbnQuCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb246OnBhcmVudE9i
amVjdCk6ClJldHVybiBvdXIgcGFyZW50IGxpc3QuCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVu
dUxpc3RPcHRpb246OmlzRW5hYmxlZCk6ClJldHVybiB0cnVlIGlmIHRoZSBlbGVtZW50IGl0c2Vs
ZiBpcyBlbmFibGVkLgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjppc1Zp
c2libGUpOgpSZXR1cm4gdHJ1ZSBpZiB0aGUgZWxlbWVudCBpcyBzZWxlY3RlZC4KKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6aXNPZmZTY3JlZW4pOgpSZXR1cm4gdHJ1ZSBp
ZiB0aGUgb2JqZWN0IGlzIGludmlzaWJsZS4KKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlz
dE9wdGlvbjo6aXNTZWxlY3RlZCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRp
b246OnNldFNlbGVjdGVkKToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6
bmFtZUZvck1TQUEpOgpSZXR1cm4gdGhlIDxvcHRpb24+IGVsZW1lbnQncyB0ZXh0LgooV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjpjYW5TZXRTZWxlY3RlZEF0dHJpYnV0ZSk6
ClJldHVybiB0cnVlIGlmIGVuYWJsZWQuCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RP
cHRpb246OmVsZW1lbnRSZWN0KToKUmV0dXJuIHRoZSBBY2Nlc3NpYmlsaXR5TWVudUxpc3QncyBy
ZWN0LgoKKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5oOiBBZGRl
ZC4KKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6Y3JlYXRlKToKQWRvcHQg
YW5kIHJldHVybiBhIG5ldyBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uCihXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb246OnNldFBhcmVudEhpZGRlbkxpc3QpOgooV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjppc01lbnVMaXN0T3B0aW9uKToKKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6cm9sZVZhbHVlKToKKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6Y2FuSGF2ZUNoaWxkcmVuKToKKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6c2l6ZSk6CgoqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oOgooV2ViQ29yZTo6KToKQWRkIG5ldyByb2xlcy4KKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmlzTWVudUxpc3QpOgpTdHViYmVkLgooV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU9iamVjdDo6aXNNZW51TGlzdEhpZGRlbkxpc3QpOgpTdHViYmVkLgooV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNNZW51TGlzdE9wdGlvbik6ClN0dWJiZWQuCihXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1Zpc2libGUpOgpTdHViYmVkLgoKKiBhY2Nlc3NpYmls
aXR5L2Nocm9taXVtL0FjY2Vzc2liaWxpdHlPYmplY3RDaHJvbWl1bS5jcHA6CihXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09iamVjdCk6
Cklnbm9yZSB0aGUgbmV3IG9iamVjdCB0eXBlLgoKKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3Np
YmlsaXR5T2JqZWN0QXRrLmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vz
c2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0KToKRGl0dG8uCgoqIGFjY2Vzc2liaWxpdHkv
bWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW06CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09iamVjdCk6CkRpdHRvLgoKKiBhY2Nl
c3NpYmlsaXR5L3F0L0FjY2Vzc2liaWxpdHlPYmplY3RRdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09iamVjdCk6CkRpdHRv
LgoKKiBhY2Nlc3NpYmlsaXR5L3dpbi9BY2Nlc3NpYmlsaXR5T2JqZWN0V2luLmNwcDoKKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2Jq
ZWN0KToKQWxsb3cgdGhlIG5ldyBvYmplY3QgdHlwZXMuCgoqIGFjY2Vzc2liaWxpdHkvd3gvQWNj
ZXNzaWJpbGl0eU9iamVjdFd4LmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmFj
Y2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0KToKSWdub3JlIHRoZSBuZXcgb2JqZWN0
IHR5cGUuCgoqIGFjY2Vzc2liaWxpdHkvd2luL0FjY2Vzc2liaWxpdHlPYmplY3RXaW4uY3BwOgoo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eVBsYXRmb3JtSW5jbHVk
ZXNPYmplY3QpOgpJZiB0aGUgb2JqZWN0IGlzIGFuIEFjY2Vzc2liaWxpdHlNZW51TGlzdEhpZGRl
bkxpc3Qgb3IKQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLCBpbmNsdWRlIGl0LgoKKiBodG1s
L0hUTUxPcHRpb25FbGVtZW50LmNwcDoKKFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50OjpkaXNh
YmxlZCk6CkNhbGwgb3duRWxlbWVudERpc2FibGVkKCkuCgoqIGh0bWwvSFRNTE9wdGlvbkVsZW1l
bnQuaDoKKFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50Ojpvd25FbGVtZW50RGlzYWJsZWQpOgpS
ZXR1cm4gdGhlIGJhc2UgY2xhc3MgaW1wbGVtZW50YXRpb24gb2YgZGlzYWJsZWQsIHdoaWNoIHJl
dHVybnMKd2hldGhlciB0aGlzIDxvcHRpb24+IGl0c2VsZiBpcyBkaXNhYmxlZC4KCldlYktpdC93
aW46CgoqIEFjY2Vzc2libGVCYXNlLmNwcDoKKEFjY2Vzc2libGVCYXNlOjpnZXRfYWNjU3RhdGUp
OgpJZiB0aGUgb2JqZWN0IGlzIGludmlzaWJsZSwgc2V0IHRoZSBpbnZpc2libGUgc3RhdGUgZmxh
Zy4KCldlYktpdFRvb2xzOgoKKiBEdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmNwcDoKKGdldElzVmlzaWJsZUNhbGxiYWNrKToKQ2FsbCB0aGUgb2JqZWN0J3MgaXNWaXNpYmxl
KCkgZnVuY3Rpb24uCihnZXRJc09mZlNjcmVlbkNhbGxiYWNrKToKRGl0dG8sIGZvciBpc09mZlNj
cmVlbigpLgooQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0SlNDbGFzcyk6CkFkZCBpc1Zpc2li
bGUgYW5kIGlzT2ZmU2NyZWVuIGF0dHJpYnV0ZXMuCgoqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuaDoKRGVjbGFyZSBuZXcgZnVuY3Rpb25zLgoKKiBEdW1wUmVuZGVyVHJl
ZS9ndGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEd0ay5jcHA6CihBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojppc1Zpc2libGUpOgpTdHViYmVkLgooQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNPZmZT
Y3JlZW4pOgpTdHViYmVkLgoKKiBEdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudE1hYy5tbToKKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVmlzaWJsZSk6ClN0dWJiZWQu
CihBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc09mZlNjcmVlbik6ClN0dWJiZWQuCgoqIER1bXBS
ZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNwcDoKKEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmlzRW5hYmxlZCk6CkNoZWNrIHRoYXQgdGhlIG9iamVjdCBkb2VzIG5vdCBo
YXZlIHRoZSAidW5hdmFpbGFibGUiIHN0YXRlLgooQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNW
aXNpYmxlKToKQ2hlY2sgdGhhdCB0aGUgb2JqZWN0IGRvZXMgbm90IGhhdmUgdGhlICJpbnZpc2li
bGUiIHN0YXRlLgooQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNPZmZTY3JlZW4pOgpDaGVjayB3
aGV0aGVyIHRoZSBvYmplY3QgaGFzIHRoZSAib2Zmc2NyZWVuIiBzdGF0ZS4KCkxheW91dFRlc3Rz
OgoKKiBwbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9zaW5nbGUtc2VsZWN0LWNoaWxkcmVuLWV4
cGVjdGVkLnR4dDogQWRkZWQuCiogcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvc2luZ2xlLXNl
bGVjdC1jaGlsZHJlbi5odG1sOiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysKIC4uLi9zaW5nbGUtc2VsZWN0LWNo
aWxkcmVuLWV4cGVjdGVkLnR4dCAgICAgICAgICAgIHwgIDEyOCArKysrKysrKysrKysrKysrCiAu
Li4vd2luL2FjY2Vzc2liaWxpdHkvc2luZ2xlLXNlbGVjdC1jaGlsZHJlbi5odG1sICB8ICAgNzQg
KysrKysrKysrCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAxNTggKysrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArCiBXZWJDb3JlL1dlYkNvcmUuZ3lw
aSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKwogV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvaiAgICAgICAgICAgICAgfCAgIDM0ICsrKy0KIFdlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICAgIHwgICAyNCArKysKIFdl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCAgICAgICAgICAgIHwgICAxMSAr
KwogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAgICAgfCAg
IDcwICsrKysrKysrKwogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlz
dC5oICAgICAgfCAgIDU2ICsrKysrKysKIC4uLi9BY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5M
aXN0LmNwcCAgICAgICAgICAgIHwgIDEwOCArKysrKysrKysrKysrCiAuLi4vQWNjZXNzaWJpbGl0
eU1lbnVMaXN0SGlkZGVuTGlzdC5oICAgICAgICAgICAgICB8ICAgNjcgKysrKysrKysKIC4uLi9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5jcHAgIHwgIDEwOSArKysr
KysrKysrKysrKwogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9u
LmggICAgfCAgIDY5ICsrKysrKysrKwogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuaCAgICAgICAgfCAgICA2ICsKIC4uLi9jaHJvbWl1bS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0Q2hyb21pdW0uY3BwICAgICAgIHwgICAgMyArCiAuLi4vYWNjZXNzaWJpbGl0eS9ndGsvQWNj
ZXNzaWJpbGl0eU9iamVjdEF0ay5jcHAgICB8ICAgIDMgKwogLi4uL2FjY2Vzc2liaWxpdHkvbWFj
L0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0gICAgfCAgICAzICsKIFdlYkNvcmUvYWNjZXNzaWJp
bGl0eS9xdC9BY2Nlc3NpYmlsaXR5T2JqZWN0UXQuY3BwIHwgICAgMyArCiAuLi4vYWNjZXNzaWJp
bGl0eS93aW4vQWNjZXNzaWJpbGl0eU9iamVjdFdpbi5jcHAgICB8ICAgIDMgKwogV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L3d4L0FjY2Vzc2liaWxpdHlPYmplY3RXeC5jcHAgfCAgICAzICsKIFdlYkNv
cmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAgICAgICAgICAgICAgICAgIHwgICAgMiArLQog
V2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmggICAgICAgICAgICAgICAgICAgfCAgICAx
ICsKIFdlYktpdC93aW4vQWNjZXNzaWJsZUJhc2UuY3BwICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMyArCiBXZWJLaXQvd2luL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMTQgKysKIFdlYktpdFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICA0MSArKysrKwogLi4uL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuY3BwICAgICAgfCAgIDEyICsrCiAuLi4vRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5oICAgICAgICB8ICAgIDIgKwogLi4uL2d0ay9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50R3RrLmNwcCAgICAgICAgICAgICAgfCAgIDEyICsrCiAuLi4vbWFjL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRNYWMubW0gICAgICAgICAgICAgICB8ICAgMTIgKysKIC4uLi93aW4vQWNjZXNzaWJp
bGl0eVVJRWxlbWVudFdpbi5jcHAgICAgICAgICAgICAgIHwgICAxMyArKy0KIDMyIGZpbGVzIGNo
YW5nZWQsIDEwNTggaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvc2luZ2xlLXNlbGVj
dC1jaGlsZHJlbi1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9zaW5nbGUtc2VsZWN0LWNoaWxkcmVuLmh0bWwKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVM
aXN0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TWVudUxpc3QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0LmgK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1l
bnVMaXN0T3B0aW9uLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uaAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5YjVhMTcwLi44NjU0Y2Q4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDEtMTcgIEpvbiBIb25leWN1dHQgIDxqaG9u
ZXljdXR0QGFwcGxlLmNvbT4KKworICAgICAgICBNU0FBOiBUaGUgY2hpbGQgPG9wdGlvbj4gZWxl
bWVudHMgb2YgYSBub24tbXVsdGlwbGUgPHNlbGVjdD4gYXJlIG5vdAorICAgICAgICBleHBvc2Vk
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzNzcz
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTUwNTU2PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkv
c2luZ2xlLXNlbGVjdC1jaGlsZHJlbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L3NpbmdsZS1zZWxlY3QtY2hpbGRyZW4uaHRtbDogQWRk
ZWQuCisKIDIwMTAtMDEtMTUgIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
IAogICAgICAgICBNU0FBOiBTY3JlZW4gcmVjdCBmb3IgPG9wdGlvbj4gZWxlbWVudHMgaXMgYWx3
YXlzIHRoZSB6ZXJvIHJlY3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9h
Y2Nlc3NpYmlsaXR5L3NpbmdsZS1zZWxlY3QtY2hpbGRyZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvc2luZ2xlLXNlbGVjdC1jaGlsZHJlbi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGE5ZDhlOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5
L3NpbmdsZS1zZWxlY3QtY2hpbGRyZW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTI4IEBACisK
K1RoaXMgdGVzdHMgdGhhdCBub24tbXVsdGlwbGUgc2VsZWN0IGVsZW1lbnRzIGV4cG9zZSB0aGVp
ciBsaXN0IG9wdGlvbnMuCisKKworUEFTUyBzZWxlY3RFbGVtZW50LnJvbGUgaXMgImNvbWJvIGJv
eCIKK1BBU1Mgc2VsZWN0RWxlbWVudC5pc011bHRpU2VsZWN0YWJsZSBpcyBmYWxzZQorCitQQVNT
IGxpc3Qucm9sZSBpcyAibGlzdCIKK1BBU1MgbGlzdC5pc1Zpc2libGUgaXMgZmFsc2UKK1BBU1Mg
bGlzdC5pc09mZlNjcmVlbiBpcyB0cnVlCisKK29wdGlvbi50aXRsZTogT3B0aW9uIDEKK29wdGlv
bi5yb2xlOiBsaXN0IGl0ZW0KK29wdGlvbi53aWR0aDogNzgKK29wdGlvbi5oZWlnaHQ6IDIyCitv
cHRpb24ueDogLTc5MAorb3B0aW9uLnk6IC01OTEKK29wdGlvbi5pc09mZlNjcmVlbjogZmFsc2UK
K29wdGlvbi5pc0VuYWJsZWQ6IHRydWUKK29wdGlvbi5pc1Zpc2libGU6IHRydWUKK29wdGlvbi5p
c1NlbGVjdGVkOiB0cnVlCitvcHRpb24uaXNTZWxlY3RhYmxlOiB0cnVlCisKK29wdGlvbi50aXRs
ZTogT3B0aW9uIDIKK29wdGlvbi5yb2xlOiBsaXN0IGl0ZW0KK29wdGlvbi53aWR0aDogNzgKK29w
dGlvbi5oZWlnaHQ6IDIyCitvcHRpb24ueDogLTc5MAorb3B0aW9uLnk6IC01OTEKK29wdGlvbi5p
c09mZlNjcmVlbjogdHJ1ZQorb3B0aW9uLmlzRW5hYmxlZDogdHJ1ZQorb3B0aW9uLmlzVmlzaWJs
ZTogZmFsc2UKK29wdGlvbi5pc1NlbGVjdGVkOiBmYWxzZQorb3B0aW9uLmlzU2VsZWN0YWJsZTog
dHJ1ZQorCitvcHRpb24udGl0bGU6IE9wdGlvbiAzCitvcHRpb24ucm9sZTogbGlzdCBpdGVtCitv
cHRpb24ud2lkdGg6IDc4CitvcHRpb24uaGVpZ2h0OiAyMgorb3B0aW9uLng6IC03OTAKK29wdGlv
bi55OiAtNTkxCitvcHRpb24uaXNPZmZTY3JlZW46IHRydWUKK29wdGlvbi5pc0VuYWJsZWQ6IGZh
bHNlCitvcHRpb24uaXNWaXNpYmxlOiBmYWxzZQorb3B0aW9uLmlzU2VsZWN0ZWQ6IGZhbHNlCitv
cHRpb24uaXNTZWxlY3RhYmxlOiBmYWxzZQorCistLS0KKworb3B0aW9uLnRpdGxlOiBPcHRpb24g
MQorb3B0aW9uLnJvbGU6IGxpc3QgaXRlbQorb3B0aW9uLndpZHRoOiA3OAorb3B0aW9uLmhlaWdo
dDogMjIKK29wdGlvbi54OiAtNzkwCitvcHRpb24ueTogLTU5MQorb3B0aW9uLmlzT2ZmU2NyZWVu
OiB0cnVlCitvcHRpb24uaXNFbmFibGVkOiB0cnVlCitvcHRpb24uaXNWaXNpYmxlOiBmYWxzZQor
b3B0aW9uLmlzU2VsZWN0ZWQ6IGZhbHNlCitvcHRpb24uaXNTZWxlY3RhYmxlOiB0cnVlCisKK29w
dGlvbi50aXRsZTogT3B0aW9uIDIKK29wdGlvbi5yb2xlOiBsaXN0IGl0ZW0KK29wdGlvbi53aWR0
aDogNzgKK29wdGlvbi5oZWlnaHQ6IDIyCitvcHRpb24ueDogLTc5MAorb3B0aW9uLnk6IC01OTEK
K29wdGlvbi5pc09mZlNjcmVlbjogZmFsc2UKK29wdGlvbi5pc0VuYWJsZWQ6IHRydWUKK29wdGlv
bi5pc1Zpc2libGU6IHRydWUKK29wdGlvbi5pc1NlbGVjdGVkOiB0cnVlCitvcHRpb24uaXNTZWxl
Y3RhYmxlOiB0cnVlCisKK29wdGlvbi50aXRsZTogT3B0aW9uIDMKK29wdGlvbi5yb2xlOiBsaXN0
IGl0ZW0KK29wdGlvbi53aWR0aDogNzgKK29wdGlvbi5oZWlnaHQ6IDIyCitvcHRpb24ueDogLTc5
MAorb3B0aW9uLnk6IC01OTEKK29wdGlvbi5pc09mZlNjcmVlbjogdHJ1ZQorb3B0aW9uLmlzRW5h
YmxlZDogZmFsc2UKK29wdGlvbi5pc1Zpc2libGU6IGZhbHNlCitvcHRpb24uaXNTZWxlY3RlZDog
ZmFsc2UKK29wdGlvbi5pc1NlbGVjdGFibGU6IGZhbHNlCisKKy0tLQorCitvcHRpb24udGl0bGU6
IE9wdGlvbiAxCitvcHRpb24ucm9sZTogbGlzdCBpdGVtCitvcHRpb24ud2lkdGg6IDc4CitvcHRp
b24uaGVpZ2h0OiAyMgorb3B0aW9uLng6IC03OTAKK29wdGlvbi55OiAtNTkxCitvcHRpb24uaXNP
ZmZTY3JlZW46IGZhbHNlCitvcHRpb24uaXNFbmFibGVkOiB0cnVlCitvcHRpb24uaXNWaXNpYmxl
OiB0cnVlCitvcHRpb24uaXNTZWxlY3RlZDogdHJ1ZQorb3B0aW9uLmlzU2VsZWN0YWJsZTogdHJ1
ZQorCitvcHRpb24udGl0bGU6IE9wdGlvbiAyCitvcHRpb24ucm9sZTogbGlzdCBpdGVtCitvcHRp
b24ud2lkdGg6IDc4CitvcHRpb24uaGVpZ2h0OiAyMgorb3B0aW9uLng6IC03OTAKK29wdGlvbi55
OiAtNTkxCitvcHRpb24uaXNPZmZTY3JlZW46IHRydWUKK29wdGlvbi5pc0VuYWJsZWQ6IHRydWUK
K29wdGlvbi5pc1Zpc2libGU6IGZhbHNlCitvcHRpb24uaXNTZWxlY3RlZDogZmFsc2UKK29wdGlv
bi5pc1NlbGVjdGFibGU6IHRydWUKKworb3B0aW9uLnRpdGxlOiBPcHRpb24gMworb3B0aW9uLnJv
bGU6IGxpc3QgaXRlbQorb3B0aW9uLndpZHRoOiA3OAorb3B0aW9uLmhlaWdodDogMjIKK29wdGlv
bi54OiAtNzkwCitvcHRpb24ueTogLTU5MQorb3B0aW9uLmlzT2ZmU2NyZWVuOiB0cnVlCitvcHRp
b24uaXNFbmFibGVkOiBmYWxzZQorb3B0aW9uLmlzVmlzaWJsZTogZmFsc2UKK29wdGlvbi5pc1Nl
bGVjdGVkOiBmYWxzZQorb3B0aW9uLmlzU2VsZWN0YWJsZTogZmFsc2UKKworLS0tCisKK1BBU1Mg
b3B0aW9uLndpZHRoICE9IDAgaXMgdHJ1ZQorUEFTUyBvcHRpb24ud2lkdGggPT0gMCBpcyB0cnVl
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L3Np
bmdsZS1zZWxlY3QtY2hpbGRyZW4uaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9hY2Nl
c3NpYmlsaXR5L3NpbmdsZS1zZWxlY3QtY2hpbGRyZW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi45ZGU4NmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvc2luZ2xlLXNlbGVjdC1jaGlsZHJlbi5odG1sCkBA
IC0wLDAgKzEsNzQgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cisg
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgaWQ9ImJvZHkiPgorCis8c2VsZWN0IGlkPSJz
ZWxlY3RFbGVtZW50IiB0aXRsZT0ic2VsZWN0RWxlbWVudCI+CisgICAgPG9wdGlvbiBTRUxFQ1RF
RD5PcHRpb24gMTwvb3B0aW9uPgorICAgIDxvcHRpb24+T3B0aW9uIDI8L29wdGlvbj4KKyAgICA8
b3B0aW9uIERJU0FCTEVEPk9wdGlvbiAzPC9vcHRpb24+Cis8L3NlbGVjdD4KKworPHA+VGhpcyB0
ZXN0cyB0aGF0IG5vbi1tdWx0aXBsZSBzZWxlY3QgZWxlbWVudHMgZXhwb3NlIHRoZWlyIGxpc3Qg
b3B0aW9ucy48L3A+CisKKzxwIGlkPSJub3REUlQiPlRoaXMgdGVzdCBzaG91bGQgb25seSBiZSBy
dW4gaW5zaWRlIG9mIER1bXBSZW5kZXJUcmVlLjwvcD4KKworPHAgaWQ9ImNvbnNvbGUiPjwvcD4K
KworPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBkdW1wTGlzdE9wdGlvbkF0dHJpYnV0ZXMobGlzdCkg
eworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QuY2hpbGRyZW5Db3VudDsgKytpKSB7
CisgICAgICAgICAgICB2YXIgb3B0aW9uID0gbGlzdC5jaGlsZEF0SW5kZXgoaSk7CisgICAgICAg
ICAgICBkZWJ1Zygnb3B0aW9uLnRpdGxlOiAnICsgb3B0aW9uLnRpdGxlKTsKKyAgICAgICAgICAg
IGRlYnVnKCdvcHRpb24ucm9sZTogJyArIG9wdGlvbi5yb2xlKTsKKyAgICAgICAgICAgIGRlYnVn
KCdvcHRpb24ud2lkdGg6ICcgKyBvcHRpb24ud2lkdGgpOworICAgICAgICAgICAgZGVidWcoJ29w
dGlvbi5oZWlnaHQ6ICcgKyBvcHRpb24uaGVpZ2h0KTsKKyAgICAgICAgICAgIGRlYnVnKCdvcHRp
b24ueDogJyArIG9wdGlvbi54KTsKKyAgICAgICAgICAgIGRlYnVnKCdvcHRpb24ueTogJyArIG9w
dGlvbi55KTsKKyAgICAgICAgICAgIGRlYnVnKCdvcHRpb24uaXNPZmZTY3JlZW46ICcgKyBvcHRp
b24uaXNPZmZTY3JlZW4pOworICAgICAgICAgICAgZGVidWcoJ29wdGlvbi5pc0VuYWJsZWQ6ICcg
KyBvcHRpb24uaXNFbmFibGVkKTsKKyAgICAgICAgICAgIGRlYnVnKCdvcHRpb24uaXNWaXNpYmxl
OiAnICsgb3B0aW9uLmlzVmlzaWJsZSk7CisgICAgICAgICAgICBkZWJ1Zygnb3B0aW9uLmlzU2Vs
ZWN0ZWQ6ICcgKyBvcHRpb24uaXNTZWxlY3RlZCk7CisgICAgICAgICAgICBkZWJ1Zygnb3B0aW9u
LmlzU2VsZWN0YWJsZTogJyArIG9wdGlvbi5pc1NlbGVjdGFibGUpOworICAgICAgICAgICAgZGVi
dWcoIiIpOworICAgICAgICB9CisgICAgICAgIGRlYnVnKCItLS1cbiIpOworICAgIH0KKyAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyICYmIHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcikgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90RFJUIikuc3R5
bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VsZWN0
RWxlbWVudCIpLmZvY3VzKCk7CisgICAgICAgIHZhciBzZWxlY3RFbGVtZW50ID0gYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CisgICAgICAgIHNob3VsZEJlKCdzZWxlY3RF
bGVtZW50LnJvbGUnLCAnImNvbWJvIGJveCInKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgnc2Vs
ZWN0RWxlbWVudC5pc011bHRpU2VsZWN0YWJsZScpOworICAgICAgICBkZWJ1ZygiIik7CisKKyAg
ICAgICAgdmFyIGxpc3QgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC5j
aGlsZEF0SW5kZXgoMCk7CisgICAgICAgIHNob3VsZEJlKCdsaXN0LnJvbGUnLCAnImxpc3QiJyk7
CisgICAgICAgIHNob3VsZEJlRmFsc2UoJ2xpc3QuaXNWaXNpYmxlJyk7CisgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgnbGlzdC5pc09mZlNjcmVlbicpOworICAgICAgICBkZWJ1ZygiIik7CisKKyAgICAg
ICAgZHVtcExpc3RPcHRpb25BdHRyaWJ1dGVzKGxpc3QpOworCisgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJzZWxlY3RFbGVtZW50Iikuc2VsZWN0ZWRJbmRleCA9IDE7CisgICAgICAg
IGR1bXBMaXN0T3B0aW9uQXR0cmlidXRlcyhsaXN0KTsKKworICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic2VsZWN0RWxlbWVudCIpLnNlbGVjdGVkSW5kZXggPSAwOworICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VsZWN0RWxlbWVudCIpLmRpc2FibGVkID0gdHJ1ZTsK
KyAgICAgICAgZHVtcExpc3RPcHRpb25BdHRyaWJ1dGVzKGxpc3QpOworCisgICAgICAgIC8vIFRl
c3QgdGhhdCBhY2Nlc3NpbmcgYSBkZXRhY2hlZCA8b3B0aW9uPiBkb2VzIG5vdCBjcmFzaC4KKyAg
ICAgICAgdmFyIG9wdGlvbiA9IGxpc3QuY2hpbGRBdEluZGV4KDApOworICAgICAgICBzaG91bGRC
ZVRydWUoJ29wdGlvbi53aWR0aCAhPSAwJyk7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJzZWxlY3RFbGVtZW50Iikub3B0aW9uc1swXSA9IG51bGw7CisgICAgICAgIHNob3VsZEJl
VHJ1ZSgnb3B0aW9uLndpZHRoID09IDAnKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggMjM4NTBjZi4uMDMzM2QzMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNjEgQEAKKzIwMTAtMDEtMTcgIEpvbiBI
b25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNvbT4KKworICAgICAgICBNU0FBOiBUaGUgY2hp
bGQgPG9wdGlvbj4gZWxlbWVudHMgb2YgYSBub24tbXVsdGlwbGUgPHNlbGVjdD4gYXJlIG5vdAor
ICAgICAgICBleHBvc2VkCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMzNzczCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTUwNTU2PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZXhwb3NlcyB0
aGUgY2hpbGQgPG9wdGlvbj4gZWxlbWVudHMgaW4gYSBmb3JtYXQgc2ltaWxhciB0bworICAgICAg
ICBGaXJlZm94J3M6IHRoZSA8c2VsZWN0PiBlbGVtZW50IGhhcyBvbmUgY2hpbGQsIGEgaGlkZGVu
IGxpc3Qgb2JqZWN0LAorICAgICAgICBhbmQgdGhpcyBsaXN0IGhhcyBhcyBpdHMgY2hpbGRyZW4g
dGhlIDxvcHRpb24+IGVsZW1lbnRzLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAg
ICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgQWRkIG5ldyBmaWxlcyB0byBwcm9qZWN0LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmdldE9y
Q3JlYXRlKToKKyAgICAgICAgSWYgdGhlIGVsZW1lbnQgaXMgYSBSZW5kZXJNZW51TGlzdCwgY3Jl
YXRlIGFuIEFjY2Vzc2liaWxpdHlNZW51TGlzdC4KKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OmdldE9yQ3JlYXRlKToKKyAgICAgICAgQWRkIG5ldyB0eXBlcyB0byBjcmVhdGUgYnkg
cm9sZSB2YWx1ZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVM
aXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6
OkFjY2Vzc2liaWxpdHlNZW51TGlzdCk6CisgICAgICAgIENhbGwgdGhlIGJhc2UgY2xhc3MgY29u
c3RydWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmFkZENo
aWxkcmVuKToKKyAgICAgICAgQ3JlYXRlIGEgQWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlz
dC4gSWYgdGhlIHBsYXRmb3JtIGlnbm9yZXMgaXRzCisgICAgICAgIGFjY2Vzc2liaWxpdHksIHJl
bW92ZSBpdCBmcm9tIHRoZSBvYmplY3QgY2FjaGUgYW5kIHJldHVybiBlYXJseS4KKyAgICAgICAg
T3RoZXJ3aXNlLCBzZXQgaXRzIHBhcmVudCBvYmplY3QgdG8gdGhpcyBvYmplY3QsIGFkZCBpdCB0
byBvdXIgbGlzdCBvZgorICAgICAgICBjaGlsZHJlbiwgYW5kIHRlbGwgaXQgdG8gYWRkIGl0cyBj
aGlsZHJlbi4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdDo6Y2hpbGRy
ZW5DaGFuZ2VkKToKKyAgICAgICAgVGVsbCBvdXIgY2hpbGQgaGlkZGVuIGxpc3QgdGhhdCBpdHMg
Y2hpbGRyZW4gY2hhbmdlZC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lbnVMaXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVM
aXN0OjpjcmVhdGUpOgorICAgICAgICBBZG9wdCBhbmQgcmV0dXJuIGEgbmV3IFJlbmRlck1lbnVM
aXN0LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0Ojppc01lbnVMaXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdDo6cm9sZVZhbHVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdDo6YWNjZXNzaWJpbGl0eUlz
SWdub3JlZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmNhblNl
dEZvY3VzQXR0cmlidXRlKToKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lbnVMaXN0SGlkZGVuTGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlzdDo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlz
dCk6CisgICAgICAgIEluaXRpYWxpemUgdGhlIHBvaW50ZXIgdG8gb3VyIHBhcmVudCBsaXN0Lgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlzdDo6cGFyZW50
T2JqZWN0KToKKyAgICAgICAgUmV0dXJuIG91ciBwYXJlbnQgbGlzdC4KKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdEhpZGRlbkxpc3Q6OmlzRW5hYmxlZCk6CisgICAgICAg
IFJldHVybiB0cnVlIGlmIG91ciBwYXJlbnQgaXMgZW5hYmxlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlNZW51TGlzdEhpZGRlbkxpc3Q6Om1lbnVMaXN0T3B0aW9uQWNjZXNzaWJp
bGl0eU9iamVjdCk6CisgICAgICAgIElmIHRoZSBlbGVtZW50IGlzIGFuIDxvcHRpb24+IGVsZW1l
bnQsIGNyZWF0ZSBhIGxpc3QgaXRlbSBmb3IgaXQsIGFuZAorICAgICAgICBzZXQgdGhlIG9iamVj
dCdzIGVsZW1lbnQgdG8gdGhpcyBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU1lbnVMaXN0SGlkZGVuTGlzdDo6YWRkQ2hpbGRyZW4pOgorICAgICAgICBXYWxrIHRoZSBz
ZWxlY3QgZWxlbWVudCdzIGNoaWxkcmVuLCBhbmQgY3JlYXRlIGxpc3QgaXRlbXMgZm9yIHRoZW0u
IEFkZAorICAgICAgICB0aGVtIHRvIG91ciBsaXN0IG9mIGNoaWxkcmVuLgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlzdDo6Y2hpbGRyZW5DaGFuZ2VkKToK
KyAgICAgICAgSWYgYW55IG9mIG91ciBjaGlsZHJlbiBoYXZlIGJlZW4gZGV0YWNoZWQgZnJvbSB0
aGUgZG9jdW1lbnQsIHJlbW92ZQorICAgICAgICB0aGVtIGZyb20gdGhlIEFYT2JqZWN0Q2FjaGUg
YW5kIGZyb20gb3VyIGNoaWxkIGxpc3QuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
TWVudUxpc3RIaWRkZW5MaXN0OjpzZXRNZW51TGlzdCk6CisKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdEhpZGRlbkxpc3QuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0OjpjcmVhdGUpOgorICAgICAg
ICBBZG9wdCBhbmQgcmV0dXJuIGFuIEFjY2Vzc2liaWxpdHlNZW51TGlzdEhpZGRlbkxpc3QuCisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0Ojppc01lbnVM
aXN0SGlkZGVuTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RI
aWRkZW5MaXN0Ojppc1Zpc2libGUpOgorICAgICAgICBSZXR1cm4gZmFsc2U7IHRoaXMgaGlkZGVu
IGxpc3QgaXMgbmV2ZXIgdmlzaWJsZS4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlN
ZW51TGlzdEhpZGRlbkxpc3Q6OmlzT2ZmU2NyZWVuKToKKyAgICAgICAgVGhlIGhpZGRlbiBsaXN0
IGlzIGFsd2F5cyBvZmZzY3JlZW4uCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVu
dUxpc3RIaWRkZW5MaXN0OjplbGVtZW50UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0OjpzaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlNZW51TGlzdEhpZGRlbkxpc3Q6OnJvbGVWYWx1ZSk6CisKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjpBY2Nlc3NpYmlsaXR5TWVu
dUxpc3RPcHRpb24pOgorICAgICAgICBJbml0aWFsaXplIHRoZSBwb2ludGVyIHRvIG91ciBwYXJl
bnQgbGlzdC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6
c2V0RWxlbWVudCk6CisgICAgICAgIEFzc2VydCB0aGF0IHRoZSBlbGVtZW50IGlzIGFuIDxvcHRp
b24+IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRp
b246OmFjdGlvbkVsZW1lbnQpOgorICAgICAgICBSZXR1cm4gb3VyIGVsZW1lbnQuCisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb246OnBhcmVudE9iamVjdCk6Cisg
ICAgICAgIFJldHVybiBvdXIgcGFyZW50IGxpc3QuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5TWVudUxpc3RPcHRpb246OmlzRW5hYmxlZCk6CisgICAgICAgIFJldHVybiB0cnVlIGlm
IHRoZSBlbGVtZW50IGl0c2VsZiBpcyBlbmFibGVkLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU1lbnVMaXN0T3B0aW9uOjppc1Zpc2libGUpOgorICAgICAgICBSZXR1cm4gdHJ1ZSBp
ZiB0aGUgZWxlbWVudCBpcyBzZWxlY3RlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlNZW51TGlzdE9wdGlvbjo6aXNPZmZTY3JlZW4pOgorICAgICAgICBSZXR1cm4gdHJ1ZSBpZiB0
aGUgb2JqZWN0IGlzIGludmlzaWJsZS4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlN
ZW51TGlzdE9wdGlvbjo6aXNTZWxlY3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5TWVudUxpc3RPcHRpb246OnNldFNlbGVjdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlNZW51TGlzdE9wdGlvbjo6bmFtZUZvck1TQUEpOgorICAgICAgICBSZXR1cm4gdGhl
IDxvcHRpb24+IGVsZW1lbnQncyB0ZXh0LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU1lbnVMaXN0T3B0aW9uOjpjYW5TZXRTZWxlY3RlZEF0dHJpYnV0ZSk6CisgICAgICAgIFJldHVy
biB0cnVlIGlmIGVuYWJsZWQuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxp
c3RPcHRpb246OmVsZW1lbnRSZWN0KToKKyAgICAgICAgUmV0dXJuIHRoZSBBY2Nlc3NpYmlsaXR5
TWVudUxpc3QncyByZWN0LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TWVudUxpc3RPcHRpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
TWVudUxpc3RPcHRpb246OmNyZWF0ZSk6CisgICAgICAgIEFkb3B0IGFuZCByZXR1cm4gYSBuZXcg
QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU1lbnVMaXN0T3B0aW9uOjpzZXRQYXJlbnRIaWRkZW5MaXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6aXNNZW51TGlzdE9wdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb246OnJvbGVWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb246OmNhbkhhdmVDaGls
ZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb246OnNp
emUpOgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICBBZGQgbmV3IHJvbGVzLgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNNZW51TGlzdCk6CisgICAgICAgIFN0dWJiZWQu
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc01lbnVMaXN0SGlkZGVu
TGlzdCk6CisgICAgICAgIFN0dWJiZWQuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
T2JqZWN0Ojppc01lbnVMaXN0T3B0aW9uKToKKyAgICAgICAgU3R1YmJlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzVmlzaWJsZSk6CisgICAgICAgIFN0dWJiZWQu
CisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FjY2Vzc2liaWxpdHlPYmplY3RD
aHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nl
c3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09iamVjdCk6CisgICAgICAgIElnbm9yZSB0aGUgbmV3
IG9iamVjdCB0eXBlLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0
eU9iamVjdEF0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojph
Y2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09iamVjdCk6CisgICAgICAgIERpdHRvLgorCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlQbGF0Zm9y
bUluY2x1ZGVzT2JqZWN0KToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L3F0L0FjY2Vzc2liaWxpdHlPYmplY3RRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09iamVjdCk6Cisg
ICAgICAgIERpdHRvLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS93aW4vQWNjZXNzaWJpbGl0
eU9iamVjdFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojph
Y2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09iamVjdCk6CisgICAgICAgIEFsbG93IHRoZSBu
ZXcgb2JqZWN0IHR5cGVzLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS93eC9BY2Nlc3NpYmls
aXR5T2JqZWN0V3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6
YWNjZXNzaWJpbGl0eVBsYXRmb3JtSW5jbHVkZXNPYmplY3QpOgorICAgICAgICBJZ25vcmUgdGhl
IG5ldyBvYmplY3QgdHlwZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvd2luL0FjY2Vzc2li
aWxpdHlPYmplY3RXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVj
dDo6YWNjZXNzaWJpbGl0eVBsYXRmb3JtSW5jbHVkZXNPYmplY3QpOgorICAgICAgICBJZiB0aGUg
b2JqZWN0IGlzIGFuIEFjY2Vzc2liaWxpdHlNZW51TGlzdEhpZGRlbkxpc3Qgb3IKKyAgICAgICAg
QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLCBpbmNsdWRlIGl0LgorCisgICAgICAgICogaHRt
bC9IVE1MT3B0aW9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxl
bWVudDo6ZGlzYWJsZWQpOgorICAgICAgICBDYWxsIG93bkVsZW1lbnREaXNhYmxlZCgpLgorCisg
ICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE9wdGlvbkVsZW1lbnQ6Om93bkVsZW1lbnREaXNhYmxlZCk6CisgICAgICAgIFJldHVybiB0aGUg
YmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlvbiBvZiBkaXNhYmxlZCwgd2hpY2ggcmV0dXJucworICAg
ICAgICB3aGV0aGVyIHRoaXMgPG9wdGlvbj4gaXRzZWxmIGlzIGRpc2FibGVkLgorCiAyMDEwLTAx
LTE3ICBNYXJ0aW4gUm9iaW5zb24gIDxtYXJ0aW4uamFtZXMucm9iaW5zb25AZ21haWwuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDA1
OTAyMTUuLmMwYzdkNDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIv
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMzE0LDYgKzMxNCwxMiBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlv
bi5oIFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMu
Y3BwIFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMu
aCBcCisJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAgXAor
CVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuaCBcCisJV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdEhpZGRlbkxpc3QuY3BwIFwKKwlX
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlzdC5oIFwK
KwlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmNwcCBc
CisJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5oIFwK
IAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgXAogCVdlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggXAogCVdlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDFhN2E0ZGYuLmI4
ZjQ5MmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCkBAIC00MDMsNiArNDAzLDEyIEBACiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5oJywKICAgICAgICAgICAgICdhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcCcsCiAgICAgICAgICAgICAnYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9scy5oJywKKyAgICAgICAgICAgICdhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAnLAorICAgICAgICAgICAgJ2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmgnLAorICAgICAgICAgICAgJ2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlzdC5jcHAnLAorICAgICAgICAgICAg
J2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlzdC5oJywKKyAgICAg
ICAgICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5jcHAnLAor
ICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmgn
LAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAnLAog
ICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oJywKICAgICAg
ICAgICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwJywKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGJjNDA4NDguLmQyNzQ5MmMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMTk5MjksNiArMTk5MjksMzAg
QEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
YWNjZXNzaWJpbGl0eVxBY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwIg0KKwkJCQk+DQorCQkJPC9G
aWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nl
c3NpYmlsaXR5TWVudUxpc3QuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGFjY2Vzc2liaWxpdHlcQWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlk
ZGVuTGlzdC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxhY2Nlc3NpYmlsaXR5XEFjY2Vzc2liaWxpdHlNZW51TGlzdEhpZGRlbkxpc3Qu
aCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGFjY2Vzc2liaWxpdHlcQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmNwcCINCisJCQkJPg0K
KwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGFjY2Vzc2liaWxp
dHlcQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQor
CQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxhY2Nlc3NpYmlsaXR5XEFjY2Vzc2liaWxp
dHlPYmplY3QuY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTIwMzgw
LDE0ICsyMDQwNCw2IEBACiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxhY2Nlc3NpYmlsaXR5XEFYT2Jq
ZWN0Q2FjaGUuY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFt
ZT0iRGVidWd8V2luMzIiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4N
Ci0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQot
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJ
TmFtZT0iUmVsZWFzZXxXaW4zMiINCiAJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KIAkJ
CQkJPg0KQEAgLTQxOTc5LDcgKzQxOTk1LDcgQEAKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxGb3J3
YXJkaW5nSGVhZGVyc1xydW50aW1lXFVTdHJpbmcuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0K
LSAgICAgICAgICAgICAgICA8RmlsZQ0KKwkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFVTdHJpbmdJbXBsLmgiDQogCQkJCQk+DQogCQkJ
CTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDE0YzQyNTcuLjdjMWZlMDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xMjQ3LDYgKzEyNDcsMTIgQEAKIAkJNzY5M0JBRDMxMDZDMkRDQTAwN0IwODIz
IC8qIFBsdWdpbkhhbHRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3NjkzQkFDRjEwNkMyRENBMDA3QjA4MjMgLyogUGx1Z2luSGFsdGVyLmNwcCAq
LzsgfTsKIAkJNzY5M0JBRDQxMDZDMkRDQTAwN0IwODIzIC8qIFBsdWdpbkhhbHRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzY5M0JBRDAxMDZDMkRD
QTAwN0IwODIzIC8qIFBsdWdpbkhhbHRlci5oICovOyB9OwogCQk3NjkzQkFENTEwNkMyRENBMDA3
QjA4MjMgLyogUGx1Z2luSGFsdGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3NjkzQkFEMTEwNkMyRENBMDA3QjA4MjMgLyogUGx1Z2luSGFs
dGVyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJNzZDREQyRjIxMTAzREE2NjAwNjgwNTIxIC8qIEFjY2Vzc2liaWxpdHlNZW51TGlzdC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NkNERDJF
QzExMDNEQTY2MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcCAqLzsgfTsKKwkJ
NzZDREQyRjMxMTAzREE2NjAwNjgwNTIxIC8qIEFjY2Vzc2liaWxpdHlNZW51TGlzdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzZDREQyRUQxMTAzREE2
NjAwNjgwNTIxIC8qIEFjY2Vzc2liaWxpdHlNZW51TGlzdC5oICovOyB9OworCQk3NkNERDJGNDEx
MDNEQTY2MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlzdC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NkNERDJFRTExMDNE
QTY2MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlzdC5jcHAgKi87IH07
CisJCTc2Q0REMkY1MTEwM0RBNjYwMDY4MDUyMSAvKiBBY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRk
ZW5MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NkNERDJFRjExMDNEQTY2MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlz
dC5oICovOyB9OworCQk3NkNERDJGNjExMDNEQTY2MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0eU1l
bnVMaXN0T3B0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc2Q0REMkYwMTEwM0RBNjYwMDY4MDUyMSAvKiBBY2Nlc3NpYmlsaXR5TWVudUxpc3RP
cHRpb24uY3BwICovOyB9OworCQk3NkNERDJGNzExMDNEQTY2MDA2ODA1MjEgLyogQWNjZXNzaWJp
bGl0eU1lbnVMaXN0T3B0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3NkNERDJGMTExMDNEQTY2MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0eU1lbnVM
aXN0T3B0aW9uLmggKi87IH07CiAJCTc5QUM5MjE4MTA5OTQ1QzgwMDIxMjY2RSAvKiBKU0NvbXBv
c2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzlBQzkyMTYxMDk5NDVDODAwMjEyNjZFIC8qIEpTQ29tcG9zaXRpb25FdmVudC5jcHAg
Ki87IH07CiAJCTc5QUM5MjE5MTA5OTQ1QzgwMDIxMjY2RSAvKiBKU0NvbXBvc2l0aW9uRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5QUM5MjE3
MTA5OTQ1QzgwMDIxMjY2RSAvKiBKU0NvbXBvc2l0aW9uRXZlbnQuaCAqLzsgfTsKIAkJNzlGMkY1
QTExMDkxOTM5QTAwMEQ4N0NCIC8qIENvbXBvc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlGMkY1OUUxMDkxOTM5QTAwMEQ4N0NC
IC8qIENvbXBvc2l0aW9uRXZlbnQuY3BwICovOyB9OwpAQCAtNjYxMCw2ICs2NjE2LDEyIEBACiAJ
CTc2OTNCQUNGMTA2QzJEQ0EwMDdCMDgyMyAvKiBQbHVnaW5IYWx0ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGx1Z2luSGFsdGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzY5M0JBRDAxMDZDMkRDQTAwN0IwODIzIC8qIFBsdWdpbkhhbHRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbHVnaW5IYWx0ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzY5M0JBRDExMDZDMkRDQTAwN0IwODIzIC8qIFBs
dWdpbkhhbHRlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbHVn
aW5IYWx0ZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzZDREQyRUMx
MTAzREE2NjAwNjgwNTIxIC8qIEFjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NkNERDJFRDExMDNEQTY2MDA2ODA1MjEgLyogQWNj
ZXNzaWJpbGl0eU1lbnVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFj
Y2Vzc2liaWxpdHlNZW51TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NkNE
RDJFRTExMDNEQTY2MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlzdC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5TWVu
dUxpc3RIaWRkZW5MaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzZDREQy
RUYxMTAzREE2NjAwNjgwNTIxIC8qIEFjY2Vzc2liaWxpdHlNZW51TGlzdEhpZGRlbkxpc3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlk
ZGVuTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NkNERDJGMDExMDNEQTY2
MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc2Q0REMkYxMTEwM0RBNjYwMDY4MDUyMSAv
KiBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTc5QUM5MjE2MTA5OTQ1QzgwMDIxMjY2RSAvKiBKU0NvbXBvc2l0aW9uRXZl
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDb21wb3NpdGlv
bkV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlBQzkyMTcxMDk5NDVD
ODAwMjEyNjZFIC8qIEpTQ29tcG9zaXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0NvbXBvc2l0aW9uRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzlGMkY1OUUxMDkxOTM5QTAwMEQ4N0NCIC8qIENvbXBvc2l0aW9uRXZlbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tcG9zaXRpb25FdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDU5NCw2ICsxMDYwNiwxMiBAQAogCQkJ
CTI5QTgxMjI0MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5o
ICovLAogCQkJCTA3QjAxMTNDMTAzMjI0MTkwMEZCREMzMyAvKiBBY2Nlc3NpYmlsaXR5TWVkaWFD
b250cm9scy5jcHAgKi8sCiAJCQkJMDdCMDExM0UxMDMyMjQyMjAwRkJEQzMzIC8qIEFjY2Vzc2li
aWxpdHlNZWRpYUNvbnRyb2xzLmggKi8sCisJCQkJNzZDREQyRUMxMTAzREE2NjAwNjgwNTIxIC8q
IEFjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAgKi8sCisJCQkJNzZDREQyRUQxMTAzREE2NjAwNjgw
NTIxIC8qIEFjY2Vzc2liaWxpdHlNZW51TGlzdC5oICovLAorCQkJCTc2Q0REMkVFMTEwM0RBNjYw
MDY4MDUyMSAvKiBBY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0LmNwcCAqLywKKwkJCQk3
NkNERDJFRjExMDNEQTY2MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlz
dC5oICovLAorCQkJCTc2Q0REMkYwMTEwM0RBNjYwMDY4MDUyMSAvKiBBY2Nlc3NpYmlsaXR5TWVu
dUxpc3RPcHRpb24uY3BwICovLAorCQkJCTc2Q0REMkYxMTEwM0RBNjYwMDY4MDUyMSAvKiBBY2Nl
c3NpYmlsaXR5TWVudUxpc3RPcHRpb24uaCAqLywKIAkJCQkyOUE4MTIxRTBGQkI5QzFEMDA1MTAy
OTMgLyogQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgKi8sCiAJCQkJMjlBODEyMTgwRkJCOUMxRDAw
NTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlPYmplY3QuaCAqLywKIAkJCQkyOUE4MTIwODBGQkI5QzFE
MDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgKi8sCkBAIC0xODM0OSw2
ICsxODM2Nyw5IEBACiAJCQkJNkU0RTkxQUQxMEY3RkIzMTAwQTI3NzlDIC8qIENhbnZhc0NvbnRl
eHRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RTRFOTFBRjEwRjdGQjMxMDBBMjc3
OUMgLyogV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkVFOEE3
NzMxMEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNzZDREQyRjMxMTAzREE2NjAwNjgwNTIxIC8qIEFjY2Vzc2liaWxpdHlNZW51
TGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzZDREQyRjUxMTAzREE2NjAwNjgwNTIxIC8qIEFj
Y2Vzc2liaWxpdHlNZW51TGlzdEhpZGRlbkxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTc2Q0RE
MkY3MTEwM0RBNjYwMDY4MDUyMSAvKiBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpAQCAtMjA1MTMsNiArMjA1MzQsOSBAQAogCQkJCTZFNEU5MUFDMTBGN0ZCMzEw
MEEyNzc5QyAvKiBDYW52YXNDb250ZXh0QXR0cmlidXRlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk2RTRFOTFBRTEwRjdGQjMxMDBBMjc3OUMgLyogV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk2RUU4QTc3MjEwRjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENv
bnRleHRBdHRyaWJ1dGVzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc2Q0REMkYyMTEwM0RBNjYw
MDY4MDUyMSAvKiBBY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NzZDREQyRjQxMTAzREE2NjAwNjgwNTIxIC8qIEFjY2Vzc2liaWxpdHlNZW51TGlzdEhpZGRlbkxp
c3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzZDREQyRjYxMTAzREE2NjAwNjgwNTIxIC8qIEFj
Y2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCA5ZWZmNWI2Li45MTQ2Yzg2IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0zNyw2ICszNyw5IEBACiAjaW5j
bHVkZSAiQWNjZXNzaWJpbGl0eUxpc3RCb3guaCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5TGlz
dEJveE9wdGlvbi5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmgiCisj
aW5jbHVkZSAiQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0
eU1lbnVMaXN0SGlkZGVuTGlzdC5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlNZW51TGlzdE9w
dGlvbi5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRl
ICJBY2Nlc3NpYmlsaXR5U2xpZGVyLmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVRhYmxlLmgi
CkBAIC0xNDEsNiArMTQ0LDggQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6
Z2V0T3JDcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICAgICAgUmVmUHRyPEFjY2Vz
c2liaWxpdHlPYmplY3Q+IG5ld09iaiA9IDA7CiAgICAgICAgIGlmIChyZW5kZXJlci0+aXNMaXN0
Qm94KCkpCiAgICAgICAgICAgICBuZXdPYmogPSBBY2Nlc3NpYmlsaXR5TGlzdEJveDo6Y3JlYXRl
KHJlbmRlcmVyKTsKKyAgICAgICAgZWxzZSBpZiAocmVuZGVyZXItPmlzTWVudUxpc3QoKSkKKyAg
ICAgICAgICAgIG5ld09iaiA9IEFjY2Vzc2liaWxpdHlNZW51TGlzdDo6Y3JlYXRlKHJlbmRlcmVy
KTsKIAogICAgICAgICAvLyBJZiB0aGUgbm9kZSBpcyBhcmlhIHJvbGU9Imxpc3QiIG9yIHRoZSBh
cmlhIHJvbGUgaXMgZW1wdHkgYW5kIGl0cyBhIHVsL29sL2RsIHR5cGUgKGl0IHNob3VsZG4ndCBi
ZSBhIGxpc3QgaWYgYXJpYSBzYXlzIG90aGVyd2lzZSkuIAogICAgICAgICBlbHNlIGlmIChub2Rl
ICYmICgobm9kZUlzQXJpYVR5cGUobm9kZSwgImxpc3QiKSB8fCBub2RlSXNBcmlhVHlwZShub2Rl
LCAiZGlyZWN0b3J5IikpCkBAIC0yMDksNiArMjE0LDEyIEBAIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IEFYT2JqZWN0Q2FjaGU6OmdldE9yQ3JlYXRlKEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUpCiAgICAg
Y2FzZSBTbGlkZXJUaHVtYlJvbGU6CiAgICAgICAgIG9iaiA9IEFjY2Vzc2liaWxpdHlTbGlkZXJU
aHVtYjo6Y3JlYXRlKCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVudUxpc3RIaWRkZW5M
aXN0Um9sZToKKyAgICAgICAgb2JqID0gQWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlzdDo6
Y3JlYXRlKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVudUxpc3RPcHRpb25Sb2xlOgor
ICAgICAgICBvYmogPSBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb246OmNyZWF0ZSgpOworICAg
ICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBvYmogPSAwOwogICAgIH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwIGIv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzJjMzAwZgotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwCkBAIC0wLDAgKzEs
NzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlNZW51TGlzdC5oIgorCisj
aW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlNZW51TGlz
dEhpZGRlbkxpc3QuaCIKKyNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OkFjY2Vzc2liaWxpdHlNZW51TGlzdChS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyKQorICAgIDogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdChy
ZW5kZXJlcikKK3sKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmFkZENoaWxkcmVu
KCkKK3sKKyAgICBtX2hhdmVDaGlsZHJlbiA9IHRydWU7CisKKyAgICBBWE9iamVjdENhY2hlKiBj
YWNoZSA9IG1fcmVuZGVyZXItPmRvY3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKTsKKworICAgIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIGxpc3QgPSBjYWNoZS0+Z2V0T3JDcmVhdGUoTWVudUxpc3RIaWRk
ZW5MaXN0Um9sZSk7CisgICAgaWYgKCFsaXN0KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
bGlzdC0+YWNjZXNzaWJpbGl0eVBsYXRmb3JtSW5jbHVkZXNPYmplY3QoKSA9PSBJZ25vcmVPYmpl
Y3QpIHsKKyAgICAgICAgY2FjaGUtPnJlbW92ZShsaXN0LT5heE9iamVjdElEKCkpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eU1lbnVMaXN0
SGlkZGVuTGlzdCo+KGxpc3QpLT5zZXRNZW51TGlzdCh0aGlzKTsKKyAgICBtX2NoaWxkcmVuLmFw
cGVuZChsaXN0KTsKKworICAgIGxpc3QtPmFkZENoaWxkcmVuKCk7Cit9CisKK3ZvaWQgQWNjZXNz
aWJpbGl0eU1lbnVMaXN0OjpjaGlsZHJlbkNoYW5nZWQoKQoreworICAgIGlmIChtX2NoaWxkcmVu
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKG1fY2hpbGRyZW4uc2l6
ZSgpID09IDEpOworICAgIG1fY2hpbGRyZW5bMF0tPmNoaWxkcmVuQ2hhbmdlZCgpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU1lbnVMaXN0LmggYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1lbnVMaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2RiZjMw
YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TWVudUxpc3QuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQWNjZXNzaWJpbGl0eU1lbnVMaXN0X2gKKyNkZWZp
bmUgQWNjZXNzaWJpbGl0eU1lbnVMaXN0X2gKKworI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmpl
Y3QuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgQWNjZXNzaWJpbGl0eU1lbnVMaXN0OworY2xhc3MgQWNjZXNz
aWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlzdDsKK2NsYXNzIEhUTUxPcHRpb25FbGVtZW50OworCitj
bGFzcyBBY2Nlc3NpYmlsaXR5TWVudUxpc3QgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU1lbnVM
aXN0PiBjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikgeyByZXR1cm4gYWRvcHRSZWYobmV3
IEFjY2Vzc2liaWxpdHlNZW51TGlzdChyZW5kZXJlcikpOyB9CisKK3ByaXZhdGU6CisgICAgQWNj
ZXNzaWJpbGl0eU1lbnVMaXN0KFJlbmRlck9iamVjdCogcmVuZGVyZXIpOworCisgICAgdmlydHVh
bCBib29sIGlzTWVudUxpc3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCB7IHJldHVybiBQb3BVcEJ1dHRvblJv
bGU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGNhblNldEZvY3VzQXR0cmlidXRlKCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkcmVuKCk7
CisgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZCgpOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQWNjZXNzaWJpbGl0eU1lbnVMaXN0X2gKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0
LmNwcCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5M
aXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjUzYjM0Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlz
dEhpZGRlbkxpc3QuY3BwCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJB
Y2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0LmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmgiCisjaW5jbHVkZSAiQWNj
ZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5j
bHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitBY2Nl
c3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0OjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5M
aXN0KCkKKyAgICA6IG1fbWVudUxpc3QoMCkKK3sKK30KKworQWNjZXNzaWJpbGl0eU9iamVjdCog
QWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlzdDo6cGFyZW50T2JqZWN0KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9tZW51TGlzdDsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RI
aWRkZW5MaXN0Ojppc0VuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX21lbnVMaXN0LT5p
c0VuYWJsZWQoKTsKK30KKworQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uKiBBY2Nlc3NpYmls
aXR5TWVudUxpc3RIaWRkZW5MaXN0OjptZW51TGlzdE9wdGlvbkFjY2Vzc2liaWxpdHlPYmplY3Qo
SFRNTEVsZW1lbnQqIGVsZW1lbnQpIGNvbnN0Cit7CisgICAgaWYgKCFlbGVtZW50IHx8ICFlbGVt
ZW50LT5oYXNUYWdOYW1lKG9wdGlvblRhZykpCisgICAgICAgIHJldHVybiAwOworCisgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0ID0gbV9tZW51TGlzdC0+cmVuZGVyZXIoKS0+ZG9jdW1l
bnQoKS0+YXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShNZW51TGlzdE9wdGlvblJvbGUpOwor
ICAgIEFTU0VSVChvYmplY3QtPmlzTWVudUxpc3RPcHRpb24oKSk7CisKKyAgICBBY2Nlc3NpYmls
aXR5TWVudUxpc3RPcHRpb24qIG9wdGlvbiA9IHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlNZW51
TGlzdE9wdGlvbio+KG9iamVjdCk7CisgICAgb3B0aW9uLT5zZXRFbGVtZW50KGVsZW1lbnQpOwor
CisgICAgcmV0dXJuIG9wdGlvbjsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRk
ZW5MaXN0OjphZGRDaGlsZHJlbigpCit7CisgICAgTm9kZSogc2VsZWN0Tm9kZSA9IG1fbWVudUxp
c3QtPnJlbmRlcmVyKCktPm5vZGUoKTsKKyAgICBpZiAoIXNlbGVjdE5vZGUpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1faGF2ZUNoaWxkcmVuID0gdHJ1ZTsKKworICAgIGNvbnN0IFZlY3RvcjxF
bGVtZW50Kj4mIGxpc3RJdGVtcyA9IHN0YXRpY19jYXN0PEhUTUxTZWxlY3RFbGVtZW50Kj4oc2Vs
ZWN0Tm9kZSktPmxpc3RJdGVtcygpOworICAgIHVuc2lnbmVkIGxlbmd0aCA9IGxpc3RJdGVtcy5z
aXplKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAg
ICAgIC8vIFRoZSBjYXN0IHRvIEhUTUxFbGVtZW50IGJlbG93IGlzIHNhZmUgYmVjYXVzZSB0aGUg
b25seSBvdGhlciBwb3NzaWJsZSBsaXN0SXRlbSB0eXBlCisgICAgICAgIC8vIHdvdWxkIGJlIGEg
V01MRWxlbWVudCwgYnV0IFdNTCBidWlsZHMgZG9uJ3QgdXNlIGFjY2Vzc2JpbGl0eSBmZWF0dXJl
cyBhdCBhbGwuCisgICAgICAgIEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbiogb3B0aW9uID0g
bWVudUxpc3RPcHRpb25BY2Nlc3NpYmlsaXR5T2JqZWN0KHN0YXRpY19jYXN0PEhUTUxFbGVtZW50
Kj4obGlzdEl0ZW1zW2ldKSk7CisgICAgICAgIGlmIChvcHRpb24pIHsKKyAgICAgICAgICAgIG9w
dGlvbi0+c2V0UGFyZW50SGlkZGVuTGlzdCh0aGlzKTsKKyAgICAgICAgICAgIG1fY2hpbGRyZW4u
YXBwZW5kKG9wdGlvbik7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0
eU1lbnVMaXN0SGlkZGVuTGlzdDo6Y2hpbGRyZW5DaGFuZ2VkKCkKK3sKKyAgICBmb3IgKHNpemVf
dCBpID0gbV9jaGlsZHJlbi5zaXplKCk7IGkgPiAwIDsgLS1pKSB7CisgICAgICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIGNoaWxkID0gbV9jaGlsZHJlbltpIC0gMV0uZ2V0KCk7CisgICAgICAgIGlm
IChjaGlsZC0+YWN0aW9uRWxlbWVudCgpICYmICFjaGlsZC0+YWN0aW9uRWxlbWVudCgpLT5hdHRh
Y2hlZCgpKSB7CisgICAgICAgICAgICBtX21lbnVMaXN0LT5yZW5kZXJlcigpLT5kb2N1bWVudCgp
LT5heE9iamVjdENhY2hlKCktPnJlbW92ZShjaGlsZC0+YXhPYmplY3RJRCgpKTsKKyAgICAgICAg
ICAgIG1fY2hpbGRyZW4ucmVtb3ZlKGkgLSAxKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9p
ZCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0OjpzZXRNZW51TGlzdChBY2Nlc3NpYmls
aXR5TWVudUxpc3QqIG1lbnVMaXN0KQoreworICAgIEFTU0VSVF9BUkcobWVudUxpc3QsIG1lbnVM
aXN0KTsKKyAgICBBU1NFUlQoIW1fbWVudUxpc3QpOworICAgIG1fbWVudUxpc3QgPSBtZW51TGlz
dDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdEhpZGRlbkxpc3QuaCBiL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGZkN2IwYwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0LmgKQEAgLTAs
MCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIEFjY2Vzc2liaWxpdHlNZW51TGlzdEhpZGRlbkxpc3RfaAorI2RlZmluZSBBY2Nl
c3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0X2gKKworI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlP
YmplY3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBY2Nlc3NpYmlsaXR5TWVu
dUxpc3Q7CitjbGFzcyBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb247CitjbGFzcyBIVE1MRWxl
bWVudDsKKworY2xhc3MgQWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlzdCA6IHB1YmxpYyBB
Y2Nlc3NpYmlsaXR5T2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nl
c3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgQWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlzdCk7IH0KKworICAgIHZvaWQgc2V0TWVu
dUxpc3QoQWNjZXNzaWJpbGl0eU1lbnVMaXN0Kik7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNFbmFi
bGVkKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgQWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVu
TGlzdCgpOworCisgICAgdmlydHVhbCBib29sIGlzTWVudUxpc3RIaWRkZW5MaXN0KCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQorCisgICAgdmlydHVhbCBib29sIGlzVmlzaWJsZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzT2ZmU2NyZWVuKCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgSW50UmVjdCBlbGVtZW50UmVjdCgpIGNvbnN0IHsg
cmV0dXJuIEludFJlY3QoKTsgfQorICAgIHZpcnR1YWwgSW50U2l6ZSBzaXplKCkgY29uc3QgeyBy
ZXR1cm4gSW50U2l6ZSgpOyB9CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFs
dWUoKSBjb25zdCB7IHJldHVybiBMaXN0Um9sZTsgfQorCisgICAgdmlydHVhbCBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hp
bGRyZW4oKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKCk7CisKKyAgICBBY2Nl
c3NpYmlsaXR5TWVudUxpc3RPcHRpb24qIG1lbnVMaXN0T3B0aW9uQWNjZXNzaWJpbGl0eU9iamVj
dChIVE1MRWxlbWVudCopIGNvbnN0OworCisgICAgQWNjZXNzaWJpbGl0eU1lbnVMaXN0KiBtX21l
bnVMaXN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQWNjZXNz
aWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlzdF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmNwcCBiL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjk2NmFhMzUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmNwcApAQCAtMCwwICsxLDEwOSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmgiCisK
KyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU1lbnVM
aXN0SGlkZGVuTGlzdC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxP
cHRpb25FbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNl
IEhUTUxOYW1lczsKKworQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjpBY2Nlc3NpYmlsaXR5
TWVudUxpc3RPcHRpb24oKQorICAgIDogbV9saXN0KDApCit7Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eU1lbnVMaXN0T3B0aW9uOjpzZXRFbGVtZW50KEhUTUxFbGVtZW50KiBlbGVtZW50KQorewor
ICAgIEFTU0VSVF9BUkcoZWxlbWVudCwgZWxlbWVudC0+aGFzVGFnTmFtZShvcHRpb25UYWcpKTsK
KyAgICBtX2VsZW1lbnQgPSBlbGVtZW50OworfQorCitFbGVtZW50KiBBY2Nlc3NpYmlsaXR5TWVu
dUxpc3RPcHRpb246OmFjdGlvbkVsZW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBtX2VsZW1l
bnQuZ2V0KCk7Cit9CisKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlNZW51TGlz
dE9wdGlvbjo6cGFyZW50T2JqZWN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9saXN0OworfQor
Citib29sIEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6aXNFbmFibGVkKCkgY29uc3QKK3sK
KyAgICAvLyBkaXNhYmxlZCgpIHJldHVybnMgdHJ1ZSBpZiB0aGUgcGFyZW50IDxzZWxlY3Q+IGVs
ZW1lbnQgaXMgZGlzYWJsZWQsCisgICAgLy8gd2hpY2ggd2UgZG9uJ3Qgd2FudC4KKyAgICByZXR1
cm4gIXN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4obV9lbGVtZW50LmdldCgpKS0+b3du
RWxlbWVudERpc2FibGVkKCk7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9u
Ojppc1Zpc2libGUoKSBjb25zdAoreworICAgIC8vIEluIGEgc2luZ2xlLW9wdGlvbiBzZWxlY3Qs
IG9ubHkgdGhlIHNlbGVjdGVkIGl0ZW0gaXMgY29uc2lkZXJlZCB2aXNpYmxlLgorICAgIHJldHVy
biBpc1NlbGVjdGVkKCk7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjpp
c09mZlNjcmVlbigpIGNvbnN0Cit7CisgICAgLy8gSW52aXNpYmxlIGxpc3Qgb3B0aW9ucyBhcmUg
Y29uc2lkZXJlZCB0byBiZSBvZmZzY3JlZW4uCisgICAgcmV0dXJuICFpc1Zpc2libGUoKTsKK30K
KworYm9vbCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb246OmlzU2VsZWN0ZWQoKSBjb25zdAor
eworICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+KG1fZWxlbWVudC5n
ZXQoKSktPnNlbGVjdGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9u
OjpzZXRTZWxlY3RlZChib29sIGIpCit7CisgICAgc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1l
bnQqPihtX2VsZW1lbnQuZ2V0KCkpLT5zZXRTZWxlY3RlZChiKTsKK30KKworU3RyaW5nIEFjY2Vz
c2liaWxpdHlNZW51TGlzdE9wdGlvbjo6bmFtZUZvck1TQUEoKSBjb25zdAoreworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+KG1fZWxlbWVudC5nZXQoKSktPnRleHQo
KTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb246OmNhblNldFNlbGVjdGVk
QXR0cmlidXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNFbmFibGVkKCk7Cit9CisKK0ludFJl
Y3QgQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjplbGVtZW50UmVjdCgpIGNvbnN0Cit7Cisg
ICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50ID0gcGFyZW50T2JqZWN0KCk7CisgICAgQVNT
RVJUKHBhcmVudC0+aXNNZW51TGlzdEhpZGRlbkxpc3QoKSk7CisKKyAgICBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBncmFuZHBhcmVudCA9IHBhcmVudC0+cGFyZW50T2JqZWN0KCk7CisgICAgQVNTRVJU
KGdyYW5kcGFyZW50LT5pc01lbnVMaXN0KCkpOworCisgICAgcmV0dXJuIGdyYW5kcGFyZW50LT5l
bGVtZW50UmVjdCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmggYi9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNjMWEwYwotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uaApAQCAtMCww
ICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uX2gKKyNkZWZpbmUgQWNjZXNzaWJp
bGl0eU1lbnVMaXN0T3B0aW9uX2gKKworI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRk
ZW5MaXN0OworY2xhc3MgSFRNTEVsZW1lbnQ7CisKK2NsYXNzIEFjY2Vzc2liaWxpdHlNZW51TGlz
dE9wdGlvbiA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24+IGNyZWF0ZSgpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24pOyB9CisKKyAgICB2
b2lkIHNldEVsZW1lbnQoSFRNTEVsZW1lbnQqIGVsZW1lbnQpOworICAgIHZvaWQgc2V0UGFyZW50
SGlkZGVuTGlzdChBY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0KiBsaXN0KSB7IG1fbGlz
dCA9IGxpc3Q7IH0KKworcHJpdmF0ZToKKyAgICBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24o
KTsKKworICAgIHZpcnR1YWwgYm9vbCBpc01lbnVMaXN0T3B0aW9uKCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQorCisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25z
dCB7IHJldHVybiBMaXN0SXRlbVJvbGU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxk
cmVuKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIEludFNpemUgc2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIGVsZW1lbnRSZWN0KCkuc2l6ZSgpOyB9CisKKyAgICB2aXJ0dWFsIEVs
ZW1lbnQqIGFjdGlvbkVsZW1lbnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlP
YmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc0VuYWJsZWQo
KSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNWaXNpYmxlKCkgY29uc3Q7CisgICAgdmlydHVh
bCBib29sIGlzT2ZmU2NyZWVuKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzU2VsZWN0ZWQo
KSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmluZyBuYW1lRm9yTVNBQSgpIGNvbnN0OworICAgIHZp
cnR1YWwgdm9pZCBzZXRTZWxlY3RlZChib29sKTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0U2Vs
ZWN0ZWRBdHRyaWJ1dGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEludFJlY3QgZWxlbWVudFJlY3Qo
KSBjb25zdDsKKworICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gbV9lbGVtZW50OworICAgIEFjY2Vz
c2liaWxpdHlNZW51TGlzdEhpZGRlbkxpc3QqIG1fbGlzdDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbl9oCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCBkN2JjYTY3Li41
ZjMwN2E2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oCisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgK
QEAgLTE3MCw2ICsxNzAsOCBAQCBlbnVtIEFjY2Vzc2liaWxpdHlSb2xlIHsKICAgICBEaXJlY3Rv
cnlSb2xlLAogICAgIEVkaXRhYmxlVGV4dFJvbGUsCiAgICAgTGlzdEl0ZW1Sb2xlLAorICAgIE1l
bnVMaXN0SGlkZGVuTGlzdFJvbGUsCisgICAgTWVudUxpc3RPcHRpb25Sb2xlLAogCiAgICAgLy8g
QVJJQSBHcm91cGluZyByb2xlcwogICAgIExhbmRtYXJrQXBwbGljYXRpb25Sb2xlLApAQCAtMjgz
LDYgKzI4NSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNGaWVsZHNldCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzR3JvdXAoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0FSSUFUcmVlR3JpZFJvdygpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzTWVudUxpc3QoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc01lbnVMaXN0SGlkZGVuTGlzdCgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzTWVudUxpc3RPcHRp
b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNUYWJMaXN0KCkgY29uc3Qg
eyByZXR1cm4gcm9sZVZhbHVlKCkgPT0gVGFiTGlzdFJvbGU7IH0KICAgICBib29sIGlzVGFiSXRl
bSgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFRhYlJvbGU7IH0KICAgICBib29sIGlz
UmFkaW9Hcm91cCgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFJhZGlvR3JvdXBSb2xl
OyB9CkBAIC0zMDcsNiArMzEyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1JlcXVp
cmVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNMaW5rZWQo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0V4cGFuZGVkKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNWaXNpYmxlKCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRJc0V4cGFuZGVkKGJvb2wp
IHsgfQogCiAgICAgdmlydHVhbCBib29sIGNhblNldEZvY3VzQXR0cmlidXRlKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9jaHJvbWl1
bS9BY2Nlc3NpYmlsaXR5T2JqZWN0Q2hyb21pdW0uY3BwIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2Nocm9taXVtL0FjY2Vzc2liaWxpdHlPYmplY3RDaHJvbWl1bS5jcHAKaW5kZXggN2FiN2Q3OS4u
NjU4MzRmYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FjY2Vz
c2liaWxpdHlPYmplY3RDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2No
cm9taXVtL0FjY2Vzc2liaWxpdHlPYmplY3RDaHJvbWl1bS5jcHAKQEAgLTM2LDYgKzM2LDkgQEAg
Ym9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5SWdub3JlQXR0YWNobWVudCgp
IGNvbnN0CiAKIEFjY2Vzc2liaWxpdHlPYmplY3RQbGF0Zm9ybUluY2x1c2lvbiBBY2Nlc3NpYmls
aXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09iamVjdCgpIGNvbnN0CiB7
CisgICAgaWYgKGlzTWVudUxpc3RIaWRkZW5MaXN0KCkgfHwgaXNNZW51TGlzdE9wdGlvbigpKQor
ICAgICAgICByZXR1cm4gSWdub3JlT2JqZWN0OworCiAgICAgcmV0dXJuIERlZmF1bHRCZWhhdmlv
cjsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmls
aXR5T2JqZWN0QXRrLmNwcCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0
eU9iamVjdEF0ay5jcHAKaW5kZXggYmMzMWZjZS4uNTJiNGFjMSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcAorKysgYi9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwCkBAIC0zOCw2
ICszOCw5IEBAIEFjY2Vzc2liaWxpdHlPYmplY3RQbGF0Zm9ybUluY2x1c2lvbiBBY2Nlc3NpYmls
aXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JCiAgICAgaWYgKCFwYXJlbnQpCiAgICAg
ICAgIHJldHVybiBEZWZhdWx0QmVoYXZpb3I7CiAKKyAgICBpZiAoaXNNZW51TGlzdEhpZGRlbkxp
c3QoKSB8fCBpc01lbnVMaXN0T3B0aW9uKCkpCisgICAgICAgIHJldHVybiBJZ25vcmVPYmplY3Q7
CisKICAgICAvLyBXaGVuIGEgbGlzdCBpdGVtIGlzIG1hZGUgdXAgZW50aXJlbHkgb2YgY2hpbGRy
ZW4gKGUuZy4gcGFyYWdyYXBocykKICAgICAvLyB0aGUgbGlzdCBpdGVtIGdldHMgaWdub3JlZC4g
V2UgbmVlZCBpdC4KICAgICBpZiAoaXNHcm91cCgpICYmIHBhcmVudC0+aXNMaXN0KCkpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMu
bW0gYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0K
aW5kZXggMjE3YWY1NC4uYjdiMDJhOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQpAQCAtNDMsNiArNDMsOSBAQCBib29sIEFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlJZ25vcmVBdHRhY2htZW50KCkgY29uc3QK
IAogQWNjZXNzaWJpbGl0eU9iamVjdFBsYXRmb3JtSW5jbHVzaW9uIEFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OmFjY2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0KCkgY29uc3QKIHsKKyAgICBp
ZiAoaXNNZW51TGlzdEhpZGRlbkxpc3QoKSB8fCBpc01lbnVMaXN0T3B0aW9uKCkpCisgICAgICAg
IHJldHVybiBJZ25vcmVPYmplY3Q7CisKICAgICByZXR1cm4gRGVmYXVsdEJlaGF2aW9yOwogfQog
ICAgIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3F0L0FjY2Vzc2liaWxpdHlP
YmplY3RRdC5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvcXQvQWNjZXNzaWJpbGl0eU9iamVj
dFF0LmNwcAppbmRleCAwN2YxM2Q0Li5jMTQ0ZjJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvcXQvQWNjZXNzaWJpbGl0eU9iamVjdFF0LmNwcAorKysgYi9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvcXQvQWNjZXNzaWJpbGl0eU9iamVjdFF0LmNwcApAQCAtMzEsNiArMzEsOSBAQCBi
b29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlJZ25vcmVBdHRhY2htZW50KCkg
Y29uc3QKIAogQWNjZXNzaWJpbGl0eU9iamVjdFBsYXRmb3JtSW5jbHVzaW9uIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0KCkgY29uc3QKIHsK
KyAgICBpZiAoaXNNZW51TGlzdEhpZGRlbkxpc3QoKSB8fCBpc01lbnVMaXN0T3B0aW9uKCkpCisg
ICAgICAgIHJldHVybiBJZ25vcmVPYmplY3Q7CisKICAgICByZXR1cm4gRGVmYXVsdEJlaGF2aW9y
OwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd2luL0FjY2Vzc2liaWxp
dHlPYmplY3RXaW4uY3BwIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dpbi9BY2Nlc3NpYmlsaXR5
T2JqZWN0V2luLmNwcAppbmRleCA4OTVmYzQzLi43N2MyOWQ4IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvd2luL0FjY2Vzc2liaWxpdHlPYmplY3RXaW4uY3BwCisrKyBiL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS93aW4vQWNjZXNzaWJpbGl0eU9iamVjdFdpbi5jcHAKQEAgLTM3LDYg
KzM3LDkgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5SWdub3JlQXR0
YWNobWVudCgpIGNvbnN0CiAKIEFjY2Vzc2liaWxpdHlPYmplY3RQbGF0Zm9ybUluY2x1c2lvbiBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09iamVjdCgp
IGNvbnN0CiB7CisgICAgaWYgKGlzTWVudUxpc3RIaWRkZW5MaXN0KCkgfHwgaXNNZW51TGlzdE9w
dGlvbigpKQorICAgICAgICByZXR1cm4gSW5jbHVkZU9iamVjdDsKKwogICAgIHJldHVybiBEZWZh
dWx0QmVoYXZpb3I7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93eC9B
Y2Nlc3NpYmlsaXR5T2JqZWN0V3guY3BwIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3d4L0FjY2Vz
c2liaWxpdHlPYmplY3RXeC5jcHAKaW5kZXggMDdmMTNkNC4uYzE0NGYyYiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3d4L0FjY2Vzc2liaWxpdHlPYmplY3RXeC5jcHAKKysrIGIv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3d4L0FjY2Vzc2liaWxpdHlPYmplY3RXeC5jcHAKQEAgLTMx
LDYgKzMxLDkgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5SWdub3Jl
QXR0YWNobWVudCgpIGNvbnN0CiAKIEFjY2Vzc2liaWxpdHlPYmplY3RQbGF0Zm9ybUluY2x1c2lv
biBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09iamVj
dCgpIGNvbnN0CiB7CisgICAgaWYgKGlzTWVudUxpc3RIaWRkZW5MaXN0KCkgfHwgaXNNZW51TGlz
dE9wdGlvbigpKQorICAgICAgICByZXR1cm4gSWdub3JlT2JqZWN0OworCiAgICAgcmV0dXJuIERl
ZmF1bHRCZWhhdmlvcjsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25F
bGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKaW5kZXggMzE2
YjE5Mi4uYjQzNjY2NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50
LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCkBAIC0yMTMsNyAr
MjEzLDcgQEAgU3RyaW5nIEhUTUxPcHRpb25FbGVtZW50Ojp0ZXh0SW5kZW50ZWRUb1Jlc3BlY3RH
cm91cExhYmVsKCkgY29uc3QKIAogYm9vbCBIVE1MT3B0aW9uRWxlbWVudDo6ZGlzYWJsZWQoKSBj
b25zdAogeyAKLSAgICByZXR1cm4gSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGlzYWJsZWQoKSB8
fCAocGFyZW50Tm9kZSgpICYmIHN0YXRpY19jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqPihw
YXJlbnROb2RlKCkpLT5kaXNhYmxlZCgpKTsgCisgICAgcmV0dXJuIG93bkVsZW1lbnREaXNhYmxl
ZCgpIHx8IChwYXJlbnROb2RlKCkgJiYgc3RhdGljX2Nhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVu
dCo+KHBhcmVudE5vZGUoKSktPmRpc2FibGVkKCkpOyAKIH0KIAogdm9pZCBIVE1MT3B0aW9uRWxl
bWVudDo6aW5zZXJ0ZWRJbnRvVHJlZShib29sIGRlZXApCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvSFRNTE9wdGlvbkVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5o
CmluZGV4IDg0MzYwOGYuLjdiZTllOWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MT3B0
aW9uRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oCkBAIC03
Niw2ICs3Niw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgU3RyaW5nIHRleHRJbmRlbnRlZFRv
UmVzcGVjdEdyb3VwTGFiZWwoKSBjb25zdDsKIAorICAgIGJvb2wgb3duRWxlbWVudERpc2FibGVk
KCkgY29uc3QgeyByZXR1cm4gSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGlzYWJsZWQoKTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBkaXNhYmxlZCgpIGNvbnN0OwogICAgIAogICAgIHZpcnR1YWwgdm9p
ZCBpbnNlcnRlZEludG9UcmVlKGJvb2wpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9BY2Nlc3Np
YmxlQmFzZS5jcHAgYi9XZWJLaXQvd2luL0FjY2Vzc2libGVCYXNlLmNwcAppbmRleCBmZWI2YTA5
Li5jOTA4YTkzIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL0FjY2Vzc2libGVCYXNlLmNwcAorKysg
Yi9XZWJLaXQvd2luL0FjY2Vzc2libGVCYXNlLmNwcApAQCAtMjkyLDYgKzI5Miw5IEBAIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgQWNjZXNzaWJsZUJhc2U6OmdldF9hY2NTdGF0ZShWQVJJQU5U
IHZDaGlsZCwgVkFSSUFOVCoKICAgICBpZiAoY2hpbGRPYmotPmlzTXVsdGlTZWxlY3RhYmxlKCkp
CiAgICAgICAgIHB2U3RhdGUtPmxWYWwgfD0gU1RBVEVfU1lTVEVNX0VYVFNFTEVDVEFCTEUgfCBT
VEFURV9TWVNURU1fTVVMVElTRUxFQ1RBQkxFOwogCisgICAgaWYgKCFjaGlsZE9iai0+aXNWaXNp
YmxlKCkpCisgICAgICAgIHB2U3RhdGUtPmxWYWwgfD0gU1RBVEVfU1lTVEVNX0lOVklTSUJMRTsK
KwogICAgIHJldHVybiBTX09LOwogfQogCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5nZUxv
ZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDdkYmYzZDIuLmI2ZmM5NzYgMTAwNjQ0Ci0t
LSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTAtMDEtMTcgIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxl
LmNvbT4KKworICAgICAgICBNU0FBOiBUaGUgY2hpbGQgPG9wdGlvbj4gZWxlbWVudHMgb2YgYSBu
b24tbXVsdGlwbGUgPHNlbGVjdD4gYXJlIG5vdAorICAgICAgICBleHBvc2VkCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzNzczCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83NTUwNTU2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogQWNjZXNzaWJsZUJhc2UuY3BwOgorICAgICAgICAoQWNjZXNzaWJs
ZUJhc2U6OmdldF9hY2NTdGF0ZSk6CisgICAgICAgIElmIHRoZSBvYmplY3QgaXMgaW52aXNpYmxl
LCBzZXQgdGhlIGludmlzaWJsZSBzdGF0ZSBmbGFnLgorCiAyMDEwLTAxLTE1ICBKb24gSG9uZXlj
dXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CiAKICAgICAgICAgTVNBQTogU2NyZWVuIHJlY3Qg
Zm9yIDxvcHRpb24+IGVsZW1lbnRzIGlzIGFsd2F5cyB0aGUgemVybyByZWN0CmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggNjFm
NWM5Ni4uNjUwM2E2YiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dl
YktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEwLTAxLTE3ICBKb24gSG9u
ZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CisKKyAgICAgICAgTVNBQTogVGhlIGNoaWxk
IDxvcHRpb24+IGVsZW1lbnRzIG9mIGEgbm9uLW11bHRpcGxlIDxzZWxlY3Q+IGFyZSBub3QKKyAg
ICAgICAgZXhwb3NlZAorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zMzc3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzU1MDU1Nj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwOgorICAgICAgICAoZ2V0SXNWaXNpYmxlQ2FsbGJh
Y2spOgorICAgICAgICBDYWxsIHRoZSBvYmplY3QncyBpc1Zpc2libGUoKSBmdW5jdGlvbi4KKyAg
ICAgICAgKGdldElzT2ZmU2NyZWVuQ2FsbGJhY2spOgorICAgICAgICBEaXR0bywgZm9yIGlzT2Zm
U2NyZWVuKCkuCisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRKU0NsYXNzKToK
KyAgICAgICAgQWRkIGlzVmlzaWJsZSBhbmQgaXNPZmZTY3JlZW4gYXR0cmlidXRlcy4KKworICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoKKyAgICAgICAg
RGVjbGFyZSBuZXcgZnVuY3Rpb25zLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsuY3BwOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aXNWaXNpYmxlKToKKyAgICAgICAgU3R1YmJlZC4KKyAgICAgICAgKEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmlzT2ZmU2NyZWVuKToKKyAgICAgICAgU3R1YmJlZC4KKworICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tOgorICAgICAg
ICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNWaXNpYmxlKToKKyAgICAgICAgU3R1YmJlZC4K
KyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzT2ZmU2NyZWVuKToKKyAgICAgICAg
U3R1YmJlZC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50V2luLmNwcDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRW5hYmxl
ZCk6CisgICAgICAgIENoZWNrIHRoYXQgdGhlIG9iamVjdCBkb2VzIG5vdCBoYXZlIHRoZSAidW5h
dmFpbGFibGUiIHN0YXRlLgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNWaXNp
YmxlKToKKyAgICAgICAgQ2hlY2sgdGhhdCB0aGUgb2JqZWN0IGRvZXMgbm90IGhhdmUgdGhlICJp
bnZpc2libGUiIHN0YXRlLgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNPZmZT
Y3JlZW4pOgorICAgICAgICBDaGVjayB3aGV0aGVyIHRoZSBvYmplY3QgaGFzIHRoZSAib2Zmc2Ny
ZWVuIiBzdGF0ZS4KKwogMjAxMC0wMS0xNSAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBw
bGUuY29tPgogCiAgICAgICAgIGdldF9hY2NQYXJlbnQgc2hvdWxkIHRyeSB0byByZXRyaWV2ZSBw
YXJlbnQgQWNjZXNzaWJpbGl0eU9iamVjdCwgYmVmb3JlCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCBiL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCmluZGV4IGNjYzExYTcu
LjdiMTUxNWEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuY3BwCkBAIC01MTIsNiArNTEyLDE2IEBAIHN0YXRpYyBKU1ZhbHVl
UmVmIGdldElzQ2hlY2tlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJl
ZiB0aGlzT2JqCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCB0b0FYRWxl
bWVudCh0aGlzT2JqZWN0KS0+aXNDaGVja2VkKCkpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBn
ZXRJc1Zpc2libGVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgdGhp
c09iamVjdCwgSlNTdHJpbmdSZWYsIEpTVmFsdWVSZWYqKQoreworICAgIHJldHVybiBKU1ZhbHVl
TWFrZUJvb2xlYW4oY29udGV4dCwgdG9BWEVsZW1lbnQodGhpc09iamVjdCktPmlzVmlzaWJsZSgp
KTsKK30KKworc3RhdGljIEpTVmFsdWVSZWYgZ2V0SXNPZmZTY3JlZW5DYWxsYmFjayhKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgSlNTdHJpbmdSZWYsIEpTVmFs
dWVSZWYqKQoreworICAgIHJldHVybiBKU1ZhbHVlTWFrZUJvb2xlYW4oY29udGV4dCwgdG9BWEVs
ZW1lbnQodGhpc09iamVjdCktPmlzT2ZmU2NyZWVuKCkpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJl
ZiBoaWVyYXJjaGljYWxMZXZlbENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiB0aGlzT2JqZWN0LCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiopCiB7CiAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5oaWVy
YXJjaGljYWxMZXZlbCgpKTsKQEAgLTYwMSw2ICs2MTEsOCBAQCBKU0NsYXNzUmVmIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmdldEpTQ2xhc3MoKQogICAgICAgICB7ICJpc011bHRpU2VsZWN0YWJs
ZSIsIGdldElzTXVsdGlTZWxlY3RhYmxlQ2FsbGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAi
aXNFeHBhbmRlZCIsIGdldElzRXhwYW5kZWRDYWxsYmFjaywgMCwga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7
ICJpc0NoZWNrZWQiLCBnZXRJc0NoZWNrZWRDYWxsYmFjaywgMCwga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7
ICJpc1Zpc2libGUiLCBnZXRJc1Zpc2libGVDYWxsYmFjaywgMCwga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7
ICJpc09mZlNjcmVlbiIsIGdldElzT2ZmU2NyZWVuQ2FsbGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAidmFsdWVEZXNjcmlwdGlvbiIsIGdldFZhbHVlRGVzY3JpcHRpb25DYWxsYmFjaywgMCwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAogICAgICAgICB7ICJoaWVyYXJjaGljYWxMZXZlbCIsIGhpZXJhcmNoaWNhbExldmVs
Q2FsbGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZG9jdW1lbnRFbmNvZGluZyIsIGdldERv
Y3VtZW50RW5jb2RpbmdDYWxsYmFjaywgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCmluZGV4IGUyYWJiMjMuLjgz
MDZiNTQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmgKQEAgLTExNyw2ICsxMTcsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc011
bHRpU2VsZWN0YWJsZSgpIGNvbnN0OwogICAgIGJvb2wgaXNFeHBhbmRlZCgpIGNvbnN0OwogICAg
IGJvb2wgaXNDaGVja2VkKCkgY29uc3Q7CisgICAgYm9vbCBpc1Zpc2libGUoKSBjb25zdDsKKyAg
ICBib29sIGlzT2ZmU2NyZWVuKCkgY29uc3Q7CiAgICAgaW50IGhpZXJhcmNoaWNhbExldmVsKCkg
Y29uc3Q7CiAgICAgZG91YmxlIGNsaWNrUG9pbnRYKCk7CiAgICAgZG91YmxlIGNsaWNrUG9pbnRZ
KCk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudEd0ay5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudEd0ay5jcHAKaW5kZXggYzc5YjM2Mi4uNjI3NTU3YiAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRHdGsuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50R3RrLmNwcApAQCAtNTY5LDMgKzU2OSwxNSBAQCBib29sIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmlzTXVsdGlTZWxlY3RhYmxlKCkgY29uc3QKICAgICAvLyBGSVhNRTogaW1w
bGVtZW50CiAgICAgcmV0dXJuIGZhbHNlOwogfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmlzVmlzaWJsZSgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJl
dHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc09mZlNjcmVl
bigpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiBmYWxzZTsK
K30KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50TWFjLm1tIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRNYWMubW0KaW5kZXggMjFlNDUwZS4uOTRhNTY5YyAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMubW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRNYWMubW0KQEAgLTc5MSwzICs3OTEsMTUgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc011bHRpU2VsZWN0YWJsZSgpIGNvbnN0CiAgICAgLy8gRklYTUU6IGltcGxlbWVu
dAogICAgIHJldHVybiBmYWxzZTsKIH0KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c1Zpc2libGUoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNPZmZTY3JlZW4oKSBj
b25zdAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gZmFsc2U7Cit9CmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudFdpbi5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJp
bGl0eVVJRWxlbWVudFdpbi5jcHAKaW5kZXggYzgxNzNkNy4uYmM3OGQ5NiAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4u
Y3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50V2luLmNwcApAQCAtMzQ5LDcgKzM0OSw4IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aXNBY3Rpb25TdXBwb3J0ZWQoSlNTdHJpbmdSZWYgYWN0aW9uKQogCiBib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIGZhbHNlOworICAg
IERXT1JEIHN0YXRlID0gYWNjZXNzaWJpbGl0eVN0YXRlKG1fZWxlbWVudCk7CisgICAgcmV0dXJu
IChzdGF0ZSAmIFNUQVRFX1NZU1RFTV9VTkFWQUlMQUJMRSkgIT0gU1RBVEVfU1lTVEVNX1VOQVZB
SUxBQkxFOwogfQogCiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzUmVxdWlyZWQoKSBj
b25zdApAQCAtNTQ0LDQgKzU0NSwxNCBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
TXVsdGlTZWxlY3RhYmxlKCkgY29uc3QKICAgICByZXR1cm4gKHN0YXRlICYgbXVsdGlTZWxlY3Rh
YmxlKSA9PSBtdWx0aVNlbGVjdGFibGU7CiB9CiAKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aXNWaXNpYmxlKCkgY29uc3QKK3sKKyAgICBEV09SRCBzdGF0ZSA9IGFjY2Vzc2liaWxpdHlT
dGF0ZShtX2VsZW1lbnQpOworICAgIHJldHVybiAoc3RhdGUgJiBTVEFURV9TWVNURU1fSU5WSVNJ
QkxFKSAhPSBTVEFURV9TWVNURU1fSU5WSVNJQkxFOworfQogCitib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmlzT2ZmU2NyZWVuKCkgY29uc3QKK3sKKyAgICBEV09SRCBzdGF0ZSA9IGFjY2Vz
c2liaWxpdHlTdGF0ZShtX2VsZW1lbnQpOworICAgIHJldHVybiAoc3RhdGUgJiBTVEFURV9TWVNU
RU1fT0ZGU0NSRUVOKSA9PSBTVEFURV9TWVNURU1fT0ZGU0NSRUVOOworfQotLSAKMS42LjUuMi4x
NDMuZzhjYzYyCgo=
</data>
<flag name="review"
          id="29180"
          type_id="1"
          status="-"
          setter="alice.barraclough"
    />
    <flag name="commit-queue"
          id="29181"
          type_id="3"
          status="-"
          setter="jhoneycutt"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46947</attachid>
            <date>2010-01-19 13:38:09 -0800</date>
            <delta_ts>2010-01-19 13:49:36 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-MSAA-The-child-option-elements-of-a-non-multiple-sel.patch</filename>
            <type>text/plain</type>
            <size>81909</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSAyMjE0NzYzMWExY2QxY2ZhNDU2N2M4ZDQyMGYxYWFjY2M0ZTQ1MGQ0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogTW9uLCAxOCBKYW4gMjAxMCAxNDoxMToxNyAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIE1T
QUE6IFRoZSBjaGlsZCA8b3B0aW9uPiBlbGVtZW50cyBvZiBhIG5vbi1tdWx0aXBsZSA8c2VsZWN0
PiBhcmUgbm90CiBleHBvc2VkCgpodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzM3NzMKPHJkYXI6Ly9wcm9ibGVtLzc1NTA1NTY+CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KCldlYkNvcmU6CgpUaGlzIGV4cG9zZXMgdGhlIGNoaWxkIDxvcHRpb24+IGVsZW1lbnRz
IGluIGEgZm9ybWF0IHNpbWlsYXIgdG8KRmlyZWZveCdzOiB0aGUgPHNlbGVjdD4gZWxlbWVudCBo
YXMgb25lIGNoaWxkLCBhIGhpZGRlbiBsaXN0IG9iamVjdCwKYW5kIHRoaXMgbGlzdCBoYXMgYXMg
aXRzIGNoaWxkcmVuIHRoZSA8b3B0aW9uPiBlbGVtZW50cy4KCiogR05VbWFrZWZpbGUuYW06Ciog
V2ViQ29yZS5neXBpOgoqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgoqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKQWRkIG5ldyBmaWxlcyB0byBwcm9qZWN0LgoKKiBh
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
Z2V0T3JDcmVhdGUpOgpJZiB0aGUgZWxlbWVudCBpcyBhIFJlbmRlck1lbnVMaXN0LCBjcmVhdGUg
YW4gQWNjZXNzaWJpbGl0eU1lbnVMaXN0LgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Z2V0T3JD
cmVhdGUpOgpBZGQgbmV3IHR5cGVzIHRvIGNyZWF0ZSBieSByb2xlIHZhbHVlLgoKKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHA6IEFkZGVkLgooV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU1lbnVMaXN0OjpBY2Nlc3NpYmlsaXR5TWVudUxpc3QpOgpDYWxsIHRoZSBiYXNlIGNs
YXNzIGNvbnN0cnVjdG9yLiBBc3NlcnQgdGhhdCB0aGUgUmVuZGVyT2JqZWN0IHBhc3NlZAppcyBh
IFJlbmRlck1lbnVMaXN0LgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0OjpwcmVzcyk6
ClNob3cgb3IgaGlkZSB0aGUgcG9wdXAgbWVudS4KKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51
TGlzdDo6YWRkQ2hpbGRyZW4pOgpDcmVhdGUgYW4gQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAu
IElmIHRoZSBwbGF0Zm9ybSBpZ25vcmVzIGl0cwphY2Nlc3NpYmlsaXR5LCByZW1vdmUgaXQgZnJv
bSB0aGUgb2JqZWN0IGNhY2hlIGFuZCByZXR1cm4gZWFybHkuCk90aGVyd2lzZSwgc2V0IGl0cyBw
YXJlbnQgb2JqZWN0IHRvIHRoaXMgb2JqZWN0LCBhZGQgaXQgdG8gb3VyIGxpc3Qgb2YKY2hpbGRy
ZW4sIGFuZCB0ZWxsIGl0IHRvIGFkZCBpdHMgY2hpbGRyZW4uCihXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5TWVudUxpc3Q6OmNoaWxkcmVuQ2hhbmdlZCk6ClRlbGwgb3VyIGNoaWxkIGhpZGRlbiBsaXN0
IHRoYXQgaXRzIGNoaWxkcmVuIGNoYW5nZWQuCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxp
c3Q6OmlzQ29sbGFwc2VkKToKUmV0dXJuIHdoZXRoZXIgdGhlIHBvcHVwIG1lbnUgaXMgdmlzaWJs
ZS4KCiogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuaDogQWRkZWQuCihXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmNyZWF0ZSk6CkFkb3B0IGFuZCByZXR1cm4gYSBu
ZXcgUmVuZGVyTWVudUxpc3QuCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmlzTWVu
dUxpc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0Ojpyb2xlVmFsdWUpOgooV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdDo6Y2FuU2V0Rm9jdXNBdHRyaWJ1dGUpOgoKKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5jcHA6IEFkZGVkLgooV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RP
cHRpb24pOgpJbml0aWFsaXplIHRoZSBwb2ludGVyIHRvIG91ciBwYXJlbnQgcG9wdXAgbWVudS4K
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6c2V0RWxlbWVudCk6CkFzc2Vy
dCB0aGF0IHRoZSBlbGVtZW50IGlzIGFuIDxvcHRpb24+IGVsZW1lbnQuCihXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5TWVudUxpc3RPcHRpb246OmFjdGlvbkVsZW1lbnQpOgpSZXR1cm4gb3VyIGVsZW1l
bnQuCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb246OnBhcmVudE9iamVjdCk6
ClJldHVybiBvdXIgcGFyZW50IHBvcHVwIG1lbnUuCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVu
dUxpc3RPcHRpb246OmlzRW5hYmxlZCk6ClJldHVybiB0cnVlIGlmIHRoZSBlbGVtZW50IGl0c2Vs
ZiBpcyBlbmFibGVkLgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjppc1Zp
c2libGUpOgpSZXR1cm4gdHJ1ZSBpZiB0aGUgcG9wdXAgaXMgdmlzaWJsZSwgb3IgcmV0dXJuIHRy
dWUgaWYgdGhlIHBvcHVwIGlzCmNvbGxhcHNlZCBidXQgdGhlIGVsZW1lbnQgaXMgc2VsZWN0ZWQu
CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb246OmlzT2ZmU2NyZWVuKToKUmV0
dXJuIHRydWUgaWYgdGhlIG9iamVjdCBpcyBpbnZpc2libGUuCihXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5TWVudUxpc3RPcHRpb246OmlzU2VsZWN0ZWQpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1l
bnVMaXN0T3B0aW9uOjpzZXRTZWxlY3RlZCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxp
c3RPcHRpb246Om5hbWVGb3JNU0FBKToKUmV0dXJuIHRoZSA8b3B0aW9uPiBlbGVtZW50J3MgdGV4
dC4KKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6Y2FuU2V0U2VsZWN0ZWRB
dHRyaWJ1dGUpOgpSZXR1cm4gdHJ1ZSBpZiBlbmFibGVkLgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU1lbnVMaXN0T3B0aW9uOjplbGVtZW50UmVjdCk6ClJldHVybiB0aGUgQWNjZXNzaWJpbGl0eU1l
bnVMaXN0J3MgcmVjdC4KCiogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRp
b24uaDogQWRkZWQuCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb246OmNyZWF0
ZSk6CkFkb3B0IGFuZCByZXR1cm4gYSBuZXcgQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLgoo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjpzZXRQYXJlbnQpOgooV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjppc01lbnVMaXN0T3B0aW9uKToKKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6cm9sZVZhbHVlKToKKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6Y2FuSGF2ZUNoaWxkcmVuKToKKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6c2l6ZSk6CgoqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwOiBBZGRlZC4KKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlN
ZW51TGlzdFBvcHVwOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cCk6CkluaXRpYWxpemUgdGhl
IHBvaW50ZXIgdG8gb3VyIHBhcmVudCBsaXN0LgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVM
aXN0UG9wdXA6OmlzVmlzaWJsZSk6ClJldHVybiBmYWxzZTsgd2UncmUgbmV2ZXIgY29uc2lkZXJl
ZCB2aXNpYmxlLgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6OmlzT2ZmU2Ny
ZWVuKToKUmV0dXJuIHRydWUgaWYgdGhlIHBvcHVwIGlzIGNvbGxhcHNlZC4KKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjpwYXJlbnRPYmplY3QpOgpSZXR1cm4gb3VyIHBhcmVu
dCBBY2Nlc3NpYmlsaXR5TWVudUxpc3QuCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RQ
b3B1cDo6aXNFbmFibGVkKToKUmV0dXJuIHRydWUgaWYgb3VyIHBhcmVudCBpcyBlbmFibGVkLgoo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6Om1lbnVMaXN0T3B0aW9uQWNjZXNz
aWJpbGl0eU9iamVjdCk6CklmIHRoZSBlbGVtZW50IGlzIGFuIDxvcHRpb24+IGVsZW1lbnQsIGNy
ZWF0ZSBhIGxpc3QgaXRlbSBmb3IgaXQsIGFuZApzZXQgdGhlIG9iamVjdCdzIGVsZW1lbnQgdG8g
dGhpcyBlbGVtZW50LgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6OnByZXNz
KToKQ2FsbCBvdXIgcGFyZW50J3MgcHJlc3MoKSBmdW5jdGlvbiB0byBzaG93IG9yIGhpZGUgdGhl
IHBvcHVwIG1lbnUuCihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6YWRkQ2hp
bGRyZW4pOgpXYWxrIHRoZSBzZWxlY3QgZWxlbWVudCdzIGNoaWxkcmVuLCBhbmQgY3JlYXRlIGxp
c3QgaXRlbXMgZm9yIHRoZW0uIEFkZAp0aGVtIHRvIG91ciBsaXN0IG9mIGNoaWxkcmVuLgooV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6OmNoaWxkcmVuQ2hhbmdlZCk6CklmIGFu
eSBvZiBvdXIgY2hpbGRyZW4gaGF2ZSBiZWVuIGRldGFjaGVkIGZyb20gdGhlIGRvY3VtZW50LCBy
ZW1vdmUKdGhlbSBmcm9tIHRoZSBBWE9iamVjdENhY2hlIGFuZCBmcm9tIG91ciBjaGlsZCBsaXN0
LgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6OnNldE1lbnVMaXN0KToKCiog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oOiBBZGRlZC4KKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjpjcmVhdGUpOgpBZG9wdCBhbmQgcmV0dXJu
IGFuIEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1l
bnVMaXN0UG9wdXA6OmlzTWVudUxpc3RQb3B1cCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVu
dUxpc3RQb3B1cDo6ZWxlbWVudFJlY3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0
UG9wdXA6OnNpemUpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6OnJvbGVW
YWx1ZSk6CgoqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY3Rpb25WZXJiKToKQWRkIHRoZSBtZW51TGlzdEFjdGlv
biBhbmQgbWVudUxpc3RQb3B1cEFjdGlvbiB2ZXJicy4KCiogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0Lmg6CihXZWJDb3JlOjopOgpBZGQgbmV3IHJvbGVzLgooV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU9iamVjdDo6aXNNZW51TGlzdCk6ClN0dWJiZWQuCihXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5T2JqZWN0Ojppc01lbnVMaXN0SGlkZGVuTGlzdCk6ClN0dWJiZWQuCihXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0Ojppc01lbnVMaXN0T3B0aW9uKToKU3R1YmJlZC4KKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzVmlzaWJsZSk6ClN0dWJiZWQuCgoqIGFjY2Vzc2liaWxp
dHkvY2hyb21pdW0vQWNjZXNzaWJpbGl0eU9iamVjdENocm9taXVtLmNwcDoKKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0KToK
SWdub3JlIHRoZSBuZXcgb2JqZWN0IHR5cGUuCgoqIGFjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2li
aWxpdHlPYmplY3RBdGsuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNz
aWJpbGl0eVBsYXRmb3JtSW5jbHVkZXNPYmplY3QpOgpEaXR0by4KCiogYWNjZXNzaWJpbGl0eS9t
YWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OmFjY2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0KToKRGl0dG8uCgoqIGFjY2Vz
c2liaWxpdHkvcXQvQWNjZXNzaWJpbGl0eU9iamVjdFF0LmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0KToKRGl0dG8u
CgoqIGFjY2Vzc2liaWxpdHkvd2luL0FjY2Vzc2liaWxpdHlPYmplY3RXaW4uY3BwOgooV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eVBsYXRmb3JtSW5jbHVkZXNPYmpl
Y3QpOgpBbGxvdyB0aGUgbmV3IG9iamVjdCB0eXBlcy4KCiogYWNjZXNzaWJpbGl0eS93eC9BY2Nl
c3NpYmlsaXR5T2JqZWN0V3guY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YWNj
ZXNzaWJpbGl0eVBsYXRmb3JtSW5jbHVkZXNPYmplY3QpOgpJZ25vcmUgdGhlIG5ldyBvYmplY3Qg
dHlwZS4KCiogYWNjZXNzaWJpbGl0eS93aW4vQWNjZXNzaWJpbGl0eU9iamVjdFdpbi5jcHA6CihX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRl
c09iamVjdCk6CklmIHRoZSBvYmplY3QgaXMgYW4gQWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVu
TGlzdCBvcgpBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24sIGluY2x1ZGUgaXQuCgoqIGh0bWwv
SFRNTE9wdGlvbkVsZW1lbnQuY3BwOgooV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ6OmRpc2Fi
bGVkKToKQ2FsbCBvd25FbGVtZW50RGlzYWJsZWQoKS4KCiogaHRtbC9IVE1MT3B0aW9uRWxlbWVu
dC5oOgooV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ6Om93bkVsZW1lbnREaXNhYmxlZCk6ClJl
dHVybiB0aGUgYmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlvbiBvZiBkaXNhYmxlZCwgd2hpY2ggcmV0
dXJucwp3aGV0aGVyIHRoaXMgPG9wdGlvbj4gaXRzZWxmIGlzIGRpc2FibGVkLgoKKiBwbGF0Zm9y
bS9Mb2NhbGl6ZWRTdHJpbmdzLmg6CkRlY2xhcmUgbmV3IGxvY2FsaXplZCBzdHJpbmcgZnVuY3Rp
b25zLgoKV2ViS2l0OgoKKiBFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6CkFkZCBu
ZXcgbG9jYWxpemVkIHN0cmluZ3MuCgpXZWJLaXQvd2luOgoKKiBBY2Nlc3NpYmxlQmFzZS5jcHA6
CihBY2Nlc3NpYmxlQmFzZTo6Z2V0X2FjY1N0YXRlKToKSWYgdGhlIG9iamVjdCBpcyBpbnZpc2li
bGUsIHNldCB0aGUgaW52aXNpYmxlIHN0YXRlIGZsYWcuIElmIHRoZSBvYmplY3QKaXMgY29sbGFw
c2VkLCBzZXQgdGhlIGNvbGxhcHNlZCBzdGF0ZS4gSWYgdGhlIG9iamVjdCBpcyBhIGNvbWJvIGJv
eCwKc2V0IHRoZSBoYXMgcG9wdXAgZmxhZywgYW5kIGlmIGl0J3Mgbm90IGNvbGxhcHNlZCwgc2V0
IHRoZSBleHBhbmRlZApmbGFnLgooTVNBQVJvbGUpOgpBZGQgbmV3IFdlYkNvcmUgdG8gTVNBQSBy
b2xlIG1hcHBpbmdzLgoKKiBXZWJDb3JlTG9jYWxpemVkU3RyaW5ncy5jcHA6CihXZWJDb3JlOjpB
WE1lbnVMaXN0QWN0aW9uVmVyYik6ClJldHVybiB0aGUgYWN0aW9uIHZlcmIgdGhhdCBGaXJlZm94
IHVzZXMgZm9yIDxzZWxlY3Q+IGVsZW1lbnRzIHdpdGgKcG9wdXBzLgooV2ViQ29yZTo6QVhNZW51
TGlzdFBvcHVwQWN0aW9uVmVyYik6ClJldHVybiB0aGUgdmVyYiB0aGF0IEZpcmVmb3ggdXNlcyBm
b3IgYSBwb3B1cCBsaXN0LgoKV2ViS2l0VG9vbHM6CgoqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuY3BwOgooZ2V0SXNWaXNpYmxlQ2FsbGJhY2spOgpDYWxsIHRoZSBvYmpl
Y3QncyBpc1Zpc2libGUoKSBmdW5jdGlvbi4KKGdldElzT2ZmU2NyZWVuQ2FsbGJhY2spOgpEaXR0
bywgZm9yIGlzT2ZmU2NyZWVuKCkuCihnZXRJc0NvbGxhcHNlZENhbGxiYWNrKToKRGl0dG8sIGZv
ciBpc0NvbGxhcHNlZCgpLgooZ2V0SGFzUG9wdXBDYWxsYmFjayk6CkRpdHRvLCBmb3IgaGFzUG9w
dXAoKS4KKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldEpTQ2xhc3MpOgpBZGQgaXNWaXNpYmxl
IGFuZCBpc09mZlNjcmVlbiBhdHRyaWJ1dGVzLgoKKiBEdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50Lmg6CkRlY2xhcmUgbmV3IGZ1bmN0aW9ucy4KCiogRHVtcFJlbmRlclRyZWUv
Z3RrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsuY3BwOgooQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aXNWaXNpYmxlKToKU3R1YmJlZC4KKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzT2ZmU2Ny
ZWVuKToKU3R1YmJlZC4KKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ29sbGFwc2VkKToKU3R1
YmJlZC4KKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhhc1BvcHVwKToKU3R1YmJlZC4KCiogRHVt
cFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06CihBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojppc1Zpc2libGUpOgpTdHViYmVkLgooQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aXNPZmZTY3JlZW4pOgpTdHViYmVkLgooQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDb2xs
YXBzZWQpOgpTdHViYmVkLgooQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGFzUG9wdXApOgpTdHVi
YmVkLgoKKiBEdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5jcHA6
CihBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzaG93TWVudSk6CkNhbGwgdGhlIG9iamVjdCdzIGFj
Y0RvRGVmYXVsdEFjdGlvbigpIHRvIHNob3cgaXRzIHBvcHVwIG1lbnUuCihBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc0VuYWJsZWQpOgpDaGVjayB0aGF0IHRoZSBvYmplY3QgZG9lcyBub3QgaGF2
ZSB0aGUgInVuYXZhaWxhYmxlIiBzdGF0ZS4KKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVmlz
aWJsZSk6CkNoZWNrIHRoYXQgdGhlIG9iamVjdCBkb2VzIG5vdCBoYXZlIHRoZSAiaW52aXNpYmxl
IiBzdGF0ZS4KKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzT2ZmU2NyZWVuKToKQ2hlY2sgd2hl
dGhlciB0aGUgb2JqZWN0IGhhcyB0aGUgIm9mZnNjcmVlbiIgc3RhdGUuCihBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc0NvbGxhcHNlZCk6CkNoZWNrIHdoZXRoZXIgdGhlIG9iamVjdCBoYXMgdGhl
ICJjb2xsYXBzZWQiIHN0YXRlLgooQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGFzUG9wdXApOgpD
aGVjayB3aGV0aGVyIHRoZSBvYmplY3QgaGFzIHRoZSAiaGFzIHBvcHVwIiBzdGF0ZS4KCkxheW91
dFRlc3RzOgoKKiBwbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9zaW5nbGUtc2VsZWN0LWNoaWxk
cmVuLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvc2lu
Z2xlLXNlbGVjdC1jaGlsZHJlbi5odG1sOiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysKIC4uLi9zaW5nbGUtc2Vs
ZWN0LWNoaWxkcmVuLWV4cGVjdGVkLnR4dCAgICAgICAgICAgIHwgIDE3MSArKysrKysrKysrKysr
KysrKysrCiAuLi4vd2luL2FjY2Vzc2liaWxpdHkvc2luZ2xlLXNlbGVjdC1jaGlsZHJlbi5odG1s
ICB8ICAgODQgKysrKysrKysrKwogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgMTczICsrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL0dOVW1h
a2VmaWxlLmFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKwogV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICsKIFdlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgICAgICAgICAgIHwgICAyNiArKyst
CiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAgICB8ICAg
MjQgKysrCiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICAgICAgICAg
ICB8ICAgMTEgKysKIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3Qu
Y3BwICAgIHwgICA4NiArKysrKysrKysrCiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1lbnVMaXN0LmggICAgICB8ICAgNTkgKysrKysrKwogLi4uL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmNwcCAgfCAgMTEwICsrKysrKysrKysrKysKIC4uLi9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5oICAgIHwgICA2OSArKysr
KysrKwogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwICAg
fCAgMTI2ICsrKysrKysrKysrKysrCiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lbnVMaXN0UG9wdXAuaCB8ICAgNjggKysrKysrKysKIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCAgICAgIHwgICAgNiArCiBXZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oICAgICAgICB8ICAgIDcgKwogLi4uL2Nocm9taXVtL0Fj
Y2Vzc2liaWxpdHlPYmplY3RDaHJvbWl1bS5jcHAgICAgICAgfCAgICAzICsKIC4uLi9hY2Nlc3Np
YmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcCAgIHwgICAgMyArCiAuLi4vYWNj
ZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbSAgICB8ICAgIDMgKwogV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L3F0L0FjY2Vzc2liaWxpdHlPYmplY3RRdC5jcHAgfCAgICAzICsK
IC4uLi9hY2Nlc3NpYmlsaXR5L3dpbi9BY2Nlc3NpYmlsaXR5T2JqZWN0V2luLmNwcCAgIHwgICAg
MyArCiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvd3gvQWNjZXNzaWJpbGl0eU9iamVjdFd4LmNwcCB8
ICAgIDMgKwogV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcCAgICAgICAgICAgICAg
ICAgfCAgICAyICstCiBXZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaCAgICAgICAgICAg
ICAgICAgICB8ICAgIDEgKwogV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmggICAg
ICAgICAgICAgICAgfCAgICAyICsKIFdlYktpdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAxMyArKwogV2ViS2l0L0VuZ2xpc2gubHByb2ovTG9jYWxpemFi
bGUuc3RyaW5ncyAgICAgICAgICAgfCAgQmluIDUxMDc4IC0+IDUxMzI0IGJ5dGVzCiBXZWJLaXQv
d2luL0FjY2Vzc2libGVCYXNlLmNwcCAgICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysKIFdl
YktpdC93aW4vQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyNiAr
KysKIFdlYktpdC93aW4vV2ViQ29yZUxvY2FsaXplZFN0cmluZ3MuY3BwICAgICAgICAgICAgIHwg
ICAgMiArCiBXZWJLaXRUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgNTkgKysrKysrKwogLi4uL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuY3BwICAgICAgfCAgIDI0ICsrKwogLi4uL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaCAgICAgICAgfCAgICA0ICsKIC4uLi9ndGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dEd0ay5jcHAgICAgICAgICAgICAgIHwgICAyNCArKysKIC4uLi9tYWMvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudE1hYy5tbSAgICAgICAgICAgICAgIHwgICAyNCArKysKIC4uLi93aW4vQWNjZXNzaWJp
bGl0eVVJRWxlbWVudFdpbi5jcHAgICAgICAgICAgICAgIHwgICAyNyArKystCiAzNyBmaWxlcyBj
aGFuZ2VkLCAxMjgzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvc2luZ2xlLXNlbGVj
dC1jaGlsZHJlbi1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9zaW5nbGUtc2VsZWN0LWNoaWxkcmVuLmh0bWwKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVM
aXN0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TWVudUxpc3QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5oCiBjcmVhdGUg
bW9kZSAxMDA2NDQgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBv
cHVwLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TWVudUxpc3RQb3B1cC5oCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDliNWExNzAuLjg2NTRjZDggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAxMC0wMS0xNyAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBw
bGUuY29tPgorCisgICAgICAgIE1TQUE6IFRoZSBjaGlsZCA8b3B0aW9uPiBlbGVtZW50cyBvZiBh
IG5vbi1tdWx0aXBsZSA8c2VsZWN0PiBhcmUgbm90CisgICAgICAgIGV4cG9zZWQKKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzM3NzMKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzc1NTA1NTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9zaW5nbGUtc2Vs
ZWN0LWNoaWxkcmVuLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2lu
L2FjY2Vzc2liaWxpdHkvc2luZ2xlLXNlbGVjdC1jaGlsZHJlbi5odG1sOiBBZGRlZC4KKwogMjAx
MC0wMS0xNSAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgogCiAgICAgICAg
IE1TQUE6IFNjcmVlbiByZWN0IGZvciA8b3B0aW9uPiBlbGVtZW50cyBpcyBhbHdheXMgdGhlIHpl
cm8gcmVjdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxp
dHkvc2luZ2xlLXNlbGVjdC1jaGlsZHJlbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9zaW5nbGUtc2VsZWN0LWNoaWxkcmVuLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZmYzOWQ0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvc2luZ2xlLXNl
bGVjdC1jaGlsZHJlbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNzEgQEAKKworVGhpcyB0ZXN0
cyB0aGF0IG5vbi1tdWx0aXBsZSBzZWxlY3QgZWxlbWVudHMgZXhwb3NlIHRoZWlyIGxpc3Qgb3B0
aW9ucy4KKworCitQQVNTIHNlbGVjdEVsZW1lbnQucm9sZSBpcyAiY29tYm8gYm94IgorUEFTUyBz
ZWxlY3RFbGVtZW50LmlzTXVsdGlTZWxlY3RhYmxlIGlzIGZhbHNlCitQQVNTIHNlbGVjdEVsZW1l
bnQuaXNDb2xsYXBzZWQgaXMgdHJ1ZQorUEFTUyBzZWxlY3RFbGVtZW50Lmhhc1BvcHVwIGlzIHRy
dWUKKworUEFTUyBsaXN0LnJvbGUgaXMgImxpc3QiCitQQVNTIGxpc3QuaXNWaXNpYmxlIGlzIGZh
bHNlCitQQVNTIGxpc3QuaXNPZmZTY3JlZW4gaXMgdHJ1ZQorCitvcHRpb24udGl0bGU6IE9wdGlv
biAxCitvcHRpb24ucm9sZTogbGlzdCBpdGVtCitvcHRpb24ud2lkdGg6IDc4CitvcHRpb24uaGVp
Z2h0OiAyMgorb3B0aW9uLng6IC03OTAKK29wdGlvbi55OiAtNTkxCitvcHRpb24uaXNPZmZTY3Jl
ZW46IGZhbHNlCitvcHRpb24uaXNFbmFibGVkOiB0cnVlCitvcHRpb24uaXNWaXNpYmxlOiB0cnVl
CitvcHRpb24uaXNTZWxlY3RlZDogdHJ1ZQorb3B0aW9uLmlzU2VsZWN0YWJsZTogdHJ1ZQorCitv
cHRpb24udGl0bGU6IE9wdGlvbiAyCitvcHRpb24ucm9sZTogbGlzdCBpdGVtCitvcHRpb24ud2lk
dGg6IDc4CitvcHRpb24uaGVpZ2h0OiAyMgorb3B0aW9uLng6IC03OTAKK29wdGlvbi55OiAtNTkx
CitvcHRpb24uaXNPZmZTY3JlZW46IHRydWUKK29wdGlvbi5pc0VuYWJsZWQ6IHRydWUKK29wdGlv
bi5pc1Zpc2libGU6IGZhbHNlCitvcHRpb24uaXNTZWxlY3RlZDogZmFsc2UKK29wdGlvbi5pc1Nl
bGVjdGFibGU6IHRydWUKKworb3B0aW9uLnRpdGxlOiBPcHRpb24gMworb3B0aW9uLnJvbGU6IGxp
c3QgaXRlbQorb3B0aW9uLndpZHRoOiA3OAorb3B0aW9uLmhlaWdodDogMjIKK29wdGlvbi54OiAt
NzkwCitvcHRpb24ueTogLTU5MQorb3B0aW9uLmlzT2ZmU2NyZWVuOiB0cnVlCitvcHRpb24uaXNF
bmFibGVkOiBmYWxzZQorb3B0aW9uLmlzVmlzaWJsZTogZmFsc2UKK29wdGlvbi5pc1NlbGVjdGVk
OiBmYWxzZQorb3B0aW9uLmlzU2VsZWN0YWJsZTogZmFsc2UKKworLS0tCisKK29wdGlvbi50aXRs
ZTogT3B0aW9uIDEKK29wdGlvbi5yb2xlOiBsaXN0IGl0ZW0KK29wdGlvbi53aWR0aDogNzgKK29w
dGlvbi5oZWlnaHQ6IDIyCitvcHRpb24ueDogLTc5MAorb3B0aW9uLnk6IC01OTEKK29wdGlvbi5p
c09mZlNjcmVlbjogdHJ1ZQorb3B0aW9uLmlzRW5hYmxlZDogdHJ1ZQorb3B0aW9uLmlzVmlzaWJs
ZTogZmFsc2UKK29wdGlvbi5pc1NlbGVjdGVkOiBmYWxzZQorb3B0aW9uLmlzU2VsZWN0YWJsZTog
dHJ1ZQorCitvcHRpb24udGl0bGU6IE9wdGlvbiAyCitvcHRpb24ucm9sZTogbGlzdCBpdGVtCitv
cHRpb24ud2lkdGg6IDc4CitvcHRpb24uaGVpZ2h0OiAyMgorb3B0aW9uLng6IC03OTAKK29wdGlv
bi55OiAtNTkxCitvcHRpb24uaXNPZmZTY3JlZW46IGZhbHNlCitvcHRpb24uaXNFbmFibGVkOiB0
cnVlCitvcHRpb24uaXNWaXNpYmxlOiB0cnVlCitvcHRpb24uaXNTZWxlY3RlZDogdHJ1ZQorb3B0
aW9uLmlzU2VsZWN0YWJsZTogdHJ1ZQorCitvcHRpb24udGl0bGU6IE9wdGlvbiAzCitvcHRpb24u
cm9sZTogbGlzdCBpdGVtCitvcHRpb24ud2lkdGg6IDc4CitvcHRpb24uaGVpZ2h0OiAyMgorb3B0
aW9uLng6IC03OTAKK29wdGlvbi55OiAtNTkxCitvcHRpb24uaXNPZmZTY3JlZW46IHRydWUKK29w
dGlvbi5pc0VuYWJsZWQ6IGZhbHNlCitvcHRpb24uaXNWaXNpYmxlOiBmYWxzZQorb3B0aW9uLmlz
U2VsZWN0ZWQ6IGZhbHNlCitvcHRpb24uaXNTZWxlY3RhYmxlOiBmYWxzZQorCistLS0KKworb3B0
aW9uLnRpdGxlOiBPcHRpb24gMQorb3B0aW9uLnJvbGU6IGxpc3QgaXRlbQorb3B0aW9uLndpZHRo
OiA3OAorb3B0aW9uLmhlaWdodDogMjIKK29wdGlvbi54OiAtNzkwCitvcHRpb24ueTogLTU5MQor
b3B0aW9uLmlzT2ZmU2NyZWVuOiBmYWxzZQorb3B0aW9uLmlzRW5hYmxlZDogdHJ1ZQorb3B0aW9u
LmlzVmlzaWJsZTogdHJ1ZQorb3B0aW9uLmlzU2VsZWN0ZWQ6IHRydWUKK29wdGlvbi5pc1NlbGVj
dGFibGU6IHRydWUKKworb3B0aW9uLnRpdGxlOiBPcHRpb24gMgorb3B0aW9uLnJvbGU6IGxpc3Qg
aXRlbQorb3B0aW9uLndpZHRoOiA3OAorb3B0aW9uLmhlaWdodDogMjIKK29wdGlvbi54OiAtNzkw
CitvcHRpb24ueTogLTU5MQorb3B0aW9uLmlzT2ZmU2NyZWVuOiB0cnVlCitvcHRpb24uaXNFbmFi
bGVkOiB0cnVlCitvcHRpb24uaXNWaXNpYmxlOiBmYWxzZQorb3B0aW9uLmlzU2VsZWN0ZWQ6IGZh
bHNlCitvcHRpb24uaXNTZWxlY3RhYmxlOiB0cnVlCisKK29wdGlvbi50aXRsZTogT3B0aW9uIDMK
K29wdGlvbi5yb2xlOiBsaXN0IGl0ZW0KK29wdGlvbi53aWR0aDogNzgKK29wdGlvbi5oZWlnaHQ6
IDIyCitvcHRpb24ueDogLTc5MAorb3B0aW9uLnk6IC01OTEKK29wdGlvbi5pc09mZlNjcmVlbjog
dHJ1ZQorb3B0aW9uLmlzRW5hYmxlZDogZmFsc2UKK29wdGlvbi5pc1Zpc2libGU6IGZhbHNlCitv
cHRpb24uaXNTZWxlY3RlZDogZmFsc2UKK29wdGlvbi5pc1NlbGVjdGFibGU6IGZhbHNlCisKKy0t
LQorCitQQVNTIHNlbGVjdEVsZW1lbnQuaXNDb2xsYXBzZWQgaXMgZmFsc2UKK1BBU1MgbGlzdC5p
c09mZlNjcmVlbiBpcyBmYWxzZQorCitvcHRpb24udGl0bGU6IE9wdGlvbiAxCitvcHRpb24ucm9s
ZTogbGlzdCBpdGVtCitvcHRpb24ud2lkdGg6IDc4CitvcHRpb24uaGVpZ2h0OiAyMgorb3B0aW9u
Lng6IC03OTAKK29wdGlvbi55OiAtNTkxCitvcHRpb24uaXNPZmZTY3JlZW46IGZhbHNlCitvcHRp
b24uaXNFbmFibGVkOiB0cnVlCitvcHRpb24uaXNWaXNpYmxlOiB0cnVlCitvcHRpb24uaXNTZWxl
Y3RlZDogdHJ1ZQorb3B0aW9uLmlzU2VsZWN0YWJsZTogdHJ1ZQorCitvcHRpb24udGl0bGU6IE9w
dGlvbiAyCitvcHRpb24ucm9sZTogbGlzdCBpdGVtCitvcHRpb24ud2lkdGg6IDc4CitvcHRpb24u
aGVpZ2h0OiAyMgorb3B0aW9uLng6IC03OTAKK29wdGlvbi55OiAtNTkxCitvcHRpb24uaXNPZmZT
Y3JlZW46IGZhbHNlCitvcHRpb24uaXNFbmFibGVkOiB0cnVlCitvcHRpb24uaXNWaXNpYmxlOiB0
cnVlCitvcHRpb24uaXNTZWxlY3RlZDogZmFsc2UKK29wdGlvbi5pc1NlbGVjdGFibGU6IHRydWUK
Kworb3B0aW9uLnRpdGxlOiBPcHRpb24gMworb3B0aW9uLnJvbGU6IGxpc3QgaXRlbQorb3B0aW9u
LndpZHRoOiA3OAorb3B0aW9uLmhlaWdodDogMjIKK29wdGlvbi54OiAtNzkwCitvcHRpb24ueTog
LTU5MQorb3B0aW9uLmlzT2ZmU2NyZWVuOiBmYWxzZQorb3B0aW9uLmlzRW5hYmxlZDogZmFsc2UK
K29wdGlvbi5pc1Zpc2libGU6IHRydWUKK29wdGlvbi5pc1NlbGVjdGVkOiBmYWxzZQorb3B0aW9u
LmlzU2VsZWN0YWJsZTogZmFsc2UKKworLS0tCisKK1BBU1Mgb3B0aW9uLndpZHRoICE9IDAgaXMg
dHJ1ZQorUEFTUyBvcHRpb24ud2lkdGggPT0gMCBpcyB0cnVlCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L3NpbmdsZS1zZWxlY3QtY2hpbGRyZW4u
aHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L3NpbmdsZS1zZWxl
Y3QtY2hpbGRyZW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzJk
ZGQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2FjY2Vzc2li
aWxpdHkvc2luZ2xlLXNlbGVjdC1jaGlsZHJlbi5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzxodG1s
PgorPGhlYWQ+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
KworPGJvZHkgaWQ9ImJvZHkiPgorCis8c2VsZWN0IGlkPSJzZWxlY3RFbGVtZW50IiB0aXRsZT0i
c2VsZWN0RWxlbWVudCI+CisgICAgPG9wdGlvbiBTRUxFQ1RFRD5PcHRpb24gMTwvb3B0aW9uPgor
ICAgIDxvcHRpb24+T3B0aW9uIDI8L29wdGlvbj4KKyAgICA8b3B0aW9uIERJU0FCTEVEPk9wdGlv
biAzPC9vcHRpb24+Cis8L3NlbGVjdD4KKworPHA+VGhpcyB0ZXN0cyB0aGF0IG5vbi1tdWx0aXBs
ZSBzZWxlY3QgZWxlbWVudHMgZXhwb3NlIHRoZWlyIGxpc3Qgb3B0aW9ucy48L3A+CisKKzxwIGlk
PSJub3REUlQiPlRoaXMgdGVzdCBzaG91bGQgb25seSBiZSBydW4gaW5zaWRlIG9mIER1bXBSZW5k
ZXJUcmVlLjwvcD4KKworPHAgaWQ9ImNvbnNvbGUiPjwvcD4KKworPHNjcmlwdD4KKyAgICBmdW5j
dGlvbiBkdW1wTGlzdE9wdGlvbkF0dHJpYnV0ZXMobGlzdCkgeworICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IGxpc3QuY2hpbGRyZW5Db3VudDsgKytpKSB7CisgICAgICAgICAgICB2YXIgb3B0
aW9uID0gbGlzdC5jaGlsZEF0SW5kZXgoaSk7CisgICAgICAgICAgICBkZWJ1Zygnb3B0aW9uLnRp
dGxlOiAnICsgb3B0aW9uLnRpdGxlKTsKKyAgICAgICAgICAgIGRlYnVnKCdvcHRpb24ucm9sZTog
JyArIG9wdGlvbi5yb2xlKTsKKyAgICAgICAgICAgIGRlYnVnKCdvcHRpb24ud2lkdGg6ICcgKyBv
cHRpb24ud2lkdGgpOworICAgICAgICAgICAgZGVidWcoJ29wdGlvbi5oZWlnaHQ6ICcgKyBvcHRp
b24uaGVpZ2h0KTsKKyAgICAgICAgICAgIGRlYnVnKCdvcHRpb24ueDogJyArIG9wdGlvbi54KTsK
KyAgICAgICAgICAgIGRlYnVnKCdvcHRpb24ueTogJyArIG9wdGlvbi55KTsKKyAgICAgICAgICAg
IGRlYnVnKCdvcHRpb24uaXNPZmZTY3JlZW46ICcgKyBvcHRpb24uaXNPZmZTY3JlZW4pOworICAg
ICAgICAgICAgZGVidWcoJ29wdGlvbi5pc0VuYWJsZWQ6ICcgKyBvcHRpb24uaXNFbmFibGVkKTsK
KyAgICAgICAgICAgIGRlYnVnKCdvcHRpb24uaXNWaXNpYmxlOiAnICsgb3B0aW9uLmlzVmlzaWJs
ZSk7CisgICAgICAgICAgICBkZWJ1Zygnb3B0aW9uLmlzU2VsZWN0ZWQ6ICcgKyBvcHRpb24uaXNT
ZWxlY3RlZCk7CisgICAgICAgICAgICBkZWJ1Zygnb3B0aW9uLmlzU2VsZWN0YWJsZTogJyArIG9w
dGlvbi5pc1NlbGVjdGFibGUpOworICAgICAgICAgICAgZGVidWcoIiIpOworICAgICAgICB9Cisg
ICAgICAgIGRlYnVnKCItLS1cbiIpOworICAgIH0KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyICYmIHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90RFJUIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRk
ZW4iOworCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VsZWN0RWxlbWVudCIpLmZvY3VzKCk7Cisg
ICAgICAgIHZhciBzZWxlY3RFbGVtZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNl
ZEVsZW1lbnQ7CisgICAgICAgIHNob3VsZEJlKCdzZWxlY3RFbGVtZW50LnJvbGUnLCAnImNvbWJv
IGJveCInKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgnc2VsZWN0RWxlbWVudC5pc011bHRpU2Vs
ZWN0YWJsZScpOworICAgICAgICBzaG91bGRCZVRydWUoJ3NlbGVjdEVsZW1lbnQuaXNDb2xsYXBz
ZWQnKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCdzZWxlY3RFbGVtZW50Lmhhc1BvcHVwJyk7Cisg
ICAgICAgIGRlYnVnKCIiKTsKKworICAgICAgICB2YXIgbGlzdCA9IGFjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmZvY3VzZWRFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsKKyAgICAgICAgc2hvdWxkQmUo
J2xpc3Qucm9sZScsICcibGlzdCInKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgnbGlzdC5pc1Zp
c2libGUnKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCdsaXN0LmlzT2ZmU2NyZWVuJyk7CisgICAg
ICAgIGRlYnVnKCIiKTsKKworICAgICAgICBkdW1wTGlzdE9wdGlvbkF0dHJpYnV0ZXMobGlzdCk7
CisKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlbGVjdEVsZW1lbnQiKS5zZWxl
Y3RlZEluZGV4ID0gMTsKKyAgICAgICAgZHVtcExpc3RPcHRpb25BdHRyaWJ1dGVzKGxpc3QpOwor
CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWxlY3RFbGVtZW50Iikuc2VsZWN0
ZWRJbmRleCA9IDA7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWxlY3RFbGVt
ZW50IikuZGlzYWJsZWQgPSB0cnVlOworICAgICAgICBkdW1wTGlzdE9wdGlvbkF0dHJpYnV0ZXMo
bGlzdCk7CisKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlbGVjdEVsZW1lbnQi
KS5kaXNhYmxlZCA9IGZhbHNlOworICAgICAgICBzZWxlY3RFbGVtZW50LnNob3dNZW51KCk7Cisg
ICAgICAgIHNob3VsZEJlRmFsc2UoJ3NlbGVjdEVsZW1lbnQuaXNDb2xsYXBzZWQnKTsKKyAgICAg
ICAgc2hvdWxkQmVGYWxzZSgnbGlzdC5pc09mZlNjcmVlbicpOworICAgICAgICBkZWJ1ZygiIik7
CisKKyAgICAgICAgZHVtcExpc3RPcHRpb25BdHRyaWJ1dGVzKGxpc3QpOworCisgICAgICAgIC8v
IFRlc3QgdGhhdCBhY2Nlc3NpbmcgYSBkZXRhY2hlZCA8b3B0aW9uPiBkb2VzIG5vdCBjcmFzaC4K
KyAgICAgICAgdmFyIG9wdGlvbiA9IGxpc3QuY2hpbGRBdEluZGV4KDApOworICAgICAgICBzaG91
bGRCZVRydWUoJ29wdGlvbi53aWR0aCAhPSAwJyk7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJzZWxlY3RFbGVtZW50Iikub3B0aW9uc1swXSA9IG51bGw7CisgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgnb3B0aW9uLndpZHRoID09IDAnKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggMjM4NTBjZi4uNDQyOGYzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNzYgQEAKKzIwMTAtMDEtMTcgIEpv
biBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNvbT4KKworICAgICAgICBNU0FBOiBUaGUg
Y2hpbGQgPG9wdGlvbj4gZWxlbWVudHMgb2YgYSBub24tbXVsdGlwbGUgPHNlbGVjdD4gYXJlIG5v
dAorICAgICAgICBleHBvc2VkCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMzNzczCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTUwNTU2PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZXhwb3Nl
cyB0aGUgY2hpbGQgPG9wdGlvbj4gZWxlbWVudHMgaW4gYSBmb3JtYXQgc2ltaWxhciB0bworICAg
ICAgICBGaXJlZm94J3M6IHRoZSA8c2VsZWN0PiBlbGVtZW50IGhhcyBvbmUgY2hpbGQsIGEgaGlk
ZGVuIGxpc3Qgb2JqZWN0LAorICAgICAgICBhbmQgdGhpcyBsaXN0IGhhcyBhcyBpdHMgY2hpbGRy
ZW4gdGhlIDxvcHRpb24+IGVsZW1lbnRzLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06Cisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgQWRkIG5ldyBmaWxlcyB0byBwcm9qZWN0LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Omdl
dE9yQ3JlYXRlKToKKyAgICAgICAgSWYgdGhlIGVsZW1lbnQgaXMgYSBSZW5kZXJNZW51TGlzdCwg
Y3JlYXRlIGFuIEFjY2Vzc2liaWxpdHlNZW51TGlzdC4KKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OmdldE9yQ3JlYXRlKToKKyAgICAgICAgQWRkIG5ldyB0eXBlcyB0byBjcmVhdGUg
Ynkgcm9sZSB2YWx1ZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1l
bnVMaXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxp
c3Q6OkFjY2Vzc2liaWxpdHlNZW51TGlzdCk6CisgICAgICAgIENhbGwgdGhlIGJhc2UgY2xhc3Mg
Y29uc3RydWN0b3IuIEFzc2VydCB0aGF0IHRoZSBSZW5kZXJPYmplY3QgcGFzc2VkCisgICAgICAg
IGlzIGEgUmVuZGVyTWVudUxpc3QuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVu
dUxpc3Q6OnByZXNzKToKKyAgICAgICAgU2hvdyBvciBoaWRlIHRoZSBwb3B1cCBtZW51LgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0OjphZGRDaGlsZHJlbik6CisgICAg
ICAgIENyZWF0ZSBhbiBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC4gSWYgdGhlIHBsYXRmb3Jt
IGlnbm9yZXMgaXRzCisgICAgICAgIGFjY2Vzc2liaWxpdHksIHJlbW92ZSBpdCBmcm9tIHRoZSBv
YmplY3QgY2FjaGUgYW5kIHJldHVybiBlYXJseS4KKyAgICAgICAgT3RoZXJ3aXNlLCBzZXQgaXRz
IHBhcmVudCBvYmplY3QgdG8gdGhpcyBvYmplY3QsIGFkZCBpdCB0byBvdXIgbGlzdCBvZgorICAg
ICAgICBjaGlsZHJlbiwgYW5kIHRlbGwgaXQgdG8gYWRkIGl0cyBjaGlsZHJlbi4KKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdDo6Y2hpbGRyZW5DaGFuZ2VkKToKKyAgICAg
ICAgVGVsbCBvdXIgY2hpbGQgaGlkZGVuIGxpc3QgdGhhdCBpdHMgY2hpbGRyZW4gY2hhbmdlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdDo6aXNDb2xsYXBzZWQpOgor
ICAgICAgICBSZXR1cm4gd2hldGhlciB0aGUgcG9wdXAgbWVudSBpcyB2aXNpYmxlLgorCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmNyZWF0ZSk6CisgICAgICAgIEFk
b3B0IGFuZCByZXR1cm4gYSBuZXcgUmVuZGVyTWVudUxpc3QuCisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmlzTWVudUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU1lbnVMaXN0Ojpyb2xlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU1lbnVMaXN0OjphY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKToKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdDo6Y2FuU2V0Rm9jdXNBdHRyaWJ1dGUpOgorCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6QWNjZXNz
aWJpbGl0eU1lbnVMaXN0T3B0aW9uKToKKyAgICAgICAgSW5pdGlhbGl6ZSB0aGUgcG9pbnRlciB0
byBvdXIgcGFyZW50IHBvcHVwIG1lbnUuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
TWVudUxpc3RPcHRpb246OnNldEVsZW1lbnQpOgorICAgICAgICBBc3NlcnQgdGhhdCB0aGUgZWxl
bWVudCBpcyBhbiA8b3B0aW9uPiBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU1lbnVMaXN0T3B0aW9uOjphY3Rpb25FbGVtZW50KToKKyAgICAgICAgUmV0dXJuIG91ciBl
bGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjpw
YXJlbnRPYmplY3QpOgorICAgICAgICBSZXR1cm4gb3VyIHBhcmVudCBwb3B1cCBtZW51LgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjppc0VuYWJsZWQpOgor
ICAgICAgICBSZXR1cm4gdHJ1ZSBpZiB0aGUgZWxlbWVudCBpdHNlbGYgaXMgZW5hYmxlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6aXNWaXNpYmxlKToK
KyAgICAgICAgUmV0dXJuIHRydWUgaWYgdGhlIHBvcHVwIGlzIHZpc2libGUsIG9yIHJldHVybiB0
cnVlIGlmIHRoZSBwb3B1cCBpcworICAgICAgICBjb2xsYXBzZWQgYnV0IHRoZSBlbGVtZW50IGlz
IHNlbGVjdGVkLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9u
Ojppc09mZlNjcmVlbik6CisgICAgICAgIFJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgaXMgaW52
aXNpYmxlLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjpp
c1NlbGVjdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlv
bjo6c2V0U2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0
T3B0aW9uOjpuYW1lRm9yTVNBQSk6CisgICAgICAgIFJldHVybiB0aGUgPG9wdGlvbj4gZWxlbWVu
dCdzIHRleHQuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb246
OmNhblNldFNlbGVjdGVkQXR0cmlidXRlKToKKyAgICAgICAgUmV0dXJuIHRydWUgaWYgZW5hYmxl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6ZWxlbWVu
dFJlY3QpOgorICAgICAgICBSZXR1cm4gdGhlIEFjY2Vzc2liaWxpdHlNZW51TGlzdCdzIHJlY3Qu
CisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6
Y3JlYXRlKToKKyAgICAgICAgQWRvcHQgYW5kIHJldHVybiBhIG5ldyBBY2Nlc3NpYmlsaXR5TWVu
dUxpc3RPcHRpb24uCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRp
b246OnNldFBhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RP
cHRpb246OmlzTWVudUxpc3RPcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU1lbnVMaXN0T3B0aW9uOjpyb2xlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU1lbnVMaXN0T3B0aW9uOjpjYW5IYXZlQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjpzaXplKToKKworICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RQ
b3B1cCk6CisgICAgICAgIEluaXRpYWxpemUgdGhlIHBvaW50ZXIgdG8gb3VyIHBhcmVudCBsaXN0
LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6OmlzVmlzaWJs
ZSk6CisgICAgICAgIFJldHVybiBmYWxzZTsgd2UncmUgbmV2ZXIgY29uc2lkZXJlZCB2aXNpYmxl
LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6OmlzT2ZmU2Ny
ZWVuKToKKyAgICAgICAgUmV0dXJuIHRydWUgaWYgdGhlIHBvcHVwIGlzIGNvbGxhcHNlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjpwYXJlbnRPYmplY3Qp
OgorICAgICAgICBSZXR1cm4gb3VyIHBhcmVudCBBY2Nlc3NpYmlsaXR5TWVudUxpc3QuCisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6aXNFbmFibGVkKToKKyAg
ICAgICAgUmV0dXJuIHRydWUgaWYgb3VyIHBhcmVudCBpcyBlbmFibGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6Om1lbnVMaXN0T3B0aW9uQWNjZXNzaWJp
bGl0eU9iamVjdCk6CisgICAgICAgIElmIHRoZSBlbGVtZW50IGlzIGFuIDxvcHRpb24+IGVsZW1l
bnQsIGNyZWF0ZSBhIGxpc3QgaXRlbSBmb3IgaXQsIGFuZAorICAgICAgICBzZXQgdGhlIG9iamVj
dCdzIGVsZW1lbnQgdG8gdGhpcyBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU1lbnVMaXN0UG9wdXA6OnByZXNzKToKKyAgICAgICAgQ2FsbCBvdXIgcGFyZW50J3MgcHJl
c3MoKSBmdW5jdGlvbiB0byBzaG93IG9yIGhpZGUgdGhlIHBvcHVwIG1lbnUuCisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6YWRkQ2hpbGRyZW4pOgorICAgICAg
ICBXYWxrIHRoZSBzZWxlY3QgZWxlbWVudCdzIGNoaWxkcmVuLCBhbmQgY3JlYXRlIGxpc3QgaXRl
bXMgZm9yIHRoZW0uIEFkZAorICAgICAgICB0aGVtIHRvIG91ciBsaXN0IG9mIGNoaWxkcmVuLgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6OmNoaWxkcmVuQ2hh
bmdlZCk6CisgICAgICAgIElmIGFueSBvZiBvdXIgY2hpbGRyZW4gaGF2ZSBiZWVuIGRldGFjaGVk
IGZyb20gdGhlIGRvY3VtZW50LCByZW1vdmUKKyAgICAgICAgdGhlbSBmcm9tIHRoZSBBWE9iamVj
dENhY2hlIGFuZCBmcm9tIG91ciBjaGlsZCBsaXN0LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU1lbnVMaXN0UG9wdXA6OnNldE1lbnVMaXN0KToKKworICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6Y3JlYXRlKToKKyAgICAgICAgQWRvcHQg
YW5kIHJldHVybiBhbiBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC4KKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjppc01lbnVMaXN0UG9wdXApOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6OmVsZW1lbnRSZWN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjpzaXplKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjpyb2xlVmFsdWUpOgorCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjdGlvblZlcmIpOgorICAgICAgICBBZGQg
dGhlIG1lbnVMaXN0QWN0aW9uIGFuZCBtZW51TGlzdFBvcHVwQWN0aW9uIHZlcmJzLgorCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJD
b3JlOjopOgorICAgICAgICBBZGQgbmV3IHJvbGVzLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU9iamVjdDo6aXNNZW51TGlzdCk6CisgICAgICAgIFN0dWJiZWQuCisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc01lbnVMaXN0SGlkZGVuTGlzdCk6CisgICAg
ICAgIFN0dWJiZWQuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc01l
bnVMaXN0T3B0aW9uKToKKyAgICAgICAgU3R1YmJlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OmlzVmlzaWJsZSk6CisgICAgICAgIFN0dWJiZWQuCisKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FjY2Vzc2liaWxpdHlPYmplY3RDaHJvbWl1bS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxh
dGZvcm1JbmNsdWRlc09iamVjdCk6CisgICAgICAgIElnbm9yZSB0aGUgbmV3IG9iamVjdCB0eXBl
LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5
UGxhdGZvcm1JbmNsdWRlc09iamVjdCk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2Jq
ZWN0KToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L3F0L0FjY2Vz
c2liaWxpdHlPYmplY3RRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09iamVjdCk6CisgICAgICAgIERpdHRv
LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS93aW4vQWNjZXNzaWJpbGl0eU9iamVjdFdpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5
UGxhdGZvcm1JbmNsdWRlc09iamVjdCk6CisgICAgICAgIEFsbG93IHRoZSBuZXcgb2JqZWN0IHR5
cGVzLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS93eC9BY2Nlc3NpYmlsaXR5T2JqZWN0V3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0
eVBsYXRmb3JtSW5jbHVkZXNPYmplY3QpOgorICAgICAgICBJZ25vcmUgdGhlIG5ldyBvYmplY3Qg
dHlwZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvd2luL0FjY2Vzc2liaWxpdHlPYmplY3RX
aW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJp
bGl0eVBsYXRmb3JtSW5jbHVkZXNPYmplY3QpOgorICAgICAgICBJZiB0aGUgb2JqZWN0IGlzIGFu
IEFjY2Vzc2liaWxpdHlNZW51TGlzdEhpZGRlbkxpc3Qgb3IKKyAgICAgICAgQWNjZXNzaWJpbGl0
eU1lbnVMaXN0T3B0aW9uLCBpbmNsdWRlIGl0LgorCisgICAgICAgICogaHRtbC9IVE1MT3B0aW9u
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6ZGlzYWJs
ZWQpOgorICAgICAgICBDYWxsIG93bkVsZW1lbnREaXNhYmxlZCgpLgorCisgICAgICAgICogaHRt
bC9IVE1MT3B0aW9uRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1l
bnQ6Om93bkVsZW1lbnREaXNhYmxlZCk6CisgICAgICAgIFJldHVybiB0aGUgYmFzZSBjbGFzcyBp
bXBsZW1lbnRhdGlvbiBvZiBkaXNhYmxlZCwgd2hpY2ggcmV0dXJucworICAgICAgICB3aGV0aGVy
IHRoaXMgPG9wdGlvbj4gaXRzZWxmIGlzIGRpc2FibGVkLgorCisgICAgICAgICogcGxhdGZvcm0v
TG9jYWxpemVkU3RyaW5ncy5oOgorICAgICAgICBEZWNsYXJlIG5ldyBsb2NhbGl6ZWQgc3RyaW5n
IGZ1bmN0aW9ucy4KKwogMjAxMC0wMS0xNyAgTWFydGluIFJvYmluc29uICA8bWFydGluLmphbWVz
LnJvYmluc29uQGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9u
aGEgU2lsdmEuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQppbmRleCAwNTkwMjE1Li4yNDU5NGVhIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTMxNCw2ICsz
MTQsMTIgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uaCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcCBcCiAJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlNZWRpYUNvbnRyb2xzLmggXAorCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TWVudUxpc3QuY3BwIFwKKwlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lbnVMaXN0LmggXAorCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxp
c3RQb3B1cC5jcHAgXAorCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxp
c3RQb3B1cC5oIFwKKwlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0
T3B0aW9uLmNwcCBcCisJV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlz
dE9wdGlvbi5oIFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAgXAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggXAogCVdl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBcCmRpZmYg
LS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IDFhN2E0ZGYuLmQ0ZTFhMDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC00MDMsNiArNDAzLDEyIEBACiAgICAgICAgICAgICAn
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5oJywKICAgICAgICAgICAg
ICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcCcsCiAgICAgICAg
ICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9scy5oJywKKyAgICAg
ICAgICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAnLAorICAgICAg
ICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmgnLAorICAgICAgICAg
ICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwJywKKyAgICAg
ICAgICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmgnLAorICAg
ICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmNwcCcs
CisgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24u
aCcsCiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCcs
CiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgnLAogICAg
ICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAnLApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggYmM0MDg0OC4uMzJmNGQwOSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0xOTkyOSw2ICsxOTkyOSwz
MCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxhY2Nlc3NpYmlsaXR5XEFjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAiDQorCQkJCT4NCisJCQk8
L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxhY2Nlc3NpYmlsaXR5XEFj
Y2Vzc2liaWxpdHlNZW51TGlzdC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nlc3NpYmlsaXR5TWVudUxpc3RP
cHRpb24uY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uaCINCisJ
CQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGFjY2Vz
c2liaWxpdHlcQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwIg0KKwkJCQk+DQorCQkJPC9G
aWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nl
c3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxl
DQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC00MTk3OSw3ICs0MjAw
Myw3IEBACiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxV
U3RyaW5nLmgiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCi0gICAgICAgICAgICAgICAgPEZpbGUN
CisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVu
dGltZVxVU3RyaW5nSW1wbC5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxNGM0MjU3Li43YzFmZTA3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI0Nyw2ICsxMjQ3
LDEyIEBACiAJCTc2OTNCQUQzMTA2QzJEQ0EwMDdCMDgyMyAvKiBQbHVnaW5IYWx0ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzY5M0JBQ0YxMDZD
MkRDQTAwN0IwODIzIC8qIFBsdWdpbkhhbHRlci5jcHAgKi87IH07CiAJCTc2OTNCQUQ0MTA2QzJE
Q0EwMDdCMDgyMyAvKiBQbHVnaW5IYWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc2OTNCQUQwMTA2QzJEQ0EwMDdCMDgyMyAvKiBQbHVnaW5IYWx0
ZXIuaCAqLzsgfTsKIAkJNzY5M0JBRDUxMDZDMkRDQTAwN0IwODIzIC8qIFBsdWdpbkhhbHRlckNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzY5
M0JBRDExMDZDMkRDQTAwN0IwODIzIC8qIFBsdWdpbkhhbHRlckNsaWVudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTc2Q0REMkYyMTEwM0RBNjYw
MDY4MDUyMSAvKiBBY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzZDREQyRUMxMTAzREE2NjAwNjgwNTIxIC8qIEFj
Y2Vzc2liaWxpdHlNZW51TGlzdC5jcHAgKi87IH07CisJCTc2Q0REMkYzMTEwM0RBNjYwMDY4MDUy
MSAvKiBBY2Nlc3NpYmlsaXR5TWVudUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc2Q0REMkVEMTEwM0RBNjYwMDY4MDUyMSAvKiBBY2Nlc3NpYmls
aXR5TWVudUxpc3QuaCAqLzsgfTsKKwkJNzZDREQyRjQxMTAzREE2NjAwNjgwNTIxIC8qIEFjY2Vz
c2liaWxpdHlNZW51TGlzdEhpZGRlbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzZDREQyRUUxMTAzREE2NjAwNjgwNTIxIC8qIEFjY2Vzc2li
aWxpdHlNZW51TGlzdEhpZGRlbkxpc3QuY3BwICovOyB9OworCQk3NkNERDJGNTExMDNEQTY2MDA2
ODA1MjEgLyogQWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzZDREQyRUYxMTAzREE2NjAwNjgwNTIx
IC8qIEFjY2Vzc2liaWxpdHlNZW51TGlzdEhpZGRlbkxpc3QuaCAqLzsgfTsKKwkJNzZDREQyRjYx
MTAzREE2NjAwNjgwNTIxIC8qIEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NkNERDJGMDExMDNEQTY2
MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmNwcCAqLzsgfTsKKwkJNzZD
REQyRjcxMTAzREE2NjAwNjgwNTIxIC8qIEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzZDREQyRjExMTAz
REE2NjAwNjgwNTIxIC8qIEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5oICovOyB9OwogCQk3
OUFDOTIxODEwOTk0NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5QUM5MjE2MTA5OTQ1Qzgw
MDIxMjY2RSAvKiBKU0NvbXBvc2l0aW9uRXZlbnQuY3BwICovOyB9OwogCQk3OUFDOTIxOTEwOTk0
NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUFDOTIxNzEwOTk0NUM4MDAyMTI2NkUgLyogSlND
b21wb3NpdGlvbkV2ZW50LmggKi87IH07CiAJCTc5RjJGNUExMTA5MTkzOUEwMDBEODdDQiAvKiBD
b21wb3NpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc5RjJGNTlFMTA5MTkzOUEwMDBEODdDQiAvKiBDb21wb3NpdGlvbkV2ZW50LmNw
cCAqLzsgfTsKQEAgLTY2MTAsNiArNjYxNiwxMiBAQAogCQk3NjkzQkFDRjEwNkMyRENBMDA3QjA4
MjMgLyogUGx1Z2luSGFsdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFBsdWdpbkhhbHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2OTNC
QUQwMTA2QzJEQ0EwMDdCMDgyMyAvKiBQbHVnaW5IYWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUGx1Z2luSGFsdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTc2OTNCQUQxMTA2QzJEQ0EwMDdCMDgyMyAvKiBQbHVnaW5IYWx0ZXJDbGllbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGx1Z2luSGFsdGVyQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc2Q0REMkVDMTEwM0RBNjYwMDY4MDUyMSAvKiBBY2Nl
c3NpYmlsaXR5TWVudUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNzZDREQyRUQxMTAzREE2NjAwNjgwNTIxIC8qIEFjY2Vzc2liaWxpdHlNZW51TGlzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5TWVudUxpc3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzZDREQyRUUxMTAzREE2NjAwNjgwNTIxIC8q
IEFjY2Vzc2liaWxpdHlNZW51TGlzdEhpZGRlbkxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eU1lbnVMaXN0SGlkZGVuTGlzdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc2Q0REMkVGMTEwM0RBNjYwMDY4MDUyMSAvKiBB
Y2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlNZW51TGlzdEhpZGRlbkxpc3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzZDREQyRjAxMTAzREE2NjAwNjgwNTIxIC8qIEFjY2Vzc2liaWxp
dHlNZW51TGlzdE9wdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3NkNERDJGMTExMDNEQTY2MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0eU1lbnVMaXN0
T3B0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlN
ZW51TGlzdE9wdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUFDOTIxNjEw
OTk0NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ29tcG9zaXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTc5QUM5MjE3MTA5OTQ1QzgwMDIxMjY2RSAvKiBKU0NvbXBvc2l0
aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDb21wb3NpdGlv
bkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5RjJGNTlFMTA5MTkzOUEw
MDBEODdDQiAvKiBDb21wb3NpdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENvbXBvc2l0aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTA1OTQsNiArMTA2MDYsMTIgQEAKIAkJCQkyOUE4MTIyNDBGQkI5QzFEMDA1MTAy
OTMgLyogQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uaCAqLywKIAkJCQkwN0IwMTEzQzEwMzIy
NDE5MDBGQkRDMzMgLyogQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuY3BwICovLAogCQkJCTA3
QjAxMTNFMTAzMjI0MjIwMEZCREMzMyAvKiBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9scy5oICov
LAorCQkJCTc2Q0REMkVDMTEwM0RBNjYwMDY4MDUyMSAvKiBBY2Nlc3NpYmlsaXR5TWVudUxpc3Qu
Y3BwICovLAorCQkJCTc2Q0REMkVEMTEwM0RBNjYwMDY4MDUyMSAvKiBBY2Nlc3NpYmlsaXR5TWVu
dUxpc3QuaCAqLywKKwkJCQk3NkNERDJFRTExMDNEQTY2MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0
eU1lbnVMaXN0SGlkZGVuTGlzdC5jcHAgKi8sCisJCQkJNzZDREQyRUYxMTAzREE2NjAwNjgwNTIx
IC8qIEFjY2Vzc2liaWxpdHlNZW51TGlzdEhpZGRlbkxpc3QuaCAqLywKKwkJCQk3NkNERDJGMDEx
MDNEQTY2MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmNwcCAqLywKKwkJ
CQk3NkNERDJGMTExMDNEQTY2MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9u
LmggKi8sCiAJCQkJMjlBODEyMUUwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlPYmpl
Y3QuY3BwICovLAogCQkJCTI5QTgxMjE4MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5
T2JqZWN0LmggKi8sCiAJCQkJMjlBODEyMDgwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwICovLApAQCAtMTgzNDksNiArMTgzNjcsOSBAQAogCQkJCTZFNEU5
MUFEMTBGN0ZCMzEwMEEyNzc5QyAvKiBDYW52YXNDb250ZXh0QXR0cmlidXRlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNkU0RTkxQUYxMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJp
YnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTZFRThBNzczMTBGODAzRjMwMDVBNEEyNCAvKiBK
U1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTc2Q0REMkYzMTEw
M0RBNjYwMDY4MDUyMSAvKiBBY2Nlc3NpYmlsaXR5TWVudUxpc3QuaCBpbiBIZWFkZXJzICovLAor
CQkJCTc2Q0REMkY1MTEwM0RBNjYwMDY4MDUyMSAvKiBBY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRk
ZW5MaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NkNERDJGNzExMDNEQTY2MDA2ODA1MjEgLyog
QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIwNTEzLDYg
KzIwNTM0LDkgQEAKIAkJCQk2RTRFOTFBQzEwRjdGQjMxMDBBMjc3OUMgLyogQ2FudmFzQ29udGV4
dEF0dHJpYnV0ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkU0RTkxQUUxMEY3RkIzMTAwQTI3
NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkVF
OEE3NzIxMEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk3NkNERDJGMjExMDNEQTY2MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0
eU1lbnVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc2Q0REMkY0MTEwM0RBNjYwMDY4MDUy
MSAvKiBBY2Nlc3NpYmlsaXR5TWVudUxpc3RIaWRkZW5MaXN0LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTc2Q0REMkY2MTEwM0RBNjYwMDY4MDUyMSAvKiBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAKaW5kZXggOWVmZjViNi4uN2E3YTRmMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcApAQCAtMzcsNiArMzcsOSBAQAogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlMaXN0
Qm94LmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uaCIKICNpbmNsdWRl
ICJBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9scy5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlN
ZW51TGlzdC5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmgiCisjaW5j
bHVkZSAiQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlTbGlkZXIuaCIKICNp
bmNsdWRlICJBY2Nlc3NpYmlsaXR5VGFibGUuaCIKQEAgLTE0MSw2ICsxNDQsOCBAQCBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpnZXRPckNyZWF0ZShSZW5kZXJPYmplY3QqIHJl
bmRlcmVyKQogICAgICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gbmV3T2JqID0gMDsK
ICAgICAgICAgaWYgKHJlbmRlcmVyLT5pc0xpc3RCb3goKSkKICAgICAgICAgICAgIG5ld09iaiA9
IEFjY2Vzc2liaWxpdHlMaXN0Qm94OjpjcmVhdGUocmVuZGVyZXIpOworICAgICAgICBlbHNlIGlm
IChyZW5kZXJlci0+aXNNZW51TGlzdCgpKQorICAgICAgICAgICAgbmV3T2JqID0gQWNjZXNzaWJp
bGl0eU1lbnVMaXN0OjpjcmVhdGUocmVuZGVyZXIpOwogCiAgICAgICAgIC8vIElmIHRoZSBub2Rl
IGlzIGFyaWEgcm9sZT0ibGlzdCIgb3IgdGhlIGFyaWEgcm9sZSBpcyBlbXB0eSBhbmQgaXRzIGEg
dWwvb2wvZGwgdHlwZSAoaXQgc2hvdWxkbid0IGJlIGEgbGlzdCBpZiBhcmlhIHNheXMgb3RoZXJ3
aXNlKS4gCiAgICAgICAgIGVsc2UgaWYgKG5vZGUgJiYgKChub2RlSXNBcmlhVHlwZShub2RlLCAi
bGlzdCIpIHx8IG5vZGVJc0FyaWFUeXBlKG5vZGUsICJkaXJlY3RvcnkiKSkKQEAgLTIwOSw2ICsy
MTQsMTIgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6Z2V0T3JDcmVhdGUo
QWNjZXNzaWJpbGl0eVJvbGUgcm9sZSkKICAgICBjYXNlIFNsaWRlclRodW1iUm9sZToKICAgICAg
ICAgb2JqID0gQWNjZXNzaWJpbGl0eVNsaWRlclRodW1iOjpjcmVhdGUoKTsKICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBNZW51TGlzdFBvcHVwUm9sZToKKyAgICAgICAgb2JqID0gQWNjZXNzaWJp
bGl0eU1lbnVMaXN0UG9wdXA6OmNyZWF0ZSgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1l
bnVMaXN0T3B0aW9uUm9sZToKKyAgICAgICAgb2JqID0gQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0
aW9uOjpjcmVhdGUoKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgb2Jq
ID0gMDsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1lbnVMaXN0LmNwcCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVu
dUxpc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1Y2RmOTcKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVM
aXN0LmNwcApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmls
aXR5TWVudUxpc3QuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJB
Y2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oIgorI2luY2x1ZGUgIlJlbmRlck1lbnVMaXN0Lmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQWNjZXNzaWJpbGl0eU1lbnVMaXN0OjpBY2Nlc3Np
YmlsaXR5TWVudUxpc3QoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKKyAgICA6IEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QocmVuZGVyZXIpCit7CisgICAgQVNTRVJUX0FSRyhyZW5kZXJlciwgcmVu
ZGVyZXItPmlzTWVudUxpc3QoKSk7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eU1lbnVMaXN0Ojpw
cmVzcygpIGNvbnN0Cit7CisgICAgUmVuZGVyTWVudUxpc3QqIG1lbnVMaXN0ID0gc3RhdGljX2Nh
c3Q8UmVuZGVyTWVudUxpc3QqPihtX3JlbmRlcmVyKTsKKyAgICBpZiAobWVudUxpc3QtPnBvcHVw
SXNWaXNpYmxlKCkpCisgICAgICAgIG1lbnVMaXN0LT5oaWRlUG9wdXAoKTsKKyAgICBlbHNlCisg
ICAgICAgIG1lbnVMaXN0LT5zaG93UG9wdXAoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9p
ZCBBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmFkZENoaWxkcmVuKCkKK3sKKyAgICBtX2hhdmVDaGls
ZHJlbiA9IHRydWU7CisKKyAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IG1fcmVuZGVyZXItPmRv
Y3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKTsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGxp
c3QgPSBjYWNoZS0+Z2V0T3JDcmVhdGUoTWVudUxpc3RQb3B1cFJvbGUpOworICAgIGlmICghbGlz
dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGxpc3QtPmFjY2Vzc2liaWxpdHlQbGF0Zm9y
bUluY2x1ZGVzT2JqZWN0KCkgPT0gSWdub3JlT2JqZWN0KSB7CisgICAgICAgIGNhY2hlLT5yZW1v
dmUobGlzdC0+YXhPYmplY3RJRCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN0
YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwKj4obGlzdCktPnNldE1lbnVMaXN0
KHRoaXMpOworICAgIG1fY2hpbGRyZW4uYXBwZW5kKGxpc3QpOworCisgICAgbGlzdC0+YWRkQ2hp
bGRyZW4oKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmNoaWxkcmVuQ2hhbmdl
ZCgpCit7CisgICAgaWYgKG1fY2hpbGRyZW4uaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBBU1NFUlQobV9jaGlsZHJlbi5zaXplKCkgPT0gMSk7CisgICAgbV9jaGlsZHJlblswXS0+
Y2hpbGRyZW5DaGFuZ2VkKCk7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eU1lbnVMaXN0Ojppc0Nv
bGxhcHNlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuICFzdGF0aWNfY2FzdDxSZW5kZXJNZW51TGlz
dCo+KG1fcmVuZGVyZXIpLT5wb3B1cElzVmlzaWJsZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1l
bnVMaXN0LmggYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDAwYzhiNAotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuaApAQCAt
MCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpZm5kZWYgQWNjZXNzaWJpbGl0eU1lbnVMaXN0X2gKKyNkZWZpbmUgQWNjZXNzaWJpbGl0
eU1lbnVMaXN0X2gKKworI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKKyNpbmNsdWRl
ICJBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgQWNjZXNzaWJpbGl0eU1lbnVMaXN0OworY2xhc3MgQWNjZXNzaWJpbGl0eU1lbnVMaXN0
UG9wdXA7CitjbGFzcyBIVE1MT3B0aW9uRWxlbWVudDsKKworY2xhc3MgQWNjZXNzaWJpbGl0eU1l
bnVMaXN0IDogcHVibGljIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QgeworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlNZW51TGlzdD4gY3JlYXRlKFJlbmRlck9i
amVjdCogcmVuZGVyZXIpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5TWVudUxp
c3QocmVuZGVyZXIpKTsgfQorCisgICAgdmlydHVhbCBib29sIGlzQ29sbGFwc2VkKCkgY29uc3Q7
CisgICAgdmlydHVhbCBib29sIHByZXNzKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgQWNjZXNz
aWJpbGl0eU1lbnVMaXN0KFJlbmRlck9iamVjdCopOworCisgICAgdmlydHVhbCBib29sIGlzTWVu
dUxpc3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5
Um9sZSByb2xlVmFsdWUoKSBjb25zdCB7IHJldHVybiBQb3BVcEJ1dHRvblJvbGU7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIGNhblNldEZvY3VzQXR0cmlidXRlKCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQorCisgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkcmVuKCk7CisgICAgdmlydHVh
bCB2b2lkIGNoaWxkcmVuQ2hhbmdlZCgpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gQWNjZXNzaWJpbGl0eU1lbnVMaXN0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uY3BwIGIvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE3YmQ5MQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uY3BwCkBAIC0wLDAg
KzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRp
b24uaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmls
aXR5TWVudUxpc3RQb3B1cC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhU
TUxPcHRpb25FbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKKworQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjpBY2Nlc3NpYmls
aXR5TWVudUxpc3RPcHRpb24oKQorICAgIDogbV9wb3B1cCgwKQoreworfQorCit2b2lkIEFjY2Vz
c2liaWxpdHlNZW51TGlzdE9wdGlvbjo6c2V0RWxlbWVudChIVE1MRWxlbWVudCogZWxlbWVudCkK
K3sKKyAgICBBU1NFUlRfQVJHKGVsZW1lbnQsIGVsZW1lbnQtPmhhc1RhZ05hbWUob3B0aW9uVGFn
KSk7CisgICAgbV9lbGVtZW50ID0gZWxlbWVudDsKK30KKworRWxlbWVudCogQWNjZXNzaWJpbGl0
eU1lbnVMaXN0T3B0aW9uOjphY3Rpb25FbGVtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9l
bGVtZW50LmdldCgpOworfQorCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5TWVu
dUxpc3RPcHRpb246OnBhcmVudE9iamVjdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcG9wdXA7
Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjppc0VuYWJsZWQoKSBjb25z
dAoreworICAgIC8vIGRpc2FibGVkKCkgcmV0dXJucyB0cnVlIGlmIHRoZSBwYXJlbnQgPHNlbGVj
dD4gZWxlbWVudCBpcyBkaXNhYmxlZCwKKyAgICAvLyB3aGljaCB3ZSBkb24ndCB3YW50LgorICAg
IHJldHVybiAhc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihtX2VsZW1lbnQuZ2V0KCkp
LT5vd25FbGVtZW50RGlzYWJsZWQoKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RP
cHRpb246OmlzVmlzaWJsZSgpIGNvbnN0Cit7CisgICAgLy8gSW4gYSBzaW5nbGUtb3B0aW9uIHNl
bGVjdCB3aXRoIHRoZSBwb3B1cCBjb2xsYXBzZWQsIG9ubHkgdGhlIHNlbGVjdGVkCisgICAgLy8g
aXRlbSBpcyBjb25zaWRlcmVkIHZpc2libGUuCisgICAgcmV0dXJuICFtX3BvcHVwLT5pc09mZlNj
cmVlbigpIHx8IGlzU2VsZWN0ZWQoKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RP
cHRpb246OmlzT2ZmU2NyZWVuKCkgY29uc3QKK3sKKyAgICAvLyBJbnZpc2libGUgbGlzdCBvcHRp
b25zIGFyZSBjb25zaWRlcmVkIHRvIGJlIG9mZnNjcmVlbi4KKyAgICByZXR1cm4gIWlzVmlzaWJs
ZSgpOworfQorCitib29sIEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6aXNTZWxlY3RlZCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4obV9l
bGVtZW50LmdldCgpKS0+c2VsZWN0ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5TWVudUxp
c3RPcHRpb246OnNldFNlbGVjdGVkKGJvb2wgYikKK3sKKyAgICBzdGF0aWNfY2FzdDxIVE1MT3B0
aW9uRWxlbWVudCo+KG1fZWxlbWVudC5nZXQoKSktPnNldFNlbGVjdGVkKGIpOworfQorCitTdHJp
bmcgQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uOjpuYW1lRm9yTVNBQSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4obV9lbGVtZW50LmdldCgp
KS0+dGV4dCgpOworfQorCitib29sIEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjo6Y2FuU2V0
U2VsZWN0ZWRBdHRyaWJ1dGUoKSBjb25zdAoreworICAgIHJldHVybiBpc0VuYWJsZWQoKTsKK30K
KworSW50UmVjdCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb246OmVsZW1lbnRSZWN0KCkgY29u
c3QKK3sKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnQgPSBwYXJlbnRPYmplY3QoKTsK
KyAgICBBU1NFUlQocGFyZW50LT5pc01lbnVMaXN0UG9wdXAoKSk7CisKKyAgICBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBncmFuZHBhcmVudCA9IHBhcmVudC0+cGFyZW50T2JqZWN0KCk7CisgICAgQVNT
RVJUKGdyYW5kcGFyZW50LT5pc01lbnVMaXN0KCkpOworCisgICAgcmV0dXJuIGdyYW5kcGFyZW50
LT5lbGVtZW50UmVjdCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmggYi9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2UyNzg4OAotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uaApAQCAt
MCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpZm5kZWYgQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uX2gKKyNkZWZpbmUgQWNjZXNz
aWJpbGl0eU1lbnVMaXN0T3B0aW9uX2gKKworI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3Qu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQ
b3B1cDsKK2NsYXNzIEhUTUxFbGVtZW50OworCitjbGFzcyBBY2Nlc3NpYmlsaXR5TWVudUxpc3RP
cHRpb24gOiBwdWJsaWMgQWNjZXNzaWJpbGl0eU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uPiBjcmVhdGUoKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uKTsgfQorCisgICAgdm9p
ZCBzZXRFbGVtZW50KEhUTUxFbGVtZW50Kik7CisgICAgdm9pZCBzZXRQYXJlbnQoQWNjZXNzaWJp
bGl0eU1lbnVMaXN0UG9wdXAqIHBvcHVwKSB7IG1fcG9wdXAgPSBwb3B1cDsgfQorCitwcml2YXRl
OgorICAgIEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbigpOworCisgICAgdmlydHVhbCBib29s
IGlzTWVudUxpc3RPcHRpb24oKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2aXJ0dWFs
IEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIE1lbnVMaXN0T3B0
aW9uUm9sZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgSW50U2l6ZSBzaXplKCkgY29uc3QgeyByZXR1cm4g
ZWxlbWVudFJlY3QoKS5zaXplKCk7IH0KKworICAgIHZpcnR1YWwgRWxlbWVudCogYWN0aW9uRWxl
bWVudCgpIGNvbnN0OworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2Jq
ZWN0KCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzRW5hYmxlZCgpIGNvbnN0OworICAgIHZp
cnR1YWwgYm9vbCBpc1Zpc2libGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNPZmZTY3Jl
ZW4oKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RlZCgpIGNvbnN0OworICAgIHZp
cnR1YWwgU3RyaW5nIG5hbWVGb3JNU0FBKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFNl
bGVjdGVkKGJvb2wpOworICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRTZWxlY3RlZEF0dHJpYnV0ZSgp
IGNvbnN0OworICAgIHZpcnR1YWwgSW50UmVjdCBlbGVtZW50UmVjdCgpIGNvbnN0OworCisgICAg
UmVmUHRyPEhUTUxFbGVtZW50PiBtX2VsZW1lbnQ7CisgICAgQWNjZXNzaWJpbGl0eU1lbnVMaXN0
UG9wdXAqIG1fcG9wdXA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb25faApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcCBiL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNDhjMmZhYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5jcHAKQEAgLTAsMCArMSwxMjYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmgiCisK
KyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU1lbnVM
aXN0LmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmgiCisjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJSZW5kZXJPYmplY3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3Bh
Y2UgSFRNTE5hbWVzOworCitBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6QWNjZXNzaWJpbGl0
eU1lbnVMaXN0UG9wdXAoKQorICAgIDogbV9tZW51TGlzdCgwKQoreworfQorCitib29sIEFjY2Vz
c2liaWxpdHlNZW51TGlzdFBvcHVwOjppc1Zpc2libGUoKSBjb25zdAoreworICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6aXNPZmZTY3JlZW4o
KSBjb25zdAoreworICAgIHJldHVybiBtX21lbnVMaXN0LT5pc0NvbGxhcHNlZCgpOworfQorCitB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6cGFyZW50T2Jq
ZWN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9tZW51TGlzdDsKK30KKworYm9vbCBBY2Nlc3Np
YmlsaXR5TWVudUxpc3RQb3B1cDo6aXNFbmFibGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9t
ZW51TGlzdC0+aXNFbmFibGVkKCk7Cit9CisKK0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbiog
QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6Om1lbnVMaXN0T3B0aW9uQWNjZXNzaWJpbGl0eU9i
amVjdChIVE1MRWxlbWVudCogZWxlbWVudCkgY29uc3QKK3sKKyAgICBpZiAoIWVsZW1lbnQgfHwg
IWVsZW1lbnQtPmhhc1RhZ05hbWUob3B0aW9uVGFnKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAg
ICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QgPSBtX21lbnVMaXN0LT5yZW5kZXJlcigpLT5k
b2N1bWVudCgpLT5heE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKE1lbnVMaXN0T3B0aW9uUm9s
ZSk7CisgICAgQVNTRVJUKG9iamVjdC0+aXNNZW51TGlzdE9wdGlvbigpKTsKKworICAgIEFjY2Vz
c2liaWxpdHlNZW51TGlzdE9wdGlvbiogb3B0aW9uID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0
eU1lbnVMaXN0T3B0aW9uKj4ob2JqZWN0KTsKKyAgICBvcHRpb24tPnNldEVsZW1lbnQoZWxlbWVu
dCk7CisKKyAgICByZXR1cm4gb3B0aW9uOworfQorCitib29sIEFjY2Vzc2liaWxpdHlNZW51TGlz
dFBvcHVwOjpwcmVzcygpIGNvbnN0Cit7CisgICAgbV9tZW51TGlzdC0+cHJlc3MoKTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6YWRkQ2hp
bGRyZW4oKQoreworICAgIE5vZGUqIHNlbGVjdE5vZGUgPSBtX21lbnVMaXN0LT5yZW5kZXJlcigp
LT5ub2RlKCk7CisgICAgaWYgKCFzZWxlY3ROb2RlKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X2hhdmVDaGlsZHJlbiA9IHRydWU7CisKKyAgICBBU1NFUlQoc2VsZWN0Tm9kZS0+aGFzVGFnTmFt
ZShzZWxlY3RUYWcpKTsKKworICAgIGNvbnN0IFZlY3RvcjxFbGVtZW50Kj4mIGxpc3RJdGVtcyA9
IHN0YXRpY19jYXN0PEhUTUxTZWxlY3RFbGVtZW50Kj4oc2VsZWN0Tm9kZSktPmxpc3RJdGVtcygp
OworICAgIHVuc2lnbmVkIGxlbmd0aCA9IGxpc3RJdGVtcy5zaXplKCk7CisgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICAgIC8vIFRoZSBjYXN0IHRvIEhU
TUxFbGVtZW50IGJlbG93IGlzIHNhZmUgYmVjYXVzZSB0aGUgb25seSBvdGhlciBwb3NzaWJsZSBs
aXN0SXRlbSB0eXBlCisgICAgICAgIC8vIHdvdWxkIGJlIGEgV01MRWxlbWVudCwgYnV0IFdNTCBi
dWlsZHMgZG9uJ3QgdXNlIGFjY2Vzc2JpbGl0eSBmZWF0dXJlcyBhdCBhbGwuCisgICAgICAgIEFj
Y2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbiogb3B0aW9uID0gbWVudUxpc3RPcHRpb25BY2Nlc3Np
YmlsaXR5T2JqZWN0KHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4obGlzdEl0ZW1zW2ldKSk7Cisg
ICAgICAgIGlmIChvcHRpb24pIHsKKyAgICAgICAgICAgIG9wdGlvbi0+c2V0UGFyZW50KHRoaXMp
OworICAgICAgICAgICAgbV9jaGlsZHJlbi5hcHBlbmQob3B0aW9uKTsKKyAgICAgICAgfQorICAg
IH0KK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6Y2hpbGRyZW5DaGFuZ2Vk
KCkKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gbV9jaGlsZHJlbi5zaXplKCk7IGkgPiAwIDsgLS1p
KSB7CisgICAgICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGNoaWxkID0gbV9jaGlsZHJlbltpIC0g
MV0uZ2V0KCk7CisgICAgICAgIGlmIChjaGlsZC0+YWN0aW9uRWxlbWVudCgpICYmICFjaGlsZC0+
YWN0aW9uRWxlbWVudCgpLT5hdHRhY2hlZCgpKSB7CisgICAgICAgICAgICBtX21lbnVMaXN0LT5y
ZW5kZXJlcigpLT5kb2N1bWVudCgpLT5heE9iamVjdENhY2hlKCktPnJlbW92ZShjaGlsZC0+YXhP
YmplY3RJRCgpKTsKKyAgICAgICAgICAgIG1fY2hpbGRyZW4ucmVtb3ZlKGkgLSAxKTsKKyAgICAg
ICAgfQorICAgIH0KK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6c2V0TWVu
dUxpc3QoQWNjZXNzaWJpbGl0eU1lbnVMaXN0KiBtZW51TGlzdCkKK3sKKyAgICBBU1NFUlRfQVJH
KG1lbnVMaXN0LCBtZW51TGlzdCk7CisgICAgQVNTRVJUKCFtX21lbnVMaXN0KTsKKyAgICBtX21l
bnVMaXN0ID0gbWVudUxpc3Q7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oIGIv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODhmYmY3YwotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oCkBAIC0w
LDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cF9oCisjZGVmaW5lIEFjY2Vzc2li
aWxpdHlNZW51TGlzdFBvcHVwX2gKKworI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBY2Nlc3NpYmlsaXR5TWVudUxpc3Q7Citj
bGFzcyBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb247CitjbGFzcyBIVE1MRWxlbWVudDsKKwor
Y2xhc3MgQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eU9i
amVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU1lbnVM
aXN0UG9wdXA+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5TWVu
dUxpc3RQb3B1cCk7IH0KKworICAgIHZvaWQgc2V0TWVudUxpc3QoQWNjZXNzaWJpbGl0eU1lbnVM
aXN0Kik7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKCkgY29uc3Q7CisgICAgdmlydHVh
bCBib29sIGlzT2ZmU2NyZWVuKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgQWNjZXNzaWJpbGl0
eU1lbnVMaXN0UG9wdXAoKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc01lbnVMaXN0UG9wdXAoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2aXJ0dWFsIEludFJlY3QgZWxlbWVudFJlY3Qo
KSBjb25zdCB7IHJldHVybiBJbnRSZWN0KCk7IH0KKyAgICB2aXJ0dWFsIEludFNpemUgc2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIEludFNpemUoKTsgfQorICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJv
bGUgcm9sZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gTWVudUxpc3RQb3B1cFJvbGU7IH0KKworICAg
IHZpcnR1YWwgYm9vbCBpc1Zpc2libGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxp
dHlPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBwcmVzcygp
IGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZHJlbigpOworICAgIHZpcnR1YWwgdm9p
ZCBjaGlsZHJlbkNoYW5nZWQoKTsKKworICAgIEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbiog
bWVudUxpc3RPcHRpb25BY2Nlc3NpYmlsaXR5T2JqZWN0KEhUTUxFbGVtZW50KikgY29uc3Q7CisK
KyAgICBBY2Nlc3NpYmlsaXR5TWVudUxpc3QqIG1fbWVudUxpc3Q7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cF9oCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAg
Yi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggNzUx
ODEzYS4uN2M2MTZlYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuY3BwCisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcApAQCAtODA5LDYgKzgwOSw4IEBAIGNvbnN0IFN0cmluZyYgQWNjZXNzaWJpbGl0
eU9iamVjdDo6YWN0aW9uVmVyYigpIGNvbnN0CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIGNoZWNrZWRDaGVja0JveEFjdGlvbiwgKEFYQ2hlY2tlZENoZWNrQm94QWN0aW9u
VmVyYigpKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHVuY2hlY2tl
ZENoZWNrQm94QWN0aW9uLCAoQVhVbmNoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKSkpOwogICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBsaW5rQWN0aW9uLCAoQVhMaW5rQWN0
aW9uVmVyYigpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lbnVM
aXN0QWN0aW9uLCAoQVhNZW51TGlzdEFjdGlvblZlcmIoKSkpOworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgU3RyaW5nLCBtZW51TGlzdFBvcHVwQWN0aW9uLCAoQVhNZW51TGlzdFBvcHVw
QWN0aW9uVmVyYigpKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG5v
QWN0aW9uLCAoKSk7CiAKICAgICBzd2l0Y2ggKHJvbGVWYWx1ZSgpKSB7CkBAIC04MjQsNiArODI2
LDEwIEBAIGNvbnN0IFN0cmluZyYgQWNjZXNzaWJpbGl0eU9iamVjdDo6YWN0aW9uVmVyYigpIGNv
bnN0CiAgICAgY2FzZSBMaW5rUm9sZToKICAgICBjYXNlIFdlYkNvcmVMaW5rUm9sZToKICAgICAg
ICAgcmV0dXJuIGxpbmtBY3Rpb247CisgICAgY2FzZSBQb3BVcEJ1dHRvblJvbGU6CisgICAgICAg
IHJldHVybiBtZW51TGlzdEFjdGlvbjsKKyAgICBjYXNlIE1lbnVMaXN0UG9wdXBSb2xlOgorICAg
ICAgICByZXR1cm4gbWVudUxpc3RQb3B1cEFjdGlvbjsKICAgICBkZWZhdWx0OgogICAgICAgICBy
ZXR1cm4gbm9BY3Rpb247CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmgKaW5kZXggZDdiY2E2Ny4uMzYzNjgxZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC0xNzAsNiArMTcwLDggQEAgZW51bSBBY2Nl
c3NpYmlsaXR5Um9sZSB7CiAgICAgRGlyZWN0b3J5Um9sZSwKICAgICBFZGl0YWJsZVRleHRSb2xl
LAogICAgIExpc3RJdGVtUm9sZSwKKyAgICBNZW51TGlzdFBvcHVwUm9sZSwKKyAgICBNZW51TGlz
dE9wdGlvblJvbGUsCiAKICAgICAvLyBBUklBIEdyb3VwaW5nIHJvbGVzCiAgICAgTGFuZG1hcmtB
cHBsaWNhdGlvblJvbGUsCkBAIC0yODMsNiArMjg1LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBpc0ZpZWxkc2V0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNHcm91cCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlz
QVJJQVRyZWVHcmlkUm93KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgaXNNZW51TGlzdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29s
IGlzTWVudUxpc3RQb3B1cCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBi
b29sIGlzTWVudUxpc3RPcHRpb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wg
aXNUYWJMaXN0KCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkgPT0gVGFiTGlzdFJvbGU7IH0K
ICAgICBib29sIGlzVGFiSXRlbSgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFRhYlJv
bGU7IH0KICAgICBib29sIGlzUmFkaW9Hcm91cCgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgp
ID09IFJhZGlvR3JvdXBSb2xlOyB9CkBAIC0zMDcsNiArMzEyLDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBpc1JlcXVpcmVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaXNMaW5rZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBpc0V4cGFuZGVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgaXNWaXNpYmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBp
c0NvbGxhcHNlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNl
dElzRXhwYW5kZWQoYm9vbCkgeyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0Rm9jdXNBdHRy
aWJ1dGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2Nocm9taXVtL0FjY2Vzc2liaWxpdHlPYmplY3RDaHJvbWl1bS5jcHAgYi9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvY2hyb21pdW0vQWNjZXNzaWJpbGl0eU9iamVjdENocm9taXVtLmNw
cAppbmRleCA3YWI3ZDc5Li4wZDcxMWEwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvY2hyb21pdW0vQWNjZXNzaWJpbGl0eU9iamVjdENocm9taXVtLmNwcAorKysgYi9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvY2hyb21pdW0vQWNjZXNzaWJpbGl0eU9iamVjdENocm9taXVtLmNwcApA
QCAtMzYsNiArMzYsOSBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlJ
Z25vcmVBdHRhY2htZW50KCkgY29uc3QKIAogQWNjZXNzaWJpbGl0eU9iamVjdFBsYXRmb3JtSW5j
bHVzaW9uIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVz
T2JqZWN0KCkgY29uc3QKIHsKKyAgICBpZiAoQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAoKSB8
fCBpc01lbnVMaXN0T3B0aW9uKCkpCisgICAgICAgIHJldHVybiBJZ25vcmVPYmplY3Q7CisKICAg
ICByZXR1cm4gRGVmYXVsdEJlaGF2aW9yOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwIGIvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcAppbmRleCBiYzMxZmNlLi5mNDg3
NzBmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlP
YmplY3RBdGsuY3BwCisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0
eU9iamVjdEF0ay5jcHAKQEAgLTM4LDYgKzM4LDkgQEAgQWNjZXNzaWJpbGl0eU9iamVjdFBsYXRm
b3JtSW5jbHVzaW9uIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlQbGF0Zm9ybUkK
ICAgICBpZiAoIXBhcmVudCkKICAgICAgICAgcmV0dXJuIERlZmF1bHRCZWhhdmlvcjsKIAorICAg
IGlmIChpc01lbnVMaXN0UG9wdXAoKSB8fCBpc01lbnVMaXN0T3B0aW9uKCkpCisgICAgICAgIHJl
dHVybiBJZ25vcmVPYmplY3Q7CisKICAgICAvLyBXaGVuIGEgbGlzdCBpdGVtIGlzIG1hZGUgdXAg
ZW50aXJlbHkgb2YgY2hpbGRyZW4gKGUuZy4gcGFyYWdyYXBocykKICAgICAvLyB0aGUgbGlzdCBp
dGVtIGdldHMgaWdub3JlZC4gV2UgbmVlZCBpdC4KICAgICBpZiAoaXNHcm91cCgpICYmIHBhcmVu
dC0+aXNMaXN0KCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vz
c2liaWxpdHlPYmplY3RNYWMubW0gYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2li
aWxpdHlPYmplY3RNYWMubW0KaW5kZXggMjE3YWY1NC4uMTgwN2E5YiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCisrKyBiL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQpAQCAtNDMs
NiArNDMsOSBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlJZ25vcmVB
dHRhY2htZW50KCkgY29uc3QKIAogQWNjZXNzaWJpbGl0eU9iamVjdFBsYXRmb3JtSW5jbHVzaW9u
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0
KCkgY29uc3QKIHsKKyAgICBpZiAoaXNNZW51TGlzdFBvcHVwKCkgfHwgaXNNZW51TGlzdE9wdGlv
bigpKQorICAgICAgICByZXR1cm4gSWdub3JlT2JqZWN0OworCiAgICAgcmV0dXJuIERlZmF1bHRC
ZWhhdmlvcjsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9xdC9B
Y2Nlc3NpYmlsaXR5T2JqZWN0UXQuY3BwIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3F0L0FjY2Vz
c2liaWxpdHlPYmplY3RRdC5jcHAKaW5kZXggMDdmMTNkNC4uNWQ4NWYxZSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3F0L0FjY2Vzc2liaWxpdHlPYmplY3RRdC5jcHAKKysrIGIv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3F0L0FjY2Vzc2liaWxpdHlPYmplY3RRdC5jcHAKQEAgLTMx
LDYgKzMxLDkgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5SWdub3Jl
QXR0YWNobWVudCgpIGNvbnN0CiAKIEFjY2Vzc2liaWxpdHlPYmplY3RQbGF0Zm9ybUluY2x1c2lv
biBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09iamVj
dCgpIGNvbnN0CiB7CisgICAgaWYgKGlzTWVudUxpc3RQb3B1cCgpIHx8IGlzTWVudUxpc3RPcHRp
b24oKSkKKyAgICAgICAgcmV0dXJuIElnbm9yZU9iamVjdDsKKwogICAgIHJldHVybiBEZWZhdWx0
QmVoYXZpb3I7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQWNj
ZXNzaWJpbGl0eU9iamVjdFdpbi5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd2luL0FjY2Vz
c2liaWxpdHlPYmplY3RXaW4uY3BwCmluZGV4IDg5NWZjNDMuLmE4Njk4OGYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQWNjZXNzaWJpbGl0eU9iamVjdFdpbi5jcHAKKysr
IGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dpbi9BY2Nlc3NpYmlsaXR5T2JqZWN0V2luLmNwcApA
QCAtMzcsNiArMzcsOSBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlJ
Z25vcmVBdHRhY2htZW50KCkgY29uc3QKIAogQWNjZXNzaWJpbGl0eU9iamVjdFBsYXRmb3JtSW5j
bHVzaW9uIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVz
T2JqZWN0KCkgY29uc3QKIHsKKyAgICBpZiAoaXNNZW51TGlzdFBvcHVwKCkgfHwgaXNNZW51TGlz
dE9wdGlvbigpKQorICAgICAgICByZXR1cm4gSW5jbHVkZU9iamVjdDsKKwogICAgIHJldHVybiBE
ZWZhdWx0QmVoYXZpb3I7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93
eC9BY2Nlc3NpYmlsaXR5T2JqZWN0V3guY3BwIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3d4L0Fj
Y2Vzc2liaWxpdHlPYmplY3RXeC5jcHAKaW5kZXggMDdmMTNkNC4uNWQ4NWYxZSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3d4L0FjY2Vzc2liaWxpdHlPYmplY3RXeC5jcHAKKysr
IGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3d4L0FjY2Vzc2liaWxpdHlPYmplY3RXeC5jcHAKQEAg
LTMxLDYgKzMxLDkgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5SWdu
b3JlQXR0YWNobWVudCgpIGNvbnN0CiAKIEFjY2Vzc2liaWxpdHlPYmplY3RQbGF0Zm9ybUluY2x1
c2lvbiBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09i
amVjdCgpIGNvbnN0CiB7CisgICAgaWYgKGlzTWVudUxpc3RQb3B1cCgpIHx8IGlzTWVudUxpc3RP
cHRpb24oKSkKKyAgICAgICAgcmV0dXJuIElnbm9yZU9iamVjdDsKKwogICAgIHJldHVybiBEZWZh
dWx0QmVoYXZpb3I7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxl
bWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCmluZGV4IDMxNmIx
OTIuLmI0MzY2NjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5j
cHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcApAQCAtMjEzLDcgKzIx
Myw3IEBAIFN0cmluZyBIVE1MT3B0aW9uRWxlbWVudDo6dGV4dEluZGVudGVkVG9SZXNwZWN0R3Jv
dXBMYWJlbCgpIGNvbnN0CiAKIGJvb2wgSFRNTE9wdGlvbkVsZW1lbnQ6OmRpc2FibGVkKCkgY29u
c3QKIHsgCi0gICAgcmV0dXJuIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRpc2FibGVkKCkgfHwg
KHBhcmVudE5vZGUoKSAmJiBzdGF0aWNfY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Kj4ocGFy
ZW50Tm9kZSgpKS0+ZGlzYWJsZWQoKSk7IAorICAgIHJldHVybiBvd25FbGVtZW50RGlzYWJsZWQo
KSB8fCAocGFyZW50Tm9kZSgpICYmIHN0YXRpY19jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQq
PihwYXJlbnROb2RlKCkpLT5kaXNhYmxlZCgpKTsgCiB9CiAKIHZvaWQgSFRNTE9wdGlvbkVsZW1l
bnQ6Omluc2VydGVkSW50b1RyZWUoYm9vbCBkZWVwKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1s
L0hUTUxPcHRpb25FbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaApp
bmRleCA4NDM2MDhmLi43YmU5ZTlhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlv
bkVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaApAQCAtNzYs
NiArNzYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFN0cmluZyB0ZXh0SW5kZW50ZWRUb1Jl
c3BlY3RHcm91cExhYmVsKCkgY29uc3Q7CiAKKyAgICBib29sIG93bkVsZW1lbnREaXNhYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRpc2FibGVkKCk7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgZGlzYWJsZWQoKSBjb25zdDsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQg
aW5zZXJ0ZWRJbnRvVHJlZShib29sKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKaW5k
ZXggZjdhNmZhNi4uNmNhNTc3MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6
ZWRTdHJpbmdzLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKQEAg
LTEyNCw2ICsxMjQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3RyaW5nIEFYVGV4dEZp
ZWxkQWN0aW9uVmVyYigpOwogICAgIFN0cmluZyBBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIo
KTsKICAgICBTdHJpbmcgQVhVbmNoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKTsKKyAgICBTdHJp
bmcgQVhNZW51TGlzdEFjdGlvblZlcmIoKTsKKyAgICBTdHJpbmcgQVhNZW51TGlzdFBvcHVwQWN0
aW9uVmVyYigpOwogICAgIFN0cmluZyBBWExpbmtBY3Rpb25WZXJiKCk7CiAKICAgICBTdHJpbmcg
bXVsdGlwbGVGaWxlVXBsb2FkVGV4dCh1bnNpZ25lZCBudW1iZXJPZkZpbGVzKTsKZGlmZiAtLWdp
dCBhL1dlYktpdC9DaGFuZ2VMb2cgYi9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA3YjA5NGMuLmU1
ZDA1ZmYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTAxLTE5ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0
dEBhcHBsZS5jb20+CisKKyAgICAgICAgTVNBQTogVGhlIGNoaWxkIDxvcHRpb24+IGVsZW1lbnRz
IG9mIGEgbm9uLW11bHRpcGxlIDxzZWxlY3Q+IGFyZSBub3QKKyAgICAgICAgZXhwb3NlZAorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzc3MworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNzU1MDU1Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIEVuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5n
czoKKyAgICAgICAgQWRkIG5ldyBsb2NhbGl6ZWQgc3RyaW5ncy4KKwogMjAxMC0wMS0xMyAgS2V2
aW4gRGVja2VyICA8a2RlY2tlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFy
ayBSb3dlLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3Ry
aW5ncyBiL1dlYktpdC9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKaW5kZXggMzcw
ZDQ2ZmM5MTQ3Mjk0ZDUyMDBhMDI0OTJmMDA5Yzc0M2M5NDc1Ny4uNDJjMTM4NjhhZjhlOGYyZWNj
MDk3MDBiOWFlOWRhZDI3NjcyNWNhZCAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSA4MAp6
Y21acWNYWnx5UmQ0dVpRJHd3RSlOZiRHdUdVTmJwR0Q4VzIwK2dLI3IxS2FgQ2VQYStEdylxdjBP
bHpIV28/MDIKUmkyKjd5ZEJHeWomR0I+OXdFKXYyN1BrTloKCmRlbHRhIDE4CmFjbWV3fWZ3YEBw
ZDR1WlEkP31WPUhpeW5yKjglYGVYYX1ERgoKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQWNjZXNz
aWJsZUJhc2UuY3BwIGIvV2ViS2l0L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAKaW5kZXggZmViNmEw
OS4uOTMwYWI5ZiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAKKysr
IGIvV2ViS2l0L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAKQEAgLTI5Miw2ICsyOTIsMTkgQEAgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBBY2Nlc3NpYmxlQmFzZTo6Z2V0X2FjY1N0YXRlKFZBUklB
TlQgdkNoaWxkLCBWQVJJQU5UKgogICAgIGlmIChjaGlsZE9iai0+aXNNdWx0aVNlbGVjdGFibGUo
KSkKICAgICAgICAgcHZTdGF0ZS0+bFZhbCB8PSBTVEFURV9TWVNURU1fRVhUU0VMRUNUQUJMRSB8
IFNUQVRFX1NZU1RFTV9NVUxUSVNFTEVDVEFCTEU7CiAKKyAgICBpZiAoIWNoaWxkT2JqLT5pc1Zp
c2libGUoKSkKKyAgICAgICAgcHZTdGF0ZS0+bFZhbCB8PSBTVEFURV9TWVNURU1fSU5WSVNJQkxF
OworCisgICAgaWYgKGNoaWxkT2JqLT5pc0NvbGxhcHNlZCgpKQorICAgICAgICBwdlN0YXRlLT5s
VmFsIHw9IFNUQVRFX1NZU1RFTV9DT0xMQVBTRUQ7CisKKyAgICBpZiAoY2hpbGRPYmotPnJvbGVW
YWx1ZSgpID09IFBvcFVwQnV0dG9uUm9sZSkgeworICAgICAgICBwdlN0YXRlLT5sVmFsIHw9IFNU
QVRFX1NZU1RFTV9IQVNQT1BVUDsKKworICAgICAgICBpZiAoIWNoaWxkT2JqLT5pc0NvbGxhcHNl
ZCgpKQorICAgICAgICAgICAgcHZTdGF0ZS0+bFZhbCB8PSBTVEFURV9TWVNURU1fRVhQQU5ERUQ7
CisgICAgfQorCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKQEAgLTU3MSw2ICs1ODQsNyBAQCBzdGF0
aWMgbG9uZyBNU0FBUm9sZShBY2Nlc3NpYmlsaXR5Um9sZSByb2xlKQogICAgICAgICAgICAgcmV0
dXJuIFJPTEVfU1lTVEVNX0dST1VQSU5HOwogICAgICAgICBjYXNlIFdlYkNvcmU6Okxpc3RSb2xl
OgogICAgICAgICBjYXNlIFdlYkNvcmU6Okxpc3RCb3hSb2xlOgorICAgICAgICBjYXNlIFdlYkNv
cmU6Ok1lbnVMaXN0UG9wdXBSb2xlOgogICAgICAgICAgICAgcmV0dXJuIFJPTEVfU1lTVEVNX0xJ
U1Q7CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6VGFibGVSb2xlOgogICAgICAgICAgICAgcmV0dXJu
IFJPTEVfU1lTVEVNX1RBQkxFOwpAQCAtNTgwLDYgKzU5NCw3IEBAIHN0YXRpYyBsb25nIE1TQUFS
b2xlKEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUpCiAgICAgICAgIGNhc2UgV2ViQ29yZTo6SW1hZ2VN
YXBSb2xlOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkltYWdlUm9sZToKICAgICAgICAgICAgIHJl
dHVybiBST0xFX1NZU1RFTV9HUkFQSElDOworICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lbnVMaXN0
T3B0aW9uUm9sZToKICAgICAgICAgY2FzZSBXZWJDb3JlOjpMaXN0SXRlbVJvbGU6CiAgICAgICAg
IGNhc2UgV2ViQ29yZTo6TGlzdEJveE9wdGlvblJvbGU6CiAgICAgICAgICAgICByZXR1cm4gUk9M
RV9TWVNURU1fTElTVElURU07CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dl
YktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDdkYmYzZDIuLjNjMzFkMmMgMTAwNjQ0Ci0tLSBhL1dl
YktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjkgQEAKKzIwMTAtMDEtMTcgIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
KworICAgICAgICBNU0FBOiBUaGUgY2hpbGQgPG9wdGlvbj4gZWxlbWVudHMgb2YgYSBub24tbXVs
dGlwbGUgPHNlbGVjdD4gYXJlIG5vdAorICAgICAgICBleHBvc2VkCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzNzczCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83NTUwNTU2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogQWNjZXNzaWJsZUJhc2UuY3BwOgorICAgICAgICAoQWNjZXNzaWJsZUJhc2U6
OmdldF9hY2NTdGF0ZSk6CisgICAgICAgIElmIHRoZSBvYmplY3QgaXMgaW52aXNpYmxlLCBzZXQg
dGhlIGludmlzaWJsZSBzdGF0ZSBmbGFnLiBJZiB0aGUgb2JqZWN0CisgICAgICAgIGlzIGNvbGxh
cHNlZCwgc2V0IHRoZSBjb2xsYXBzZWQgc3RhdGUuIElmIHRoZSBvYmplY3QgaXMgYSBjb21ibyBi
b3gsCisgICAgICAgIHNldCB0aGUgaGFzIHBvcHVwIGZsYWcsIGFuZCBpZiBpdCdzIG5vdCBjb2xs
YXBzZWQsIHNldCB0aGUgZXhwYW5kZWQKKyAgICAgICAgZmxhZy4KKyAgICAgICAgKE1TQUFSb2xl
KToKKyAgICAgICAgQWRkIG5ldyBXZWJDb3JlIHRvIE1TQUEgcm9sZSBtYXBwaW5ncy4KKworICAg
ICAgICAqIFdlYkNvcmVMb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFY
TWVudUxpc3RBY3Rpb25WZXJiKToKKyAgICAgICAgUmV0dXJuIHRoZSBhY3Rpb24gdmVyYiB0aGF0
IEZpcmVmb3ggdXNlcyBmb3IgPHNlbGVjdD4gZWxlbWVudHMgd2l0aAorICAgICAgICBwb3B1cHMu
CisgICAgICAgIChXZWJDb3JlOjpBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKToKKyAgICAgICAg
UmV0dXJuIHRoZSB2ZXJiIHRoYXQgRmlyZWZveCB1c2VzIGZvciBhIHBvcHVwIGxpc3QuCisKIDIw
MTAtMDEtMTUgIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNvbT4KIAogICAgICAg
ICBNU0FBOiBTY3JlZW4gcmVjdCBmb3IgPG9wdGlvbj4gZWxlbWVudHMgaXMgYWx3YXlzIHRoZSB6
ZXJvIHJlY3QKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZUxvY2FsaXplZFN0cmluZ3Mu
Y3BwIGIvV2ViS2l0L3dpbi9XZWJDb3JlTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggMDIwZTlh
Ny4uNTg1MDYwNSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlTG9jYWxpemVkU3RyaW5n
cy5jcHAKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlTG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTky
LDYgKzkyLDggQEAgU3RyaW5nIFdlYkNvcmU6OkFYVGV4dEZpZWxkQWN0aW9uVmVyYigpIHsgcmV0
dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygiYWN0aXYKIFN0cmluZyBXZWJDb3JlOjpBWENo
ZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJ
TkcoInVuY2hlY2siLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdo
ZW4gYSBjaGVja2VkIGNoZWNrYm94IGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0
eSIpKTsgfQogU3RyaW5nIFdlYkNvcmU6OkFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkg
eyByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJjaGVjayIsICJWZXJiIHN0YXRpbmcg
dGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhbiB1bmNoZWNrZWQgY2hlY2tib3ggaXMg
Y2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5IikpOyB9CiBTdHJpbmcgV2ViQ29yZTo6
QVhMaW5rQWN0aW9uVmVyYigpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygianVt
cCIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIGxpbmsg
aXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5IikpOyB9CitTdHJpbmcgV2ViQ29y
ZTo6QVhNZW51TGlzdEFjdGlvblZlcmIoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJ
TkcoIm9wZW4iLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4g
YSBzZWxlY3QgZWxlbWVudCBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKSk7
IH0KK1N0cmluZyBXZWJDb3JlOjpBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKCkgeyByZXR1cm4g
U3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJwcmVzcyIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlv
biB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIHNlbGVjdCBlbGVtZW50J3MgcG9wdXAgbGlzdCBpcyBj
bGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKSk7IH0KIFN0cmluZyBXZWJDb3JlOjp1
bmtub3duRmlsZVNpemVUZXh0KCkgeyByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJV
bmtub3duIiwgIlVua25vd24gZmlsZXNpemUgRlRQIGRpcmVjdG9yeSBsaXN0aW5nIGl0ZW0iKSk7
IH0KIFN0cmluZyBXZWJDb3JlOjp1cGxvYWRGaWxlVGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENU
U1RSX1VJX1NUUklORygiVXBsb2FkIGZpbGUiLCAiKFdpbmRvd3MpIEZvcm0gc3VibWl0IGZpbGUg
dXBsb2FkIGRpYWxvZyB0aXRsZSIpKTsgfQogU3RyaW5nIFdlYkNvcmU6OmFsbEZpbGVzVGV4dCgp
IHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygiQWxsIEZpbGVzIiwgIihXaW5kb3dz
KSBGb3JtIHN1Ym1pdCBmaWxlIHVwbG9hZCBhbGwgZmlsZXMgcG9wLXVwIikpOyB9CmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXgg
NjFmNWM5Ni4uY2JiMWU5OCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEwLTAxLTE3ICBKb24g
SG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CisKKyAgICAgICAgTVNBQTogVGhlIGNo
aWxkIDxvcHRpb24+IGVsZW1lbnRzIG9mIGEgbm9uLW11bHRpcGxlIDxzZWxlY3Q+IGFyZSBub3QK
KyAgICAgICAgZXhwb3NlZAorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMzc3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzU1MDU1Nj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwOgorICAgICAgICAoZ2V0SXNWaXNpYmxlQ2Fs
bGJhY2spOgorICAgICAgICBDYWxsIHRoZSBvYmplY3QncyBpc1Zpc2libGUoKSBmdW5jdGlvbi4K
KyAgICAgICAgKGdldElzT2ZmU2NyZWVuQ2FsbGJhY2spOgorICAgICAgICBEaXR0bywgZm9yIGlz
T2ZmU2NyZWVuKCkuCisgICAgICAgIChnZXRJc0NvbGxhcHNlZENhbGxiYWNrKToKKyAgICAgICAg
RGl0dG8sIGZvciBpc0NvbGxhcHNlZCgpLgorICAgICAgICAoZ2V0SGFzUG9wdXBDYWxsYmFjayk6
CisgICAgICAgIERpdHRvLCBmb3IgaGFzUG9wdXAoKS4KKyAgICAgICAgKEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmdldEpTQ2xhc3MpOgorICAgICAgICBBZGQgaXNWaXNpYmxlIGFuZCBpc09mZlNj
cmVlbiBhdHRyaWJ1dGVzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5oOgorICAgICAgICBEZWNsYXJlIG5ldyBmdW5jdGlvbnMuCisKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEd0ay5jcHA6CisgICAg
ICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1Zpc2libGUpOgorICAgICAgICBTdHViYmVk
LgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNPZmZTY3JlZW4pOgorICAgICAg
ICBTdHViYmVkLgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDb2xsYXBzZWQp
OgorICAgICAgICBTdHViYmVkLgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGFz
UG9wdXApOgorICAgICAgICBTdHViYmVkLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFj
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc1Zpc2libGUpOgorICAgICAgICBTdHViYmVkLgorICAgICAgICAoQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aXNPZmZTY3JlZW4pOgorICAgICAgICBTdHViYmVkLgorICAgICAgICAo
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDb2xsYXBzZWQpOgorICAgICAgICBTdHViYmVkLgor
ICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGFzUG9wdXApOgorICAgICAgICBTdHVi
YmVkLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRXaW4uY3BwOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2hvd01lbnUpOgor
ICAgICAgICBDYWxsIHRoZSBvYmplY3QncyBhY2NEb0RlZmF1bHRBY3Rpb24oKSB0byBzaG93IGl0
cyBwb3B1cCBtZW51LgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFbmFibGVk
KToKKyAgICAgICAgQ2hlY2sgdGhhdCB0aGUgb2JqZWN0IGRvZXMgbm90IGhhdmUgdGhlICJ1bmF2
YWlsYWJsZSIgc3RhdGUuCisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1Zpc2li
bGUpOgorICAgICAgICBDaGVjayB0aGF0IHRoZSBvYmplY3QgZG9lcyBub3QgaGF2ZSB0aGUgImlu
dmlzaWJsZSIgc3RhdGUuCisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc09mZlNj
cmVlbik6CisgICAgICAgIENoZWNrIHdoZXRoZXIgdGhlIG9iamVjdCBoYXMgdGhlICJvZmZzY3Jl
ZW4iIHN0YXRlLgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDb2xsYXBzZWQp
OgorICAgICAgICBDaGVjayB3aGV0aGVyIHRoZSBvYmplY3QgaGFzIHRoZSAiY29sbGFwc2VkIiBz
dGF0ZS4KKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhhc1BvcHVwKToKKyAgICAg
ICAgQ2hlY2sgd2hldGhlciB0aGUgb2JqZWN0IGhhcyB0aGUgImhhcyBwb3B1cCIgc3RhdGUuCisK
IDIwMTAtMDEtMTUgIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNvbT4KIAogICAg
ICAgICBnZXRfYWNjUGFyZW50IHNob3VsZCB0cnkgdG8gcmV0cmlldmUgcGFyZW50IEFjY2Vzc2li
aWxpdHlPYmplY3QsIGJlZm9yZQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAppbmRleCBjY2MxMWE3Li45NThkMjA2IDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50LmNwcApAQCAtNTEyLDYgKzUxMiwyNiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBnZXRJc0NoZWNr
ZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgdGhpc09iagogICAg
IHJldHVybiBKU1ZhbHVlTWFrZUJvb2xlYW4oY29udGV4dCwgdG9BWEVsZW1lbnQodGhpc09iamVj
dCktPmlzQ2hlY2tlZCgpKTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgZ2V0SXNWaXNpYmxlQ2Fs
bGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3Ry
aW5nUmVmLCBKU1ZhbHVlUmVmKikKK3sKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VCb29sZWFuKGNv
bnRleHQsIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5pc1Zpc2libGUoKSk7Cit9CisKK3N0YXRp
YyBKU1ZhbHVlUmVmIGdldElzT2ZmU2NyZWVuQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmKikKK3sKKyAg
ICByZXR1cm4gSlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQsIHRvQVhFbGVtZW50KHRoaXNPYmpl
Y3QpLT5pc09mZlNjcmVlbigpKTsKK30KKworc3RhdGljIEpTVmFsdWVSZWYgZ2V0SXNDb2xsYXBz
ZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwg
SlNTdHJpbmdSZWYsIEpTVmFsdWVSZWYqKQoreworICAgIHJldHVybiBKU1ZhbHVlTWFrZUJvb2xl
YW4oY29udGV4dCwgdG9BWEVsZW1lbnQodGhpc09iamVjdCktPmlzQ29sbGFwc2VkKCkpOworfQor
CitzdGF0aWMgSlNWYWx1ZVJlZiBnZXRIYXNQb3B1cENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiopCit7
CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCB0b0FYRWxlbWVudCh0aGlz
T2JqZWN0KS0+aGFzUG9wdXAoKSk7Cit9CisKIHN0YXRpYyBKU1ZhbHVlUmVmIGhpZXJhcmNoaWNh
bExldmVsQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmKikKIHsKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VO
dW1iZXIoY29udGV4dCwgdG9BWEVsZW1lbnQodGhpc09iamVjdCktPmhpZXJhcmNoaWNhbExldmVs
KCkpOwpAQCAtNjAxLDYgKzYyMSwxMCBAQCBKU0NsYXNzUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmdldEpTQ2xhc3MoKQogICAgICAgICB7ICJpc011bHRpU2VsZWN0YWJsZSIsIGdldElzTXVs
dGlTZWxlY3RhYmxlQ2FsbGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiaXNFeHBhbmRlZCIs
IGdldElzRXhwYW5kZWRDYWxsYmFjaywgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJpc0NoZWNrZWQi
LCBnZXRJc0NoZWNrZWRDYWxsYmFjaywgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJpc1Zpc2libGUi
LCBnZXRJc1Zpc2libGVDYWxsYmFjaywgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJpc09mZlNjcmVl
biIsIGdldElzT2ZmU2NyZWVuQ2FsbGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAiaXNDb2xs
YXBzZWQiLCBnZXRJc0NvbGxhcHNlZENhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgImhh
c1BvcHVwIiwgZ2V0SGFzUG9wdXBDYWxsYmFjaywgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJ2YWx1
ZURlc2NyaXB0aW9uIiwgZ2V0VmFsdWVEZXNjcmlwdGlvbkNhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgICAgIHsgImhpZXJhcmNoaWNhbExldmVsIiwgaGllcmFyY2hpY2FsTGV2ZWxDYWxsYmFjaywg
MCwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJkb2N1bWVudEVuY29kaW5nIiwgZ2V0RG9jdW1lbnRFbmNv
ZGluZ0NhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKaW5kZXggZTJhYmIyMy4uZjVjYzI1NSAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuaApAQCAtMTE3LDYgKzExNywxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc011bHRpU2VsZWN0
YWJsZSgpIGNvbnN0OwogICAgIGJvb2wgaXNFeHBhbmRlZCgpIGNvbnN0OwogICAgIGJvb2wgaXND
aGVja2VkKCkgY29uc3Q7CisgICAgYm9vbCBpc1Zpc2libGUoKSBjb25zdDsKKyAgICBib29sIGlz
T2ZmU2NyZWVuKCkgY29uc3Q7CisgICAgYm9vbCBpc0NvbGxhcHNlZCgpIGNvbnN0OworICAgIGJv
b2wgaGFzUG9wdXAoKSBjb25zdDsKICAgICBpbnQgaGllcmFyY2hpY2FsTGV2ZWwoKSBjb25zdDsK
ICAgICBkb3VibGUgY2xpY2tQb2ludFgoKTsKICAgICBkb3VibGUgY2xpY2tQb2ludFkoKTsKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50R3RrLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50R3RrLmNwcAppbmRleCBjNzliMzYyLi40MzA3YzZkIDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEd0ay5j
cHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRHdGsuY3BwCkBAIC01NjksMyArNTY5LDI3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aXNNdWx0aVNlbGVjdGFibGUoKSBjb25zdAogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQK
ICAgICByZXR1cm4gZmFsc2U7CiB9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNW
aXNpYmxlKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIGZh
bHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzT2ZmU2NyZWVuKCkgY29u
c3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ29sbGFwc2VkKCkgY29uc3QKK3sKKyAgICAv
LyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6Omhhc1BvcHVwKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVt
ZW50CisgICAgcmV0dXJuIGZhbHNlOworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gYi9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQppbmRleCAyMWU0
NTBlLi45ZWI1OTQ1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAtNzkxLDMgKzc5MSwyNyBA
QCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzTXVsdGlTZWxlY3RhYmxlKCkgY29uc3QK
ICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiAgICAgcmV0dXJuIGZhbHNlOwogfQorCitib29sIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVmlzaWJsZSgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6
IGltcGxlbWVudAorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc09mZlNjcmVlbigpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAor
ICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0Nv
bGxhcHNlZCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoYXNQb3B1cCgpIGNvbnN0
Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiBmYWxzZTsKK30KZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50V2luLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50V2luLmNwcAppbmRleCBjODE3M2Q3Li5hMmNmMjFjIDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5jcHAK
KysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRXaW4uY3BwCkBAIC0zNDksNyArMzQ5LDggQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojppc0FjdGlvblN1cHBvcnRlZChKU1N0cmluZ1JlZiBhY3Rpb24pCiAKIGJvb2wgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aXNFbmFibGVkKCkKIHsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgRFdP
UkQgc3RhdGUgPSBhY2Nlc3NpYmlsaXR5U3RhdGUobV9lbGVtZW50KTsKKyAgICByZXR1cm4gKHN0
YXRlICYgU1RBVEVfU1lTVEVNX1VOQVZBSUxBQkxFKSAhPSBTVEFURV9TWVNURU1fVU5BVkFJTEFC
TEU7CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNSZXF1aXJlZCgpIGNvbnN0
CkBAIC00NjksNiArNDcwLDggQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZWNyZW1l
bnQoKQogCiB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNob3dNZW51KCkKIHsKKyAgICBB
U1NFUlQoaGFzUG9wdXAoKSk7CisgICAgbV9lbGVtZW50LT5hY2NEb0RlZmF1bHRBY3Rpb24oc2Vs
ZigpKTsKIH0KIAogQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpkaXNjbG9zZWRSb3dBdEluZGV4KHVuc2lnbmVkIGluZGV4KQpAQCAtNTQ0LDQgKzU0NywyNiBA
QCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzTXVsdGlTZWxlY3RhYmxlKCkgY29uc3QK
ICAgICByZXR1cm4gKHN0YXRlICYgbXVsdGlTZWxlY3RhYmxlKSA9PSBtdWx0aVNlbGVjdGFibGU7
CiB9CiAKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNWaXNpYmxlKCkgY29uc3QKK3sK
KyAgICBEV09SRCBzdGF0ZSA9IGFjY2Vzc2liaWxpdHlTdGF0ZShtX2VsZW1lbnQpOworICAgIHJl
dHVybiAoc3RhdGUgJiBTVEFURV9TWVNURU1fSU5WSVNJQkxFKSAhPSBTVEFURV9TWVNURU1fSU5W
SVNJQkxFOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzT2ZmU2NyZWVuKCkg
Y29uc3QKK3sKKyAgICBEV09SRCBzdGF0ZSA9IGFjY2Vzc2liaWxpdHlTdGF0ZShtX2VsZW1lbnQp
OworICAgIHJldHVybiAoc3RhdGUgJiBTVEFURV9TWVNURU1fT0ZGU0NSRUVOKSA9PSBTVEFURV9T
WVNURU1fT0ZGU0NSRUVOOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ29s
bGFwc2VkKCkgY29uc3QKK3sKKyAgICBEV09SRCBzdGF0ZSA9IGFjY2Vzc2liaWxpdHlTdGF0ZSht
X2VsZW1lbnQpOworICAgIHJldHVybiAoc3RhdGUgJiBTVEFURV9TWVNURU1fQ09MTEFQU0VEKSA9
PSBTVEFURV9TWVNURU1fQ09MTEFQU0VEOworfQogCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6Omhhc1BvcHVwKCkgY29uc3QKK3sKKyAgICBEV09SRCBzdGF0ZSA9IGFjY2Vzc2liaWxpdHlT
dGF0ZShtX2VsZW1lbnQpOworICAgIHJldHVybiAoc3RhdGUgJiBTVEFURV9TWVNURU1fSEFTUE9Q
VVApID09IFNUQVRFX1NZU1RFTV9IQVNQT1BVUDsKK30KLS0gCjEuNi41LjIuMTQzLmc4Y2M2MgoK
</data>
<flag name="review"
          id="29290"
          type_id="1"
          status="+"
          setter="alice.barraclough"
    />
    <flag name="commit-queue"
          id="29291"
          type_id="3"
          status="-"
          setter="jhoneycutt"
    />
          </attachment>
      

    </bug>

</bugzilla>