<?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>141893</bug_id>
          
          <creation_ts>2015-02-23 00:03:18 -0800</creation_ts>
          <short_desc>AX: iOS: scrollable elements do not allow 3-finger swipe (with VoiceOver)</short_desc>
          <delta_ts>2015-07-24 16:28:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 8.1</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="Michael Johnston">mj</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mario</cc>
    
    <cc>samuel_white</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1071149</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Johnston">mj</who>
    <bug_when>2015-02-23 00:03:18 -0800</bug_when>
    <thetext>Elements which have overflow: scroll; + -webkit-overflow-scrolling: touch; do not work with the 3-finger swipe gesture when VoiceOver is enabled. This worked in iOS 7.

Expected result: VoiceOver should announce &quot;Page N of M&quot; where N is the current page and M is the total number of pages determined by scroll height
Actual result: VoiceOver announces &quot;Page 1 of 1&quot; regardless of the scroll height</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071150</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-02-23 00:03:47 -0800</bug_when>
    <thetext>&lt;rdar://problem/19918933&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110816</commentid>
    <comment_count>2</comment_count>
      <attachid>257143</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-07-20 16:36:39 -0700</bug_when>
    <thetext>Created attachment 257143
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110958</commentid>
    <comment_count>3</comment_count>
      <attachid>257185</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-07-21 10:23:31 -0700</bug_when>
    <thetext>Created attachment 257185
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111062</commentid>
    <comment_count>4</comment_count>
      <attachid>257204</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-07-21 14:39:52 -0700</bug_when>
    <thetext>Created attachment 257204
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111955</commentid>
    <comment_count>5</comment_count>
      <attachid>257204</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2015-07-24 02:37:36 -0700</bug_when>
    <thetext>Comment on attachment 257204
patch

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

Overall looks good to me (and I like the idea of moving that into AccessibilityObject, too).

Setting r+ with just a few small comments below...

&gt; Source/WebCore/ChangeLog:15
&gt; +        (WebCore::AccessibilityObject::scrollToGlobalPoint):

It does not look like you modified this

&gt; Source/WebCore/ChangeLog:21
&gt; +        (WebCore::AccessibilityObject::lastKnownIsIgnoredValue):

Same for this one (not modified)

&gt; Source/WebCore/ChangeLog:24
&gt; +        (WebCore::AccessibilityObject::getScrollableAreaIfScrollable):
&gt; +        (WebCore::AccessibilityObject::scrollTo):

Ditto for these two.

&gt; Source/WebCore/accessibility/AccessibilityObject.cpp:2538
&gt; +    for (; scrollers.second &amp;&amp; !(scrollers.first = scrollers.second-&gt;getScrollableAreaIfScrollable()); scrollers.second = scrollers.second-&gt;parentObject()) { }

I find this line a bit hard to read. What about this:

// Search up the parent chain until we find the first one that&apos;s scrollable.
scrollers.first = nullptr;
scrollers.second = parentObject();
while (!scrollers.first &amp;&amp; scrollers.second) {
  scrollers.first = scrollers.second-&gt;getScrollableAreaIfScrollable());
  scrollers.second = scrollers.second-&gt;parentObject());
}

Or even:

// Search up the parent chain until we find the first one that&apos;s scrollable.
scrollers.first = nullptr;
for (scrollers.second = parentObject(); !scrollers.first &amp;&amp; scrollers.second; scrollers.second = scrollers.second-&gt;parentObject())
  scrollers.first = scrollers.second-&gt;getScrollableAreaIfScrollable());

&gt; Source/WebCore/accessibility/AccessibilityObject.cpp:2565
&gt; +    std::pair&lt;ScrollableArea*, AccessibilityObject*&gt; scrollers;
&gt; +    scrollAreaAndAncestor(scrollers);
&gt; +    if (!scrollers.first)

It looks like you could put these three lines in a separate function returning a ScrollableArea*, and use it from this and the previous two functions (but not from scrollByPage, as you also need the .second element there)

&gt; Tools/DumpRenderTree/mac/AccessibilityNotificationHandler.mm:183
&gt; -        JSObjectCallAsFunction([mainFrame globalContext], m_notificationFunctionCallback, 0, 2, arguments, 0);
&gt; +        JSObjectCallAsFunction([mainFrame globalContext], m_notificationFunctionCallback, 0, 3, arguments, 0);

Nice catch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112131</commentid>
    <comment_count>6</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-07-24 16:28:21 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/187371</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257143</attachid>
            <date>2015-07-20 16:36:39 -0700</date>
            <delta_ts>2015-07-21 10:23:31 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>47040</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NzA0NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDE1LTA3LTIwICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHNjcm9sbGFibGUg
ZWxlbWVudHMgZG8gbm90IGFsbG93IDMtZmluZ2VyIHN3aXBlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE4OTMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUbyBhbGxvdyBpT1MgQWNjZXNzaWJpbGl0eSB0
byBwZXJmb3JtIGJ5LXBhZ2Ugc2Nyb2xsaW5nIGluIG92ZXJmbG93IGFyZWFzLCB3ZSBtb3ZlCisg
ICAgICAgIHRoYXQgc2Nyb2xsaW5nIGNvZGUgaW50byBBY2Nlc3NpYmlsaXR5T2JqZWN0IGFuZCB0
aGVuIGl0ZXJhdGUgYWxsIHRoZSBwb3NzaWJsZSBTY3JvbGxhYmxlQXJlYXMsCisgICAgICAgIHJh
dGhlciB0aGFuIGp1c3QgZmluZGluZyB0aGUgcGFyZW50cyB0aGF0IGFyZSBTY3JvbGxWaWV3cy4g
CisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9hY2Nlc3NpYmlsaXR5L3Nj
cm9sbC1pbi1vdmVyZmxvdy1kaXYuaHRtbAorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OnNjcm9sbFRvR2xvYmFsUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdDo6c2Nyb2xsQXJlYUFuZEFuY2VzdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnNjcm9sbFZpc2libGVDb250ZW50UmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzY3JvbGxDb250ZW50c1NpemUpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c2Nyb2xsQnlQYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6Omxhc3RLbm93bklzSWdub3JlZFZhbHVlKToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmdldFNjcm9sbGFibGVBcmVhSWZTY3JvbGxhYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcm9sbFRvKToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklP
Uy5tbToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJp
bGl0eVNjcm9sbDpdKToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIg
Y29udmVydFBvaW50VG9TY3JlZW5TcGFjZTpdKToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXIgX2FjY2Vzc2liaWxpdHlTY3JvbGxQb3NpdGlvbl0pOgorICAgICAgICAo
LVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBfYWNjZXNzaWJpbGl0eVNjcm9sbFNpemVd
KToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgX2FjY2Vzc2liaWxp
dHlTY3JvbGxWaXNpYmxlUmVjdF0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlciBhY2Nlc3NpYmlsaXR5RWxlbWVudERpZEJlY29tZUZvY3VzZWRdKToKKwogMjAxNS0w
Ny0yMCAgSmVyZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CiAKICAgICAgICAgQWRvcHQg
QVZQbGF5ZXJMYXllclZpZXcKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAkocmV2aXNpb24gMTg2ODY3KQorKysgU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjUyOSw3ICsyNTI5LDEwMCBAQAogICAgICAgICB9CiAgICAgfQogfQorICAg
IAordm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzY3JvbGxBcmVhQW5kQW5jZXN0b3Ioc3RkOjpw
YWlyPFNjcm9sbGFibGVBcmVhKiwgQWNjZXNzaWJpbGl0eU9iamVjdCo+JiBzY3JvbGxlcnMpIGNv
bnN0Cit7CisgICAgLy8gU2VhcmNoIHVwIHRoZSBwYXJlbnQgY2hhaW4gdW50aWwgd2UgZmluZCB0
aGUgZmlyc3Qgb25lIHRoYXQncyBzY3JvbGxhYmxlLgorICAgIHNjcm9sbGVycy5zZWNvbmQgPSBw
YXJlbnRPYmplY3QoKTsKKyAgICBzY3JvbGxlcnMuZmlyc3QgPSBudWxscHRyOworICAgIGZvciAo
OyBzY3JvbGxlcnMuc2Vjb25kICYmICEoc2Nyb2xsZXJzLmZpcnN0ID0gc2Nyb2xsZXJzLnNlY29u
ZC0+Z2V0U2Nyb2xsYWJsZUFyZWFJZlNjcm9sbGFibGUoKSk7IHNjcm9sbGVycy5zZWNvbmQgPSBz
Y3JvbGxlcnMuc2Vjb25kLT5wYXJlbnRPYmplY3QoKSkgeyB9Cit9CisgICAgCitJbnRQb2ludCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpzY3JvbGxQb3NpdGlvbigpIGNvbnN0Cit7CisgICAgc3RkOjpw
YWlyPFNjcm9sbGFibGVBcmVhKiwgQWNjZXNzaWJpbGl0eU9iamVjdCo+IHNjcm9sbGVyczsKKyAg
ICBzY3JvbGxBcmVhQW5kQW5jZXN0b3Ioc2Nyb2xsZXJzKTsKKyAgICBpZiAoIXNjcm9sbGVycy5m
aXJzdCkKKyAgICAgICAgcmV0dXJuIEludFBvaW50KCk7CisgICAgCisgICAgcmV0dXJuIHNjcm9s
bGVycy5maXJzdC0+c2Nyb2xsUG9zaXRpb24oKTsKK30KIAorSW50UmVjdCBBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpzY3JvbGxWaXNpYmxlQ29udGVudFJlY3QoKSBjb25zdAoreworICAgIHN0ZDo6cGFp
cjxTY3JvbGxhYmxlQXJlYSosIEFjY2Vzc2liaWxpdHlPYmplY3QqPiBzY3JvbGxlcnM7CisgICAg
c2Nyb2xsQXJlYUFuZEFuY2VzdG9yKHNjcm9sbGVycyk7CisgICAgaWYgKCFzY3JvbGxlcnMuZmly
c3QpCisgICAgICAgIHJldHVybiBJbnRSZWN0KCk7CisgICAgCisgICAgcmV0dXJuIHNjcm9sbGVy
cy5maXJzdC0+dmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpMZWdhY3lJT1NEb2N1
bWVudFZpc2libGVSZWN0KTsKK30KKyAgICAKK0ludFNpemUgQWNjZXNzaWJpbGl0eU9iamVjdDo6
c2Nyb2xsQ29udGVudHNTaXplKCkgY29uc3QKK3sKKyAgICBzdGQ6OnBhaXI8U2Nyb2xsYWJsZUFy
ZWEqLCBBY2Nlc3NpYmlsaXR5T2JqZWN0Kj4gc2Nyb2xsZXJzOworICAgIHNjcm9sbEFyZWFBbmRB
bmNlc3RvcihzY3JvbGxlcnMpOworICAgIGlmICghc2Nyb2xsZXJzLmZpcnN0KQorICAgICAgICBy
ZXR1cm4gSW50U2l6ZSgpOworCisgICAgcmV0dXJuIHNjcm9sbGVycy5maXJzdC0+Y29udGVudHNT
aXplKCk7Cit9CisgICAgCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcm9sbEJ5UGFnZShT
Y3JvbGxCeVBhZ2VEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAoreworICAgIHN0ZDo6cGFpcjxT
Y3JvbGxhYmxlQXJlYSosIEFjY2Vzc2liaWxpdHlPYmplY3QqPiBzY3JvbGxlcnM7CisgICAgc2Ny
b2xsQXJlYUFuZEFuY2VzdG9yKHNjcm9sbGVycyk7CisgICAgU2Nyb2xsYWJsZUFyZWEqIHNjcm9s
bGFibGVBcmVhID0gc2Nyb2xsZXJzLmZpcnN0OworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHNj
cm9sbFBhcmVudCA9IHNjcm9sbGVycy5zZWNvbmQ7CisgICAgCisgICAgaWYgKCFzY3JvbGxhYmxl
QXJlYSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIEludFBvaW50IHNjcm9sbFBv
c2l0aW9uID0gc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbFBvc2l0aW9uKCk7CisgICAgSW50UG9pbnQg
bmV3U2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsKKyAgICBJbnRTaXplIHNjcm9sbFNp
emUgPSBzY3JvbGxhYmxlQXJlYS0+Y29udGVudHNTaXplKCk7CisgICAgSW50UmVjdCBzY3JvbGxW
aXNpYmxlUmVjdCA9IHNjcm9sbGFibGVBcmVhLT52aXNpYmxlQ29udGVudFJlY3QoU2Nyb2xsYWJs
ZUFyZWE6OkxlZ2FjeUlPU0RvY3VtZW50VmlzaWJsZVJlY3QpOworICAgIHN3aXRjaCAoZGlyZWN0
aW9uKSB7CisgICAgY2FzZSBSaWdodDogeworICAgICAgICBpbnQgc2Nyb2xsQW1vdW50ID0gc2Ny
b2xsVmlzaWJsZVJlY3Quc2l6ZSgpLndpZHRoKCk7CisgICAgICAgIGludCBuZXdYID0gc2Nyb2xs
UG9zaXRpb24ueCgpIC0gc2Nyb2xsQW1vdW50OworICAgICAgICBuZXdTY3JvbGxQb3NpdGlvbi5z
ZXRYKHN0ZDo6bWF4KG5ld1gsIDApKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2Ug
TGVmdDogeworICAgICAgICBpbnQgc2Nyb2xsQW1vdW50ID0gc2Nyb2xsVmlzaWJsZVJlY3Quc2l6
ZSgpLndpZHRoKCk7CisgICAgICAgIGludCBuZXdYID0gc2Nyb2xsQW1vdW50ICsgc2Nyb2xsUG9z
aXRpb24ueCgpOworICAgICAgICBpbnQgbWF4WCA9IHNjcm9sbFNpemUud2lkdGgoKSAtIHNjcm9s
bEFtb3VudDsKKyAgICAgICAgbmV3U2Nyb2xsUG9zaXRpb24uc2V0WChzdGQ6Om1pbihuZXdYLCBt
YXhYKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFVwOiB7CisgICAgICAgIGlu
dCBzY3JvbGxBbW91bnQgPSBzY3JvbGxWaXNpYmxlUmVjdC5zaXplKCkuaGVpZ2h0KCk7CisgICAg
ICAgIGludCBuZXdZID0gc2Nyb2xsUG9zaXRpb24ueSgpIC0gc2Nyb2xsQW1vdW50OworICAgICAg
ICBuZXdTY3JvbGxQb3NpdGlvbi5zZXRZKHN0ZDo6bWF4KG5ld1ksIDApKTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIGNhc2UgRG93bjogeworICAgICAgICBpbnQgc2Nyb2xsQW1vdW50ID0g
c2Nyb2xsVmlzaWJsZVJlY3Quc2l6ZSgpLmhlaWdodCgpOworICAgICAgICBpbnQgbmV3WSA9IHNj
cm9sbEFtb3VudCArIHNjcm9sbFBvc2l0aW9uLnkoKTsKKyAgICAgICAgaW50IG1heFkgPSBzY3Jv
bGxTaXplLmhlaWdodCgpIC0gc2Nyb2xsQW1vdW50OworICAgICAgICBuZXdTY3JvbGxQb3NpdGlv
bi5zZXRZKHN0ZDo6bWluKG5ld1ksIG1heFkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg
IGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICAKKyAgICBpZiAobmV3U2Nyb2xs
UG9zaXRpb24gIT0gc2Nyb2xsUG9zaXRpb24pIHsKKyAgICAgICAgc2Nyb2xsUGFyZW50LT5zY3Jv
bGxUbyhuZXdTY3JvbGxQb3NpdGlvbik7CisgICAgICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgCisgICAgcmV0dXJuIGZhbHNlOworfQorCisKIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVj
dDo6bGFzdEtub3duSXNJZ25vcmVkVmFsdWUoKQogewogICAgIGlmIChtX2xhc3RLbm93bklzSWdu
b3JlZFZhbHVlID09IERlZmF1bHRCZWhhdmlvcikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCShyZXZpc2lvbiAxODY4Njcp
CisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAko
d29ya2luZyBjb3B5KQpAQCAtODk1LDcgKzg5NSwxMyBAQAogICAgIHZpcnR1YWwgdm9pZCBzY3Jv
bGxUb01ha2VWaXNpYmxlV2l0aFN1YkZvY3VzKGNvbnN0IEludFJlY3QmKSBjb25zdDsKICAgICAv
LyBTY3JvbGwgdGhpcyBvYmplY3QgdG8gYSBnaXZlbiBwb2ludCBpbiBnbG9iYWwgY29vcmRpbmF0
ZXMgb2YgdGhlIHRvcC1sZXZlbCB3aW5kb3cuCiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbFRvR2xv
YmFsUG9pbnQoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKLQorICAgIAorICAgIGVudW0gU2Nyb2xs
QnlQYWdlRGlyZWN0aW9uIHsgVXAsIERvd24sIExlZnQsIFJpZ2h0IH07CisgICAgYm9vbCBzY3Jv
bGxCeVBhZ2UoU2Nyb2xsQnlQYWdlRGlyZWN0aW9uKSBjb25zdDsKKyAgICBJbnRQb2ludCBzY3Jv
bGxQb3NpdGlvbigpIGNvbnN0OworICAgIEludFNpemUgc2Nyb2xsQ29udGVudHNTaXplKCkgY29u
c3Q7ICAgIAorICAgIEludFJlY3Qgc2Nyb2xsVmlzaWJsZUNvbnRlbnRSZWN0KCkgY29uc3Q7Cisg
ICAgCiAgICAgYm9vbCBsYXN0S25vd25Jc0lnbm9yZWRWYWx1ZSgpOwogICAgIHZvaWQgc2V0TGFz
dEtub3duSXNJZ25vcmVkVmFsdWUoYm9vbCk7CiAKQEAgLTEwMTYsNyArMTAyMiw4IEBACiAgICAg
Ly8gSWYgdGhpcyBvYmplY3QgaXRzZWxmIHNjcm9sbHMsIHJldHVybiBpdHMgU2Nyb2xsYWJsZUFy
ZWEuCiAgICAgdmlydHVhbCBTY3JvbGxhYmxlQXJlYSogZ2V0U2Nyb2xsYWJsZUFyZWFJZlNjcm9s
bGFibGUoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCB2b2lkIHNjcm9s
bFRvKGNvbnN0IEludFBvaW50JikgY29uc3QgeyB9Ci0KKyAgICB2b2lkIHNjcm9sbEFyZWFBbmRB
bmNlc3RvcihzdGQ6OnBhaXI8U2Nyb2xsYWJsZUFyZWEqLCBBY2Nlc3NpYmlsaXR5T2JqZWN0Kj4m
KSBjb25zdDsKKyAgICAKICAgICBzdGF0aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlPYmplY3RTZWFy
Y2hNYXRjaEF0SW5kZXgoQWNjZXNzaWJpbGl0eU9iamVjdCosIEFjY2Vzc2liaWxpdHlTZWFyY2hD
cml0ZXJpYSosIHNpemVfdCk7CiAgICAgc3RhdGljIGJvb2wgaXNBY2Nlc3NpYmlsaXR5T2JqZWN0
U2VhcmNoTWF0Y2goQWNjZXNzaWJpbGl0eU9iamVjdCosIEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0
ZXJpYSopOwogICAgIHN0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eVRleHRTZWFyY2hNYXRjaChB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhKik7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlcklPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQkocmV2aXNpb24gMTg2ODY3
KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTExNDksNTQgKzExNDksMzUgQEAK
ICAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQogICAgICAgICByZXR1
cm4gTk87CiAgICAgCi0gICAgU2Nyb2xsVmlldyogc2Nyb2xsVmlldyA9IG1fb2JqZWN0LT5zY3Jv
bGxWaWV3QW5jZXN0b3IoKTsKLSAgICBpZiAoIXNjcm9sbFZpZXcpCi0gICAgICAgIHJldHVybiBO
TzsKLSAgICAKLSAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFZpZXctPnNjcm9s
bFBvc2l0aW9uKCk7Ci0gICAgSW50UG9pbnQgbmV3U2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3Np
dGlvbjsKLSAgICBJbnRTaXplIHNjcm9sbFNpemUgPSBzY3JvbGxWaWV3LT5jb250ZW50c1NpemUo
KTsKLSAgICBJbnRSZWN0IHNjcm9sbFZpc2libGVSZWN0ID0gc2Nyb2xsVmlldy0+dmlzaWJsZUNv
bnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpMZWdhY3lJT1NEb2N1bWVudFZpc2libGVSZWN0KTsK
KyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpTY3JvbGxCeVBhZ2VEaXJlY3Rpb24gc2Nyb2xsRGly
ZWN0aW9uOwogICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7Ci0gICAgY2FzZSBVSUFjY2Vzc2liaWxp
dHlTY3JvbGxEaXJlY3Rpb25SaWdodDogewotICAgICAgICBpbnQgc2Nyb2xsQW1vdW50ID0gc2Ny
b2xsVmlzaWJsZVJlY3Quc2l6ZSgpLndpZHRoKCk7Ci0gICAgICAgIGludCBuZXdYID0gc2Nyb2xs
UG9zaXRpb24ueCgpIC0gc2Nyb2xsQW1vdW50OwotICAgICAgICBuZXdTY3JvbGxQb3NpdGlvbi5z
ZXRYKHN0ZDo6bWF4KG5ld1gsIDApKTsKKyAgICBjYXNlIFVJQWNjZXNzaWJpbGl0eVNjcm9sbERp
cmVjdGlvblJpZ2h0OgorICAgICAgICBzY3JvbGxEaXJlY3Rpb24gPSBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpTY3JvbGxCeVBhZ2VEaXJlY3Rpb246OlJpZ2h0OwogICAgICAgICBicmVhazsKLSAgICB9
Ci0gICAgY2FzZSBVSUFjY2Vzc2liaWxpdHlTY3JvbGxEaXJlY3Rpb25MZWZ0OiB7Ci0gICAgICAg
IGludCBzY3JvbGxBbW91bnQgPSBzY3JvbGxWaXNpYmxlUmVjdC5zaXplKCkud2lkdGgoKTsKLSAg
ICAgICAgaW50IG5ld1ggPSBzY3JvbGxBbW91bnQgKyBzY3JvbGxQb3NpdGlvbi54KCk7Ci0gICAg
ICAgIGludCBtYXhYID0gc2Nyb2xsU2l6ZS53aWR0aCgpIC0gc2Nyb2xsQW1vdW50OwotICAgICAg
ICBuZXdTY3JvbGxQb3NpdGlvbi5zZXRYKHN0ZDo6bWluKG5ld1gsIG1heFgpKTsKKyAgICBjYXNl
IFVJQWNjZXNzaWJpbGl0eVNjcm9sbERpcmVjdGlvbkxlZnQ6CisgICAgICAgIHNjcm9sbERpcmVj
dGlvbiA9IEFjY2Vzc2liaWxpdHlPYmplY3Q6OlNjcm9sbEJ5UGFnZURpcmVjdGlvbjo6TGVmdDsK
ICAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgVUlBY2Nlc3NpYmlsaXR5U2Nyb2xsRGly
ZWN0aW9uVXA6IHsKLSAgICAgICAgaW50IHNjcm9sbEFtb3VudCA9IHNjcm9sbFZpc2libGVSZWN0
LnNpemUoKS5oZWlnaHQoKTsKLSAgICAgICAgaW50IG5ld1kgPSBzY3JvbGxQb3NpdGlvbi55KCkg
LSBzY3JvbGxBbW91bnQ7Ci0gICAgICAgIG5ld1Njcm9sbFBvc2l0aW9uLnNldFkoc3RkOjptYXgo
bmV3WSwgMCkpOworICAgIGNhc2UgVUlBY2Nlc3NpYmlsaXR5U2Nyb2xsRGlyZWN0aW9uVXA6Cisg
ICAgICAgIHNjcm9sbERpcmVjdGlvbiA9IEFjY2Vzc2liaWxpdHlPYmplY3Q6OlNjcm9sbEJ5UGFn
ZURpcmVjdGlvbjo6VXA7CiAgICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIFVJQWNjZXNz
aWJpbGl0eVNjcm9sbERpcmVjdGlvbkRvd246IHsKLSAgICAgICAgaW50IHNjcm9sbEFtb3VudCA9
IHNjcm9sbFZpc2libGVSZWN0LnNpemUoKS5oZWlnaHQoKTsKLSAgICAgICAgaW50IG5ld1kgPSBz
Y3JvbGxBbW91bnQgKyBzY3JvbGxQb3NpdGlvbi55KCk7Ci0gICAgICAgIGludCBtYXhZID0gc2Ny
b2xsU2l6ZS5oZWlnaHQoKSAtIHNjcm9sbEFtb3VudDsKLSAgICAgICAgbmV3U2Nyb2xsUG9zaXRp
b24uc2V0WShzdGQ6Om1pbihuZXdZLCBtYXhZKSk7CisgICAgY2FzZSBVSUFjY2Vzc2liaWxpdHlT
Y3JvbGxEaXJlY3Rpb25Eb3duOgorICAgICAgICBzY3JvbGxEaXJlY3Rpb24gPSBBY2Nlc3NpYmls
aXR5T2JqZWN0OjpTY3JvbGxCeVBhZ2VEaXJlY3Rpb246OkRvd247CiAgICAgICAgIGJyZWFrOwot
ICAgIH0KICAgICBkZWZhdWx0OgotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIE5POwog
ICAgIH0KKworICAgIEJPT0wgcmVzdWx0ID0gbV9vYmplY3QtPnNjcm9sbEJ5UGFnZShzY3JvbGxE
aXJlY3Rpb24pOwogICAgIAotICAgIGlmIChuZXdTY3JvbGxQb3NpdGlvbiAhPSBzY3JvbGxQb3Np
dGlvbikgewotICAgICAgICBzY3JvbGxWaWV3LT5zZXRTY3JvbGxQb3NpdGlvbihuZXdTY3JvbGxQ
b3NpdGlvbik7Ci0gICAgICAgIG1fb2JqZWN0LT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBpZiAocmVzdWx0KSB7CisgICAgICAgIFtzZWxm
IHBvc3RTY3JvbGxTdGF0dXNDaGFuZ2VOb3RpZmljYXRpb25dOworCisgICAgICAgIE5TU3RyaW5n
ICp0ZXN0U3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJBWFNjcm9sbCAlQCAl
QCAlQCIsIE5TU3RyaW5nRnJvbVBvaW50KFtzZWxmIF9hY2Nlc3NpYmlsaXR5U2Nyb2xsUG9zaXRp
b25dKSwgTlNTdHJpbmdGcm9tU2l6ZShbc2VsZiBfYWNjZXNzaWJpbGl0eVNjcm9sbFNpemVdKSwg
TlNTdHJpbmdGcm9tUmVjdChbc2VsZiBfYWNjZXNzaWJpbGl0eVNjcm9sbFZpc2libGVSZWN0XSld
OworICAgICAgICBbc2VsZiBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOkAiQVhTY3Jv
bGxCeVBhZ2UiIHVzZXJJbmZvOkB7IEAic3RhdHVzIiA6IHRlc3RTdHJpbmcgfV07CiAgICAgfQog
ICAgIAotICAgIFtzZWxmIHBvc3RTY3JvbGxTdGF0dXNDaGFuZ2VOb3RpZmljYXRpb25dOwotICAg
IAogICAgIC8vIFRoaXMgbWVhbnMgdGhhdCB0aGlzIG9iamVjdCBoYW5kbGVkIHRoZSBzY3JvbGwg
YW5kIG5vIG90aGVyIGFuY2VzdG9yIHNob3VsZCBhdHRlbXB0IHNjcm9sbGluZy4KLSAgICByZXR1
cm4gWUVTOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIC0gKENHUG9pbnQpY29udmVydFBvaW50
VG9TY3JlZW5TcGFjZTooRmxvYXRQb2ludCAmKXBvaW50CkBAIC0xNjI1LDEwICsxNjA2LDcgQEAK
ICAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQogICAgICAgICByZXR1
cm4gQ0dQb2ludFplcm87CiAgICAgCi0gICAgU2Nyb2xsVmlldyogc2Nyb2xsVmlldyA9IG1fb2Jq
ZWN0LT5zY3JvbGxWaWV3QW5jZXN0b3IoKTsKLSAgICBpZiAoIXNjcm9sbFZpZXcpCi0gICAgICAg
IHJldHVybiBDR1BvaW50WmVybzsKLSAgICByZXR1cm4gc2Nyb2xsVmlldy0+c2Nyb2xsUG9zaXRp
b24oKTsKKyAgICByZXR1cm4gbV9vYmplY3QtPnNjcm9sbFBvc2l0aW9uKCk7CiB9CiAKIC0gKENH
U2l6ZSlfYWNjZXNzaWJpbGl0eVNjcm9sbFNpemUKQEAgLTE2MzYsMTAgKzE2MTQsNyBAQAogICAg
IGlmICghW3NlbGYgX3ByZXBhcmVBY2Nlc3NpYmlsaXR5Q2FsbF0pCiAgICAgICAgIHJldHVybiBD
R1NpemVaZXJvOwogICAgIAotICAgIFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcgPSBtX29iamVjdC0+
c2Nyb2xsVmlld0FuY2VzdG9yKCk7Ci0gICAgaWYgKCFzY3JvbGxWaWV3KQotICAgICAgICByZXR1
cm4gQ0dTaXplWmVybzsKLSAgICByZXR1cm4gc2Nyb2xsVmlldy0+Y29udGVudHNTaXplKCk7Cisg
ICAgcmV0dXJuIG1fb2JqZWN0LT5zY3JvbGxDb250ZW50c1NpemUoKTsKIH0KIAogLSAoQ0dSZWN0
KV9hY2Nlc3NpYmlsaXR5U2Nyb2xsVmlzaWJsZVJlY3QKQEAgLTE2NDcsMTAgKzE2MjIsNyBAQAog
ICAgIGlmICghW3NlbGYgX3ByZXBhcmVBY2Nlc3NpYmlsaXR5Q2FsbF0pCiAgICAgICAgIHJldHVy
biBDR1JlY3RaZXJvOwogICAgIAotICAgIFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcgPSBtX29iamVj
dC0+c2Nyb2xsVmlld0FuY2VzdG9yKCk7Ci0gICAgaWYgKCFzY3JvbGxWaWV3KQotICAgICAgICBy
ZXR1cm4gQ0dSZWN0WmVybzsKLSAgICByZXR1cm4gc2Nyb2xsVmlldy0+dmlzaWJsZUNvbnRlbnRS
ZWN0KFNjcm9sbGFibGVBcmVhOjpMZWdhY3lJT1NEb2N1bWVudFZpc2libGVSZWN0KTsKKyAgICBy
ZXR1cm4gbV9vYmplY3QtPnNjcm9sbFZpc2libGVDb250ZW50UmVjdCgpOwogfQogCiAtICh2b2lk
KWFjY2Vzc2liaWxpdHlFbGVtZW50RGlkQmVjb21lRm9jdXNlZApJbmRleDogVG9vbHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTg3MDQ1KQorKysg
VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTUtMDct
MjAgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBBWDog
c2Nyb2xsYWJsZSBlbGVtZW50cyBkbyBub3QgYWxsb3cgMy1maW5nZXIgc3dpcGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTg5MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZ2xvYmFsIG5v
dGlmaWNhdGlvbiBsaXN0ZW5lcnMgZm9yIGlPUyBjb2RlLgorICAgICAgICBGaXggYW4gaXNzdWUg
aW4gRFJUIHdoZXJlIHRoZSBkaWN0aW9uYXJ5IG9mIGRhdGEgd2FzIG5vdCBiZWluZyBwYXNzZWQg
YmFjayB0byB0aGUgbGF5b3V0IHRlc3QgZm9yIHRoZSBub3RpY2F0aW9uIGNhbGxiYWNrLgorICAg
ICAgICBJbXBsZW1lbnQgc2Nyb2xsVXAvRG93bi9MZWZ0L1JpZ2h0LgorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKGluY3JlYXNlVGV4
dFNlbGVjdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKHNjcm9sbFBhZ2VVcENhbGxiYWNrKToKKyAg
ICAgICAgKHNjcm9sbFBhZ2VEb3duQ2FsbGJhY2spOgorICAgICAgICAoc2Nyb2xsUGFnZUxlZnRD
YWxsYmFjayk6CisgICAgICAgIChzY3JvbGxQYWdlUmlnaHRDYWxsYmFjayk6CisgICAgICAgIChk
ZWNyZWFzZVRleHRTZWxlY3Rpb25DYWxsYmFjayk6CisgICAgICAgIChnZXRFbGVtZW50VGV4dExl
bmd0aENhbGxiYWNrKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldEpTQ2xh
c3MpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1Mu
bW06CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6fkFjY2Vzc2liaWxpdHlDb250
cm9sbGVyKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjplbGVtZW50QXRQb2lu
dCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6YWRkTm90aWZpY2F0aW9uTGlz
dGVuZXIpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRU
b0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVt
b3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2lvcy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzdWJyb2xlKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9s
bFBhZ2VVcCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxQYWdlRG93
bik6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxQYWdlTGVmdCk6Cisg
ICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxQYWdlUmlnaHQpOgorICAgICAg
ICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm9sZURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW06Cisg
ICAgICAgICgtW0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyIF9ub3RpZmljYXRpb25S
ZWNlaXZlZDpdKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Fj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6bGlua2VkRWxlbWVudCk6CisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmhlYWRlckVsZW1lbnRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXNzaXN0aXZlVGVjaG5vbG9neVNpbXVsYXRlZEZvY3Vz
KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsUGFnZVVwKToK
KyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsUGFnZURvd24pOgor
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxQYWdlTGVmdCk6Cisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9sbFBhZ2VSaWdodCk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5tbToKKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmFkZE5vdGlmaWNhdGlvbkxpc3Rl
bmVyKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJlbW92ZU5vdGlm
aWNhdGlvbkxpc3RlbmVyKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tOgorICAgICAgICAoV1RSOjpBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXNzaXN0aXZlVGVjaG5vbG9neVNpbXVsYXRlZEZv
Y3VzKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsUGFnZVVw
KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsUGFnZURvd24p
OgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxQYWdlTGVmdCk6
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9sbFBhZ2VSaWdodCk6
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluY3JlYXNlVGV4dFNlbGVj
dGlvbik6CisKIDIwMTUtMDctMjAgIFRvbWFzIFBvcGVsYSAgPHRwb3BlbGFAcmVkaGF0LmNvbT4K
IAogICAgICAgICBbR1RLXSBBZGQgc2VsZWN0aW9uLWNoYW5nZWQgc2lnbmFsIHRvIHRoZSBXZWJL
aXQyIEFQSQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5oCShyZXZpc2lvbiAxODY5MDcpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC05Myw3ICs5Myw3IEBACiAg
ICAgSGFzaE1hcDxQbGF0Zm9ybVVJRWxlbWVudCwgSlNPYmplY3RSZWY+IG1fbm90aWZpY2F0aW9u
TGlzdGVuZXJzOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkKKyNpZiBQTEFURk9STShD
T0NPQSkgfHwgUExBVEZPUk0oSU9TKQogICAgIFJldGFpblB0cjxOb3RpZmljYXRpb25IYW5kbGVy
PiBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXI7CiAjZW5kaWYKIApJbmRleDogVG9vbHMvRHVt
cFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAJKHJldmlzaW9uIDE4
NjkwNykKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMzIsNiArMzMyLDI2IEBACiAgICAgcmV0dXJuIEpTVmFsdWVN
YWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBzY3JvbGxQYWdl
VXBDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpT
T2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVl
UmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgcmV0dXJuIEpT
VmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+c2Nyb2xs
UGFnZVVwKCkpOworfQorCitzdGF0aWMgSlNWYWx1ZVJlZiBzY3JvbGxQYWdlRG93bkNhbGxiYWNr
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYg
dGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1l
bnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VC
b29sZWFuKGNvbnRleHQsIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5zY3JvbGxQYWdlRG93bigp
KTsKK30KKworc3RhdGljIEpTVmFsdWVSZWYgc2Nyb2xsUGFnZUxlZnRDYWxsYmFjayhKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlQm9vbGVhbihj
b250ZXh0LCB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+c2Nyb2xsUGFnZUxlZnQoKSk7Cit9CisK
K3N0YXRpYyBKU1ZhbHVlUmVmIHNjcm9sbFBhZ2VSaWdodENhbGxiYWNrKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6
ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVS
ZWYqIGV4Y2VwdGlvbikKK3sKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQs
IHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5zY3JvbGxQYWdlUmlnaHQoKSk7Cit9CisKIHN0YXRp
YyBKU1ZhbHVlUmVmIGRlY3JlYXNlVGV4dFNlbGVjdGlvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6
ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVS
ZWYqIGV4Y2VwdGlvbikKIHsKICAgICB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+ZGVjcmVhc2VU
ZXh0U2VsZWN0aW9uKCk7CkBAIC0xMzI3LDYgKzEzNDcsOCBAQAogICAgIHJldHVybiBKU1ZhbHVl
TWFrZU51bWJlcihjb250ZXh0LCB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+ZWxlbWVudFRleHRM
ZW5ndGgoKSk7CiB9CiAKKworCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCiAjaWYgUExBVEZP
Uk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQpAQCAtMTY5MSw2ICsxNzEzLDEwIEBACiAgICAgICAg
IHsgImVsZW1lbnRzRm9yUmFuZ2UiLCBlbGVtZW50c0ZvclJhbmdlQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAiaW5jcmVhc2VUZXh0U2VsZWN0aW9uIiwgaW5jcmVhc2VUZXh0U2VsZWN0aW9u
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZGVjcmVhc2VUZXh0U2VsZWN0aW9uIiwgZGVj
cmVhc2VUZXh0U2VsZWN0aW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2Nyb2xsUGFn
ZVVwIiwgc2Nyb2xsUGFnZVVwQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2Nyb2xsUGFn
ZURvd24iLCBzY3JvbGxQYWdlRG93bkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgInNjcm9s
bFBhZ2VMZWZ0Iiwgc2Nyb2xsUGFnZUxlZnRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJz
Y3JvbGxQYWdlUmlnaHQiLCBzY3JvbGxQYWdlUmlnaHRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAg
ICB7ICJhc3Npc3RpdmVUZWNobm9sb2d5U2ltdWxhdGVkRm9jdXMiLCBhc3Npc3RpdmVUZWNobm9s
b2d5U2ltdWxhdGVkRm9jdXNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogI2VuZGlmCiAgICAgICAgIHsgMCwg
MCwgMCB9CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5oCShyZXZpc2lvbiAxODY5MDcpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyMSw2ICsyMjEsMTEgQEAKICAg
ICB2b2lkIGluY3JlYXNlVGV4dFNlbGVjdGlvbigpOwogICAgIHZvaWQgZGVjcmVhc2VUZXh0U2Vs
ZWN0aW9uKCk7CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBsaW5rZWRFbGVtZW50KCk7Cisg
ICAgCisgICAgYm9vbCBzY3JvbGxQYWdlVXAoKTsKKyAgICBib29sIHNjcm9sbFBhZ2VEb3duKCk7
CisgICAgYm9vbCBzY3JvbGxQYWdlTGVmdCgpOworICAgIGJvb2wgc2Nyb2xsUGFnZVJpZ2h0KCk7
CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKQpJbmRleDogVG9v
bHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cklPUy5tbQkocmV2aXNpb24gMTg2OTA3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0Fj
Y2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3
IEBACiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIgogCiAjaW1wb3J0ICJBY2Nl
c3NpYmlsaXR5Q29tbW9uTWFjLmgiCisjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
SGFuZGxlci5oIgogI2ltcG9ydCAiQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oIgogI2ltcG9ydCA8
Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRnJhbWVQcml2YXRl
Lmg+CkBAIC00Myw2ICs0NCw4IEBACiAKIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjp+QWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIoKQogeworICAgIC8vIFJlc2V0VG9Db25zaXN0ZW50U3RhdGUgc2hv
dWxkIGhhdmUgY2xlYXJlZCB0aGlzIGFscmVhZHkuCisgICAgQVNTRVJUKCFtX2dsb2JhbE5vdGlm
aWNhdGlvbkhhbmRsZXIpOwogfQogCiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyOjplbGVtZW50QXRQb2ludChpbnQgeCwgaW50IHkpCkBAIC0xMTYsMTEgKzEx
OSwyMyBAQAogCiBib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphZGROb3RpZmljYXRpb25M
aXN0ZW5lcihKU09iamVjdFJlZiBmdW5jdGlvbkNhbGxiYWNrKQogewotICAgIHJldHVybiBmYWxz
ZTsKKyAgICBpZiAoIWZ1bmN0aW9uQ2FsbGJhY2spCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAKKyAgICAvLyBNYWMgcHJvZ3JhbW1lcnMgc2hvdWxkIG5vdCBiZSBhZGRpbmcgbW9yZSB0aGFu
IG9uZSBnbG9iYWwgbm90aWZpY2F0aW9uIGxpc3RlbmVyLgorICAgIC8vIE90aGVyIHBsYXRmb3Jt
cyBtYXkgYmUgZGlmZmVyZW50LgorICAgIGlmIChtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXIp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXIg
PSBbW0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyIGFsbG9jXSBpbml0XTsKKyAgICBb
bV9nbG9iYWxOb3RpZmljYXRpb25IYW5kbGVyLmdldCgpIHNldENhbGxiYWNrOmZ1bmN0aW9uQ2Fs
bGJhY2tdOworICAgIFttX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXIuZ2V0KCkgc3RhcnRPYnNl
cnZpbmddOworICAgIAorICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKQogeworICAgIG1fZ2xv
YmFsTm90aWZpY2F0aW9uSGFuZGxlci5jbGVhcigpOwogfQogCiB2b2lkIEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCkluZGV4OiBUb29scy9EdW1w
UmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQko
cmV2aXNpb24gMTg2OTA3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ1LDEyICs0NSwxNSBAQAogCiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFBsYXRmb3JtVUlF
bGVtZW50IGVsZW1lbnQpCiAgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKKyAgICAsIG1fbm90aWZp
Y2F0aW9uSGFuZGxlcigwKQogewogICAgIFttX2VsZW1lbnQgcmV0YWluXTsKIH0KIAogQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudChjb25zdCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50JiBvdGhlcikKICAgICA6IG1fZWxlbWVudChvdGhlci5tX2VsZW1lbnQpCisg
ICAgLCBtX25vdGlmaWNhdGlvbkhhbmRsZXIoMCkKKwogewogICAgIFttX2VsZW1lbnQgcmV0YWlu
XTsKIH0KQEAgLTQ1NCw2ICs0NTcsMjUgQEAKICAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRo
Q2hhcmFjdGVycygwLCAwKTsKIH0KIAorYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3Jv
bGxQYWdlVXAoKQoreworICAgIHJldHVybiBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlTY3JvbGw6
VUlBY2Nlc3NpYmlsaXR5U2Nyb2xsRGlyZWN0aW9uVXBdOworfQorCitib29sIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnNjcm9sbFBhZ2VEb3duKCkKK3sKKyAgICByZXR1cm4gW21fZWxlbWVudCBh
Y2Nlc3NpYmlsaXR5U2Nyb2xsOlVJQWNjZXNzaWJpbGl0eVNjcm9sbERpcmVjdGlvbkRvd25dOwor
fQorYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxQYWdlTGVmdCgpCit7CisgICAg
cmV0dXJuIFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eVNjcm9sbDpVSUFjY2Vzc2liaWxpdHlTY3Jv
bGxEaXJlY3Rpb25MZWZ0XTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3Jv
bGxQYWdlUmlnaHQoKQoreworICAgIHJldHVybiBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlTY3Jv
bGw6VUlBY2Nlc3NpYmlsaXR5U2Nyb2xsRGlyZWN0aW9uUmlnaHRdOworfQorCiBKU1N0cmluZ1Jl
ZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb2xlRGVzY3JpcHRpb24oKQogewogICAgIHJldHVy
biBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOwpJbmRleDogVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
SGFuZGxlci5tbQkocmV2aXNpb24gMTg2OTA3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
NjYsNyArMTY2LDYgQEAKICAgICAgICAgcmV0dXJuOwogCiAgICAgTlNEaWN0aW9uYXJ5ICp1c2Vy
SW5mbyA9IFtbbm90aWZpY2F0aW9uIHVzZXJJbmZvXSBvYmplY3RGb3JLZXk6QCJ1c2VySW5mbyJd
OwotCiAgICAgSlNWYWx1ZVJlZiBub3RpZmljYXRpb25OYW1lQXJndW1lbnQgPSBKU1ZhbHVlTWFr
ZVN0cmluZyhbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBhZG9wdChbbm90aWZpY2F0aW9uTmFt
ZSBjcmVhdGVKU1N0cmluZ1JlZl0pLmdldCgpKTsKICAgICBKU1ZhbHVlUmVmIHVzZXJJbmZvQXJn
dW1lbnQgPSBtYWtlT2JqZWN0UmVmRm9yRGljdGlvbmFyeShbbWFpbkZyYW1lIGdsb2JhbENvbnRl
eHRdLCB1c2VySW5mbyk7CiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50KSB7CkBAIC0xODEsNyAr
MTgwLDcgQEAKICAgICAgICAgYXJndW1lbnRzWzBdID0gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
bWFrZUpTQWNjZXNzaWJpbGl0eVVJRWxlbWVudChbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50KFtub3RpZmljYXRpb24gb2JqZWN0XSkpOwogICAgICAgICBh
cmd1bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CiAgICAgICAgIGFyZ3VtZW50
c1syXSA9IHVzZXJJbmZvQXJndW1lbnQ7Ci0gICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24o
W21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNr
LCAwLCAyLCBhcmd1bWVudHMsIDApOworICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFtt
YWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywg
MCwgMywgYXJndW1lbnRzLCAwKTsKICAgICB9CiB9CiAKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmgJKHJldmlzaW9uIDE4NjkwNykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtNzAsNyArNzAsNyBAQAogcHJpdmF0ZToKICAgICBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigp
OwogCi0jaWYgUExBVEZPUk0oQ09DT0EpCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JN
KElPUykKICAgICBSZXRhaW5QdHI8Tm90aWZpY2F0aW9uSGFuZGxlcj4gbV9nbG9iYWxOb3RpZmlj
YXRpb25IYW5kbGVyOwogI2VuZGlmCiAKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmNwcAkocmV2aXNpb24gMTg2OTA3KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYs
NiArNjYsMTAgQEAKIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6bGlua2VkRWxlbWVudCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KIFBhc3NS
ZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVh
ZGVyRWxlbWVudEF0SW5kZXgodW5zaWduZWQpIHsgcmV0dXJuIG51bGxwdHI7IH0KIHZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6YXNzaXN0aXZlVGVjaG5vbG9neVNpbXVsYXRlZEZvY3VzKCkg
eyByZXR1cm47IH0KK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsUGFnZVVwKCkg
eyByZXR1cm4gZmFsc2U7IH0KK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsUGFn
ZURvd24oKSB7IHJldHVybiBmYWxzZTsgfQorYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpz
Y3JvbGxQYWdlTGVmdCgpIHsgcmV0dXJuIGZhbHNlOyB9Citib29sIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnNjcm9sbFBhZ2VSaWdodCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKICAgICAK
IC8vIFVuc3VwcG9ydGVkIG1ldGhvZHMgb24gdmFyaW91cyBwbGF0Zm9ybXMuIEFzIHRoZXkncmUg
aW1wbGVtZW50ZWQgb24gb3RoZXIgcGxhdGZvcm1zIHRoaXMgbGlzdCBzaG91bGQgYmUgbW9kaWZp
ZWQuCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAkocmV2aXNpb24gMTg2OTA3KQor
KysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3NSw2ICsyNzUsMTEgQEAKICAgICBQYXNzUmVm
UHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGhlYWRlckVsZW1lbnRBdEluZGV4KHVuc2lnbmVk
IGluZGV4KTsKICAgICB2b2lkIGFzc2lzdGl2ZVRlY2hub2xvZ3lTaW11bGF0ZWRGb2N1cygpOwog
ICAgIAorICAgIGJvb2wgc2Nyb2xsUGFnZVVwKCk7CisgICAgYm9vbCBzY3JvbGxQYWdlRG93bigp
OworICAgIGJvb2wgc2Nyb2xsUGFnZUxlZnQoKTsKKyAgICBib29sIHNjcm9sbFBhZ2VSaWdodCgp
OworICAgIAogcHJpdmF0ZToKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFBsYXRmb3JtVUlF
bGVtZW50KTsKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KGNvbnN0IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQmKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmlkbAkocmV2aXNpb24gMTg2OTA3KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTcwLDYgKzE3MCwxMCBAQAogCiAgICAgdm9pZCBzY3JvbGxUb01ha2VWaXNp
YmxlKCk7CiAgICAgdm9pZCB0YWtlRm9jdXMoKTsKKyAgICBib29sZWFuIHNjcm9sbFBhZ2VEb3du
KCk7CisgICAgYm9vbGVhbiBzY3JvbGxQYWdlVXAoKTsKKyAgICBib29sZWFuIHNjcm9sbFBhZ2VM
ZWZ0KCk7CisgICAgYm9vbGVhbiBzY3JvbGxQYWdlUmlnaHQoKTsKIAogICAgIC8vIFRleHQgbWFy
a2Vycy4KICAgICBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlIGxpbmVUZXh0TWFya2VyUmFu
Z2VGb3JUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyIHRleHRNYXJrZXIpOwpJbmRl
eDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXJJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0JKHJldmlzaW9u
IDE4NjkwNykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0Fj
Y2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSwx
OCBAQAogCiBib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphZGROb3RpZmljYXRpb25MaXN0
ZW5lcihKU1ZhbHVlUmVmIGZ1bmN0aW9uQ2FsbGJhY2spCiB7Ci0gICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmICghZnVuY3Rpb25DYWxsYmFjaykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAor
ICAgIC8vIE1hYyBwcm9ncmFtbWVycyBzaG91bGQgbm90IGJlIGFkZGluZyBtb3JlIHRoYW4gb25l
IGdsb2JhbCBub3RpZmljYXRpb24gbGlzdGVuZXIuCisgICAgLy8gT3RoZXIgcGxhdGZvcm1zIG1h
eSBiZSBkaWZmZXJlbnQuCisgICAgaWYgKG1fZ2xvYmFsTm90aWZpY2F0aW9uSGFuZGxlcikKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIG1fZ2xvYmFsTm90aWZpY2F0aW9uSGFuZGxlciA9IFtb
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIgYWxsb2NdIGluaXRdOworICAgIFttX2ds
b2JhbE5vdGlmaWNhdGlvbkhhbmRsZXIuZ2V0KCkgc2V0Q2FsbGJhY2s6ZnVuY3Rpb25DYWxsYmFj
a107CisgICAgW21fZ2xvYmFsTm90aWZpY2F0aW9uSGFuZGxlci5nZXQoKSBzdGFydE9ic2Vydmlu
Z107CisgICAgCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXI6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCkKSW5kZXg6IFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3Mv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQkocmV2aXNpb24gMTg2OTA3KQorKysgVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dElPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSw3IEBACiAgICAgCiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFBsYXRmb3JtVUlFbGVtZW50
IGVsZW1lbnQpCiAgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKKyAgICAsIG1fbm90aWZpY2F0aW9u
SGFuZGxlcigwKQogewogICAgIC8vIEZJWE1FOiBhcEB3ZWJraXQub3JnIHNheXMgT2JqQyBvYmpl
Y3RzIG5lZWQgdG8gYmUgQ0ZSZXRhaW5lZC9DRlJlbGVhc2UgdG8gYmUgR0MtY29tcGxpYW50IG9u
IHRoZSBtYWMuCiAgICAgW21fZWxlbWVudCByZXRhaW5dOwpAQCAtMTE3LDYgKzExOCw3IEBACiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KGNvbnN0IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQmIG90aGVyKQogICAgIDogSlNXcmFwcGFibGUoKQogICAgICwgbV9l
bGVtZW50KG90aGVyLm1fZWxlbWVudCkKKyAgICAsIG1fbm90aWZpY2F0aW9uSGFuZGxlcigwKQog
ewogICAgIFttX2VsZW1lbnQgcmV0YWluXTsKIH0KQEAgLTc1NSw3ICs3NTcsMjYgQEAKIHsKICAg
ICBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlFbGVtZW50RGlkQmVjb21lRm9jdXNlZF07CiB9Cisg
ICAgCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9sbFBhZ2VVcCgpCit7CisgICAg
cmV0dXJuIFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eVNjcm9sbDpVSUFjY2Vzc2liaWxpdHlTY3Jv
bGxEaXJlY3Rpb25VcF07Cit9CiAKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xs
UGFnZURvd24oKQoreworICAgIHJldHVybiBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlTY3JvbGw6
VUlBY2Nlc3NpYmlsaXR5U2Nyb2xsRGlyZWN0aW9uRG93bl07Cit9Citib29sIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnNjcm9sbFBhZ2VMZWZ0KCkKK3sKKyAgICByZXR1cm4gW21fZWxlbWVudCBh
Y2Nlc3NpYmlsaXR5U2Nyb2xsOlVJQWNjZXNzaWJpbGl0eVNjcm9sbERpcmVjdGlvbkxlZnRdOwor
fQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9sbFBhZ2VSaWdodCgpCit7Cisg
ICAgcmV0dXJuIFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eVNjcm9sbDpVSUFjY2Vzc2liaWxpdHlT
Y3JvbGxEaXJlY3Rpb25SaWdodF07Cit9CisKIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aW5jcmVhc2VUZXh0U2VsZWN0aW9uKCkKIHsKICAgICBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlN
b2RpZnlTZWxlY3Rpb246V2ViQ29yZTo6Q2hhcmFjdGVyR3JhbnVsYXJpdHkgaW5jcmVhc2U6WUVT
XTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NzA0NSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE1LTA3LTIwICBDaHJpcyBGbGVpemFj
aCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHNjcm9sbGFibGUgZWxlbWVu
dHMgZG8gbm90IGFsbG93IDMtZmluZ2VyIHN3aXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE4OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW11bGF0b3IvYWNjZXNzaWJp
bGl0eS9zY3JvbGwtaW4tb3ZlcmZsb3ctZGl2LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9hY2Nlc3NpYmlsaXR5L3Njcm9sbC1pbi1vdmVyZmxv
dy1kaXYuaHRtbDogQWRkZWQuCisKIDIwMTUtMDctMjAgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdA
YXBwbGUuY29tPgogCiAgICAgICAgIEltcHJvdmUgYmVoYXZpb3Igb2YgbWVkaWEgZWxlbWVudHMg
aW4gcGFnZSBjYWNoZS4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Iv
YWNjZXNzaWJpbGl0eS9zY3JvbGwtaW4tb3ZlcmZsb3ctZGl2LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL2FjY2Vzc2liaWxpdHkv
c2Nyb2xsLWluLW92ZXJmbG93LWRpdi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL2FjY2Vzc2liaWxpdHkvc2Nyb2xsLWluLW92
ZXJmbG93LWRpdi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NyBAQAor
VGhpcyBtYWtlcyBzdXJlIHRoYXQgd2UgY2FuIHBlcmZvcm0gYWNjZXNzaWJpbGl0eSBzY3JvbGwg
YWN0aW9ucyBpbnNpZGUgb3ZlcmZsb3cgZGl2cworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworQVhTY3JvbGxCeVBhZ2UgcmVjZWl2ZWQ6IGRhdGE6IEFYU2Nyb2xsIHswLCAyMjR9IHsy
ODQ1LCA5MzZ9IHt7MCwgMjI0fSwgezQyNCwgMjI0fX0KK3Njcm9sbCBkb3duIDAgOiBzdWNjZXNz
IHRydWUKK0FYU2Nyb2xsQnlQYWdlIHJlY2VpdmVkOiBkYXRhOiBBWFNjcm9sbCB7MCwgNDQ4fSB7
Mjg0NSwgOTM2fSB7ezAsIDQ0OH0sIHs0MjQsIDIyNH19CitzY3JvbGwgZG93biAxIDogc3VjY2Vz
cyB0cnVlCitBWFNjcm9sbEJ5UGFnZSByZWNlaXZlZDogZGF0YTogQVhTY3JvbGwgezAsIDY3Mn0g
ezI4NDUsIDkzNn0ge3swLCA2NzJ9LCB7NDI0LCAyMjR9fQorc2Nyb2xsIGRvd24gMiA6IHN1Y2Nl
c3MgdHJ1ZQorQVhTY3JvbGxCeVBhZ2UgcmVjZWl2ZWQ6IGRhdGE6IEFYU2Nyb2xsIHswLCA3MTJ9
IHsyODQ1LCA5MzZ9IHt7MCwgNzEyfSwgezQyNCwgMjI0fX0KK3Njcm9sbCBkb3duIDMgOiBzdWNj
ZXNzIHRydWUKK3Njcm9sbCBkb3duIDQgOiBzdWNjZXNzIGZhbHNlCitBWFNjcm9sbEJ5UGFnZSBy
ZWNlaXZlZDogZGF0YTogQVhTY3JvbGwgezAsIDQ4OH0gezI4NDUsIDkzNn0ge3swLCA0ODh9LCB7
NDI0LCAyMjR9fQorc2Nyb2xsIHVwIDAgOiBzdWNjZXNzIHRydWUKK0FYU2Nyb2xsQnlQYWdlIHJl
Y2VpdmVkOiBkYXRhOiBBWFNjcm9sbCB7MCwgMjY0fSB7Mjg0NSwgOTM2fSB7ezAsIDI2NH0sIHs0
MjQsIDIyNH19CitzY3JvbGwgdXAgMSA6IHN1Y2Nlc3MgdHJ1ZQorQVhTY3JvbGxCeVBhZ2UgcmVj
ZWl2ZWQ6IGRhdGE6IEFYU2Nyb2xsIHswLCA0MH0gezI4NDUsIDkzNn0ge3swLCA0MH0sIHs0MjQs
IDIyNH19CitzY3JvbGwgdXAgMiA6IHN1Y2Nlc3MgdHJ1ZQorQVhTY3JvbGxCeVBhZ2UgcmVjZWl2
ZWQ6IGRhdGE6IEFYU2Nyb2xsIHswLCAwfSB7Mjg0NSwgOTM2fSB7ezAsIDB9LCB7NDI0LCAyMjR9
fQorc2Nyb2xsIHVwIDMgOiBzdWNjZXNzIHRydWUKK3Njcm9sbCB1cCA0IDogc3VjY2VzcyBmYWxz
ZQorQVhTY3JvbGxCeVBhZ2UgcmVjZWl2ZWQ6IGRhdGE6IEFYU2Nyb2xsIHs0MjQsIDB9IHsyODQ1
LCA5MzZ9IHt7NDI0LCAwfSwgezQyNCwgMjI0fX0KK3Njcm9sbCBsZWZ0IDAgOiBzdWNjZXNzIHRy
dWUKK0FYU2Nyb2xsQnlQYWdlIHJlY2VpdmVkOiBkYXRhOiBBWFNjcm9sbCB7ODQ4LCAwfSB7Mjg0
NSwgOTM2fSB7ezg0OCwgMH0sIHs0MjQsIDIyNH19CitzY3JvbGwgbGVmdCAxIDogc3VjY2VzcyB0
cnVlCitBWFNjcm9sbEJ5UGFnZSByZWNlaXZlZDogZGF0YTogQVhTY3JvbGwgezEyNzIsIDB9IHsy
ODQ1LCA5MzZ9IHt7MTI3MiwgMH0sIHs0MjQsIDIyNH19CitzY3JvbGwgbGVmdCAyIDogc3VjY2Vz
cyB0cnVlCitBWFNjcm9sbEJ5UGFnZSByZWNlaXZlZDogZGF0YTogQVhTY3JvbGwgezE2OTYsIDB9
IHsyODQ1LCA5MzZ9IHt7MTY5NiwgMH0sIHs0MjQsIDIyNH19CitzY3JvbGwgbGVmdCAzIDogc3Vj
Y2VzcyB0cnVlCitBWFNjcm9sbEJ5UGFnZSByZWNlaXZlZDogZGF0YTogQVhTY3JvbGwgezIxMjAs
IDB9IHsyODQ1LCA5MzZ9IHt7MjEyMCwgMH0sIHs0MjQsIDIyNH19CitzY3JvbGwgbGVmdCA0IDog
c3VjY2VzcyB0cnVlCitBWFNjcm9sbEJ5UGFnZSByZWNlaXZlZDogZGF0YTogQVhTY3JvbGwgezE2
OTYsIDB9IHsyODQ1LCA5MzZ9IHt7MTY5NiwgMH0sIHs0MjQsIDIyNH19CitzY3JvbGwgcmlnaHQg
MCA6IHN1Y2Nlc3MgdHJ1ZQorQVhTY3JvbGxCeVBhZ2UgcmVjZWl2ZWQ6IGRhdGE6IEFYU2Nyb2xs
IHsxMjcyLCAwfSB7Mjg0NSwgOTM2fSB7ezEyNzIsIDB9LCB7NDI0LCAyMjR9fQorc2Nyb2xsIHJp
Z2h0IDEgOiBzdWNjZXNzIHRydWUKK0FYU2Nyb2xsQnlQYWdlIHJlY2VpdmVkOiBkYXRhOiBBWFNj
cm9sbCB7ODQ4LCAwfSB7Mjg0NSwgOTM2fSB7ezg0OCwgMH0sIHs0MjQsIDIyNH19CitzY3JvbGwg
cmlnaHQgMiA6IHN1Y2Nlc3MgdHJ1ZQorQVhTY3JvbGxCeVBhZ2UgcmVjZWl2ZWQ6IGRhdGE6IEFY
U2Nyb2xsIHs0MjQsIDB9IHsyODQ1LCA5MzZ9IHt7NDI0LCAwfSwgezQyNCwgMjI0fX0KK3Njcm9s
bCByaWdodCAzIDogc3VjY2VzcyB0cnVlCitBWFNjcm9sbEJ5UGFnZSByZWNlaXZlZDogZGF0YTog
QVhTY3JvbGwgezAsIDB9IHsyODQ1LCA5MzZ9IHt7MCwgMH0sIHs0MjQsIDIyNH19CitzY3JvbGwg
cmlnaHQgNCA6IHN1Y2Nlc3MgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0
b3IvYWNjZXNzaWJpbGl0eS9zY3JvbGwtaW4tb3ZlcmZsb3ctZGl2Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9hY2Nlc3NpYmlsaXR5L3Njcm9s
bC1pbi1vdmVyZmxvdy1kaXYuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy1zaW11bGF0b3IvYWNjZXNzaWJpbGl0eS9zY3JvbGwtaW4tb3ZlcmZsb3ctZGl2Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICAg
ICAgIGJvZHkgeworICAgICAgICAgICAgaGVpZ2h0OiAyMDAwcHg7CisgICAgICAgIH0KKyAgICAg
ICAgLmNvbnRhaW5lciB7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAg
ICAgICB0b3A6IDIwMHB4OworICAgICAgICAgICAgd2lkdGg6IDUwMHB4OworICAgICAgICAgICAg
aGVpZ2h0OiAzMDBweDsKKyAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrOworICAg
ICAgICAgICAgcGFkZGluZzogMTBweDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLm92
ZXJmbG93IHsKKworICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAgICAgICAgICAg
IHdpZHRoOiA0MDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAgICBw
YWRkaW5nOiAxMHB4OworICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgYmx1ZTsKKyAgICAg
ICAgICAgIG92ZXJmbG93OiBzY3JvbGw7CisgICAgICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNj
cm9sbGluZzogdG91Y2g7CisgICAgICAgIH0KKzwvc3R5bGU+CisKKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9
ImJvZHkiPgorCisgICA8ZGl2IGlkPSJjb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiIHJvbGU9
Imdyb3VwIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmZsb3ciPgorICAgICAgICAgICAgPHAg
aWQ9InRleHQxIj5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlz
aWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0
IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3Ry
dWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29t
bW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGlu
IHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlh
dHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50
IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVt
LgorICAgICAgICAgICAgPC9wPjxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0
ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1
dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0s
IHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVp
cCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJl
aGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQg
bnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJv
aWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQg
ZXN0IGxhYm9ydW0uCisgICAgICAgICAgICA8L3A+PHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFt
ZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBp
bmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1p
bmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlz
aSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9s
b3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3Jl
IGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRh
dGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xs
aXQgYW5pbSBpZCBlc3QgbGFib3J1bS4KKyAgICAgICAgICAgIDwvcD48cD5Mb3JlbSBpcHN1bSBk
b2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNt
b2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0
IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28g
bGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0
ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNp
bGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2Nh
ZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRl
c2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLgorICAgICAgICAgICAgPC9wPjxwIGlk
PSJ0ZXh0MiI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2lj
aW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBk
b2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVk
IGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1v
ZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2
b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1
ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBp
biBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4K
KyAgICAgICAgICAgIDwvcD48cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0
dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQg
bGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBx
dWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAg
ZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhl
bmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51
bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lk
ZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVz
dCBsYWJvcnVtLgorICAgICAgICAgICAgPC9wPjxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0
LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5j
aWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5p
bSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kg
dXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9y
IGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBl
dSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRh
dCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0
IGFuaW0gaWQgZXN0IGxhYm9ydW0uCisgICAgICAgICAgICA8L3A+PHA+TG9yZW0gaXBzdW0gZG9s
b3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9k
IHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBl
bmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxh
Ym9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUg
aXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxs
dW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVj
YXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNl
cnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4KKyAgICAgICAgICAgIDwvcD48cD5Mb3Jl
bSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2Vk
IGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBh
bGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9u
IHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQu
IER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxp
dCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIg
c2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBv
ZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLgorICAgICAgICAgICAg
PC9wPjxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2lu
ZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9s
b3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBl
eGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2Rv
IGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9s
dXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIu
IEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4g
Y3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uCisg
ICAgICAgICAgICA8L3A+PHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVy
IGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxh
Ym9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVp
cyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4
IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5k
ZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxs
YSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVu
dCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3Qg
bGFib3J1bS4KKyAgICAgICAgICAgIDwvcD48cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwg
Y29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lk
aWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0g
dmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0
IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBp
biByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUg
ZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQg
bm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBh
bmltIGlkIGVzdCBsYWJvcnVtLgorICAgICAgICAgICAgPC9wPjxwPkxvcmVtIGlwc3VtIGRvbG9y
IHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0
ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5p
bSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJv
cmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGly
dXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVt
IGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0
IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1
bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uCisgICAgICAgICAgICA8L3A+PHA+TG9yZW0g
aXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBk
byBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxp
cXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1
bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBE
dWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQg
ZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNp
bnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2Zm
aWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4KKyAgICAgICAgICAgIDwv
cD48cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcg
ZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9y
ZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhl
cmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBj
b25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVw
dGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBF
eGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1
bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLgorICAg
ICAgICAgICAgPC9wPjxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBh
ZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJv
cmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMg
bm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBl
YSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVy
aXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEg
cGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQs
IHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxh
Ym9ydW0uCisgICAgICAgICAgICA8L3A+PHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNv
bnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlk
dW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZl
bmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBh
bGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4g
cmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1
Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5v
biBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5p
bSBpZCBlc3QgbGFib3J1bS4KKyAgICAgICAgICAgIDwvcD48cD5Mb3JlbSBpcHN1bSBkb2xvciBz
aXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVt
cG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0g
YWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3Jp
cyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVy
ZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBk
b2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBj
dXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50
IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLgorICAgICAgICAgICAgPC9wPjxwPkxvcmVtIGlw
c3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8g
ZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1
YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxs
YW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVp
cyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVz
c2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50
IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmlj
aWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uCisgICAgICAgICAgICA8L3A+
PHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVs
aXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUg
bWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJj
aXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29u
c2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRh
dGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhj
ZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxw
YSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4KKyAgICAg
ICAgICAgIDwvcD48cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRp
cGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3Jl
IGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5v
c3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEg
Y29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0
IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBh
cmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBz
dW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJv
cnVtLgorICAgICAgICAgICAgPC9wPjxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25z
ZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVu
dCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5p
YW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxp
cXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJl
cHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdp
YXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24g
cHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0g
aWQgZXN0IGxhYm9ydW0uCisgICAgICAgICAgICA8L3A+PHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0
IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBv
ciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFk
IG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMg
bmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUg
ZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9s
b3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3Vw
aWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBt
b2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4KKyAgICAgICAgICAgIDwvcD48cD5Mb3JlbSBpcHN1
bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVp
dXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEu
IFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFt
Y28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMg
YXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3Nl
IGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBv
Y2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lh
IGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLgorICAgICAgICAgICAgPC9wPjxw
IGlkPSJ0ZXh0MyI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBp
c2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBl
dCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0
cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNv
bW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBp
biB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJp
YXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3Vu
dCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1
bS4KKyAgICAgICAgPC9wPjwvZGl2PgorICAgIDwvZGl2PgorCis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorCisgICAgZGVzY3Jp
cHRpb24oIlRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGNhbiBwZXJmb3JtIGFjY2Vzc2liaWxpdHkg
c2Nyb2xsIGFjdGlvbnMgaW5zaWRlIG92ZXJmbG93IGRpdnMiKTsKKworICAgIHZhciBjb3VudCA9
IDA7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIGZ1bmN0aW9uIGZvY3Vz
Q2FsbGJhY2soZWxlbWVudCwgbm90aWZpY2F0aW9uLCBpbmZvKSB7CisKKyAgICAgICAgaWYgKG5v
dGlmaWNhdGlvbiA9PSAiQVhTY3JvbGxCeVBhZ2UiKSB7CisgICAgICAgICAgICBkZWJ1Zyhub3Rp
ZmljYXRpb24gKyAiIHJlY2VpdmVkOiBkYXRhOiAiICsgaW5mby5zdGF0dXMpOworICAgICAgICB9
CisKKyAgICAgICAgLy8gV2Ugc2hvdWxkIGhhdmUgMTggc3VjY2Vzc2Z1bCBzY3JvbGxzICgyIHdp
bGwgZmFpbCBiZWNhdXNlIHdlJ2xsIGJlIGF0IHRoZSBib3JkZXIpLgorICAgICAgICBjb3VudCsr
OworICAgICAgICBpZiAoY291bnQgPT0gMTgpIHsKKyAgICAgICAgICAgIGZpbmlzaCgpOworICAg
ICAgICB9CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikg
eworCisgICAgICAgIHZhciBjb250ZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCJ0ZXh0MSIpOworICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihmb2N1c0NhbGxiYWNrKTsKKworICAgICAgICBmb3Ig
KHZhciBrID0gMDsgayA8IDU7IGsrKykgeworICAgICAgICAgICB2YXIgc3VjY2VzcyA9IGNvbnRl
bnQuc2Nyb2xsUGFnZURvd24oKTsKKyAgICAgICAgICAgZGVidWcoInNjcm9sbCBkb3duICIgKyBr
ICsgIiA6IHN1Y2Nlc3MgIiArIHN1Y2Nlc3MpOworICAgICAgICB9CisKKyAgICAgICAgZm9yICh2
YXIgayA9IDA7IGsgPCA1OyBrKyspIHsKKyAgICAgICAgICAgdmFyIHN1Y2Nlc3MgPSBjb250ZW50
LnNjcm9sbFBhZ2VVcCgpOworICAgICAgICAgICBkZWJ1Zygic2Nyb2xsIHVwICIgKyBrICsgIiA6
IHN1Y2Nlc3MgIiArIHN1Y2Nlc3MpOworICAgICAgICB9CisKKyAgICAgICAgZm9yICh2YXIgayA9
IDA7IGsgPCA1OyBrKyspIHsKKyAgICAgICAgICAgdmFyIHN1Y2Nlc3MgPSBjb250ZW50LnNjcm9s
bFBhZ2VMZWZ0KCk7CisgICAgICAgICAgIGRlYnVnKCJzY3JvbGwgbGVmdCAiICsgayArICIgOiBz
dWNjZXNzICIgKyBzdWNjZXNzKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAodmFyIGsgPSAw
OyBrIDwgNTsgaysrKSB7CisgICAgICAgICAgIHZhciBzdWNjZXNzID0gY29udGVudC5zY3JvbGxQ
YWdlUmlnaHQoKTsKKyAgICAgICAgICAgZGVidWcoInNjcm9sbCByaWdodCAiICsgayArICIgOiBz
dWNjZXNzICIgKyBzdWNjZXNzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIGZp
bmlzaCgpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpLnN0
eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
fQorCisgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257185</attachid>
            <date>2015-07-21 10:23:31 -0700</date>
            <delta_ts>2015-07-21 14:39:52 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>47046</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NzA0NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDE1LTA3LTIwICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHNjcm9sbGFibGUg
ZWxlbWVudHMgZG8gbm90IGFsbG93IDMtZmluZ2VyIHN3aXBlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE4OTMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUbyBhbGxvdyBpT1MgQWNjZXNzaWJpbGl0eSB0
byBwZXJmb3JtIGJ5LXBhZ2Ugc2Nyb2xsaW5nIGluIG92ZXJmbG93IGFyZWFzLCB3ZSBtb3ZlCisg
ICAgICAgIHRoYXQgc2Nyb2xsaW5nIGNvZGUgaW50byBBY2Nlc3NpYmlsaXR5T2JqZWN0IGFuZCB0
aGVuIGl0ZXJhdGUgYWxsIHRoZSBwb3NzaWJsZSBTY3JvbGxhYmxlQXJlYXMsCisgICAgICAgIHJh
dGhlciB0aGFuIGp1c3QgZmluZGluZyB0aGUgcGFyZW50cyB0aGF0IGFyZSBTY3JvbGxWaWV3cy4g
CisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9hY2Nlc3NpYmlsaXR5L3Nj
cm9sbC1pbi1vdmVyZmxvdy1kaXYuaHRtbAorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OnNjcm9sbFRvR2xvYmFsUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdDo6c2Nyb2xsQXJlYUFuZEFuY2VzdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnNjcm9sbFZpc2libGVDb250ZW50UmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzY3JvbGxDb250ZW50c1NpemUpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c2Nyb2xsQnlQYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6Omxhc3RLbm93bklzSWdub3JlZFZhbHVlKToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmdldFNjcm9sbGFibGVBcmVhSWZTY3JvbGxhYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcm9sbFRvKToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklP
Uy5tbToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJp
bGl0eVNjcm9sbDpdKToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIg
Y29udmVydFBvaW50VG9TY3JlZW5TcGFjZTpdKToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXIgX2FjY2Vzc2liaWxpdHlTY3JvbGxQb3NpdGlvbl0pOgorICAgICAgICAo
LVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBfYWNjZXNzaWJpbGl0eVNjcm9sbFNpemVd
KToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgX2FjY2Vzc2liaWxp
dHlTY3JvbGxWaXNpYmxlUmVjdF0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlciBhY2Nlc3NpYmlsaXR5RWxlbWVudERpZEJlY29tZUZvY3VzZWRdKToKKwogMjAxNS0w
Ny0yMCAgSmVyZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CiAKICAgICAgICAgQWRvcHQg
QVZQbGF5ZXJMYXllclZpZXcKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAkocmV2aXNpb24gMTg2ODY3KQorKysgU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjUyOSw3ICsyNTI5LDEwMCBAQAogICAgICAgICB9CiAgICAgfQogfQorICAg
IAordm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzY3JvbGxBcmVhQW5kQW5jZXN0b3Ioc3RkOjpw
YWlyPFNjcm9sbGFibGVBcmVhKiwgQWNjZXNzaWJpbGl0eU9iamVjdCo+JiBzY3JvbGxlcnMpIGNv
bnN0Cit7CisgICAgLy8gU2VhcmNoIHVwIHRoZSBwYXJlbnQgY2hhaW4gdW50aWwgd2UgZmluZCB0
aGUgZmlyc3Qgb25lIHRoYXQncyBzY3JvbGxhYmxlLgorICAgIHNjcm9sbGVycy5zZWNvbmQgPSBw
YXJlbnRPYmplY3QoKTsKKyAgICBzY3JvbGxlcnMuZmlyc3QgPSBudWxscHRyOworICAgIGZvciAo
OyBzY3JvbGxlcnMuc2Vjb25kICYmICEoc2Nyb2xsZXJzLmZpcnN0ID0gc2Nyb2xsZXJzLnNlY29u
ZC0+Z2V0U2Nyb2xsYWJsZUFyZWFJZlNjcm9sbGFibGUoKSk7IHNjcm9sbGVycy5zZWNvbmQgPSBz
Y3JvbGxlcnMuc2Vjb25kLT5wYXJlbnRPYmplY3QoKSkgeyB9Cit9CisgICAgCitJbnRQb2ludCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpzY3JvbGxQb3NpdGlvbigpIGNvbnN0Cit7CisgICAgc3RkOjpw
YWlyPFNjcm9sbGFibGVBcmVhKiwgQWNjZXNzaWJpbGl0eU9iamVjdCo+IHNjcm9sbGVyczsKKyAg
ICBzY3JvbGxBcmVhQW5kQW5jZXN0b3Ioc2Nyb2xsZXJzKTsKKyAgICBpZiAoIXNjcm9sbGVycy5m
aXJzdCkKKyAgICAgICAgcmV0dXJuIEludFBvaW50KCk7CisgICAgCisgICAgcmV0dXJuIHNjcm9s
bGVycy5maXJzdC0+c2Nyb2xsUG9zaXRpb24oKTsKK30KIAorSW50UmVjdCBBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpzY3JvbGxWaXNpYmxlQ29udGVudFJlY3QoKSBjb25zdAoreworICAgIHN0ZDo6cGFp
cjxTY3JvbGxhYmxlQXJlYSosIEFjY2Vzc2liaWxpdHlPYmplY3QqPiBzY3JvbGxlcnM7CisgICAg
c2Nyb2xsQXJlYUFuZEFuY2VzdG9yKHNjcm9sbGVycyk7CisgICAgaWYgKCFzY3JvbGxlcnMuZmly
c3QpCisgICAgICAgIHJldHVybiBJbnRSZWN0KCk7CisgICAgCisgICAgcmV0dXJuIHNjcm9sbGVy
cy5maXJzdC0+dmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpMZWdhY3lJT1NEb2N1
bWVudFZpc2libGVSZWN0KTsKK30KKyAgICAKK0ludFNpemUgQWNjZXNzaWJpbGl0eU9iamVjdDo6
c2Nyb2xsQ29udGVudHNTaXplKCkgY29uc3QKK3sKKyAgICBzdGQ6OnBhaXI8U2Nyb2xsYWJsZUFy
ZWEqLCBBY2Nlc3NpYmlsaXR5T2JqZWN0Kj4gc2Nyb2xsZXJzOworICAgIHNjcm9sbEFyZWFBbmRB
bmNlc3RvcihzY3JvbGxlcnMpOworICAgIGlmICghc2Nyb2xsZXJzLmZpcnN0KQorICAgICAgICBy
ZXR1cm4gSW50U2l6ZSgpOworCisgICAgcmV0dXJuIHNjcm9sbGVycy5maXJzdC0+Y29udGVudHNT
aXplKCk7Cit9CisgICAgCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcm9sbEJ5UGFnZShT
Y3JvbGxCeVBhZ2VEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAoreworICAgIHN0ZDo6cGFpcjxT
Y3JvbGxhYmxlQXJlYSosIEFjY2Vzc2liaWxpdHlPYmplY3QqPiBzY3JvbGxlcnM7CisgICAgc2Ny
b2xsQXJlYUFuZEFuY2VzdG9yKHNjcm9sbGVycyk7CisgICAgU2Nyb2xsYWJsZUFyZWEqIHNjcm9s
bGFibGVBcmVhID0gc2Nyb2xsZXJzLmZpcnN0OworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHNj
cm9sbFBhcmVudCA9IHNjcm9sbGVycy5zZWNvbmQ7CisgICAgCisgICAgaWYgKCFzY3JvbGxhYmxl
QXJlYSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIEludFBvaW50IHNjcm9sbFBv
c2l0aW9uID0gc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbFBvc2l0aW9uKCk7CisgICAgSW50UG9pbnQg
bmV3U2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsKKyAgICBJbnRTaXplIHNjcm9sbFNp
emUgPSBzY3JvbGxhYmxlQXJlYS0+Y29udGVudHNTaXplKCk7CisgICAgSW50UmVjdCBzY3JvbGxW
aXNpYmxlUmVjdCA9IHNjcm9sbGFibGVBcmVhLT52aXNpYmxlQ29udGVudFJlY3QoU2Nyb2xsYWJs
ZUFyZWE6OkxlZ2FjeUlPU0RvY3VtZW50VmlzaWJsZVJlY3QpOworICAgIHN3aXRjaCAoZGlyZWN0
aW9uKSB7CisgICAgY2FzZSBSaWdodDogeworICAgICAgICBpbnQgc2Nyb2xsQW1vdW50ID0gc2Ny
b2xsVmlzaWJsZVJlY3Quc2l6ZSgpLndpZHRoKCk7CisgICAgICAgIGludCBuZXdYID0gc2Nyb2xs
UG9zaXRpb24ueCgpIC0gc2Nyb2xsQW1vdW50OworICAgICAgICBuZXdTY3JvbGxQb3NpdGlvbi5z
ZXRYKHN0ZDo6bWF4KG5ld1gsIDApKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2Ug
TGVmdDogeworICAgICAgICBpbnQgc2Nyb2xsQW1vdW50ID0gc2Nyb2xsVmlzaWJsZVJlY3Quc2l6
ZSgpLndpZHRoKCk7CisgICAgICAgIGludCBuZXdYID0gc2Nyb2xsQW1vdW50ICsgc2Nyb2xsUG9z
aXRpb24ueCgpOworICAgICAgICBpbnQgbWF4WCA9IHNjcm9sbFNpemUud2lkdGgoKSAtIHNjcm9s
bEFtb3VudDsKKyAgICAgICAgbmV3U2Nyb2xsUG9zaXRpb24uc2V0WChzdGQ6Om1pbihuZXdYLCBt
YXhYKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFVwOiB7CisgICAgICAgIGlu
dCBzY3JvbGxBbW91bnQgPSBzY3JvbGxWaXNpYmxlUmVjdC5zaXplKCkuaGVpZ2h0KCk7CisgICAg
ICAgIGludCBuZXdZID0gc2Nyb2xsUG9zaXRpb24ueSgpIC0gc2Nyb2xsQW1vdW50OworICAgICAg
ICBuZXdTY3JvbGxQb3NpdGlvbi5zZXRZKHN0ZDo6bWF4KG5ld1ksIDApKTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIGNhc2UgRG93bjogeworICAgICAgICBpbnQgc2Nyb2xsQW1vdW50ID0g
c2Nyb2xsVmlzaWJsZVJlY3Quc2l6ZSgpLmhlaWdodCgpOworICAgICAgICBpbnQgbmV3WSA9IHNj
cm9sbEFtb3VudCArIHNjcm9sbFBvc2l0aW9uLnkoKTsKKyAgICAgICAgaW50IG1heFkgPSBzY3Jv
bGxTaXplLmhlaWdodCgpIC0gc2Nyb2xsQW1vdW50OworICAgICAgICBuZXdTY3JvbGxQb3NpdGlv
bi5zZXRZKHN0ZDo6bWluKG5ld1ksIG1heFkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg
IGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICAKKyAgICBpZiAobmV3U2Nyb2xs
UG9zaXRpb24gIT0gc2Nyb2xsUG9zaXRpb24pIHsKKyAgICAgICAgc2Nyb2xsUGFyZW50LT5zY3Jv
bGxUbyhuZXdTY3JvbGxQb3NpdGlvbik7CisgICAgICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgCisgICAgcmV0dXJuIGZhbHNlOworfQorCisKIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVj
dDo6bGFzdEtub3duSXNJZ25vcmVkVmFsdWUoKQogewogICAgIGlmIChtX2xhc3RLbm93bklzSWdu
b3JlZFZhbHVlID09IERlZmF1bHRCZWhhdmlvcikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCShyZXZpc2lvbiAxODY4Njcp
CisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAko
d29ya2luZyBjb3B5KQpAQCAtODk1LDcgKzg5NSwxMyBAQAogICAgIHZpcnR1YWwgdm9pZCBzY3Jv
bGxUb01ha2VWaXNpYmxlV2l0aFN1YkZvY3VzKGNvbnN0IEludFJlY3QmKSBjb25zdDsKICAgICAv
LyBTY3JvbGwgdGhpcyBvYmplY3QgdG8gYSBnaXZlbiBwb2ludCBpbiBnbG9iYWwgY29vcmRpbmF0
ZXMgb2YgdGhlIHRvcC1sZXZlbCB3aW5kb3cuCiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbFRvR2xv
YmFsUG9pbnQoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKLQorICAgIAorICAgIGVudW0gU2Nyb2xs
QnlQYWdlRGlyZWN0aW9uIHsgVXAsIERvd24sIExlZnQsIFJpZ2h0IH07CisgICAgYm9vbCBzY3Jv
bGxCeVBhZ2UoU2Nyb2xsQnlQYWdlRGlyZWN0aW9uKSBjb25zdDsKKyAgICBJbnRQb2ludCBzY3Jv
bGxQb3NpdGlvbigpIGNvbnN0OworICAgIEludFNpemUgc2Nyb2xsQ29udGVudHNTaXplKCkgY29u
c3Q7ICAgIAorICAgIEludFJlY3Qgc2Nyb2xsVmlzaWJsZUNvbnRlbnRSZWN0KCkgY29uc3Q7Cisg
ICAgCiAgICAgYm9vbCBsYXN0S25vd25Jc0lnbm9yZWRWYWx1ZSgpOwogICAgIHZvaWQgc2V0TGFz
dEtub3duSXNJZ25vcmVkVmFsdWUoYm9vbCk7CiAKQEAgLTEwMTYsNyArMTAyMiw4IEBACiAgICAg
Ly8gSWYgdGhpcyBvYmplY3QgaXRzZWxmIHNjcm9sbHMsIHJldHVybiBpdHMgU2Nyb2xsYWJsZUFy
ZWEuCiAgICAgdmlydHVhbCBTY3JvbGxhYmxlQXJlYSogZ2V0U2Nyb2xsYWJsZUFyZWFJZlNjcm9s
bGFibGUoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCB2b2lkIHNjcm9s
bFRvKGNvbnN0IEludFBvaW50JikgY29uc3QgeyB9Ci0KKyAgICB2b2lkIHNjcm9sbEFyZWFBbmRB
bmNlc3RvcihzdGQ6OnBhaXI8U2Nyb2xsYWJsZUFyZWEqLCBBY2Nlc3NpYmlsaXR5T2JqZWN0Kj4m
KSBjb25zdDsKKyAgICAKICAgICBzdGF0aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlPYmplY3RTZWFy
Y2hNYXRjaEF0SW5kZXgoQWNjZXNzaWJpbGl0eU9iamVjdCosIEFjY2Vzc2liaWxpdHlTZWFyY2hD
cml0ZXJpYSosIHNpemVfdCk7CiAgICAgc3RhdGljIGJvb2wgaXNBY2Nlc3NpYmlsaXR5T2JqZWN0
U2VhcmNoTWF0Y2goQWNjZXNzaWJpbGl0eU9iamVjdCosIEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0
ZXJpYSopOwogICAgIHN0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eVRleHRTZWFyY2hNYXRjaChB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhKik7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlcklPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQkocmV2aXNpb24gMTg2ODY3
KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTExNDksNTQgKzExNDksMzUgQEAK
ICAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQogICAgICAgICByZXR1
cm4gTk87CiAgICAgCi0gICAgU2Nyb2xsVmlldyogc2Nyb2xsVmlldyA9IG1fb2JqZWN0LT5zY3Jv
bGxWaWV3QW5jZXN0b3IoKTsKLSAgICBpZiAoIXNjcm9sbFZpZXcpCi0gICAgICAgIHJldHVybiBO
TzsKLSAgICAKLSAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFZpZXctPnNjcm9s
bFBvc2l0aW9uKCk7Ci0gICAgSW50UG9pbnQgbmV3U2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3Np
dGlvbjsKLSAgICBJbnRTaXplIHNjcm9sbFNpemUgPSBzY3JvbGxWaWV3LT5jb250ZW50c1NpemUo
KTsKLSAgICBJbnRSZWN0IHNjcm9sbFZpc2libGVSZWN0ID0gc2Nyb2xsVmlldy0+dmlzaWJsZUNv
bnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpMZWdhY3lJT1NEb2N1bWVudFZpc2libGVSZWN0KTsK
KyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpTY3JvbGxCeVBhZ2VEaXJlY3Rpb24gc2Nyb2xsRGly
ZWN0aW9uOwogICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7Ci0gICAgY2FzZSBVSUFjY2Vzc2liaWxp
dHlTY3JvbGxEaXJlY3Rpb25SaWdodDogewotICAgICAgICBpbnQgc2Nyb2xsQW1vdW50ID0gc2Ny
b2xsVmlzaWJsZVJlY3Quc2l6ZSgpLndpZHRoKCk7Ci0gICAgICAgIGludCBuZXdYID0gc2Nyb2xs
UG9zaXRpb24ueCgpIC0gc2Nyb2xsQW1vdW50OwotICAgICAgICBuZXdTY3JvbGxQb3NpdGlvbi5z
ZXRYKHN0ZDo6bWF4KG5ld1gsIDApKTsKKyAgICBjYXNlIFVJQWNjZXNzaWJpbGl0eVNjcm9sbERp
cmVjdGlvblJpZ2h0OgorICAgICAgICBzY3JvbGxEaXJlY3Rpb24gPSBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpTY3JvbGxCeVBhZ2VEaXJlY3Rpb246OlJpZ2h0OwogICAgICAgICBicmVhazsKLSAgICB9
Ci0gICAgY2FzZSBVSUFjY2Vzc2liaWxpdHlTY3JvbGxEaXJlY3Rpb25MZWZ0OiB7Ci0gICAgICAg
IGludCBzY3JvbGxBbW91bnQgPSBzY3JvbGxWaXNpYmxlUmVjdC5zaXplKCkud2lkdGgoKTsKLSAg
ICAgICAgaW50IG5ld1ggPSBzY3JvbGxBbW91bnQgKyBzY3JvbGxQb3NpdGlvbi54KCk7Ci0gICAg
ICAgIGludCBtYXhYID0gc2Nyb2xsU2l6ZS53aWR0aCgpIC0gc2Nyb2xsQW1vdW50OwotICAgICAg
ICBuZXdTY3JvbGxQb3NpdGlvbi5zZXRYKHN0ZDo6bWluKG5ld1gsIG1heFgpKTsKKyAgICBjYXNl
IFVJQWNjZXNzaWJpbGl0eVNjcm9sbERpcmVjdGlvbkxlZnQ6CisgICAgICAgIHNjcm9sbERpcmVj
dGlvbiA9IEFjY2Vzc2liaWxpdHlPYmplY3Q6OlNjcm9sbEJ5UGFnZURpcmVjdGlvbjo6TGVmdDsK
ICAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgVUlBY2Nlc3NpYmlsaXR5U2Nyb2xsRGly
ZWN0aW9uVXA6IHsKLSAgICAgICAgaW50IHNjcm9sbEFtb3VudCA9IHNjcm9sbFZpc2libGVSZWN0
LnNpemUoKS5oZWlnaHQoKTsKLSAgICAgICAgaW50IG5ld1kgPSBzY3JvbGxQb3NpdGlvbi55KCkg
LSBzY3JvbGxBbW91bnQ7Ci0gICAgICAgIG5ld1Njcm9sbFBvc2l0aW9uLnNldFkoc3RkOjptYXgo
bmV3WSwgMCkpOworICAgIGNhc2UgVUlBY2Nlc3NpYmlsaXR5U2Nyb2xsRGlyZWN0aW9uVXA6Cisg
ICAgICAgIHNjcm9sbERpcmVjdGlvbiA9IEFjY2Vzc2liaWxpdHlPYmplY3Q6OlNjcm9sbEJ5UGFn
ZURpcmVjdGlvbjo6VXA7CiAgICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIFVJQWNjZXNz
aWJpbGl0eVNjcm9sbERpcmVjdGlvbkRvd246IHsKLSAgICAgICAgaW50IHNjcm9sbEFtb3VudCA9
IHNjcm9sbFZpc2libGVSZWN0LnNpemUoKS5oZWlnaHQoKTsKLSAgICAgICAgaW50IG5ld1kgPSBz
Y3JvbGxBbW91bnQgKyBzY3JvbGxQb3NpdGlvbi55KCk7Ci0gICAgICAgIGludCBtYXhZID0gc2Ny
b2xsU2l6ZS5oZWlnaHQoKSAtIHNjcm9sbEFtb3VudDsKLSAgICAgICAgbmV3U2Nyb2xsUG9zaXRp
b24uc2V0WShzdGQ6Om1pbihuZXdZLCBtYXhZKSk7CisgICAgY2FzZSBVSUFjY2Vzc2liaWxpdHlT
Y3JvbGxEaXJlY3Rpb25Eb3duOgorICAgICAgICBzY3JvbGxEaXJlY3Rpb24gPSBBY2Nlc3NpYmls
aXR5T2JqZWN0OjpTY3JvbGxCeVBhZ2VEaXJlY3Rpb246OkRvd247CiAgICAgICAgIGJyZWFrOwot
ICAgIH0KICAgICBkZWZhdWx0OgotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIE5POwog
ICAgIH0KKworICAgIEJPT0wgcmVzdWx0ID0gbV9vYmplY3QtPnNjcm9sbEJ5UGFnZShzY3JvbGxE
aXJlY3Rpb24pOwogICAgIAotICAgIGlmIChuZXdTY3JvbGxQb3NpdGlvbiAhPSBzY3JvbGxQb3Np
dGlvbikgewotICAgICAgICBzY3JvbGxWaWV3LT5zZXRTY3JvbGxQb3NpdGlvbihuZXdTY3JvbGxQ
b3NpdGlvbik7Ci0gICAgICAgIG1fb2JqZWN0LT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBpZiAocmVzdWx0KSB7CisgICAgICAgIFtzZWxm
IHBvc3RTY3JvbGxTdGF0dXNDaGFuZ2VOb3RpZmljYXRpb25dOworCisgICAgICAgIE5TU3RyaW5n
ICp0ZXN0U3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJBWFNjcm9sbCAlQCAl
QCAlQCIsIE5TU3RyaW5nRnJvbUNHUG9pbnQoW3NlbGYgX2FjY2Vzc2liaWxpdHlTY3JvbGxQb3Np
dGlvbl0pLCBOU1N0cmluZ0Zyb21DR1NpemUoW3NlbGYgX2FjY2Vzc2liaWxpdHlTY3JvbGxTaXpl
XSksIE5TU3RyaW5nRnJvbUNHUmVjdChbc2VsZiBfYWNjZXNzaWJpbGl0eVNjcm9sbFZpc2libGVS
ZWN0XSldOworICAgICAgICBbc2VsZiBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOkAi
QVhTY3JvbGxCeVBhZ2UiIHVzZXJJbmZvOkB7IEAic3RhdHVzIiA6IHRlc3RTdHJpbmcgfV07CiAg
ICAgfQogICAgIAotICAgIFtzZWxmIHBvc3RTY3JvbGxTdGF0dXNDaGFuZ2VOb3RpZmljYXRpb25d
OwotICAgIAogICAgIC8vIFRoaXMgbWVhbnMgdGhhdCB0aGlzIG9iamVjdCBoYW5kbGVkIHRoZSBz
Y3JvbGwgYW5kIG5vIG90aGVyIGFuY2VzdG9yIHNob3VsZCBhdHRlbXB0IHNjcm9sbGluZy4KLSAg
ICByZXR1cm4gWUVTOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIC0gKENHUG9pbnQpY29udmVy
dFBvaW50VG9TY3JlZW5TcGFjZTooRmxvYXRQb2ludCAmKXBvaW50CkBAIC0xNjI1LDEwICsxNjA2
LDcgQEAKICAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQogICAgICAg
ICByZXR1cm4gQ0dQb2ludFplcm87CiAgICAgCi0gICAgU2Nyb2xsVmlldyogc2Nyb2xsVmlldyA9
IG1fb2JqZWN0LT5zY3JvbGxWaWV3QW5jZXN0b3IoKTsKLSAgICBpZiAoIXNjcm9sbFZpZXcpCi0g
ICAgICAgIHJldHVybiBDR1BvaW50WmVybzsKLSAgICByZXR1cm4gc2Nyb2xsVmlldy0+c2Nyb2xs
UG9zaXRpb24oKTsKKyAgICByZXR1cm4gbV9vYmplY3QtPnNjcm9sbFBvc2l0aW9uKCk7CiB9CiAK
IC0gKENHU2l6ZSlfYWNjZXNzaWJpbGl0eVNjcm9sbFNpemUKQEAgLTE2MzYsMTAgKzE2MTQsNyBA
QAogICAgIGlmICghW3NlbGYgX3ByZXBhcmVBY2Nlc3NpYmlsaXR5Q2FsbF0pCiAgICAgICAgIHJl
dHVybiBDR1NpemVaZXJvOwogICAgIAotICAgIFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcgPSBtX29i
amVjdC0+c2Nyb2xsVmlld0FuY2VzdG9yKCk7Ci0gICAgaWYgKCFzY3JvbGxWaWV3KQotICAgICAg
ICByZXR1cm4gQ0dTaXplWmVybzsKLSAgICByZXR1cm4gc2Nyb2xsVmlldy0+Y29udGVudHNTaXpl
KCk7CisgICAgcmV0dXJuIG1fb2JqZWN0LT5zY3JvbGxDb250ZW50c1NpemUoKTsKIH0KIAogLSAo
Q0dSZWN0KV9hY2Nlc3NpYmlsaXR5U2Nyb2xsVmlzaWJsZVJlY3QKQEAgLTE2NDcsMTAgKzE2MjIs
NyBAQAogICAgIGlmICghW3NlbGYgX3ByZXBhcmVBY2Nlc3NpYmlsaXR5Q2FsbF0pCiAgICAgICAg
IHJldHVybiBDR1JlY3RaZXJvOwogICAgIAotICAgIFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcgPSBt
X29iamVjdC0+c2Nyb2xsVmlld0FuY2VzdG9yKCk7Ci0gICAgaWYgKCFzY3JvbGxWaWV3KQotICAg
ICAgICByZXR1cm4gQ0dSZWN0WmVybzsKLSAgICByZXR1cm4gc2Nyb2xsVmlldy0+dmlzaWJsZUNv
bnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpMZWdhY3lJT1NEb2N1bWVudFZpc2libGVSZWN0KTsK
KyAgICByZXR1cm4gbV9vYmplY3QtPnNjcm9sbFZpc2libGVDb250ZW50UmVjdCgpOwogfQogCiAt
ICh2b2lkKWFjY2Vzc2liaWxpdHlFbGVtZW50RGlkQmVjb21lRm9jdXNlZApJbmRleDogVG9vbHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTg3MDQ1
KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjQgQEAKKzIw
MTUtMDctMjAgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAg
ICBBWDogc2Nyb2xsYWJsZSBlbGVtZW50cyBkbyBub3QgYWxsb3cgMy1maW5nZXIgc3dpcGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTg5MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZ2xv
YmFsIG5vdGlmaWNhdGlvbiBsaXN0ZW5lcnMgZm9yIGlPUyBjb2RlLgorICAgICAgICBGaXggYW4g
aXNzdWUgaW4gRFJUIHdoZXJlIHRoZSBkaWN0aW9uYXJ5IG9mIGRhdGEgd2FzIG5vdCBiZWluZyBw
YXNzZWQgYmFjayB0byB0aGUgbGF5b3V0IHRlc3QgZm9yIHRoZSBub3RpY2F0aW9uIGNhbGxiYWNr
LgorICAgICAgICBJbXBsZW1lbnQgc2Nyb2xsVXAvRG93bi9MZWZ0L1JpZ2h0LgorCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKGluY3Jl
YXNlVGV4dFNlbGVjdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKHNjcm9sbFBhZ2VVcENhbGxiYWNr
KToKKyAgICAgICAgKHNjcm9sbFBhZ2VEb3duQ2FsbGJhY2spOgorICAgICAgICAoc2Nyb2xsUGFn
ZUxlZnRDYWxsYmFjayk6CisgICAgICAgIChzY3JvbGxQYWdlUmlnaHRDYWxsYmFjayk6CisgICAg
ICAgIChkZWNyZWFzZVRleHRTZWxlY3Rpb25DYWxsYmFjayk6CisgICAgICAgIChnZXRFbGVtZW50
VGV4dExlbmd0aENhbGxiYWNrKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omdl
dEpTQ2xhc3MpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXJJT1MubW06CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6fkFjY2Vzc2liaWxp
dHlDb250cm9sbGVyKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjplbGVtZW50
QXRQb2ludCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6YWRkTm90aWZpY2F0
aW9uTGlzdGVuZXIpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnBsYXRmb3Jt
UmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cjo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tOgorICAgICAgICAoQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudCk6CisgICAgICAgIChBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpzdWJyb2xlKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNjcm9sbFBhZ2VVcCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxQ
YWdlRG93bik6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxQYWdlTGVm
dCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxQYWdlUmlnaHQpOgor
ICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm9sZURlc2NyaXB0aW9uKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIu
bW06CisgICAgICAgICgtW0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyIF9ub3RpZmlj
YXRpb25SZWNlaXZlZDpdKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGlua2VkRWxlbWVudCk6CisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhlYWRlckVsZW1lbnRBdEluZGV4KToKKyAgICAgICAg
KFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXNzaXN0aXZlVGVjaG5vbG9neVNpbXVsYXRl
ZEZvY3VzKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsUGFn
ZVVwKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsUGFnZURv
d24pOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxQYWdlTGVm
dCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9sbFBhZ2VSaWdo
dCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5t
bToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmFkZE5vdGlmaWNhdGlv
bkxpc3RlbmVyKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJlbW92
ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tOgorICAgICAgICAoV1RS
OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXNzaXN0aXZlVGVjaG5vbG9neVNpbXVs
YXRlZEZvY3VzKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xs
UGFnZVVwKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsUGFn
ZURvd24pOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxQYWdl
TGVmdCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9sbFBhZ2VS
aWdodCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluY3JlYXNlVGV4
dFNlbGVjdGlvbik6CisKIDIwMTUtMDctMjAgIFRvbWFzIFBvcGVsYSAgPHRwb3BlbGFAcmVkaGF0
LmNvbT4KIAogICAgICAgICBbR1RLXSBBZGQgc2VsZWN0aW9uLWNoYW5nZWQgc2lnbmFsIHRvIHRo
ZSBXZWJLaXQyIEFQSQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5oCShyZXZpc2lvbiAxODY5MDcpCisrKyBUb29scy9EdW1wUmVuZGVyVHJl
ZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC05Myw3ICs5Myw3
IEBACiAgICAgSGFzaE1hcDxQbGF0Zm9ybVVJRWxlbWVudCwgSlNPYmplY3RSZWY+IG1fbm90aWZp
Y2F0aW9uTGlzdGVuZXJzOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkKKyNpZiBQTEFU
Rk9STShDT0NPQSkgfHwgUExBVEZPUk0oSU9TKQogICAgIFJldGFpblB0cjxOb3RpZmljYXRpb25I
YW5kbGVyPiBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXI7CiAjZW5kaWYKIApJbmRleDogVG9v
bHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAJKHJldmlz
aW9uIDE4NjkwNykKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzIsNiArMzMyLDI2IEBACiAgICAgcmV0dXJuIEpT
VmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBzY3Jv
bGxQYWdlVXBDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rp
b24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBK
U1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgcmV0
dXJuIEpTVmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+
c2Nyb2xsUGFnZVVwKCkpOworfQorCitzdGF0aWMgSlNWYWx1ZVJlZiBzY3JvbGxQYWdlRG93bkNh
bGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmpl
Y3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYg
YXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICByZXR1cm4gSlNWYWx1
ZU1ha2VCb29sZWFuKGNvbnRleHQsIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5zY3JvbGxQYWdl
RG93bigpKTsKK30KKworc3RhdGljIEpTVmFsdWVSZWYgc2Nyb2xsUGFnZUxlZnRDYWxsYmFjayhK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRo
aXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50
c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlQm9v
bGVhbihjb250ZXh0LCB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+c2Nyb2xsUGFnZUxlZnQoKSk7
Cit9CisKK3N0YXRpYyBKU1ZhbHVlUmVmIHNjcm9sbFBhZ2VSaWdodENhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVj
dCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpT
VmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VCb29sZWFuKGNv
bnRleHQsIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5zY3JvbGxQYWdlUmlnaHQoKSk7Cit9CisK
IHN0YXRpYyBKU1ZhbHVlUmVmIGRlY3JlYXNlVGV4dFNlbGVjdGlvbkNhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVj
dCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpT
VmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+ZGVj
cmVhc2VUZXh0U2VsZWN0aW9uKCk7CkBAIC0xMzI3LDYgKzEzNDcsOCBAQAogICAgIHJldHVybiBK
U1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+ZWxlbWVu
dFRleHRMZW5ndGgoKSk7CiB9CiAKKworCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCiAjaWYg
UExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQpAQCAtMTY5MSw2ICsxNzEzLDEwIEBACiAg
ICAgICAgIHsgImVsZW1lbnRzRm9yUmFuZ2UiLCBlbGVtZW50c0ZvclJhbmdlQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAiaW5jcmVhc2VUZXh0U2VsZWN0aW9uIiwgaW5jcmVhc2VUZXh0U2Vs
ZWN0aW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZGVjcmVhc2VUZXh0U2VsZWN0aW9u
IiwgZGVjcmVhc2VUZXh0U2VsZWN0aW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2Ny
b2xsUGFnZVVwIiwgc2Nyb2xsUGFnZVVwQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2Ny
b2xsUGFnZURvd24iLCBzY3JvbGxQYWdlRG93bkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsg
InNjcm9sbFBhZ2VMZWZ0Iiwgc2Nyb2xsUGFnZUxlZnRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAg
ICB7ICJzY3JvbGxQYWdlUmlnaHQiLCBzY3JvbGxQYWdlUmlnaHRDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJhc3Npc3RpdmVUZWNobm9sb2d5U2ltdWxhdGVkRm9jdXMiLCBhc3Npc3RpdmVU
ZWNobm9sb2d5U2ltdWxhdGVkRm9jdXNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogI2VuZGlmCiAgICAgICAg
IHsgMCwgMCwgMCB9CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5oCShyZXZpc2lvbiAxODY5MDcpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyMSw2ICsyMjEsMTEg
QEAKICAgICB2b2lkIGluY3JlYXNlVGV4dFNlbGVjdGlvbigpOwogICAgIHZvaWQgZGVjcmVhc2VU
ZXh0U2VsZWN0aW9uKCk7CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBsaW5rZWRFbGVtZW50
KCk7CisgICAgCisgICAgYm9vbCBzY3JvbGxQYWdlVXAoKTsKKyAgICBib29sIHNjcm9sbFBhZ2VE
b3duKCk7CisgICAgYm9vbCBzY3JvbGxQYWdlTGVmdCgpOworICAgIGJvb2wgc2Nyb2xsUGFnZVJp
Z2h0KCk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKQpJbmRl
eDogVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcklPUy5tbQkocmV2aXNpb24gMTg2OTA3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUv
aW9zL0FjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2
ICsyOCw3IEBACiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIgogCiAjaW1wb3J0
ICJBY2Nlc3NpYmlsaXR5Q29tbW9uTWFjLmgiCisjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uSGFuZGxlci5oIgogI2ltcG9ydCAiQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oIgogI2lt
cG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRnJhbWVQ
cml2YXRlLmg+CkBAIC00Myw2ICs0NCw4IEBACiAKIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjp+
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKQogeworICAgIC8vIFJlc2V0VG9Db25zaXN0ZW50U3Rh
dGUgc2hvdWxkIGhhdmUgY2xlYXJlZCB0aGlzIGFscmVhZHkuCisgICAgQVNTRVJUKCFtX2dsb2Jh
bE5vdGlmaWNhdGlvbkhhbmRsZXIpOwogfQogCiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vz
c2liaWxpdHlDb250cm9sbGVyOjplbGVtZW50QXRQb2ludChpbnQgeCwgaW50IHkpCkBAIC0xMTYs
MTEgKzExOSwyMyBAQAogCiBib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphZGROb3RpZmlj
YXRpb25MaXN0ZW5lcihKU09iamVjdFJlZiBmdW5jdGlvbkNhbGxiYWNrKQogewotICAgIHJldHVy
biBmYWxzZTsKKyAgICBpZiAoIWZ1bmN0aW9uQ2FsbGJhY2spCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAKKyAgICAvLyBNYWMgcHJvZ3JhbW1lcnMgc2hvdWxkIG5vdCBiZSBhZGRpbmcgbW9y
ZSB0aGFuIG9uZSBnbG9iYWwgbm90aWZpY2F0aW9uIGxpc3RlbmVyLgorICAgIC8vIE90aGVyIHBs
YXRmb3JtcyBtYXkgYmUgZGlmZmVyZW50LgorICAgIGlmIChtX2dsb2JhbE5vdGlmaWNhdGlvbkhh
bmRsZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBtX2dsb2JhbE5vdGlmaWNhdGlvbkhh
bmRsZXIgPSBbW0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyIGFsbG9jXSBpbml0XTsK
KyAgICBbbV9nbG9iYWxOb3RpZmljYXRpb25IYW5kbGVyLmdldCgpIHNldENhbGxiYWNrOmZ1bmN0
aW9uQ2FsbGJhY2tdOworICAgIFttX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXIuZ2V0KCkgc3Rh
cnRPYnNlcnZpbmddOworICAgIAorICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIEFjY2Vzc2li
aWxpdHlDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKQogeworICAg
IG1fZ2xvYmFsTm90aWZpY2F0aW9uSGFuZGxlci5jbGVhcigpOwogfQogCiB2b2lkIEFjY2Vzc2li
aWxpdHlDb250cm9sbGVyOjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCkluZGV4OiBUb29s
cy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElP
Uy5tbQkocmV2aXNpb24gMTg2OTA3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ1LDEyICs0NSwxNSBA
QAogCiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFBsYXRm
b3JtVUlFbGVtZW50IGVsZW1lbnQpCiAgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKKyAgICAsIG1f
bm90aWZpY2F0aW9uSGFuZGxlcigwKQogewogICAgIFttX2VsZW1lbnQgcmV0YWluXTsKIH0KIAog
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudChjb25zdCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50JiBvdGhlcikKICAgICA6IG1fZWxlbWVudChvdGhlci5tX2VsZW1l
bnQpCisgICAgLCBtX25vdGlmaWNhdGlvbkhhbmRsZXIoMCkKKwogewogICAgIFttX2VsZW1lbnQg
cmV0YWluXTsKIH0KQEAgLTQ1NCw2ICs0NTcsMjUgQEAKICAgICByZXR1cm4gSlNTdHJpbmdDcmVh
dGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKIH0KIAorYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpzY3JvbGxQYWdlVXAoKQoreworICAgIHJldHVybiBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlT
Y3JvbGw6VUlBY2Nlc3NpYmlsaXR5U2Nyb2xsRGlyZWN0aW9uVXBdOworfQorCitib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9sbFBhZ2VEb3duKCkKK3sKKyAgICByZXR1cm4gW21fZWxl
bWVudCBhY2Nlc3NpYmlsaXR5U2Nyb2xsOlVJQWNjZXNzaWJpbGl0eVNjcm9sbERpcmVjdGlvbkRv
d25dOworfQorYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxQYWdlTGVmdCgpCit7
CisgICAgcmV0dXJuIFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eVNjcm9sbDpVSUFjY2Vzc2liaWxp
dHlTY3JvbGxEaXJlY3Rpb25MZWZ0XTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpzY3JvbGxQYWdlUmlnaHQoKQoreworICAgIHJldHVybiBbbV9lbGVtZW50IGFjY2Vzc2liaWxp
dHlTY3JvbGw6VUlBY2Nlc3NpYmlsaXR5U2Nyb2xsRGlyZWN0aW9uUmlnaHRdOworfQorCiBKU1N0
cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb2xlRGVzY3JpcHRpb24oKQogewogICAg
IHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOwpJbmRleDogVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uSGFuZGxlci5tbQkocmV2aXNpb24gMTg2OTA3KQorKysgVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0xNjYsNyArMTY2LDYgQEAKICAgICAgICAgcmV0dXJuOwogCiAgICAgTlNEaWN0aW9uYXJ5
ICp1c2VySW5mbyA9IFtbbm90aWZpY2F0aW9uIHVzZXJJbmZvXSBvYmplY3RGb3JLZXk6QCJ1c2Vy
SW5mbyJdOwotCiAgICAgSlNWYWx1ZVJlZiBub3RpZmljYXRpb25OYW1lQXJndW1lbnQgPSBKU1Zh
bHVlTWFrZVN0cmluZyhbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBhZG9wdChbbm90aWZpY2F0
aW9uTmFtZSBjcmVhdGVKU1N0cmluZ1JlZl0pLmdldCgpKTsKICAgICBKU1ZhbHVlUmVmIHVzZXJJ
bmZvQXJndW1lbnQgPSBtYWtlT2JqZWN0UmVmRm9yRGljdGlvbmFyeShbbWFpbkZyYW1lIGdsb2Jh
bENvbnRleHRdLCB1c2VySW5mbyk7CiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50KSB7CkBAIC0x
ODEsNyArMTgwLDcgQEAKICAgICAgICAgYXJndW1lbnRzWzBdID0gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6bWFrZUpTQWNjZXNzaWJpbGl0eVVJRWxlbWVudChbbWFpbkZyYW1lIGdsb2JhbENvbnRl
eHRdLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFtub3RpZmljYXRpb24gb2JqZWN0XSkpOwogICAg
ICAgICBhcmd1bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CiAgICAgICAgIGFy
Z3VtZW50c1syXSA9IHVzZXJJbmZvQXJndW1lbnQ7Ci0gICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVu
Y3Rpb24oW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNh
bGxiYWNrLCAwLCAyLCBhcmd1bWVudHMsIDApOworICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0
aW9uKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxs
YmFjaywgMCwgMywgYXJndW1lbnRzLCAwKTsKICAgICB9CiB9CiAKSW5kZXg6IFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmgJKHJldmlzaW9uIDE4NjkwNykKKysrIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtNzAsNyArNzAsNyBAQAogcHJpdmF0ZToKICAgICBBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcigpOwogCi0jaWYgUExBVEZPUk0oQ09DT0EpCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBM
QVRGT1JNKElPUykKICAgICBSZXRhaW5QdHI8Tm90aWZpY2F0aW9uSGFuZGxlcj4gbV9nbG9iYWxO
b3RpZmljYXRpb25IYW5kbGVyOwogI2VuZGlmCiAKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmNwcAkocmV2aXNpb24gMTg2OTA3KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjYsNiArNjYsMTAgQEAKIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6bGlua2VkRWxlbWVudCgpIHsgcmV0dXJuIG51bGxwdHI7IH0K
IFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aGVhZGVyRWxlbWVudEF0SW5kZXgodW5zaWduZWQpIHsgcmV0dXJuIG51bGxwdHI7IH0KIHZv
aWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXNzaXN0aXZlVGVjaG5vbG9neVNpbXVsYXRlZEZv
Y3VzKCkgeyByZXR1cm47IH0KK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsUGFn
ZVVwKCkgeyByZXR1cm4gZmFsc2U7IH0KK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Ny
b2xsUGFnZURvd24oKSB7IHJldHVybiBmYWxzZTsgfQorYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzY3JvbGxQYWdlTGVmdCgpIHsgcmV0dXJuIGZhbHNlOyB9Citib29sIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnNjcm9sbFBhZ2VSaWdodCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYK
ICAgICAKIC8vIFVuc3VwcG9ydGVkIG1ldGhvZHMgb24gdmFyaW91cyBwbGF0Zm9ybXMuIEFzIHRo
ZXkncmUgaW1wbGVtZW50ZWQgb24gb3RoZXIgcGxhdGZvcm1zIHRoaXMgbGlzdCBzaG91bGQgYmUg
bW9kaWZpZWQuCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAkocmV2aXNpb24gMTg2
OTA3KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3NSw2ICsyNzUsMTEgQEAKICAgICBQ
YXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGhlYWRlckVsZW1lbnRBdEluZGV4KHVu
c2lnbmVkIGluZGV4KTsKICAgICB2b2lkIGFzc2lzdGl2ZVRlY2hub2xvZ3lTaW11bGF0ZWRGb2N1
cygpOwogICAgIAorICAgIGJvb2wgc2Nyb2xsUGFnZVVwKCk7CisgICAgYm9vbCBzY3JvbGxQYWdl
RG93bigpOworICAgIGJvb2wgc2Nyb2xsUGFnZUxlZnQoKTsKKyAgICBib29sIHNjcm9sbFBhZ2VS
aWdodCgpOworICAgIAogcHJpdmF0ZToKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFBsYXRm
b3JtVUlFbGVtZW50KTsKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KGNvbnN0IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQmKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmlkbAkocmV2aXNpb24gMTg2OTA3KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMTcwLDYgKzE3MCwxMCBAQAogCiAgICAgdm9pZCBzY3JvbGxUb01h
a2VWaXNpYmxlKCk7CiAgICAgdm9pZCB0YWtlRm9jdXMoKTsKKyAgICBib29sZWFuIHNjcm9sbFBh
Z2VEb3duKCk7CisgICAgYm9vbGVhbiBzY3JvbGxQYWdlVXAoKTsKKyAgICBib29sZWFuIHNjcm9s
bFBhZ2VMZWZ0KCk7CisgICAgYm9vbGVhbiBzY3JvbGxQYWdlUmlnaHQoKTsKIAogICAgIC8vIFRl
eHQgbWFya2Vycy4KICAgICBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlIGxpbmVUZXh0TWFy
a2VyUmFuZ2VGb3JUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyIHRleHRNYXJrZXIp
OwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXJJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0JKHJl
dmlzaW9uIDE4NjkwNykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
aW9zL0FjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3
ICs0MSwxOCBAQAogCiBib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphZGROb3RpZmljYXRp
b25MaXN0ZW5lcihKU1ZhbHVlUmVmIGZ1bmN0aW9uQ2FsbGJhY2spCiB7Ci0gICAgcmV0dXJuIGZh
bHNlOworICAgIGlmICghZnVuY3Rpb25DYWxsYmFjaykKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIAorICAgIC8vIE1hYyBwcm9ncmFtbWVycyBzaG91bGQgbm90IGJlIGFkZGluZyBtb3JlIHRo
YW4gb25lIGdsb2JhbCBub3RpZmljYXRpb24gbGlzdGVuZXIuCisgICAgLy8gT3RoZXIgcGxhdGZv
cm1zIG1heSBiZSBkaWZmZXJlbnQuCisgICAgaWYgKG1fZ2xvYmFsTm90aWZpY2F0aW9uSGFuZGxl
cikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIG1fZ2xvYmFsTm90aWZpY2F0aW9uSGFuZGxl
ciA9IFtbQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIgYWxsb2NdIGluaXRdOworICAg
IFttX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXIuZ2V0KCkgc2V0Q2FsbGJhY2s6ZnVuY3Rpb25D
YWxsYmFja107CisgICAgW21fZ2xvYmFsTm90aWZpY2F0aW9uSGFuZGxlci5nZXQoKSBzdGFydE9i
c2VydmluZ107CisgICAgCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXI6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCkKSW5kZXg6IFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJ
T1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQkocmV2aXNpb24gMTg2OTA3KQorKysg
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudElPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSw3IEBACiAgICAgCiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFBsYXRmb3JtVUlF
bGVtZW50IGVsZW1lbnQpCiAgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKKyAgICAsIG1fbm90aWZp
Y2F0aW9uSGFuZGxlcigwKQogewogICAgIC8vIEZJWE1FOiBhcEB3ZWJraXQub3JnIHNheXMgT2Jq
QyBvYmplY3RzIG5lZWQgdG8gYmUgQ0ZSZXRhaW5lZC9DRlJlbGVhc2UgdG8gYmUgR0MtY29tcGxp
YW50IG9uIHRoZSBtYWMuCiAgICAgW21fZWxlbWVudCByZXRhaW5dOwpAQCAtMTE3LDYgKzExOCw3
IEBACiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KGNvbnN0
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQmIG90aGVyKQogICAgIDogSlNXcmFwcGFibGUoKQogICAg
ICwgbV9lbGVtZW50KG90aGVyLm1fZWxlbWVudCkKKyAgICAsIG1fbm90aWZpY2F0aW9uSGFuZGxl
cigwKQogewogICAgIFttX2VsZW1lbnQgcmV0YWluXTsKIH0KQEAgLTc1NSw3ICs3NTcsMjYgQEAK
IHsKICAgICBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlFbGVtZW50RGlkQmVjb21lRm9jdXNlZF07
CiB9CisgICAgCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9sbFBhZ2VVcCgpCit7
CisgICAgcmV0dXJuIFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eVNjcm9sbDpVSUFjY2Vzc2liaWxp
dHlTY3JvbGxEaXJlY3Rpb25VcF07Cit9CiAKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2Nyb2xsUGFnZURvd24oKQoreworICAgIHJldHVybiBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlT
Y3JvbGw6VUlBY2Nlc3NpYmlsaXR5U2Nyb2xsRGlyZWN0aW9uRG93bl07Cit9Citib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9sbFBhZ2VMZWZ0KCkKK3sKKyAgICByZXR1cm4gW21fZWxl
bWVudCBhY2Nlc3NpYmlsaXR5U2Nyb2xsOlVJQWNjZXNzaWJpbGl0eVNjcm9sbERpcmVjdGlvbkxl
ZnRdOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9sbFBhZ2VSaWdodCgp
Cit7CisgICAgcmV0dXJuIFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eVNjcm9sbDpVSUFjY2Vzc2li
aWxpdHlTY3JvbGxEaXJlY3Rpb25SaWdodF07Cit9CisKIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aW5jcmVhc2VUZXh0U2VsZWN0aW9uKCkKIHsKICAgICBbbV9lbGVtZW50IGFjY2Vzc2li
aWxpdHlNb2RpZnlTZWxlY3Rpb246V2ViQ29yZTo6Q2hhcmFjdGVyR3JhbnVsYXJpdHkgaW5jcmVh
c2U6WUVTXTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NzA0NSkKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE1LTA3LTIwICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHNjcm9sbGFibGUg
ZWxlbWVudHMgZG8gbm90IGFsbG93IDMtZmluZ2VyIHN3aXBlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE4OTMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW11bGF0b3IvYWNj
ZXNzaWJpbGl0eS9zY3JvbGwtaW4tb3ZlcmZsb3ctZGl2LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9hY2Nlc3NpYmlsaXR5L3Njcm9sbC1pbi1v
dmVyZmxvdy1kaXYuaHRtbDogQWRkZWQuCisKIDIwMTUtMDctMjAgIEFuZHJlYXMgS2xpbmcgIDxh
a2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIEltcHJvdmUgYmVoYXZpb3Igb2YgbWVkaWEgZWxl
bWVudHMgaW4gcGFnZSBjYWNoZS4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11
bGF0b3IvYWNjZXNzaWJpbGl0eS9zY3JvbGwtaW4tb3ZlcmZsb3ctZGl2LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL2FjY2Vzc2li
aWxpdHkvc2Nyb2xsLWluLW92ZXJmbG93LWRpdi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL2FjY2Vzc2liaWxpdHkvc2Nyb2xs
LWluLW92ZXJmbG93LWRpdi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0
NyBAQAorVGhpcyBtYWtlcyBzdXJlIHRoYXQgd2UgY2FuIHBlcmZvcm0gYWNjZXNzaWJpbGl0eSBz
Y3JvbGwgYWN0aW9ucyBpbnNpZGUgb3ZlcmZsb3cgZGl2cworCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworQVhTY3JvbGxCeVBhZ2UgcmVjZWl2ZWQ6IGRhdGE6IEFYU2Nyb2xsIHswLCAy
MjR9IHsyODQ1LCA5MzZ9IHt7MCwgMjI0fSwgezQyNCwgMjI0fX0KK3Njcm9sbCBkb3duIDAgOiBz
dWNjZXNzIHRydWUKK0FYU2Nyb2xsQnlQYWdlIHJlY2VpdmVkOiBkYXRhOiBBWFNjcm9sbCB7MCwg
NDQ4fSB7Mjg0NSwgOTM2fSB7ezAsIDQ0OH0sIHs0MjQsIDIyNH19CitzY3JvbGwgZG93biAxIDog
c3VjY2VzcyB0cnVlCitBWFNjcm9sbEJ5UGFnZSByZWNlaXZlZDogZGF0YTogQVhTY3JvbGwgezAs
IDY3Mn0gezI4NDUsIDkzNn0ge3swLCA2NzJ9LCB7NDI0LCAyMjR9fQorc2Nyb2xsIGRvd24gMiA6
IHN1Y2Nlc3MgdHJ1ZQorQVhTY3JvbGxCeVBhZ2UgcmVjZWl2ZWQ6IGRhdGE6IEFYU2Nyb2xsIHsw
LCA3MTJ9IHsyODQ1LCA5MzZ9IHt7MCwgNzEyfSwgezQyNCwgMjI0fX0KK3Njcm9sbCBkb3duIDMg
OiBzdWNjZXNzIHRydWUKK3Njcm9sbCBkb3duIDQgOiBzdWNjZXNzIGZhbHNlCitBWFNjcm9sbEJ5
UGFnZSByZWNlaXZlZDogZGF0YTogQVhTY3JvbGwgezAsIDQ4OH0gezI4NDUsIDkzNn0ge3swLCA0
ODh9LCB7NDI0LCAyMjR9fQorc2Nyb2xsIHVwIDAgOiBzdWNjZXNzIHRydWUKK0FYU2Nyb2xsQnlQ
YWdlIHJlY2VpdmVkOiBkYXRhOiBBWFNjcm9sbCB7MCwgMjY0fSB7Mjg0NSwgOTM2fSB7ezAsIDI2
NH0sIHs0MjQsIDIyNH19CitzY3JvbGwgdXAgMSA6IHN1Y2Nlc3MgdHJ1ZQorQVhTY3JvbGxCeVBh
Z2UgcmVjZWl2ZWQ6IGRhdGE6IEFYU2Nyb2xsIHswLCA0MH0gezI4NDUsIDkzNn0ge3swLCA0MH0s
IHs0MjQsIDIyNH19CitzY3JvbGwgdXAgMiA6IHN1Y2Nlc3MgdHJ1ZQorQVhTY3JvbGxCeVBhZ2Ug
cmVjZWl2ZWQ6IGRhdGE6IEFYU2Nyb2xsIHswLCAwfSB7Mjg0NSwgOTM2fSB7ezAsIDB9LCB7NDI0
LCAyMjR9fQorc2Nyb2xsIHVwIDMgOiBzdWNjZXNzIHRydWUKK3Njcm9sbCB1cCA0IDogc3VjY2Vz
cyBmYWxzZQorQVhTY3JvbGxCeVBhZ2UgcmVjZWl2ZWQ6IGRhdGE6IEFYU2Nyb2xsIHs0MjQsIDB9
IHsyODQ1LCA5MzZ9IHt7NDI0LCAwfSwgezQyNCwgMjI0fX0KK3Njcm9sbCBsZWZ0IDAgOiBzdWNj
ZXNzIHRydWUKK0FYU2Nyb2xsQnlQYWdlIHJlY2VpdmVkOiBkYXRhOiBBWFNjcm9sbCB7ODQ4LCAw
fSB7Mjg0NSwgOTM2fSB7ezg0OCwgMH0sIHs0MjQsIDIyNH19CitzY3JvbGwgbGVmdCAxIDogc3Vj
Y2VzcyB0cnVlCitBWFNjcm9sbEJ5UGFnZSByZWNlaXZlZDogZGF0YTogQVhTY3JvbGwgezEyNzIs
IDB9IHsyODQ1LCA5MzZ9IHt7MTI3MiwgMH0sIHs0MjQsIDIyNH19CitzY3JvbGwgbGVmdCAyIDog
c3VjY2VzcyB0cnVlCitBWFNjcm9sbEJ5UGFnZSByZWNlaXZlZDogZGF0YTogQVhTY3JvbGwgezE2
OTYsIDB9IHsyODQ1LCA5MzZ9IHt7MTY5NiwgMH0sIHs0MjQsIDIyNH19CitzY3JvbGwgbGVmdCAz
IDogc3VjY2VzcyB0cnVlCitBWFNjcm9sbEJ5UGFnZSByZWNlaXZlZDogZGF0YTogQVhTY3JvbGwg
ezIxMjAsIDB9IHsyODQ1LCA5MzZ9IHt7MjEyMCwgMH0sIHs0MjQsIDIyNH19CitzY3JvbGwgbGVm
dCA0IDogc3VjY2VzcyB0cnVlCitBWFNjcm9sbEJ5UGFnZSByZWNlaXZlZDogZGF0YTogQVhTY3Jv
bGwgezE2OTYsIDB9IHsyODQ1LCA5MzZ9IHt7MTY5NiwgMH0sIHs0MjQsIDIyNH19CitzY3JvbGwg
cmlnaHQgMCA6IHN1Y2Nlc3MgdHJ1ZQorQVhTY3JvbGxCeVBhZ2UgcmVjZWl2ZWQ6IGRhdGE6IEFY
U2Nyb2xsIHsxMjcyLCAwfSB7Mjg0NSwgOTM2fSB7ezEyNzIsIDB9LCB7NDI0LCAyMjR9fQorc2Ny
b2xsIHJpZ2h0IDEgOiBzdWNjZXNzIHRydWUKK0FYU2Nyb2xsQnlQYWdlIHJlY2VpdmVkOiBkYXRh
OiBBWFNjcm9sbCB7ODQ4LCAwfSB7Mjg0NSwgOTM2fSB7ezg0OCwgMH0sIHs0MjQsIDIyNH19Citz
Y3JvbGwgcmlnaHQgMiA6IHN1Y2Nlc3MgdHJ1ZQorQVhTY3JvbGxCeVBhZ2UgcmVjZWl2ZWQ6IGRh
dGE6IEFYU2Nyb2xsIHs0MjQsIDB9IHsyODQ1LCA5MzZ9IHt7NDI0LCAwfSwgezQyNCwgMjI0fX0K
K3Njcm9sbCByaWdodCAzIDogc3VjY2VzcyB0cnVlCitBWFNjcm9sbEJ5UGFnZSByZWNlaXZlZDog
ZGF0YTogQVhTY3JvbGwgezAsIDB9IHsyODQ1LCA5MzZ9IHt7MCwgMH0sIHs0MjQsIDIyNH19Citz
Y3JvbGwgcmlnaHQgNCA6IHN1Y2Nlc3MgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1z
aW11bGF0b3IvYWNjZXNzaWJpbGl0eS9zY3JvbGwtaW4tb3ZlcmZsb3ctZGl2Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9hY2Nlc3NpYmlsaXR5
L3Njcm9sbC1pbi1vdmVyZmxvdy1kaXYuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvYWNjZXNzaWJpbGl0eS9zY3JvbGwtaW4tb3ZlcmZsb3ct
ZGl2Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+
CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgaGVpZ2h0OiAyMDAwcHg7CisgICAgICAgIH0K
KyAgICAgICAgLmNvbnRhaW5lciB7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
ICAgICAgICAgICB0b3A6IDIwMHB4OworICAgICAgICAgICAgd2lkdGg6IDUwMHB4OworICAgICAg
ICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNr
OworICAgICAgICAgICAgcGFkZGluZzogMTBweDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAg
ICAgLm92ZXJmbG93IHsKKworICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAgICAg
ICAgICAgIHdpZHRoOiA0MDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAg
ICAgICBwYWRkaW5nOiAxMHB4OworICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgYmx1ZTsK
KyAgICAgICAgICAgIG92ZXJmbG93OiBzY3JvbGw7CisgICAgICAgICAgICAtd2Via2l0LW92ZXJm
bG93LXNjcm9sbGluZzogdG91Y2g7CisgICAgICAgIH0KKzwvc3R5bGU+CisKKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgaWQ9ImJvZHkiPgorCisgICA8ZGl2IGlkPSJjb250YWluZXIiIGNsYXNzPSJjb250YWluZXIi
IHJvbGU9Imdyb3VwIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmZsb3ciPgorICAgICAgICAg
ICAgPHAgaWQ9InRleHQxIj5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIg
YWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFi
b3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlz
IG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXgg
ZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRl
cml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxh
IHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50
LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBs
YWJvcnVtLgorICAgICAgICAgICAgPC9wPjxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBj
b25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRp
ZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2
ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQg
YWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGlu
IHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBm
dWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBu
b24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFu
aW0gaWQgZXN0IGxhYm9ydW0uCisgICAgICAgICAgICA8L3A+PHA+TG9yZW0gaXBzdW0gZG9sb3Ig
c2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRl
bXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmlt
IGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9y
aXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1
cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0g
ZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQg
Y3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVu
dCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4KKyAgICAgICAgICAgIDwvcD48cD5Mb3JlbSBp
cHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRv
IGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlx
dWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVs
bGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1
aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBl
c3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2lu
dCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZp
Y2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLgorICAgICAgICAgICAgPC9w
PjxwIGlkPSJ0ZXh0MiI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFk
aXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9y
ZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBu
b3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVh
IGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJp
dCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBw
YXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwg
c3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFi
b3J1bS4KKyAgICAgICAgICAgIDwvcD48cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29u
c2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1
bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVu
aWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFs
aXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiBy
ZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVn
aWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9u
IHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmlt
IGlkIGVzdCBsYWJvcnVtLgorICAgICAgICAgICAgPC9wPjxwPkxvcmVtIGlwc3VtIGRvbG9yIHNp
dCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1w
b3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBh
ZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlz
IG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJl
IGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRv
bG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1
cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQg
bW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uCisgICAgICAgICAgICA8L3A+PHA+TG9yZW0gaXBz
dW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBl
aXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVh
LiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxh
bWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlz
IGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNz
ZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQg
b2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNp
YSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4KKyAgICAgICAgICAgIDwvcD48
cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxp
dCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBt
YWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNp
dGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25z
ZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0
ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNl
cHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBh
IHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLgorICAgICAg
ICAgICAgPC9wPjxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlw
aXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUg
ZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9z
dHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBj
b21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQg
aW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFy
aWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1
bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9y
dW0uCisgICAgICAgICAgICA8L3A+PHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNl
Y3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50
IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlh
bSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlx
dWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVw
cmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lh
dCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBw
cm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBp
ZCBlc3QgbGFib3J1bS4KKyAgICAgICAgICAgIDwvcD48cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQg
YW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9y
IGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQg
bWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBu
aXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBk
b2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xv
cmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBp
ZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1v
bGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLgorICAgICAgICAgICAgPC9wPjxwPkxvcmVtIGlwc3Vt
IGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1
c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4g
VXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1j
byBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBh
dXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2Ug
Y2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9j
Y2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEg
ZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uCisgICAgICAgICAgICA8L3A+PHA+
TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQs
IHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFn
bmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRh
dGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2Vx
dWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUg
dmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0
ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBx
dWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4KKyAgICAgICAg
ICAgIDwvcD48cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlz
aWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0
IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3Ry
dWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29t
bW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGlu
IHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlh
dHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50
IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVt
LgorICAgICAgICAgICAgPC9wPjxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0
ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1
dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0s
IHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVp
cCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJl
aGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQg
bnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJv
aWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQg
ZXN0IGxhYm9ydW0uCisgICAgICAgICAgICA8L3A+PHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFt
ZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBp
bmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1p
bmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlz
aSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9s
b3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3Jl
IGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRh
dGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xs
aXQgYW5pbSBpZCBlc3QgbGFib3J1bS4KKyAgICAgICAgICAgIDwvcD48cD5Mb3JlbSBpcHN1bSBk
b2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNt
b2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0
IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28g
bGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0
ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNp
bGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2Nh
ZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRl
c2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLgorICAgICAgICAgICAgPC9wPjxwPkxv
cmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBz
ZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25h
IGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRp
b24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVh
dC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZl
bGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1
ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVp
IG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uCisgICAgICAgICAg
ICA8L3A+PHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2lj
aW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBk
b2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVk
IGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1v
ZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2
b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1
ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBp
biBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4K
KyAgICAgICAgICAgIDwvcD48cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0
dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQg
bGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBx
dWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAg
ZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhl
bmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51
bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lk
ZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVz
dCBsYWJvcnVtLgorICAgICAgICAgICAgPC9wPjxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0
LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5j
aWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5p
bSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kg
dXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9y
IGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBl
dSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRh
dCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0
IGFuaW0gaWQgZXN0IGxhYm9ydW0uCisgICAgICAgICAgICA8L3A+PHA+TG9yZW0gaXBzdW0gZG9s
b3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9k
IHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBl
bmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxh
Ym9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUg
aXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxs
dW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVj
YXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNl
cnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4KKyAgICAgICAgICAgIDwvcD48cD5Mb3Jl
bSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2Vk
IGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBh
bGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9u
IHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQu
IER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxp
dCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIg
c2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBv
ZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLgorICAgICAgICAgICAg
PC9wPjxwIGlkPSJ0ZXh0MyI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVy
IGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxh
Ym9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVp
cyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4
IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5k
ZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxs
YSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVu
dCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3Qg
bGFib3J1bS4KKyAgICAgICAgPC9wPjwvZGl2PgorICAgIDwvZGl2PgorCis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorCisgICAg
ZGVzY3JpcHRpb24oIlRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGNhbiBwZXJmb3JtIGFjY2Vzc2li
aWxpdHkgc2Nyb2xsIGFjdGlvbnMgaW5zaWRlIG92ZXJmbG93IGRpdnMiKTsKKworICAgIHZhciBj
b3VudCA9IDA7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIGZ1bmN0aW9u
IGZvY3VzQ2FsbGJhY2soZWxlbWVudCwgbm90aWZpY2F0aW9uLCBpbmZvKSB7CisKKyAgICAgICAg
aWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhTY3JvbGxCeVBhZ2UiKSB7CisgICAgICAgICAgICBkZWJ1
Zyhub3RpZmljYXRpb24gKyAiIHJlY2VpdmVkOiBkYXRhOiAiICsgaW5mby5zdGF0dXMpOworICAg
ICAgICB9CisKKyAgICAgICAgLy8gV2Ugc2hvdWxkIGhhdmUgMTggc3VjY2Vzc2Z1bCBzY3JvbGxz
ICgyIHdpbGwgZmFpbCBiZWNhdXNlIHdlJ2xsIGJlIGF0IHRoZSBib3JkZXIpLgorICAgICAgICBj
b3VudCsrOworICAgICAgICBpZiAoY291bnQgPT0gMTgpIHsKKyAgICAgICAgICAgIGZpbmlzaCgp
OworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcikgeworCisgICAgICAgIHZhciBjb250ZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
YWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJ0ZXh0MSIpOworICAgICAgICBhY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihmb2N1c0NhbGxiYWNrKTsKKworICAgICAg
ICBmb3IgKHZhciBrID0gMDsgayA8IDU7IGsrKykgeworICAgICAgICAgICB2YXIgc3VjY2VzcyA9
IGNvbnRlbnQuc2Nyb2xsUGFnZURvd24oKTsKKyAgICAgICAgICAgZGVidWcoInNjcm9sbCBkb3du
ICIgKyBrICsgIiA6IHN1Y2Nlc3MgIiArIHN1Y2Nlc3MpOworICAgICAgICB9CisKKyAgICAgICAg
Zm9yICh2YXIgayA9IDA7IGsgPCA1OyBrKyspIHsKKyAgICAgICAgICAgdmFyIHN1Y2Nlc3MgPSBj
b250ZW50LnNjcm9sbFBhZ2VVcCgpOworICAgICAgICAgICBkZWJ1Zygic2Nyb2xsIHVwICIgKyBr
ICsgIiA6IHN1Y2Nlc3MgIiArIHN1Y2Nlc3MpOworICAgICAgICB9CisKKyAgICAgICAgZm9yICh2
YXIgayA9IDA7IGsgPCA1OyBrKyspIHsKKyAgICAgICAgICAgdmFyIHN1Y2Nlc3MgPSBjb250ZW50
LnNjcm9sbFBhZ2VMZWZ0KCk7CisgICAgICAgICAgIGRlYnVnKCJzY3JvbGwgbGVmdCAiICsgayAr
ICIgOiBzdWNjZXNzICIgKyBzdWNjZXNzKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAodmFy
IGsgPSAwOyBrIDwgNTsgaysrKSB7CisgICAgICAgICAgIHZhciBzdWNjZXNzID0gY29udGVudC5z
Y3JvbGxQYWdlUmlnaHQoKTsKKyAgICAgICAgICAgZGVidWcoInNjcm9sbCByaWdodCAiICsgayAr
ICIgOiBzdWNjZXNzICIgKyBzdWNjZXNzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0
aW9uIGZpbmlzaCgpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5l
ciIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgfQorCisgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257204</attachid>
            <date>2015-07-21 14:39:52 -0700</date>
            <delta_ts>2015-07-24 02:37:36 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>46620</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NzA0NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDE1LTA3LTIwICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHNjcm9sbGFibGUg
ZWxlbWVudHMgZG8gbm90IGFsbG93IDMtZmluZ2VyIHN3aXBlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE4OTMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUbyBhbGxvdyBpT1MgQWNjZXNzaWJpbGl0eSB0
byBwZXJmb3JtIGJ5LXBhZ2Ugc2Nyb2xsaW5nIGluIG92ZXJmbG93IGFyZWFzLCB3ZSBtb3ZlCisg
ICAgICAgIHRoYXQgc2Nyb2xsaW5nIGNvZGUgaW50byBBY2Nlc3NpYmlsaXR5T2JqZWN0IGFuZCB0
aGVuIGl0ZXJhdGUgYWxsIHRoZSBwb3NzaWJsZSBTY3JvbGxhYmxlQXJlYXMsCisgICAgICAgIHJh
dGhlciB0aGFuIGp1c3QgZmluZGluZyB0aGUgcGFyZW50cyB0aGF0IGFyZSBTY3JvbGxWaWV3cy4g
CisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9hY2Nlc3NpYmlsaXR5L3Nj
cm9sbC1pbi1vdmVyZmxvdy1kaXYuaHRtbAorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OnNjcm9sbFRvR2xvYmFsUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdDo6c2Nyb2xsQXJlYUFuZEFuY2VzdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnNjcm9sbFZpc2libGVDb250ZW50UmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzY3JvbGxDb250ZW50c1NpemUpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c2Nyb2xsQnlQYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6Omxhc3RLbm93bklzSWdub3JlZFZhbHVlKToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmdldFNjcm9sbGFibGVBcmVhSWZTY3JvbGxhYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcm9sbFRvKToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklP
Uy5tbToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJp
bGl0eVNjcm9sbDpdKToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIg
Y29udmVydFBvaW50VG9TY3JlZW5TcGFjZTpdKToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXIgX2FjY2Vzc2liaWxpdHlTY3JvbGxQb3NpdGlvbl0pOgorICAgICAgICAo
LVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBfYWNjZXNzaWJpbGl0eVNjcm9sbFNpemVd
KToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgX2FjY2Vzc2liaWxp
dHlTY3JvbGxWaXNpYmxlUmVjdF0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlciBhY2Nlc3NpYmlsaXR5RWxlbWVudERpZEJlY29tZUZvY3VzZWRdKToKKwogMjAxNS0w
Ny0yMCAgSmVyZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CiAKICAgICAgICAgQWRvcHQg
QVZQbGF5ZXJMYXllclZpZXcKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAkocmV2aXNpb24gMTg2ODY3KQorKysgU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjUyOSw3ICsyNTI5LDEwMCBAQAogICAgICAgICB9CiAgICAgfQogfQorICAg
IAordm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzY3JvbGxBcmVhQW5kQW5jZXN0b3Ioc3RkOjpw
YWlyPFNjcm9sbGFibGVBcmVhKiwgQWNjZXNzaWJpbGl0eU9iamVjdCo+JiBzY3JvbGxlcnMpIGNv
bnN0Cit7CisgICAgLy8gU2VhcmNoIHVwIHRoZSBwYXJlbnQgY2hhaW4gdW50aWwgd2UgZmluZCB0
aGUgZmlyc3Qgb25lIHRoYXQncyBzY3JvbGxhYmxlLgorICAgIHNjcm9sbGVycy5zZWNvbmQgPSBw
YXJlbnRPYmplY3QoKTsKKyAgICBzY3JvbGxlcnMuZmlyc3QgPSBudWxscHRyOworICAgIGZvciAo
OyBzY3JvbGxlcnMuc2Vjb25kICYmICEoc2Nyb2xsZXJzLmZpcnN0ID0gc2Nyb2xsZXJzLnNlY29u
ZC0+Z2V0U2Nyb2xsYWJsZUFyZWFJZlNjcm9sbGFibGUoKSk7IHNjcm9sbGVycy5zZWNvbmQgPSBz
Y3JvbGxlcnMuc2Vjb25kLT5wYXJlbnRPYmplY3QoKSkgeyB9Cit9CisgICAgCitJbnRQb2ludCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpzY3JvbGxQb3NpdGlvbigpIGNvbnN0Cit7CisgICAgc3RkOjpw
YWlyPFNjcm9sbGFibGVBcmVhKiwgQWNjZXNzaWJpbGl0eU9iamVjdCo+IHNjcm9sbGVyczsKKyAg
ICBzY3JvbGxBcmVhQW5kQW5jZXN0b3Ioc2Nyb2xsZXJzKTsKKyAgICBpZiAoIXNjcm9sbGVycy5m
aXJzdCkKKyAgICAgICAgcmV0dXJuIEludFBvaW50KCk7CisgICAgCisgICAgcmV0dXJuIHNjcm9s
bGVycy5maXJzdC0+c2Nyb2xsUG9zaXRpb24oKTsKK30KIAorSW50UmVjdCBBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpzY3JvbGxWaXNpYmxlQ29udGVudFJlY3QoKSBjb25zdAoreworICAgIHN0ZDo6cGFp
cjxTY3JvbGxhYmxlQXJlYSosIEFjY2Vzc2liaWxpdHlPYmplY3QqPiBzY3JvbGxlcnM7CisgICAg
c2Nyb2xsQXJlYUFuZEFuY2VzdG9yKHNjcm9sbGVycyk7CisgICAgaWYgKCFzY3JvbGxlcnMuZmly
c3QpCisgICAgICAgIHJldHVybiBJbnRSZWN0KCk7CisgICAgCisgICAgcmV0dXJuIHNjcm9sbGVy
cy5maXJzdC0+dmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpMZWdhY3lJT1NEb2N1
bWVudFZpc2libGVSZWN0KTsKK30KKyAgICAKK0ludFNpemUgQWNjZXNzaWJpbGl0eU9iamVjdDo6
c2Nyb2xsQ29udGVudHNTaXplKCkgY29uc3QKK3sKKyAgICBzdGQ6OnBhaXI8U2Nyb2xsYWJsZUFy
ZWEqLCBBY2Nlc3NpYmlsaXR5T2JqZWN0Kj4gc2Nyb2xsZXJzOworICAgIHNjcm9sbEFyZWFBbmRB
bmNlc3RvcihzY3JvbGxlcnMpOworICAgIGlmICghc2Nyb2xsZXJzLmZpcnN0KQorICAgICAgICBy
ZXR1cm4gSW50U2l6ZSgpOworCisgICAgcmV0dXJuIHNjcm9sbGVycy5maXJzdC0+Y29udGVudHNT
aXplKCk7Cit9CisgICAgCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcm9sbEJ5UGFnZShT
Y3JvbGxCeVBhZ2VEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAoreworICAgIHN0ZDo6cGFpcjxT
Y3JvbGxhYmxlQXJlYSosIEFjY2Vzc2liaWxpdHlPYmplY3QqPiBzY3JvbGxlcnM7CisgICAgc2Ny
b2xsQXJlYUFuZEFuY2VzdG9yKHNjcm9sbGVycyk7CisgICAgU2Nyb2xsYWJsZUFyZWEqIHNjcm9s
bGFibGVBcmVhID0gc2Nyb2xsZXJzLmZpcnN0OworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHNj
cm9sbFBhcmVudCA9IHNjcm9sbGVycy5zZWNvbmQ7CisgICAgCisgICAgaWYgKCFzY3JvbGxhYmxl
QXJlYSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIEludFBvaW50IHNjcm9sbFBv
c2l0aW9uID0gc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbFBvc2l0aW9uKCk7CisgICAgSW50UG9pbnQg
bmV3U2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsKKyAgICBJbnRTaXplIHNjcm9sbFNp
emUgPSBzY3JvbGxhYmxlQXJlYS0+Y29udGVudHNTaXplKCk7CisgICAgSW50UmVjdCBzY3JvbGxW
aXNpYmxlUmVjdCA9IHNjcm9sbGFibGVBcmVhLT52aXNpYmxlQ29udGVudFJlY3QoU2Nyb2xsYWJs
ZUFyZWE6OkxlZ2FjeUlPU0RvY3VtZW50VmlzaWJsZVJlY3QpOworICAgIHN3aXRjaCAoZGlyZWN0
aW9uKSB7CisgICAgY2FzZSBSaWdodDogeworICAgICAgICBpbnQgc2Nyb2xsQW1vdW50ID0gc2Ny
b2xsVmlzaWJsZVJlY3Quc2l6ZSgpLndpZHRoKCk7CisgICAgICAgIGludCBuZXdYID0gc2Nyb2xs
UG9zaXRpb24ueCgpIC0gc2Nyb2xsQW1vdW50OworICAgICAgICBuZXdTY3JvbGxQb3NpdGlvbi5z
ZXRYKHN0ZDo6bWF4KG5ld1gsIDApKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2Ug
TGVmdDogeworICAgICAgICBpbnQgc2Nyb2xsQW1vdW50ID0gc2Nyb2xsVmlzaWJsZVJlY3Quc2l6
ZSgpLndpZHRoKCk7CisgICAgICAgIGludCBuZXdYID0gc2Nyb2xsQW1vdW50ICsgc2Nyb2xsUG9z
aXRpb24ueCgpOworICAgICAgICBpbnQgbWF4WCA9IHNjcm9sbFNpemUud2lkdGgoKSAtIHNjcm9s
bEFtb3VudDsKKyAgICAgICAgbmV3U2Nyb2xsUG9zaXRpb24uc2V0WChzdGQ6Om1pbihuZXdYLCBt
YXhYKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFVwOiB7CisgICAgICAgIGlu
dCBzY3JvbGxBbW91bnQgPSBzY3JvbGxWaXNpYmxlUmVjdC5zaXplKCkuaGVpZ2h0KCk7CisgICAg
ICAgIGludCBuZXdZID0gc2Nyb2xsUG9zaXRpb24ueSgpIC0gc2Nyb2xsQW1vdW50OworICAgICAg
ICBuZXdTY3JvbGxQb3NpdGlvbi5zZXRZKHN0ZDo6bWF4KG5ld1ksIDApKTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIGNhc2UgRG93bjogeworICAgICAgICBpbnQgc2Nyb2xsQW1vdW50ID0g
c2Nyb2xsVmlzaWJsZVJlY3Quc2l6ZSgpLmhlaWdodCgpOworICAgICAgICBpbnQgbmV3WSA9IHNj
cm9sbEFtb3VudCArIHNjcm9sbFBvc2l0aW9uLnkoKTsKKyAgICAgICAgaW50IG1heFkgPSBzY3Jv
bGxTaXplLmhlaWdodCgpIC0gc2Nyb2xsQW1vdW50OworICAgICAgICBuZXdTY3JvbGxQb3NpdGlv
bi5zZXRZKHN0ZDo6bWluKG5ld1ksIG1heFkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg
IGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICAKKyAgICBpZiAobmV3U2Nyb2xs
UG9zaXRpb24gIT0gc2Nyb2xsUG9zaXRpb24pIHsKKyAgICAgICAgc2Nyb2xsUGFyZW50LT5zY3Jv
bGxUbyhuZXdTY3JvbGxQb3NpdGlvbik7CisgICAgICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgCisgICAgcmV0dXJuIGZhbHNlOworfQorCisKIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVj
dDo6bGFzdEtub3duSXNJZ25vcmVkVmFsdWUoKQogewogICAgIGlmIChtX2xhc3RLbm93bklzSWdu
b3JlZFZhbHVlID09IERlZmF1bHRCZWhhdmlvcikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCShyZXZpc2lvbiAxODY4Njcp
CisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAko
d29ya2luZyBjb3B5KQpAQCAtODk1LDcgKzg5NSwxMyBAQAogICAgIHZpcnR1YWwgdm9pZCBzY3Jv
bGxUb01ha2VWaXNpYmxlV2l0aFN1YkZvY3VzKGNvbnN0IEludFJlY3QmKSBjb25zdDsKICAgICAv
LyBTY3JvbGwgdGhpcyBvYmplY3QgdG8gYSBnaXZlbiBwb2ludCBpbiBnbG9iYWwgY29vcmRpbmF0
ZXMgb2YgdGhlIHRvcC1sZXZlbCB3aW5kb3cuCiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbFRvR2xv
YmFsUG9pbnQoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKLQorICAgIAorICAgIGVudW0gU2Nyb2xs
QnlQYWdlRGlyZWN0aW9uIHsgVXAsIERvd24sIExlZnQsIFJpZ2h0IH07CisgICAgYm9vbCBzY3Jv
bGxCeVBhZ2UoU2Nyb2xsQnlQYWdlRGlyZWN0aW9uKSBjb25zdDsKKyAgICBJbnRQb2ludCBzY3Jv
bGxQb3NpdGlvbigpIGNvbnN0OworICAgIEludFNpemUgc2Nyb2xsQ29udGVudHNTaXplKCkgY29u
c3Q7ICAgIAorICAgIEludFJlY3Qgc2Nyb2xsVmlzaWJsZUNvbnRlbnRSZWN0KCkgY29uc3Q7Cisg
ICAgCiAgICAgYm9vbCBsYXN0S25vd25Jc0lnbm9yZWRWYWx1ZSgpOwogICAgIHZvaWQgc2V0TGFz
dEtub3duSXNJZ25vcmVkVmFsdWUoYm9vbCk7CiAKQEAgLTEwMTYsNyArMTAyMiw4IEBACiAgICAg
Ly8gSWYgdGhpcyBvYmplY3QgaXRzZWxmIHNjcm9sbHMsIHJldHVybiBpdHMgU2Nyb2xsYWJsZUFy
ZWEuCiAgICAgdmlydHVhbCBTY3JvbGxhYmxlQXJlYSogZ2V0U2Nyb2xsYWJsZUFyZWFJZlNjcm9s
bGFibGUoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCB2b2lkIHNjcm9s
bFRvKGNvbnN0IEludFBvaW50JikgY29uc3QgeyB9Ci0KKyAgICB2b2lkIHNjcm9sbEFyZWFBbmRB
bmNlc3RvcihzdGQ6OnBhaXI8U2Nyb2xsYWJsZUFyZWEqLCBBY2Nlc3NpYmlsaXR5T2JqZWN0Kj4m
KSBjb25zdDsKKyAgICAKICAgICBzdGF0aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlPYmplY3RTZWFy
Y2hNYXRjaEF0SW5kZXgoQWNjZXNzaWJpbGl0eU9iamVjdCosIEFjY2Vzc2liaWxpdHlTZWFyY2hD
cml0ZXJpYSosIHNpemVfdCk7CiAgICAgc3RhdGljIGJvb2wgaXNBY2Nlc3NpYmlsaXR5T2JqZWN0
U2VhcmNoTWF0Y2goQWNjZXNzaWJpbGl0eU9iamVjdCosIEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0
ZXJpYSopOwogICAgIHN0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eVRleHRTZWFyY2hNYXRjaChB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhKik7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlcklPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQkocmV2aXNpb24gMTg2ODY3
KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTExNDksNTQgKzExNDksMzYgQEAK
ICAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQogICAgICAgICByZXR1
cm4gTk87CiAgICAgCi0gICAgU2Nyb2xsVmlldyogc2Nyb2xsVmlldyA9IG1fb2JqZWN0LT5zY3Jv
bGxWaWV3QW5jZXN0b3IoKTsKLSAgICBpZiAoIXNjcm9sbFZpZXcpCi0gICAgICAgIHJldHVybiBO
TzsKLSAgICAKLSAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFZpZXctPnNjcm9s
bFBvc2l0aW9uKCk7Ci0gICAgSW50UG9pbnQgbmV3U2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3Np
dGlvbjsKLSAgICBJbnRTaXplIHNjcm9sbFNpemUgPSBzY3JvbGxWaWV3LT5jb250ZW50c1NpemUo
KTsKLSAgICBJbnRSZWN0IHNjcm9sbFZpc2libGVSZWN0ID0gc2Nyb2xsVmlldy0+dmlzaWJsZUNv
bnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpMZWdhY3lJT1NEb2N1bWVudFZpc2libGVSZWN0KTsK
KyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpTY3JvbGxCeVBhZ2VEaXJlY3Rpb24gc2Nyb2xsRGly
ZWN0aW9uOwogICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7Ci0gICAgY2FzZSBVSUFjY2Vzc2liaWxp
dHlTY3JvbGxEaXJlY3Rpb25SaWdodDogewotICAgICAgICBpbnQgc2Nyb2xsQW1vdW50ID0gc2Ny
b2xsVmlzaWJsZVJlY3Quc2l6ZSgpLndpZHRoKCk7Ci0gICAgICAgIGludCBuZXdYID0gc2Nyb2xs
UG9zaXRpb24ueCgpIC0gc2Nyb2xsQW1vdW50OwotICAgICAgICBuZXdTY3JvbGxQb3NpdGlvbi5z
ZXRYKHN0ZDo6bWF4KG5ld1gsIDApKTsKKyAgICBjYXNlIFVJQWNjZXNzaWJpbGl0eVNjcm9sbERp
cmVjdGlvblJpZ2h0OgorICAgICAgICBzY3JvbGxEaXJlY3Rpb24gPSBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpTY3JvbGxCeVBhZ2VEaXJlY3Rpb246OlJpZ2h0OwogICAgICAgICBicmVhazsKLSAgICB9
Ci0gICAgY2FzZSBVSUFjY2Vzc2liaWxpdHlTY3JvbGxEaXJlY3Rpb25MZWZ0OiB7Ci0gICAgICAg
IGludCBzY3JvbGxBbW91bnQgPSBzY3JvbGxWaXNpYmxlUmVjdC5zaXplKCkud2lkdGgoKTsKLSAg
ICAgICAgaW50IG5ld1ggPSBzY3JvbGxBbW91bnQgKyBzY3JvbGxQb3NpdGlvbi54KCk7Ci0gICAg
ICAgIGludCBtYXhYID0gc2Nyb2xsU2l6ZS53aWR0aCgpIC0gc2Nyb2xsQW1vdW50OwotICAgICAg
ICBuZXdTY3JvbGxQb3NpdGlvbi5zZXRYKHN0ZDo6bWluKG5ld1gsIG1heFgpKTsKKyAgICBjYXNl
IFVJQWNjZXNzaWJpbGl0eVNjcm9sbERpcmVjdGlvbkxlZnQ6CisgICAgICAgIHNjcm9sbERpcmVj
dGlvbiA9IEFjY2Vzc2liaWxpdHlPYmplY3Q6OlNjcm9sbEJ5UGFnZURpcmVjdGlvbjo6TGVmdDsK
ICAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgVUlBY2Nlc3NpYmlsaXR5U2Nyb2xsRGly
ZWN0aW9uVXA6IHsKLSAgICAgICAgaW50IHNjcm9sbEFtb3VudCA9IHNjcm9sbFZpc2libGVSZWN0
LnNpemUoKS5oZWlnaHQoKTsKLSAgICAgICAgaW50IG5ld1kgPSBzY3JvbGxQb3NpdGlvbi55KCkg
LSBzY3JvbGxBbW91bnQ7Ci0gICAgICAgIG5ld1Njcm9sbFBvc2l0aW9uLnNldFkoc3RkOjptYXgo
bmV3WSwgMCkpOworICAgIGNhc2UgVUlBY2Nlc3NpYmlsaXR5U2Nyb2xsRGlyZWN0aW9uVXA6Cisg
ICAgICAgIHNjcm9sbERpcmVjdGlvbiA9IEFjY2Vzc2liaWxpdHlPYmplY3Q6OlNjcm9sbEJ5UGFn
ZURpcmVjdGlvbjo6VXA7CiAgICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIFVJQWNjZXNz
aWJpbGl0eVNjcm9sbERpcmVjdGlvbkRvd246IHsKLSAgICAgICAgaW50IHNjcm9sbEFtb3VudCA9
IHNjcm9sbFZpc2libGVSZWN0LnNpemUoKS5oZWlnaHQoKTsKLSAgICAgICAgaW50IG5ld1kgPSBz
Y3JvbGxBbW91bnQgKyBzY3JvbGxQb3NpdGlvbi55KCk7Ci0gICAgICAgIGludCBtYXhZID0gc2Ny
b2xsU2l6ZS5oZWlnaHQoKSAtIHNjcm9sbEFtb3VudDsKLSAgICAgICAgbmV3U2Nyb2xsUG9zaXRp
b24uc2V0WShzdGQ6Om1pbihuZXdZLCBtYXhZKSk7CisgICAgY2FzZSBVSUFjY2Vzc2liaWxpdHlT
Y3JvbGxEaXJlY3Rpb25Eb3duOgorICAgICAgICBzY3JvbGxEaXJlY3Rpb24gPSBBY2Nlc3NpYmls
aXR5T2JqZWN0OjpTY3JvbGxCeVBhZ2VEaXJlY3Rpb246OkRvd247CiAgICAgICAgIGJyZWFrOwot
ICAgIH0KICAgICBkZWZhdWx0OgotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIE5POwog
ICAgIH0KKworICAgIEJPT0wgcmVzdWx0ID0gbV9vYmplY3QtPnNjcm9sbEJ5UGFnZShzY3JvbGxE
aXJlY3Rpb24pOwogICAgIAotICAgIGlmIChuZXdTY3JvbGxQb3NpdGlvbiAhPSBzY3JvbGxQb3Np
dGlvbikgewotICAgICAgICBzY3JvbGxWaWV3LT5zZXRTY3JvbGxQb3NpdGlvbihuZXdTY3JvbGxQ
b3NpdGlvbik7Ci0gICAgICAgIG1fb2JqZWN0LT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBpZiAocmVzdWx0KSB7CisgICAgICAgIFtzZWxm
IHBvc3RTY3JvbGxTdGF0dXNDaGFuZ2VOb3RpZmljYXRpb25dOworCisgICAgICAgIENHUG9pbnQg
c2Nyb2xsUG9zID0gW3NlbGYgX2FjY2Vzc2liaWxpdHlTY3JvbGxQb3NpdGlvbl07CisgICAgICAg
IE5TU3RyaW5nICp0ZXN0U3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJBWFNj
cm9sbCBbcG9zaXRpb246ICUuMmYgJS4yZl0iLCBzY3JvbGxQb3MueCwgc2Nyb2xsUG9zLnldOwor
ICAgICAgICBbc2VsZiBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOkAiQVhTY3JvbGxC
eVBhZ2UiIHVzZXJJbmZvOkB7IEAic3RhdHVzIiA6IHRlc3RTdHJpbmcgfV07CiAgICAgfQogICAg
IAotICAgIFtzZWxmIHBvc3RTY3JvbGxTdGF0dXNDaGFuZ2VOb3RpZmljYXRpb25dOwotICAgIAog
ICAgIC8vIFRoaXMgbWVhbnMgdGhhdCB0aGlzIG9iamVjdCBoYW5kbGVkIHRoZSBzY3JvbGwgYW5k
IG5vIG90aGVyIGFuY2VzdG9yIHNob3VsZCBhdHRlbXB0IHNjcm9sbGluZy4KLSAgICByZXR1cm4g
WUVTOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIC0gKENHUG9pbnQpY29udmVydFBvaW50VG9T
Y3JlZW5TcGFjZTooRmxvYXRQb2ludCAmKXBvaW50CkBAIC0xNjI1LDEwICsxNjA3LDcgQEAKICAg
ICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQogICAgICAgICByZXR1cm4g
Q0dQb2ludFplcm87CiAgICAgCi0gICAgU2Nyb2xsVmlldyogc2Nyb2xsVmlldyA9IG1fb2JqZWN0
LT5zY3JvbGxWaWV3QW5jZXN0b3IoKTsKLSAgICBpZiAoIXNjcm9sbFZpZXcpCi0gICAgICAgIHJl
dHVybiBDR1BvaW50WmVybzsKLSAgICByZXR1cm4gc2Nyb2xsVmlldy0+c2Nyb2xsUG9zaXRpb24o
KTsKKyAgICByZXR1cm4gbV9vYmplY3QtPnNjcm9sbFBvc2l0aW9uKCk7CiB9CiAKIC0gKENHU2l6
ZSlfYWNjZXNzaWJpbGl0eVNjcm9sbFNpemUKQEAgLTE2MzYsMTAgKzE2MTUsNyBAQAogICAgIGlm
ICghW3NlbGYgX3ByZXBhcmVBY2Nlc3NpYmlsaXR5Q2FsbF0pCiAgICAgICAgIHJldHVybiBDR1Np
emVaZXJvOwogICAgIAotICAgIFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcgPSBtX29iamVjdC0+c2Ny
b2xsVmlld0FuY2VzdG9yKCk7Ci0gICAgaWYgKCFzY3JvbGxWaWV3KQotICAgICAgICByZXR1cm4g
Q0dTaXplWmVybzsKLSAgICByZXR1cm4gc2Nyb2xsVmlldy0+Y29udGVudHNTaXplKCk7CisgICAg
cmV0dXJuIG1fb2JqZWN0LT5zY3JvbGxDb250ZW50c1NpemUoKTsKIH0KIAogLSAoQ0dSZWN0KV9h
Y2Nlc3NpYmlsaXR5U2Nyb2xsVmlzaWJsZVJlY3QKQEAgLTE2NDcsMTAgKzE2MjMsNyBAQAogICAg
IGlmICghW3NlbGYgX3ByZXBhcmVBY2Nlc3NpYmlsaXR5Q2FsbF0pCiAgICAgICAgIHJldHVybiBD
R1JlY3RaZXJvOwogICAgIAotICAgIFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcgPSBtX29iamVjdC0+
c2Nyb2xsVmlld0FuY2VzdG9yKCk7Ci0gICAgaWYgKCFzY3JvbGxWaWV3KQotICAgICAgICByZXR1
cm4gQ0dSZWN0WmVybzsKLSAgICByZXR1cm4gc2Nyb2xsVmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0
KFNjcm9sbGFibGVBcmVhOjpMZWdhY3lJT1NEb2N1bWVudFZpc2libGVSZWN0KTsKKyAgICByZXR1
cm4gbV9vYmplY3QtPnNjcm9sbFZpc2libGVDb250ZW50UmVjdCgpOwogfQogCiAtICh2b2lkKWFj
Y2Vzc2liaWxpdHlFbGVtZW50RGlkQmVjb21lRm9jdXNlZApJbmRleDogVG9vbHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTg3MDQ1KQorKysgVG9v
bHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTUtMDctMjAg
IENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogc2Ny
b2xsYWJsZSBlbGVtZW50cyBkbyBub3QgYWxsb3cgMy1maW5nZXIgc3dpcGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTg5MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZ2xvYmFsIG5vdGlm
aWNhdGlvbiBsaXN0ZW5lcnMgZm9yIGlPUyBjb2RlLgorICAgICAgICBGaXggYW4gaXNzdWUgaW4g
RFJUIHdoZXJlIHRoZSBkaWN0aW9uYXJ5IG9mIGRhdGEgd2FzIG5vdCBiZWluZyBwYXNzZWQgYmFj
ayB0byB0aGUgbGF5b3V0IHRlc3QgZm9yIHRoZSBub3RpY2F0aW9uIGNhbGxiYWNrLgorICAgICAg
ICBJbXBsZW1lbnQgc2Nyb2xsVXAvRG93bi9MZWZ0L1JpZ2h0LgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKGluY3JlYXNlVGV4dFNl
bGVjdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKHNjcm9sbFBhZ2VVcENhbGxiYWNrKToKKyAgICAg
ICAgKHNjcm9sbFBhZ2VEb3duQ2FsbGJhY2spOgorICAgICAgICAoc2Nyb2xsUGFnZUxlZnRDYWxs
YmFjayk6CisgICAgICAgIChzY3JvbGxQYWdlUmlnaHRDYWxsYmFjayk6CisgICAgICAgIChkZWNy
ZWFzZVRleHRTZWxlY3Rpb25DYWxsYmFjayk6CisgICAgICAgIChnZXRFbGVtZW50VGV4dExlbmd0
aENhbGxiYWNrKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldEpTQ2xhc3Mp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW06
CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6fkFjY2Vzc2liaWxpdHlDb250cm9s
bGVyKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjplbGVtZW50QXRQb2ludCk6
CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6YWRkTm90aWZpY2F0aW9uTGlzdGVu
ZXIpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRUb0Nv
bnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVtb3Zl
Tm90aWZpY2F0aW9uTGlzdGVuZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2lvcy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzdWJyb2xlKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9sbFBh
Z2VVcCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxQYWdlRG93bik6
CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxQYWdlTGVmdCk6CisgICAg
ICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxQYWdlUmlnaHQpOgorICAgICAgICAo
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm9sZURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW06CisgICAg
ICAgICgtW0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyIF9ub3RpZmljYXRpb25SZWNl
aXZlZDpdKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6bGlua2VkRWxlbWVudCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmhlYWRlckVsZW1lbnRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6YXNzaXN0aXZlVGVjaG5vbG9neVNpbXVsYXRlZEZvY3VzKToK
KyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsUGFnZVVwKToKKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsUGFnZURvd24pOgorICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxQYWdlTGVmdCk6CisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9sbFBhZ2VSaWdodCk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5tbToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVy
KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJlbW92ZU5vdGlmaWNh
dGlvbkxpc3RlbmVyKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tOgorICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KToKKyAgICAgICAgKFdUUjo6
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXNzaXN0aXZlVGVjaG5vbG9neVNpbXVsYXRlZEZvY3Vz
KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsUGFnZVVwKToK
KyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsUGFnZURvd24pOgor
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxQYWdlTGVmdCk6Cisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9sbFBhZ2VSaWdodCk6Cisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluY3JlYXNlVGV4dFNlbGVjdGlv
bik6CisKIDIwMTUtMDctMjAgIFRvbWFzIFBvcGVsYSAgPHRwb3BlbGFAcmVkaGF0LmNvbT4KIAog
ICAgICAgICBbR1RLXSBBZGQgc2VsZWN0aW9uLWNoYW5nZWQgc2lnbmFsIHRvIHRoZSBXZWJLaXQy
IEFQSQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5oCShyZXZpc2lvbiAxODY5MDcpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC05Myw3ICs5Myw3IEBACiAgICAg
SGFzaE1hcDxQbGF0Zm9ybVVJRWxlbWVudCwgSlNPYmplY3RSZWY+IG1fbm90aWZpY2F0aW9uTGlz
dGVuZXJzOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkKKyNpZiBQTEFURk9STShDT0NP
QSkgfHwgUExBVEZPUk0oSU9TKQogICAgIFJldGFpblB0cjxOb3RpZmljYXRpb25IYW5kbGVyPiBt
X2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXI7CiAjZW5kaWYKIApJbmRleDogVG9vbHMvRHVtcFJl
bmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
RHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAJKHJldmlzaW9uIDE4Njkw
NykKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMzIsNiArMzMyLDI2IEBACiAgICAgcmV0dXJuIEpTVmFsdWVNYWtl
VW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBzY3JvbGxQYWdlVXBD
YWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2Jq
ZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVm
IGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgcmV0dXJuIEpTVmFs
dWVNYWtlQm9vbGVhbihjb250ZXh0LCB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+c2Nyb2xsUGFn
ZVVwKCkpOworfQorCitzdGF0aWMgSlNWYWx1ZVJlZiBzY3JvbGxQYWdlRG93bkNhbGxiYWNrKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhp
c09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRz
W10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VCb29s
ZWFuKGNvbnRleHQsIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5zY3JvbGxQYWdlRG93bigpKTsK
K30KKworc3RhdGljIEpTVmFsdWVSZWYgc2Nyb2xsUGFnZUxlZnRDYWxsYmFjayhKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3Qs
IHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1Zh
bHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlQm9vbGVhbihjb250
ZXh0LCB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+c2Nyb2xsUGFnZUxlZnQoKSk7Cit9CisKK3N0
YXRpYyBKU1ZhbHVlUmVmIHNjcm9sbFBhZ2VSaWdodENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90
IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYq
IGV4Y2VwdGlvbikKK3sKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQsIHRv
QVhFbGVtZW50KHRoaXNPYmplY3QpLT5zY3JvbGxQYWdlUmlnaHQoKSk7Cit9CisKIHN0YXRpYyBK
U1ZhbHVlUmVmIGRlY3JlYXNlVGV4dFNlbGVjdGlvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90
IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYq
IGV4Y2VwdGlvbikKIHsKICAgICB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+ZGVjcmVhc2VUZXh0
U2VsZWN0aW9uKCk7CkBAIC0xMzI3LDYgKzEzNDcsOCBAQAogICAgIHJldHVybiBKU1ZhbHVlTWFr
ZU51bWJlcihjb250ZXh0LCB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+ZWxlbWVudFRleHRMZW5n
dGgoKSk7CiB9CiAKKworCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCiAjaWYgUExBVEZPUk0o
TUFDKSAmJiAhUExBVEZPUk0oSU9TKQpAQCAtMTY5MSw2ICsxNzEzLDEwIEBACiAgICAgICAgIHsg
ImVsZW1lbnRzRm9yUmFuZ2UiLCBlbGVtZW50c0ZvclJhbmdlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAiaW5jcmVhc2VUZXh0U2VsZWN0aW9uIiwgaW5jcmVhc2VUZXh0U2VsZWN0aW9uQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZGVjcmVhc2VUZXh0U2VsZWN0aW9uIiwgZGVjcmVh
c2VUZXh0U2VsZWN0aW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2Nyb2xsUGFnZVVw
Iiwgc2Nyb2xsUGFnZVVwQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2Nyb2xsUGFnZURv
d24iLCBzY3JvbGxQYWdlRG93bkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgInNjcm9sbFBh
Z2VMZWZ0Iiwgc2Nyb2xsUGFnZUxlZnRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJzY3Jv
bGxQYWdlUmlnaHQiLCBzY3JvbGxQYWdlUmlnaHRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7
ICJhc3Npc3RpdmVUZWNobm9sb2d5U2ltdWxhdGVkRm9jdXMiLCBhc3Npc3RpdmVUZWNobm9sb2d5
U2ltdWxhdGVkRm9jdXNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogI2VuZGlmCiAgICAgICAgIHsgMCwgMCwg
MCB9CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5oCShyZXZpc2lvbiAxODY5MDcpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyMSw2ICsyMjEsMTEgQEAKICAgICB2
b2lkIGluY3JlYXNlVGV4dFNlbGVjdGlvbigpOwogICAgIHZvaWQgZGVjcmVhc2VUZXh0U2VsZWN0
aW9uKCk7CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBsaW5rZWRFbGVtZW50KCk7CisgICAg
CisgICAgYm9vbCBzY3JvbGxQYWdlVXAoKTsKKyAgICBib29sIHNjcm9sbFBhZ2VEb3duKCk7Cisg
ICAgYm9vbCBzY3JvbGxQYWdlTGVmdCgpOworICAgIGJvb2wgc2Nyb2xsUGFnZVJpZ2h0KCk7CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKQpJbmRleDogVG9vbHMv
RHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklP
Uy5tbQkocmV2aXNpb24gMTg2OTA3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVySU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBA
CiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIgogCiAjaW1wb3J0ICJBY2Nlc3Np
YmlsaXR5Q29tbW9uTWFjLmgiCisjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFu
ZGxlci5oIgogI2ltcG9ydCAiQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oIgogI2ltcG9ydCA8Rm91
bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRnJhbWVQcml2YXRlLmg+
CkBAIC00Myw2ICs0NCw4IEBACiAKIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjp+QWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIoKQogeworICAgIC8vIFJlc2V0VG9Db25zaXN0ZW50U3RhdGUgc2hvdWxk
IGhhdmUgY2xlYXJlZCB0aGlzIGFscmVhZHkuCisgICAgQVNTRVJUKCFtX2dsb2JhbE5vdGlmaWNh
dGlvbkhhbmRsZXIpOwogfQogCiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjplbGVtZW50QXRQb2ludChpbnQgeCwgaW50IHkpCkBAIC0xMTYsMTEgKzExOSwy
MyBAQAogCiBib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphZGROb3RpZmljYXRpb25MaXN0
ZW5lcihKU09iamVjdFJlZiBmdW5jdGlvbkNhbGxiYWNrKQogewotICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoIWZ1bmN0aW9uQ2FsbGJhY2spCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAK
KyAgICAvLyBNYWMgcHJvZ3JhbW1lcnMgc2hvdWxkIG5vdCBiZSBhZGRpbmcgbW9yZSB0aGFuIG9u
ZSBnbG9iYWwgbm90aWZpY2F0aW9uIGxpc3RlbmVyLgorICAgIC8vIE90aGVyIHBsYXRmb3JtcyBt
YXkgYmUgZGlmZmVyZW50LgorICAgIGlmIChtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXIpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXIgPSBb
W0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyIGFsbG9jXSBpbml0XTsKKyAgICBbbV9n
bG9iYWxOb3RpZmljYXRpb25IYW5kbGVyLmdldCgpIHNldENhbGxiYWNrOmZ1bmN0aW9uQ2FsbGJh
Y2tdOworICAgIFttX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXIuZ2V0KCkgc3RhcnRPYnNlcnZp
bmddOworICAgIAorICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjpwbGF0Zm9ybVJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKQogeworICAgIG1fZ2xvYmFs
Tm90aWZpY2F0aW9uSGFuZGxlci5jbGVhcigpOwogfQogCiB2b2lkIEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCkluZGV4OiBUb29scy9EdW1wUmVu
ZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQkocmV2
aXNpb24gMTg2OTA3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ1LDEyICs0NSwxNSBAQAogCiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFBsYXRmb3JtVUlFbGVt
ZW50IGVsZW1lbnQpCiAgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKKyAgICAsIG1fbm90aWZpY2F0
aW9uSGFuZGxlcigwKQogewogICAgIFttX2VsZW1lbnQgcmV0YWluXTsKIH0KIAogQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudChjb25zdCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50JiBvdGhlcikKICAgICA6IG1fZWxlbWVudChvdGhlci5tX2VsZW1lbnQpCisgICAg
LCBtX25vdGlmaWNhdGlvbkhhbmRsZXIoMCkKKwogewogICAgIFttX2VsZW1lbnQgcmV0YWluXTsK
IH0KQEAgLTQ1NCw2ICs0NTcsMjUgQEAKICAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hh
cmFjdGVycygwLCAwKTsKIH0KIAorYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxQ
YWdlVXAoKQoreworICAgIHJldHVybiBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlTY3JvbGw6VUlB
Y2Nlc3NpYmlsaXR5U2Nyb2xsRGlyZWN0aW9uVXBdOworfQorCitib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnNjcm9sbFBhZ2VEb3duKCkKK3sKKyAgICByZXR1cm4gW21fZWxlbWVudCBhY2Nl
c3NpYmlsaXR5U2Nyb2xsOlVJQWNjZXNzaWJpbGl0eVNjcm9sbERpcmVjdGlvbkRvd25dOworfQor
Ym9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxQYWdlTGVmdCgpCit7CisgICAgcmV0
dXJuIFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eVNjcm9sbDpVSUFjY2Vzc2liaWxpdHlTY3JvbGxE
aXJlY3Rpb25MZWZ0XTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxQ
YWdlUmlnaHQoKQoreworICAgIHJldHVybiBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlTY3JvbGw6
VUlBY2Nlc3NpYmlsaXR5U2Nyb2xsRGlyZWN0aW9uUmlnaHRdOworfQorCiBKU1N0cmluZ1JlZiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb2xlRGVzY3JpcHRpb24oKQogewogICAgIHJldHVybiBK
U1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOwpJbmRleDogVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFu
ZGxlci5tbQkocmV2aXNpb24gMTg2OTA3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0Fj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNjYs
NyArMTY2LDYgQEAKICAgICAgICAgcmV0dXJuOwogCiAgICAgTlNEaWN0aW9uYXJ5ICp1c2VySW5m
byA9IFtbbm90aWZpY2F0aW9uIHVzZXJJbmZvXSBvYmplY3RGb3JLZXk6QCJ1c2VySW5mbyJdOwot
CiAgICAgSlNWYWx1ZVJlZiBub3RpZmljYXRpb25OYW1lQXJndW1lbnQgPSBKU1ZhbHVlTWFrZVN0
cmluZyhbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBhZG9wdChbbm90aWZpY2F0aW9uTmFtZSBj
cmVhdGVKU1N0cmluZ1JlZl0pLmdldCgpKTsKICAgICBKU1ZhbHVlUmVmIHVzZXJJbmZvQXJndW1l
bnQgPSBtYWtlT2JqZWN0UmVmRm9yRGljdGlvbmFyeShbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRd
LCB1c2VySW5mbyk7CiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50KSB7CkBAIC0xODEsNyArMTgw
LDcgQEAKICAgICAgICAgYXJndW1lbnRzWzBdID0gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWFr
ZUpTQWNjZXNzaWJpbGl0eVVJRWxlbWVudChbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50KFtub3RpZmljYXRpb24gb2JqZWN0XSkpOwogICAgICAgICBhcmd1
bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CiAgICAgICAgIGFyZ3VtZW50c1sy
XSA9IHVzZXJJbmZvQXJndW1lbnQ7Ci0gICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oW21h
aW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrLCAw
LCAyLCBhcmd1bWVudHMsIDApOworICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFttYWlu
RnJhbWUgZ2xvYmFsQ29udGV4dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwg
MywgYXJndW1lbnRzLCAwKTsKICAgICB9CiB9CiAKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmgJKHJldmlzaW9uIDE4NjkwNykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
NzAsNyArNzAsNyBAQAogcHJpdmF0ZToKICAgICBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpOwog
Ci0jaWYgUExBVEZPUk0oQ09DT0EpCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKElP
UykKICAgICBSZXRhaW5QdHI8Tm90aWZpY2F0aW9uSGFuZGxlcj4gbV9nbG9iYWxOb3RpZmljYXRp
b25IYW5kbGVyOwogI2VuZGlmCiAKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNw
cAkocmV2aXNpb24gMTg2OTA3KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYsNiAr
NjYsMTAgQEAKIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6bGlua2VkRWxlbWVudCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KIFBhc3NSZWZQ
dHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVhZGVy
RWxlbWVudEF0SW5kZXgodW5zaWduZWQpIHsgcmV0dXJuIG51bGxwdHI7IH0KIHZvaWQgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6YXNzaXN0aXZlVGVjaG5vbG9neVNpbXVsYXRlZEZvY3VzKCkgeyBy
ZXR1cm47IH0KK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsUGFnZVVwKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsUGFnZURv
d24oKSB7IHJldHVybiBmYWxzZTsgfQorYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3Jv
bGxQYWdlTGVmdCgpIHsgcmV0dXJuIGZhbHNlOyB9Citib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnNjcm9sbFBhZ2VSaWdodCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKICAgICAKIC8v
IFVuc3VwcG9ydGVkIG1ldGhvZHMgb24gdmFyaW91cyBwbGF0Zm9ybXMuIEFzIHRoZXkncmUgaW1w
bGVtZW50ZWQgb24gb3RoZXIgcGxhdGZvcm1zIHRoaXMgbGlzdCBzaG91bGQgYmUgbW9kaWZpZWQu
CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAkocmV2aXNpb24gMTg2OTA3KQorKysg
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3NSw2ICsyNzUsMTEgQEAKICAgICBQYXNzUmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGhlYWRlckVsZW1lbnRBdEluZGV4KHVuc2lnbmVkIGlu
ZGV4KTsKICAgICB2b2lkIGFzc2lzdGl2ZVRlY2hub2xvZ3lTaW11bGF0ZWRGb2N1cygpOwogICAg
IAorICAgIGJvb2wgc2Nyb2xsUGFnZVVwKCk7CisgICAgYm9vbCBzY3JvbGxQYWdlRG93bigpOwor
ICAgIGJvb2wgc2Nyb2xsUGFnZUxlZnQoKTsKKyAgICBib29sIHNjcm9sbFBhZ2VSaWdodCgpOwor
ICAgIAogcHJpdmF0ZToKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFBsYXRmb3JtVUlFbGVt
ZW50KTsKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KGNvbnN0IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQmKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50LmlkbAkocmV2aXNpb24gMTg2OTA3KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMTcwLDYgKzE3MCwxMCBAQAogCiAgICAgdm9pZCBzY3JvbGxUb01ha2VWaXNpYmxl
KCk7CiAgICAgdm9pZCB0YWtlRm9jdXMoKTsKKyAgICBib29sZWFuIHNjcm9sbFBhZ2VEb3duKCk7
CisgICAgYm9vbGVhbiBzY3JvbGxQYWdlVXAoKTsKKyAgICBib29sZWFuIHNjcm9sbFBhZ2VMZWZ0
KCk7CisgICAgYm9vbGVhbiBzY3JvbGxQYWdlUmlnaHQoKTsKIAogICAgIC8vIFRleHQgbWFya2Vy
cy4KICAgICBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlIGxpbmVUZXh0TWFya2VyUmFuZ2VG
b3JUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyIHRleHRNYXJrZXIpOwpJbmRleDog
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXJJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0JKHJldmlzaW9uIDE4
NjkwNykKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVySU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSwxOCBA
QAogCiBib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphZGROb3RpZmljYXRpb25MaXN0ZW5l
cihKU1ZhbHVlUmVmIGZ1bmN0aW9uQ2FsbGJhY2spCiB7Ci0gICAgcmV0dXJuIGZhbHNlOworICAg
IGlmICghZnVuY3Rpb25DYWxsYmFjaykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAg
IC8vIE1hYyBwcm9ncmFtbWVycyBzaG91bGQgbm90IGJlIGFkZGluZyBtb3JlIHRoYW4gb25lIGds
b2JhbCBub3RpZmljYXRpb24gbGlzdGVuZXIuCisgICAgLy8gT3RoZXIgcGxhdGZvcm1zIG1heSBi
ZSBkaWZmZXJlbnQuCisgICAgaWYgKG1fZ2xvYmFsTm90aWZpY2F0aW9uSGFuZGxlcikKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIG1fZ2xvYmFsTm90aWZpY2F0aW9uSGFuZGxlciA9IFtbQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIgYWxsb2NdIGluaXRdOworICAgIFttX2dsb2Jh
bE5vdGlmaWNhdGlvbkhhbmRsZXIuZ2V0KCkgc2V0Q2FsbGJhY2s6ZnVuY3Rpb25DYWxsYmFja107
CisgICAgW21fZ2xvYmFsTm90aWZpY2F0aW9uSGFuZGxlci5nZXQoKSBzdGFydE9ic2VydmluZ107
CisgICAgCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCkKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQkocmV2aXNpb24gMTg2OTA3KQorKysgVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElP
Uy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSw3IEBACiAgICAgCiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFBsYXRmb3JtVUlFbGVtZW50IGVs
ZW1lbnQpCiAgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKKyAgICAsIG1fbm90aWZpY2F0aW9uSGFu
ZGxlcigwKQogewogICAgIC8vIEZJWE1FOiBhcEB3ZWJraXQub3JnIHNheXMgT2JqQyBvYmplY3Rz
IG5lZWQgdG8gYmUgQ0ZSZXRhaW5lZC9DRlJlbGVhc2UgdG8gYmUgR0MtY29tcGxpYW50IG9uIHRo
ZSBtYWMuCiAgICAgW21fZWxlbWVudCByZXRhaW5dOwpAQCAtMTE3LDYgKzExOCw3IEBACiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KGNvbnN0IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQmIG90aGVyKQogICAgIDogSlNXcmFwcGFibGUoKQogICAgICwgbV9lbGVt
ZW50KG90aGVyLm1fZWxlbWVudCkKKyAgICAsIG1fbm90aWZpY2F0aW9uSGFuZGxlcigwKQogewog
ICAgIFttX2VsZW1lbnQgcmV0YWluXTsKIH0KQEAgLTc1NSw3ICs3NTcsMjYgQEAKIHsKICAgICBb
bV9lbGVtZW50IGFjY2Vzc2liaWxpdHlFbGVtZW50RGlkQmVjb21lRm9jdXNlZF07CiB9CisgICAg
Citib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9sbFBhZ2VVcCgpCit7CisgICAgcmV0
dXJuIFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eVNjcm9sbDpVSUFjY2Vzc2liaWxpdHlTY3JvbGxE
aXJlY3Rpb25VcF07Cit9CiAKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsUGFn
ZURvd24oKQoreworICAgIHJldHVybiBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlTY3JvbGw6VUlB
Y2Nlc3NpYmlsaXR5U2Nyb2xsRGlyZWN0aW9uRG93bl07Cit9Citib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnNjcm9sbFBhZ2VMZWZ0KCkKK3sKKyAgICByZXR1cm4gW21fZWxlbWVudCBhY2Nl
c3NpYmlsaXR5U2Nyb2xsOlVJQWNjZXNzaWJpbGl0eVNjcm9sbERpcmVjdGlvbkxlZnRdOworfQor
Citib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9sbFBhZ2VSaWdodCgpCit7CisgICAg
cmV0dXJuIFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eVNjcm9sbDpVSUFjY2Vzc2liaWxpdHlTY3Jv
bGxEaXJlY3Rpb25SaWdodF07Cit9CisKIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5j
cmVhc2VUZXh0U2VsZWN0aW9uKCkKIHsKICAgICBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlNb2Rp
ZnlTZWxlY3Rpb246V2ViQ29yZTo6Q2hhcmFjdGVyR3JhbnVsYXJpdHkgaW5jcmVhc2U6WUVTXTsK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE4NzA0NSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE1LTA3LTIwICBDaHJpcyBGbGVpemFjaCAg
PGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHNjcm9sbGFibGUgZWxlbWVudHMg
ZG8gbm90IGFsbG93IDMtZmluZ2VyIHN3aXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE4OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW11bGF0b3IvYWNjZXNzaWJpbGl0
eS9zY3JvbGwtaW4tb3ZlcmZsb3ctZGl2LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vaW9zLXNpbXVsYXRvci9hY2Nlc3NpYmlsaXR5L3Njcm9sbC1pbi1vdmVyZmxvdy1k
aXYuaHRtbDogQWRkZWQuCisKIDIwMTUtMDctMjAgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBw
bGUuY29tPgogCiAgICAgICAgIEltcHJvdmUgYmVoYXZpb3Igb2YgbWVkaWEgZWxlbWVudHMgaW4g
cGFnZSBjYWNoZS4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvYWNj
ZXNzaWJpbGl0eS9zY3JvbGwtaW4tb3ZlcmZsb3ctZGl2LWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL2FjY2Vzc2liaWxpdHkvc2Ny
b2xsLWluLW92ZXJmbG93LWRpdi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL2FjY2Vzc2liaWxpdHkvc2Nyb2xsLWluLW92ZXJm
bG93LWRpdi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NyBAQAorVGhp
cyBtYWtlcyBzdXJlIHRoYXQgd2UgY2FuIHBlcmZvcm0gYWNjZXNzaWJpbGl0eSBzY3JvbGwgYWN0
aW9ucyBpbnNpZGUgb3ZlcmZsb3cgZGl2cworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworQVhTY3JvbGxCeVBhZ2UgcmVjZWl2ZWQ6IGRhdGE6IEFYU2Nyb2xsIFtwb3NpdGlvbjogMC4w
MCAyMjQuMDBdCitzY3JvbGwgZG93biAwIDogc3VjY2VzcyB0cnVlCitBWFNjcm9sbEJ5UGFnZSBy
ZWNlaXZlZDogZGF0YTogQVhTY3JvbGwgW3Bvc2l0aW9uOiAwLjAwIDQ0OC4wMF0KK3Njcm9sbCBk
b3duIDEgOiBzdWNjZXNzIHRydWUKK0FYU2Nyb2xsQnlQYWdlIHJlY2VpdmVkOiBkYXRhOiBBWFNj
cm9sbCBbcG9zaXRpb246IDAuMDAgNjcyLjAwXQorc2Nyb2xsIGRvd24gMiA6IHN1Y2Nlc3MgdHJ1
ZQorQVhTY3JvbGxCeVBhZ2UgcmVjZWl2ZWQ6IGRhdGE6IEFYU2Nyb2xsIFtwb3NpdGlvbjogMC4w
MCA3MTIuMDBdCitzY3JvbGwgZG93biAzIDogc3VjY2VzcyB0cnVlCitzY3JvbGwgZG93biA0IDog
c3VjY2VzcyBmYWxzZQorQVhTY3JvbGxCeVBhZ2UgcmVjZWl2ZWQ6IGRhdGE6IEFYU2Nyb2xsIFtw
b3NpdGlvbjogMC4wMCA0ODguMDBdCitzY3JvbGwgdXAgMCA6IHN1Y2Nlc3MgdHJ1ZQorQVhTY3Jv
bGxCeVBhZ2UgcmVjZWl2ZWQ6IGRhdGE6IEFYU2Nyb2xsIFtwb3NpdGlvbjogMC4wMCAyNjQuMDBd
CitzY3JvbGwgdXAgMSA6IHN1Y2Nlc3MgdHJ1ZQorQVhTY3JvbGxCeVBhZ2UgcmVjZWl2ZWQ6IGRh
dGE6IEFYU2Nyb2xsIFtwb3NpdGlvbjogMC4wMCA0MC4wMF0KK3Njcm9sbCB1cCAyIDogc3VjY2Vz
cyB0cnVlCitBWFNjcm9sbEJ5UGFnZSByZWNlaXZlZDogZGF0YTogQVhTY3JvbGwgW3Bvc2l0aW9u
OiAwLjAwIDAuMDBdCitzY3JvbGwgdXAgMyA6IHN1Y2Nlc3MgdHJ1ZQorc2Nyb2xsIHVwIDQgOiBz
dWNjZXNzIGZhbHNlCitBWFNjcm9sbEJ5UGFnZSByZWNlaXZlZDogZGF0YTogQVhTY3JvbGwgW3Bv
c2l0aW9uOiA0MjQuMDAgMC4wMF0KK3Njcm9sbCBsZWZ0IDAgOiBzdWNjZXNzIHRydWUKK0FYU2Ny
b2xsQnlQYWdlIHJlY2VpdmVkOiBkYXRhOiBBWFNjcm9sbCBbcG9zaXRpb246IDg0OC4wMCAwLjAw
XQorc2Nyb2xsIGxlZnQgMSA6IHN1Y2Nlc3MgdHJ1ZQorQVhTY3JvbGxCeVBhZ2UgcmVjZWl2ZWQ6
IGRhdGE6IEFYU2Nyb2xsIFtwb3NpdGlvbjogMTI3Mi4wMCAwLjAwXQorc2Nyb2xsIGxlZnQgMiA6
IHN1Y2Nlc3MgdHJ1ZQorQVhTY3JvbGxCeVBhZ2UgcmVjZWl2ZWQ6IGRhdGE6IEFYU2Nyb2xsIFtw
b3NpdGlvbjogMTY5Ni4wMCAwLjAwXQorc2Nyb2xsIGxlZnQgMyA6IHN1Y2Nlc3MgdHJ1ZQorQVhT
Y3JvbGxCeVBhZ2UgcmVjZWl2ZWQ6IGRhdGE6IEFYU2Nyb2xsIFtwb3NpdGlvbjogMjEyMC4wMCAw
LjAwXQorc2Nyb2xsIGxlZnQgNCA6IHN1Y2Nlc3MgdHJ1ZQorQVhTY3JvbGxCeVBhZ2UgcmVjZWl2
ZWQ6IGRhdGE6IEFYU2Nyb2xsIFtwb3NpdGlvbjogMTY5Ni4wMCAwLjAwXQorc2Nyb2xsIHJpZ2h0
IDAgOiBzdWNjZXNzIHRydWUKK0FYU2Nyb2xsQnlQYWdlIHJlY2VpdmVkOiBkYXRhOiBBWFNjcm9s
bCBbcG9zaXRpb246IDEyNzIuMDAgMC4wMF0KK3Njcm9sbCByaWdodCAxIDogc3VjY2VzcyB0cnVl
CitBWFNjcm9sbEJ5UGFnZSByZWNlaXZlZDogZGF0YTogQVhTY3JvbGwgW3Bvc2l0aW9uOiA4NDgu
MDAgMC4wMF0KK3Njcm9sbCByaWdodCAyIDogc3VjY2VzcyB0cnVlCitBWFNjcm9sbEJ5UGFnZSBy
ZWNlaXZlZDogZGF0YTogQVhTY3JvbGwgW3Bvc2l0aW9uOiA0MjQuMDAgMC4wMF0KK3Njcm9sbCBy
aWdodCAzIDogc3VjY2VzcyB0cnVlCitBWFNjcm9sbEJ5UGFnZSByZWNlaXZlZDogZGF0YTogQVhT
Y3JvbGwgW3Bvc2l0aW9uOiAwLjAwIDAuMDBdCitzY3JvbGwgcmlnaHQgNCA6IHN1Y2Nlc3MgdHJ1
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvYWNjZXNzaWJpbGl0eS9zY3Jv
bGwtaW4tb3ZlcmZsb3ctZGl2Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zLXNpbXVsYXRvci9hY2Nlc3NpYmlsaXR5L3Njcm9sbC1pbi1vdmVyZmxvdy1kaXYuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvYWNj
ZXNzaWJpbGl0eS9zY3JvbGwtaW4tb3ZlcmZsb3ctZGl2Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAg
ICAgaGVpZ2h0OiAyMDAwcHg7CisgICAgICAgIH0KKyAgICAgICAgLmNvbnRhaW5lciB7CisgICAg
ICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB0b3A6IDIwMHB4OworICAg
ICAgICAgICAgd2lkdGg6IDUwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAg
ICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrOworICAgICAgICAgICAgcGFkZGluZzogMTBw
eDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLm92ZXJmbG93IHsKKworICAgICAgICAg
ICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAgICAgICAgICAgIHdpZHRoOiA0MDBweDsKKyAgICAg
ICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAgICBwYWRkaW5nOiAxMHB4OworICAgICAg
ICAgICAgYm9yZGVyOiAycHggc29saWQgYmx1ZTsKKyAgICAgICAgICAgIG92ZXJmbG93OiBzY3Jv
bGw7CisgICAgICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7CisgICAg
ICAgIH0KKzwvc3R5bGU+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBm
YWxzZTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCisgICA8ZGl2IGlk
PSJjb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiIHJvbGU9Imdyb3VwIj4KKyAgICAgICAgPGRp
diBjbGFzcz0ib3ZlcmZsb3ciPgorICAgICAgICAgICAgPHAgaWQ9InRleHQxIj5Mb3JlbSBpcHN1
bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVp
dXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEu
IFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFt
Y28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMg
YXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3Nl
IGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBv
Y2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lh
IGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLgorICAgICAgICAgICAgPC9wPjxw
PkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0
LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1h
Z25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0
YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNl
cXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRl
IHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2Vw
dGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEg
cXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uCisgICAgICAg
ICAgICA8L3A+PHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBp
c2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBl
dCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0
cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNv
bW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBp
biB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJp
YXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3Vu
dCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1
bS4KKyAgICAgICAgICAgIDwvcD48cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2Vj
dGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQg
dXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFt
LCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1
aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXBy
ZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0
IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHBy
b2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlk
IGVzdCBsYWJvcnVtLgorICAgICAgICAgICAgPC9wPjxwIGlkPSJ0ZXh0MiI+TG9yZW0gaXBzdW0g
ZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVz
bW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBV
dCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNv
IGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1
dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBj
aWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2Nj
YWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBk
ZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4KKyAgICAgICAgICAgIDwvcD48cD5M
b3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwg
c2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWdu
YSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0
aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1
YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2
ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRl
dXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1
aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLgorICAgICAgICAg
ICAgPC9wPjxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNp
Y2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQg
ZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1
ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21t
b2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4g
dm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0
dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQg
aW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0u
CisgICAgICAgICAgICA8L3A+PHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3Rl
dHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0
IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwg
cXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlw
IGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVo
ZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBu
dWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9p
ZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBl
c3QgbGFib3J1bS4KKyAgICAgICAgICAgIDwvcD48cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1l
dCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGlu
Y2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWlu
aW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNp
IHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xv
ciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUg
ZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0
YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxp
dCBhbmltIGlkIGVzdCBsYWJvcnVtLgorICAgICAgICAgICAgPC9wPjxwPkxvcmVtIGlwc3VtIGRv
bG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21v
ZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQg
ZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBs
YWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRl
IGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2ls
bHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2Fl
Y2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVz
ZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uCisgICAgICAgICAgICA8L3A+PHA+TG9y
ZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNl
ZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEg
YWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlv
biB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0
LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVs
aXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVy
IHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkg
b2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4KKyAgICAgICAgICAg
IDwvcD48cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNp
bmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRv
bG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQg
ZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9k
byBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZv
bHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVy
LiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGlu
IGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLgor
ICAgICAgICAgICAgPC9wPjxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1
ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBs
YWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1
aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBl
eCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVu
ZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVs
bGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRl
bnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0
IGxhYm9ydW0uCisgICAgICAgICAgICA8L3A+PHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQs
IGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNp
ZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmlt
IHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1
dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3Ig
aW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1
IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0
IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQg
YW5pbSBpZCBlc3QgbGFib3J1bS4KKyAgICAgICAgICAgIDwvcD48cD5Mb3JlbSBpcHN1bSBkb2xv
ciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2Qg
dGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVu
aW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFi
b3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBp
cnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1
bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNh
dCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2Vy
dW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLgorICAgICAgICAgICAgPC9wPjxwPkxvcmVt
IGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQg
ZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFs
aXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24g
dWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4g
RHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0
IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBz
aW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9m
ZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uCisgICAgICAgICAgICA8
L3A+PHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5n
IGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xv
cmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4
ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8g
Y29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1
cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4g
RXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBj
dWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4KKyAg
ICAgICAgICAgIDwvcD48cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIg
YWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFi
b3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlz
IG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXgg
ZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRl
cml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxh
IHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50
LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBs
YWJvcnVtLgorICAgICAgICAgICAgPC9wPjxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBj
b25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRp
ZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2
ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQg
YWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGlu
IHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBm
dWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBu
b24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFu
aW0gaWQgZXN0IGxhYm9ydW0uCisgICAgICAgICAgICA8L3A+PHA+TG9yZW0gaXBzdW0gZG9sb3Ig
c2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRl
bXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmlt
IGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9y
aXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1
cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0g
ZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQg
Y3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVu
dCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4KKyAgICAgICAgICAgIDwvcD48cD5Mb3JlbSBp
cHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRv
IGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlx
dWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVs
bGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1
aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBl
c3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2lu
dCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZp
Y2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLgorICAgICAgICAgICAgPC9w
PjxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBl
bGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3Jl
IG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVy
Y2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNv
bnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0
YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4
Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3Vs
cGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uCisgICAg
ICAgICAgICA8L3A+PHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFk
aXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9y
ZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBu
b3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVh
IGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJp
dCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBw
YXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwg
c3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFi
b3J1bS4KKyAgICAgICAgICAgIDwvcD48cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29u
c2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1
bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVu
aWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFs
aXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiBy
ZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVn
aWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9u
IHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmlt
IGlkIGVzdCBsYWJvcnVtLgorICAgICAgICAgICAgPC9wPjxwIGlkPSJ0ZXh0MyI+TG9yZW0gaXBz
dW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBl
aXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVh
LiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxh
bWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlz
IGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNz
ZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQg
b2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNp
YSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS4KKyAgICAgICAgPC9wPjwvZGl2
PgorICAgIDwvZGl2PgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorCis8c2NyaXB0PgorCisgICAgZGVzY3JpcHRpb24oIlRoaXMgbWFrZXMgc3Vy
ZSB0aGF0IHdlIGNhbiBwZXJmb3JtIGFjY2Vzc2liaWxpdHkgc2Nyb2xsIGFjdGlvbnMgaW5zaWRl
IG92ZXJmbG93IGRpdnMiKTsKKworICAgIHZhciBjb3VudCA9IDA7CisgICAgd2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOworICAgIGZ1bmN0aW9uIGZvY3VzQ2FsbGJhY2soZWxlbWVudCwgbm90
aWZpY2F0aW9uLCBpbmZvKSB7CisKKyAgICAgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhTY3Jv
bGxCeVBhZ2UiKSB7CisgICAgICAgICAgICBkZWJ1Zyhub3RpZmljYXRpb24gKyAiIHJlY2VpdmVk
OiBkYXRhOiAiICsgaW5mby5zdGF0dXMpOworICAgICAgICB9CisKKyAgICAgICAgLy8gV2Ugc2hv
dWxkIGhhdmUgMTggc3VjY2Vzc2Z1bCBzY3JvbGxzICgyIHdpbGwgZmFpbCBiZWNhdXNlIHdlJ2xs
IGJlIGF0IHRoZSBib3JkZXIpLgorICAgICAgICBjb3VudCsrOworICAgICAgICBpZiAoY291bnQg
PT0gMTgpIHsKKyAgICAgICAgICAgIGZpbmlzaCgpOworICAgICAgICB9CisgICAgfQorCisgICAg
aWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworCisgICAgICAgIHZhciBjb250
ZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJ0ZXh0
MSIpOworICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hZGROb3RpZmljYXRpb25MaXN0
ZW5lcihmb2N1c0NhbGxiYWNrKTsKKworICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IDU7IGsr
KykgeworICAgICAgICAgICB2YXIgc3VjY2VzcyA9IGNvbnRlbnQuc2Nyb2xsUGFnZURvd24oKTsK
KyAgICAgICAgICAgZGVidWcoInNjcm9sbCBkb3duICIgKyBrICsgIiA6IHN1Y2Nlc3MgIiArIHN1
Y2Nlc3MpOworICAgICAgICB9CisKKyAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCA1OyBrKysp
IHsKKyAgICAgICAgICAgdmFyIHN1Y2Nlc3MgPSBjb250ZW50LnNjcm9sbFBhZ2VVcCgpOworICAg
ICAgICAgICBkZWJ1Zygic2Nyb2xsIHVwICIgKyBrICsgIiA6IHN1Y2Nlc3MgIiArIHN1Y2Nlc3Mp
OworICAgICAgICB9CisKKyAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCA1OyBrKyspIHsKKyAg
ICAgICAgICAgdmFyIHN1Y2Nlc3MgPSBjb250ZW50LnNjcm9sbFBhZ2VMZWZ0KCk7CisgICAgICAg
ICAgIGRlYnVnKCJzY3JvbGwgbGVmdCAiICsgayArICIgOiBzdWNjZXNzICIgKyBzdWNjZXNzKTsK
KyAgICAgICAgfQorCisgICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgNTsgaysrKSB7CisgICAg
ICAgICAgIHZhciBzdWNjZXNzID0gY29udGVudC5zY3JvbGxQYWdlUmlnaHQoKTsKKyAgICAgICAg
ICAgZGVidWcoInNjcm9sbCByaWdodCAiICsgayArICIgOiBzdWNjZXNzICIgKyBzdWNjZXNzKTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIGZpbmlzaCgpIHsKKyAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlk
ZGVuIjsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQorCisgICAgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisK
</data>
<flag name="review"
          id="282340"
          type_id="1"
          status="+"
          setter="mario"
    />
          </attachment>
      

    </bug>

</bugzilla>