<?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>104107</bug_id>
          
          <creation_ts>2012-12-05 03:10:57 -0800</creation_ts>
          <short_desc>[WK2] Move button image to injected bundle</short_desc>
          <delta_ts>2012-12-09 02:44:05 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.8</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>mjs</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>783583</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-05 03:10:57 -0800</bug_when>
    <thetext>Allow the bundle to specify the images to use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783584</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-12-05 03:11:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/12813842&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783598</commentid>
    <comment_count>2</comment_count>
      <attachid>177713</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-05 03:33:58 -0800</bug_when>
    <thetext>Created attachment 177713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783606</commentid>
    <comment_count>3</comment_count>
      <attachid>177713</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-05 03:40:02 -0800</bug_when>
    <thetext>Comment on attachment 177713
Patch

Attachment 177713 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15159206</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783609</commentid>
    <comment_count>4</comment_count>
      <attachid>177713</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-05 03:40:43 -0800</bug_when>
    <thetext>Comment on attachment 177713
Patch

Attachment 177713 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15160179</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783618</commentid>
    <comment_count>5</comment_count>
      <attachid>177720</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-05 03:52:43 -0800</bug_when>
    <thetext>Created attachment 177720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783621</commentid>
    <comment_count>6</comment_count>
      <attachid>177720</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-05 03:58:11 -0800</bug_when>
    <thetext>Comment on attachment 177720
Patch

Attachment 177720 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15133796</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783627</commentid>
    <comment_count>7</comment_count>
      <attachid>177720</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-05 04:07:25 -0800</bug_when>
    <thetext>Comment on attachment 177720
Patch

Attachment 177720 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15152360</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783628</commentid>
    <comment_count>8</comment_count>
      <attachid>177720</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-12-05 04:07:37 -0800</bug_when>
    <thetext>Comment on attachment 177720
Patch

Attachment 177720 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/15152358</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783641</commentid>
    <comment_count>9</comment_count>
      <attachid>177720</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-05 04:25:38 -0800</bug_when>
    <thetext>Comment on attachment 177720
Patch

Attachment 177720 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15148445</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783669</commentid>
    <comment_count>10</comment_count>
      <attachid>177720</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-12-05 05:06:24 -0800</bug_when>
    <thetext>Comment on attachment 177720
Patch

Attachment 177720 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15152374</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783773</commentid>
    <comment_count>11</comment_count>
      <attachid>177720</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-12-05 08:24:58 -0800</bug_when>
    <thetext>Comment on attachment 177720
Patch

Attachment 177720 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/15159276</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783799</commentid>
    <comment_count>12</comment_count>
      <attachid>177766</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-05 09:02:35 -0800</bug_when>
    <thetext>Created attachment 177766
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785797</commentid>
    <comment_count>13</comment_count>
      <attachid>178195</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-07 04:15:09 -0800</bug_when>
    <thetext>Created attachment 178195
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785922</commentid>
    <comment_count>14</comment_count>
      <attachid>178226</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-07 09:21:03 -0800</bug_when>
    <thetext>Created attachment 178226
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785926</commentid>
    <comment_count>15</comment_count>
      <attachid>178228</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-07 09:32:14 -0800</bug_when>
    <thetext>Created attachment 178228
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786113</commentid>
    <comment_count>16</comment_count>
      <attachid>178228</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-12-07 13:50:26 -0800</bug_when>
    <thetext>Comment on attachment 178228
Patch

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

&gt; Source/WebCore/page/ChromeClient.h:376
&gt; +        virtual PassRefPtr&lt;Image&gt; generatePlugInStartButtonImage(RenderSnapshottedPlugIn::ButtonSize) const { return 0; }

Why &apos;generate&apos;? Why not just plugInStartButtonImage() ?

&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:138
&gt; +    if (initializedImages[arrayIndex])
&gt; +        return 0;

Is this just to avoid multiple aborted attempts to get the image? Do we expect that ever to happen?

&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:154
&gt; +    Image* buttonImage = 0;
&gt; +    if (plugInImageElement()-&gt;hovered())
&gt; +        buttonImage = startButtonImage(m_buttonType);

This logic is a bit odd. Why not just early return if not hovered?

&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:245
&gt; +    m_buttonRect = tryToFitStartButton(ButtonSizeLarge, rect);
&gt; +    if (!m_buttonRect.isEmpty()) {
&gt; +        m_buttonType = ButtonSizeLarge;
&gt; +        return;
&gt; +    }
&gt; +
&gt; +    m_buttonRect = tryToFitStartButton(ButtonSizeSmall, rect);
&gt; +    if (!m_buttonRect.isEmpty()) {
&gt; +        m_buttonType = ButtonSizeSmall;
&gt; +        return;
&gt; +    }
&gt; +
&gt; +    m_buttonType = NoButton;

I&apos;m not sure why you have to run this logic at layout time. Can&apos;t you just choose what to paint at paint time?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786151</commentid>
    <comment_count>17</comment_count>
      <attachid>178228</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-07 14:20:34 -0800</bug_when>
    <thetext>Comment on attachment 178228
Patch

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

&gt;&gt; Source/WebCore/page/ChromeClient.h:376
&gt;&gt; +        virtual PassRefPtr&lt;Image&gt; generatePlugInStartButtonImage(RenderSnapshottedPlugIn::ButtonSize) const { return 0; }
&gt; 
&gt; Why &apos;generate&apos;? Why not just plugInStartButtonImage() ?

Renamed. This was originally connected to the idea that via the WK2 API we have to copy the data to a bitmap image every time we make this call, but since the code already caches those images, this is less important.

&gt;&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:138
&gt;&gt; +        return 0;
&gt; 
&gt; Is this just to avoid multiple aborted attempts to get the image? Do we expect that ever to happen?

If a client decides not to provide an image, then we will already ask for it. So I wanted to avoid that. Clients that implement this probably will provide all buttons.

&gt;&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:154
&gt;&gt; +        buttonImage = startButtonImage(m_buttonType);
&gt; 
&gt; This logic is a bit odd. Why not just early return if not hovered?

Yes, I&apos;ve updated the logic here.

&gt;&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:245
&gt;&gt; +    m_buttonType = NoButton;
&gt; 
&gt; I&apos;m not sure why you have to run this logic at layout time. Can&apos;t you just choose what to paint at paint time?

I thought it might be less performant to do this on every paint, but I can move it. Moving it would also obviate the need for these instance variables.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786725</commentid>
    <comment_count>18</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-09 02:44:05 -0800</bug_when>
    <thetext>Committed r137067: &lt;http://trac.webkit.org/changeset/137067&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177713</attachid>
            <date>2012-12-05 03:33:58 -0800</date>
            <delta_ts>2012-12-05 03:52:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104107-20121205033123.patch</filename>
            <type>text/plain</type>
            <size>77345</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjRkYTZlNTVhNTUzYWEz
ZTY3ZTFmOGZiZmJmYTYyZjdmNDIyZjc3Ni4uODQ5MmY2M2FmMDRkOTg2NGMxNjk1NWU0NjdjNGU1
NWUxMmMxYjRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTEyLTA1ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBNb3ZlIGJ1dHRvbiBpbWFn
ZSB0byBpbmplY3RlZCBidW5kbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNDEwNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTI4MTM4NDI+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIFJl
bmRlclNuYXBzaG90dGVkUGx1Z0luIHRvIHJldHJpZXZlIHRoZSBzdGFydCBidXR0b24gaW1hZ2Ug
ZnJvbSB0aGUgQ2hyb21lQ2xpZW50LiBFeHBhbmQgdGhlCisgICAgICAgIGtpbmRzIG9mIGltYWdl
cyBhdmFpbGFibGUgZm9yIHVzZSBhcyB0aGUgYnV0dG9uLiBUcnkgdG8gZmluZCB0aGUgYmVzdCBz
aXplZCBidXR0b24gdG8gdXNlIGZvciB0aGUgcGx1Zy1pbiwKKyAgICAgICAgb3RoZXJ3aXNlIHVz
ZSBubyBpbWFnZSBhdCBhbGwuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4uY3BwOiBLZWVwIHRyYWNrIG9mIHRoZSBkZXNpcmVkIGJ1dHRvbiB0byB1c2UgZm9y
IHRoaXMgcmVuZGVyZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bjo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4pOiBTdGFydCBvZmYgd2l0aCBubyBidXR0b24uIER1
cmluZyBsYXlvdXQgd2Ugd2lsbAorICAgICAgICBkZXRlcm1pbmUgd2hpY2ggYnV0dG9uIHRvIHVz
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpzdGFydEJ1dHRv
bkltYWdlKTogTWFpbnRhaW4gYSBjYWNoZSBvZiB0aGUgaW1hZ2VzIGZvciByZXVzZS4gSW5kZXgg
aW50byB0aGUKKyAgICAgICAgYXJyYXkgdXNpbmcgdGhlIGVudW1zLiBJZiB0aGUgaW1hZ2UgaGFz
IGJlZW4gbG9hZGVkLCBvciBhbiBhdHRlbXB0IHdhcyBtYWRlLCB0aGVuIHJldHVybiB0aGUgcmVz
dWx0LiBPdGhlcndpc2UKKyAgICAgICAgYXNrIHRoZSBjaHJvbWUgY2xpZW50IHRvIGdlbmVyYXRl
IHRoZSBpbWFnZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpw
YWludEJ1dHRvbik6IFJlZmFjdG9yLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0
ZWRQbHVnSW46OnRyeVRvRml0U3RhcnRCdXR0b24pOiBDb21wYXJlIHRoZSBidXR0b24gc2l6ZSB3
aXRoIHRoZSBwcm92aWRlZCBjb250ZW50CisgICAgICAgIGJveC4gUmV0dXJuIGEgTGF5b3V0UmVj
dCByZXByZXNlbnRpbmcgdGhlIGJ1dHRvbidzIHBsYWNlbWVudC4gSWYgaXQgZG9lc24ndCBmaXQs
IHJldHVybiBhbiBlbXB0eSByZWN0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0
ZWRQbHVnSW46OmxheW91dCk6IFRyeSB0byBmaXQgdGhlIGxhcmdlIGJ1dHRvbiwgdGhlbiB0aGUg
c21hbGwuIElmIGJvdGggZmFpbCwgZG9uJ3QKKyAgICAgICAgZHJhdyBhIGJ1dHRvbi4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaDogQWRkIHR3byBlbnVtcywg
b25lIGZvciB0aGUgc2l6ZSwgYW5kIHRoZSBvdGhlciB0aGUgc3RhdGUsIGZvciB0aGUKKyAgICAg
ICAgYnV0dG9uLgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogQWRkZWQgZ2VuZXJh
dGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlLiBBbHNvLCBmaXggV2ViS2l0IHN0eWxlIGVycm9ycywg
aW5jbHVkaW5nIGluZGVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50Ojpn
ZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2UpOgorCisgICAgICAgICogV2ViQ29yZS5leHAu
aW46IEV4cG9zZSBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSgpIGZvciBXS0ltYWdl
Q0cuY3BwLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogUmVt
b3ZlIHN0YXJ0IGJ1dHRvbiBhc3NldHMuCisgICAgICAgICogUmVzb3VyY2VzL3N0YXJ0QnV0dG9u
LnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBSZXNvdXJjZXMvc3RhcnRCdXR0b25AMngucG5nOiBS
ZW1vdmVkLgorICAgICAgICAqIFJlc291cmNlcy9zdGFydEJ1dHRvblByZXNzZWQucG5nOiBSZW1v
dmVkLgorICAgICAgICAqIFJlc291cmNlcy9zdGFydEJ1dHRvblByZXNzZWRAMngucG5nOiBSZW1v
dmVkLgorCiAyMDEyLTEyLTA0ICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBBc3NvY2lhdGUgVVJMcyB3aXRoIEdyYXBoaWNzQ29udGV4dDNEIGluc3RhbmNlcyBj
cmVhdGVkIGZvciBXZWJHTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDgxOWVjMTY3YzczNjRjODAyNGMyNDFjOTA4
NmIzYjY2NjY1NGU1ZGMuLjVmNzkwYTg2MTExZjcwMTNjODJmMTRiOTE0YWE1Y2ZkMzA0ODU5OWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMi0xMi0wNSAgSm9uIExlZSAgPGpvbmxl
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTW92ZSBidXR0b24gaW1hZ2UgdG8gaW5qZWN0
ZWQgYnVuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDQxMDcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyODEzODQyPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbHkgb24gdGhlIGluamVjdGVk
IGJ1bmRsZSB0byBjcmVhdGUgdGhlIGltYWdlIHVzZWQgZm9yIHRoZSBidXR0b24gaW4gc25hcHNo
b3R0ZWQgcGx1Zy1pbnMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Z2Vu
ZXJhdGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlKTogRm9yd2FyZCB0aGUgY2FsbCB0byB0aGUgaW5q
ZWN0ZWQgYnVuZGxlIFVJIGNsaWVudC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oOiBJbXBsZW1lbnQgZ2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRv
bkltYWdlKCkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZVVJQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQ
YWdlVUlDbGllbnQ6OmdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZSk6IENvbnZlcnQgdGhl
IFdlYkNvcmUgZW51bXMgdG8gV0sgQVBJCisgICAgICAgIGVudW1zLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaDoKKworICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmg6IEV4
cG9zZSBhIG5ldyBjYWxsYmFjayB0byBnZW5lcmF0ZSB0aGUgYnV0dG9uIGltYWdlLgorCisgICAg
ICAgICogU2hhcmVkL0FQSS9jL2NnL1dLSW1hZ2VDRy5jcHA6CisgICAgICAgIChXS0ltYWdlQ3Jl
YXRlRnJvbUNHSW1hZ2UpOiBSZWZhY3RvciB0byB1c2UgR3JhcGhpY3NDb250ZXh0IG1ldGhvZHMg
c28gdGhhdCB0aGUgaW1hZ2UgaXMgZmxpcHBlZCBhcHByb3ByaWF0ZWx5LgorCiAyMDEyLTEyLTA0
ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3Zl
IFBhZ2VDbGllbnQ6OmRpZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluRnJhbWUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9zdGFydEJ1dHRvbi5wbmcgYi9Tb3VyY2UvV2ViQ29y
ZS9SZXNvdXJjZXMvc3RhcnRCdXR0b24ucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAyNzQ4YzE4ZjVkYWNiMTU2OTU3ZGQ0Y2RmMzkyNGViMzUyNDEwYTIwLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhj
bVY/ZDAwMDAxCgpsaXRlcmFsIDIwMTcKemNtVjw3Mk9qdXxQKTxoOzNLfExrMDAwZTFOSkxUcTAw
MVplMDAxWm0xXkBzNmpRK1Q3MDAwTjVOa2w8WlNQOFk2CnomdWRnITdSVCNWRHdeMUZqNVZZb2xR
QXteaC1pLXNqZiN0RzApcT1UTFIzKVBJS3Ijfjt6QnB3cThxVyhfeT1TdQp6Q2B7c3IoamNfIU1o
TD8mcVAtWXJGKEQ/fWxnTVAra1BLPVBsVGBLaF5ZWHNNZWIxYDJIYSVCZm8lN0U5cDZAeUQKeisj
bTFlOEM1RWtULVhqQUlJd0Jrd3J6YjQ0R3EwZjZtX1YtQ0c3dkRiO1dvcyZkS0hGPCFfJW9kLW5D
Q01+fipoCno3P0JlY0Z6Vn47SktmYU9ebSRgclZeTFI1cnVZZ1NMTEZaKTxfUD1ILUdgKnIhZWly
RlQzWDV9JChjOEEtVkVIbwp6ZX03MX14Tj5vVkI4WDAkSUJga0leey1wRUV8PF5lVzVWbllKYFBI
c2I+dUo2JUg/d0ktTWU/V2dAdUt8eUxhemkKekJncTI5TX5AeW95Pypgckk1YEtjN2NoQ1N4WkFw
QUopYU0/NlBwNXd1VXxRaCVrUig4e3s4em0/Ynh3bk1BYSo1CnotbGUjbHRTZHchd3h4aXtqciU/
bnBYSVBXbH5mZ0hNbl58YEA+e2xTPjB7MjM5MzM8eTdZU0xxTnx3ZjE4Zk97JAp6ViZnSjRSYGU2
diZ7dE1nczx1TCpQJFcwV0xOOVlKMWxKPDRFaTNWUmB9Uz90OU4leCl1JVhJfXA8R19rWjxJKFoK
eio1OUFRPFYwPS1KIXVFZnVybDAjT3Y4NkBhUFlxeGc/UXp1NT5iRERlX0woTmE5Z3UoblR8P3NC
LXI5UGxrUl4xCnpqKTB5Z1ZLNFMjdkFFPmJANmlZYD09Sj1LR2REOFBUakV1VzxBKUx1OU9ze0U7
TlcjcTxffjM8NU8jQmk1MTJ8WQp6YlZrb00yWCY+fj8rNWd+clJ8blp6ej1BPEM0UW1LZUphODE2
OUtqamF4TUxlPyN0U2U4WFRrK3NjbTV9Ym9zQUgKej05YDxGQk9XczMkRVF8SHkpc09RNDBWPTIk
KD1mTj5nbUNRMm1pKXl8RkkxcGVCcWQlcFJlZSg3RT9HKkotITBMCnoqSkBPNWFkRU03PUZGTD0r
VER4N3dATSRDdCYzZnNSeGIjNERsSUg7aHwhQXxGTHI5Qj1rP1psZGhfUFotKWtofAp6TzRmQHta
Z0ItNnMmXyVZY2trWVJre208PzcjSjlNQytGOEJVI35mN2ZgRypiVSt7M2ozM3Q3P19ScF5jVXw5
NSkKem5ZblBgIXNhbE0rMWM0UXg/ZChaJjFDVVNAPyV+dyh3N3NURGc7aXIhfDdya2B5JHR6Z09I
eSpkMikoM2c0QCo4CnopREtzI1Q8S0NaVEQ4LXMtVzB9ITV7d2RRI1JwJmEhM2o1V0YtJDFiIUtO
eVIwUlN5fF4ySC1aantHX3tCdE1yZwp6VXRVJm5uK2FAZSpsKm98bTxHYWdaTjdCcigoMX1jS3lW
QVU9cC0/Um9hbEF1QVdrfnZqQT1xdy0kUEhISlE8JnYKem5kdjU9NlI+bipwPiF9TEp7c24zSUU7
YjJ0RSszdzM3WDNpVHdGbiZIUjY5NSZ9ZX02P2MwfW47XkU9cGlaXkwwCno7fHB4SVZUKVA4IUtx
VDxKTiVkNzZqK09leSlrejhxNj5MZkh8bXZEeilHWV5GQlEzPmxaVEV3dE5UYjJlUFV2dwp6JV5O
SHhae2tWIWBAKU1uaz5EcXVPfCpyOyZkJHo4Q3hxUWU4azB7TXtBYGt5YXdYVCUoZWE2YU5OdXBL
O2t9PDYKenNiUHY3MnRCVCNzJUo/YjNGPkg7O3ZmY24jI3gkKyhAZmsrVjlvJGs4XzhnK3JCPURf
MUB9fFh6MWtvPGNJO1RZCno/P1Z+bChNZEFYO3MtTyU1KTY4MzZfLV50ajdZYElPOzFtIVBOTGNf
e3p0enJsanotPTxJPGE8RCQkSiNyOHJXNQp6Und+QjQ9UVRLVVRGK0p9MkpuTl5peCkyenN8RzND
d3tRT3MpcEUxJDtsT1UyRmA7RFpmK01zIWg3KztgZ0k7JT0KelZKSnBNTSZkPGVMVCMpT0ozbyRH
dDVhZkNoUHdOK2xEfmM3RmR2Y18jTDhtMXI+JEFSdjlZbGRkejcyTEkmOU8pCnpgSF5pMmhzYW13
RTshcmxWfkcjR2FEK0J9Tyg9UFlaNFlJdGZePHxmKkFSPWVgUUUqSXYhVFFGPig+amlQYlk3aAp6
eFUxSUZuK0ZMTkFOZStoVD45Z0RqdUBeV2VmQmRoUlk3K214ajBUfmJOLUReOW8xb0paKlR3Zj5l
WmBidlEzTTgKeiV7ais+MU9wWnlgQndLcElCKHkrLUw2SUJUJmxAQUp7fEVzWGhULSFidmhESj4l
ZG43c1ZhN05jYjlKNXhHfmt6CnooKC1wNVdhR35qUkxQNDRvdy1VTTctMylIUV9WIW13UUpYQWc9
cjBrbS1zYTIwYmhmQFdjXjglaVpAUj4hZ0JMZwp6ZiNDVmA9V1JNMWU3fFNVb35EPlZLTn5sMHtO
KHVZPEc8UnlkLXIhUVUlbmlGXzNHN3YweHFkeXVaNWw1eHBVX34KeiZZd1Uze2tlMUpOP2A0V1JP
TXpMSmIzVUspcX4jJklYMDNlelBhZXw7bHFFYChJQHFFYWokLXlhUHNBOGBSdilWCnp8SSgyP14o
SFgoTCo+eFcoQ24+U3d8NDN3WGVsP3hMKD1yLWRhZXA/SnRnMyREUC1tKjhIVzdoJEIpfnp2ajJW
UAp6KDRwcFY/cXVMS1p4dC1rSmU+UkghOGV+MzhWZFByYSM8Jm1SMFNzK05+UGNaS31WdE9FXjch
M09IUHY5WWghS0cKeiR9VVUpVmJgdSolXmFpRllOfiM4PWd5cnVvZzw2I3tWaj5yXjlrY0l8Q0hj
JlFFellXQU41LUx2UXxYXmtyKjs7CnpFQ01kfEVvY3RFPTtgVE1Ed1JzPndNdmA4WC0+ey0tWSNr
clpxej40c2NKTmxSSkxrYWUjYiZHdCtkRiNoIWtNYwp6KX4jRGR2YH50NGRgdSQlN3NLSFRlPTZZ
JSZZIzFwPmRsT2drTjR5P3J7PExIZmNHPjlMZWVabC01OFFeV2YlZFMKemttSjNSe2dacThOWTQx
NWxFbVBGODY5I1d4NDJ7dkEzaHdDVlVWKEJELXgyMU5ycmxlU3hYT25MZnQrfFZocnNkCnpJZXwl
aU1BdXc4dCo0SmFxSSsxVigqTHVPOUY0LUxLPlFneHB0K209aCNuQE88SXBDWmF7SDg2dVAoa0Yq
OE9oPwp6a3wlJjQhbiVXb3l0VllpfEYhVXd5MXQjOW9jeCskNFk1QjA2JXN2cFBudkFrMDAwMDBO
a3ZYWHUwbWpmU3RhPz4KCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvc3Rh
cnRCdXR0b25AMngucG5nIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3N0YXJ0QnV0dG9uQDJ4
LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGRhNDQyMWJlOTEyNTA2MDRjMGUw
MDcwOTUzNDczYTgzOGZlZTM5Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCA1MzM1
CnpjbVY7fDZlI1A3UCk8aDszS3xMazAwMGUxTkpMVHEwMDIrYDAwMi0zMV5AczZqdUc7JDAwMCE4
TmtsPFpjbWRVJgp6WF5kNlhtZEM1PTdGWS08Vms1e1g0d3h2OWp0Vzd2WkEqPHE2T0QwNSQ3dUFV
dihkeiR3b148THBOMUc/aks9dVUKej1rUjxWbyp6XmtJIT4/U2ZTXmcrSzNpPmxEIylYMFh5aD4j
UCglTko9aWRLaS1PVn1ZLWRoeWl7V2R3Wik+KFY0Cnp7fkZIVGB8TndwdClnPmlYc0R4PSl+UDFG
byhuSSRhTiQ3KjlXK207bFhPMTB0RSszZ0Z6RVpNWXN6NzBhQnkmfAp6YSMla3dGdEIwUXUzY1pl
X1MkUEpsdGBhKVlOO0B0JkdoNz92VXVfMGBReWZveVNsNT0pbSFQUk9kUlR7Vk04Y2cKek9SayNO
bXVvfmtQQDRIPkYqWmtUVHwpKWspWmdGI3srMkNVZSlJTypaP0JUP2ZpbW1EMHhGNWx2KDdxZSZj
dWxtCnpteTh9Z2ROQ2xuUXJTX2RSTyZvKENrKT9DT0E3PiFXJG9ZOz1eNmB+KllLeDtXbkppfmFN
P0xCJlVmJEx5P29RQQp6UDBRWVVANGF0em8ocXkmS21rYFN5NkI+Ujk2TlVHUVdkUi0hbHtUSTZi
PjkwJXpPY01yZV9fWkc7alUxVX09QXYKel5ob1FjYz1rc0RISnYqJnQ7d05wPig7SUp5IXpeXnpm
KmtzaksrTm1EMSVYI1R5bmBqXzRNPnlQdkooNThyOUw9CnotRUhociVGTj9CKW47SXcmJWJzI1Ar
a3RJR3F9MW1TZUIhSHBoYit4SiR2P0txcTQ4QkAwbkwjZEY5dEM7LTJXWQp6cCl4OTdCXkZPTml+
NEFiTSZ8YiZHMVZ6cFReT3EpNGp3JlAoR3s9YjRPVTBAa1o4UkhIbm1VdnJ+UCR8OHEtV2EKej9m
MVo7a1BJbCpoOCZoa3VSYXAlMXluflQoXmZeaG9+Y1VsWGIhM3QhIylKM1pzdHZeQmEpKDJISVEz
b25ASF5vCnpOfmBNY3kjUEAra0dFZ2JSSHFxIVVPej0tQ05pYXxqY1c4QygpK0ReV1FvX09AWSFk
ZGVmJHdlOVB4JlYqT1JWeQp6NGsmZXkyNiYqKWlOaTdBJVJJRHwpfjxjalhGWCYoWWMlJDQqcyRS
ci1oS0RvWn04ZDA0K1QmOz82QVhAYUttOEQKelYrN1haYnNCPk9JUFg5aWN+TnM7LUIkYWJqRUMw
dExaJVZSYFl7RjwlYHtJeCU4RnR0bE4lZSNOYVNGRVE3ZyVeCnpCNHR6Znl6fGJSdWc9OGBSZl58
Q15UMTt0ej98RVdgS1hnKEgxeFVGSFJ8Ry1WakswJW8ySjtVPXRvPWdyZz9aIwp6TWdiWCMpUVh5
XlokKzFxQDY+a1hZS24oS0pJIyl2ayM3ZyVLPGF2cjJhV3Z4X0BxWUVpa2VZN0QlSy1tRlFBTSoK
ejlIQnJuWnxCR0Alaj9nS05gNXI2WmBOTXxvIV9OMnZlPktYUkNOT0hUdzJZS18qQXAoKDAhcztm
SVhjVFR5UjB9CnpBJWA2REF+JWs5TV9fKWAhO3xqVnY3O0ArZ0FZRXFzczR5eGtlV3hmSFRzbSZw
XnRsNGNJbD11ND5eQD4qNVdrdgp6dzJjJmQ+cU9vPFEzbF92OExQOz9TXndaKmItTT1USztKYWxI
akJna3cmNUl9K0k0SCVAPkNAJkFWTFptNzNxdHUKenRTez1wYD1YZVo7ayltXzJPciQ1bmMmKz8x
RWo4ZT1lX3NkSkUxYHNQOF4kUXdXfD9JREhiLXomfWlTTlpYS2w1Cnp1M0xpMShJRTFUcnA/YzZZ
bm8/Syk7Qm1iKm0yWlJOQTEqZGxBRVRjNGJ4LS03eylRcF5WTGpkVFR9RVNVdH1LIQp6I047a2ph
WGdBfjxOO3pKUSpfSzFeYG88MkV3Xm1OaCQ5X09HZCVZYjVqP2YpKSpZeW0jbnpwc2QxMVRxcnMm
NFAKej1oP0k+R2dkUXckQ3B5PEA/XzJNKHRjeTRhP1lKTWwhTXhwWnV8QHVYKUlVYHF6O190dj5s
b0t2fTA0STN0byZqCnopcFp7PHVRe0diWkJ5VSs8UVpCUDRQIThYN3w0fFZeWj5eZ2srKXV5cjk5
Xyh0c09qS3FkOHZsblhyVylfVF9rOwp6WXNBWSZwY1YyazRNTHhKKDxwPEY0JWA9WUVyWmhCMmoj
JU5tMWd+ajUmNExsViFBSStLaEpsT3pVNXRKUWI1YTEKeiVmUWh8NH5Eb05MU34yaXFLYGEwUG04
PWglVklwe15ZREAzcFR8Jjkmb1FKaiVUNHE4OWZLKTQtNXhjWm5EPHFTCnpHODt1JnEpI0NuSTJp
Mk9kQT9ZTj1lfiZGRSlOQ2BpaHR0cGZxJm1EaX1FWVYkRzk7YiQyKzFVNUM7VXptNHw5Vwp6eWp3
d1M8RChBO0VpYWc/cWUtODJwa05yc0gxX2t2cjFtfnpuPzViPGp4bStsOD48PDxlV0JMe18oKE1Y
Y2tiTW8KekM4dE49K3daXnN7YEZUfWFtQnhhPy00T2x6S1U+JjBiZXdILSo/fUE+eG1gQ1IlRnwq
b1o1d0Y2WVpLZT5OYE5CCnpgaz1wZyp8S0dTSXBLczhEd2toPWBSci1hcm1hTm9YJF5sTThaantY
WTUydFZpNkA+fEFyQGpuJklLTitMQm88VAp6QV9hX3I+dG9wVnJBd0ZZbV55VlRAbi1HZWhhYUEo
PkhLSChjcjFSUDhyYjsyN2U0S1dTY3IrKD1wVSZJU3MjSWIKemE/bmc4LT5sISRReSo+aUpuK0Ir
bmBYfE9uUEteZHpTU2AxJk83ZzFFMVo2a1dQS3thd0BuZHNFUk5GQCV2dTVhCnpANEQtKndmS3d9
IzYpYWI2WmNAbGptQF51JGxFVDtCSlh9XiF3OEhAayZneGA/KiR3QVJhYWZMPUo/fX11ZjktOAp6
NmkrXys8WX1qJGUpPWJmVTJ1NSZOcU5xNVRpN2J2bVhRRF40SWR8K2JrZWp1VFZsS04kfTg3ayQ0
IW1jamUpKi0Kelh5byYtRU5pJDZUVWJPUkQ3KnVRcEVHQzk+V2VTRnhUblkjYEU5cXxjOWNmTypY
VFJwR1gxPjFffERrel9edjtHCnp7UD9mJmshTlFhRiVtMWJqS1glLUw7SGpKQz4/PVRHOT9Jakg/
S0xHN0padGMpZmRVYCUlS1cpbSk1N1BiYiVBNgp6YT5VSXNFZmk0eitpRDVmaWpQOSZTX2lRYkdq
YDxRVypsaFZmdTQxMmxOSGQpYz93cEhlZHY0WSFzfSk4ST0kK3YKenpwYWxwPH4zI2R1RCRsIXxO
NztaVWx0KGE2QG9YbSk9N2kySmYkJlNIb3Q2PXA8djYkZFZIbGVAdGp6UkluNHV8Cnp2S1pWS3tn
O2x3R0M8WjRmYkAzaUZXUFVGUEY/Qmt5NVdXISlAfE9yZDY1JlFjPkNMJjVTU1dLU3JPJnFHPEBO
Kwp6NDQ7Xlo5U219ejg0bnV5R014SEd4PlctXl43UGFEKFR4Z3pANFV8T19XMHdFZjR5PHojPyRG
P3E3S3FEJEU7TEAKejlmZFIxKG9vMDc3ZTMxWGkyMi1lJil0WCkxQHV9N1VhSms4KHFValFEMkxZ
QEZUUU1CRjFfXjlhYipzRlJ7UCtDCno1Qj80dnJtYndzKVo2TXk7eyUldU04aFkoJUskSUM/NlBz
PmZSMENEKUtCcjl6YlUkPDEmbTx1VHlZd31AVyZsQAp6K3xSbko3T3M4TDhgN1JeSyt8PTZ3cmo2
VlRrSldFbGAlRDNeRmBFbF5xWUAoX0poeTZANGtDTGVUNzRjKnROQ0UKemljQz9PSFJsZ0NwQjJ5
bnElO087OXYkeldebzY5LTtxPWkqQUFQbGJgfVJmSEZ2WDBLRzVVZXJHSSQ1JnsmdVBICnpAQ0My
O3d1P1VnX35VO3MhfENucXQpTHJraWt1dEUpTnpfeFVPRUQ7MVUydVd0fThycitHKGVhRShgOVpt
dE0rKAp6aV9eQzNOfCpJVEthTkthdEZwTUR7RyZrYGd9emBmelc4RWtqXnNjdG5RYngob3dOTytW
O01aSDZ4PDB4O3tuS18KemhhUzM3Y2ReMjh1Uj9FSXZ1NGUmKDR+TVIxJV8kRnU3PExBaVNUKEla
QWlmMHBeP2BxZSRYV2JWIyZpb01oQGZ4CnotKy08MjctUCZJLW4hVyo1bCZLdFhiaVpVNGZPIyUr
WW5veChsXzZIXkd9alpBYHp4JDkkcCtaOHNxaCNRbXBqYwp6QGdnXkZzXmcwJC07LSp3cSQ+NHVh
eHJHQzB9NGc+SFpDMjNSKktYRylENlZmSmEqVWw0P3B9Y24tJnolJjk9fnQKejdsTFcrPncjN3M3
OUZVNGw+XkY9amRzMVBjUHZHcSZjKlErPjd7YmtQMkxNPFV2NlhzV0p6JE50Ki01PGUjMSE4Cnpe
UzA5VVBnQUcjMkQxLTFaZEtUMzRJU1RYJXR5TntqflltKENySXNQTkBKTmlaS31Rc1FRTX11NG1w
ODxYUDxPKQp6ZnZVSTA5T1hRYjFCR2V9UC0/cXYrcVE5Ylc7LXpSY3d8d1k9aTQkVFZTUThnPVRa
SGRMZ2ArMHtKOE9AeGZzKkYKenBkMVhvJXk0aShxY0Q2IXpVVEBnWFZfQUNFeGU0dC0zQ3ZvXiF+
OztYYGp5dCFVWjgxYUo1TWY1M0g8TnJTdilRCnpYanxtUmEkOyNqWUNPfFpvWUIrKHxFPmNYKEZm
O18pd3N3U0R2dHJwSDA4Ni15Kn47UU1NWH1ze14lP1gyKSpjdwp6YkEzamdMTHp6MU1iN0kobVdO
LW5EVURWQnZWTEBwbFFBXyteTGV6UGZPIWcwPTQ1ZkNPPXt1aiEkdSQ1dylpPCsKekVRbTI4dTZa
WTVZSSZydyZzZTdETWMlcl5xT1AkS0MtVGo1djk3VjkjJT9HZTlnRysmK1Ihd1BDYW8oeCFZRXZ2
Cnpee3YrKGUhKms9bHR6RGdiNXszbEtQPkZ9KDQ/USRuUERFPFA5djV3e2FQK3ttOXFSRHZ6ND5D
ZzN2fiRSIUZIdwp6KH5tIz9TVUxoSE9gNWI1RVV1TENRfGdOYWpsQWA7OD1eMz5gYXg9Wnk8ZnAp
dlJhVmwtRVpILWxJOVc1JHBzczcKekdlK3okO35OJG04I0AzREVpPjsjZkJOYUMySFZ0JDkmPT82
OE14XmJIRGVkfkUzJmlQKCtDPVFfdUtkUj1idkE/CnpYSDlie2lZRzdMaDdzdUVjdGo4Z2R+Njxw
K1VJM28lIzN9SkA5cGg5U2BJaHgqKlE4ISN7czYpZWE0QSlzVj9WZgp6eWlvPl5aeHdkS25QOzlr
K245TmpUK3J2IWkhcSRIWGBVVXI0S0l9dCg0YSshZ1Z5aVM5LSttemExQiYyPEVLb1MKekA8O0dJ
SV5mRyU+ZmdTZ1BRPGhmaGR6KEskJilBbGt5d2lLJCQ/enhIK0U2KHNUYFpxWF4yQUY+X2g8JGUp
e1JCCnopbzA8VVF0ZSFpKV9KVHgkT0c2fG9DNVdJI0wqYDVSKmJVOShfZWQ4RzxlZlpIPGRveENr
SnhEIzx7X18rVWlyZAp6UlJpP0EqZStrYnltKjA9LWh1QFNleCg7VXxIMjUyWkA9MntINV5AaDta
d2hEe3w5MHkheXBIV0AxPzBzSH0/NjAKeldkJkB2QF93KUotRk0kaipHSU8oWF5neyU5KHNzSHcy
ITNoR3pLISNKY2FBOy09bChiXnl5YjdOQHAwY2xMUHR0CnpSWTBycHhNcm16JjxSNSRaKHxqdT4t
cCFPRk1Xa0xkLW0qTyZwR0Z1SHdldCUrKUQ5VTRaNHtneFYqM3o9e1cxRwp6YktieXJuR0xhJTEz
SnpyPmNeWlRrQi1tbFJ8cjlSTTglWiVraz1ITHJkTnJqcXd4MElaKGxIRCMqRFlYVX5fSGYKem9Y
MkxsPERrIzckaCR2TU1xYWdlTG1sfFNYVChsPFZrVU92JkwhZzZ1UEopd08qMzE1NDV4WD4+azQq
MV8wJl9QCnpxZmw0Mz4qPVNUb35eSCNlUyZqOyNCKDZmJFVCfVdpQGZfeURWe08kZmlIWnpLYVVi
S3ZEND5WXjdOWD8+aEZiNwp6ajZ1U3VON1B9KytwJThVJSt4Y3QodCExalYlKkN3emRVakpeeXpQ
Y09UdkNWPkxBPGtqfTMoYiE9b0IoZUJqSE4KemQ2WmEqbkxoU0A8VSh1TEtRXlVGcVl6dV96KFpk
ZiozTCZDZVJSPE0oSSlhRl9VeUNJJmVhUjsteiheeVk7PjcrCnp2NSpuTmk5c1dlaiYwZlI+M3Ba
dysyNGNSdGEjV3leMmo0WSMwO2tOVn5DfV5WfW8qVjBWX3V6ZWV+cjVuJC1ARgp6eSR9RWdOb1hA
VlVmKWdtVyNQaHdyNThvfG9xN3tDVUJ8ekReMnNORSh5ekpCUjNLZHhnbiY1R1c7cl5WY0ctYlgK
endTbUpBS203ZzI5KCF6Xnt2XzRrZn1Qcj89VEFRUVdkRGo0RTJibDcyNismcWRkPCM+TU1lQ25x
NU0+cDdAIyFzCnpXcE9iREk3bW5AWilQMlA/NklyJHI9bSk0RHEhb3Y5cndadUZMWnFWYFJEKXEj
MWxfK3VVb2ZudUViTzVzfSU8fQp6eDJkNTJkRX04dGV0R015eEF5Q01odU4+fDx8LXlhX0kkKUJA
c1EoPUQjT1hZUSR6b144aHc5MVgzVXRaYTRzNmEKej0zVChsZnRANHdyd3MreHVrUiNwKEQkUk9T
SFZoNnNFVzIjVSZyfEZfMTluVClMK0ZJcW1OaHpZaS1OY0dDa19yCnojdj57SFJncGVqb0khb0lK
eXcxU0tjM35lYHMlQiVJK3JZMkdEJnsyVStzd0I0bEJ5OUVQdktyamx3X0YzJmBgaAp6e2J7aj9k
QEVpWD1xKz5TJlRYclJge1RkTl9SQkI3PG9BcFpRUE57NjNkTThMJUl3UGVUdEw8PDx2elNeMWE+
cjIKenJVa3E8JXd6QWs8Qm16MUdXI3hRblpeSSE0YEx0fFYhfHNpeF9GS284aEorLVdzd2o0TGx5
MVQmKH1nYTJqSTNGCnpPRXh1eD5nZHdldEZ4anRSND1Ic1BJYXdaeCQ7bmIpb2UzMjc2O3c3azZ7
eyt1eD1Pd2BtYH1xeWkobHoyaDx8dQp6YU4rYCtufjJeJGY1fD5ASiVIVGwrSFJocFAjd0NDOVRv
ak9uKG9vdjlpNGhsQmd+PVlaIURqMl5VWEpSdTNvKSoKejcrMHc2aCV5NnctRlZ9VG9teCs0REFe
JjMjMnB0KEA7Kj84WkAwTnQ4WXRgZW1IIU99MD9iWlkwa3RrUFlzQTd4CnopVzdiRXt6d2h+YmEm
UFZfOUwmbT96KWFzUGQjPEBFd3xqI3FvKlhMa0hLMjtvdXtMJVJKVFQ1cFNETCtOc0BlKwp6UylO
Xkt2Q3taayZFTUZ2LV9XVX5kaTdyUE1WenA+OGlXQU5yO2hXMkZPcD9MVH0zcDhNbmI8SHZIJHMr
WXB5d0gKeiFoe0s+a0hkO0VRI3FlJnBMXzFQVTJuYmgpPk1CeXFkNHFzJDslaEdTdzV7NmwpV2Vl
TG9jSlFXYXkwMVIlV0h2CnpoPjZeWnNWP2g5VVVNSW1oTXJ9NGBqKC1DTGs+MypKTFpeVWUlMSFL
T0tXN2VvKlQ5YER6I190KWBxeFdmQWUoawp6YHxyUD40ej4jZkhuQm09OyZVSUEpK2BfRWF8YWZg
Pjc5NHBTLT9pUlB0TTwkQHVpRnd1MzhadzQodGVPeiNASjMKenFmMFV6RStxN3VaQCF1Uz9ZSDAz
LUs3SGx3PzR+bShNQGU9KX5zMmh3RDBUSSpHSUROPip+NFA5XzxWSl8zfiVXCno0P3EwU3hwd1de
THNZPVNnK0omfjB8PkZaYUdjV3xHclolMCgmKTJ7Yk1yPDA9bzJATW51K3ZmVXpKJDJYd2dEXwp6
UHdve0deYUJFdjRwZHtMNVR1Vip7a1R8aE4pantZQnhpWjZjKkR7Ml53bD9TRlZPPnU3MUB4fHFQ
dDJSJWhRQ3MKelpiMmhJOUxMZHlNMThTWGNlIVhESnN2VHNLTmtsKGJmRE5tSW91IXBxPHFBVGU1
Jlgzcn5eLVo3PWhHXm54VTUhCnpQQE16JVBgXnlIazc7Wn0yTDxJb1pWSTBzME5OSGxaU0lTOT16
dkw0VHU2UiNoVl9eTm5iSjNFYm9GbD1SPVFRaAp6Tl5RaXxIVVF3SF8pIU1tWlgrKDVEV2d4VlBk
Nj1VbUNmYiktRDFfTVJvfCtKX2ZTOS1zZGh7PjFfdWh3eiklaSEKek9qRnhEYHpwJWJwSFYwQmJx
I09YcGdKPDA4cUwjPnZkOX1SJUhXRipZQyVtSGVibmZTRlRUaFlaZ0E9YWw8fDx9CnpeelQlX1hF
MkIoKEdGOUpMeiozJSZ4SFJFZXZDd1hVe0glJU9gZjRmbDJzRXxqX0twOTBnYSR2cEstPCt0ViEy
bgp6I01FSV8oTEIwKjR2dUErTFgjaVhFd3NsQ3A/Ty1HdVpQPmpLfjh0YmIpVmlle3htKWhxfXJA
fU1xZEA/Jm1peUoKeml4RnlgMHw4WlpYWFk+WkUqME95QkpELXFQS21+Ujk+elk9e3ZRYV5nMHZi
aGRLOFQqRTUxKXAmRmBzPXlvVGJECnpRZj5qVzR0Ync5Wns4ZzMkQ2p2Z2l3VEM3aj50P3tgX1V9
bXZfSVBCQG9CPVRlWTVAKXZxJkYzYFp5PldCTSk5aAp6VCgxNCtHUyludT1neHp8MEB9SFB1QUZr
cERmOUtmXzNHfFhgY3Q3cDlUU1ZEU2VsP1FPb19vZG1QUDc1Q0B0MEIKei1+UStlejVzOE5aVyE8
REB6LXhZYHxQdmZ8N1FkXyZkOTF+e2B+bjF3WUFfZWBYbUp+UyhHUWtVYlYjalJXKEt4CnB6YXpw
RXNTV3l3X0p3dk1aVCl1YHt7eWlOKldscl9TR05FRjAwMm92UERITGtWMWxoaChuU0NPCgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3N0YXJ0QnV0dG9uUHJlc3NlZC5wbmcg
Yi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvc3RhcnRCdXR0b25QcmVzc2VkLnBuZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDU4MmVhZmNmN2JkM2VhNzFhN2M3MGU4MzY3OTFiYjE4
YmZjYWNlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmlu
YXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAyMjgwCnpjbVY8RTJwOUs+
UCk8aDszS3xMazAwMGUxTkpMVHEwMDFaZTAwMVptMV5AczZqUStUNzAwMFFETmtsPFpTUDhZNQp6
K2l6OVg3Ukp9VV5zLUFeMyNvO0kwJT9VdjFPaWZzN3NPTmgyWTQoUGc5UlJ9I14/aG9OQ2FRUjJP
Zi0pczFNP1cKeitGLSp1SVM9cGBOSDlrTzQ8dE41MHR2UTt3djtMcWx3TjV8X2pkZnxUSG9zMnlS
R2A1dnpkRiRKO3hafF9+d3tuCnomYjQrRXhtKyZyVFhsOHlsOWVsMD96SChRbEY4KSNycHgmSGVf
JVhqdjJHZ2ZuSlpWV2JQTm0oXiFZSW9CQTdAZAp6a19gPEZkckx9NlRGYzdIRHBSUmNLc1M9VXtv
Z3Z5WDBya0RrQHhRMTMmeklBMkNjVzlLWSN3UCYxVlZiMnRzYi0KeiMqTHFybXpPdFpHTVMqWHdB
N0o8cHl+Y3JRaVdnO29TSz8pe3FFaG5rUEw+MGhma2g2Y1d5VCUoPlFGe3V3Zjc2CnpEaz5AaCVi
QEVKUX0rSFRsOH5iKmxPIWFhYzlmY3AoXlhTX2wmMG9adHk9WjZaTDc7JWFkRU5CLWZSUWBXTTA2
NAp6YCVPQTY9K0VyJmcmZjROVyNAIXBUbUdfZmApX0tebmwtT2lSI3JZZVp7OXFZSWdEdS0oZzlG
RnJ8PkA1OFg4aHIKekQzazxORlR9JV5UfCUjPkAxYHJVcT5XaWQofnEmT01NWHQzd2lFIUdxKEZS
MGFhK3lJdXB5OUBPfXJaKzRodiRACno7bGlmSlZLVDc2azZrMzJhNylgbjRmfkVsJjBtcWBXfEkm
bmRsZEhae35TKiRgXj5leCpwbFZJa3VASlgyJlNfJgp6SkApNTlrYGJxeHcye2RHRnhOS3YjMn04
SDdKd3YhNkI4M2JSYUk0MUw/RiZRTDx5dTs9JnlONlZRVyFscFBCWUgKekR9Vl9pMCYrd085MilA
V254RC1jZzRtKy15SENPJmdOMXp8clgjMlRhJlQ3T2h4N3p4T2piMDkpWXgtekwoTUJOCnp7PjBG
IW1BJmxyOVVDPmFJOXtPJCUwUTBEQCR2RCVFPmF1anZVYSpzNmZ6QVJ5fDhJc0k/QkxtbUQ3PjUr
RHZkVAp6KEo3fHlAQjc5bEx6NVY0akFacDNmfXg/SSs+UllQZGVeVUNlYCNjN0IpblJ9cjsoMzZW
KztuaGh8anVwPm4/I1kKekk1P09hOVVYUHAlSSp4dVhkPHIkZUl0PSU8cCFRPmVXa1Q7K3R6Sk13
PmBmdHlSfl8xanxFdCZFY2t4QDchMDxSCnpOMD9uPkpxTz1FXz13ZWJHTVA/Wll4fUJnaUgjRTQz
R0V2R19eRylKaWNGeWRvUnpPI3lTQiYzSiVBSlZBMEdaTgp6VisyUTRsTDlOMDs3dnxXMkg0XypG
RShJLTNBUWlfV0FtTXNvSn5SNndRXmg4O0NseihUazVRJWtBYSY1IXhuZ28Kej48WS0mWVlZeEgp
fkUyJUpRN1Q+JHU0JXtmbGd5JlQhVF9iUWEzcDcrTz0hWTRuPSZkSXkqYzJfcT9eSStEPnU+Cnpy
fTxCNyRaVHZJRThnRHdiflYxPik0KiltKn4wNzlqNGIrP0Yrb2l0PjE1RElQQ1diWFhXaUNAdXRE
KFY4KmgjZgp6UF9KYU9va0REZCRGNVNWRUNecldBZSowU2V0O08xMFNRcyZlNDgwSDJyJE42RD1T
djQ9bSVXdytmKDJFYzwwV1kKemhpdnVrZDh4dCVjJi1MUDRneDstZisxVjU/ZGBwdlNpfmZATkQ0
Q35Yd09JZlhqIXtEUD9FdC1uPk5LO2k+fjlGCnpqdFJFYWYzYVlHJks3d21RXn15SHhYNH1iOVVV
REx6SjBeU2hOS1JQdk0hUj9nI0AhayYtIz9UV2tebTtQNlE3dwp6ZUs3QyROS2JjOUM5Q0YxSz0k
VV4tazUtYCsxYzN9T2dmY3pUaXRXRHIhdjt0VkEtLXxyRUlhdE55XjVaVnR2dHoKejF8O2NxYiMt
fVFie2Ztc3ZnbyNPblp7UWMyYmB7cTZ4SjFmd3c+ajFKUjE7MGVuX3k4QD1aJkwhYV93c2s/eTQr
CnpLMTJ+eyZhYj1CQyk4fHlhJnpQeFd7cGZrMnBlVHZHUXg3ZzxgTj50Z3BiTDVkPUh8YFRHblYm
UT4tS2lkYXZ+awp6eHsydCtZSHRKcGIqMmYqaXomWm5lOTBSK0ktMlp9aExMdzRUOHRzdElwZ1I5
VFV1ZDtCNlMkSl5UKkQrQHFgV1AKej5nI0AwPk5RVjJhIVBxUWdfTllPQT13ZC10cGBKTU5Xfnlx
RyFmR3tKUzFMTFdXZUAoY2x4Xzw4T304YlQzVDkpCnp4ZV9SOUhDQTYjbCh0diZAWWk0X1F8YnVv
QWp1OU5vK0BCeTRvTThacmlyaFBLTDMhfDFPYWclZlpoQnhXSzZCOAp6c3AoPCtmcHdXY2BJJSVa
XiU1SU9mN2BJZDJWWEZSJDl6eztSfUhhNTU/dmxhTyg/fWt6fVlxZkQ3TCVyeCZWPE0KemZBYUJ0
XzZXUjlDYjFSUlRvTXg0OyR5eTVKe0gpLTs5Z1kmTX4haF80TjNfP0koNXxFLWhMa2UpYStWVmVD
V2BqCnowZWVCWSNqeyNoJTRgSkRWU19DYD0zNlRxRnV+U29DeGVQRmlFVnN9NitpJHU2cWdqVWBn
c1Q1SiNiQykkandofQp6VWZGKUVlY1pCcShPeTI/M29RWXVHZGcybDA/PVZ8P0FXbiFlMCtAa2B9
ZztPJX15Mjh0R0ZPandZOWFjK1VZQ2oKejVrQDAoRDRkTTA5WG5+MnNkVEZVKGU7bTNEOUhTKGA0
IXVAWihuRnh4IWx7KytrTlpTdHg/Tz9xeS0oWmZJbHheCnp6V2tAJVp8dUhmTD57cVVlNmIoP1pD
fChicEZEQUxHMCRmKlNRcn17TzJnaDRodlBUdW17ZGQjQmVEbnAjLUQlbwp6ZDV1bD14NHpVR1p4
YzNLd3JwOHRvdVNfcmBkfEY8KFc2S0V6eD85TThwPW84dENDWHY2QXdQTClTXldUY1Y7cVcKel5a
aXFWTEkjWVpgYmVIVmJHRzhyPHg3Mnl8N3h0JXM/cTxJTWxKNSF4M0JOU2k0JSlVT0deM1M8VDN7
fjFsNVIzCnprMX18fVlCMEQjRn5pPEpse254YD1hbElKS0omd3dDQ0BaSUd0emRuP2ZUQHM+SEFP
dDNNRHEhO2A5Q2d6aDY/OAp6M0FZdFl1K0B8aGFYP3pUa3l5UVlfMSo7dzdWTT1TM2gkJUhDPz9O
QnhYKk1URVFeISVfNFBMIW47TFdWYkBkczAKekdqWC1uLVE3TFpeOzZmXz1+SmZAY0YpfiFlI1dR
Qi0zbEJFdk0rTVBSMj01VzlOK0VhMmUpdEVLQWJST3dlfXliCnpRfSEmYTB6fnpvbF84YU9ySmo9
dDVKVXdpOHw7TmFLblBINE5iciU7YCY7WUIwcEVWK3smdy09I2lxMktsenQ8NAp6IzghMWNmQ0xr
VyNzSlc/ZFdkUUR0UWIyUTUqK3pzcXBtcTs3fUAkYF54I3NqI19JXiY7KHIwI2tMbk5YeEBwbD8K
ejxBe1NWOFQmKlMoP3QrX3pXWVFWciZmc1BWX2AhSE1nSnI/ZSZORH1jVEF0bmB6TnwoQC0tdil4
P0tWRCokeSY2Cnp8RCZjTGJKPlgwVHpWRXFYSW18RXpncTJtVz9PcCVhYD9tcTF6XylWMyQ1Xjl1
KTJCTiRTdHpAYXRrdjNmUnJLNQp6VWRFVil0bVp0a0lmcko7JWomVDhwUkp6SCtKWDk/e1dKNnot
e0UlQFl5KlVtLUNyUjkwMDAwPE1OVU1uTFNUWkUKQ1EpN1BzCgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUmVzb3VyY2VzL3N0YXJ0QnV0dG9uUHJlc3NlZEAyeC5wbmcgYi9Tb3VyY2UvV2Vi
Q29yZS9SZXNvdXJjZXMvc3RhcnRCdXR0b25QcmVzc2VkQDJ4LnBuZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMzE2Y2Q2ODNlOTE1MzkxN2ZkZWZiNWEwZDU2NTExMTVkYTVjNzU4MC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCA2MjAyCnpjbVYtQTd7JXZfUCk8aDszS3xM
azAwMGUxTkpMVHEwMDIrYDAwMi0zMV5AczZqdUc7JDAwMDtQTmtsPFpjbWRVJgp6WF5eRT1kQj1P
Mz43SXRebygrJXolbTZgezF3SjR1SXhfP19ENVFjWiRtbDNhQzAyPn41THgwVXRxTSE+Z35kPTYK
ejVoLUtmOCQlSmNOLT5afnJFbSRPQiRnPjkwem5hbXAjJXxfZWVJZHZeOERWdXpkS0sjZSgmd2VR
ZX1ESSt+K3laCnpkRGowcT97ZVJKWiVfQis8WVpTVHQtSElzQy1oRXUtfX5QOCQ0NEsxXnZiWVg5
SV89TEpGMklMc28mMndGKV5ffQp6R1QjPGBgQFZocW9fK3JMPWY0O0h0NU0lWENseihpMjRIfFI3
QCstR2ZjQnxAYz59QlpkaSY7Zztgc01mWEtaWTIKekA0PHJ5cFZfbCMmalQ7TV9+TkYoPVJtdCFT
Xn4oOUpOZXwzRkljIzY7Z3ZAbmI8e2FBP3hOM2BHcENDaz1OUlgyCnpjTCVhfl87Q15DcTM9ZDN7
bno8SyROMXlwPDZXYnBxdHpKTXt7OCNeWFhubkgtK2J3JW1tWklDP1QpTWtGYld0dgp6e3Epbm5l
OVNTJmRAO2I4K3VQZ1FIRnhnWkUtMXhHTnZLYFg8czM7VnRGdFpWJVl3Q3EoJXktRlkwSD1uaDtk
a1YKejlYZlBLe192WWB6SW8+X2ZCRE9RalFKVjZ2OUJoe01RNUZMKS00TWJFY2pDcjlUKnRzPmco
JlBLeDMhbi1EZV5DCnpwc3ZVdkskPz1zTHB5NU5xMSYpO0B9MWd1NmxBODc7NmQzTzAwQG80eG9j
IShXYlNkdDlydmFGe3tDZkE/XmktKwp6TkFAcmN6KSU8ekpiOz12WihhbyswNVptQHlBU1hQaCNY
MiYyQmpmYSMjcjhZV1Z4MDRjQERtYEZaSWokKCFOZH4KenUoWDR4MUR5M1QkOEthcDF2Y25qNk1t
WEl1P2IqSV5la1Yje0wzaEVvKHNnUV5QUypIYVkobklHUlp0ZjRRdzBnCnpPfT5HNVI7X3NhU3xr
RV9DfmRhK05+ejZEb3hNOF9HZEJhWjAtYGAtN2R4PjZGKS1SMTxDYEw8PllVZ0ZAVDhNWQp6eD9z
dFlDMEYxQ0BIcHFlZChuV1c4Pm5KQmNvOTVRPCl3QXpCeHtxRzB3ZyZJc0p3WTsqTlYyWDJTZ2g0
YmFvK2kKeig+TiFCMXVkQDVVMEBWZ3tVbkN9ZnZmXkI1KiQzfG9PQXY8WGd9dlgzfEl4NjtHNl80
QkNpK0BYY21BRDM4Kl9ZCnpkKnN6UVh3fD85d3QtcGY/SEdvQUxzMDYhUnNXQGE+NW0pJCVsc1dA
SXs7Kj8/NylFb3tjJW5Oc34/OEgwfkxVJAp6b19ndmgxX3VXfTJ5cEheMDBiPEpwJDBJWlBNeGJ1
dXJmKzc9cm8mYmc5MDgrVEpjRj1UV09fU3l5UTd+WTNZeCMKendaSD09JjNkMzxmSVZ8eSEoa29t
Z0oyZil6TWZGKDg1JGI7NncyJjRmWG08IUshQC0tcG91ezxQbFFleU50Sy15CnpaYFZ0RyM7dXhq
K011VmImTC1ESyZESVd4O3NRcEBIOEFVODJRSDE+dythUSRlTjRoQCVvdVE+RyFoVSpgRjJURgp6
TXZXS2p2VzxTVEotbzQ7Y1g0cFRvYnlyLXZtQzQ5PENJPGImaElvNnBMMFJLJXVnQmRKJDExUTQ8
QTA8Nj5sejkKeiNyKUV+eE00bSZDV2t+OE1IN1FzMWtObH1ucX1+X0hTTTUrMCNBPX5PQz9qQCRg
PzcmVzZfKDcrKTZpJm0jKiswCnp1VCFXSU4wNzhaV3xObUhDbXdjb3UhP3NxTHR4aHppTEFeRDAq
SV9eZzR3RF9ZfUNQNFVqNGR4bDRUeXNQSTZwbAp6UFhST3YmXyleWigqTU43SU1WUDVCX0I0eWN0
c2hQYHBEYFVkVU9HRjQwZTRYVCozczB0eDdzNjBZRU1vPmE/VHkKenFlLShyY3NzeXhTT0RKYi1A
SldKPGxeT0puKV42YGNWQmhvUmlnO2UmRU8kM0h6fjReUExha2RBaHY0UWshIVprCnpKbkApTVNT
eyViITZGPG9MNl5fODVfYSVuRmxuN2hvYGFgeldkbzRXdkMqISQjflM1NFFgWjJ3YVRUb0lecktl
Pwp6V1N3b0Qldl99Q1dTJWpZQVFLO2BLbkF9a19AMyV7OXpxKWlJKzhMYy0pZGdfdz9nIz01TSFn
JkVrYXYhIU52fDcKem5tKighO29FcUBrM0tUNURgV3pSNEQ5KztNOElVYj1EYnZnKispRDNKWkpH
N3pTdU1GIzFER3Y+WjhufjZGKWhaCnolKHReO2xpOWdlcHhiO2FDbiEyJnRnfXFCOUcpVWRUWWRi
bERTNzk3JVkyK2BtQWBkazJjSCt1eGg4PDZiQnpxYgp6U2wpbmozRl4zJkp9YTFZKDBlelV4cyhm
PFc1S19iYDE7Z2BieFg7Y2klNkJmTiozYy1pZDxmclchZ2RVaUg8JGIKejxwVDlucjxaTD9LSV85
PDFITmhjV2VpfXN3VGhwMEdPdz5YOEY4bmIxNjdzXmdiOExSQGFVPUk5NU9xUGZaJXlSCnpLX1U3
PF9ISCEmTmJ3MHo5RHc1SzMyfVhnI2VCfEpLSWYkQD5wRzd0SCkyJmdrWUVPZVQ1T2hPTC1geUc4
VHZHQwp6SHxVSiUwMTFmYnlDYTtGbEVYVn4qJSNuKGZ1ZUVjPTlZKCFqKTJIUlkxVUlXdVd6WTR4
JE8/YnNtfGZjbWdqVH4KemE2R31+ITxsJTs1Vj87WGloZE1IdUBlWF5oXjQ8eSRLJnlDVnhzWEc1
NDVOSCNDMGxIQCpxQXYrV3hyZD9HTGBzCnpQMnhSZjJGYllBQlNrSj5RcztXISQ7I3VEfEx7UXZK
bEBrbkJoaUM1LUVgQzgmd2xvXlRpNk5nMiNVaFNWay1OXwp6PlJVdTdHO2FCdSZrVEt8cDxpPCND
YjRoNEB5NWdDcTh3X3pnM3dYUypafGE4P2IzPnlzLXJyP1QxY2p5STwpfEgKejlOPnw3OUlwR25e
LXRmTHZ0czNuIU92YSh4aWdQSHtgbWpuRnljX285fiU8U0I4KXYtVHkzPDIzSjVWZ2Jjc3BxCnpt
OChfYGtfJFBKOCMkVC1jRyp1Z1h6QFpebVE0IUprdT8xaCl4eCtHVGRhdl5AWnlqZXgkVTt3PTAq
WHtUY29ldwp6X1ZzMTRhJkolfEpBZ3QyTFIhWFhII1VCel97MjljaCglMCZrUEE3SDh9b24mKWdI
WjBAPSEtUj5ZbzlpTzQrRmYKeiRudlZlbFE9c0k4ZzE7QnVpWX5GLWFtTm4pQ1VTa3E3NHJaNF88
clN3ZmgzLUYlRHdAKk92SmxsWDFKSXU5VWQ9CnohZV8oeCptYyltd352X0Y0Pl4lcj8zeXViJj1v
fU50eD48JiR+JXszYGtuQDBDazdmcVAyODJnOykqTnd0WFEjUAp6VWU9TGN2dTRkSChXXnQ1IV80
SUNWcm8tTTxGPlc1IUl3VVh2M205RFF8ZkhWP0YoUHshWEVUcCRpfjd+PlpNPFYKeiVJZj9mbis5
TWpDRktBe2dPWUBhMUtfR3Z0S01BeSRAU0hmOXJhNmshezZQb0R4UlRqQzI0bDh7enw9ZTxIP0M1
CnpfbUM4YTU1ZERYRzF9UmFCZXt8QElaeS1uMiRaeldOOFF7czA5QW4yYikwNTd0NFEjOyU4bE9l
X2N0Nns3Y3xRdgp6PjU7SE1WQTlhK0ZZQ182WWUjJX4hYEFefiV3fksyNGM4d18mZSYwZHpNIS1g
JmIpSiNRc2JvcFAkZ3VvYzctfW4KemxqZ2liLT5fbEI/Z2hnT2olPHdfcH18TEAyaU8xa2BtTVdu
P19QbHFvQFFfckJjM3NsY2hiPHEyRmgmKDQ+KVB+Cnp7XmFea3pDXjVjZSZQI0xsakxtdilgTEhM
b3FmJnxKPShNI3NGQkdyUiNCY2d4KStXKFNzJUZrRkR+Yk1mLVQkRgp6X31FQip3YEpGXlRgTiRF
KXZvfC1ZMCUrPnhkOT9SWTFfQU5VcjgpdHdzUyt5PFBMYkFQVCZQbC1fbG1UWDYoUV4KemdEaXN3
S25AdkpAWnlVdi1hbl5yK0NfSXB0Z245TXQ1MHYrd3lwWj9nK2t4eUl9cm91aHV1dGZWVGVVY18z
OWAmCnpsWThFVSlgb3RyeHoxaSQ/R0FLT0Nyfjx8MFVxWktQUXZsbFoyVThxZVd2WlhANDRybStx
KElRJjhzWXM0fT5oMwp6b2tNPm80U1JzMzw2OTdrTiRoc00kKDxWOTRBIVlsdUhQZSVJZD58MlRM
NGs4O2VkdXk5bUUlSHcjRGI4RWwqc2IKeko5K2gwU0MyJC1eREtAK0ljTD5AWFRydjtxb3QwMUBR
SDUjQm87QlJ4JXdJfFN9cFM8X3FlcyQ8YElQfC1DRTF8CnpFO2V5Jk8lNVgrTkt0fmZwI3lsMERf
Kyt7ZXsje1puXnBDc247emN1end5MX1HdShZcDNXZXEqKUhneExvbHREPgp6bTNfTWw8Nz5LU0pp
T2BRcFNTYUs7WUFrP1FYQDVhZ2ZTTXhUKShfP18tejdNN2VxJUdYaztLKGBNbVNhOD4rS1kKemNL
MURaY1QqZz83UmNDTEJVUnJSaiVUR0Z7bXwmdSF0X247YUFSKVZ4VXNEcFlDeEJ8KmM+IzAlNDIw
eG93ZnpnCnpmfW4hdztUenYwKyNOVHJONEJSUDgjSnpMZHRkJGF0SUdoJTlSWVgoc0NySGEtUHV+
IV9kIVBXI3klY3RWYyE/dQp6UnZgdjQ4SXVGS3dETDwwKVBpNFlMemw2IXRZNFhPXm0taVJOcUU2
ND1VdFQoUEJAfE1aTmZicD98REFfNHx+WFoKeiprK0ktTVJLU2Y0cGxWYmNHX31ZK1BGWipnaG1A
fjxmN1VQWUF3YDgtMiNUOUlMdDY9Mi1AenoobncmVEB0Q05zCno/ZEh2ISQwLVFsMExgNzMwcmNe
WkpFQEc8JHlrMy03Tmk9ZEx6PEhteHdQe3xFeEVSS3hfSig4bkBeKyhqKn17aAp6IyZhKX1EO2VA
ZT1VZjRROyl5NXJYSjtrPCR9NncqUWpFTDhMUUIxT0dBMGlqZTY9N14wWip1XyZIe0cjY0Q/JVEK
enQ1YVY9UmtAJWBQaDhzMWxXbDlXKTxVZnM9OXBEfGJ4Tmc3aGkrfT97R3NgNjBnUzhmSk9SV1hk
PG1rLU5YeGtHCnojQGF+TEhJQXtOZC12fEdlTHwkb0BYJkJTZSZ9JWtII2R2KFFlJE9Xb2ded19w
S2BGTWpkUXQqSUgre2VpWjVRWQp6eEdqSklAe3EtTl8/aWd2Uj0ocSUwbnZ8YUVzY1VZU0xUOUJf
NmVWTktEaV99R3VUQjc3eGg8OWQxOVlWakslJEsKelc0e3RkenZlNSYyXio7byNCRU1XayFSajxM
KU5sVF55MXVDRWtnem15U2p2cyoqPCN5TT1TOGt4REIwMlphSFkjCnpNcTYjOSN4Zlc2TiphM0kw
WTtjanQoejNSJSRJaElgMzdSZ089bG48SD51VWZVYWdHZEhpOTRWSExxeWVPMF5SUgp6Qz5fOVFq
LXwrNDN9bV9DUUA+Sz8kckR8MyR1Xm12dChMM3twV3t0RTJXbl4tVCQrYCQ0RWZHb0l9Wm5ge35s
VVEKeiNFJW40O0BwRjMlWjUoQDsmV3FlQlJyQVU4Mzc8eWIjNn10dnJleStreE1EZDxGWGQ9RChp
SkQpeEtLcEVYPSUwCnpuWSNMMFVmOXoxbmNJOGJeUFdUYV40PzBuUGBrZG9adnp9fGZIX1FDYiMk
PCsxMkQmNl9Zb1R6eCNTdjMtZGdhaAp6azVaQEFjLXAtakwyWSU4dmd9dkNgcWRGLWpTfklYZyYo
VmEkakZYcipHUVRVaHl2TFRKYW1gYEs9WGxgeUUwPEIKem4/SFd4JEVWZDw9Mk87ITVCKjU3c3BG
Xlp6Pz45Q2w/QHA+dzU/bVd3IUptRF5wWjxZaXlnMnQ/KnRRJj5SLVBDCno9UHFRb0EoTyVicHU1
anBeYUk3MEYmbEt9QzZgP0NoZ3FsT3R3biRNcHdwektqcEohNjwwPipxayE3TENhWSYlfQp6M0Z2
fmoqUERxbE8zfnN1K2k/NmBifUskU2x2P0BJQ2xzKm80K1RpNnlWTG5yZ18qWjgkJD95XnZZUG95
NGIoelIKemUzcExvaGI2b2lTPDVzNFhTJHkkcCU3WDtQQFE9NCR0U0JUP00kc0gkdS13cDZZKFl7
Yz0qYmJVeEomRTJ8IUpwCnpCNjd6SVcxR0RDJUJBPXMyOFMqJmlBQGc5KkhMUHE3VXJ6MlBPcGAk
JH1TZnJ1S3tENE5tQiY3ZmNEQDY0Pm9gSAp6U3FYfWxici1DQWU+fn1VJUEoajZAVlMqTVVOPmlL
PUlacCMqKkV8UUFEPztyajJ5RGhsRDd0RyU1a2hhPm5rJUoKemJKZCZaWSo/M3xQTXFeRmlidio0
OyVEKEs0YGJ9JjNyNiF8X3I8M0dReStudjFpc3w7fDh9VDhycyZrXmY+Pmk/CnpxbGEkM2BSMjl7
ZTk0Xn0rIVcjPClpLSY7bnslRkB3Z1hrUDVGSjQyMWozbEQ0a2dqTT8hMFRlYGdRY292KDgrOwp6
X1BuKH1XPUhTPUlFT01qZ3h5RmhjVndOOVI8ZktRZWh3Y1ZaR09WR1g2QFBeNlQ2aXlhJm83SlQk
ODU+PUNnaz4KelEwYHB3MWZ4SmojfjlFRVZqfkR3TUF9MFNKdjFENUA8JTNCTjtHIURuKXIkNmUr
aTx1N3NlPUtJPnY9TW5hMjtFCnpJZThZd2s2TVhFJSNefG1tWW02KjMyTW99QTtVS3sqVHY3V0NW
JntWWWRFOTMzcTZjdVNNYDRGbWFwLTVTNmE1UAp6PilDa0UjKzdrWntrYjQ9bEpgblVMVSFoRENo
OG90b00oKExifnBacktgZGhHcjtkXnt4bEBubEtXbjRUUFRSQ0UKelNrQCgrbGgta1VTVCR9bGtV
anFSPEJRfEBVK29oVjZOeWBpcC0yRGkoUGk8QT88WG5MRkpoS2dYWT5LM3R9fHlvCnold3IzOWVs
SFE8IzJeO0J0czEkS0dyM2JvLWhzJUJRQndSTiVkUER5V2txPDUxcmgzczBteWFOVVJRbXRQfTx9
JQp6ZysxYCMxTHYrQHYtJF5OR3MzUm45N0dwTGZIODRuPk8ob0YwQm8/UWh3YUZSU0FYfmlfP2Bf
c2R8ZG10Klh8fX4KemNifDF3b0FGQURFekxhMHdmRVIja0codjAoc0FyMjlNdzZ+dX5mJjdEZF9k
clVtdTlgJUM3aW8qP3t3UEc7RiVwCnp0eXtQMyt6Kn1tZF5+RjM2MShVNHU8djBma3I7KVF5QUsm
TD07KDItWVhDa1R3PDxzUiN5N3JrO0loanVgdkFWewp6VnJKUWB4OEF6emBgYFFpMCN0Y2BMRVdC
P0plMUx8YjQ3bVVNanB7JFp+SFVgQ20zYUNATmAjP0Q+NnlvQFBZZHUKelNoKU8qPCRFdncjS2xN
RnIwZStqYHRPUU9rOEo5Qzt5PDROZmJyS31kK3BURkl8Zn4yV0lJPEtTJUNMdWVDemJaCnp0Rk9N
Z19xO3prPz9ZTHk5c2xTZmtNMU1LQElPaDs8U3V4YHY9TkpqdGdLJWhYP0p7QT95PnB2PWJzZ2lk
QDUoMAp6ND1rV2AwUSQoRj48VmBWeU1hVEFhVT9jej1Vc1BCdFgjUXIrVHN8bjZeI1loe24lclZK
QD1ofHxJVFJhPUQ5cUUKejUxLVpoP2ZDbU8yUDRPV0BsPDZyS0ZzZ0M9JVMwM04xVD4jJisxfTRg
fFB1MFUlY1hyP0RRVCQ8OFJec0IwU3g5CnpBPUdFZl4jZGVGMEpUI3VrTHV6K141KyRSQGZDLSZC
RWphMDs0bk1WcChfSXdMPj1OQjVFK05CTC1EKWMtZExRcwp6MWZwQD9aVGllSiZ5MjxJaktgenNl
dlRhZnBwWHwyPmg7dGA+e2hrc08oVEgoKFRUdzAkYiRueCFqWmk1Y3x7RTkKenAkdkBeY29qVSho
NWZBZEJieSVDaG85ZU5CTHtMSkMtTnNwY059QiNacT5eQU9GZ2piamkoaXQjI1RPdykka24jCnpq
eXIwXmo/K2JWUHcyPTAxU0drfXEyMncmNkhvTi0rUFExak1ePUFpcGt0cE0xKWcxclR5RmhgVFgp
QFkjfnM2dwp6UHhUY09FKmpLbXQkPTZFZFRmXmBNO0NyTWdnTkkmLXZSe0hUUU1mK3YkWSVgdUch
VSZpXzF6Xns5VkRXLVpAan0KemxtM0RKdUFiaU4rb3pORns+IX0hS0wzfVctfVRDYCt1dFk3N1di
e3A2TntNbC1oMXpZc0EtWiMxdzN+aWwkTDkkCno4Jl51ak9NJW4mbz4tbWowX1VYWEheKEsjQ3B0
RChsNFNUXk8wfktIPTBOe2MhaHJrcShAIXMwemtZcEJlQ2NzVgp6ZUUhaC1uOTw/ZXIxJk5WdjUx
S3EhMUF6I0gmXm5kVEwqbEpnTFFMNnglLXFzIUxCI3tmWHVPUlFvUnU4VCROfTkKenEwP3wmKjlA
Tkw7cHJ5Z047aVVhejN7PmReWHxYentfITA8Y2tEaiUlcm9hdip0XmtxVW1MZVZ5VyhiayZNJHVQ
CnppJFJKZGY5ZkdkSzVXVSFKazMyKmEmP35FO0YwQ2RBeHd7bHYzRztjKHpETSNgQDBjbipqcEpf
TmYwZzQjOVRHegp6UylEUW5eVEBzSSF4TkNQaUEyMmFfYDU0UkhoZy0ren1odXkyWng0LVc8UChK
TllGaklfakdVbTtwUExlQVMzYXwKejVme1pmbGdnZikwTGsrbHh4cGl8RSYoREo8aGRTZU9yZV4p
JiQ8RlEtVTtwZz19JipVakB5amkjXjdmVzxhfjxNCnpBO0dkXjkzc248ZEdyQkBDWGduSU9ue2tW
Q3ZmdGBGNmlWX1BkJjlUSXk8RmpAIzRqTW16fSlxOzM9bl4odFgtIwp6cnd6bi0mZH5nIT5YNnY4
Y2hCTVleN3ZAJTtGMCpkcmpzdmtlUjx4RjlYc2E3SkNiPTNpK2phTXtnViVYa3ByRVcKeiRlNT18
R2tFQ0gkT31II1pUeyVmKyFTQ0khezFoKW9HbnxuPzkjWHotQCpNNjlWWX1ibjYmY0g7Pjc/PSFg
biVLCnpQRXZOMGExSS1qaE5vcUpqQl5nPWhZa1FTcmV+ZnB6ekpUaXJ9VzNUdTk8X2lrUiRpSF4h
T2EqT0l4Pll7bnpTNwp6X3ZNI2dla3smfktaPSFHJWBXOEpLfGw8cDFkeFo4JXtsZCl3PHYtTzd7
JWRSOEkqM0tRaFhwcy08YX1AMFl7KTEKekRedCFLJXtsOHFDTkQpK0hzXyReMFg3XiN2SE59bVg2
UlB7aFFoKDZPUEFncnlZS3k+RyhnYj8paFhsYlA8Zns0Cno1SisyWCVBKHpZJG0jZnspMT5oRCVC
PX1WKztgJWV1ZG8/UVV3fXRyJXA2VEJwSlAtQ0g4MUYzciFFeG1me3coYAp6Q35nbTBlWCplVlJ4
OTRqfDFkNWh4NWNrYHpKZm12V3M8PkFNXmZXQ2hTSmIyMG0tYGYwfkYzdD0mfmJBZWRQS1EKejQ5
M1JENnJQVHJKcFJnTjRlMDB9OWVKc0NqLX0rdVZhcERUS1p8QERTZ0czdEZxOWBFel87VzU+JmNQ
TzF8QXVDCnpeTkZKejlHKyRYWF9qVDMldiZIZjg5YVRzPmx7fnM7emJ8WUdjSjNuVGdFXmluWkRH
UT05dXo7PVNLemM9PFdYYQp6N1E/cT11NmJ4UTBtTW02akQrKis7fnM0P3pJXj5Ab0N1O3BHRylH
MUdObTVseCZpPkMyXiF4bldlM0lqO0pmO2sKekFacnpEanc0QEVWXisyKXA3TjNzKlBOS2tKbVls
RTxIXmY/QGtIbF9ASUNFfE8wRTc3X2R3akV7WiV9eXtGXnUqCnpSXzg8eEl9YmUqdU0zTG8/S0Yk
LSlIZGhQJTBAdWNDNUV5KDgqfF9zNFMzTSNCaz8xfnVnQVVTS2JQUilxWll0dwp6QjBpTGYzKEw5
aiNRTXMoPXs/YDhEZCF1e1AzI3R2WXVIUlhNOVBGc0tIRmZ8czx9ZylGWVZ1fHwybG5RQWc2aDgK
ejxGSkt+dEwrY29jO2soNHtebUVvYFJ+d2E5PTdIS1ozJj1DayN2OUQrXiZsWSUhYXRJZD8zSkUk
UlMyQ3tLeDsqCnpwQHk+IyZOMXJmS1UzJFJ3N1A8b3lgQX5XWD9paTl6VklGMz9UaWI/UHZZSWl7
YWR6ZGBFSlBDZWw+MVowRjQqSAp6c0FfVGklTU5RfU4zTSorblYrflczR3E9dXJ6JSRZX2xFe1Bs
aHI/bTVyXiF5Km0zLUc3QEgkfjk8V1NwJVVOcHEKWWUtIyl+blFtS05nOCU+azA3KnFvTTZOPCRm
PGZ0S29kNXM7CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA0ZjRiZmVlM2FjZDVhYWFjNTZlZjdl
NjBhOWJhMjU1YmY5YjAwMzE0Li4xNWY4NWRkYzY5MDMxY2ZmMjhmZGU2OWRjMTdjMjllNzkwMTcx
ZmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTYzMiw2ICsxNjMyLDcgQEAgX19aTjdXZWJD
b3JlMTJFdmVudEhhbmRsZXI5bW91c2VEb3duRVA3TlNFdmVudAogX19aTjdXZWJDb3JlMTJQb3B1
cE1lbnVNYWNDMUVQTlNfMTVQb3B1cE1lbnVDbGllbnRFCiBfX1pON1dlYkNvcmUxM3RvRGV2aWNl
U3BhY2VFUktOU185RmxvYXRSZWN0RVA4TlNXaW5kb3cKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3ND
b250ZXh0QzFFUDlDR0NvbnRleHQKK19fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0MTVkcmF3
TmF0aXZlSW1hZ2VFUDdDR0ltYWdlUktOU185RmxvYXRTaXplRU5TXzEwQ29sb3JTcGFjZUVSS05T
XzlGbG9hdFJlY3RFUzlfTlNfMTdDb21wb3NpdGVPcGVyYXRvckVOU18xNkltYWdlT3JpZW50YXRp
b25FCiBfX1pON1dlYkNvcmUxNkZvbnRQbGF0Zm9ybURhdGFDMUVQNk5TRm9udGZiYmJOU18xNUZv
bnRPcmllbnRhdGlvbkVOU18xNkZvbnRXaWR0aFZhcmlhbnRFCiBfX1pON1dlYkNvcmUxNkZvbnRQ
bGF0Zm9ybURhdGFDMkVQNk5TRm9udGZiYmJOU18xNUZvbnRPcmllbnRhdGlvbkVOU18xNkZvbnRX
aWR0aFZhcmlhbnRFCiBfX1pON1dlYkNvcmUxNmNvbG9yRnJvbU5TQ29sb3JFUDdOU0NvbG9yCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMGQwZjUxYjkzNGYxZjFjMDBjNDdjM2ZmZWQwNjI1NDk5YzQ3NWJkOC4uZWFjN2U1NWNkZDg4
YjhjN2I3YjFlNWM0OTNkZGM3ZTVhMWZjMDgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTMyLDEwICs5MzIsNiBAQAogCQkz
MTlFNjlCNTEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTlFNjlBRjEzMjk5QkJE
MDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAgKi87IH07CiAJCTMxOUU2OUI2MTMy
OTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTlFNjlCMDEzMjk5QkJEMDA0QUM5MUEgLyog
V2ViS2l0QW5pbWF0aW9uTGlzdC5oICovOyB9OwogCQkzMTlGQkQ1RjE1RDJGNDY0MDA5NjQwQTYg
LyogQ2FjaGVkSW1hZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxOUZCRDVEMTVEMkY0NDQwMDk2NDBBNiAvKiBDYWNoZWRJbWFnZUNsaWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTMx
QTk2M0E1MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvbi5wbmcgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTk2M0ExMTY1NUQ0MjYwMDBENDY0
NSAvKiBzdGFydEJ1dHRvbi5wbmcgKi87IH07Ci0JCTMxQTk2M0E2MTY1NUQ0MjYwMDBENDY0NSAv
KiBzdGFydEJ1dHRvbkAyeC5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxQTk2M0EyMTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvbkAyeC5w
bmcgKi87IH07Ci0JCTMxQTk2M0E3MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvblByZXNz
ZWQucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MUE5NjNBMzE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25QcmVzc2VkLnBuZyAqLzsgfTsK
LQkJMzFBOTYzQTgxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZEAyeC5wbmcg
aW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTk2M0E0
MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvblByZXNzZWRAMngucG5nICovOyB9OwogCQkz
MUMwRkYyMTBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUIwRTRDRUI2
RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCAqLzsgfTsKIAkJMzFDMEZGMjIw
RTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkYxQzBFNENFQjZFMDA3RDZGRTUg
LyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCAqLzsgfTsKIAkJMzFDMEZGMjQwRTRDRUI2RTAwN0Q2
RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkYxRTBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0
VHJhbnNpdGlvbkV2ZW50LmNwcCAqLzsgfTsKQEAgLTgxMTksMTAgKzgxMTUsNiBAQAogCQkzMTlF
NjlCMDEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRBbmltYXRpb25MaXN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTMxOUU2OUIxMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmlt
YXRpb25MaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRBbmltYXRpb25MaXN0
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE5RkJENUQxNUQyRjQ0NDAwOTY0
MEE2IC8qIENhY2hlZEltYWdlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENhY2hlZEltYWdlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMx
QTk2M0ExMTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvbi5wbmcgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBzdGFy
dEJ1dHRvbi5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxQTk2M0EyMTY1NUQ0
MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvbkAyeC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAic3RhcnRCdXR0b25A
MngucG5nIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFBOTYzQTMxNjU1RDQyNjAw
MEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBzdGFydEJ1dHRvblBy
ZXNzZWQucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUE5NjNBNDE2NTVENDI2
MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25QcmVzc2VkQDJ4LnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9ICJzdGFydEJ1
dHRvblByZXNzZWRAMngucG5nIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFDMEZG
MUIwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFDMEZGMUMwRTRDRUI2RTAwN0Q2RkU1IC8qIFdl
YktpdEFuaW1hdGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YktpdEFuaW1hdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQzBG
RjFEMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTQ1MjAsMTAgKzE0NTEyLDYgQEAKIAkJCQk4NTEzNkM5NDBBRUQ2NjU5
MDBGOTBBM0QgLyogc291dGhFYXN0UmVzaXplQ3Vyc29yLnBuZyAqLywKIAkJCQk4NTEzNkM5NTBB
RUQ2NjU5MDBGOTBBM0QgLyogc291dGhSZXNpemVDdXJzb3IucG5nICovLAogCQkJCTg1MTM2Qzk2
MEFFRDY2NTkwMEY5MEEzRCAvKiBzb3V0aFdlc3RSZXNpemVDdXJzb3IucG5nICovLAotCQkJCTMx
QTk2M0ExMTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvbi5wbmcgKi8sCi0JCQkJMzFBOTYz
QTIxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uQDJ4LnBuZyAqLywKLQkJCQkzMUE5NjNB
MzE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25QcmVzc2VkLnBuZyAqLywKLQkJCQkzMUE5
NjNBNDE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25QcmVzc2VkQDJ4LnBuZyAqLywKIAkJ
CQk5MzE1M0JEQjE0MTk1OUJCMDBGQ0Y1QkUgLyogdGV4dEFyZWFSZXNpemVDb3JuZXIucG5nICov
LAogCQkJCTkzNzA5MThDMTQxNkQ4NkIwMDQ3NzMzMyAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lckAy
eC5wbmcgKi8sCiAJCQkJNDZENEYyNDgwQUY5N0U4MTAwMzUzODVBIC8qIHZlcnRpY2FsVGV4dEN1
cnNvci5wbmcgKi8sCkBAIC0yNjAyMSwxMCArMjYwMDksNiBAQAogCQkJCTg1MTM2Q0E4MEFFRDY2
NTkwMEY5MEEzRCAvKiB3ZXN0UmVzaXplQ3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJ
MUFCMUFFN0EwQzA1MUZERTAwMTM5RjRGIC8qIHpvb21JbkN1cnNvci5wbmcgaW4gUmVzb3VyY2Vz
ICovLAogCQkJCTFBQjFBRTdCMEMwNTFGREUwMDEzOUY0RiAvKiB6b29tT3V0Q3Vyc29yLnBuZyBp
biBSZXNvdXJjZXMgKi8sCi0JCQkJMzFBOTYzQTUxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0
dG9uLnBuZyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJMzFBOTYzQTYxNjU1RDQyNjAwMEQ0NjQ1IC8q
IHN0YXJ0QnV0dG9uQDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJMzFBOTYzQTcxNjU1RDQy
NjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZC5wbmcgaW4gUmVzb3VyY2VzICovLAotCQkJ
CTMxQTk2M0E4MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvblByZXNzZWRAMngucG5nIGlu
IFJlc291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDM1YzMyMzI4
YzM0M2EwZjU2OTMyOTZkNzA1NzExNzczMDhiYWFiMjkuLmQ4N2FkZTEzMTcwZmZjNDhkMTQ1YTEw
ZjJkNjBhY2QwNjcyNWE5YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIlBvcHVwTWVudS5oIgogI2luY2x1ZGUgIlBvcHVwTWVudUNs
aWVudC5oIgogI2luY2x1ZGUgIlJlbmRlckVtYmVkZGVkT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW4uaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1
ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgogI2luY2x1ZGUgIldlYkNvcmVLZXlib2FyZFVJTW9kZS5o
IgpAQCAtNDcsMzM0ICs0OCwzMzYgQEAgY2xhc3MgTlNSZXNwb25kZXI7CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotICAgIGNsYXNzIEFjY2Vzc2liaWxpdHlPYmplY3Q7Ci0gICAgY2xhc3MgRGF0
ZVRpbWVDaG9vc2VyOwotICAgIGNsYXNzIERhdGVUaW1lQ2hvb3NlckNsaWVudDsKLSAgICBjbGFz
cyBFbGVtZW50OwotICAgIGNsYXNzIEZpbGVDaG9vc2VyOwotICAgIGNsYXNzIEZpbGVJY29uTG9h
ZGVyOwotICAgIGNsYXNzIEZsb2F0UmVjdDsKLSAgICBjbGFzcyBGcmFtZTsKLSAgICBjbGFzcyBH
ZW9sb2NhdGlvbjsKLSAgICBjbGFzcyBHcmFwaGljc0xheWVyOwotICAgIGNsYXNzIEhUTUxJbnB1
dEVsZW1lbnQ7Ci0gICAgY2xhc3MgSGl0VGVzdFJlc3VsdDsKLSAgICBjbGFzcyBJbnRSZWN0Owot
ICAgIGNsYXNzIE5hdmlnYXRpb25BY3Rpb247Ci0gICAgY2xhc3MgTm9kZTsKLSAgICBjbGFzcyBQ
YWdlOwotICAgIGNsYXNzIFBhZ2VQb3B1cDsKLSAgICBjbGFzcyBQYWdlUG9wdXBDbGllbnQ7Ci0g
ICAgY2xhc3MgUGFnZVBvcHVwRHJpdmVyOwotICAgIGNsYXNzIFBvcHVwTWVudUNsaWVudDsKLSAg
ICBjbGFzcyBTZWN1cml0eU9yaWdpbjsKLSAgICBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKLSAg
ICBjbGFzcyBXaWRnZXQ7Ci0KLSAgICBzdHJ1Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsK
LSAgICBzdHJ1Y3QgRnJhbWVMb2FkUmVxdWVzdDsKLSAgICBzdHJ1Y3QgVmlld3BvcnRBcmd1bWVu
dHM7Ci0gICAgc3RydWN0IFdpbmRvd0ZlYXR1cmVzOworY2xhc3MgQWNjZXNzaWJpbGl0eU9iamVj
dDsKK2NsYXNzIERhdGVUaW1lQ2hvb3NlcjsKK2NsYXNzIERhdGVUaW1lQ2hvb3NlckNsaWVudDsK
K2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBGaWxlQ2hvb3NlcjsKK2NsYXNzIEZpbGVJY29uTG9hZGVy
OworY2xhc3MgRmxvYXRSZWN0OworY2xhc3MgRnJhbWU7CitjbGFzcyBHZW9sb2NhdGlvbjsKK2Ns
YXNzIEdyYXBoaWNzTGF5ZXI7CitjbGFzcyBIVE1MSW5wdXRFbGVtZW50OworY2xhc3MgSGl0VGVz
dFJlc3VsdDsKK2NsYXNzIEludFJlY3Q7CitjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOworY2xhc3Mg
Tm9kZTsKK2NsYXNzIFBhZ2U7CitjbGFzcyBQYWdlUG9wdXA7CitjbGFzcyBQYWdlUG9wdXBDbGll
bnQ7CitjbGFzcyBQYWdlUG9wdXBEcml2ZXI7CitjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CitjbGFz
cyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDNEOworY2xhc3MgV2lkZ2V0
OworCitzdHJ1Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKK3N0cnVjdCBGcmFtZUxvYWRS
ZXF1ZXN0Oworc3RydWN0IFZpZXdwb3J0QXJndW1lbnRzOworc3RydWN0IFdpbmRvd0ZlYXR1cmVz
OwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGNsYXNzIEdyYXBoaWNz
TGF5ZXI7Ci0gICAgY2xhc3MgR3JhcGhpY3NMYXllckZhY3Rvcnk7CitjbGFzcyBHcmFwaGljc0xh
eWVyOworY2xhc3MgR3JhcGhpY3NMYXllckZhY3Rvcnk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJ
TlBVVF9UWVBFX0NPTE9SKQotICAgIGNsYXNzIENvbG9yQ2hvb3NlcjsKLSAgICBjbGFzcyBDb2xv
ckNob29zZXJDbGllbnQ7CitjbGFzcyBDb2xvckNob29zZXI7CitjbGFzcyBDb2xvckNob29zZXJD
bGllbnQ7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKEFWRk9VTkRBVElPTikK
LSAgICBzdHJ1Y3QgR3JhcGhpY3NEZXZpY2VBZGFwdGVyOworc3RydWN0IEdyYXBoaWNzRGV2aWNl
QWRhcHRlcjsKICNlbmRpZgogCi0gICAgY2xhc3MgQ2hyb21lQ2xpZW50IHsKLSAgICBwdWJsaWM6
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKSA9IDA7Ci0gICAgICAgIAot
ICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKSA9IDA7
Ci0gICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IHdpbmRvd1JlY3QoKSA9IDA7Ci0gICAgICAgIAot
ICAgICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBwYWdlUmVjdCgpID0gMDsKLSAgICAgICAgCi0gICAg
ICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHVuZm9j
dXMoKSA9IDA7Ci0KLSAgICAgICAgdmlydHVhbCBib29sIGNhblRha2VGb2N1cyhGb2N1c0RpcmVj
dGlvbikgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKEZvY3VzRGlyZWN0aW9u
KSA9IDA7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIGZvY3VzZWROb2RlQ2hhbmdlZChOb2RlKikg
PSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSopID0g
MDsKLQotICAgICAgICAvLyBUaGUgRnJhbWUgcG9pbnRlciBwcm92aWRlcyB0aGUgQ2hyb21lQ2xp
ZW50IHdpdGggY29udGV4dCBhYm91dCB3aGljaAotICAgICAgICAvLyBGcmFtZSB3YW50cyB0byBj
cmVhdGUgdGhlIG5ldyBQYWdlLiAgQWxzbywgdGhlIG5ld2x5IGNyZWF0ZWQgd2luZG93Ci0gICAg
ICAgIC8vIHNob3VsZCBub3QgYmUgc2hvd24gdG8gdGhlIHVzZXIgdW50aWwgdGhlIENocm9tZUNs
aWVudCBvZiB0aGUgbmV3bHkKLSAgICAgICAgLy8gY3JlYXRlZCBQYWdlIGhhcyBpdHMgc2hvdyBt
ZXRob2QgY2FsbGVkLgotICAgICAgICAvLyBUaGUgRnJhbWVMb2FkUmVxdWVzdCBwYXJhbWV0ZXIg
aXMgb25seSBmb3IgQ2hyb21lQ2xpZW50IHRvIGNoZWNrIGlmIHRoZQotICAgICAgICAvLyByZXF1
ZXN0IGNvdWxkIGJlIGZ1bGZpbGxlZC4gIFRoZSBDaHJvbWVDbGllbnQgc2hvdWxkIG5vdCBsb2Fk
IHRoZSByZXF1ZXN0LgotICAgICAgICB2aXJ0dWFsIFBhZ2UqIGNyZWF0ZVdpbmRvdyhGcmFtZSos
IGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IE5h
dmlnYXRpb25BY3Rpb24mKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzaG93KCkgPSAwOwot
Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5Nb2RhbCgpID0gMDsKLSAgICAgICAgdmlydHVh
bCB2b2lkIHJ1bk1vZGFsKCkgPSAwOwotCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sYmFy
c1Zpc2libGUoYm9vbCkgPSAwOwotICAgICAgICB2aXJ0dWFsIGJvb2wgdG9vbGJhcnNWaXNpYmxl
KCkgPSAwOwotICAgICAgICAKLSAgICAgICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclZpc2li
bGUoYm9vbCkgPSAwOwotICAgICAgICB2aXJ0dWFsIGJvb2wgc3RhdHVzYmFyVmlzaWJsZSgpID0g
MDsKLSAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxiYXJzVmlzaWJsZShi
b29sKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxiYXJzVmlzaWJsZSgpID0gMDsK
LSAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRNZW51YmFyVmlzaWJsZShib29sKSA9
IDA7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBtZW51YmFyVmlzaWJsZSgpID0gMDsKLQotICAgICAg
ICB2aXJ0dWFsIHZvaWQgc2V0UmVzaXphYmxlKGJvb2wpID0gMDsKLSAgICAgICAgCi0gICAgICAg
IHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VU
eXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgaW50IGxp
bmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSUQpID0gMDsKLQotICAgICAgICB2aXJ0dWFs
IGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkgPSAwOwotICAgICAgICB2aXJ0
dWFsIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgRnJhbWUqIGZyYW1lKSA9IDA7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIGNsb3NlV2luZG93
U29vbigpID0gMDsKLSAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBydW5KYXZhU2NyaXB0
QWxlcnQoRnJhbWUqLCBjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBy
dW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSosIGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICAgICAg
dmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkgPSAwOwot
ICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmKSA9IDA7
Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KCkgPSAwOwot
ICAgICAgICB2aXJ0dWFsIEtleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgPSAwOwotCi0g
ICAgICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0ID0gMDsKLQotICAgICAgICB2aXJ0
dWFsIEludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBjb25zdCA9IDA7Ci0KLSAgICAgICAgLy8g
TWV0aG9kcyB1c2VkIGJ5IEhvc3RXaW5kb3cuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlk
YXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYsIGJvb2wpID0gMDsKLSAgICAgICAgdmlydHVhbCB2
b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmLCBib29sKSA9
IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xs
KGNvbnN0IEludFJlY3QmLCBib29sKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwo
Y29uc3QgSW50U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0JikgPSAwOworY2xh
c3MgQ2hyb21lQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJv
eWVkKCkgPSAwOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEZs
b2F0UmVjdCYpID0gMDsKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCkgPSAwOwor
ICAgIAorICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCkgPSAwOworICAgIAorICAgIHZp
cnR1YWwgdm9pZCBmb2N1cygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpID0gMDsK
KworICAgIHZpcnR1YWwgYm9vbCBjYW5UYWtlRm9jdXMoRm9jdXNEaXJlY3Rpb24pID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKEZvY3VzRGlyZWN0aW9uKSA9IDA7CisKKyAgICB2aXJ0
dWFsIHZvaWQgZm9jdXNlZE5vZGVDaGFuZ2VkKE5vZGUqKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqKSA9IDA7CisKKyAgICAvLyBUaGUgRnJhbWUgcG9p
bnRlciBwcm92aWRlcyB0aGUgQ2hyb21lQ2xpZW50IHdpdGggY29udGV4dCBhYm91dCB3aGljaAor
ICAgIC8vIEZyYW1lIHdhbnRzIHRvIGNyZWF0ZSB0aGUgbmV3IFBhZ2UuIEFsc28sIHRoZSBuZXds
eSBjcmVhdGVkIHdpbmRvdworICAgIC8vIHNob3VsZCBub3QgYmUgc2hvd24gdG8gdGhlIHVzZXIg
dW50aWwgdGhlIENocm9tZUNsaWVudCBvZiB0aGUgbmV3bHkKKyAgICAvLyBjcmVhdGVkIFBhZ2Ug
aGFzIGl0cyBzaG93IG1ldGhvZCBjYWxsZWQuCisgICAgLy8gVGhlIEZyYW1lTG9hZFJlcXVlc3Qg
cGFyYW1ldGVyIGlzIG9ubHkgZm9yIENocm9tZUNsaWVudCB0byBjaGVjayBpZiB0aGUKKyAgICAv
LyByZXF1ZXN0IGNvdWxkIGJlIGZ1bGZpbGxlZC4gVGhlIENocm9tZUNsaWVudCBzaG91bGQgbm90
IGxvYWQgdGhlIHJlcXVlc3QuCisgICAgdmlydHVhbCBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUq
LCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25zdCBO
YXZpZ2F0aW9uQWN0aW9uJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzaG93KCkgPSAwOworCisg
ICAgdmlydHVhbCBib29sIGNhblJ1bk1vZGFsKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBydW5N
b2RhbCgpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sYmFyc1Zpc2libGUoYm9vbCkg
PSAwOworICAgIHZpcnR1YWwgYm9vbCB0b29sYmFyc1Zpc2libGUoKSA9IDA7CisgICAgCisgICAg
dmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclZpc2libGUoYm9vbCkgPSAwOworICAgIHZpcnR1YWwg
Ym9vbCBzdGF0dXNiYXJWaXNpYmxlKCkgPSAwOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBzZXRT
Y3JvbGxiYXJzVmlzaWJsZShib29sKSA9IDA7CisgICAgdmlydHVhbCBib29sIHNjcm9sbGJhcnNW
aXNpYmxlKCkgPSAwOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBzZXRNZW51YmFyVmlzaWJsZShi
b29sKSA9IDA7CisgICAgdmlydHVhbCBib29sIG1lbnViYXJWaXNpYmxlKCkgPSAwOworCisgICAg
dmlydHVhbCB2b2lkIHNldFJlc2l6YWJsZShib29sKSA9IDA7CisgICAgCisgICAgdmlydHVhbCB2
b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3Nh
Z2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25z
dCBTdHJpbmcmIHNvdXJjZUlEKSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsKCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBydW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSopID0gMDsKKworICAg
IHZpcnR1YWwgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKSA9IDA7CisgICAgCisgICAgdmlydHVhbCB2
b2lkIHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSosIGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2
aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmKSA9
IDA7CisgICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3Vs
dCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYp
ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpID0gMDsK
KyAgICB2aXJ0dWFsIEtleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgPSAwOworCisgICAg
dmlydHVhbCB2b2lkKiB3ZWJWaWV3KCkgY29uc3QgPSAwOworCisgICAgdmlydHVhbCBJbnRSZWN0
IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QgPSAwOworCisgICAgLy8gTWV0aG9kcyB1c2VkIGJ5
IEhvc3RXaW5kb3cuCisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBJ
bnRSZWN0JiwgYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNB
bmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiwgYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBp
bnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYs
IGNvbnN0IEludFJlY3QmKSA9IDA7CiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0gICAg
ICAgIHZpcnR1YWwgdm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50UG9pbnQm
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChjb25zdCBJ
bnRQb2ludCYpID0gMDsKICNlbmRpZgotICAgICAgICB2aXJ0dWFsIEludFBvaW50IHNjcmVlblRv
Um9vdFZpZXcoY29uc3QgSW50UG9pbnQmKSBjb25zdCA9IDA7Ci0gICAgICAgIHZpcnR1YWwgSW50
UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdCA9IDA7Ci0gICAgICAg
IHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0ID0g
MDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3Qg
PSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpID0gMDsK
LSAgICAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29s
KSA9IDA7CisgICAgdmlydHVhbCBJbnRQb2ludCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBv
aW50JikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgSW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNv
bnN0IEludFJlY3QmKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBQbGF0Zm9ybVBhZ2VDbGllbnQg
cGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxi
YXJzTW9kZURpZENoYW5nZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29y
KGNvbnN0IEN1cnNvciYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50
aWxNb3VzZU1vdmVzKGJvb2wpID0gMDsKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJB
TUUpICYmICFVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCi0gICAgICAgIHZpcnR1
YWwgdm9pZCBzY2hlZHVsZUFuaW1hdGlvbigpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1
bGVBbmltYXRpb24oKSA9IDA7CiAjZW5kaWYKLSAgICAgICAgLy8gRW5kIG1ldGhvZHMgdXNlZCBi
eSBIb3N0V2luZG93LgorICAgIC8vIEVuZCBtZXRob2RzIHVzZWQgYnkgSG9zdFdpbmRvdy4KIAot
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2Uo
Y29uc3QgVmlld3BvcnRBcmd1bWVudHMmKSBjb25zdCB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UoY29uc3QgVmlld3BvcnRBcmd1bWVudHMm
KSBjb25zdCB7IH0KIAotICAgICAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChG
cmFtZSosIGNvbnN0IEludFNpemUmKSBjb25zdCA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBs
YXlvdXRVcGRhdGVkKEZyYW1lKikgY29uc3QgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzY3Jv
bGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0IHsgfTsgLy8gQ3VycmVudGx5IG9u
bHkgTWFjIGhhcyBhIG5vbiBlbXB0eSBpbXBsZW1lbnRhdGlvbi4KLSAgICAgICAKLSAgICAgICAg
dmlydHVhbCBib29sIHNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFJlbmRl
ckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9u
Q2xpY2tlZChFbGVtZW50KiwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmls
aXR5UmVhc29uKSBjb25zdCB7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBjb25zdCBJ
bnRTaXplJikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsYXlvdXRVcGRhdGVkKEZyYW1l
KikgY29uc3QgeyB9CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJ
bnRSZWN0JikgY29uc3QgeyB9OyAvLyBDdXJyZW50bHkgb25seSBNYWMgaGFzIGEgbm9uIGVtcHR5
IGltcGxlbWVudGF0aW9uLgogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0
IFN0cmluZyYsIFRleHREaXJlY3Rpb24pID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVW5h
dmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdp
blVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1
YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCosIFJlbmRlckVt
YmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgeyB9CisgICAg
dmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQm
LCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSA9IDA7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHBy
aW50KEZyYW1lKikgPSAwOwotICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZElu
RGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFRleHREaXJlY3Rpb24pID0gMDsKKworICAgIHZpcnR1
YWwgdm9pZCBwcmludChGcmFtZSopID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVy
QmFuZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3QgPSAwOwogCiAjaWYgRU5BQkxF
KFNRTF9EQVRBQkFTRSkKLSAgICAgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90
YShGcmFtZSosIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VO
YW1lKSA9IDA7CiAjZW5kaWYKIAotICAgICAgICAvLyBDYWxsYmFjayBpbnZva2VkIHdoZW4gdGhl
IGFwcGxpY2F0aW9uIGNhY2hlIGZhaWxzIHRvIHNhdmUgYSBjYWNoZSBvYmplY3QKLSAgICAgICAg
Ly8gYmVjYXVzZSBzdG9yaW5nIGl0IHdvdWxkIGdyb3cgdGhlIGRhdGFiYXNlIGZpbGUgcGFzdCBp
dHMgZGVmaW5lZCBtYXhpbXVtCi0gICAgICAgIC8vIHNpemUgb3IgcGFzdCB0aGUgYW1vdW50IG9m
IGZyZWUgc3BhY2Ugb24gdGhlIGRldmljZS4gCi0gICAgICAgIC8vIFRoZSBjaHJvbWUgY2xpZW50
IHdvdWxkIG5lZWQgdG8gdGFrZSBzb21lIGFjdGlvbiBzdWNoIGFzIGV2aWN0aW5nIHNvbWUKLSAg
ICAgICAgLy8gb2xkIGNhY2hlcy4KLSAgICAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBD
YWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkgPSAwOwotCi0gICAgICAgIC8vIENhbGxiYWNr
IGludm9rZWQgd2hlbiB0aGUgYXBwbGljYXRpb24gY2FjaGUgb3JpZ2luIHF1b3RhIGlzIHJlYWNo
ZWQuIFRoaXMKLSAgICAgICAgLy8gbWVhbnMgdGhhdCB0aGUgcmVzb3VyY2VzIGF0dGVtcHRpbmcg
dG8gYmUgY2FjaGVkIHZpYSB0aGUgbWFuaWZlc3QgYXJlCi0gICAgICAgIC8vIG1vcmUgdGhhbiBh
bGxvd2VkIG9uIHRoaXMgb3JpZ2luLiBUaGlzIGNhbGxiYWNrIGFsbG93cyB0aGUgY2hyb21lIGNs
aWVudAotICAgICAgICAvLyB0byB0YWtlIGFjdGlvbiwgc3VjaCBhcyBwcm9tcHRpbmcgdGhlIHVz
ZXIgdG8gYXNrIHRvIGluY3JlYXNlIHRoZSBxdW90YQotICAgICAgICAvLyBmb3IgdGhpcyBvcmln
aW4uIFRoZSB0b3RhbFNwYWNlTmVlZGVkIHBhcmFtZXRlciBpcyB0aGUgdG90YWwgYW1vdW50IG9m
Ci0gICAgICAgIC8vIHN0b3JhZ2UsIGluIGJ5dGVzLCBuZWVkZWQgdG8gc3RvcmUgdGhlIG5ldyBj
YWNoZSBhbG9uZyB3aXRoIGFsbCBvZiB0aGUKLSAgICAgICAgLy8gb3RoZXIgZXhpc3RpbmcgY2Fj
aGVzIGZvciB0aGUgb3JpZ2luIHRoYXQgd291bGQgbm90IGJlIHJlcGxhY2VkIGJ5Ci0gICAgICAg
IC8vIHRoZSBuZXcgY2FjaGUuCi0gICAgICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRp
b25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVl
ZGVkKSA9IDA7CisgICAgLy8gQ2FsbGJhY2sgaW52b2tlZCB3aGVuIHRoZSBhcHBsaWNhdGlvbiBj
YWNoZSBmYWlscyB0byBzYXZlIGEgY2FjaGUgb2JqZWN0CisgICAgLy8gYmVjYXVzZSBzdG9yaW5n
IGl0IHdvdWxkIGdyb3cgdGhlIGRhdGFiYXNlIGZpbGUgcGFzdCBpdHMgZGVmaW5lZCBtYXhpbXVt
CisgICAgLy8gc2l6ZSBvciBwYXN0IHRoZSBhbW91bnQgb2YgZnJlZSBzcGFjZSBvbiB0aGUgZGV2
aWNlLiAKKyAgICAvLyBUaGUgY2hyb21lIGNsaWVudCB3b3VsZCBuZWVkIHRvIHRha2Ugc29tZSBh
Y3Rpb24gc3VjaCBhcyBldmljdGluZyBzb21lCisgICAgLy8gb2xkIGNhY2hlcy4KKyAgICB2aXJ0
dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKSA9IDA7
CisKKyAgICAvLyBDYWxsYmFjayBpbnZva2VkIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGNhY2hlIG9y
aWdpbiBxdW90YSBpcyByZWFjaGVkLiBUaGlzCisgICAgLy8gbWVhbnMgdGhhdCB0aGUgcmVzb3Vy
Y2VzIGF0dGVtcHRpbmcgdG8gYmUgY2FjaGVkIHZpYSB0aGUgbWFuaWZlc3QgYXJlCisgICAgLy8g
bW9yZSB0aGFuIGFsbG93ZWQgb24gdGhpcyBvcmlnaW4uIFRoaXMgY2FsbGJhY2sgYWxsb3dzIHRo
ZSBjaHJvbWUgY2xpZW50CisgICAgLy8gdG8gdGFrZSBhY3Rpb24sIHN1Y2ggYXMgcHJvbXB0aW5n
IHRoZSB1c2VyIHRvIGFzayB0byBpbmNyZWFzZSB0aGUgcXVvdGEKKyAgICAvLyBmb3IgdGhpcyBv
cmlnaW4uIFRoZSB0b3RhbFNwYWNlTmVlZGVkIHBhcmFtZXRlciBpcyB0aGUgdG90YWwgYW1vdW50
IG9mCisgICAgLy8gc3RvcmFnZSwgaW4gYnl0ZXMsIG5lZWRlZCB0byBzdG9yZSB0aGUgbmV3IGNh
Y2hlIGFsb25nIHdpdGggYWxsIG9mIHRoZQorICAgIC8vIG90aGVyIGV4aXN0aW5nIGNhY2hlcyBm
b3IgdGhlIG9yaWdpbiB0aGF0IHdvdWxkIG5vdCBiZSByZXBsYWNlZCBieQorICAgIC8vIHRoZSBu
ZXcgY2FjaGUuCisgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEoU2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpID0gMDsKIAog
I2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkgfHwgRU5BQkxFKERSQUdHQUJMRV9SRUdJT04p
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBhbm5vdGF0ZWRSZWdpb25zQ2hhbmdlZCgpOworICAgIHZp
cnR1YWwgdm9pZCBhbm5vdGF0ZWRSZWdpb25zQ2hhbmdlZCgpOwogI2VuZGlmCiAKLSAgICAgICAg
dmlydHVhbCB2b2lkIHBvcHVsYXRlVmlzaXRlZExpbmtzKCk7CisgICAgdmlydHVhbCB2b2lkIHBv
cHVsYXRlVmlzaXRlZExpbmtzKCk7CiAKLSAgICAgICAgdmlydHVhbCBGbG9hdFJlY3QgY3VzdG9t
SGlnaGxpZ2h0UmVjdChOb2RlKiwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBGbG9h
dFJlY3QmIGxpbmVSZWN0KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHBhaW50Q3VzdG9tSGlnaGxp
Z2h0KE5vZGUqLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgYm94
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBsaW5lUmVjdCwKLSAgICAgICAgICAgIGJvb2wgYmVoaW5k
VGV4dCwgYm9vbCBlbnRpcmVMaW5lKTsKLSAgICAgICAgICAgIAotICAgICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkUmVwbGFjZVdpdGhHZW5lcmF0ZWRGaWxlRm9yVXBsb2FkKGNvbnN0IFN0cmluZyYg
cGF0aCwgU3RyaW5nJiBnZW5lcmF0ZWRGaWxlbmFtZSk7Ci0gICAgICAgIHZpcnR1YWwgU3RyaW5n
IGdlbmVyYXRlUmVwbGFjZW1lbnRGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCk7CisgICAgdmlydHVh
bCBGbG9hdFJlY3QgY3VzdG9tSGlnaGxpZ2h0UmVjdChOb2RlKiwgY29uc3QgQXRvbWljU3RyaW5n
JiB0eXBlLCBjb25zdCBGbG9hdFJlY3QmIGxpbmVSZWN0KTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFp
bnRDdXN0b21IaWdobGlnaHQoTm9kZSosIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3Qg
RmxvYXRSZWN0JiBib3hSZWN0LCBjb25zdCBGbG9hdFJlY3QmIGxpbmVSZWN0LAorICAgICAgICBi
b29sIGJlaGluZFRleHQsIGJvb2wgZW50aXJlTGluZSk7CisgICAgICAgIAorICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRSZXBsYWNlV2l0aEdlbmVyYXRlZEZpbGVGb3JVcGxvYWQoY29uc3QgU3RyaW5n
JiBwYXRoLCBTdHJpbmcmIGdlbmVyYXRlZEZpbGVuYW1lKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBn
ZW5lcmF0ZVJlcGxhY2VtZW50RmlsZShjb25zdCBTdHJpbmcmIHBhdGgpOwogCi0gICAgICAgIHZp
cnR1YWwgYm9vbCBwYWludEN1c3RvbU92ZXJoYW5nQXJlYShHcmFwaGljc0NvbnRleHQqLCBjb25z
dCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKTsKKyAgICB2aXJ0dWFs
IGJvb2wgcGFpbnRDdXN0b21PdmVyaGFuZ0FyZWEoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50
UmVjdCYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0Jik7CiAKICNpZiBFTkFCTEUoSU5Q
VVRfVFlQRV9DT0xPUikKLSAgICAgICAgdmlydHVhbCBQYXNzT3duUHRyPENvbG9yQ2hvb3Nlcj4g
Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IENvbG9yJikgPSAw
OworICAgIHZpcnR1YWwgUGFzc093blB0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3Nl
cihDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBDb2xvciYpID0gMDsKICNlbmRpZgogCiAjaWYg
RU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCi0gICAgICAgIC8vIFRoaXMgZnVuY3Rp
b24gaXMgdXNlZCBmb3I6Ci0gICAgICAgIC8vICAtIE1hbmRhdG9yeSBkYXRlL3RpbWUgY2hvb3Nl
cnMgaWYgIUVOQUJMRShJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUkpCi0gICAgICAgIC8vICAtIERh
dGUvdGltZSBjaG9vc2VycyBmb3IgdHlwZXMgZm9yIHdoaWNoIFJlbmRlclRoZW1lOjpzdXBwb3J0
c0NhbGVuZGFyUGlja2VyCi0gICAgICAgIC8vICAgIHJldHVybnMgdHJ1ZSwgaWYgRU5BQkxFKElO
UFVUX01VTFRJUExFX0ZJRUxEU19VSSkKLSAgICAgICAgLy8gIC0gPGRhdGFsaXN0PiBVSSBmb3Ig
ZGF0ZS90aW1lIGlucHV0IHR5cGVzIHJlZ2FyZGxlc3Mgb2YKLSAgICAgICAgLy8gICAgRU5BQkxF
KElOUFVUX01VTFRJUExFX0ZJRUxEU19VSSkKLSAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPERh
dGVUaW1lQ2hvb3Nlcj4gb3BlbkRhdGVUaW1lQ2hvb3NlcihEYXRlVGltZUNob29zZXJDbGllbnQq
LCBjb25zdCBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzJikgPSAwOworICAgIC8vIFRoaXMgZnVu
Y3Rpb24gaXMgdXNlZCBmb3I6CisgICAgLy8gIC0gTWFuZGF0b3J5IGRhdGUvdGltZSBjaG9vc2Vy
cyBpZiAhRU5BQkxFKElOUFVUX01VTFRJUExFX0ZJRUxEU19VSSkKKyAgICAvLyAgLSBEYXRlL3Rp
bWUgY2hvb3NlcnMgZm9yIHR5cGVzIGZvciB3aGljaCBSZW5kZXJUaGVtZTo6c3VwcG9ydHNDYWxl
bmRhclBpY2tlcgorICAgIC8vICAgIHJldHVybnMgdHJ1ZSwgaWYgRU5BQkxFKElOUFVUX01VTFRJ
UExFX0ZJRUxEU19VSSkKKyAgICAvLyAgLSA8ZGF0YWxpc3Q+IFVJIGZvciBkYXRlL3RpbWUgaW5w
dXQgdHlwZXMgcmVnYXJkbGVzcyBvZgorICAgIC8vICAgIEVOQUJMRShJTlBVVF9NVUxUSVBMRV9G
SUVMRFNfVUkpCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPERhdGVUaW1lQ2hvb3Nlcj4gb3BlbkRh
dGVUaW1lQ2hvb3NlcihEYXRlVGltZUNob29zZXJDbGllbnQqLCBjb25zdCBEYXRlVGltZUNob29z
ZXJQYXJhbWV0ZXJzJikgPSAwOwogI2VuZGlmCiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHJ1bk9w
ZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KSA9IDA7Ci0gICAgICAgIC8v
IEFzeW5jaHJvbm91cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBmb3Igc3BlY2lmaWVkIGZpbGVu
YW1lcy4KLSAgICAgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9y
PFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcnVuT3Bl
blBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pID0gMDsKKyAgICAvLyBBc3lu
Y2hyb25vdXMgcmVxdWVzdCB0byBsb2FkIGFuIGljb24gZm9yIHNwZWNpZmllZCBmaWxlbmFtZXMu
CisgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
LCBGaWxlSWNvbkxvYWRlciopID0gMDsKIAogI2lmIEVOQUJMRShESVJFQ1RPUllfVVBMT0FEKQot
ICAgICAgICAvLyBBc3ljaHJvbm91cyByZXF1ZXN0IHRvIGVudW1lcmF0ZSBhbGwgZmlsZXMgaW4g
YSBkaXJlY3RvcnkgY2hvc2VuIGJ5IHRoZSB1c2VyLgotICAgICAgICB2aXJ0dWFsIHZvaWQgZW51
bWVyYXRlQ2hvc2VuRGlyZWN0b3J5KEZpbGVDaG9vc2VyKikgPSAwOworICAgIC8vIEFzeWNocm9u
b3VzIHJlcXVlc3QgdG8gZW51bWVyYXRlIGFsbCBmaWxlcyBpbiBhIGRpcmVjdG9yeSBjaG9zZW4g
YnkgdGhlIHVzZXIuCisgICAgdmlydHVhbCB2b2lkIGVudW1lcmF0ZUNob3NlbkRpcmVjdG9yeShG
aWxlQ2hvb3NlciopID0gMDsKICNlbmRpZgogCi0gICAgICAgIC8vIE5vdGlmaWNhdGlvbiB0aGF0
IHRoZSBnaXZlbiBmb3JtIGVsZW1lbnQgaGFzIGNoYW5nZWQuIFRoaXMgZnVuY3Rpb24KLSAgICAg
ICAgLy8gd2lsbCBiZSBjYWxsZWQgZnJlcXVlbnRseSwgc28gaGFuZGxpbmcgc2hvdWxkIGJlIHZl
cnkgZmFzdC4KLSAgICAgICAgdmlydHVhbCB2b2lkIGZvcm1TdGF0ZURpZENoYW5nZShjb25zdCBO
b2RlKikgPSAwOwotICAgICAgICAKLSAgICAgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRGb2N1
cyhjb25zdCBOb2RlKikgeyB9OwotICAgICAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEJsdXIo
Y29uc3QgTm9kZSopIHsgfTsKKyAgICAvLyBOb3RpZmljYXRpb24gdGhhdCB0aGUgZ2l2ZW4gZm9y
bSBlbGVtZW50IGhhcyBjaGFuZ2VkLiBUaGlzIGZ1bmN0aW9uCisgICAgLy8gd2lsbCBiZSBjYWxs
ZWQgZnJlcXVlbnRseSwgc28gaGFuZGxpbmcgc2hvdWxkIGJlIHZlcnkgZmFzdC4KKyAgICB2aXJ0
dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0IE5vZGUqKSA9IDA7CisgICAgCisgICAg
dmlydHVhbCB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBOb2RlKikgeyB9OworICAgIHZpcnR1
YWwgdm9pZCBlbGVtZW50RGlkQmx1cihjb25zdCBOb2RlKikgeyB9OwogCiAjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotICAgICAgICAvLyBBbGxvd3MgcG9ydHMgdG8gY3VzdG9taXpl
IHRoZSB0eXBlIG9mIGdyYXBoaWNzIGxheWVycyBjcmVhdGVkIGJ5IHRoaXMgcGFnZS4KLSAgICAg
ICAgdmlydHVhbCBHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBj
b25zdCB7IHJldHVybiAwOyB9Ci0KLSAgICAgICAgLy8gUGFzcyAwIGFzIHRoZSBHcmFwaGljc0xh
eWVyIHRvIGRldGF0Y2ggdGhlIHJvb3QgbGF5ZXIuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBhdHRh
Y2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKSA9IDA7Ci0gICAgICAg
IC8vIFNldHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUgbmV4dCB0aW1lIGNvbnRlbnQgaXMg
ZHJhd24gdG8gdGhlIHdpbmRvdywKLSAgICAgICAgLy8gdGhlIGNoYW5nZXMgYXBwZWFyIG9uIHRo
ZSBzY3JlZW4gaW4gc3luY2hyb255IHdpdGggdXBkYXRlcyB0byBHcmFwaGljc0xheWVycy4KLSAg
ICAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24o
KSA9IDA7Ci0gICAgICAgIC8vIFNldHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUgdmlldyBu
ZWVkcyB0byBiZSB1cGRhdGVkLCBzbyB3ZSBuZWVkCi0gICAgICAgIC8vIHRvIGRvIGFuIGVhZ2Vy
IGxheW91dCBiZWZvcmUgdGhlIGRyYXdpbmcuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVs
ZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpID0gMDsKLSAgICAgICAgLy8gUmV0dXJucyB3aGV0aGVy
IG9yIG5vdCB0aGUgY2xpZW50IGNhbiByZW5kZXIgdGhlIGNvbXBvc2l0ZWQgbGF5ZXIsCi0gICAg
ICAgIC8vIHJlZ2FyZGxlc3Mgb2YgdGhlIHNldHRpbmdzLgotICAgICAgICB2aXJ0dWFsIGJvb2wg
YWxsb3dzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQot
ICAgICAgICBlbnVtIENvbXBvc2l0aW5nVHJpZ2dlciB7Ci0gICAgICAgICAgICBUaHJlZURUcmFu
c2Zvcm1UcmlnZ2VyID0gMSA8PCAwLAotICAgICAgICAgICAgVmlkZW9UcmlnZ2VyID0gMSA8PCAx
LAotICAgICAgICAgICAgUGx1Z2luVHJpZ2dlciA9IDEgPDwgMiwKLSAgICAgICAgICAgIENhbnZh
c1RyaWdnZXIgPSAxIDw8IDMsCi0gICAgICAgICAgICBBbmltYXRpb25UcmlnZ2VyID0gMSA8PCA0
LAotICAgICAgICAgICAgRmlsdGVyVHJpZ2dlciA9IDEgPDwgNSwKLSAgICAgICAgICAgIEFsbFRy
aWdnZXJzID0gMHhGRkZGRkZGRgotICAgICAgICB9OwotICAgICAgICB0eXBlZGVmIHVuc2lnbmVk
IENvbXBvc2l0aW5nVHJpZ2dlckZsYWdzOwotCi0gICAgICAgIC8vIFJldHVybnMgYSBiaXRmaWVs
ZCBpbmRpY2F0aW5nIGNvbmRpdGlvbnMgdGhhdCBjYW4gdHJpZ2dlciB0aGUgY29tcG9zaXRvci4K
LSAgICAgICAgdmlydHVhbCBDb21wb3NpdGluZ1RyaWdnZXJGbGFncyBhbGxvd2VkQ29tcG9zaXRp
bmdUcmlnZ2VycygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENvbXBvc2l0aW5nVHJpZ2dl
ckZsYWdzPihBbGxUcmlnZ2Vycyk7IH0KKyAgICAvLyBBbGxvd3MgcG9ydHMgdG8gY3VzdG9taXpl
IHRoZSB0eXBlIG9mIGdyYXBoaWNzIGxheWVycyBjcmVhdGVkIGJ5IHRoaXMgcGFnZS4KKyAgICB2
aXJ0dWFsIEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIGNvbnN0
IHsgcmV0dXJuIDA7IH0KKworICAgIC8vIFBhc3MgMCBhcyB0aGUgR3JhcGhpY3NMYXllciB0byBk
ZXRhdGNoIHRoZSByb290IGxheWVyLgorICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhp
Y3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKSA9IDA7CisgICAgLy8gU2V0cyBhIGZsYWcg
dG8gc3BlY2lmeSB0aGF0IHRoZSBuZXh0IHRpbWUgY29udGVudCBpcyBkcmF3biB0byB0aGUgd2lu
ZG93LAorICAgIC8vIHRoZSBjaGFuZ2VzIGFwcGVhciBvbiB0aGUgc2NyZWVuIGluIHN5bmNocm9u
eSB3aXRoIHVwZGF0ZXMgdG8gR3JhcGhpY3NMYXllcnMuCisgICAgdmlydHVhbCB2b2lkIHNldE5l
ZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSA9IDA7CisgICAgLy8gU2V0cyBhIGZs
YWcgdG8gc3BlY2lmeSB0aGF0IHRoZSB2aWV3IG5lZWRzIHRvIGJlIHVwZGF0ZWQsIHNvIHdlIG5l
ZWQKKyAgICAvLyB0byBkbyBhbiBlYWdlciBsYXlvdXQgYmVmb3JlIHRoZSBkcmF3aW5nLgorICAg
IHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpID0gMDsKKyAgICAv
LyBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBjbGllbnQgY2FuIHJlbmRlciB0aGUgY29tcG9z
aXRlZCBsYXllciwKKyAgICAvLyByZWdhcmRsZXNzIG9mIHRoZSBzZXR0aW5ncy4KKyAgICB2aXJ0
dWFsIGJvb2wgYWxsb3dzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KKworICAgIGVudW0gQ29tcG9zaXRpbmdUcmlnZ2VyIHsKKyAgICAgICAgVGhyZWVEVHJh
bnNmb3JtVHJpZ2dlciA9IDEgPDwgMCwKKyAgICAgICAgVmlkZW9UcmlnZ2VyID0gMSA8PCAxLAor
ICAgICAgICBQbHVnaW5UcmlnZ2VyID0gMSA8PCAyLAorICAgICAgICBDYW52YXNUcmlnZ2VyID0g
MSA8PCAzLAorICAgICAgICBBbmltYXRpb25UcmlnZ2VyID0gMSA8PCA0LAorICAgICAgICBGaWx0
ZXJUcmlnZ2VyID0gMSA8PCA1LAorICAgICAgICBBbGxUcmlnZ2VycyA9IDB4RkZGRkZGRkYKKyAg
ICB9OworICAgIHR5cGVkZWYgdW5zaWduZWQgQ29tcG9zaXRpbmdUcmlnZ2VyRmxhZ3M7CisKKyAg
ICAvLyBSZXR1cm5zIGEgYml0ZmllbGQgaW5kaWNhdGluZyBjb25kaXRpb25zIHRoYXQgY2FuIHRy
aWdnZXIgdGhlIGNvbXBvc2l0b3IuCisgICAgdmlydHVhbCBDb21wb3NpdGluZ1RyaWdnZXJGbGFn
cyBhbGxvd2VkQ29tcG9zaXRpbmdUcmlnZ2VycygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0
PENvbXBvc2l0aW5nVHJpZ2dlckZsYWdzPihBbGxUcmlnZ2Vycyk7IH0KICNlbmRpZgogCiAjaWYg
UExBVEZPUk0oV0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotICAgICAgICB2aXJ0dWFsIEdyYXBo
aWNzRGV2aWNlQWRhcHRlciogZ3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkgY29uc3QgeyByZXR1cm4g
MDsgfQorICAgIHZpcnR1YWwgR3JhcGhpY3NEZXZpY2VBZGFwdGVyKiBncmFwaGljc0RldmljZUFk
YXB0ZXIoKSBjb25zdCB7IHJldHVybiAwOyB9CiAjZW5kaWYKIAotICAgICAgICB2aXJ0dWFsIGJv
b2wgc3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZShjb25zdCBOb2RlKikgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbHNjcmVlbkZvck5vZGUoTm9kZSopIHsg
fQotICAgICAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqKSB7IH0K
LSAgICAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2so
KSB7IHJldHVybiBmYWxzZTsgfSAKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGdWxsc2NyZWVu
Rm9yTm9kZShjb25zdCBOb2RlKikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShOb2RlKikgeyB9CisgICAgdmlydHVhbCB2b2lkIGV4aXRG
dWxsc2NyZWVuRm9yTm9kZShOb2RlKikgeyB9CisgICAgdmlydHVhbCBib29sIHJlcXVpcmVzRnVs
bHNjcmVlbkZvclZpZGVvUGxheWJhY2soKSB7IHJldHVybiBmYWxzZTsgfSAKIAogI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKLSAgICAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbFNjcmVl
bkZvckVsZW1lbnQoY29uc3QgRWxlbWVudCosIGJvb2wpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqKSB7IH0K
LSAgICAgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50Kikg
eyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmdWxsU2NyZWVuUmVuZGVyZXJDaGFuZ2VkKFJlbmRl
ckJveCopIHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdEZ1bGxTY3JlZW5MYXllcihH
cmFwaGljc0xheWVyKikgeyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZv
ckVsZW1lbnQoY29uc3QgRWxlbWVudCosIGJvb2wpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBmdWxsU2NyZWVuUmVuZGVyZXJDaGFuZ2VkKFJlbmRlckJveCopIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBzZXRSb290RnVsbFNjcmVlbkxheWVyKEdyYXBoaWNzTGF5ZXIqKSB7IH0K
ICNlbmRpZgotICAgICAgICAKKyAgICAKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKLSAg
ICAgICAgdmlydHVhbCBJbnRSZWN0IHZpc2libGVSZWN0Rm9yVGlsZWRCYWNraW5nU3RvcmUoKSBj
b25zdCB7IHJldHVybiBJbnRSZWN0KCk7IH0KKyAgICB2aXJ0dWFsIEludFJlY3QgdmlzaWJsZVJl
Y3RGb3JUaWxlZEJhY2tpbmdTdG9yZSgpIGNvbnN0IHsgcmV0dXJuIEludFJlY3QoKTsgfQogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgICAgIHZpcnR1YWwgTlNSZXNwb25kZXIgKmZp
cnN0UmVzcG9uZGVyKCkgeyByZXR1cm4gMDsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgbWFrZUZp
cnN0UmVzcG9uZGVyKE5TUmVzcG9uZGVyICopIHsgfQotICAgICAgICAvLyBGb2N1c2VzIG9uIHRo
ZSBjb250YWluaW5nIHZpZXcgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcGFnZS4KLSAgICAgICAgdmly
dHVhbCB2b2lkIG1ha2VGaXJzdFJlc3BvbmRlcigpIHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQg
d2lsbFBvcFVwTWVudShOU01lbnUgKikgeyB9CisgICAgdmlydHVhbCBOU1Jlc3BvbmRlciAqZmly
c3RSZXNwb25kZXIoKSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCB2b2lkIG1ha2VGaXJzdFJl
c3BvbmRlcihOU1Jlc3BvbmRlciAqKSB7IH0KKyAgICAvLyBGb2N1c2VzIG9uIHRoZSBjb250YWlu
aW5nIHZpZXcgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcGFnZS4KKyAgICB2aXJ0dWFsIHZvaWQgbWFr
ZUZpcnN0UmVzcG9uZGVyKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxQb3BVcE1lbnUoTlNN
ZW51ICopIHsgfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShXSU4pCi0gICAgICAgIHZpcnR1YWwg
dm9pZCBzZXRMYXN0U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29yKCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBzZXRMYXN0U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29yKCkgPSAwOwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgICAgICB2aXJ0dWFsIHZvaWQgbmVlZFRvdWNoRXZl
bnRzKGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbmVlZFRvdWNoRXZlbnRzKGJvb2wpID0g
MDsKICNlbmRpZgogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCgpID0gMDsKLSAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGln
bm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSA9IDA7Ci0gICAgICAgIC8vIENoZWNr
cyBpZiB0aGVyZSBpcyBhbiBvcGVuZWQgcG9wdXAsIGNhbGxlZCBieSBSZW5kZXJNZW51TGlzdDo6
c2hvd1BvcHVwKCkuCi0gICAgICAgIHZpcnR1YWwgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0
ID0gMDsKLSAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBN
ZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0ID0gMDsKLSAgICAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVu
dCopIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rp
b25Jc05hdHVyYWwoKSA9IDA7CisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRG
b2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSA9IDA7CisgICAgLy8gQ2hlY2tzIGlmIHRoZXJl
IGlzIGFuIG9wZW5lZCBwb3B1cCwgY2FsbGVkIGJ5IFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAo
KS4KKyAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVu
dCopIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBj
cmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgPSAwOwogI2lmIEVO
QUJMRShQQUdFX1BPUFVQKQotICAgICAgICAvLyBDcmVhdGVzIGEgUGFnZVBvcHVwIG9iamVjdCwg
YW5kIHNob3dzIGl0IGJlc2lkZSBvcmlnaW5Cb3VuZHNJblJvb3RWaWV3LgotICAgICAgICAvLyBU
aGUgcmV0dXJuIHZhbHVlIGNhbiBiZSAwLgotICAgICAgICB2aXJ0dWFsIFBhZ2VQb3B1cCogb3Bl
blBhZ2VQb3B1cChQYWdlUG9wdXBDbGllbnQqLCBjb25zdCBJbnRSZWN0JiBvcmlnaW5Cb3VuZHNJ
blJvb3RWaWV3KSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjbG9zZVBhZ2VQb3B1cChQYWdl
UG9wdXAqKSA9IDA7Ci0gICAgICAgIC8vIEZvciB0ZXN0aW5nLgotICAgICAgICB2aXJ0dWFsIHZv
aWQgc2V0UGFnZVBvcHVwRHJpdmVyKFBhZ2VQb3B1cERyaXZlciopID0gMDsKLSAgICAgICAgdmly
dHVhbCB2b2lkIHJlc2V0UGFnZVBvcHVwRHJpdmVyKCkgPSAwOworICAgIC8vIENyZWF0ZXMgYSBQ
YWdlUG9wdXAgb2JqZWN0LCBhbmQgc2hvd3MgaXQgYmVzaWRlIG9yaWdpbkJvdW5kc0luUm9vdFZp
ZXcuCisgICAgLy8gVGhlIHJldHVybiB2YWx1ZSBjYW4gYmUgMC4KKyAgICB2aXJ0dWFsIFBhZ2VQ
b3B1cCogb3BlblBhZ2VQb3B1cChQYWdlUG9wdXBDbGllbnQqLCBjb25zdCBJbnRSZWN0JiBvcmln
aW5Cb3VuZHNJblJvb3RWaWV3KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsb3NlUGFnZVBvcHVw
KFBhZ2VQb3B1cCopID0gMDsKKyAgICAvLyBGb3IgdGVzdGluZy4KKyAgICB2aXJ0dWFsIHZvaWQg
c2V0UGFnZVBvcHVwRHJpdmVyKFBhZ2VQb3B1cERyaXZlciopID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVzZXRQYWdlUG9wdXBEcml2ZXIoKSA9IDA7CiAjZW5kaWYKLSAgICAgICAgLy8gVGhpcyBm
dW5jdGlvbiBpcyBjYWxsZWQgd2hlbmV2ZXIgYSB0ZXh0IGZpZWxkIDxpbnB1dD4gaXMKLSAgICAg
ICAgLy8gY3JlYXRlZC4gVGhlIGltcGxlbWVudGF0aW9uIHNob3VsZCByZXR1cm4gdHJ1ZSBpZiBp
dCB3YW50cwotICAgICAgICAvLyB0byBkbyBzb21ldGhpbmcgaW4gYWRkVGV4dEZpZWxkRGVjb3Jh
dGlvbnNUbygpLgotICAgICAgICAvLyBUaGUgYXJndW1lbnQgaXMgYWx3YXlzIG5vbi0wLgotICAg
ICAgICB2aXJ0dWFsIGJvb2wgd2lsbEFkZFRleHRGaWVsZERlY29yYXRpb25zVG8oSFRNTElucHV0
RWxlbWVudCopIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIC8vIFRoZSBhcmd1bWVudCBpcyBh
bHdheXMgbm9uLTAuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBhZGRUZXh0RmllbGREZWNvcmF0aW9u
c1RvKEhUTUxJbnB1dEVsZW1lbnQqKSB7IH0KLQotICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdEFj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYT2JqZWN0Q2Fj
aGU6OkFYTm90aWZpY2F0aW9uKSB7IH0KLSAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KGNvbnN0IEludFJlY3QmKSB7IH0KLSAg
ICAgICAgdmlydHVhbCB2b2lkIHJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UoaW50
IC8qbmV3U3R5bGUqLykgeyB9Ci0KLSAgICAgICAgZW51bSBEaWFsb2dUeXBlIHsKLSAgICAgICAg
ICAgIEFsZXJ0RGlhbG9nID0gMCwKLSAgICAgICAgICAgIENvbmZpcm1EaWFsb2cgPSAxLAotICAg
ICAgICAgICAgUHJvbXB0RGlhbG9nID0gMiwKLSAgICAgICAgICAgIEhUTUxEaWFsb2cgPSAzCi0g
ICAgICAgIH07Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdW5Nb2RhbERpYWxvZ0R1cmlu
Z1BhZ2VEaXNtaXNzYWwoY29uc3QgRGlhbG9nVHlwZSYsIGNvbnN0IFN0cmluZyYgZGlhbG9nTWVz
c2FnZSwgRnJhbWVMb2FkZXI6OlBhZ2VEaXNtaXNzYWxUeXBlKSBjb25zdCB7IFVOVVNFRF9QQVJB
TShkaWFsb2dNZXNzYWdlKTsgcmV0dXJuIHRydWU7IH0KLQotICAgICAgICB2aXJ0dWFsIHZvaWQg
bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgPSAwOwotICAgICAgICAKLSAg
ICAgICAgdmlydHVhbCBib29sIGlzU1ZHSW1hZ2VDaHJvbWVDbGllbnQoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW5ldmVyIGEgdGV4
dCBmaWVsZCA8aW5wdXQ+IGlzCisgICAgLy8gY3JlYXRlZC4gVGhlIGltcGxlbWVudGF0aW9uIHNo
b3VsZCByZXR1cm4gdHJ1ZSBpZiBpdCB3YW50cworICAgIC8vIHRvIGRvIHNvbWV0aGluZyBpbiBh
ZGRUZXh0RmllbGREZWNvcmF0aW9uc1RvKCkuCisgICAgLy8gVGhlIGFyZ3VtZW50IGlzIGFsd2F5
cyBub24tMC4KKyAgICB2aXJ0dWFsIGJvb2wgd2lsbEFkZFRleHRGaWVsZERlY29yYXRpb25zVG8o
SFRNTElucHV0RWxlbWVudCopIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgLy8gVGhlIGFyZ3VtZW50
IGlzIGFsd2F5cyBub24tMC4KKyAgICB2aXJ0dWFsIHZvaWQgYWRkVGV4dEZpZWxkRGVjb3JhdGlv
bnNUbyhIVE1MSW5wdXRFbGVtZW50KikgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcG9zdEFjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYT2JqZWN0Q2FjaGU6
OkFYTm90aWZpY2F0aW9uKSB7IH0KKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U2Nyb2xs
ZXJUaHVtYklzVmlzaWJsZUluUmVjdChjb25zdCBJbnRSZWN0JikgeyB9CisgICAgdmlydHVhbCB2
b2lkIHJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UoaW50IC8qbmV3U3R5bGUqLykg
eyB9CisKKyAgICBlbnVtIERpYWxvZ1R5cGUgeworICAgICAgICBBbGVydERpYWxvZyA9IDAsCisg
ICAgICAgIENvbmZpcm1EaWFsb2cgPSAxLAorICAgICAgICBQcm9tcHREaWFsb2cgPSAyLAorICAg
ICAgICBIVE1MRGlhbG9nID0gMworICAgIH07CisgICAgdmlydHVhbCBib29sIHNob3VsZFJ1bk1v
ZGFsRGlhbG9nRHVyaW5nUGFnZURpc21pc3NhbChjb25zdCBEaWFsb2dUeXBlJiwgY29uc3QgU3Ry
aW5nJiBkaWFsb2dNZXNzYWdlLCBGcmFtZUxvYWRlcjo6UGFnZURpc21pc3NhbFR5cGUpIGNvbnN0
IHsgVU5VU0VEX1BBUkFNKGRpYWxvZ01lc3NhZ2UpOyByZXR1cm4gdHJ1ZTsgfQorCisgICAgdmly
dHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpID0gMDsKKyAg
ICAKKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdJbWFnZUNocm9tZUNsaWVudCgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQotICAgICAgICB2aXJ0dWFs
IGJvb2wgcmVxdWVzdFBvaW50ZXJMb2NrKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RQb2ludGVyVW5sb2NrKCkgeyB9Ci0gICAgICAgIHZpcnR1YWwgYm9v
bCBpc1BvaW50ZXJMb2NrZWQoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBy
ZXF1ZXN0UG9pbnRlckxvY2soKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0UG9pbnRlclVubG9jaygpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1BvaW50ZXJMb2Nr
ZWQoKSB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKLSAgICAgICAgdmlydHVhbCB2b2lkIGxv
Z0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBk
ZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiBzdGF0dXMpIHsgVU5VU0VEX1BBUkFNKG1lc3NhZ2Up
OyBVTlVTRURfUEFSQU0oZGVzY3JpcHRpb24pOyBVTlVTRURfUEFSQU0oc3RhdHVzKTsgfQorICAg
IHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgc3RhdHVzKSB7IFVOVVNF
RF9QQVJBTShtZXNzYWdlKTsgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsgVU5VU0VEX1BBUkFN
KHN0YXR1cyk7IH0KIAotICAgICAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBtaW5pbXVtV2luZG93U2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIEZsb2F0U2l6ZSgxMDAsIDEwMCk7IH07CisgICAgdmlydHVhbCBG
bG9hdFNpemUgbWluaW11bVdpbmRvd1NpemUoKSBjb25zdCB7IHJldHVybiBGbG9hdFNpemUoMTAw
LCAxMDApOyB9OwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5Q2hyb21lQ2xpZW50KCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eUNocm9tZUNs
aWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAg
IHZpcnR1YWwgfkNocm9tZUNsaWVudCgpIHsgfQotICAgIH07CisgICAgdmlydHVhbCBQYXNzUmVm
UHRyPEltYWdlPiBnZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2UoUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW46OkJ1dHRvblNpemUsIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpCdXR0b25TdGF0
ZSkgY29uc3QgeyByZXR1cm4gMDsgfQorCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+Q2hyb21l
Q2xpZW50KCkgeyB9Cit9OwogCiB9CiAjZW5kaWYgLy8gQ2hyb21lQ2xpZW50X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCmlu
ZGV4IDk3MmIyYmY5MDQyMjNiNWI3Nzc1ZjI0MjlkYzE2MjgzYTBmMTY4MTUuLjhmMTE3NGJmZjdl
NzA4ZTAxYzYwNDVhMTFiNmRhNjMwN2I0N2RjMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcApAQCAtMjYsMTIgKzI2LDE1
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVuZGVyU25hcHNob3R0ZWRQbHVn
SW4uaCIKIAorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgog
I2luY2x1ZGUgIkN1cnNvci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5j
bHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3JhZGllbnQuaCIKICNpbmNsdWRlICJIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgorI2luY2x1ZGUg
IlBhZ2UuaCIKICNpbmNsdWRlICJQYWludEluZm8uaCIKICNpbmNsdWRlICJQYXRoLmgiCiAKQEAg
LTQ0LDYgKzQ3LDcgQEAgc3RhdGljIGNvbnN0IGludCBzdGFydEJ1dHRvblBhZGRpbmcgPSAxMDsK
IFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbihIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50KiBlbGVtZW50KQogICAgIDogUmVuZGVyRW1iZWRkZWRPYmplY3QoZWxl
bWVudCkKICAgICAsIG1fc25hcHNob3RSZXNvdXJjZShSZW5kZXJJbWFnZVJlc291cmNlOjpjcmVh
dGUoKSkKKyAgICAsIG1fYnV0dG9uVHlwZShOb0J1dHRvbikKICAgICAsIG1faXNNb3VzZUluQnV0
dG9uUmVjdChmYWxzZSkKIHsKICAgICBtX3NuYXBzaG90UmVzb3VyY2UtPmluaXRpYWxpemUodGhp
cyk7CkBAIC0xMjIsMzMgKzEyNiwzOSBAQCB2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpw
YWludFJlcGxhY2VkU25hcHNob3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0CiAgICAgY29u
dGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBzdHlsZSgpLT5jb2xvclNwYWNlKCksIGFsaWdu
ZWRSZWN0LCBDb21wb3NpdGVTb3VyY2VPdmVyLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
bigpLCB1c2VMb3dRdWFsaXR5U2NhbGluZyk7CiB9CiAKLXN0YXRpYyBJbWFnZSogc3RhcnRCdXR0
b25JbWFnZSgpCitJbWFnZSogUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnN0YXJ0QnV0dG9uSW1h
Z2UoQnV0dG9uU2l6ZSBzaXplLCBCdXR0b25TdGF0ZSBzdGF0ZSkgY29uc3QKIHsKLSAgICBzdGF0
aWMgSW1hZ2UqIGJ1dHRvbkltYWdlID0gSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKCJzdGFy
dEJ1dHRvbiIpLmxlYWtSZWYoKTsKLSAgICByZXR1cm4gYnV0dG9uSW1hZ2U7Ci19Ci0KLXN0YXRp
YyBJbWFnZSogc3RhcnRCdXR0b25QcmVzc2VkSW1hZ2UoKQotewotICAgIHN0YXRpYyBJbWFnZSog
YnV0dG9uSW1hZ2UgPSBJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoInN0YXJ0QnV0dG9uUHJl
c3NlZCIpLmxlYWtSZWYoKTsKLSAgICByZXR1cm4gYnV0dG9uSW1hZ2U7CisgICAgc3RhdGljIElt
YWdlKiBidXR0b25JbWFnZXNbNF0gPSB7IG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIgfTsKKyAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZEltYWdlc1s0XSA9IHsgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UgfTsKKworICAgIGludCBhcnJheUluZGV4ID0gc2l6ZSA8PCAxIHwg
c3RhdGU7CisgICAgaWYgKGJ1dHRvbkltYWdlc1thcnJheUluZGV4XSkKKyAgICAgICAgcmV0dXJu
IGJ1dHRvbkltYWdlc1thcnJheUluZGV4XTsKKyAgICBpZiAoaW5pdGlhbGl6ZWRJbWFnZXNbYXJy
YXlJbmRleF0pCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKGRvY3VtZW50KCkt
PnBhZ2UoKSkgeworICAgICAgICBidXR0b25JbWFnZXNbYXJyYXlJbmRleF0gPSBkb2N1bWVudCgp
LT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKS0+Z2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbklt
YWdlKHNpemUsIHN0YXRlKS5sZWFrUmVmKCk7CisgICAgICAgIGluaXRpYWxpemVkSW1hZ2VzW2Fy
cmF5SW5kZXhdID0gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGJ1dHRvbkltYWdlc1thcnJheUlu
ZGV4XTsKIH0KIAogdm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRCdXR0b24oUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIHsKLSAg
ICBMYXlvdXRSZWN0IGNvbnRlbnRSZWN0ID0gY29udGVudEJveFJlY3QoKTsKLSAgICBpZiAoY29u
dGVudFJlY3QuaXNFbXB0eSgpKQorICAgIGlmIChjb250ZW50Qm94UmVjdCgpLmlzRW1wdHkoKSB8
fCBtX2J1dHRvblR5cGUgPT0gTm9CdXR0b24pCiAgICAgICAgIHJldHVybjsKIAotICAgIEltYWdl
KiBidXR0b25JbWFnZSA9IHN0YXJ0QnV0dG9uSW1hZ2UoKTsKKyAgICBJbWFnZSogYnV0dG9uSW1h
Z2UgPSBudWxscHRyOwogICAgIGlmIChwbHVnSW5JbWFnZUVsZW1lbnQoKS0+YWN0aXZlKCkpIHsK
ICAgICAgICAgaWYgKG1faXNNb3VzZUluQnV0dG9uUmVjdCkKLSAgICAgICAgICAgIGJ1dHRvbklt
YWdlID0gc3RhcnRCdXR0b25QcmVzc2VkSW1hZ2UoKTsKLSAgICB9IGVsc2UgaWYgKCFwbHVnSW5J
bWFnZUVsZW1lbnQoKS0+aG92ZXJlZCgpKQotICAgICAgICByZXR1cm47CisgICAgICAgICAgICBi
dXR0b25JbWFnZSA9IHN0YXJ0QnV0dG9uSW1hZ2UobV9idXR0b25UeXBlLCBCdXR0b25TdGF0ZUFj
dGl2ZSk7CisgICAgfSBlbHNlIGlmIChwbHVnSW5JbWFnZUVsZW1lbnQoKS0+aG92ZXJlZCgpKQor
ICAgICAgICBidXR0b25JbWFnZSA9IHN0YXJ0QnV0dG9uSW1hZ2UobV9idXR0b25UeXBlLCBCdXR0
b25TdGF0ZUhvdmVyZWQpOwogCi0gICAgTGF5b3V0UG9pbnQgY29udGVudExvY2F0aW9uID0gcGFp
bnRPZmZzZXQgKyBjb250ZW50UmVjdC5tYXhYTWF4WUNvcm5lcigpIC0gYnV0dG9uSW1hZ2UtPnNp
emUoKSAtIExheW91dFNpemUoc3RhcnRCdXR0b25QYWRkaW5nLCBzdGFydEJ1dHRvblBhZGRpbmcp
OwotICAgIHBhaW50SW5mby5jb250ZXh0LT5kcmF3SW1hZ2UoYnV0dG9uSW1hZ2UsIENvbG9yU3Bh
Y2VEZXZpY2VSR0IsIHJvdW5kZWRJbnRQb2ludChjb250ZW50TG9jYXRpb24pLCBidXR0b25JbWFn
ZS0+cmVjdCgpKTsKKyAgICBpZiAoIWJ1dHRvbkltYWdlKQorICAgICAgICByZXR1cm47CisgICAg
cGFpbnRJbmZvLmNvbnRleHQtPmRyYXdJbWFnZShidXR0b25JbWFnZSwgQ29sb3JTcGFjZURldmlj
ZVJHQiwgcm91bmRlZEludFBvaW50KHBhaW50T2Zmc2V0ICsgbV9idXR0b25SZWN0LmxvY2F0aW9u
KCkpLCBidXR0b25JbWFnZS0+cmVjdCgpKTsKIH0KIAogdm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBs
dWdJbjo6cmVwYWludEJ1dHRvbigpCkBAIC0xOTcsMTkgKzIwNyw0NSBAQCB2b2lkIFJlbmRlclNu
YXBzaG90dGVkUGx1Z0luOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQpCiAgICAgfQogfQogCitM
YXlvdXRSZWN0IFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp0cnlUb0ZpdFN0YXJ0QnV0dG9uKEJ1
dHRvblNpemUgc2l6ZSwgY29uc3QgTGF5b3V0UmVjdCYgY29udGVudEJveCkgY29uc3QKK3sKKyAg
ICBJbWFnZSogYnV0dG9uSW1hZ2UgPSBzdGFydEJ1dHRvbkltYWdlKHNpemUsIEJ1dHRvblN0YXRl
SG92ZXJlZCk7CisgICAgaWYgKCFidXR0b25JbWFnZSkKKyAgICAgICAgcmV0dXJuIExheW91dFJl
Y3QoKTsKKworICAgIExheW91dFNpemUgYnV0dG9uU2l6ZSA9IGJ1dHRvbkltYWdlLT5zaXplKCk7
CisgICAgTGF5b3V0UmVjdCBjYW5kaWRhdGVSZWN0KGNvbnRlbnRCb3gubWF4WE1pbllDb3JuZXIo
KSArIExheW91dFNpemUoLXN0YXJ0QnV0dG9uUGFkZGluZywgc3RhcnRCdXR0b25QYWRkaW5nKSAr
IExheW91dFNpemUoLWJ1dHRvblNpemUud2lkdGgoKSwgMCksIGJ1dHRvblNpemUpOworICAgIC8v
IFRoZSBtaW5pbXVtIGFsbG93ZWQgY29udGVudCBib3ggc2l6ZSBpcyB0aGUgYnV0dG9uIGltYWdl
IHBsYWNlZCBpbiB0aGUgY2VudGVyIG9mIHRoZSBib3gsIHN1cnJvdW5kZWQgYnkgc3RhcnRCdXR0
b25QYWRkaW5nLgorICAgIGlmIChjYW5kaWRhdGVSZWN0LngoKSA8IHN0YXJ0QnV0dG9uUGFkZGlu
ZyB8fCBjYW5kaWRhdGVSZWN0Lm1heFkoKSA+IGNvbnRlbnRCb3guaGVpZ2h0KCkgLSBzdGFydEJ1
dHRvblBhZGRpbmcpCisgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CisgICAgcmV0dXJuIGNh
bmRpZGF0ZVJlY3Q7Cit9CisKIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmxheW91dCgp
CiB7CiAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmxheW91dCgpOworCisgICAgTGF5b3V0UmVj
dCByZWN0ID0gY29udGVudEJveFJlY3QoKTsKKyAgICBpbnQgd2lkdGggPSByZWN0LndpZHRoKCk7
CisgICAgaW50IGhlaWdodCA9IHJlY3QuaGVpZ2h0KCk7CiAgICAgaWYgKHBsdWdJbkltYWdlRWxl
bWVudCgpLT5kaXNwbGF5U3RhdGUoKSA8IEhUTUxQbHVnSW5FbGVtZW50OjpQbGF5aW5nKSB7Ci0g
ICAgICAgIExheW91dFJlY3QgcmVjdCA9IGNvbnRlbnRCb3hSZWN0KCk7Ci0gICAgICAgIGludCB3
aWR0aCA9IHJlY3Qud2lkdGgoKTsKLSAgICAgICAgaW50IGhlaWdodCA9IHJlY3QuaGVpZ2h0KCk7
CiAgICAgICAgIGlmICghd2lkdGggfHwgIWhlaWdodCB8fCAod2lkdGggPD0gYXV0b1N0YXJ0UGx1
Z0luU2l6ZVRocmVzaG9sZFdpZHRoICYmIGhlaWdodCA8PSBhdXRvU3RhcnRQbHVnSW5TaXplVGhy
ZXNob2xkSGVpZ2h0KSkKICAgICAgICAgICAgIHBsdWdJbkltYWdlRWxlbWVudCgpLT5zZXREaXNw
bGF5U3RhdGUoSFRNTFBsdWdJbkVsZW1lbnQ6OlBsYXlpbmcpOwogICAgIH0KIAotICAgIExheW91
dFNpemUgYnV0dG9uU2l6ZSA9IHN0YXJ0QnV0dG9uSW1hZ2UoKS0+c2l6ZSgpOwotICAgIG1fYnV0
dG9uUmVjdCA9IExheW91dFJlY3QoY29udGVudEJveFJlY3QoKS5tYXhYTWF4WUNvcm5lcigpIC0g
TGF5b3V0U2l6ZShzdGFydEJ1dHRvblBhZGRpbmcsIHN0YXJ0QnV0dG9uUGFkZGluZykgLSBidXR0
b25TaXplLCBidXR0b25TaXplKTsKKyAgICBtX2J1dHRvblJlY3QgPSB0cnlUb0ZpdFN0YXJ0QnV0
dG9uKEJ1dHRvblNpemVMYXJnZSwgcmVjdCk7CisgICAgaWYgKCFtX2J1dHRvblJlY3QuaXNFbXB0
eSgpKSB7CisgICAgICAgIG1fYnV0dG9uVHlwZSA9IEJ1dHRvblNpemVMYXJnZTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIG1fYnV0dG9uUmVjdCA9IHRyeVRvRml0U3RhcnRCdXR0b24o
QnV0dG9uU2l6ZVNtYWxsLCByZWN0KTsKKyAgICBpZiAoIW1fYnV0dG9uUmVjdC5pc0VtcHR5KCkp
IHsKKyAgICAgICAgbV9idXR0b25UeXBlID0gQnV0dG9uU2l6ZVNtYWxsOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgbV9idXR0b25UeXBlID0gTm9CdXR0b247CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNu
YXBzaG90dGVkUGx1Z0luLmgKaW5kZXggMmExZjg5NmM3NDRjMTczYTgzNzhmZDFmNDdlMTE0MmU3
NjlmZmRmNy4uMzNjMzk4NGNjODYyNGRkYTMwOTI4MTJmZTM0Yzk4NTU4NjVlYTVhOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmgK
QEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgogCiAj
aW5jbHVkZSAiUmVuZGVySW1hZ2VSZXNvdXJjZS5oIgotI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDAsNiArMzksMTggQEAgcHVibGljOgogICAg
IFJlbmRlclNuYXBzaG90dGVkUGx1Z0luKEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqKTsKICAgICB2
aXJ0dWFsIH5SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbigpOwogCisgICAgZW51bSBCdXR0b25TaXpl
IHsKKyAgICAgICAgTm9CdXR0b24sCisgICAgICAgIEJ1dHRvblNpemVTbWFsbCwKKyAgICAgICAg
QnV0dG9uU2l6ZUxhcmdlLAorICAgIH07CisKKyAgICBlbnVtIEJ1dHRvblN0YXRlIHsKKyAgICAg
ICAgQnV0dG9uU3RhdGVOb3JtYWwsCisgICAgICAgIEJ1dHRvblN0YXRlSG92ZXJlZCwKKyAgICAg
ICAgQnV0dG9uU3RhdGVBY3RpdmUsCisgICAgfTsKKwogICAgIHZvaWQgdXBkYXRlU25hcHNob3Qo
UGFzc1JlZlB0cjxJbWFnZT4pOwogCiAgICAgdm9pZCBoYW5kbGVFdmVudChFdmVudCopOwpAQCAt
NTcsOSArNjgsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50QnV0dG9uKFBhaW50SW5mbyYs
IGNvbnN0IExheW91dFBvaW50Jik7CiAgICAgdm9pZCByZXBhaW50QnV0dG9uKCk7CiAKKyAgICBM
YXlvdXRSZWN0IHRyeVRvRml0U3RhcnRCdXR0b24oQnV0dG9uU2l6ZSwgY29uc3QgTGF5b3V0UmVj
dCYgY29udGVudEJveCkgY29uc3Q7CisgICAgSW1hZ2UqIHN0YXJ0QnV0dG9uSW1hZ2UoQnV0dG9u
U2l6ZSwgQnV0dG9uU3RhdGUpIGNvbnN0OworCiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9W
RVJSSURFOwogCiAgICAgT3duUHRyPFJlbmRlckltYWdlUmVzb3VyY2U+IG1fc25hcHNob3RSZXNv
dXJjZTsKKyAgICBCdXR0b25TaXplIG1fYnV0dG9uVHlwZTsKICAgICBMYXlvdXRSZWN0IG1fYnV0
dG9uUmVjdDsKICAgICBib29sIG1faXNNb3VzZUluQnV0dG9uUmVjdDsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvY2cvV0tJbWFnZUNHLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvYy9jZy9XS0ltYWdlQ0cuY3BwCmluZGV4IDkzODA0OWI3MWI5ZTA3
MjgxNDA3OTIyYzc0MzEyZTI3YTAzZTkwMmQuLjEwNzFlZjU5MmI4NjY1ZmZiODA2MmZkYmQ4Zjgy
ZTAyOTllMDdlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9jZy9X
S0ltYWdlQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9jZy9XS0ltYWdl
Q0cuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAj
aW5jbHVkZSAiV0tTaGFyZWRBUElDYXN0LmgiCiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29u
dGV4dC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNTQsNiArNTUsOCBAQCBXS0lt
YWdlUmVmIFdLSW1hZ2VDcmVhdGVGcm9tQ0dJbWFnZShDR0ltYWdlUmVmIGltYWdlUmVmLCBXS0lt
YWdlT3B0aW9ucyBvcHRpb25zKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIE93blB0cjxHcmFw
aGljc0NvbnRleHQ+IGdyYXBoaWNzQ29udGV4dCA9IHdlYkltYWdlLT5iaXRtYXAoKS0+Y3JlYXRl
R3JhcGhpY3NDb250ZXh0KCk7Ci0gICAgQ0dDb250ZXh0RHJhd0ltYWdlKGdyYXBoaWNzQ29udGV4
dC0+cGxhdGZvcm1Db250ZXh0KCksIENHUmVjdE1ha2UoMCwgMCwgaW1hZ2VTaXplLndpZHRoKCks
IGltYWdlU2l6ZS5oZWlnaHQoKSksIGltYWdlUmVmKTsKKyAgICBGbG9hdFJlY3QgcmVjdChGbG9h
dFBvaW50KDAsIDApLCBpbWFnZVNpemUpOworICAgIGdyYXBoaWNzQ29udGV4dC0+Y2xlYXJSZWN0
KHJlY3QpOworICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd05hdGl2ZUltYWdlKGltYWdlUmVmLCBp
bWFnZVNpemUsIFdlYkNvcmU6OkNvbG9yU3BhY2VEZXZpY2VSR0IsIHJlY3QsIHJlY3QpOwogICAg
IHJldHVybiB0b0FQSSh3ZWJJbWFnZS5yZWxlYXNlKCkubGVha1JlZigpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUGFnZS5oCmluZGV4IGMyYjM3ODk0YTZmMTYwYTU3ZDliMjI3NDEwNDlhMmRjNDc1
MTI1NjAuLmE3ZmJhNTE5ZTEyMTNlZjc5MjFlMjA4YjYxMTQyYTVjZjQzOGQwOTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2UuaApAQCAtMjI1LDcgKzIyNSwyMCBAQCBlbnVtIHsKICAgICBXS0J1
bmRsZVBhZ2VVSUVsZW1lbnRIaWRkZW4KIH07CiB0eXBlZGVmIHVpbnQzMl90IFdLQnVuZGxlUGFn
ZVVJRWxlbWVudFZpc2liaWxpdHk7Ci0gICAgCisKK2VudW0geworICAgIFdLQnVuZGxlUGFnZUJ1
dHRvblNpemVTbWFsbCwKKyAgICBXS0J1bmRsZVBhZ2VCdXR0b25TaXplTGFyZ2UsCit9OwordHlw
ZWRlZiB1aW50MzJfdCBXS0J1bmRsZVBhZ2VCdXR0b25TaXplOworCitlbnVtIHsKKyAgICBXS0J1
bmRsZVBhZ2VCdXR0b25TdGF0ZU5vcm1hbCwKKyAgICBXS0J1bmRsZVBhZ2VCdXR0b25TdGF0ZUhv
dmVyZWQsCisgICAgV0tCdW5kbGVQYWdlQnV0dG9uU3RhdGVBY3RpdmUsCit9OwordHlwZWRlZiB1
aW50MzJfdCBXS0J1bmRsZVBhZ2VCdXR0b25TdGF0ZTsKKwogLy8gVUkgQ2xpZW50CiB0eXBlZGVm
IHZvaWQgKCpXS0J1bmRsZVBhZ2VXaWxsQWRkTWVzc2FnZVRvQ29uc29sZUNhbGxiYWNrKShXS0J1
bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgdWludDMyX3QgbGluZU51bWJl
ciwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VX
aWxsU2V0U3RhdHVzYmFyVGV4dENhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJp
bmdSZWYgc3RhdHVzYmFyVGV4dCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkBAIC0yNDIsNiAr
MjU1LDcgQEAgdHlwZWRlZiBXS0J1bmRsZVBhZ2VVSUVsZW1lbnRWaXNpYmlsaXR5ICgqV0tCdW5k
bGVQYWdlTWVudUJhcklzVmlzaWJsZUNhbGxiYWNrKSgKIHR5cGVkZWYgV0tCdW5kbGVQYWdlVUlF
bGVtZW50VmlzaWJpbGl0eSAoKldLQnVuZGxlUGFnZVRvb2xiYXJzQXJlVmlzaWJsZUNhbGxiYWNr
KShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVm
IHZvaWQgKCpXS0J1bmRsZVBhZ2VSZWFjaGVkQXBwQ2FjaGVPcmlnaW5RdW90YUNhbGxiYWNrKShX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIGludDY0X3Qg
dG90YWxCeXRlc05lZWRlZCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHVpbnQ2
NF90ICgqV0tCdW5kbGVQYWdlRXhjZWVkZWREYXRhYmFzZVF1b3RhQ2FsbGJhY2spKFdLQnVuZGxl
UGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tTdHJpbmdSZWYgZGF0
YWJhc2VOYW1lLCBXS1N0cmluZ1JlZiBkYXRhYmFzZURpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJy
ZW50UXVvdGFCeXRlcywgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlQnl0ZXMsIHVpbnQ2NF90
IGN1cnJlbnREYXRhYmFzZVVzYWdlQnl0ZXMsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2VCeXRlcywg
Y29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0eXBlZGVmIFdLSW1hZ2VSZWYgKCpXS0J1bmRsZVBh
Z2VHZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2VDYWxsYmFjaykoV0tCdW5kbGVQYWdlQnV0
dG9uU2l6ZSBzaXplLCBXS0J1bmRsZVBhZ2VCdXR0b25TdGF0ZSBzdGF0ZSwgY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbyk7CiAKIHN0cnVjdCBXS0J1bmRsZVBhZ2VVSUNsaWVudCB7CiAgICAgaW50ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2ZXJzaW9uOwpAQCAtMjY2LDcgKzI4MCw3IEBAIHN0cnVjdCBXS0J1bmRsZVBhZ2VVSUNs
aWVudCB7CiAKICAgICAvLyBWZXJzaW9uIDIuCiAgICAgV0tCdW5kbGVQYWdlRXhjZWVkZWREYXRh
YmFzZVF1b3RhQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRFeGNlZWREYXRh
YmFzZVF1b3RhOwotCisgICAgV0tCdW5kbGVQYWdlR2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbklt
YWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICBnZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1h
Z2U7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlVUlDbGllbnQgV0tCdW5kbGVQYWdl
VUlDbGllbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAK
aW5kZXggNjJhYTJiMzE4OTJjMDNjYTA2ZWQ3MGI2NGI3MzdlODEwY2IyYmQ1NC4uZWVlYWZjNzFm
YWZiOTc1MDFiNGQ4OTE0NjIyNWZlYjVmYTlhYjU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAKQEAgLTE2Myw0ICsxNjMsMzkgQEAgdWludDY0X3QgSW5q
ZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQ6OmRpZEV4Y2VlZERhdGFiYXNlUXVvdGEoV2ViUGFnZSog
cGFnZSwgV2ViU2UKICAgICByZXR1cm4gbV9jbGllbnQuZGlkRXhjZWVkRGF0YWJhc2VRdW90YSh0
b0FQSShwYWdlKSwgdG9BUEkob3JpZ2luKSwgdG9BUEkoZGF0YWJhc2VOYW1lLmltcGwoKSksIHRv
QVBJKGRhdGFiYXNlRGlzcGxheU5hbWUuaW1wbCgpKSwgY3VycmVudFF1b3RhQnl0ZXMsIGN1cnJl
bnRPcmlnaW5Vc2FnZUJ5dGVzLCBjdXJyZW50RGF0YWJhc2VVc2FnZUJ5dGVzLCBleHBlY3RlZFVz
YWdlQnl0ZXMsIG1fY2xpZW50LmNsaWVudEluZm8pOwogfQogCitQYXNzUmVmUHRyPFdlYkltYWdl
PiBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6Z2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbklt
YWdlKFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpCdXR0b25TaXplIHNpemUsIFJlbmRlclNuYXBz
aG90dGVkUGx1Z0luOjpCdXR0b25TdGF0ZSBzdGF0ZSkgY29uc3QKK3sKKyAgICBpZiAoIW1fY2xp
ZW50LmdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZSkKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICBXS0J1bmRsZVBhZ2VCdXR0b25TaXplIHdrU2l6ZTsKKyAgICBzd2l0Y2ggKHNpemUpIHsK
KyAgICBjYXNlIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpCdXR0b25TaXplU21hbGw6CisgICAg
ICAgIHdrU2l6ZSA9IFdLQnVuZGxlUGFnZUJ1dHRvblNpemVTbWFsbDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6QnV0dG9uU2l6ZUxhcmdlOgorICAg
ICAgICB3a1NpemUgPSBXS0J1bmRsZVBhZ2VCdXR0b25TaXplTGFyZ2U7CisgICAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIFdLQnVuZGxl
UGFnZUJ1dHRvblN0YXRlIHdrU3RhdGU7CisgICAgc3dpdGNoIChzdGF0ZSkgeworICAgIGNhc2Ug
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OkJ1dHRvblN0YXRlTm9ybWFsOgorICAgICAgICB3a1N0
YXRlID0gV0tCdW5kbGVQYWdlQnV0dG9uU3RhdGVOb3JtYWw7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OkJ1dHRvblN0YXRlSG92ZXJlZDoKKyAgICAg
ICAgd2tTdGF0ZSA9IFdLQnVuZGxlUGFnZUJ1dHRvblN0YXRlSG92ZXJlZDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6QnV0dG9uU3RhdGVBY3RpdmU6
CisgICAgICAgIHdrU3RhdGUgPSBXS0J1bmRsZVBhZ2VCdXR0b25TdGF0ZUFjdGl2ZTsKKyAgICAg
ICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAg
cmV0dXJuIGFkb3B0UmVmKHRvSW1wbChtX2NsaWVudC5nZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9u
SW1hZ2Uod2tTaXplLCB3a1N0YXRlLCBtX2NsaWVudC5jbGllbnRJbmZvKSkpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQu
aAppbmRleCAxM2M4OWM2N2RkMmJjZTE2YTc4NGQ4NjFkNTkwYzMzOGU3OTNhOTQ0Li41NDEwYTIx
N2M3MGJhMDQ2OWMwZDc1ZDExZWRhNWVjMmNlOWY0MTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VVSUNsaWVudC5oCkBAIC0yOSwxMiArMjksMTQgQEAKICNpbmNsdWRlICJBUElD
bGllbnQuaCIKICNpbmNsdWRlICJXS0J1bmRsZVBhZ2UuaCIKICNpbmNsdWRlICJXZWJFdmVudC5o
IgorI2luY2x1ZGUgIldlYkltYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbi5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKLSAgICBjbGFzcyBHcmFwaGljc0NvbnRleHQ7Ci0gICAgY2xhc3MgSGl0VGVzdFJlc3Vs
dDsKLSAgICBjbGFzcyBJbnRSZWN0OworY2xhc3MgR3JhcGhpY3NDb250ZXh0OworY2xhc3MgSGl0
VGVzdFJlc3VsdDsKK2NsYXNzIEludFJlY3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAt
NjgsNiArNzAsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZFJlYWNoQXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhKFdlYlBhZ2UqLCBXZWJTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxC
eXRlc05lZWRlZCk7CiAgICAgdWludDY0X3QgZGlkRXhjZWVkRGF0YWJhc2VRdW90YShXZWJQYWdl
KiwgV2ViU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3Qg
U3RyaW5nJiBkYXRhYmFzZURpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGFCeXRlcywg
dWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlQnl0ZXMsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFz
ZVVzYWdlQnl0ZXMsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2VCeXRlcyk7CisKKyAgICBQYXNzUmVm
UHRyPFdlYkltYWdlPiBnZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2UoV2ViQ29yZTo6UmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW46OkJ1dHRvblNpemUsIFdlYkNvcmU6OlJlbmRlclNuYXBzaG90
dGVkUGx1Z0luOjpCdXR0b25TdGF0ZSkgY29uc3Q7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAwOTdhYmU4Y2FhZDUxYzUzM2FlZGI0Yzkz
MjgyNTAyNTU1MWM5ODEwLi42ZmZhYzg3OWU3OTg5OWM4Y2Y3YWNhNjhhZmEyOTVkN2EyYmMwZWUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAi
V2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUg
IldlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRl
ICJXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2ViT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCkBAIC04MTgsNCArODE5LDkgQEAgdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJgogICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKG1fcGFnZSwgbWVzc2FnZSwgZGVz
Y3JpcHRpb24sIHN1Y2Nlc3MpOwogfQogCitQYXNzUmVmUHRyPEltYWdlPiBXZWJDaHJvbWVDbGll
bnQ6OmdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZShSZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bjo6QnV0dG9uU2l6ZSBzaXplLCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6QnV0dG9uU3RhdGUg
c3RhdGUpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVVSUNsaWVu
dCgpLmdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZShzaXplLCBzdGF0ZSktPmJpdG1hcCgp
LT5jcmVhdGVJbWFnZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCmluZGV4IDFlNjJmN2FiZDRjYzJiYjg1MjllNTBmNzcxMGY3MmQ2MDhlMDFjNjMuLjg3
MzhlOWM3ZWM3YWU0Mjk2MjBkMTYyZjY4YjE5ODViYzZmNzI0ODUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaApAQCAtMjgsNiArMjgsNyBAQAogI2RlZmluZSBXZWJDaHJvbWVDbGllbnRfaAogCiAjaW5j
bHVkZSA8V2ViQ29yZS9DaHJvbWVDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWV3cG9ydEFyZ3VtZW50cy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCkBAIC0yMjUsNiArMjI2LDggQEAgcHJpdmF0ZToKIAogICAgIHZp
cnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgc3VjY2VzcykgT1ZFUlJJREU7
CiAKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IGdlbmVyYXRlUGx1Z0lu
U3RhcnRCdXR0b25JbWFnZShXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6QnV0dG9u
U2l6ZSwgV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OkJ1dHRvblN0YXRlKSBjb25z
dCBPVkVSUklERTsKKwogICAgIFN0cmluZyBtX2NhY2hlZFRvb2xUaXA7CiAgICAgbXV0YWJsZSBS
ZWZQdHI8V2ViRnJhbWU+IG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWU7CiAgICAgbXV0YWJs
ZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhcjsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMzYyMGU3ODNlYjQ3
ZTk4YmU0YzA5Y2RmZTVjNDU1MmNhYTI0MDE4Li4zYzU5ZWJkNTVmOTA0OGM1YWQ5MTk0NzRiMWVl
YzhkZjQwMDYzMjM5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTItMDUgIEpvbiBMZWUgIDxqb25sZWVAYXBw
bGUuY29tPgorCisgICAgICAgIFtXSzJdIE1vdmUgYnV0dG9uIGltYWdlIHRvIGluamVjdGVkIGJ1
bmRsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0
MTA3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjgxMzg0Mj4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRC
dW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UpOiBVcGRhdGUgdGhlIGJ1bmRsZSBwYWdlIFVJ
IGNsaWVudC4KKwogMjAxMi0xMi0wNCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgog
CiAgICAgICAgIGRpc3BsYXktcHJvZmlsZXItb3V0cHV0IHNob3VsZCBiZSBhYmxlIHRvIHNob3cg
c291cmNlIGNvZGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAppbmRleCAwMDgxOTc1ZTBhMWZjM2E1
NDA2ZjczZGZhMGIyMWNjOTA5YzY3YjVkLi42NWMwYWRjZDdkYjA1YTdhYTc4MmZkM2RhZDYzZGM4
YTUyMmVjYTI4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCkBAIC0zNzYsNiArMzc2LDcgQEAg
SW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UoV0tCdW5kbGVQYWdlUmVmIHBh
Z2UpCiAgICAgICAgIDAsIC8qdG9vbGJhcnNBcmVWaXNpYmxlKi8KICAgICAgICAgZGlkUmVhY2hB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEsCiAgICAgICAgIGRpZEV4Y2VlZERhdGFiYXNlUXVv
dGEsCisgICAgICAgIDAsIC8qZ2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlKi8KICAgICB9
OwogICAgIFdLQnVuZGxlUGFnZVNldFVJQ2xpZW50KG1fcGFnZSwgJnVpQ2xpZW50KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177720</attachid>
            <date>2012-12-05 03:52:43 -0800</date>
            <delta_ts>2012-12-05 09:02:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104107-20121205035009.patch</filename>
            <type>text/plain</type>
            <size>77315</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjRkYTZlNTVhNTUzYWEz
ZTY3ZTFmOGZiZmJmYTYyZjdmNDIyZjc3Ni4uODQ5MmY2M2FmMDRkOTg2NGMxNjk1NWU0NjdjNGU1
NWUxMmMxYjRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTEyLTA1ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBNb3ZlIGJ1dHRvbiBpbWFn
ZSB0byBpbmplY3RlZCBidW5kbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNDEwNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTI4MTM4NDI+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIFJl
bmRlclNuYXBzaG90dGVkUGx1Z0luIHRvIHJldHJpZXZlIHRoZSBzdGFydCBidXR0b24gaW1hZ2Ug
ZnJvbSB0aGUgQ2hyb21lQ2xpZW50LiBFeHBhbmQgdGhlCisgICAgICAgIGtpbmRzIG9mIGltYWdl
cyBhdmFpbGFibGUgZm9yIHVzZSBhcyB0aGUgYnV0dG9uLiBUcnkgdG8gZmluZCB0aGUgYmVzdCBz
aXplZCBidXR0b24gdG8gdXNlIGZvciB0aGUgcGx1Zy1pbiwKKyAgICAgICAgb3RoZXJ3aXNlIHVz
ZSBubyBpbWFnZSBhdCBhbGwuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4uY3BwOiBLZWVwIHRyYWNrIG9mIHRoZSBkZXNpcmVkIGJ1dHRvbiB0byB1c2UgZm9y
IHRoaXMgcmVuZGVyZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bjo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4pOiBTdGFydCBvZmYgd2l0aCBubyBidXR0b24uIER1
cmluZyBsYXlvdXQgd2Ugd2lsbAorICAgICAgICBkZXRlcm1pbmUgd2hpY2ggYnV0dG9uIHRvIHVz
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpzdGFydEJ1dHRv
bkltYWdlKTogTWFpbnRhaW4gYSBjYWNoZSBvZiB0aGUgaW1hZ2VzIGZvciByZXVzZS4gSW5kZXgg
aW50byB0aGUKKyAgICAgICAgYXJyYXkgdXNpbmcgdGhlIGVudW1zLiBJZiB0aGUgaW1hZ2UgaGFz
IGJlZW4gbG9hZGVkLCBvciBhbiBhdHRlbXB0IHdhcyBtYWRlLCB0aGVuIHJldHVybiB0aGUgcmVz
dWx0LiBPdGhlcndpc2UKKyAgICAgICAgYXNrIHRoZSBjaHJvbWUgY2xpZW50IHRvIGdlbmVyYXRl
IHRoZSBpbWFnZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpw
YWludEJ1dHRvbik6IFJlZmFjdG9yLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0
ZWRQbHVnSW46OnRyeVRvRml0U3RhcnRCdXR0b24pOiBDb21wYXJlIHRoZSBidXR0b24gc2l6ZSB3
aXRoIHRoZSBwcm92aWRlZCBjb250ZW50CisgICAgICAgIGJveC4gUmV0dXJuIGEgTGF5b3V0UmVj
dCByZXByZXNlbnRpbmcgdGhlIGJ1dHRvbidzIHBsYWNlbWVudC4gSWYgaXQgZG9lc24ndCBmaXQs
IHJldHVybiBhbiBlbXB0eSByZWN0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0
ZWRQbHVnSW46OmxheW91dCk6IFRyeSB0byBmaXQgdGhlIGxhcmdlIGJ1dHRvbiwgdGhlbiB0aGUg
c21hbGwuIElmIGJvdGggZmFpbCwgZG9uJ3QKKyAgICAgICAgZHJhdyBhIGJ1dHRvbi4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaDogQWRkIHR3byBlbnVtcywg
b25lIGZvciB0aGUgc2l6ZSwgYW5kIHRoZSBvdGhlciB0aGUgc3RhdGUsIGZvciB0aGUKKyAgICAg
ICAgYnV0dG9uLgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogQWRkZWQgZ2VuZXJh
dGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlLiBBbHNvLCBmaXggV2ViS2l0IHN0eWxlIGVycm9ycywg
aW5jbHVkaW5nIGluZGVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50Ojpn
ZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2UpOgorCisgICAgICAgICogV2ViQ29yZS5leHAu
aW46IEV4cG9zZSBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSgpIGZvciBXS0ltYWdl
Q0cuY3BwLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogUmVt
b3ZlIHN0YXJ0IGJ1dHRvbiBhc3NldHMuCisgICAgICAgICogUmVzb3VyY2VzL3N0YXJ0QnV0dG9u
LnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBSZXNvdXJjZXMvc3RhcnRCdXR0b25AMngucG5nOiBS
ZW1vdmVkLgorICAgICAgICAqIFJlc291cmNlcy9zdGFydEJ1dHRvblByZXNzZWQucG5nOiBSZW1v
dmVkLgorICAgICAgICAqIFJlc291cmNlcy9zdGFydEJ1dHRvblByZXNzZWRAMngucG5nOiBSZW1v
dmVkLgorCiAyMDEyLTEyLTA0ICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBBc3NvY2lhdGUgVVJMcyB3aXRoIEdyYXBoaWNzQ29udGV4dDNEIGluc3RhbmNlcyBj
cmVhdGVkIGZvciBXZWJHTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDgxOWVjMTY3YzczNjRjODAyNGMyNDFjOTA4
NmIzYjY2NjY1NGU1ZGMuLjVmNzkwYTg2MTExZjcwMTNjODJmMTRiOTE0YWE1Y2ZkMzA0ODU5OWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMi0xMi0wNSAgSm9uIExlZSAgPGpvbmxl
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTW92ZSBidXR0b24gaW1hZ2UgdG8gaW5qZWN0
ZWQgYnVuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDQxMDcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyODEzODQyPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbHkgb24gdGhlIGluamVjdGVk
IGJ1bmRsZSB0byBjcmVhdGUgdGhlIGltYWdlIHVzZWQgZm9yIHRoZSBidXR0b24gaW4gc25hcHNo
b3R0ZWQgcGx1Zy1pbnMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Z2Vu
ZXJhdGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlKTogRm9yd2FyZCB0aGUgY2FsbCB0byB0aGUgaW5q
ZWN0ZWQgYnVuZGxlIFVJIGNsaWVudC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oOiBJbXBsZW1lbnQgZ2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRv
bkltYWdlKCkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZVVJQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQ
YWdlVUlDbGllbnQ6OmdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZSk6IENvbnZlcnQgdGhl
IFdlYkNvcmUgZW51bXMgdG8gV0sgQVBJCisgICAgICAgIGVudW1zLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaDoKKworICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmg6IEV4
cG9zZSBhIG5ldyBjYWxsYmFjayB0byBnZW5lcmF0ZSB0aGUgYnV0dG9uIGltYWdlLgorCisgICAg
ICAgICogU2hhcmVkL0FQSS9jL2NnL1dLSW1hZ2VDRy5jcHA6CisgICAgICAgIChXS0ltYWdlQ3Jl
YXRlRnJvbUNHSW1hZ2UpOiBSZWZhY3RvciB0byB1c2UgR3JhcGhpY3NDb250ZXh0IG1ldGhvZHMg
c28gdGhhdCB0aGUgaW1hZ2UgaXMgZmxpcHBlZCBhcHByb3ByaWF0ZWx5LgorCiAyMDEyLTEyLTA0
ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3Zl
IFBhZ2VDbGllbnQ6OmRpZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluRnJhbWUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9zdGFydEJ1dHRvbi5wbmcgYi9Tb3VyY2UvV2ViQ29y
ZS9SZXNvdXJjZXMvc3RhcnRCdXR0b24ucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAyNzQ4YzE4ZjVkYWNiMTU2OTU3ZGQ0Y2RmMzkyNGViMzUyNDEwYTIwLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhj
bVY/ZDAwMDAxCgpsaXRlcmFsIDIwMTcKemNtVjw3Mk9qdXxQKTxoOzNLfExrMDAwZTFOSkxUcTAw
MVplMDAxWm0xXkBzNmpRK1Q3MDAwTjVOa2w8WlNQOFk2CnomdWRnITdSVCNWRHdeMUZqNVZZb2xR
QXteaC1pLXNqZiN0RzApcT1UTFIzKVBJS3Ijfjt6QnB3cThxVyhfeT1TdQp6Q2B7c3IoamNfIU1o
TD8mcVAtWXJGKEQ/fWxnTVAra1BLPVBsVGBLaF5ZWHNNZWIxYDJIYSVCZm8lN0U5cDZAeUQKeisj
bTFlOEM1RWtULVhqQUlJd0Jrd3J6YjQ0R3EwZjZtX1YtQ0c3dkRiO1dvcyZkS0hGPCFfJW9kLW5D
Q01+fipoCno3P0JlY0Z6Vn47SktmYU9ebSRgclZeTFI1cnVZZ1NMTEZaKTxfUD1ILUdgKnIhZWly
RlQzWDV9JChjOEEtVkVIbwp6ZX03MX14Tj5vVkI4WDAkSUJga0leey1wRUV8PF5lVzVWbllKYFBI
c2I+dUo2JUg/d0ktTWU/V2dAdUt8eUxhemkKekJncTI5TX5AeW95Pypgckk1YEtjN2NoQ1N4WkFw
QUopYU0/NlBwNXd1VXxRaCVrUig4e3s4em0/Ynh3bk1BYSo1CnotbGUjbHRTZHchd3h4aXtqciU/
bnBYSVBXbH5mZ0hNbl58YEA+e2xTPjB7MjM5MzM8eTdZU0xxTnx3ZjE4Zk97JAp6ViZnSjRSYGU2
diZ7dE1nczx1TCpQJFcwV0xOOVlKMWxKPDRFaTNWUmB9Uz90OU4leCl1JVhJfXA8R19rWjxJKFoK
eio1OUFRPFYwPS1KIXVFZnVybDAjT3Y4NkBhUFlxeGc/UXp1NT5iRERlX0woTmE5Z3UoblR8P3NC
LXI5UGxrUl4xCnpqKTB5Z1ZLNFMjdkFFPmJANmlZYD09Sj1LR2REOFBUakV1VzxBKUx1OU9ze0U7
TlcjcTxffjM8NU8jQmk1MTJ8WQp6YlZrb00yWCY+fj8rNWd+clJ8blp6ej1BPEM0UW1LZUphODE2
OUtqamF4TUxlPyN0U2U4WFRrK3NjbTV9Ym9zQUgKej05YDxGQk9XczMkRVF8SHkpc09RNDBWPTIk
KD1mTj5nbUNRMm1pKXl8RkkxcGVCcWQlcFJlZSg3RT9HKkotITBMCnoqSkBPNWFkRU03PUZGTD0r
VER4N3dATSRDdCYzZnNSeGIjNERsSUg7aHwhQXxGTHI5Qj1rP1psZGhfUFotKWtofAp6TzRmQHta
Z0ItNnMmXyVZY2trWVJre208PzcjSjlNQytGOEJVI35mN2ZgRypiVSt7M2ozM3Q3P19ScF5jVXw5
NSkKem5ZblBgIXNhbE0rMWM0UXg/ZChaJjFDVVNAPyV+dyh3N3NURGc7aXIhfDdya2B5JHR6Z09I
eSpkMikoM2c0QCo4CnopREtzI1Q8S0NaVEQ4LXMtVzB9ITV7d2RRI1JwJmEhM2o1V0YtJDFiIUtO
eVIwUlN5fF4ySC1aantHX3tCdE1yZwp6VXRVJm5uK2FAZSpsKm98bTxHYWdaTjdCcigoMX1jS3lW
QVU9cC0/Um9hbEF1QVdrfnZqQT1xdy0kUEhISlE8JnYKem5kdjU9NlI+bipwPiF9TEp7c24zSUU7
YjJ0RSszdzM3WDNpVHdGbiZIUjY5NSZ9ZX02P2MwfW47XkU9cGlaXkwwCno7fHB4SVZUKVA4IUtx
VDxKTiVkNzZqK09leSlrejhxNj5MZkh8bXZEeilHWV5GQlEzPmxaVEV3dE5UYjJlUFV2dwp6JV5O
SHhae2tWIWBAKU1uaz5EcXVPfCpyOyZkJHo4Q3hxUWU4azB7TXtBYGt5YXdYVCUoZWE2YU5OdXBL
O2t9PDYKenNiUHY3MnRCVCNzJUo/YjNGPkg7O3ZmY24jI3gkKyhAZmsrVjlvJGs4XzhnK3JCPURf
MUB9fFh6MWtvPGNJO1RZCno/P1Z+bChNZEFYO3MtTyU1KTY4MzZfLV50ajdZYElPOzFtIVBOTGNf
e3p0enJsanotPTxJPGE8RCQkSiNyOHJXNQp6Und+QjQ9UVRLVVRGK0p9MkpuTl5peCkyenN8RzND
d3tRT3MpcEUxJDtsT1UyRmA7RFpmK01zIWg3KztgZ0k7JT0KelZKSnBNTSZkPGVMVCMpT0ozbyRH
dDVhZkNoUHdOK2xEfmM3RmR2Y18jTDhtMXI+JEFSdjlZbGRkejcyTEkmOU8pCnpgSF5pMmhzYW13
RTshcmxWfkcjR2FEK0J9Tyg9UFlaNFlJdGZePHxmKkFSPWVgUUUqSXYhVFFGPig+amlQYlk3aAp6
eFUxSUZuK0ZMTkFOZStoVD45Z0RqdUBeV2VmQmRoUlk3K214ajBUfmJOLUReOW8xb0paKlR3Zj5l
WmBidlEzTTgKeiV7ais+MU9wWnlgQndLcElCKHkrLUw2SUJUJmxAQUp7fEVzWGhULSFidmhESj4l
ZG43c1ZhN05jYjlKNXhHfmt6CnooKC1wNVdhR35qUkxQNDRvdy1VTTctMylIUV9WIW13UUpYQWc9
cjBrbS1zYTIwYmhmQFdjXjglaVpAUj4hZ0JMZwp6ZiNDVmA9V1JNMWU3fFNVb35EPlZLTn5sMHtO
KHVZPEc8UnlkLXIhUVUlbmlGXzNHN3YweHFkeXVaNWw1eHBVX34KeiZZd1Uze2tlMUpOP2A0V1JP
TXpMSmIzVUspcX4jJklYMDNlelBhZXw7bHFFYChJQHFFYWokLXlhUHNBOGBSdilWCnp8SSgyP14o
SFgoTCo+eFcoQ24+U3d8NDN3WGVsP3hMKD1yLWRhZXA/SnRnMyREUC1tKjhIVzdoJEIpfnp2ajJW
UAp6KDRwcFY/cXVMS1p4dC1rSmU+UkghOGV+MzhWZFByYSM8Jm1SMFNzK05+UGNaS31WdE9FXjch
M09IUHY5WWghS0cKeiR9VVUpVmJgdSolXmFpRllOfiM4PWd5cnVvZzw2I3tWaj5yXjlrY0l8Q0hj
JlFFellXQU41LUx2UXxYXmtyKjs7CnpFQ01kfEVvY3RFPTtgVE1Ed1JzPndNdmA4WC0+ey0tWSNr
clpxej40c2NKTmxSSkxrYWUjYiZHdCtkRiNoIWtNYwp6KX4jRGR2YH50NGRgdSQlN3NLSFRlPTZZ
JSZZIzFwPmRsT2drTjR5P3J7PExIZmNHPjlMZWVabC01OFFeV2YlZFMKemttSjNSe2dacThOWTQx
NWxFbVBGODY5I1d4NDJ7dkEzaHdDVlVWKEJELXgyMU5ycmxlU3hYT25MZnQrfFZocnNkCnpJZXwl
aU1BdXc4dCo0SmFxSSsxVigqTHVPOUY0LUxLPlFneHB0K209aCNuQE88SXBDWmF7SDg2dVAoa0Yq
OE9oPwp6a3wlJjQhbiVXb3l0VllpfEYhVXd5MXQjOW9jeCskNFk1QjA2JXN2cFBudkFrMDAwMDBO
a3ZYWHUwbWpmU3RhPz4KCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvc3Rh
cnRCdXR0b25AMngucG5nIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3N0YXJ0QnV0dG9uQDJ4
LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGRhNDQyMWJlOTEyNTA2MDRjMGUw
MDcwOTUzNDczYTgzOGZlZTM5Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCA1MzM1
CnpjbVY7fDZlI1A3UCk8aDszS3xMazAwMGUxTkpMVHEwMDIrYDAwMi0zMV5AczZqdUc7JDAwMCE4
TmtsPFpjbWRVJgp6WF5kNlhtZEM1PTdGWS08Vms1e1g0d3h2OWp0Vzd2WkEqPHE2T0QwNSQ3dUFV
dihkeiR3b148THBOMUc/aks9dVUKej1rUjxWbyp6XmtJIT4/U2ZTXmcrSzNpPmxEIylYMFh5aD4j
UCglTko9aWRLaS1PVn1ZLWRoeWl7V2R3Wik+KFY0Cnp7fkZIVGB8TndwdClnPmlYc0R4PSl+UDFG
byhuSSRhTiQ3KjlXK207bFhPMTB0RSszZ0Z6RVpNWXN6NzBhQnkmfAp6YSMla3dGdEIwUXUzY1pl
X1MkUEpsdGBhKVlOO0B0JkdoNz92VXVfMGBReWZveVNsNT0pbSFQUk9kUlR7Vk04Y2cKek9SayNO
bXVvfmtQQDRIPkYqWmtUVHwpKWspWmdGI3srMkNVZSlJTypaP0JUP2ZpbW1EMHhGNWx2KDdxZSZj
dWxtCnpteTh9Z2ROQ2xuUXJTX2RSTyZvKENrKT9DT0E3PiFXJG9ZOz1eNmB+KllLeDtXbkppfmFN
P0xCJlVmJEx5P29RQQp6UDBRWVVANGF0em8ocXkmS21rYFN5NkI+Ujk2TlVHUVdkUi0hbHtUSTZi
PjkwJXpPY01yZV9fWkc7alUxVX09QXYKel5ob1FjYz1rc0RISnYqJnQ7d05wPig7SUp5IXpeXnpm
KmtzaksrTm1EMSVYI1R5bmBqXzRNPnlQdkooNThyOUw9CnotRUhociVGTj9CKW47SXcmJWJzI1Ar
a3RJR3F9MW1TZUIhSHBoYit4SiR2P0txcTQ4QkAwbkwjZEY5dEM7LTJXWQp6cCl4OTdCXkZPTml+
NEFiTSZ8YiZHMVZ6cFReT3EpNGp3JlAoR3s9YjRPVTBAa1o4UkhIbm1VdnJ+UCR8OHEtV2EKej9m
MVo7a1BJbCpoOCZoa3VSYXAlMXluflQoXmZeaG9+Y1VsWGIhM3QhIylKM1pzdHZeQmEpKDJISVEz
b25ASF5vCnpOfmBNY3kjUEAra0dFZ2JSSHFxIVVPej0tQ05pYXxqY1c4QygpK0ReV1FvX09AWSFk
ZGVmJHdlOVB4JlYqT1JWeQp6NGsmZXkyNiYqKWlOaTdBJVJJRHwpfjxjalhGWCYoWWMlJDQqcyRS
ci1oS0RvWn04ZDA0K1QmOz82QVhAYUttOEQKelYrN1haYnNCPk9JUFg5aWN+TnM7LUIkYWJqRUMw
dExaJVZSYFl7RjwlYHtJeCU4RnR0bE4lZSNOYVNGRVE3ZyVeCnpCNHR6Znl6fGJSdWc9OGBSZl58
Q15UMTt0ej98RVdgS1hnKEgxeFVGSFJ8Ry1WakswJW8ySjtVPXRvPWdyZz9aIwp6TWdiWCMpUVh5
XlokKzFxQDY+a1hZS24oS0pJIyl2ayM3ZyVLPGF2cjJhV3Z4X0BxWUVpa2VZN0QlSy1tRlFBTSoK
ejlIQnJuWnxCR0Alaj9nS05gNXI2WmBOTXxvIV9OMnZlPktYUkNOT0hUdzJZS18qQXAoKDAhcztm
SVhjVFR5UjB9CnpBJWA2REF+JWs5TV9fKWAhO3xqVnY3O0ArZ0FZRXFzczR5eGtlV3hmSFRzbSZw
XnRsNGNJbD11ND5eQD4qNVdrdgp6dzJjJmQ+cU9vPFEzbF92OExQOz9TXndaKmItTT1USztKYWxI
akJna3cmNUl9K0k0SCVAPkNAJkFWTFptNzNxdHUKenRTez1wYD1YZVo7ayltXzJPciQ1bmMmKz8x
RWo4ZT1lX3NkSkUxYHNQOF4kUXdXfD9JREhiLXomfWlTTlpYS2w1Cnp1M0xpMShJRTFUcnA/YzZZ
bm8/Syk7Qm1iKm0yWlJOQTEqZGxBRVRjNGJ4LS03eylRcF5WTGpkVFR9RVNVdH1LIQp6I047a2ph
WGdBfjxOO3pKUSpfSzFeYG88MkV3Xm1OaCQ5X09HZCVZYjVqP2YpKSpZeW0jbnpwc2QxMVRxcnMm
NFAKej1oP0k+R2dkUXckQ3B5PEA/XzJNKHRjeTRhP1lKTWwhTXhwWnV8QHVYKUlVYHF6O190dj5s
b0t2fTA0STN0byZqCnopcFp7PHVRe0diWkJ5VSs8UVpCUDRQIThYN3w0fFZeWj5eZ2srKXV5cjk5
Xyh0c09qS3FkOHZsblhyVylfVF9rOwp6WXNBWSZwY1YyazRNTHhKKDxwPEY0JWA9WUVyWmhCMmoj
JU5tMWd+ajUmNExsViFBSStLaEpsT3pVNXRKUWI1YTEKeiVmUWh8NH5Eb05MU34yaXFLYGEwUG04
PWglVklwe15ZREAzcFR8Jjkmb1FKaiVUNHE4OWZLKTQtNXhjWm5EPHFTCnpHODt1JnEpI0NuSTJp
Mk9kQT9ZTj1lfiZGRSlOQ2BpaHR0cGZxJm1EaX1FWVYkRzk7YiQyKzFVNUM7VXptNHw5Vwp6eWp3
d1M8RChBO0VpYWc/cWUtODJwa05yc0gxX2t2cjFtfnpuPzViPGp4bStsOD48PDxlV0JMe18oKE1Y
Y2tiTW8KekM4dE49K3daXnN7YEZUfWFtQnhhPy00T2x6S1U+JjBiZXdILSo/fUE+eG1gQ1IlRnwq
b1o1d0Y2WVpLZT5OYE5CCnpgaz1wZyp8S0dTSXBLczhEd2toPWBSci1hcm1hTm9YJF5sTThaantY
WTUydFZpNkA+fEFyQGpuJklLTitMQm88VAp6QV9hX3I+dG9wVnJBd0ZZbV55VlRAbi1HZWhhYUEo
PkhLSChjcjFSUDhyYjsyN2U0S1dTY3IrKD1wVSZJU3MjSWIKemE/bmc4LT5sISRReSo+aUpuK0Ir
bmBYfE9uUEteZHpTU2AxJk83ZzFFMVo2a1dQS3thd0BuZHNFUk5GQCV2dTVhCnpANEQtKndmS3d9
IzYpYWI2WmNAbGptQF51JGxFVDtCSlh9XiF3OEhAayZneGA/KiR3QVJhYWZMPUo/fX11ZjktOAp6
NmkrXys8WX1qJGUpPWJmVTJ1NSZOcU5xNVRpN2J2bVhRRF40SWR8K2JrZWp1VFZsS04kfTg3ayQ0
IW1jamUpKi0Kelh5byYtRU5pJDZUVWJPUkQ3KnVRcEVHQzk+V2VTRnhUblkjYEU5cXxjOWNmTypY
VFJwR1gxPjFffERrel9edjtHCnp7UD9mJmshTlFhRiVtMWJqS1glLUw7SGpKQz4/PVRHOT9Jakg/
S0xHN0padGMpZmRVYCUlS1cpbSk1N1BiYiVBNgp6YT5VSXNFZmk0eitpRDVmaWpQOSZTX2lRYkdq
YDxRVypsaFZmdTQxMmxOSGQpYz93cEhlZHY0WSFzfSk4ST0kK3YKenpwYWxwPH4zI2R1RCRsIXxO
NztaVWx0KGE2QG9YbSk9N2kySmYkJlNIb3Q2PXA8djYkZFZIbGVAdGp6UkluNHV8Cnp2S1pWS3tn
O2x3R0M8WjRmYkAzaUZXUFVGUEY/Qmt5NVdXISlAfE9yZDY1JlFjPkNMJjVTU1dLU3JPJnFHPEBO
Kwp6NDQ7Xlo5U219ejg0bnV5R014SEd4PlctXl43UGFEKFR4Z3pANFV8T19XMHdFZjR5PHojPyRG
P3E3S3FEJEU7TEAKejlmZFIxKG9vMDc3ZTMxWGkyMi1lJil0WCkxQHV9N1VhSms4KHFValFEMkxZ
QEZUUU1CRjFfXjlhYipzRlJ7UCtDCno1Qj80dnJtYndzKVo2TXk7eyUldU04aFkoJUskSUM/NlBz
PmZSMENEKUtCcjl6YlUkPDEmbTx1VHlZd31AVyZsQAp6K3xSbko3T3M4TDhgN1JeSyt8PTZ3cmo2
VlRrSldFbGAlRDNeRmBFbF5xWUAoX0poeTZANGtDTGVUNzRjKnROQ0UKemljQz9PSFJsZ0NwQjJ5
bnElO087OXYkeldebzY5LTtxPWkqQUFQbGJgfVJmSEZ2WDBLRzVVZXJHSSQ1JnsmdVBICnpAQ0My
O3d1P1VnX35VO3MhfENucXQpTHJraWt1dEUpTnpfeFVPRUQ7MVUydVd0fThycitHKGVhRShgOVpt
dE0rKAp6aV9eQzNOfCpJVEthTkthdEZwTUR7RyZrYGd9emBmelc4RWtqXnNjdG5RYngob3dOTytW
O01aSDZ4PDB4O3tuS18KemhhUzM3Y2ReMjh1Uj9FSXZ1NGUmKDR+TVIxJV8kRnU3PExBaVNUKEla
QWlmMHBeP2BxZSRYV2JWIyZpb01oQGZ4CnotKy08MjctUCZJLW4hVyo1bCZLdFhiaVpVNGZPIyUr
WW5veChsXzZIXkd9alpBYHp4JDkkcCtaOHNxaCNRbXBqYwp6QGdnXkZzXmcwJC07LSp3cSQ+NHVh
eHJHQzB9NGc+SFpDMjNSKktYRylENlZmSmEqVWw0P3B9Y24tJnolJjk9fnQKejdsTFcrPncjN3M3
OUZVNGw+XkY9amRzMVBjUHZHcSZjKlErPjd7YmtQMkxNPFV2NlhzV0p6JE50Ki01PGUjMSE4Cnpe
UzA5VVBnQUcjMkQxLTFaZEtUMzRJU1RYJXR5TntqflltKENySXNQTkBKTmlaS31Rc1FRTX11NG1w
ODxYUDxPKQp6ZnZVSTA5T1hRYjFCR2V9UC0/cXYrcVE5Ylc7LXpSY3d8d1k9aTQkVFZTUThnPVRa
SGRMZ2ArMHtKOE9AeGZzKkYKenBkMVhvJXk0aShxY0Q2IXpVVEBnWFZfQUNFeGU0dC0zQ3ZvXiF+
OztYYGp5dCFVWjgxYUo1TWY1M0g8TnJTdilRCnpYanxtUmEkOyNqWUNPfFpvWUIrKHxFPmNYKEZm
O18pd3N3U0R2dHJwSDA4Ni15Kn47UU1NWH1ze14lP1gyKSpjdwp6YkEzamdMTHp6MU1iN0kobVdO
LW5EVURWQnZWTEBwbFFBXyteTGV6UGZPIWcwPTQ1ZkNPPXt1aiEkdSQ1dylpPCsKekVRbTI4dTZa
WTVZSSZydyZzZTdETWMlcl5xT1AkS0MtVGo1djk3VjkjJT9HZTlnRysmK1Ihd1BDYW8oeCFZRXZ2
Cnpee3YrKGUhKms9bHR6RGdiNXszbEtQPkZ9KDQ/USRuUERFPFA5djV3e2FQK3ttOXFSRHZ6ND5D
ZzN2fiRSIUZIdwp6KH5tIz9TVUxoSE9gNWI1RVV1TENRfGdOYWpsQWA7OD1eMz5gYXg9Wnk8ZnAp
dlJhVmwtRVpILWxJOVc1JHBzczcKekdlK3okO35OJG04I0AzREVpPjsjZkJOYUMySFZ0JDkmPT82
OE14XmJIRGVkfkUzJmlQKCtDPVFfdUtkUj1idkE/CnpYSDlie2lZRzdMaDdzdUVjdGo4Z2R+Njxw
K1VJM28lIzN9SkA5cGg5U2BJaHgqKlE4ISN7czYpZWE0QSlzVj9WZgp6eWlvPl5aeHdkS25QOzlr
K245TmpUK3J2IWkhcSRIWGBVVXI0S0l9dCg0YSshZ1Z5aVM5LSttemExQiYyPEVLb1MKekA8O0dJ
SV5mRyU+ZmdTZ1BRPGhmaGR6KEskJilBbGt5d2lLJCQ/enhIK0U2KHNUYFpxWF4yQUY+X2g8JGUp
e1JCCnopbzA8VVF0ZSFpKV9KVHgkT0c2fG9DNVdJI0wqYDVSKmJVOShfZWQ4RzxlZlpIPGRveENr
SnhEIzx7X18rVWlyZAp6UlJpP0EqZStrYnltKjA9LWh1QFNleCg7VXxIMjUyWkA9MntINV5AaDta
d2hEe3w5MHkheXBIV0AxPzBzSH0/NjAKeldkJkB2QF93KUotRk0kaipHSU8oWF5neyU5KHNzSHcy
ITNoR3pLISNKY2FBOy09bChiXnl5YjdOQHAwY2xMUHR0CnpSWTBycHhNcm16JjxSNSRaKHxqdT4t
cCFPRk1Xa0xkLW0qTyZwR0Z1SHdldCUrKUQ5VTRaNHtneFYqM3o9e1cxRwp6YktieXJuR0xhJTEz
SnpyPmNeWlRrQi1tbFJ8cjlSTTglWiVraz1ITHJkTnJqcXd4MElaKGxIRCMqRFlYVX5fSGYKem9Y
MkxsPERrIzckaCR2TU1xYWdlTG1sfFNYVChsPFZrVU92JkwhZzZ1UEopd08qMzE1NDV4WD4+azQq
MV8wJl9QCnpxZmw0Mz4qPVNUb35eSCNlUyZqOyNCKDZmJFVCfVdpQGZfeURWe08kZmlIWnpLYVVi
S3ZEND5WXjdOWD8+aEZiNwp6ajZ1U3VON1B9KytwJThVJSt4Y3QodCExalYlKkN3emRVakpeeXpQ
Y09UdkNWPkxBPGtqfTMoYiE9b0IoZUJqSE4KemQ2WmEqbkxoU0A8VSh1TEtRXlVGcVl6dV96KFpk
ZiozTCZDZVJSPE0oSSlhRl9VeUNJJmVhUjsteiheeVk7PjcrCnp2NSpuTmk5c1dlaiYwZlI+M3Ba
dysyNGNSdGEjV3leMmo0WSMwO2tOVn5DfV5WfW8qVjBWX3V6ZWV+cjVuJC1ARgp6eSR9RWdOb1hA
VlVmKWdtVyNQaHdyNThvfG9xN3tDVUJ8ekReMnNORSh5ekpCUjNLZHhnbiY1R1c7cl5WY0ctYlgK
endTbUpBS203ZzI5KCF6Xnt2XzRrZn1Qcj89VEFRUVdkRGo0RTJibDcyNismcWRkPCM+TU1lQ25x
NU0+cDdAIyFzCnpXcE9iREk3bW5AWilQMlA/NklyJHI9bSk0RHEhb3Y5cndadUZMWnFWYFJEKXEj
MWxfK3VVb2ZudUViTzVzfSU8fQp6eDJkNTJkRX04dGV0R015eEF5Q01odU4+fDx8LXlhX0kkKUJA
c1EoPUQjT1hZUSR6b144aHc5MVgzVXRaYTRzNmEKej0zVChsZnRANHdyd3MreHVrUiNwKEQkUk9T
SFZoNnNFVzIjVSZyfEZfMTluVClMK0ZJcW1OaHpZaS1OY0dDa19yCnojdj57SFJncGVqb0khb0lK
eXcxU0tjM35lYHMlQiVJK3JZMkdEJnsyVStzd0I0bEJ5OUVQdktyamx3X0YzJmBgaAp6e2J7aj9k
QEVpWD1xKz5TJlRYclJge1RkTl9SQkI3PG9BcFpRUE57NjNkTThMJUl3UGVUdEw8PDx2elNeMWE+
cjIKenJVa3E8JXd6QWs8Qm16MUdXI3hRblpeSSE0YEx0fFYhfHNpeF9GS284aEorLVdzd2o0TGx5
MVQmKH1nYTJqSTNGCnpPRXh1eD5nZHdldEZ4anRSND1Ic1BJYXdaeCQ7bmIpb2UzMjc2O3c3azZ7
eyt1eD1Pd2BtYH1xeWkobHoyaDx8dQp6YU4rYCtufjJeJGY1fD5ASiVIVGwrSFJocFAjd0NDOVRv
ak9uKG9vdjlpNGhsQmd+PVlaIURqMl5VWEpSdTNvKSoKejcrMHc2aCV5NnctRlZ9VG9teCs0REFe
JjMjMnB0KEA7Kj84WkAwTnQ4WXRgZW1IIU99MD9iWlkwa3RrUFlzQTd4CnopVzdiRXt6d2h+YmEm
UFZfOUwmbT96KWFzUGQjPEBFd3xqI3FvKlhMa0hLMjtvdXtMJVJKVFQ1cFNETCtOc0BlKwp6UylO
Xkt2Q3taayZFTUZ2LV9XVX5kaTdyUE1WenA+OGlXQU5yO2hXMkZPcD9MVH0zcDhNbmI8SHZIJHMr
WXB5d0gKeiFoe0s+a0hkO0VRI3FlJnBMXzFQVTJuYmgpPk1CeXFkNHFzJDslaEdTdzV7NmwpV2Vl
TG9jSlFXYXkwMVIlV0h2CnpoPjZeWnNWP2g5VVVNSW1oTXJ9NGBqKC1DTGs+MypKTFpeVWUlMSFL
T0tXN2VvKlQ5YER6I190KWBxeFdmQWUoawp6YHxyUD40ej4jZkhuQm09OyZVSUEpK2BfRWF8YWZg
Pjc5NHBTLT9pUlB0TTwkQHVpRnd1MzhadzQodGVPeiNASjMKenFmMFV6RStxN3VaQCF1Uz9ZSDAz
LUs3SGx3PzR+bShNQGU9KX5zMmh3RDBUSSpHSUROPip+NFA5XzxWSl8zfiVXCno0P3EwU3hwd1de
THNZPVNnK0omfjB8PkZaYUdjV3xHclolMCgmKTJ7Yk1yPDA9bzJATW51K3ZmVXpKJDJYd2dEXwp6
UHdve0deYUJFdjRwZHtMNVR1Vip7a1R8aE4pantZQnhpWjZjKkR7Ml53bD9TRlZPPnU3MUB4fHFQ
dDJSJWhRQ3MKelpiMmhJOUxMZHlNMThTWGNlIVhESnN2VHNLTmtsKGJmRE5tSW91IXBxPHFBVGU1
Jlgzcn5eLVo3PWhHXm54VTUhCnpQQE16JVBgXnlIazc7Wn0yTDxJb1pWSTBzME5OSGxaU0lTOT16
dkw0VHU2UiNoVl9eTm5iSjNFYm9GbD1SPVFRaAp6Tl5RaXxIVVF3SF8pIU1tWlgrKDVEV2d4VlBk
Nj1VbUNmYiktRDFfTVJvfCtKX2ZTOS1zZGh7PjFfdWh3eiklaSEKek9qRnhEYHpwJWJwSFYwQmJx
I09YcGdKPDA4cUwjPnZkOX1SJUhXRipZQyVtSGVibmZTRlRUaFlaZ0E9YWw8fDx9CnpeelQlX1hF
MkIoKEdGOUpMeiozJSZ4SFJFZXZDd1hVe0glJU9gZjRmbDJzRXxqX0twOTBnYSR2cEstPCt0ViEy
bgp6I01FSV8oTEIwKjR2dUErTFgjaVhFd3NsQ3A/Ty1HdVpQPmpLfjh0YmIpVmlle3htKWhxfXJA
fU1xZEA/Jm1peUoKeml4RnlgMHw4WlpYWFk+WkUqME95QkpELXFQS21+Ujk+elk9e3ZRYV5nMHZi
aGRLOFQqRTUxKXAmRmBzPXlvVGJECnpRZj5qVzR0Ync5Wns4ZzMkQ2p2Z2l3VEM3aj50P3tgX1V9
bXZfSVBCQG9CPVRlWTVAKXZxJkYzYFp5PldCTSk5aAp6VCgxNCtHUyludT1neHp8MEB9SFB1QUZr
cERmOUtmXzNHfFhgY3Q3cDlUU1ZEU2VsP1FPb19vZG1QUDc1Q0B0MEIKei1+UStlejVzOE5aVyE8
REB6LXhZYHxQdmZ8N1FkXyZkOTF+e2B+bjF3WUFfZWBYbUp+UyhHUWtVYlYjalJXKEt4CnB6YXpw
RXNTV3l3X0p3dk1aVCl1YHt7eWlOKldscl9TR05FRjAwMm92UERITGtWMWxoaChuU0NPCgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3N0YXJ0QnV0dG9uUHJlc3NlZC5wbmcg
Yi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvc3RhcnRCdXR0b25QcmVzc2VkLnBuZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDU4MmVhZmNmN2JkM2VhNzFhN2M3MGU4MzY3OTFiYjE4
YmZjYWNlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmlu
YXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAyMjgwCnpjbVY8RTJwOUs+
UCk8aDszS3xMazAwMGUxTkpMVHEwMDFaZTAwMVptMV5AczZqUStUNzAwMFFETmtsPFpTUDhZNQp6
K2l6OVg3Ukp9VV5zLUFeMyNvO0kwJT9VdjFPaWZzN3NPTmgyWTQoUGc5UlJ9I14/aG9OQ2FRUjJP
Zi0pczFNP1cKeitGLSp1SVM9cGBOSDlrTzQ8dE41MHR2UTt3djtMcWx3TjV8X2pkZnxUSG9zMnlS
R2A1dnpkRiRKO3hafF9+d3tuCnomYjQrRXhtKyZyVFhsOHlsOWVsMD96SChRbEY4KSNycHgmSGVf
JVhqdjJHZ2ZuSlpWV2JQTm0oXiFZSW9CQTdAZAp6a19gPEZkckx9NlRGYzdIRHBSUmNLc1M9VXtv
Z3Z5WDBya0RrQHhRMTMmeklBMkNjVzlLWSN3UCYxVlZiMnRzYi0KeiMqTHFybXpPdFpHTVMqWHdB
N0o8cHl+Y3JRaVdnO29TSz8pe3FFaG5rUEw+MGhma2g2Y1d5VCUoPlFGe3V3Zjc2CnpEaz5AaCVi
QEVKUX0rSFRsOH5iKmxPIWFhYzlmY3AoXlhTX2wmMG9adHk9WjZaTDc7JWFkRU5CLWZSUWBXTTA2
NAp6YCVPQTY9K0VyJmcmZjROVyNAIXBUbUdfZmApX0tebmwtT2lSI3JZZVp7OXFZSWdEdS0oZzlG
RnJ8PkA1OFg4aHIKekQzazxORlR9JV5UfCUjPkAxYHJVcT5XaWQofnEmT01NWHQzd2lFIUdxKEZS
MGFhK3lJdXB5OUBPfXJaKzRodiRACno7bGlmSlZLVDc2azZrMzJhNylgbjRmfkVsJjBtcWBXfEkm
bmRsZEhae35TKiRgXj5leCpwbFZJa3VASlgyJlNfJgp6SkApNTlrYGJxeHcye2RHRnhOS3YjMn04
SDdKd3YhNkI4M2JSYUk0MUw/RiZRTDx5dTs9JnlONlZRVyFscFBCWUgKekR9Vl9pMCYrd085MilA
V254RC1jZzRtKy15SENPJmdOMXp8clgjMlRhJlQ3T2h4N3p4T2piMDkpWXgtekwoTUJOCnp7PjBG
IW1BJmxyOVVDPmFJOXtPJCUwUTBEQCR2RCVFPmF1anZVYSpzNmZ6QVJ5fDhJc0k/QkxtbUQ3PjUr
RHZkVAp6KEo3fHlAQjc5bEx6NVY0akFacDNmfXg/SSs+UllQZGVeVUNlYCNjN0IpblJ9cjsoMzZW
KztuaGh8anVwPm4/I1kKekk1P09hOVVYUHAlSSp4dVhkPHIkZUl0PSU8cCFRPmVXa1Q7K3R6Sk13
PmBmdHlSfl8xanxFdCZFY2t4QDchMDxSCnpOMD9uPkpxTz1FXz13ZWJHTVA/Wll4fUJnaUgjRTQz
R0V2R19eRylKaWNGeWRvUnpPI3lTQiYzSiVBSlZBMEdaTgp6VisyUTRsTDlOMDs3dnxXMkg0XypG
RShJLTNBUWlfV0FtTXNvSn5SNndRXmg4O0NseihUazVRJWtBYSY1IXhuZ28Kej48WS0mWVlZeEgp
fkUyJUpRN1Q+JHU0JXtmbGd5JlQhVF9iUWEzcDcrTz0hWTRuPSZkSXkqYzJfcT9eSStEPnU+Cnpy
fTxCNyRaVHZJRThnRHdiflYxPik0KiltKn4wNzlqNGIrP0Yrb2l0PjE1RElQQ1diWFhXaUNAdXRE
KFY4KmgjZgp6UF9KYU9va0REZCRGNVNWRUNecldBZSowU2V0O08xMFNRcyZlNDgwSDJyJE42RD1T
djQ9bSVXdytmKDJFYzwwV1kKemhpdnVrZDh4dCVjJi1MUDRneDstZisxVjU/ZGBwdlNpfmZATkQ0
Q35Yd09JZlhqIXtEUD9FdC1uPk5LO2k+fjlGCnpqdFJFYWYzYVlHJks3d21RXn15SHhYNH1iOVVV
REx6SjBeU2hOS1JQdk0hUj9nI0AhayYtIz9UV2tebTtQNlE3dwp6ZUs3QyROS2JjOUM5Q0YxSz0k
VV4tazUtYCsxYzN9T2dmY3pUaXRXRHIhdjt0VkEtLXxyRUlhdE55XjVaVnR2dHoKejF8O2NxYiMt
fVFie2Ztc3ZnbyNPblp7UWMyYmB7cTZ4SjFmd3c+ajFKUjE7MGVuX3k4QD1aJkwhYV93c2s/eTQr
CnpLMTJ+eyZhYj1CQyk4fHlhJnpQeFd7cGZrMnBlVHZHUXg3ZzxgTj50Z3BiTDVkPUh8YFRHblYm
UT4tS2lkYXZ+awp6eHsydCtZSHRKcGIqMmYqaXomWm5lOTBSK0ktMlp9aExMdzRUOHRzdElwZ1I5
VFV1ZDtCNlMkSl5UKkQrQHFgV1AKej5nI0AwPk5RVjJhIVBxUWdfTllPQT13ZC10cGBKTU5Xfnlx
RyFmR3tKUzFMTFdXZUAoY2x4Xzw4T304YlQzVDkpCnp4ZV9SOUhDQTYjbCh0diZAWWk0X1F8YnVv
QWp1OU5vK0BCeTRvTThacmlyaFBLTDMhfDFPYWclZlpoQnhXSzZCOAp6c3AoPCtmcHdXY2BJJSVa
XiU1SU9mN2BJZDJWWEZSJDl6eztSfUhhNTU/dmxhTyg/fWt6fVlxZkQ3TCVyeCZWPE0KemZBYUJ0
XzZXUjlDYjFSUlRvTXg0OyR5eTVKe0gpLTs5Z1kmTX4haF80TjNfP0koNXxFLWhMa2UpYStWVmVD
V2BqCnowZWVCWSNqeyNoJTRgSkRWU19DYD0zNlRxRnV+U29DeGVQRmlFVnN9NitpJHU2cWdqVWBn
c1Q1SiNiQykkandofQp6VWZGKUVlY1pCcShPeTI/M29RWXVHZGcybDA/PVZ8P0FXbiFlMCtAa2B9
ZztPJX15Mjh0R0ZPandZOWFjK1VZQ2oKejVrQDAoRDRkTTA5WG5+MnNkVEZVKGU7bTNEOUhTKGA0
IXVAWihuRnh4IWx7KytrTlpTdHg/Tz9xeS0oWmZJbHheCnp6V2tAJVp8dUhmTD57cVVlNmIoP1pD
fChicEZEQUxHMCRmKlNRcn17TzJnaDRodlBUdW17ZGQjQmVEbnAjLUQlbwp6ZDV1bD14NHpVR1p4
YzNLd3JwOHRvdVNfcmBkfEY8KFc2S0V6eD85TThwPW84dENDWHY2QXdQTClTXldUY1Y7cVcKel5a
aXFWTEkjWVpgYmVIVmJHRzhyPHg3Mnl8N3h0JXM/cTxJTWxKNSF4M0JOU2k0JSlVT0deM1M8VDN7
fjFsNVIzCnprMX18fVlCMEQjRn5pPEpse254YD1hbElKS0omd3dDQ0BaSUd0emRuP2ZUQHM+SEFP
dDNNRHEhO2A5Q2d6aDY/OAp6M0FZdFl1K0B8aGFYP3pUa3l5UVlfMSo7dzdWTT1TM2gkJUhDPz9O
QnhYKk1URVFeISVfNFBMIW47TFdWYkBkczAKekdqWC1uLVE3TFpeOzZmXz1+SmZAY0YpfiFlI1dR
Qi0zbEJFdk0rTVBSMj01VzlOK0VhMmUpdEVLQWJST3dlfXliCnpRfSEmYTB6fnpvbF84YU9ySmo9
dDVKVXdpOHw7TmFLblBINE5iciU7YCY7WUIwcEVWK3smdy09I2lxMktsenQ8NAp6IzghMWNmQ0xr
VyNzSlc/ZFdkUUR0UWIyUTUqK3pzcXBtcTs3fUAkYF54I3NqI19JXiY7KHIwI2tMbk5YeEBwbD8K
ejxBe1NWOFQmKlMoP3QrX3pXWVFWciZmc1BWX2AhSE1nSnI/ZSZORH1jVEF0bmB6TnwoQC0tdil4
P0tWRCokeSY2Cnp8RCZjTGJKPlgwVHpWRXFYSW18RXpncTJtVz9PcCVhYD9tcTF6XylWMyQ1Xjl1
KTJCTiRTdHpAYXRrdjNmUnJLNQp6VWRFVil0bVp0a0lmcko7JWomVDhwUkp6SCtKWDk/e1dKNnot
e0UlQFl5KlVtLUNyUjkwMDAwPE1OVU1uTFNUWkUKQ1EpN1BzCgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUmVzb3VyY2VzL3N0YXJ0QnV0dG9uUHJlc3NlZEAyeC5wbmcgYi9Tb3VyY2UvV2Vi
Q29yZS9SZXNvdXJjZXMvc3RhcnRCdXR0b25QcmVzc2VkQDJ4LnBuZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMzE2Y2Q2ODNlOTE1MzkxN2ZkZWZiNWEwZDU2NTExMTVkYTVjNzU4MC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCA2MjAyCnpjbVYtQTd7JXZfUCk8aDszS3xM
azAwMGUxTkpMVHEwMDIrYDAwMi0zMV5AczZqdUc7JDAwMDtQTmtsPFpjbWRVJgp6WF5eRT1kQj1P
Mz43SXRebygrJXolbTZgezF3SjR1SXhfP19ENVFjWiRtbDNhQzAyPn41THgwVXRxTSE+Z35kPTYK
ejVoLUtmOCQlSmNOLT5afnJFbSRPQiRnPjkwem5hbXAjJXxfZWVJZHZeOERWdXpkS0sjZSgmd2VR
ZX1ESSt+K3laCnpkRGowcT97ZVJKWiVfQis8WVpTVHQtSElzQy1oRXUtfX5QOCQ0NEsxXnZiWVg5
SV89TEpGMklMc28mMndGKV5ffQp6R1QjPGBgQFZocW9fK3JMPWY0O0h0NU0lWENseihpMjRIfFI3
QCstR2ZjQnxAYz59QlpkaSY7Zztgc01mWEtaWTIKekA0PHJ5cFZfbCMmalQ7TV9+TkYoPVJtdCFT
Xn4oOUpOZXwzRkljIzY7Z3ZAbmI8e2FBP3hOM2BHcENDaz1OUlgyCnpjTCVhfl87Q15DcTM9ZDN7
bno8SyROMXlwPDZXYnBxdHpKTXt7OCNeWFhubkgtK2J3JW1tWklDP1QpTWtGYld0dgp6e3Epbm5l
OVNTJmRAO2I4K3VQZ1FIRnhnWkUtMXhHTnZLYFg8czM7VnRGdFpWJVl3Q3EoJXktRlkwSD1uaDtk
a1YKejlYZlBLe192WWB6SW8+X2ZCRE9RalFKVjZ2OUJoe01RNUZMKS00TWJFY2pDcjlUKnRzPmco
JlBLeDMhbi1EZV5DCnpwc3ZVdkskPz1zTHB5NU5xMSYpO0B9MWd1NmxBODc7NmQzTzAwQG80eG9j
IShXYlNkdDlydmFGe3tDZkE/XmktKwp6TkFAcmN6KSU8ekpiOz12WihhbyswNVptQHlBU1hQaCNY
MiYyQmpmYSMjcjhZV1Z4MDRjQERtYEZaSWokKCFOZH4KenUoWDR4MUR5M1QkOEthcDF2Y25qNk1t
WEl1P2IqSV5la1Yje0wzaEVvKHNnUV5QUypIYVkobklHUlp0ZjRRdzBnCnpPfT5HNVI7X3NhU3xr
RV9DfmRhK05+ejZEb3hNOF9HZEJhWjAtYGAtN2R4PjZGKS1SMTxDYEw8PllVZ0ZAVDhNWQp6eD9z
dFlDMEYxQ0BIcHFlZChuV1c4Pm5KQmNvOTVRPCl3QXpCeHtxRzB3ZyZJc0p3WTsqTlYyWDJTZ2g0
YmFvK2kKeig+TiFCMXVkQDVVMEBWZ3tVbkN9ZnZmXkI1KiQzfG9PQXY8WGd9dlgzfEl4NjtHNl80
QkNpK0BYY21BRDM4Kl9ZCnpkKnN6UVh3fD85d3QtcGY/SEdvQUxzMDYhUnNXQGE+NW0pJCVsc1dA
SXs7Kj8/NylFb3tjJW5Oc34/OEgwfkxVJAp6b19ndmgxX3VXfTJ5cEheMDBiPEpwJDBJWlBNeGJ1
dXJmKzc9cm8mYmc5MDgrVEpjRj1UV09fU3l5UTd+WTNZeCMKendaSD09JjNkMzxmSVZ8eSEoa29t
Z0oyZil6TWZGKDg1JGI7NncyJjRmWG08IUshQC0tcG91ezxQbFFleU50Sy15CnpaYFZ0RyM7dXhq
K011VmImTC1ESyZESVd4O3NRcEBIOEFVODJRSDE+dythUSRlTjRoQCVvdVE+RyFoVSpgRjJURgp6
TXZXS2p2VzxTVEotbzQ7Y1g0cFRvYnlyLXZtQzQ5PENJPGImaElvNnBMMFJLJXVnQmRKJDExUTQ8
QTA8Nj5sejkKeiNyKUV+eE00bSZDV2t+OE1IN1FzMWtObH1ucX1+X0hTTTUrMCNBPX5PQz9qQCRg
PzcmVzZfKDcrKTZpJm0jKiswCnp1VCFXSU4wNzhaV3xObUhDbXdjb3UhP3NxTHR4aHppTEFeRDAq
SV9eZzR3RF9ZfUNQNFVqNGR4bDRUeXNQSTZwbAp6UFhST3YmXyleWigqTU43SU1WUDVCX0I0eWN0
c2hQYHBEYFVkVU9HRjQwZTRYVCozczB0eDdzNjBZRU1vPmE/VHkKenFlLShyY3NzeXhTT0RKYi1A
SldKPGxeT0puKV42YGNWQmhvUmlnO2UmRU8kM0h6fjReUExha2RBaHY0UWshIVprCnpKbkApTVNT
eyViITZGPG9MNl5fODVfYSVuRmxuN2hvYGFgeldkbzRXdkMqISQjflM1NFFgWjJ3YVRUb0lecktl
Pwp6V1N3b0Qldl99Q1dTJWpZQVFLO2BLbkF9a19AMyV7OXpxKWlJKzhMYy0pZGdfdz9nIz01TSFn
JkVrYXYhIU52fDcKem5tKighO29FcUBrM0tUNURgV3pSNEQ5KztNOElVYj1EYnZnKispRDNKWkpH
N3pTdU1GIzFER3Y+WjhufjZGKWhaCnolKHReO2xpOWdlcHhiO2FDbiEyJnRnfXFCOUcpVWRUWWRi
bERTNzk3JVkyK2BtQWBkazJjSCt1eGg4PDZiQnpxYgp6U2wpbmozRl4zJkp9YTFZKDBlelV4cyhm
PFc1S19iYDE7Z2BieFg7Y2klNkJmTiozYy1pZDxmclchZ2RVaUg8JGIKejxwVDlucjxaTD9LSV85
PDFITmhjV2VpfXN3VGhwMEdPdz5YOEY4bmIxNjdzXmdiOExSQGFVPUk5NU9xUGZaJXlSCnpLX1U3
PF9ISCEmTmJ3MHo5RHc1SzMyfVhnI2VCfEpLSWYkQD5wRzd0SCkyJmdrWUVPZVQ1T2hPTC1geUc4
VHZHQwp6SHxVSiUwMTFmYnlDYTtGbEVYVn4qJSNuKGZ1ZUVjPTlZKCFqKTJIUlkxVUlXdVd6WTR4
JE8/YnNtfGZjbWdqVH4KemE2R31+ITxsJTs1Vj87WGloZE1IdUBlWF5oXjQ8eSRLJnlDVnhzWEc1
NDVOSCNDMGxIQCpxQXYrV3hyZD9HTGBzCnpQMnhSZjJGYllBQlNrSj5RcztXISQ7I3VEfEx7UXZK
bEBrbkJoaUM1LUVgQzgmd2xvXlRpNk5nMiNVaFNWay1OXwp6PlJVdTdHO2FCdSZrVEt8cDxpPCND
YjRoNEB5NWdDcTh3X3pnM3dYUypafGE4P2IzPnlzLXJyP1QxY2p5STwpfEgKejlOPnw3OUlwR25e
LXRmTHZ0czNuIU92YSh4aWdQSHtgbWpuRnljX285fiU8U0I4KXYtVHkzPDIzSjVWZ2Jjc3BxCnpt
OChfYGtfJFBKOCMkVC1jRyp1Z1h6QFpebVE0IUprdT8xaCl4eCtHVGRhdl5AWnlqZXgkVTt3PTAq
WHtUY29ldwp6X1ZzMTRhJkolfEpBZ3QyTFIhWFhII1VCel97MjljaCglMCZrUEE3SDh9b24mKWdI
WjBAPSEtUj5ZbzlpTzQrRmYKeiRudlZlbFE9c0k4ZzE7QnVpWX5GLWFtTm4pQ1VTa3E3NHJaNF88
clN3ZmgzLUYlRHdAKk92SmxsWDFKSXU5VWQ9CnohZV8oeCptYyltd352X0Y0Pl4lcj8zeXViJj1v
fU50eD48JiR+JXszYGtuQDBDazdmcVAyODJnOykqTnd0WFEjUAp6VWU9TGN2dTRkSChXXnQ1IV80
SUNWcm8tTTxGPlc1IUl3VVh2M205RFF8ZkhWP0YoUHshWEVUcCRpfjd+PlpNPFYKeiVJZj9mbis5
TWpDRktBe2dPWUBhMUtfR3Z0S01BeSRAU0hmOXJhNmshezZQb0R4UlRqQzI0bDh7enw9ZTxIP0M1
CnpfbUM4YTU1ZERYRzF9UmFCZXt8QElaeS1uMiRaeldOOFF7czA5QW4yYikwNTd0NFEjOyU4bE9l
X2N0Nns3Y3xRdgp6PjU7SE1WQTlhK0ZZQ182WWUjJX4hYEFefiV3fksyNGM4d18mZSYwZHpNIS1g
JmIpSiNRc2JvcFAkZ3VvYzctfW4KemxqZ2liLT5fbEI/Z2hnT2olPHdfcH18TEAyaU8xa2BtTVdu
P19QbHFvQFFfckJjM3NsY2hiPHEyRmgmKDQ+KVB+Cnp7XmFea3pDXjVjZSZQI0xsakxtdilgTEhM
b3FmJnxKPShNI3NGQkdyUiNCY2d4KStXKFNzJUZrRkR+Yk1mLVQkRgp6X31FQip3YEpGXlRgTiRF
KXZvfC1ZMCUrPnhkOT9SWTFfQU5VcjgpdHdzUyt5PFBMYkFQVCZQbC1fbG1UWDYoUV4KemdEaXN3
S25AdkpAWnlVdi1hbl5yK0NfSXB0Z245TXQ1MHYrd3lwWj9nK2t4eUl9cm91aHV1dGZWVGVVY18z
OWAmCnpsWThFVSlgb3RyeHoxaSQ/R0FLT0Nyfjx8MFVxWktQUXZsbFoyVThxZVd2WlhANDRybStx
KElRJjhzWXM0fT5oMwp6b2tNPm80U1JzMzw2OTdrTiRoc00kKDxWOTRBIVlsdUhQZSVJZD58MlRM
NGs4O2VkdXk5bUUlSHcjRGI4RWwqc2IKeko5K2gwU0MyJC1eREtAK0ljTD5AWFRydjtxb3QwMUBR
SDUjQm87QlJ4JXdJfFN9cFM8X3FlcyQ8YElQfC1DRTF8CnpFO2V5Jk8lNVgrTkt0fmZwI3lsMERf
Kyt7ZXsje1puXnBDc247emN1end5MX1HdShZcDNXZXEqKUhneExvbHREPgp6bTNfTWw8Nz5LU0pp
T2BRcFNTYUs7WUFrP1FYQDVhZ2ZTTXhUKShfP18tejdNN2VxJUdYaztLKGBNbVNhOD4rS1kKemNL
MURaY1QqZz83UmNDTEJVUnJSaiVUR0Z7bXwmdSF0X247YUFSKVZ4VXNEcFlDeEJ8KmM+IzAlNDIw
eG93ZnpnCnpmfW4hdztUenYwKyNOVHJONEJSUDgjSnpMZHRkJGF0SUdoJTlSWVgoc0NySGEtUHV+
IV9kIVBXI3klY3RWYyE/dQp6UnZgdjQ4SXVGS3dETDwwKVBpNFlMemw2IXRZNFhPXm0taVJOcUU2
ND1VdFQoUEJAfE1aTmZicD98REFfNHx+WFoKeiprK0ktTVJLU2Y0cGxWYmNHX31ZK1BGWipnaG1A
fjxmN1VQWUF3YDgtMiNUOUlMdDY9Mi1AenoobncmVEB0Q05zCno/ZEh2ISQwLVFsMExgNzMwcmNe
WkpFQEc8JHlrMy03Tmk9ZEx6PEhteHdQe3xFeEVSS3hfSig4bkBeKyhqKn17aAp6IyZhKX1EO2VA
ZT1VZjRROyl5NXJYSjtrPCR9NncqUWpFTDhMUUIxT0dBMGlqZTY9N14wWip1XyZIe0cjY0Q/JVEK
enQ1YVY9UmtAJWBQaDhzMWxXbDlXKTxVZnM9OXBEfGJ4Tmc3aGkrfT97R3NgNjBnUzhmSk9SV1hk
PG1rLU5YeGtHCnojQGF+TEhJQXtOZC12fEdlTHwkb0BYJkJTZSZ9JWtII2R2KFFlJE9Xb2ded19w
S2BGTWpkUXQqSUgre2VpWjVRWQp6eEdqSklAe3EtTl8/aWd2Uj0ocSUwbnZ8YUVzY1VZU0xUOUJf
NmVWTktEaV99R3VUQjc3eGg8OWQxOVlWakslJEsKelc0e3RkenZlNSYyXio7byNCRU1XayFSajxM
KU5sVF55MXVDRWtnem15U2p2cyoqPCN5TT1TOGt4REIwMlphSFkjCnpNcTYjOSN4Zlc2TiphM0kw
WTtjanQoejNSJSRJaElgMzdSZ089bG48SD51VWZVYWdHZEhpOTRWSExxeWVPMF5SUgp6Qz5fOVFq
LXwrNDN9bV9DUUA+Sz8kckR8MyR1Xm12dChMM3twV3t0RTJXbl4tVCQrYCQ0RWZHb0l9Wm5ge35s
VVEKeiNFJW40O0BwRjMlWjUoQDsmV3FlQlJyQVU4Mzc8eWIjNn10dnJleStreE1EZDxGWGQ9RChp
SkQpeEtLcEVYPSUwCnpuWSNMMFVmOXoxbmNJOGJeUFdUYV40PzBuUGBrZG9adnp9fGZIX1FDYiMk
PCsxMkQmNl9Zb1R6eCNTdjMtZGdhaAp6azVaQEFjLXAtakwyWSU4dmd9dkNgcWRGLWpTfklYZyYo
VmEkakZYcipHUVRVaHl2TFRKYW1gYEs9WGxgeUUwPEIKem4/SFd4JEVWZDw9Mk87ITVCKjU3c3BG
Xlp6Pz45Q2w/QHA+dzU/bVd3IUptRF5wWjxZaXlnMnQ/KnRRJj5SLVBDCno9UHFRb0EoTyVicHU1
anBeYUk3MEYmbEt9QzZgP0NoZ3FsT3R3biRNcHdwektqcEohNjwwPipxayE3TENhWSYlfQp6M0Z2
fmoqUERxbE8zfnN1K2k/NmBifUskU2x2P0BJQ2xzKm80K1RpNnlWTG5yZ18qWjgkJD95XnZZUG95
NGIoelIKemUzcExvaGI2b2lTPDVzNFhTJHkkcCU3WDtQQFE9NCR0U0JUP00kc0gkdS13cDZZKFl7
Yz0qYmJVeEomRTJ8IUpwCnpCNjd6SVcxR0RDJUJBPXMyOFMqJmlBQGc5KkhMUHE3VXJ6MlBPcGAk
JH1TZnJ1S3tENE5tQiY3ZmNEQDY0Pm9gSAp6U3FYfWxici1DQWU+fn1VJUEoajZAVlMqTVVOPmlL
PUlacCMqKkV8UUFEPztyajJ5RGhsRDd0RyU1a2hhPm5rJUoKemJKZCZaWSo/M3xQTXFeRmlidio0
OyVEKEs0YGJ9JjNyNiF8X3I8M0dReStudjFpc3w7fDh9VDhycyZrXmY+Pmk/CnpxbGEkM2BSMjl7
ZTk0Xn0rIVcjPClpLSY7bnslRkB3Z1hrUDVGSjQyMWozbEQ0a2dqTT8hMFRlYGdRY292KDgrOwp6
X1BuKH1XPUhTPUlFT01qZ3h5RmhjVndOOVI8ZktRZWh3Y1ZaR09WR1g2QFBeNlQ2aXlhJm83SlQk
ODU+PUNnaz4KelEwYHB3MWZ4SmojfjlFRVZqfkR3TUF9MFNKdjFENUA8JTNCTjtHIURuKXIkNmUr
aTx1N3NlPUtJPnY9TW5hMjtFCnpJZThZd2s2TVhFJSNefG1tWW02KjMyTW99QTtVS3sqVHY3V0NW
JntWWWRFOTMzcTZjdVNNYDRGbWFwLTVTNmE1UAp6PilDa0UjKzdrWntrYjQ9bEpgblVMVSFoRENo
OG90b00oKExifnBacktgZGhHcjtkXnt4bEBubEtXbjRUUFRSQ0UKelNrQCgrbGgta1VTVCR9bGtV
anFSPEJRfEBVK29oVjZOeWBpcC0yRGkoUGk8QT88WG5MRkpoS2dYWT5LM3R9fHlvCnold3IzOWVs
SFE8IzJeO0J0czEkS0dyM2JvLWhzJUJRQndSTiVkUER5V2txPDUxcmgzczBteWFOVVJRbXRQfTx9
JQp6ZysxYCMxTHYrQHYtJF5OR3MzUm45N0dwTGZIODRuPk8ob0YwQm8/UWh3YUZSU0FYfmlfP2Bf
c2R8ZG10Klh8fX4KemNifDF3b0FGQURFekxhMHdmRVIja0codjAoc0FyMjlNdzZ+dX5mJjdEZF9k
clVtdTlgJUM3aW8qP3t3UEc7RiVwCnp0eXtQMyt6Kn1tZF5+RjM2MShVNHU8djBma3I7KVF5QUsm
TD07KDItWVhDa1R3PDxzUiN5N3JrO0loanVgdkFWewp6VnJKUWB4OEF6emBgYFFpMCN0Y2BMRVdC
P0plMUx8YjQ3bVVNanB7JFp+SFVgQ20zYUNATmAjP0Q+NnlvQFBZZHUKelNoKU8qPCRFdncjS2xN
RnIwZStqYHRPUU9rOEo5Qzt5PDROZmJyS31kK3BURkl8Zn4yV0lJPEtTJUNMdWVDemJaCnp0Rk9N
Z19xO3prPz9ZTHk5c2xTZmtNMU1LQElPaDs8U3V4YHY9TkpqdGdLJWhYP0p7QT95PnB2PWJzZ2lk
QDUoMAp6ND1rV2AwUSQoRj48VmBWeU1hVEFhVT9jej1Vc1BCdFgjUXIrVHN8bjZeI1loe24lclZK
QD1ofHxJVFJhPUQ5cUUKejUxLVpoP2ZDbU8yUDRPV0BsPDZyS0ZzZ0M9JVMwM04xVD4jJisxfTRg
fFB1MFUlY1hyP0RRVCQ8OFJec0IwU3g5CnpBPUdFZl4jZGVGMEpUI3VrTHV6K141KyRSQGZDLSZC
RWphMDs0bk1WcChfSXdMPj1OQjVFK05CTC1EKWMtZExRcwp6MWZwQD9aVGllSiZ5MjxJaktgenNl
dlRhZnBwWHwyPmg7dGA+e2hrc08oVEgoKFRUdzAkYiRueCFqWmk1Y3x7RTkKenAkdkBeY29qVSho
NWZBZEJieSVDaG85ZU5CTHtMSkMtTnNwY059QiNacT5eQU9GZ2piamkoaXQjI1RPdykka24jCnpq
eXIwXmo/K2JWUHcyPTAxU0drfXEyMncmNkhvTi0rUFExak1ePUFpcGt0cE0xKWcxclR5RmhgVFgp
QFkjfnM2dwp6UHhUY09FKmpLbXQkPTZFZFRmXmBNO0NyTWdnTkkmLXZSe0hUUU1mK3YkWSVgdUch
VSZpXzF6Xns5VkRXLVpAan0KemxtM0RKdUFiaU4rb3pORns+IX0hS0wzfVctfVRDYCt1dFk3N1di
e3A2TntNbC1oMXpZc0EtWiMxdzN+aWwkTDkkCno4Jl51ak9NJW4mbz4tbWowX1VYWEheKEsjQ3B0
RChsNFNUXk8wfktIPTBOe2MhaHJrcShAIXMwemtZcEJlQ2NzVgp6ZUUhaC1uOTw/ZXIxJk5WdjUx
S3EhMUF6I0gmXm5kVEwqbEpnTFFMNnglLXFzIUxCI3tmWHVPUlFvUnU4VCROfTkKenEwP3wmKjlA
Tkw7cHJ5Z047aVVhejN7PmReWHxYentfITA8Y2tEaiUlcm9hdip0XmtxVW1MZVZ5VyhiayZNJHVQ
CnppJFJKZGY5ZkdkSzVXVSFKazMyKmEmP35FO0YwQ2RBeHd7bHYzRztjKHpETSNgQDBjbipqcEpf
TmYwZzQjOVRHegp6UylEUW5eVEBzSSF4TkNQaUEyMmFfYDU0UkhoZy0ren1odXkyWng0LVc8UChK
TllGaklfakdVbTtwUExlQVMzYXwKejVme1pmbGdnZikwTGsrbHh4cGl8RSYoREo8aGRTZU9yZV4p
JiQ8RlEtVTtwZz19JipVakB5amkjXjdmVzxhfjxNCnpBO0dkXjkzc248ZEdyQkBDWGduSU9ue2tW
Q3ZmdGBGNmlWX1BkJjlUSXk8RmpAIzRqTW16fSlxOzM9bl4odFgtIwp6cnd6bi0mZH5nIT5YNnY4
Y2hCTVleN3ZAJTtGMCpkcmpzdmtlUjx4RjlYc2E3SkNiPTNpK2phTXtnViVYa3ByRVcKeiRlNT18
R2tFQ0gkT31II1pUeyVmKyFTQ0khezFoKW9HbnxuPzkjWHotQCpNNjlWWX1ibjYmY0g7Pjc/PSFg
biVLCnpQRXZOMGExSS1qaE5vcUpqQl5nPWhZa1FTcmV+ZnB6ekpUaXJ9VzNUdTk8X2lrUiRpSF4h
T2EqT0l4Pll7bnpTNwp6X3ZNI2dla3smfktaPSFHJWBXOEpLfGw8cDFkeFo4JXtsZCl3PHYtTzd7
JWRSOEkqM0tRaFhwcy08YX1AMFl7KTEKekRedCFLJXtsOHFDTkQpK0hzXyReMFg3XiN2SE59bVg2
UlB7aFFoKDZPUEFncnlZS3k+RyhnYj8paFhsYlA8Zns0Cno1SisyWCVBKHpZJG0jZnspMT5oRCVC
PX1WKztgJWV1ZG8/UVV3fXRyJXA2VEJwSlAtQ0g4MUYzciFFeG1me3coYAp6Q35nbTBlWCplVlJ4
OTRqfDFkNWh4NWNrYHpKZm12V3M8PkFNXmZXQ2hTSmIyMG0tYGYwfkYzdD0mfmJBZWRQS1EKejQ5
M1JENnJQVHJKcFJnTjRlMDB9OWVKc0NqLX0rdVZhcERUS1p8QERTZ0czdEZxOWBFel87VzU+JmNQ
TzF8QXVDCnpeTkZKejlHKyRYWF9qVDMldiZIZjg5YVRzPmx7fnM7emJ8WUdjSjNuVGdFXmluWkRH
UT05dXo7PVNLemM9PFdYYQp6N1E/cT11NmJ4UTBtTW02akQrKis7fnM0P3pJXj5Ab0N1O3BHRylH
MUdObTVseCZpPkMyXiF4bldlM0lqO0pmO2sKekFacnpEanc0QEVWXisyKXA3TjNzKlBOS2tKbVls
RTxIXmY/QGtIbF9ASUNFfE8wRTc3X2R3akV7WiV9eXtGXnUqCnpSXzg8eEl9YmUqdU0zTG8/S0Yk
LSlIZGhQJTBAdWNDNUV5KDgqfF9zNFMzTSNCaz8xfnVnQVVTS2JQUilxWll0dwp6QjBpTGYzKEw5
aiNRTXMoPXs/YDhEZCF1e1AzI3R2WXVIUlhNOVBGc0tIRmZ8czx9ZylGWVZ1fHwybG5RQWc2aDgK
ejxGSkt+dEwrY29jO2soNHtebUVvYFJ+d2E5PTdIS1ozJj1DayN2OUQrXiZsWSUhYXRJZD8zSkUk
UlMyQ3tLeDsqCnpwQHk+IyZOMXJmS1UzJFJ3N1A8b3lgQX5XWD9paTl6VklGMz9UaWI/UHZZSWl7
YWR6ZGBFSlBDZWw+MVowRjQqSAp6c0FfVGklTU5RfU4zTSorblYrflczR3E9dXJ6JSRZX2xFe1Bs
aHI/bTVyXiF5Km0zLUc3QEgkfjk8V1NwJVVOcHEKWWUtIyl+blFtS05nOCU+azA3KnFvTTZOPCRm
PGZ0S29kNXM7CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA0ZjRiZmVlM2FjZDVhYWFjNTZlZjdl
NjBhOWJhMjU1YmY5YjAwMzE0Li4xNWY4NWRkYzY5MDMxY2ZmMjhmZGU2OWRjMTdjMjllNzkwMTcx
ZmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTYzMiw2ICsxNjMyLDcgQEAgX19aTjdXZWJD
b3JlMTJFdmVudEhhbmRsZXI5bW91c2VEb3duRVA3TlNFdmVudAogX19aTjdXZWJDb3JlMTJQb3B1
cE1lbnVNYWNDMUVQTlNfMTVQb3B1cE1lbnVDbGllbnRFCiBfX1pON1dlYkNvcmUxM3RvRGV2aWNl
U3BhY2VFUktOU185RmxvYXRSZWN0RVA4TlNXaW5kb3cKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3ND
b250ZXh0QzFFUDlDR0NvbnRleHQKK19fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0MTVkcmF3
TmF0aXZlSW1hZ2VFUDdDR0ltYWdlUktOU185RmxvYXRTaXplRU5TXzEwQ29sb3JTcGFjZUVSS05T
XzlGbG9hdFJlY3RFUzlfTlNfMTdDb21wb3NpdGVPcGVyYXRvckVOU18xNkltYWdlT3JpZW50YXRp
b25FCiBfX1pON1dlYkNvcmUxNkZvbnRQbGF0Zm9ybURhdGFDMUVQNk5TRm9udGZiYmJOU18xNUZv
bnRPcmllbnRhdGlvbkVOU18xNkZvbnRXaWR0aFZhcmlhbnRFCiBfX1pON1dlYkNvcmUxNkZvbnRQ
bGF0Zm9ybURhdGFDMkVQNk5TRm9udGZiYmJOU18xNUZvbnRPcmllbnRhdGlvbkVOU18xNkZvbnRX
aWR0aFZhcmlhbnRFCiBfX1pON1dlYkNvcmUxNmNvbG9yRnJvbU5TQ29sb3JFUDdOU0NvbG9yCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMGQwZjUxYjkzNGYxZjFjMDBjNDdjM2ZmZWQwNjI1NDk5YzQ3NWJkOC4uZWFjN2U1NWNkZDg4
YjhjN2I3YjFlNWM0OTNkZGM3ZTVhMWZjMDgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTMyLDEwICs5MzIsNiBAQAogCQkz
MTlFNjlCNTEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTlFNjlBRjEzMjk5QkJE
MDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5jcHAgKi87IH07CiAJCTMxOUU2OUI2MTMy
OTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTlFNjlCMDEzMjk5QkJEMDA0QUM5MUEgLyog
V2ViS2l0QW5pbWF0aW9uTGlzdC5oICovOyB9OwogCQkzMTlGQkQ1RjE1RDJGNDY0MDA5NjQwQTYg
LyogQ2FjaGVkSW1hZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxOUZCRDVEMTVEMkY0NDQwMDk2NDBBNiAvKiBDYWNoZWRJbWFnZUNsaWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTMx
QTk2M0E1MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvbi5wbmcgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTk2M0ExMTY1NUQ0MjYwMDBENDY0
NSAvKiBzdGFydEJ1dHRvbi5wbmcgKi87IH07Ci0JCTMxQTk2M0E2MTY1NUQ0MjYwMDBENDY0NSAv
KiBzdGFydEJ1dHRvbkAyeC5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxQTk2M0EyMTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvbkAyeC5w
bmcgKi87IH07Ci0JCTMxQTk2M0E3MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvblByZXNz
ZWQucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MUE5NjNBMzE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25QcmVzc2VkLnBuZyAqLzsgfTsK
LQkJMzFBOTYzQTgxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZEAyeC5wbmcg
aW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTk2M0E0
MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvblByZXNzZWRAMngucG5nICovOyB9OwogCQkz
MUMwRkYyMTBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUIwRTRDRUI2
RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCAqLzsgfTsKIAkJMzFDMEZGMjIw
RTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkYxQzBFNENFQjZFMDA3RDZGRTUg
LyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCAqLzsgfTsKIAkJMzFDMEZGMjQwRTRDRUI2RTAwN0Q2
RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkYxRTBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0
VHJhbnNpdGlvbkV2ZW50LmNwcCAqLzsgfTsKQEAgLTgxMTksMTAgKzgxMTUsNiBAQAogCQkzMTlF
NjlCMDEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRBbmltYXRpb25MaXN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTMxOUU2OUIxMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmlt
YXRpb25MaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRBbmltYXRpb25MaXN0
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE5RkJENUQxNUQyRjQ0NDAwOTY0
MEE2IC8qIENhY2hlZEltYWdlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENhY2hlZEltYWdlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMx
QTk2M0ExMTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvbi5wbmcgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBzdGFy
dEJ1dHRvbi5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxQTk2M0EyMTY1NUQ0
MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvbkAyeC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAic3RhcnRCdXR0b25A
MngucG5nIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFBOTYzQTMxNjU1RDQyNjAw
MEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBzdGFydEJ1dHRvblBy
ZXNzZWQucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUE5NjNBNDE2NTVENDI2
MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25QcmVzc2VkQDJ4LnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9ICJzdGFydEJ1
dHRvblByZXNzZWRAMngucG5nIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFDMEZG
MUIwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFDMEZGMUMwRTRDRUI2RTAwN0Q2RkU1IC8qIFdl
YktpdEFuaW1hdGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YktpdEFuaW1hdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQzBG
RjFEMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTQ1MjAsMTAgKzE0NTEyLDYgQEAKIAkJCQk4NTEzNkM5NDBBRUQ2NjU5
MDBGOTBBM0QgLyogc291dGhFYXN0UmVzaXplQ3Vyc29yLnBuZyAqLywKIAkJCQk4NTEzNkM5NTBB
RUQ2NjU5MDBGOTBBM0QgLyogc291dGhSZXNpemVDdXJzb3IucG5nICovLAogCQkJCTg1MTM2Qzk2
MEFFRDY2NTkwMEY5MEEzRCAvKiBzb3V0aFdlc3RSZXNpemVDdXJzb3IucG5nICovLAotCQkJCTMx
QTk2M0ExMTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvbi5wbmcgKi8sCi0JCQkJMzFBOTYz
QTIxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uQDJ4LnBuZyAqLywKLQkJCQkzMUE5NjNB
MzE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25QcmVzc2VkLnBuZyAqLywKLQkJCQkzMUE5
NjNBNDE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25QcmVzc2VkQDJ4LnBuZyAqLywKIAkJ
CQk5MzE1M0JEQjE0MTk1OUJCMDBGQ0Y1QkUgLyogdGV4dEFyZWFSZXNpemVDb3JuZXIucG5nICov
LAogCQkJCTkzNzA5MThDMTQxNkQ4NkIwMDQ3NzMzMyAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lckAy
eC5wbmcgKi8sCiAJCQkJNDZENEYyNDgwQUY5N0U4MTAwMzUzODVBIC8qIHZlcnRpY2FsVGV4dEN1
cnNvci5wbmcgKi8sCkBAIC0yNjAyMSwxMCArMjYwMDksNiBAQAogCQkJCTg1MTM2Q0E4MEFFRDY2
NTkwMEY5MEEzRCAvKiB3ZXN0UmVzaXplQ3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJ
MUFCMUFFN0EwQzA1MUZERTAwMTM5RjRGIC8qIHpvb21JbkN1cnNvci5wbmcgaW4gUmVzb3VyY2Vz
ICovLAogCQkJCTFBQjFBRTdCMEMwNTFGREUwMDEzOUY0RiAvKiB6b29tT3V0Q3Vyc29yLnBuZyBp
biBSZXNvdXJjZXMgKi8sCi0JCQkJMzFBOTYzQTUxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0
dG9uLnBuZyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJMzFBOTYzQTYxNjU1RDQyNjAwMEQ0NjQ1IC8q
IHN0YXJ0QnV0dG9uQDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJMzFBOTYzQTcxNjU1RDQy
NjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZC5wbmcgaW4gUmVzb3VyY2VzICovLAotCQkJ
CTMxQTk2M0E4MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvblByZXNzZWRAMngucG5nIGlu
IFJlc291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDM1YzMyMzI4
YzM0M2EwZjU2OTMyOTZkNzA1NzExNzczMDhiYWFiMjkuLmQ4N2FkZTEzMTcwZmZjNDhkMTQ1YTEw
ZjJkNjBhY2QwNjcyNWE5YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIlBvcHVwTWVudS5oIgogI2luY2x1ZGUgIlBvcHVwTWVudUNs
aWVudC5oIgogI2luY2x1ZGUgIlJlbmRlckVtYmVkZGVkT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW4uaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1
ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgogI2luY2x1ZGUgIldlYkNvcmVLZXlib2FyZFVJTW9kZS5o
IgpAQCAtNDcsMzM0ICs0OCwzMzYgQEAgY2xhc3MgTlNSZXNwb25kZXI7CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotICAgIGNsYXNzIEFjY2Vzc2liaWxpdHlPYmplY3Q7Ci0gICAgY2xhc3MgRGF0
ZVRpbWVDaG9vc2VyOwotICAgIGNsYXNzIERhdGVUaW1lQ2hvb3NlckNsaWVudDsKLSAgICBjbGFz
cyBFbGVtZW50OwotICAgIGNsYXNzIEZpbGVDaG9vc2VyOwotICAgIGNsYXNzIEZpbGVJY29uTG9h
ZGVyOwotICAgIGNsYXNzIEZsb2F0UmVjdDsKLSAgICBjbGFzcyBGcmFtZTsKLSAgICBjbGFzcyBH
ZW9sb2NhdGlvbjsKLSAgICBjbGFzcyBHcmFwaGljc0xheWVyOwotICAgIGNsYXNzIEhUTUxJbnB1
dEVsZW1lbnQ7Ci0gICAgY2xhc3MgSGl0VGVzdFJlc3VsdDsKLSAgICBjbGFzcyBJbnRSZWN0Owot
ICAgIGNsYXNzIE5hdmlnYXRpb25BY3Rpb247Ci0gICAgY2xhc3MgTm9kZTsKLSAgICBjbGFzcyBQ
YWdlOwotICAgIGNsYXNzIFBhZ2VQb3B1cDsKLSAgICBjbGFzcyBQYWdlUG9wdXBDbGllbnQ7Ci0g
ICAgY2xhc3MgUGFnZVBvcHVwRHJpdmVyOwotICAgIGNsYXNzIFBvcHVwTWVudUNsaWVudDsKLSAg
ICBjbGFzcyBTZWN1cml0eU9yaWdpbjsKLSAgICBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKLSAg
ICBjbGFzcyBXaWRnZXQ7Ci0KLSAgICBzdHJ1Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsK
LSAgICBzdHJ1Y3QgRnJhbWVMb2FkUmVxdWVzdDsKLSAgICBzdHJ1Y3QgVmlld3BvcnRBcmd1bWVu
dHM7Ci0gICAgc3RydWN0IFdpbmRvd0ZlYXR1cmVzOworY2xhc3MgQWNjZXNzaWJpbGl0eU9iamVj
dDsKK2NsYXNzIERhdGVUaW1lQ2hvb3NlcjsKK2NsYXNzIERhdGVUaW1lQ2hvb3NlckNsaWVudDsK
K2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBGaWxlQ2hvb3NlcjsKK2NsYXNzIEZpbGVJY29uTG9hZGVy
OworY2xhc3MgRmxvYXRSZWN0OworY2xhc3MgRnJhbWU7CitjbGFzcyBHZW9sb2NhdGlvbjsKK2Ns
YXNzIEdyYXBoaWNzTGF5ZXI7CitjbGFzcyBIVE1MSW5wdXRFbGVtZW50OworY2xhc3MgSGl0VGVz
dFJlc3VsdDsKK2NsYXNzIEludFJlY3Q7CitjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOworY2xhc3Mg
Tm9kZTsKK2NsYXNzIFBhZ2U7CitjbGFzcyBQYWdlUG9wdXA7CitjbGFzcyBQYWdlUG9wdXBDbGll
bnQ7CitjbGFzcyBQYWdlUG9wdXBEcml2ZXI7CitjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CitjbGFz
cyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDNEOworY2xhc3MgV2lkZ2V0
OworCitzdHJ1Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKK3N0cnVjdCBGcmFtZUxvYWRS
ZXF1ZXN0Oworc3RydWN0IFZpZXdwb3J0QXJndW1lbnRzOworc3RydWN0IFdpbmRvd0ZlYXR1cmVz
OwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGNsYXNzIEdyYXBoaWNz
TGF5ZXI7Ci0gICAgY2xhc3MgR3JhcGhpY3NMYXllckZhY3Rvcnk7CitjbGFzcyBHcmFwaGljc0xh
eWVyOworY2xhc3MgR3JhcGhpY3NMYXllckZhY3Rvcnk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJ
TlBVVF9UWVBFX0NPTE9SKQotICAgIGNsYXNzIENvbG9yQ2hvb3NlcjsKLSAgICBjbGFzcyBDb2xv
ckNob29zZXJDbGllbnQ7CitjbGFzcyBDb2xvckNob29zZXI7CitjbGFzcyBDb2xvckNob29zZXJD
bGllbnQ7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKEFWRk9VTkRBVElPTikK
LSAgICBzdHJ1Y3QgR3JhcGhpY3NEZXZpY2VBZGFwdGVyOworc3RydWN0IEdyYXBoaWNzRGV2aWNl
QWRhcHRlcjsKICNlbmRpZgogCi0gICAgY2xhc3MgQ2hyb21lQ2xpZW50IHsKLSAgICBwdWJsaWM6
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKSA9IDA7Ci0gICAgICAgIAot
ICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKSA9IDA7
Ci0gICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IHdpbmRvd1JlY3QoKSA9IDA7Ci0gICAgICAgIAot
ICAgICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBwYWdlUmVjdCgpID0gMDsKLSAgICAgICAgCi0gICAg
ICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHVuZm9j
dXMoKSA9IDA7Ci0KLSAgICAgICAgdmlydHVhbCBib29sIGNhblRha2VGb2N1cyhGb2N1c0RpcmVj
dGlvbikgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKEZvY3VzRGlyZWN0aW9u
KSA9IDA7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIGZvY3VzZWROb2RlQ2hhbmdlZChOb2RlKikg
PSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSopID0g
MDsKLQotICAgICAgICAvLyBUaGUgRnJhbWUgcG9pbnRlciBwcm92aWRlcyB0aGUgQ2hyb21lQ2xp
ZW50IHdpdGggY29udGV4dCBhYm91dCB3aGljaAotICAgICAgICAvLyBGcmFtZSB3YW50cyB0byBj
cmVhdGUgdGhlIG5ldyBQYWdlLiAgQWxzbywgdGhlIG5ld2x5IGNyZWF0ZWQgd2luZG93Ci0gICAg
ICAgIC8vIHNob3VsZCBub3QgYmUgc2hvd24gdG8gdGhlIHVzZXIgdW50aWwgdGhlIENocm9tZUNs
aWVudCBvZiB0aGUgbmV3bHkKLSAgICAgICAgLy8gY3JlYXRlZCBQYWdlIGhhcyBpdHMgc2hvdyBt
ZXRob2QgY2FsbGVkLgotICAgICAgICAvLyBUaGUgRnJhbWVMb2FkUmVxdWVzdCBwYXJhbWV0ZXIg
aXMgb25seSBmb3IgQ2hyb21lQ2xpZW50IHRvIGNoZWNrIGlmIHRoZQotICAgICAgICAvLyByZXF1
ZXN0IGNvdWxkIGJlIGZ1bGZpbGxlZC4gIFRoZSBDaHJvbWVDbGllbnQgc2hvdWxkIG5vdCBsb2Fk
IHRoZSByZXF1ZXN0LgotICAgICAgICB2aXJ0dWFsIFBhZ2UqIGNyZWF0ZVdpbmRvdyhGcmFtZSos
IGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IE5h
dmlnYXRpb25BY3Rpb24mKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzaG93KCkgPSAwOwot
Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5Nb2RhbCgpID0gMDsKLSAgICAgICAgdmlydHVh
bCB2b2lkIHJ1bk1vZGFsKCkgPSAwOwotCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sYmFy
c1Zpc2libGUoYm9vbCkgPSAwOwotICAgICAgICB2aXJ0dWFsIGJvb2wgdG9vbGJhcnNWaXNpYmxl
KCkgPSAwOwotICAgICAgICAKLSAgICAgICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclZpc2li
bGUoYm9vbCkgPSAwOwotICAgICAgICB2aXJ0dWFsIGJvb2wgc3RhdHVzYmFyVmlzaWJsZSgpID0g
MDsKLSAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxiYXJzVmlzaWJsZShi
b29sKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxiYXJzVmlzaWJsZSgpID0gMDsK
LSAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRNZW51YmFyVmlzaWJsZShib29sKSA9
IDA7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBtZW51YmFyVmlzaWJsZSgpID0gMDsKLQotICAgICAg
ICB2aXJ0dWFsIHZvaWQgc2V0UmVzaXphYmxlKGJvb2wpID0gMDsKLSAgICAgICAgCi0gICAgICAg
IHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VU
eXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgaW50IGxp
bmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSUQpID0gMDsKLQotICAgICAgICB2aXJ0dWFs
IGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkgPSAwOwotICAgICAgICB2aXJ0
dWFsIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgRnJhbWUqIGZyYW1lKSA9IDA7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIGNsb3NlV2luZG93
U29vbigpID0gMDsKLSAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBydW5KYXZhU2NyaXB0
QWxlcnQoRnJhbWUqLCBjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBy
dW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSosIGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICAgICAg
dmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkgPSAwOwot
ICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmKSA9IDA7
Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KCkgPSAwOwot
ICAgICAgICB2aXJ0dWFsIEtleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgPSAwOwotCi0g
ICAgICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0ID0gMDsKLQotICAgICAgICB2aXJ0
dWFsIEludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBjb25zdCA9IDA7Ci0KLSAgICAgICAgLy8g
TWV0aG9kcyB1c2VkIGJ5IEhvc3RXaW5kb3cuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlk
YXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYsIGJvb2wpID0gMDsKLSAgICAgICAgdmlydHVhbCB2
b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmLCBib29sKSA9
IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xs
KGNvbnN0IEludFJlY3QmLCBib29sKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwo
Y29uc3QgSW50U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0JikgPSAwOworY2xh
c3MgQ2hyb21lQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJv
eWVkKCkgPSAwOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEZs
b2F0UmVjdCYpID0gMDsKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCkgPSAwOwor
ICAgIAorICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCkgPSAwOworICAgIAorICAgIHZp
cnR1YWwgdm9pZCBmb2N1cygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpID0gMDsK
KworICAgIHZpcnR1YWwgYm9vbCBjYW5UYWtlRm9jdXMoRm9jdXNEaXJlY3Rpb24pID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKEZvY3VzRGlyZWN0aW9uKSA9IDA7CisKKyAgICB2aXJ0
dWFsIHZvaWQgZm9jdXNlZE5vZGVDaGFuZ2VkKE5vZGUqKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqKSA9IDA7CisKKyAgICAvLyBUaGUgRnJhbWUgcG9p
bnRlciBwcm92aWRlcyB0aGUgQ2hyb21lQ2xpZW50IHdpdGggY29udGV4dCBhYm91dCB3aGljaAor
ICAgIC8vIEZyYW1lIHdhbnRzIHRvIGNyZWF0ZSB0aGUgbmV3IFBhZ2UuIEFsc28sIHRoZSBuZXds
eSBjcmVhdGVkIHdpbmRvdworICAgIC8vIHNob3VsZCBub3QgYmUgc2hvd24gdG8gdGhlIHVzZXIg
dW50aWwgdGhlIENocm9tZUNsaWVudCBvZiB0aGUgbmV3bHkKKyAgICAvLyBjcmVhdGVkIFBhZ2Ug
aGFzIGl0cyBzaG93IG1ldGhvZCBjYWxsZWQuCisgICAgLy8gVGhlIEZyYW1lTG9hZFJlcXVlc3Qg
cGFyYW1ldGVyIGlzIG9ubHkgZm9yIENocm9tZUNsaWVudCB0byBjaGVjayBpZiB0aGUKKyAgICAv
LyByZXF1ZXN0IGNvdWxkIGJlIGZ1bGZpbGxlZC4gVGhlIENocm9tZUNsaWVudCBzaG91bGQgbm90
IGxvYWQgdGhlIHJlcXVlc3QuCisgICAgdmlydHVhbCBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUq
LCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25zdCBO
YXZpZ2F0aW9uQWN0aW9uJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzaG93KCkgPSAwOworCisg
ICAgdmlydHVhbCBib29sIGNhblJ1bk1vZGFsKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBydW5N
b2RhbCgpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sYmFyc1Zpc2libGUoYm9vbCkg
PSAwOworICAgIHZpcnR1YWwgYm9vbCB0b29sYmFyc1Zpc2libGUoKSA9IDA7CisgICAgCisgICAg
dmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclZpc2libGUoYm9vbCkgPSAwOworICAgIHZpcnR1YWwg
Ym9vbCBzdGF0dXNiYXJWaXNpYmxlKCkgPSAwOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBzZXRT
Y3JvbGxiYXJzVmlzaWJsZShib29sKSA9IDA7CisgICAgdmlydHVhbCBib29sIHNjcm9sbGJhcnNW
aXNpYmxlKCkgPSAwOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBzZXRNZW51YmFyVmlzaWJsZShi
b29sKSA9IDA7CisgICAgdmlydHVhbCBib29sIG1lbnViYXJWaXNpYmxlKCkgPSAwOworCisgICAg
dmlydHVhbCB2b2lkIHNldFJlc2l6YWJsZShib29sKSA9IDA7CisgICAgCisgICAgdmlydHVhbCB2
b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3Nh
Z2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25z
dCBTdHJpbmcmIHNvdXJjZUlEKSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsKCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBydW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSopID0gMDsKKworICAg
IHZpcnR1YWwgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKSA9IDA7CisgICAgCisgICAgdmlydHVhbCB2
b2lkIHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSosIGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2
aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmKSA9
IDA7CisgICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3Vs
dCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYp
ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpID0gMDsK
KyAgICB2aXJ0dWFsIEtleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgPSAwOworCisgICAg
dmlydHVhbCB2b2lkKiB3ZWJWaWV3KCkgY29uc3QgPSAwOworCisgICAgdmlydHVhbCBJbnRSZWN0
IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QgPSAwOworCisgICAgLy8gTWV0aG9kcyB1c2VkIGJ5
IEhvc3RXaW5kb3cuCisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBJ
bnRSZWN0JiwgYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNB
bmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiwgYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBp
bnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYs
IGNvbnN0IEludFJlY3QmKSA9IDA7CiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0gICAg
ICAgIHZpcnR1YWwgdm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50UG9pbnQm
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChjb25zdCBJ
bnRQb2ludCYpID0gMDsKICNlbmRpZgotICAgICAgICB2aXJ0dWFsIEludFBvaW50IHNjcmVlblRv
Um9vdFZpZXcoY29uc3QgSW50UG9pbnQmKSBjb25zdCA9IDA7Ci0gICAgICAgIHZpcnR1YWwgSW50
UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdCA9IDA7Ci0gICAgICAg
IHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0ID0g
MDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3Qg
PSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpID0gMDsK
LSAgICAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29s
KSA9IDA7CisgICAgdmlydHVhbCBJbnRQb2ludCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBv
aW50JikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgSW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNv
bnN0IEludFJlY3QmKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBQbGF0Zm9ybVBhZ2VDbGllbnQg
cGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxi
YXJzTW9kZURpZENoYW5nZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29y
KGNvbnN0IEN1cnNvciYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50
aWxNb3VzZU1vdmVzKGJvb2wpID0gMDsKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJB
TUUpICYmICFVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCi0gICAgICAgIHZpcnR1
YWwgdm9pZCBzY2hlZHVsZUFuaW1hdGlvbigpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1
bGVBbmltYXRpb24oKSA9IDA7CiAjZW5kaWYKLSAgICAgICAgLy8gRW5kIG1ldGhvZHMgdXNlZCBi
eSBIb3N0V2luZG93LgorICAgIC8vIEVuZCBtZXRob2RzIHVzZWQgYnkgSG9zdFdpbmRvdy4KIAot
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2Uo
Y29uc3QgVmlld3BvcnRBcmd1bWVudHMmKSBjb25zdCB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UoY29uc3QgVmlld3BvcnRBcmd1bWVudHMm
KSBjb25zdCB7IH0KIAotICAgICAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChG
cmFtZSosIGNvbnN0IEludFNpemUmKSBjb25zdCA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBs
YXlvdXRVcGRhdGVkKEZyYW1lKikgY29uc3QgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzY3Jv
bGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0IHsgfTsgLy8gQ3VycmVudGx5IG9u
bHkgTWFjIGhhcyBhIG5vbiBlbXB0eSBpbXBsZW1lbnRhdGlvbi4KLSAgICAgICAKLSAgICAgICAg
dmlydHVhbCBib29sIHNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFJlbmRl
ckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9u
Q2xpY2tlZChFbGVtZW50KiwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmls
aXR5UmVhc29uKSBjb25zdCB7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBjb25zdCBJ
bnRTaXplJikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsYXlvdXRVcGRhdGVkKEZyYW1l
KikgY29uc3QgeyB9CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJ
bnRSZWN0JikgY29uc3QgeyB9OyAvLyBDdXJyZW50bHkgb25seSBNYWMgaGFzIGEgbm9uIGVtcHR5
IGltcGxlbWVudGF0aW9uLgogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0
IFN0cmluZyYsIFRleHREaXJlY3Rpb24pID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVW5h
dmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdp
blVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1
YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCosIFJlbmRlckVt
YmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgeyB9CisgICAg
dmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQm
LCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSA9IDA7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHBy
aW50KEZyYW1lKikgPSAwOwotICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZElu
RGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFRleHREaXJlY3Rpb24pID0gMDsKKworICAgIHZpcnR1
YWwgdm9pZCBwcmludChGcmFtZSopID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVy
QmFuZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3QgPSAwOwogCiAjaWYgRU5BQkxF
KFNRTF9EQVRBQkFTRSkKLSAgICAgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90
YShGcmFtZSosIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VO
YW1lKSA9IDA7CiAjZW5kaWYKIAotICAgICAgICAvLyBDYWxsYmFjayBpbnZva2VkIHdoZW4gdGhl
IGFwcGxpY2F0aW9uIGNhY2hlIGZhaWxzIHRvIHNhdmUgYSBjYWNoZSBvYmplY3QKLSAgICAgICAg
Ly8gYmVjYXVzZSBzdG9yaW5nIGl0IHdvdWxkIGdyb3cgdGhlIGRhdGFiYXNlIGZpbGUgcGFzdCBp
dHMgZGVmaW5lZCBtYXhpbXVtCi0gICAgICAgIC8vIHNpemUgb3IgcGFzdCB0aGUgYW1vdW50IG9m
IGZyZWUgc3BhY2Ugb24gdGhlIGRldmljZS4gCi0gICAgICAgIC8vIFRoZSBjaHJvbWUgY2xpZW50
IHdvdWxkIG5lZWQgdG8gdGFrZSBzb21lIGFjdGlvbiBzdWNoIGFzIGV2aWN0aW5nIHNvbWUKLSAg
ICAgICAgLy8gb2xkIGNhY2hlcy4KLSAgICAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBD
YWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkgPSAwOwotCi0gICAgICAgIC8vIENhbGxiYWNr
IGludm9rZWQgd2hlbiB0aGUgYXBwbGljYXRpb24gY2FjaGUgb3JpZ2luIHF1b3RhIGlzIHJlYWNo
ZWQuIFRoaXMKLSAgICAgICAgLy8gbWVhbnMgdGhhdCB0aGUgcmVzb3VyY2VzIGF0dGVtcHRpbmcg
dG8gYmUgY2FjaGVkIHZpYSB0aGUgbWFuaWZlc3QgYXJlCi0gICAgICAgIC8vIG1vcmUgdGhhbiBh
bGxvd2VkIG9uIHRoaXMgb3JpZ2luLiBUaGlzIGNhbGxiYWNrIGFsbG93cyB0aGUgY2hyb21lIGNs
aWVudAotICAgICAgICAvLyB0byB0YWtlIGFjdGlvbiwgc3VjaCBhcyBwcm9tcHRpbmcgdGhlIHVz
ZXIgdG8gYXNrIHRvIGluY3JlYXNlIHRoZSBxdW90YQotICAgICAgICAvLyBmb3IgdGhpcyBvcmln
aW4uIFRoZSB0b3RhbFNwYWNlTmVlZGVkIHBhcmFtZXRlciBpcyB0aGUgdG90YWwgYW1vdW50IG9m
Ci0gICAgICAgIC8vIHN0b3JhZ2UsIGluIGJ5dGVzLCBuZWVkZWQgdG8gc3RvcmUgdGhlIG5ldyBj
YWNoZSBhbG9uZyB3aXRoIGFsbCBvZiB0aGUKLSAgICAgICAgLy8gb3RoZXIgZXhpc3RpbmcgY2Fj
aGVzIGZvciB0aGUgb3JpZ2luIHRoYXQgd291bGQgbm90IGJlIHJlcGxhY2VkIGJ5Ci0gICAgICAg
IC8vIHRoZSBuZXcgY2FjaGUuCi0gICAgICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRp
b25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVl
ZGVkKSA9IDA7CisgICAgLy8gQ2FsbGJhY2sgaW52b2tlZCB3aGVuIHRoZSBhcHBsaWNhdGlvbiBj
YWNoZSBmYWlscyB0byBzYXZlIGEgY2FjaGUgb2JqZWN0CisgICAgLy8gYmVjYXVzZSBzdG9yaW5n
IGl0IHdvdWxkIGdyb3cgdGhlIGRhdGFiYXNlIGZpbGUgcGFzdCBpdHMgZGVmaW5lZCBtYXhpbXVt
CisgICAgLy8gc2l6ZSBvciBwYXN0IHRoZSBhbW91bnQgb2YgZnJlZSBzcGFjZSBvbiB0aGUgZGV2
aWNlLiAKKyAgICAvLyBUaGUgY2hyb21lIGNsaWVudCB3b3VsZCBuZWVkIHRvIHRha2Ugc29tZSBh
Y3Rpb24gc3VjaCBhcyBldmljdGluZyBzb21lCisgICAgLy8gb2xkIGNhY2hlcy4KKyAgICB2aXJ0
dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKSA9IDA7
CisKKyAgICAvLyBDYWxsYmFjayBpbnZva2VkIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGNhY2hlIG9y
aWdpbiBxdW90YSBpcyByZWFjaGVkLiBUaGlzCisgICAgLy8gbWVhbnMgdGhhdCB0aGUgcmVzb3Vy
Y2VzIGF0dGVtcHRpbmcgdG8gYmUgY2FjaGVkIHZpYSB0aGUgbWFuaWZlc3QgYXJlCisgICAgLy8g
bW9yZSB0aGFuIGFsbG93ZWQgb24gdGhpcyBvcmlnaW4uIFRoaXMgY2FsbGJhY2sgYWxsb3dzIHRo
ZSBjaHJvbWUgY2xpZW50CisgICAgLy8gdG8gdGFrZSBhY3Rpb24sIHN1Y2ggYXMgcHJvbXB0aW5n
IHRoZSB1c2VyIHRvIGFzayB0byBpbmNyZWFzZSB0aGUgcXVvdGEKKyAgICAvLyBmb3IgdGhpcyBv
cmlnaW4uIFRoZSB0b3RhbFNwYWNlTmVlZGVkIHBhcmFtZXRlciBpcyB0aGUgdG90YWwgYW1vdW50
IG9mCisgICAgLy8gc3RvcmFnZSwgaW4gYnl0ZXMsIG5lZWRlZCB0byBzdG9yZSB0aGUgbmV3IGNh
Y2hlIGFsb25nIHdpdGggYWxsIG9mIHRoZQorICAgIC8vIG90aGVyIGV4aXN0aW5nIGNhY2hlcyBm
b3IgdGhlIG9yaWdpbiB0aGF0IHdvdWxkIG5vdCBiZSByZXBsYWNlZCBieQorICAgIC8vIHRoZSBu
ZXcgY2FjaGUuCisgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEoU2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpID0gMDsKIAog
I2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkgfHwgRU5BQkxFKERSQUdHQUJMRV9SRUdJT04p
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBhbm5vdGF0ZWRSZWdpb25zQ2hhbmdlZCgpOworICAgIHZp
cnR1YWwgdm9pZCBhbm5vdGF0ZWRSZWdpb25zQ2hhbmdlZCgpOwogI2VuZGlmCiAKLSAgICAgICAg
dmlydHVhbCB2b2lkIHBvcHVsYXRlVmlzaXRlZExpbmtzKCk7CisgICAgdmlydHVhbCB2b2lkIHBv
cHVsYXRlVmlzaXRlZExpbmtzKCk7CiAKLSAgICAgICAgdmlydHVhbCBGbG9hdFJlY3QgY3VzdG9t
SGlnaGxpZ2h0UmVjdChOb2RlKiwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBGbG9h
dFJlY3QmIGxpbmVSZWN0KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHBhaW50Q3VzdG9tSGlnaGxp
Z2h0KE5vZGUqLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgYm94
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBsaW5lUmVjdCwKLSAgICAgICAgICAgIGJvb2wgYmVoaW5k
VGV4dCwgYm9vbCBlbnRpcmVMaW5lKTsKLSAgICAgICAgICAgIAotICAgICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkUmVwbGFjZVdpdGhHZW5lcmF0ZWRGaWxlRm9yVXBsb2FkKGNvbnN0IFN0cmluZyYg
cGF0aCwgU3RyaW5nJiBnZW5lcmF0ZWRGaWxlbmFtZSk7Ci0gICAgICAgIHZpcnR1YWwgU3RyaW5n
IGdlbmVyYXRlUmVwbGFjZW1lbnRGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCk7CisgICAgdmlydHVh
bCBGbG9hdFJlY3QgY3VzdG9tSGlnaGxpZ2h0UmVjdChOb2RlKiwgY29uc3QgQXRvbWljU3RyaW5n
JiB0eXBlLCBjb25zdCBGbG9hdFJlY3QmIGxpbmVSZWN0KTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFp
bnRDdXN0b21IaWdobGlnaHQoTm9kZSosIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3Qg
RmxvYXRSZWN0JiBib3hSZWN0LCBjb25zdCBGbG9hdFJlY3QmIGxpbmVSZWN0LAorICAgICAgICBi
b29sIGJlaGluZFRleHQsIGJvb2wgZW50aXJlTGluZSk7CisgICAgICAgIAorICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRSZXBsYWNlV2l0aEdlbmVyYXRlZEZpbGVGb3JVcGxvYWQoY29uc3QgU3RyaW5n
JiBwYXRoLCBTdHJpbmcmIGdlbmVyYXRlZEZpbGVuYW1lKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBn
ZW5lcmF0ZVJlcGxhY2VtZW50RmlsZShjb25zdCBTdHJpbmcmIHBhdGgpOwogCi0gICAgICAgIHZp
cnR1YWwgYm9vbCBwYWludEN1c3RvbU92ZXJoYW5nQXJlYShHcmFwaGljc0NvbnRleHQqLCBjb25z
dCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKTsKKyAgICB2aXJ0dWFs
IGJvb2wgcGFpbnRDdXN0b21PdmVyaGFuZ0FyZWEoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50
UmVjdCYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0Jik7CiAKICNpZiBFTkFCTEUoSU5Q
VVRfVFlQRV9DT0xPUikKLSAgICAgICAgdmlydHVhbCBQYXNzT3duUHRyPENvbG9yQ2hvb3Nlcj4g
Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IENvbG9yJikgPSAw
OworICAgIHZpcnR1YWwgUGFzc093blB0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3Nl
cihDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBDb2xvciYpID0gMDsKICNlbmRpZgogCiAjaWYg
RU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCi0gICAgICAgIC8vIFRoaXMgZnVuY3Rp
b24gaXMgdXNlZCBmb3I6Ci0gICAgICAgIC8vICAtIE1hbmRhdG9yeSBkYXRlL3RpbWUgY2hvb3Nl
cnMgaWYgIUVOQUJMRShJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUkpCi0gICAgICAgIC8vICAtIERh
dGUvdGltZSBjaG9vc2VycyBmb3IgdHlwZXMgZm9yIHdoaWNoIFJlbmRlclRoZW1lOjpzdXBwb3J0
c0NhbGVuZGFyUGlja2VyCi0gICAgICAgIC8vICAgIHJldHVybnMgdHJ1ZSwgaWYgRU5BQkxFKElO
UFVUX01VTFRJUExFX0ZJRUxEU19VSSkKLSAgICAgICAgLy8gIC0gPGRhdGFsaXN0PiBVSSBmb3Ig
ZGF0ZS90aW1lIGlucHV0IHR5cGVzIHJlZ2FyZGxlc3Mgb2YKLSAgICAgICAgLy8gICAgRU5BQkxF
KElOUFVUX01VTFRJUExFX0ZJRUxEU19VSSkKLSAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPERh
dGVUaW1lQ2hvb3Nlcj4gb3BlbkRhdGVUaW1lQ2hvb3NlcihEYXRlVGltZUNob29zZXJDbGllbnQq
LCBjb25zdCBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzJikgPSAwOworICAgIC8vIFRoaXMgZnVu
Y3Rpb24gaXMgdXNlZCBmb3I6CisgICAgLy8gIC0gTWFuZGF0b3J5IGRhdGUvdGltZSBjaG9vc2Vy
cyBpZiAhRU5BQkxFKElOUFVUX01VTFRJUExFX0ZJRUxEU19VSSkKKyAgICAvLyAgLSBEYXRlL3Rp
bWUgY2hvb3NlcnMgZm9yIHR5cGVzIGZvciB3aGljaCBSZW5kZXJUaGVtZTo6c3VwcG9ydHNDYWxl
bmRhclBpY2tlcgorICAgIC8vICAgIHJldHVybnMgdHJ1ZSwgaWYgRU5BQkxFKElOUFVUX01VTFRJ
UExFX0ZJRUxEU19VSSkKKyAgICAvLyAgLSA8ZGF0YWxpc3Q+IFVJIGZvciBkYXRlL3RpbWUgaW5w
dXQgdHlwZXMgcmVnYXJkbGVzcyBvZgorICAgIC8vICAgIEVOQUJMRShJTlBVVF9NVUxUSVBMRV9G
SUVMRFNfVUkpCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPERhdGVUaW1lQ2hvb3Nlcj4gb3BlbkRh
dGVUaW1lQ2hvb3NlcihEYXRlVGltZUNob29zZXJDbGllbnQqLCBjb25zdCBEYXRlVGltZUNob29z
ZXJQYXJhbWV0ZXJzJikgPSAwOwogI2VuZGlmCiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHJ1bk9w
ZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KSA9IDA7Ci0gICAgICAgIC8v
IEFzeW5jaHJvbm91cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBmb3Igc3BlY2lmaWVkIGZpbGVu
YW1lcy4KLSAgICAgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9y
PFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcnVuT3Bl
blBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pID0gMDsKKyAgICAvLyBBc3lu
Y2hyb25vdXMgcmVxdWVzdCB0byBsb2FkIGFuIGljb24gZm9yIHNwZWNpZmllZCBmaWxlbmFtZXMu
CisgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
LCBGaWxlSWNvbkxvYWRlciopID0gMDsKIAogI2lmIEVOQUJMRShESVJFQ1RPUllfVVBMT0FEKQot
ICAgICAgICAvLyBBc3ljaHJvbm91cyByZXF1ZXN0IHRvIGVudW1lcmF0ZSBhbGwgZmlsZXMgaW4g
YSBkaXJlY3RvcnkgY2hvc2VuIGJ5IHRoZSB1c2VyLgotICAgICAgICB2aXJ0dWFsIHZvaWQgZW51
bWVyYXRlQ2hvc2VuRGlyZWN0b3J5KEZpbGVDaG9vc2VyKikgPSAwOworICAgIC8vIEFzeWNocm9u
b3VzIHJlcXVlc3QgdG8gZW51bWVyYXRlIGFsbCBmaWxlcyBpbiBhIGRpcmVjdG9yeSBjaG9zZW4g
YnkgdGhlIHVzZXIuCisgICAgdmlydHVhbCB2b2lkIGVudW1lcmF0ZUNob3NlbkRpcmVjdG9yeShG
aWxlQ2hvb3NlciopID0gMDsKICNlbmRpZgogCi0gICAgICAgIC8vIE5vdGlmaWNhdGlvbiB0aGF0
IHRoZSBnaXZlbiBmb3JtIGVsZW1lbnQgaGFzIGNoYW5nZWQuIFRoaXMgZnVuY3Rpb24KLSAgICAg
ICAgLy8gd2lsbCBiZSBjYWxsZWQgZnJlcXVlbnRseSwgc28gaGFuZGxpbmcgc2hvdWxkIGJlIHZl
cnkgZmFzdC4KLSAgICAgICAgdmlydHVhbCB2b2lkIGZvcm1TdGF0ZURpZENoYW5nZShjb25zdCBO
b2RlKikgPSAwOwotICAgICAgICAKLSAgICAgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRGb2N1
cyhjb25zdCBOb2RlKikgeyB9OwotICAgICAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEJsdXIo
Y29uc3QgTm9kZSopIHsgfTsKKyAgICAvLyBOb3RpZmljYXRpb24gdGhhdCB0aGUgZ2l2ZW4gZm9y
bSBlbGVtZW50IGhhcyBjaGFuZ2VkLiBUaGlzIGZ1bmN0aW9uCisgICAgLy8gd2lsbCBiZSBjYWxs
ZWQgZnJlcXVlbnRseSwgc28gaGFuZGxpbmcgc2hvdWxkIGJlIHZlcnkgZmFzdC4KKyAgICB2aXJ0
dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0IE5vZGUqKSA9IDA7CisgICAgCisgICAg
dmlydHVhbCB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBOb2RlKikgeyB9OworICAgIHZpcnR1
YWwgdm9pZCBlbGVtZW50RGlkQmx1cihjb25zdCBOb2RlKikgeyB9OwogCiAjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotICAgICAgICAvLyBBbGxvd3MgcG9ydHMgdG8gY3VzdG9taXpl
IHRoZSB0eXBlIG9mIGdyYXBoaWNzIGxheWVycyBjcmVhdGVkIGJ5IHRoaXMgcGFnZS4KLSAgICAg
ICAgdmlydHVhbCBHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBj
b25zdCB7IHJldHVybiAwOyB9Ci0KLSAgICAgICAgLy8gUGFzcyAwIGFzIHRoZSBHcmFwaGljc0xh
eWVyIHRvIGRldGF0Y2ggdGhlIHJvb3QgbGF5ZXIuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBhdHRh
Y2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKSA9IDA7Ci0gICAgICAg
IC8vIFNldHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUgbmV4dCB0aW1lIGNvbnRlbnQgaXMg
ZHJhd24gdG8gdGhlIHdpbmRvdywKLSAgICAgICAgLy8gdGhlIGNoYW5nZXMgYXBwZWFyIG9uIHRo
ZSBzY3JlZW4gaW4gc3luY2hyb255IHdpdGggdXBkYXRlcyB0byBHcmFwaGljc0xheWVycy4KLSAg
ICAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24o
KSA9IDA7Ci0gICAgICAgIC8vIFNldHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUgdmlldyBu
ZWVkcyB0byBiZSB1cGRhdGVkLCBzbyB3ZSBuZWVkCi0gICAgICAgIC8vIHRvIGRvIGFuIGVhZ2Vy
IGxheW91dCBiZWZvcmUgdGhlIGRyYXdpbmcuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVs
ZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpID0gMDsKLSAgICAgICAgLy8gUmV0dXJucyB3aGV0aGVy
IG9yIG5vdCB0aGUgY2xpZW50IGNhbiByZW5kZXIgdGhlIGNvbXBvc2l0ZWQgbGF5ZXIsCi0gICAg
ICAgIC8vIHJlZ2FyZGxlc3Mgb2YgdGhlIHNldHRpbmdzLgotICAgICAgICB2aXJ0dWFsIGJvb2wg
YWxsb3dzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQot
ICAgICAgICBlbnVtIENvbXBvc2l0aW5nVHJpZ2dlciB7Ci0gICAgICAgICAgICBUaHJlZURUcmFu
c2Zvcm1UcmlnZ2VyID0gMSA8PCAwLAotICAgICAgICAgICAgVmlkZW9UcmlnZ2VyID0gMSA8PCAx
LAotICAgICAgICAgICAgUGx1Z2luVHJpZ2dlciA9IDEgPDwgMiwKLSAgICAgICAgICAgIENhbnZh
c1RyaWdnZXIgPSAxIDw8IDMsCi0gICAgICAgICAgICBBbmltYXRpb25UcmlnZ2VyID0gMSA8PCA0
LAotICAgICAgICAgICAgRmlsdGVyVHJpZ2dlciA9IDEgPDwgNSwKLSAgICAgICAgICAgIEFsbFRy
aWdnZXJzID0gMHhGRkZGRkZGRgotICAgICAgICB9OwotICAgICAgICB0eXBlZGVmIHVuc2lnbmVk
IENvbXBvc2l0aW5nVHJpZ2dlckZsYWdzOwotCi0gICAgICAgIC8vIFJldHVybnMgYSBiaXRmaWVs
ZCBpbmRpY2F0aW5nIGNvbmRpdGlvbnMgdGhhdCBjYW4gdHJpZ2dlciB0aGUgY29tcG9zaXRvci4K
LSAgICAgICAgdmlydHVhbCBDb21wb3NpdGluZ1RyaWdnZXJGbGFncyBhbGxvd2VkQ29tcG9zaXRp
bmdUcmlnZ2VycygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENvbXBvc2l0aW5nVHJpZ2dl
ckZsYWdzPihBbGxUcmlnZ2Vycyk7IH0KKyAgICAvLyBBbGxvd3MgcG9ydHMgdG8gY3VzdG9taXpl
IHRoZSB0eXBlIG9mIGdyYXBoaWNzIGxheWVycyBjcmVhdGVkIGJ5IHRoaXMgcGFnZS4KKyAgICB2
aXJ0dWFsIEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIGNvbnN0
IHsgcmV0dXJuIDA7IH0KKworICAgIC8vIFBhc3MgMCBhcyB0aGUgR3JhcGhpY3NMYXllciB0byBk
ZXRhdGNoIHRoZSByb290IGxheWVyLgorICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhp
Y3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKSA9IDA7CisgICAgLy8gU2V0cyBhIGZsYWcg
dG8gc3BlY2lmeSB0aGF0IHRoZSBuZXh0IHRpbWUgY29udGVudCBpcyBkcmF3biB0byB0aGUgd2lu
ZG93LAorICAgIC8vIHRoZSBjaGFuZ2VzIGFwcGVhciBvbiB0aGUgc2NyZWVuIGluIHN5bmNocm9u
eSB3aXRoIHVwZGF0ZXMgdG8gR3JhcGhpY3NMYXllcnMuCisgICAgdmlydHVhbCB2b2lkIHNldE5l
ZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSA9IDA7CisgICAgLy8gU2V0cyBhIGZs
YWcgdG8gc3BlY2lmeSB0aGF0IHRoZSB2aWV3IG5lZWRzIHRvIGJlIHVwZGF0ZWQsIHNvIHdlIG5l
ZWQKKyAgICAvLyB0byBkbyBhbiBlYWdlciBsYXlvdXQgYmVmb3JlIHRoZSBkcmF3aW5nLgorICAg
IHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpID0gMDsKKyAgICAv
LyBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBjbGllbnQgY2FuIHJlbmRlciB0aGUgY29tcG9z
aXRlZCBsYXllciwKKyAgICAvLyByZWdhcmRsZXNzIG9mIHRoZSBzZXR0aW5ncy4KKyAgICB2aXJ0
dWFsIGJvb2wgYWxsb3dzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KKworICAgIGVudW0gQ29tcG9zaXRpbmdUcmlnZ2VyIHsKKyAgICAgICAgVGhyZWVEVHJh
bnNmb3JtVHJpZ2dlciA9IDEgPDwgMCwKKyAgICAgICAgVmlkZW9UcmlnZ2VyID0gMSA8PCAxLAor
ICAgICAgICBQbHVnaW5UcmlnZ2VyID0gMSA8PCAyLAorICAgICAgICBDYW52YXNUcmlnZ2VyID0g
MSA8PCAzLAorICAgICAgICBBbmltYXRpb25UcmlnZ2VyID0gMSA8PCA0LAorICAgICAgICBGaWx0
ZXJUcmlnZ2VyID0gMSA8PCA1LAorICAgICAgICBBbGxUcmlnZ2VycyA9IDB4RkZGRkZGRkYKKyAg
ICB9OworICAgIHR5cGVkZWYgdW5zaWduZWQgQ29tcG9zaXRpbmdUcmlnZ2VyRmxhZ3M7CisKKyAg
ICAvLyBSZXR1cm5zIGEgYml0ZmllbGQgaW5kaWNhdGluZyBjb25kaXRpb25zIHRoYXQgY2FuIHRy
aWdnZXIgdGhlIGNvbXBvc2l0b3IuCisgICAgdmlydHVhbCBDb21wb3NpdGluZ1RyaWdnZXJGbGFn
cyBhbGxvd2VkQ29tcG9zaXRpbmdUcmlnZ2VycygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0
PENvbXBvc2l0aW5nVHJpZ2dlckZsYWdzPihBbGxUcmlnZ2Vycyk7IH0KICNlbmRpZgogCiAjaWYg
UExBVEZPUk0oV0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotICAgICAgICB2aXJ0dWFsIEdyYXBo
aWNzRGV2aWNlQWRhcHRlciogZ3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkgY29uc3QgeyByZXR1cm4g
MDsgfQorICAgIHZpcnR1YWwgR3JhcGhpY3NEZXZpY2VBZGFwdGVyKiBncmFwaGljc0RldmljZUFk
YXB0ZXIoKSBjb25zdCB7IHJldHVybiAwOyB9CiAjZW5kaWYKIAotICAgICAgICB2aXJ0dWFsIGJv
b2wgc3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZShjb25zdCBOb2RlKikgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbHNjcmVlbkZvck5vZGUoTm9kZSopIHsg
fQotICAgICAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqKSB7IH0K
LSAgICAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2so
KSB7IHJldHVybiBmYWxzZTsgfSAKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGdWxsc2NyZWVu
Rm9yTm9kZShjb25zdCBOb2RlKikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShOb2RlKikgeyB9CisgICAgdmlydHVhbCB2b2lkIGV4aXRG
dWxsc2NyZWVuRm9yTm9kZShOb2RlKikgeyB9CisgICAgdmlydHVhbCBib29sIHJlcXVpcmVzRnVs
bHNjcmVlbkZvclZpZGVvUGxheWJhY2soKSB7IHJldHVybiBmYWxzZTsgfSAKIAogI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKLSAgICAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbFNjcmVl
bkZvckVsZW1lbnQoY29uc3QgRWxlbWVudCosIGJvb2wpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqKSB7IH0K
LSAgICAgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50Kikg
eyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmdWxsU2NyZWVuUmVuZGVyZXJDaGFuZ2VkKFJlbmRl
ckJveCopIHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdEZ1bGxTY3JlZW5MYXllcihH
cmFwaGljc0xheWVyKikgeyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZv
ckVsZW1lbnQoY29uc3QgRWxlbWVudCosIGJvb2wpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBmdWxsU2NyZWVuUmVuZGVyZXJDaGFuZ2VkKFJlbmRlckJveCopIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBzZXRSb290RnVsbFNjcmVlbkxheWVyKEdyYXBoaWNzTGF5ZXIqKSB7IH0K
ICNlbmRpZgotICAgICAgICAKKyAgICAKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKLSAg
ICAgICAgdmlydHVhbCBJbnRSZWN0IHZpc2libGVSZWN0Rm9yVGlsZWRCYWNraW5nU3RvcmUoKSBj
b25zdCB7IHJldHVybiBJbnRSZWN0KCk7IH0KKyAgICB2aXJ0dWFsIEludFJlY3QgdmlzaWJsZVJl
Y3RGb3JUaWxlZEJhY2tpbmdTdG9yZSgpIGNvbnN0IHsgcmV0dXJuIEludFJlY3QoKTsgfQogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgICAgIHZpcnR1YWwgTlNSZXNwb25kZXIgKmZp
cnN0UmVzcG9uZGVyKCkgeyByZXR1cm4gMDsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgbWFrZUZp
cnN0UmVzcG9uZGVyKE5TUmVzcG9uZGVyICopIHsgfQotICAgICAgICAvLyBGb2N1c2VzIG9uIHRo
ZSBjb250YWluaW5nIHZpZXcgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcGFnZS4KLSAgICAgICAgdmly
dHVhbCB2b2lkIG1ha2VGaXJzdFJlc3BvbmRlcigpIHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQg
d2lsbFBvcFVwTWVudShOU01lbnUgKikgeyB9CisgICAgdmlydHVhbCBOU1Jlc3BvbmRlciAqZmly
c3RSZXNwb25kZXIoKSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCB2b2lkIG1ha2VGaXJzdFJl
c3BvbmRlcihOU1Jlc3BvbmRlciAqKSB7IH0KKyAgICAvLyBGb2N1c2VzIG9uIHRoZSBjb250YWlu
aW5nIHZpZXcgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcGFnZS4KKyAgICB2aXJ0dWFsIHZvaWQgbWFr
ZUZpcnN0UmVzcG9uZGVyKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxQb3BVcE1lbnUoTlNN
ZW51ICopIHsgfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShXSU4pCi0gICAgICAgIHZpcnR1YWwg
dm9pZCBzZXRMYXN0U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29yKCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBzZXRMYXN0U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29yKCkgPSAwOwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgICAgICB2aXJ0dWFsIHZvaWQgbmVlZFRvdWNoRXZl
bnRzKGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbmVlZFRvdWNoRXZlbnRzKGJvb2wpID0g
MDsKICNlbmRpZgogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCgpID0gMDsKLSAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGln
bm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSA9IDA7Ci0gICAgICAgIC8vIENoZWNr
cyBpZiB0aGVyZSBpcyBhbiBvcGVuZWQgcG9wdXAsIGNhbGxlZCBieSBSZW5kZXJNZW51TGlzdDo6
c2hvd1BvcHVwKCkuCi0gICAgICAgIHZpcnR1YWwgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0
ID0gMDsKLSAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBN
ZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0ID0gMDsKLSAgICAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVu
dCopIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rp
b25Jc05hdHVyYWwoKSA9IDA7CisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRG
b2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSA9IDA7CisgICAgLy8gQ2hlY2tzIGlmIHRoZXJl
IGlzIGFuIG9wZW5lZCBwb3B1cCwgY2FsbGVkIGJ5IFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAo
KS4KKyAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVu
dCopIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBj
cmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgPSAwOwogI2lmIEVO
QUJMRShQQUdFX1BPUFVQKQotICAgICAgICAvLyBDcmVhdGVzIGEgUGFnZVBvcHVwIG9iamVjdCwg
YW5kIHNob3dzIGl0IGJlc2lkZSBvcmlnaW5Cb3VuZHNJblJvb3RWaWV3LgotICAgICAgICAvLyBU
aGUgcmV0dXJuIHZhbHVlIGNhbiBiZSAwLgotICAgICAgICB2aXJ0dWFsIFBhZ2VQb3B1cCogb3Bl
blBhZ2VQb3B1cChQYWdlUG9wdXBDbGllbnQqLCBjb25zdCBJbnRSZWN0JiBvcmlnaW5Cb3VuZHNJ
blJvb3RWaWV3KSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjbG9zZVBhZ2VQb3B1cChQYWdl
UG9wdXAqKSA9IDA7Ci0gICAgICAgIC8vIEZvciB0ZXN0aW5nLgotICAgICAgICB2aXJ0dWFsIHZv
aWQgc2V0UGFnZVBvcHVwRHJpdmVyKFBhZ2VQb3B1cERyaXZlciopID0gMDsKLSAgICAgICAgdmly
dHVhbCB2b2lkIHJlc2V0UGFnZVBvcHVwRHJpdmVyKCkgPSAwOworICAgIC8vIENyZWF0ZXMgYSBQ
YWdlUG9wdXAgb2JqZWN0LCBhbmQgc2hvd3MgaXQgYmVzaWRlIG9yaWdpbkJvdW5kc0luUm9vdFZp
ZXcuCisgICAgLy8gVGhlIHJldHVybiB2YWx1ZSBjYW4gYmUgMC4KKyAgICB2aXJ0dWFsIFBhZ2VQ
b3B1cCogb3BlblBhZ2VQb3B1cChQYWdlUG9wdXBDbGllbnQqLCBjb25zdCBJbnRSZWN0JiBvcmln
aW5Cb3VuZHNJblJvb3RWaWV3KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsb3NlUGFnZVBvcHVw
KFBhZ2VQb3B1cCopID0gMDsKKyAgICAvLyBGb3IgdGVzdGluZy4KKyAgICB2aXJ0dWFsIHZvaWQg
c2V0UGFnZVBvcHVwRHJpdmVyKFBhZ2VQb3B1cERyaXZlciopID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVzZXRQYWdlUG9wdXBEcml2ZXIoKSA9IDA7CiAjZW5kaWYKLSAgICAgICAgLy8gVGhpcyBm
dW5jdGlvbiBpcyBjYWxsZWQgd2hlbmV2ZXIgYSB0ZXh0IGZpZWxkIDxpbnB1dD4gaXMKLSAgICAg
ICAgLy8gY3JlYXRlZC4gVGhlIGltcGxlbWVudGF0aW9uIHNob3VsZCByZXR1cm4gdHJ1ZSBpZiBp
dCB3YW50cwotICAgICAgICAvLyB0byBkbyBzb21ldGhpbmcgaW4gYWRkVGV4dEZpZWxkRGVjb3Jh
dGlvbnNUbygpLgotICAgICAgICAvLyBUaGUgYXJndW1lbnQgaXMgYWx3YXlzIG5vbi0wLgotICAg
ICAgICB2aXJ0dWFsIGJvb2wgd2lsbEFkZFRleHRGaWVsZERlY29yYXRpb25zVG8oSFRNTElucHV0
RWxlbWVudCopIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIC8vIFRoZSBhcmd1bWVudCBpcyBh
bHdheXMgbm9uLTAuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBhZGRUZXh0RmllbGREZWNvcmF0aW9u
c1RvKEhUTUxJbnB1dEVsZW1lbnQqKSB7IH0KLQotICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdEFj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYT2JqZWN0Q2Fj
aGU6OkFYTm90aWZpY2F0aW9uKSB7IH0KLSAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KGNvbnN0IEludFJlY3QmKSB7IH0KLSAg
ICAgICAgdmlydHVhbCB2b2lkIHJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UoaW50
IC8qbmV3U3R5bGUqLykgeyB9Ci0KLSAgICAgICAgZW51bSBEaWFsb2dUeXBlIHsKLSAgICAgICAg
ICAgIEFsZXJ0RGlhbG9nID0gMCwKLSAgICAgICAgICAgIENvbmZpcm1EaWFsb2cgPSAxLAotICAg
ICAgICAgICAgUHJvbXB0RGlhbG9nID0gMiwKLSAgICAgICAgICAgIEhUTUxEaWFsb2cgPSAzCi0g
ICAgICAgIH07Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdW5Nb2RhbERpYWxvZ0R1cmlu
Z1BhZ2VEaXNtaXNzYWwoY29uc3QgRGlhbG9nVHlwZSYsIGNvbnN0IFN0cmluZyYgZGlhbG9nTWVz
c2FnZSwgRnJhbWVMb2FkZXI6OlBhZ2VEaXNtaXNzYWxUeXBlKSBjb25zdCB7IFVOVVNFRF9QQVJB
TShkaWFsb2dNZXNzYWdlKTsgcmV0dXJuIHRydWU7IH0KLQotICAgICAgICB2aXJ0dWFsIHZvaWQg
bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgPSAwOwotICAgICAgICAKLSAg
ICAgICAgdmlydHVhbCBib29sIGlzU1ZHSW1hZ2VDaHJvbWVDbGllbnQoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW5ldmVyIGEgdGV4
dCBmaWVsZCA8aW5wdXQ+IGlzCisgICAgLy8gY3JlYXRlZC4gVGhlIGltcGxlbWVudGF0aW9uIHNo
b3VsZCByZXR1cm4gdHJ1ZSBpZiBpdCB3YW50cworICAgIC8vIHRvIGRvIHNvbWV0aGluZyBpbiBh
ZGRUZXh0RmllbGREZWNvcmF0aW9uc1RvKCkuCisgICAgLy8gVGhlIGFyZ3VtZW50IGlzIGFsd2F5
cyBub24tMC4KKyAgICB2aXJ0dWFsIGJvb2wgd2lsbEFkZFRleHRGaWVsZERlY29yYXRpb25zVG8o
SFRNTElucHV0RWxlbWVudCopIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgLy8gVGhlIGFyZ3VtZW50
IGlzIGFsd2F5cyBub24tMC4KKyAgICB2aXJ0dWFsIHZvaWQgYWRkVGV4dEZpZWxkRGVjb3JhdGlv
bnNUbyhIVE1MSW5wdXRFbGVtZW50KikgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcG9zdEFjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYT2JqZWN0Q2FjaGU6
OkFYTm90aWZpY2F0aW9uKSB7IH0KKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U2Nyb2xs
ZXJUaHVtYklzVmlzaWJsZUluUmVjdChjb25zdCBJbnRSZWN0JikgeyB9CisgICAgdmlydHVhbCB2
b2lkIHJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UoaW50IC8qbmV3U3R5bGUqLykg
eyB9CisKKyAgICBlbnVtIERpYWxvZ1R5cGUgeworICAgICAgICBBbGVydERpYWxvZyA9IDAsCisg
ICAgICAgIENvbmZpcm1EaWFsb2cgPSAxLAorICAgICAgICBQcm9tcHREaWFsb2cgPSAyLAorICAg
ICAgICBIVE1MRGlhbG9nID0gMworICAgIH07CisgICAgdmlydHVhbCBib29sIHNob3VsZFJ1bk1v
ZGFsRGlhbG9nRHVyaW5nUGFnZURpc21pc3NhbChjb25zdCBEaWFsb2dUeXBlJiwgY29uc3QgU3Ry
aW5nJiBkaWFsb2dNZXNzYWdlLCBGcmFtZUxvYWRlcjo6UGFnZURpc21pc3NhbFR5cGUpIGNvbnN0
IHsgVU5VU0VEX1BBUkFNKGRpYWxvZ01lc3NhZ2UpOyByZXR1cm4gdHJ1ZTsgfQorCisgICAgdmly
dHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpID0gMDsKKyAg
ICAKKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdJbWFnZUNocm9tZUNsaWVudCgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQotICAgICAgICB2aXJ0dWFs
IGJvb2wgcmVxdWVzdFBvaW50ZXJMb2NrKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RQb2ludGVyVW5sb2NrKCkgeyB9Ci0gICAgICAgIHZpcnR1YWwgYm9v
bCBpc1BvaW50ZXJMb2NrZWQoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBy
ZXF1ZXN0UG9pbnRlckxvY2soKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0UG9pbnRlclVubG9jaygpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1BvaW50ZXJMb2Nr
ZWQoKSB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKLSAgICAgICAgdmlydHVhbCB2b2lkIGxv
Z0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBk
ZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiBzdGF0dXMpIHsgVU5VU0VEX1BBUkFNKG1lc3NhZ2Up
OyBVTlVTRURfUEFSQU0oZGVzY3JpcHRpb24pOyBVTlVTRURfUEFSQU0oc3RhdHVzKTsgfQorICAg
IHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgc3RhdHVzKSB7IFVOVVNF
RF9QQVJBTShtZXNzYWdlKTsgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsgVU5VU0VEX1BBUkFN
KHN0YXR1cyk7IH0KIAotICAgICAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBtaW5pbXVtV2luZG93U2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIEZsb2F0U2l6ZSgxMDAsIDEwMCk7IH07CisgICAgdmlydHVhbCBG
bG9hdFNpemUgbWluaW11bVdpbmRvd1NpemUoKSBjb25zdCB7IHJldHVybiBGbG9hdFNpemUoMTAw
LCAxMDApOyB9OwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5Q2hyb21lQ2xpZW50KCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eUNocm9tZUNs
aWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAg
IHZpcnR1YWwgfkNocm9tZUNsaWVudCgpIHsgfQotICAgIH07CisgICAgdmlydHVhbCBQYXNzUmVm
UHRyPEltYWdlPiBnZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2UoUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW46OkJ1dHRvblNpemUsIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpCdXR0b25TdGF0
ZSkgY29uc3QgeyByZXR1cm4gMDsgfQorCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+Q2hyb21l
Q2xpZW50KCkgeyB9Cit9OwogCiB9CiAjZW5kaWYgLy8gQ2hyb21lQ2xpZW50X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCmlu
ZGV4IDk3MmIyYmY5MDQyMjNiNWI3Nzc1ZjI0MjlkYzE2MjgzYTBmMTY4MTUuLjhkNDJmODE0NDZl
YzgyMzQwMmUwYmUxNTg3ZTNiZDNkNmE3MTljNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcApAQCAtMjYsMTIgKzI2LDE1
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVuZGVyU25hcHNob3R0ZWRQbHVn
SW4uaCIKIAorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgog
I2luY2x1ZGUgIkN1cnNvci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5j
bHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3JhZGllbnQuaCIKICNpbmNsdWRlICJIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgorI2luY2x1ZGUg
IlBhZ2UuaCIKICNpbmNsdWRlICJQYWludEluZm8uaCIKICNpbmNsdWRlICJQYXRoLmgiCiAKQEAg
LTQ0LDYgKzQ3LDcgQEAgc3RhdGljIGNvbnN0IGludCBzdGFydEJ1dHRvblBhZGRpbmcgPSAxMDsK
IFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbihIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50KiBlbGVtZW50KQogICAgIDogUmVuZGVyRW1iZWRkZWRPYmplY3QoZWxl
bWVudCkKICAgICAsIG1fc25hcHNob3RSZXNvdXJjZShSZW5kZXJJbWFnZVJlc291cmNlOjpjcmVh
dGUoKSkKKyAgICAsIG1fYnV0dG9uVHlwZShOb0J1dHRvbikKICAgICAsIG1faXNNb3VzZUluQnV0
dG9uUmVjdChmYWxzZSkKIHsKICAgICBtX3NuYXBzaG90UmVzb3VyY2UtPmluaXRpYWxpemUodGhp
cyk7CkBAIC0xMjIsMzMgKzEyNiwzOSBAQCB2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpw
YWludFJlcGxhY2VkU25hcHNob3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0CiAgICAgY29u
dGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBzdHlsZSgpLT5jb2xvclNwYWNlKCksIGFsaWdu
ZWRSZWN0LCBDb21wb3NpdGVTb3VyY2VPdmVyLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
bigpLCB1c2VMb3dRdWFsaXR5U2NhbGluZyk7CiB9CiAKLXN0YXRpYyBJbWFnZSogc3RhcnRCdXR0
b25JbWFnZSgpCitJbWFnZSogUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnN0YXJ0QnV0dG9uSW1h
Z2UoQnV0dG9uU2l6ZSBzaXplLCBCdXR0b25TdGF0ZSBzdGF0ZSkgY29uc3QKIHsKLSAgICBzdGF0
aWMgSW1hZ2UqIGJ1dHRvbkltYWdlID0gSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKCJzdGFy
dEJ1dHRvbiIpLmxlYWtSZWYoKTsKLSAgICByZXR1cm4gYnV0dG9uSW1hZ2U7Ci19Ci0KLXN0YXRp
YyBJbWFnZSogc3RhcnRCdXR0b25QcmVzc2VkSW1hZ2UoKQotewotICAgIHN0YXRpYyBJbWFnZSog
YnV0dG9uSW1hZ2UgPSBJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoInN0YXJ0QnV0dG9uUHJl
c3NlZCIpLmxlYWtSZWYoKTsKLSAgICByZXR1cm4gYnV0dG9uSW1hZ2U7CisgICAgc3RhdGljIElt
YWdlKiBidXR0b25JbWFnZXNbNF0gPSB7IDAsIDAsIDAsIDAgfTsKKyAgICBzdGF0aWMgYm9vbCBp
bml0aWFsaXplZEltYWdlc1s0XSA9IHsgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UgfTsKKwor
ICAgIGludCBhcnJheUluZGV4ID0gc2l6ZSA8PCAxIHwgc3RhdGU7CisgICAgaWYgKGJ1dHRvbklt
YWdlc1thcnJheUluZGV4XSkKKyAgICAgICAgcmV0dXJuIGJ1dHRvbkltYWdlc1thcnJheUluZGV4
XTsKKyAgICBpZiAoaW5pdGlhbGl6ZWRJbWFnZXNbYXJyYXlJbmRleF0pCisgICAgICAgIHJldHVy
biAwOworCisgICAgaWYgKGRvY3VtZW50KCktPnBhZ2UoKSkgeworICAgICAgICBidXR0b25JbWFn
ZXNbYXJyYXlJbmRleF0gPSBkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKS0+
Z2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlKHNpemUsIHN0YXRlKS5sZWFrUmVmKCk7Cisg
ICAgICAgIGluaXRpYWxpemVkSW1hZ2VzW2FycmF5SW5kZXhdID0gdHJ1ZTsKKyAgICB9CisgICAg
cmV0dXJuIGJ1dHRvbkltYWdlc1thcnJheUluZGV4XTsKIH0KIAogdm9pZCBSZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbjo6cGFpbnRCdXR0b24oUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91
dFBvaW50JiBwYWludE9mZnNldCkKIHsKLSAgICBMYXlvdXRSZWN0IGNvbnRlbnRSZWN0ID0gY29u
dGVudEJveFJlY3QoKTsKLSAgICBpZiAoY29udGVudFJlY3QuaXNFbXB0eSgpKQorICAgIGlmIChj
b250ZW50Qm94UmVjdCgpLmlzRW1wdHkoKSB8fCBtX2J1dHRvblR5cGUgPT0gTm9CdXR0b24pCiAg
ICAgICAgIHJldHVybjsKIAotICAgIEltYWdlKiBidXR0b25JbWFnZSA9IHN0YXJ0QnV0dG9uSW1h
Z2UoKTsKKyAgICBJbWFnZSogYnV0dG9uSW1hZ2UgPSBudWxscHRyOwogICAgIGlmIChwbHVnSW5J
bWFnZUVsZW1lbnQoKS0+YWN0aXZlKCkpIHsKICAgICAgICAgaWYgKG1faXNNb3VzZUluQnV0dG9u
UmVjdCkKLSAgICAgICAgICAgIGJ1dHRvbkltYWdlID0gc3RhcnRCdXR0b25QcmVzc2VkSW1hZ2Uo
KTsKLSAgICB9IGVsc2UgaWYgKCFwbHVnSW5JbWFnZUVsZW1lbnQoKS0+aG92ZXJlZCgpKQotICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICBidXR0b25JbWFnZSA9IHN0YXJ0QnV0dG9uSW1hZ2Uo
bV9idXR0b25UeXBlLCBCdXR0b25TdGF0ZUFjdGl2ZSk7CisgICAgfSBlbHNlIGlmIChwbHVnSW5J
bWFnZUVsZW1lbnQoKS0+aG92ZXJlZCgpKQorICAgICAgICBidXR0b25JbWFnZSA9IHN0YXJ0QnV0
dG9uSW1hZ2UobV9idXR0b25UeXBlLCBCdXR0b25TdGF0ZUhvdmVyZWQpOwogCi0gICAgTGF5b3V0
UG9pbnQgY29udGVudExvY2F0aW9uID0gcGFpbnRPZmZzZXQgKyBjb250ZW50UmVjdC5tYXhYTWF4
WUNvcm5lcigpIC0gYnV0dG9uSW1hZ2UtPnNpemUoKSAtIExheW91dFNpemUoc3RhcnRCdXR0b25Q
YWRkaW5nLCBzdGFydEJ1dHRvblBhZGRpbmcpOwotICAgIHBhaW50SW5mby5jb250ZXh0LT5kcmF3
SW1hZ2UoYnV0dG9uSW1hZ2UsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHJvdW5kZWRJbnRQb2ludChj
b250ZW50TG9jYXRpb24pLCBidXR0b25JbWFnZS0+cmVjdCgpKTsKKyAgICBpZiAoIWJ1dHRvbklt
YWdlKQorICAgICAgICByZXR1cm47CisgICAgcGFpbnRJbmZvLmNvbnRleHQtPmRyYXdJbWFnZShi
dXR0b25JbWFnZSwgQ29sb3JTcGFjZURldmljZVJHQiwgcm91bmRlZEludFBvaW50KHBhaW50T2Zm
c2V0ICsgbV9idXR0b25SZWN0LmxvY2F0aW9uKCkpLCBidXR0b25JbWFnZS0+cmVjdCgpKTsKIH0K
IAogdm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6cmVwYWludEJ1dHRvbigpCkBAIC0xOTcs
MTkgKzIwNyw0NSBAQCB2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpoYW5kbGVFdmVudChF
dmVudCogZXZlbnQpCiAgICAgfQogfQogCitMYXlvdXRSZWN0IFJlbmRlclNuYXBzaG90dGVkUGx1
Z0luOjp0cnlUb0ZpdFN0YXJ0QnV0dG9uKEJ1dHRvblNpemUgc2l6ZSwgY29uc3QgTGF5b3V0UmVj
dCYgY29udGVudEJveCkgY29uc3QKK3sKKyAgICBJbWFnZSogYnV0dG9uSW1hZ2UgPSBzdGFydEJ1
dHRvbkltYWdlKHNpemUsIEJ1dHRvblN0YXRlSG92ZXJlZCk7CisgICAgaWYgKCFidXR0b25JbWFn
ZSkKKyAgICAgICAgcmV0dXJuIExheW91dFJlY3QoKTsKKworICAgIExheW91dFNpemUgYnV0dG9u
U2l6ZSA9IGJ1dHRvbkltYWdlLT5zaXplKCk7CisgICAgTGF5b3V0UmVjdCBjYW5kaWRhdGVSZWN0
KGNvbnRlbnRCb3gubWF4WE1pbllDb3JuZXIoKSArIExheW91dFNpemUoLXN0YXJ0QnV0dG9uUGFk
ZGluZywgc3RhcnRCdXR0b25QYWRkaW5nKSArIExheW91dFNpemUoLWJ1dHRvblNpemUud2lkdGgo
KSwgMCksIGJ1dHRvblNpemUpOworICAgIC8vIFRoZSBtaW5pbXVtIGFsbG93ZWQgY29udGVudCBi
b3ggc2l6ZSBpcyB0aGUgYnV0dG9uIGltYWdlIHBsYWNlZCBpbiB0aGUgY2VudGVyIG9mIHRoZSBi
b3gsIHN1cnJvdW5kZWQgYnkgc3RhcnRCdXR0b25QYWRkaW5nLgorICAgIGlmIChjYW5kaWRhdGVS
ZWN0LngoKSA8IHN0YXJ0QnV0dG9uUGFkZGluZyB8fCBjYW5kaWRhdGVSZWN0Lm1heFkoKSA+IGNv
bnRlbnRCb3guaGVpZ2h0KCkgLSBzdGFydEJ1dHRvblBhZGRpbmcpCisgICAgICAgIHJldHVybiBM
YXlvdXRSZWN0KCk7CisgICAgcmV0dXJuIGNhbmRpZGF0ZVJlY3Q7Cit9CisKIHZvaWQgUmVuZGVy
U25hcHNob3R0ZWRQbHVnSW46OmxheW91dCgpCiB7CiAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3Q6
OmxheW91dCgpOworCisgICAgTGF5b3V0UmVjdCByZWN0ID0gY29udGVudEJveFJlY3QoKTsKKyAg
ICBpbnQgd2lkdGggPSByZWN0LndpZHRoKCk7CisgICAgaW50IGhlaWdodCA9IHJlY3QuaGVpZ2h0
KCk7CiAgICAgaWYgKHBsdWdJbkltYWdlRWxlbWVudCgpLT5kaXNwbGF5U3RhdGUoKSA8IEhUTUxQ
bHVnSW5FbGVtZW50OjpQbGF5aW5nKSB7Ci0gICAgICAgIExheW91dFJlY3QgcmVjdCA9IGNvbnRl
bnRCb3hSZWN0KCk7Ci0gICAgICAgIGludCB3aWR0aCA9IHJlY3Qud2lkdGgoKTsKLSAgICAgICAg
aW50IGhlaWdodCA9IHJlY3QuaGVpZ2h0KCk7CiAgICAgICAgIGlmICghd2lkdGggfHwgIWhlaWdo
dCB8fCAod2lkdGggPD0gYXV0b1N0YXJ0UGx1Z0luU2l6ZVRocmVzaG9sZFdpZHRoICYmIGhlaWdo
dCA8PSBhdXRvU3RhcnRQbHVnSW5TaXplVGhyZXNob2xkSGVpZ2h0KSkKICAgICAgICAgICAgIHBs
dWdJbkltYWdlRWxlbWVudCgpLT5zZXREaXNwbGF5U3RhdGUoSFRNTFBsdWdJbkVsZW1lbnQ6OlBs
YXlpbmcpOwogICAgIH0KIAotICAgIExheW91dFNpemUgYnV0dG9uU2l6ZSA9IHN0YXJ0QnV0dG9u
SW1hZ2UoKS0+c2l6ZSgpOwotICAgIG1fYnV0dG9uUmVjdCA9IExheW91dFJlY3QoY29udGVudEJv
eFJlY3QoKS5tYXhYTWF4WUNvcm5lcigpIC0gTGF5b3V0U2l6ZShzdGFydEJ1dHRvblBhZGRpbmcs
IHN0YXJ0QnV0dG9uUGFkZGluZykgLSBidXR0b25TaXplLCBidXR0b25TaXplKTsKKyAgICBtX2J1
dHRvblJlY3QgPSB0cnlUb0ZpdFN0YXJ0QnV0dG9uKEJ1dHRvblNpemVMYXJnZSwgcmVjdCk7Cisg
ICAgaWYgKCFtX2J1dHRvblJlY3QuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fYnV0dG9uVHlwZSA9
IEJ1dHRvblNpemVMYXJnZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fYnV0dG9u
UmVjdCA9IHRyeVRvRml0U3RhcnRCdXR0b24oQnV0dG9uU2l6ZVNtYWxsLCByZWN0KTsKKyAgICBp
ZiAoIW1fYnV0dG9uUmVjdC5pc0VtcHR5KCkpIHsKKyAgICAgICAgbV9idXR0b25UeXBlID0gQnV0
dG9uU2l6ZVNtYWxsOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9idXR0b25UeXBl
ID0gTm9CdXR0b247CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmgKaW5kZXggMmExZjg5
NmM3NDRjMTczYTgzNzhmZDFmNDdlMTE0MmU3NjlmZmRmNy4uMzNjMzk4NGNjODYyNGRkYTMwOTI4
MTJmZTM0Yzk4NTU4NjVlYTVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmgKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJS
ZW5kZXJFbWJlZGRlZE9iamVjdC5oIgogCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2VSZXNvdXJjZS5o
IgotI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NDAsNiArMzksMTggQEAgcHVibGljOgogICAgIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luKEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bigpOwogCisgICAgZW51bSBCdXR0b25TaXplIHsKKyAgICAgICAgTm9CdXR0b24sCisgICAgICAg
IEJ1dHRvblNpemVTbWFsbCwKKyAgICAgICAgQnV0dG9uU2l6ZUxhcmdlLAorICAgIH07CisKKyAg
ICBlbnVtIEJ1dHRvblN0YXRlIHsKKyAgICAgICAgQnV0dG9uU3RhdGVOb3JtYWwsCisgICAgICAg
IEJ1dHRvblN0YXRlSG92ZXJlZCwKKyAgICAgICAgQnV0dG9uU3RhdGVBY3RpdmUsCisgICAgfTsK
KwogICAgIHZvaWQgdXBkYXRlU25hcHNob3QoUGFzc1JlZlB0cjxJbWFnZT4pOwogCiAgICAgdm9p
ZCBoYW5kbGVFdmVudChFdmVudCopOwpAQCAtNTcsOSArNjgsMTMgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHBhaW50QnV0dG9uKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAgICAgdm9p
ZCByZXBhaW50QnV0dG9uKCk7CiAKKyAgICBMYXlvdXRSZWN0IHRyeVRvRml0U3RhcnRCdXR0b24o
QnV0dG9uU2l6ZSwgY29uc3QgTGF5b3V0UmVjdCYgY29udGVudEJveCkgY29uc3Q7CisgICAgSW1h
Z2UqIHN0YXJ0QnV0dG9uSW1hZ2UoQnV0dG9uU2l6ZSwgQnV0dG9uU3RhdGUpIGNvbnN0OworCiAg
ICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURFOwogCiAgICAgT3duUHRyPFJlbmRlcklt
YWdlUmVzb3VyY2U+IG1fc25hcHNob3RSZXNvdXJjZTsKKyAgICBCdXR0b25TaXplIG1fYnV0dG9u
VHlwZTsKICAgICBMYXlvdXRSZWN0IG1fYnV0dG9uUmVjdDsKICAgICBib29sIG1faXNNb3VzZUlu
QnV0dG9uUmVjdDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
Y2cvV0tJbWFnZUNHLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9jZy9XS0ltYWdl
Q0cuY3BwCmluZGV4IDkzODA0OWI3MWI5ZTA3MjgxNDA3OTIyYzc0MzEyZTI3YTAzZTkwMmQuLjEw
NzFlZjU5MmI4NjY1ZmZiODA2MmZkYmQ4ZjgyZTAyOTllMDdlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9jZy9XS0ltYWdlQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9jZy9XS0ltYWdlQ0cuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiV0tTaGFyZWRBUElDYXN0LmgiCiAj
aW5jbHVkZSAiV2ViSW1hZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OwpAQCAtNTQsNiArNTUsOCBAQCBXS0ltYWdlUmVmIFdLSW1hZ2VDcmVhdGVGcm9tQ0dJbWFn
ZShDR0ltYWdlUmVmIGltYWdlUmVmLCBXS0ltYWdlT3B0aW9ucyBvcHRpb25zKQogICAgICAgICBy
ZXR1cm4gMDsKIAogICAgIE93blB0cjxHcmFwaGljc0NvbnRleHQ+IGdyYXBoaWNzQ29udGV4dCA9
IHdlYkltYWdlLT5iaXRtYXAoKS0+Y3JlYXRlR3JhcGhpY3NDb250ZXh0KCk7Ci0gICAgQ0dDb250
ZXh0RHJhd0ltYWdlKGdyYXBoaWNzQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCksIENHUmVjdE1h
a2UoMCwgMCwgaW1hZ2VTaXplLndpZHRoKCksIGltYWdlU2l6ZS5oZWlnaHQoKSksIGltYWdlUmVm
KTsKKyAgICBGbG9hdFJlY3QgcmVjdChGbG9hdFBvaW50KDAsIDApLCBpbWFnZVNpemUpOworICAg
IGdyYXBoaWNzQ29udGV4dC0+Y2xlYXJSZWN0KHJlY3QpOworICAgIGdyYXBoaWNzQ29udGV4dC0+
ZHJhd05hdGl2ZUltYWdlKGltYWdlUmVmLCBpbWFnZVNpemUsIFdlYkNvcmU6OkNvbG9yU3BhY2VE
ZXZpY2VSR0IsIHJlY3QsIHJlY3QpOwogICAgIHJldHVybiB0b0FQSSh3ZWJJbWFnZS5yZWxlYXNl
KCkubGVha1JlZigpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCmluZGV4IGMyYjM3ODk0
YTZmMTYwYTU3ZDliMjI3NDEwNDlhMmRjNDc1MTI1NjAuLmE3ZmJhNTE5ZTEyMTNlZjc5MjFlMjA4
YjYxMTQyYTVjZjQzOGQwOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaApAQCAtMjI1LDcg
KzIyNSwyMCBAQCBlbnVtIHsKICAgICBXS0J1bmRsZVBhZ2VVSUVsZW1lbnRIaWRkZW4KIH07CiB0
eXBlZGVmIHVpbnQzMl90IFdLQnVuZGxlUGFnZVVJRWxlbWVudFZpc2liaWxpdHk7Ci0gICAgCisK
K2VudW0geworICAgIFdLQnVuZGxlUGFnZUJ1dHRvblNpemVTbWFsbCwKKyAgICBXS0J1bmRsZVBh
Z2VCdXR0b25TaXplTGFyZ2UsCit9OwordHlwZWRlZiB1aW50MzJfdCBXS0J1bmRsZVBhZ2VCdXR0
b25TaXplOworCitlbnVtIHsKKyAgICBXS0J1bmRsZVBhZ2VCdXR0b25TdGF0ZU5vcm1hbCwKKyAg
ICBXS0J1bmRsZVBhZ2VCdXR0b25TdGF0ZUhvdmVyZWQsCisgICAgV0tCdW5kbGVQYWdlQnV0dG9u
U3RhdGVBY3RpdmUsCit9OwordHlwZWRlZiB1aW50MzJfdCBXS0J1bmRsZVBhZ2VCdXR0b25TdGF0
ZTsKKwogLy8gVUkgQ2xpZW50CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VXaWxsQWRkTWVz
c2FnZVRvQ29uc29sZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYg
bWVzc2FnZSwgdWludDMyX3QgbGluZU51bWJlciwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0
eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VXaWxsU2V0U3RhdHVzYmFyVGV4dENhbGxiYWNrKShX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgc3RhdHVzYmFyVGV4dCwgY29uc3Qgdm9p
ZCAqY2xpZW50SW5mbyk7CkBAIC0yNDIsNiArMjU1LDcgQEAgdHlwZWRlZiBXS0J1bmRsZVBhZ2VV
SUVsZW1lbnRWaXNpYmlsaXR5ICgqV0tCdW5kbGVQYWdlTWVudUJhcklzVmlzaWJsZUNhbGxiYWNr
KSgKIHR5cGVkZWYgV0tCdW5kbGVQYWdlVUlFbGVtZW50VmlzaWJpbGl0eSAoKldLQnVuZGxlUGFn
ZVRvb2xiYXJzQXJlVmlzaWJsZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgY29uc3Qg
dm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VSZWFjaGVkQXBw
Q2FjaGVPcmlnaW5RdW90YUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTZWN1cml0
eU9yaWdpblJlZiBvcmlnaW4sIGludDY0X3QgdG90YWxCeXRlc05lZWRlZCwgY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbyk7CiB0eXBlZGVmIHVpbnQ2NF90ICgqV0tCdW5kbGVQYWdlRXhjZWVkZWREYXRh
YmFzZVF1b3RhQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2lu
UmVmIG9yaWdpbiwgV0tTdHJpbmdSZWYgZGF0YWJhc2VOYW1lLCBXS1N0cmluZ1JlZiBkYXRhYmFz
ZURpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGFCeXRlcywgdWludDY0X3QgY3VycmVu
dE9yaWdpblVzYWdlQnl0ZXMsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlQnl0ZXMsIHVp
bnQ2NF90IGV4cGVjdGVkVXNhZ2VCeXRlcywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0eXBl
ZGVmIFdLSW1hZ2VSZWYgKCpXS0J1bmRsZVBhZ2VHZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1h
Z2VDYWxsYmFjaykoV0tCdW5kbGVQYWdlQnV0dG9uU2l6ZSBzaXplLCBXS0J1bmRsZVBhZ2VCdXR0
b25TdGF0ZSBzdGF0ZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiAKIHN0cnVjdCBXS0J1bmRs
ZVBhZ2VVSUNsaWVudCB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwpAQCAtMjY2LDcgKzI4MCw3
IEBAIHN0cnVjdCBXS0J1bmRsZVBhZ2VVSUNsaWVudCB7CiAKICAgICAvLyBWZXJzaW9uIDIuCiAg
ICAgV0tCdW5kbGVQYWdlRXhjZWVkZWREYXRhYmFzZVF1b3RhQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkaWRFeGNlZWREYXRhYmFzZVF1b3RhOwotCisgICAgV0tCdW5kbGVQYWdl
R2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICBn
ZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2U7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tCdW5k
bGVQYWdlVUlDbGllbnQgV0tCdW5kbGVQYWdlVUlDbGllbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAKaW5kZXggNjJhYTJiMzE4OTJjMDNjYTA2ZWQ3MGI2
NGI3MzdlODEwY2IyYmQ1NC4uZWVlYWZjNzFmYWZiOTc1MDFiNGQ4OTE0NjIyNWZlYjVmYTlhYjU5
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAKQEAgLTE2
Myw0ICsxNjMsMzkgQEAgdWludDY0X3QgSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQ6OmRpZEV4
Y2VlZERhdGFiYXNlUXVvdGEoV2ViUGFnZSogcGFnZSwgV2ViU2UKICAgICByZXR1cm4gbV9jbGll
bnQuZGlkRXhjZWVkRGF0YWJhc2VRdW90YSh0b0FQSShwYWdlKSwgdG9BUEkob3JpZ2luKSwgdG9B
UEkoZGF0YWJhc2VOYW1lLmltcGwoKSksIHRvQVBJKGRhdGFiYXNlRGlzcGxheU5hbWUuaW1wbCgp
KSwgY3VycmVudFF1b3RhQnl0ZXMsIGN1cnJlbnRPcmlnaW5Vc2FnZUJ5dGVzLCBjdXJyZW50RGF0
YWJhc2VVc2FnZUJ5dGVzLCBleHBlY3RlZFVzYWdlQnl0ZXMsIG1fY2xpZW50LmNsaWVudEluZm8p
OwogfQogCitQYXNzUmVmUHRyPFdlYkltYWdlPiBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6
Z2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlKFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpC
dXR0b25TaXplIHNpemUsIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpCdXR0b25TdGF0ZSBzdGF0
ZSkgY29uc3QKK3sKKyAgICBpZiAoIW1fY2xpZW50LmdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25J
bWFnZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBXS0J1bmRsZVBhZ2VCdXR0b25TaXplIHdr
U2l6ZTsKKyAgICBzd2l0Y2ggKHNpemUpIHsKKyAgICBjYXNlIFJlbmRlclNuYXBzaG90dGVkUGx1
Z0luOjpCdXR0b25TaXplU21hbGw6CisgICAgICAgIHdrU2l6ZSA9IFdLQnVuZGxlUGFnZUJ1dHRv
blNpemVTbWFsbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSZW5kZXJTbmFwc2hvdHRlZFBs
dWdJbjo6QnV0dG9uU2l6ZUxhcmdlOgorICAgICAgICB3a1NpemUgPSBXS0J1bmRsZVBhZ2VCdXR0
b25TaXplTGFyZ2U7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVy
biAwOworICAgIH0KKworICAgIFdLQnVuZGxlUGFnZUJ1dHRvblN0YXRlIHdrU3RhdGU7CisgICAg
c3dpdGNoIChzdGF0ZSkgeworICAgIGNhc2UgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OkJ1dHRv
blN0YXRlTm9ybWFsOgorICAgICAgICB3a1N0YXRlID0gV0tCdW5kbGVQYWdlQnV0dG9uU3RhdGVO
b3JtYWw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46
OkJ1dHRvblN0YXRlSG92ZXJlZDoKKyAgICAgICAgd2tTdGF0ZSA9IFdLQnVuZGxlUGFnZUJ1dHRv
blN0YXRlSG92ZXJlZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbjo6QnV0dG9uU3RhdGVBY3RpdmU6CisgICAgICAgIHdrU3RhdGUgPSBXS0J1bmRsZVBh
Z2VCdXR0b25TdGF0ZUFjdGl2ZTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJuIGFkb3B0UmVmKHRvSW1wbChtX2NsaWVu
dC5nZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2Uod2tTaXplLCB3a1N0YXRlLCBtX2NsaWVu
dC5jbGllbnRJbmZvKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaAppbmRleCAxM2M4OWM2N2RkMmJjZTE2YTc4NGQ4
NjFkNTkwYzMzOGU3OTNhOTQ0Li41NDEwYTIxN2M3MGJhMDQ2OWMwZDc1ZDExZWRhNWVjMmNlOWY0
MTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oCkBAIC0yOSwx
MiArMjksMTQgQEAKICNpbmNsdWRlICJBUElDbGllbnQuaCIKICNpbmNsdWRlICJXS0J1bmRsZVBh
Z2UuaCIKICNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYkltYWdlLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oPgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICBjbGFzcyBHcmFwaGljc0NvbnRl
eHQ7Ci0gICAgY2xhc3MgSGl0VGVzdFJlc3VsdDsKLSAgICBjbGFzcyBJbnRSZWN0OworY2xhc3Mg
R3JhcGhpY3NDb250ZXh0OworY2xhc3MgSGl0VGVzdFJlc3VsdDsKK2NsYXNzIEludFJlY3Q7CiB9
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjgsNiArNzAsOCBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGRpZFJlYWNoQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYlBhZ2UqLCBXZWJTZWN1
cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxCeXRlc05lZWRlZCk7CiAgICAgdWludDY0X3QgZGlk
RXhjZWVkRGF0YWJhc2VRdW90YShXZWJQYWdlKiwgV2ViU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBT
dHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpc3BsYXlOYW1lLCB1
aW50NjRfdCBjdXJyZW50UXVvdGFCeXRlcywgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlQnl0
ZXMsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlQnl0ZXMsIHVpbnQ2NF90IGV4cGVjdGVk
VXNhZ2VCeXRlcyk7CisKKyAgICBQYXNzUmVmUHRyPFdlYkltYWdlPiBnZW5lcmF0ZVBsdWdJblN0
YXJ0QnV0dG9uSW1hZ2UoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OkJ1dHRvblNp
emUsIFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpCdXR0b25TdGF0ZSkgY29uc3Q7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRl
eCAwOTdhYmU4Y2FhZDUxYzUzM2FlZGI0YzkzMjgyNTAyNTU1MWM5ODEwLi42ZmZhYzg3OWU3OTg5
OWM4Y2Y3YWNhNjhhZmEyOTVkN2EyYmMwZWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBA
IC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFt
ZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgiCisjaW5j
bHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRlICJXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzLmgiCiAj
aW5jbHVkZSAiV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaCIKICNpbmNsdWRlICJXZWJQYWdl
LmgiCkBAIC04MTgsNCArODE5LDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmxvZ0RpYWdub3N0
aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJgogICAgIG1fcGFn
ZS0+aW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNN
ZXNzYWdlKG1fcGFnZSwgbWVzc2FnZSwgZGVzY3JpcHRpb24sIHN1Y2Nlc3MpOwogfQogCitQYXNz
UmVmUHRyPEltYWdlPiBXZWJDaHJvbWVDbGllbnQ6OmdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25J
bWFnZShSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6QnV0dG9uU2l6ZSBzaXplLCBSZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbjo6QnV0dG9uU3RhdGUgc3RhdGUpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
cGFnZS0+aW5qZWN0ZWRCdW5kbGVVSUNsaWVudCgpLmdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25J
bWFnZShzaXplLCBzdGF0ZSktPmJpdG1hcCgpLT5jcmVhdGVJbWFnZSgpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDFlNjJmN2FiZDRjYzJiYjg1
MjllNTBmNzcxMGY3MmQ2MDhlMDFjNjMuLjg3MzhlOWM3ZWM3YWU0Mjk2MjBkMTYyZjY4YjE5ODVi
YzZmNzI0ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjgsNiArMjgsNyBAQAogI2RlZmlu
ZSBXZWJDaHJvbWVDbGllbnRfaAogCiAjaW5jbHVkZSA8V2ViQ29yZS9DaHJvbWVDbGllbnQuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWV3cG9ydEFy
Z3VtZW50cy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0yMjUsNiAr
MjI2LDggQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2Fn
ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0
IFN0cmluZyYgc3VjY2VzcykgT1ZFUlJJREU7CiAKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6SW1hZ2U+IGdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZShXZWJDb3JlOjpSZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbjo6QnV0dG9uU2l6ZSwgV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0
ZWRQbHVnSW46OkJ1dHRvblN0YXRlKSBjb25zdCBPVkVSUklERTsKKwogICAgIFN0cmluZyBtX2Nh
Y2hlZFRvb2xUaXA7CiAgICAgbXV0YWJsZSBSZWZQdHI8V2ViRnJhbWU+IG1fY2FjaGVkRnJhbWVT
ZXRMYXJnZXN0RnJhbWU7CiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzSG9y
aXpvbnRhbFNjcm9sbGJhcjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCBlMzYyMGU3ODNlYjQ3ZTk4YmU0YzA5Y2RmZTVjNDU1MmNhYTI0MDE4Li4z
YzU5ZWJkNTVmOTA0OGM1YWQ5MTk0NzRiMWVlYzhkZjQwMDYzMjM5IDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTIt
MTItMDUgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIE1vdmUg
YnV0dG9uIGltYWdlIHRvIGluamVjdGVkIGJ1bmRsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0MTA3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8x
MjgxMzg0Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNw
cDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2Up
OiBVcGRhdGUgdGhlIGJ1bmRsZSBwYWdlIFVJIGNsaWVudC4KKwogMjAxMi0xMi0wNCAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIGRpc3BsYXktcHJvZmlsZXItb3V0
cHV0IHNob3VsZCBiZSBhYmxlIHRvIHNob3cgc291cmNlIGNvZGUKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
LmNwcAppbmRleCAwMDgxOTc1ZTBhMWZjM2E1NDA2ZjczZGZhMGIyMWNjOTA5YzY3YjVkLi42NWMw
YWRjZDdkYjA1YTdhYTc4MmZkM2RhZDYzZGM4YTUyMmVjYTI4IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2UuY3BwCkBAIC0zNzYsNiArMzc2LDcgQEAgSW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1
bmRsZVBhZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiAgICAgICAgIDAsIC8qdG9vbGJhcnNBcmVW
aXNpYmxlKi8KICAgICAgICAgZGlkUmVhY2hBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEsCiAg
ICAgICAgIGRpZEV4Y2VlZERhdGFiYXNlUXVvdGEsCisgICAgICAgIDAsIC8qZ2VuZXJhdGVQbHVn
SW5TdGFydEJ1dHRvbkltYWdlKi8KICAgICB9OwogICAgIFdLQnVuZGxlUGFnZVNldFVJQ2xpZW50
KG1fcGFnZSwgJnVpQ2xpZW50KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177766</attachid>
            <date>2012-12-05 09:02:35 -0800</date>
            <delta_ts>2012-12-07 04:15:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104107-20121205090000.patch</filename>
            <type>text/plain</type>
            <size>77385</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTg1YzM2NzRhMWEyZTUw
MTY0MGQxYTAxZTgyYzFlMTkxYmFhOTk2ZS4uNDg4ZjA5MTc5ODdmZTQxNzBhMDRkZmJiODI0ZmJj
NjI4ZjM3YjQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTEyLTA1ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBNb3ZlIGJ1dHRvbiBpbWFn
ZSB0byBpbmplY3RlZCBidW5kbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNDEwNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTI4MTM4NDI+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIFJl
bmRlclNuYXBzaG90dGVkUGx1Z0luIHRvIHJldHJpZXZlIHRoZSBzdGFydCBidXR0b24gaW1hZ2Ug
ZnJvbSB0aGUgQ2hyb21lQ2xpZW50LiBFeHBhbmQgdGhlCisgICAgICAgIGtpbmRzIG9mIGltYWdl
cyBhdmFpbGFibGUgZm9yIHVzZSBhcyB0aGUgYnV0dG9uLiBUcnkgdG8gZmluZCB0aGUgYmVzdCBz
aXplZCBidXR0b24gdG8gdXNlIGZvciB0aGUgcGx1Zy1pbiwKKyAgICAgICAgb3RoZXJ3aXNlIHVz
ZSBubyBpbWFnZSBhdCBhbGwuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4uY3BwOiBLZWVwIHRyYWNrIG9mIHRoZSBkZXNpcmVkIGJ1dHRvbiB0byB1c2UgZm9y
IHRoaXMgcmVuZGVyZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bjo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4pOiBTdGFydCBvZmYgd2l0aCBubyBidXR0b24uIER1
cmluZyBsYXlvdXQgd2Ugd2lsbAorICAgICAgICBkZXRlcm1pbmUgd2hpY2ggYnV0dG9uIHRvIHVz
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpzdGFydEJ1dHRv
bkltYWdlKTogTWFpbnRhaW4gYSBjYWNoZSBvZiB0aGUgaW1hZ2VzIGZvciByZXVzZS4gSW5kZXgg
aW50byB0aGUKKyAgICAgICAgYXJyYXkgdXNpbmcgdGhlIGVudW1zLiBJZiB0aGUgaW1hZ2UgaGFz
IGJlZW4gbG9hZGVkLCBvciBhbiBhdHRlbXB0IHdhcyBtYWRlLCB0aGVuIHJldHVybiB0aGUgcmVz
dWx0LiBPdGhlcndpc2UKKyAgICAgICAgYXNrIHRoZSBjaHJvbWUgY2xpZW50IHRvIGdlbmVyYXRl
IHRoZSBpbWFnZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpw
YWludEJ1dHRvbik6IFJlZmFjdG9yLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0
ZWRQbHVnSW46OnRyeVRvRml0U3RhcnRCdXR0b24pOiBDb21wYXJlIHRoZSBidXR0b24gc2l6ZSB3
aXRoIHRoZSBwcm92aWRlZCBjb250ZW50CisgICAgICAgIGJveC4gUmV0dXJuIGEgTGF5b3V0UmVj
dCByZXByZXNlbnRpbmcgdGhlIGJ1dHRvbidzIHBsYWNlbWVudC4gSWYgaXQgZG9lc24ndCBmaXQs
IHJldHVybiBhbiBlbXB0eSByZWN0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0
ZWRQbHVnSW46OmxheW91dCk6IFRyeSB0byBmaXQgdGhlIGxhcmdlIGJ1dHRvbiwgdGhlbiB0aGUg
c21hbGwuIElmIGJvdGggZmFpbCwgZG9uJ3QKKyAgICAgICAgZHJhdyBhIGJ1dHRvbi4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaDogQWRkIHR3byBlbnVtcywg
b25lIGZvciB0aGUgc2l6ZSwgYW5kIHRoZSBvdGhlciB0aGUgc3RhdGUsIGZvciB0aGUKKyAgICAg
ICAgYnV0dG9uLgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogQWRkZWQgZ2VuZXJh
dGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlLiBBbHNvLCBmaXggV2ViS2l0IHN0eWxlIGVycm9ycywg
aW5jbHVkaW5nIGluZGVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50Ojpn
ZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2UpOgorCisgICAgICAgICogV2ViQ29yZS5leHAu
aW46IEV4cG9zZSBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSgpIGZvciBXS0ltYWdl
Q0cuY3BwLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogUmVt
b3ZlIHN0YXJ0IGJ1dHRvbiBhc3NldHMuCisgICAgICAgICogUmVzb3VyY2VzL3N0YXJ0QnV0dG9u
LnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBSZXNvdXJjZXMvc3RhcnRCdXR0b25AMngucG5nOiBS
ZW1vdmVkLgorICAgICAgICAqIFJlc291cmNlcy9zdGFydEJ1dHRvblByZXNzZWQucG5nOiBSZW1v
dmVkLgorICAgICAgICAqIFJlc291cmNlcy9zdGFydEJ1dHRvblByZXNzZWRAMngucG5nOiBSZW1v
dmVkLgorCiAyMDEyLTEyLTA1ICBOb2VsIEdvcmRvbiAgPG5vZWwuZ29yZG9uQGdtYWlsLmNvbT4K
IAogICAgICAgICBFTkFCTEUoSU1BR0VfREVDT0RFUl9ET1dOX1NBTVBMSU5HKTogRG9uJ3Qgc3dp
enpsZSBkZWNvZGUgZG93biBzYW1wbGVkIGltYWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGJhMDdiZmYyMmQ2
ZjY3M2RjYTJlYzk0Mzc1MTI0N2QzZmMxMjJlMmUuLjBmMmI5YjIxNGE0ZWNhNzc0MTgyMWI1Zjgw
YTM0Mjg2NzQxZjRkMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMi0xMi0wNSAg
Sm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTW92ZSBidXR0b24g
aW1hZ2UgdG8gaW5qZWN0ZWQgYnVuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDQxMDcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyODEzODQy
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbHkg
b24gdGhlIGluamVjdGVkIGJ1bmRsZSB0byBjcmVhdGUgdGhlIGltYWdlIHVzZWQgZm9yIHRoZSBi
dXR0b24gaW4gc25hcHNob3R0ZWQgcGx1Zy1pbnMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6Z2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlKTogRm9yd2FyZCB0aGUg
Y2FsbCB0byB0aGUgaW5qZWN0ZWQgYnVuZGxlIFVJIGNsaWVudC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOiBJbXBsZW1lbnQgZ2VuZXJhdGVQ
bHVnSW5TdGFydEJ1dHRvbkltYWdlKCkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
SW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQ6OmdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25JbWFn
ZSk6IENvbnZlcnQgdGhlIFdlYkNvcmUgZW51bXMgdG8gV0sgQVBJCisgICAgICAgIGVudW1zLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlD
bGllbnQuaDoKKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlLmg6IEV4cG9zZSBhIG5ldyBjYWxsYmFjayB0byBnZW5lcmF0ZSB0aGUgYnV0dG9u
IGltYWdlLgorCisgICAgICAgICogU2hhcmVkL0FQSS9jL2NnL1dLSW1hZ2VDRy5jcHA6CisgICAg
ICAgIChXS0ltYWdlQ3JlYXRlRnJvbUNHSW1hZ2UpOiBSZWZhY3RvciB0byB1c2UgR3JhcGhpY3ND
b250ZXh0IG1ldGhvZHMgc28gdGhhdCB0aGUgaW1hZ2UgaXMgZmxpcHBlZCBhcHByb3ByaWF0ZWx5
LgorCiAyMDEyLTEyLTA1ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRl
bC5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXSBFV0syVW5pdFRlc3RCYXNlLmV3a19mYXZpY29u
X2RhdGFiYXNlX2FzeW5jX2ljb25fZ2V0IGlzIGNyYXNoaW5nIHdpdGggbmV3IEV3a19Db250ZXh0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvc3RhcnRCdXR0b24ucG5nIGIv
U291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3N0YXJ0QnV0dG9uLnBuZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMjc0OGMxOGY1ZGFjYjE1Njk1N2RkNGNkZjM5MjRlYjM1MjQxMGEyMC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAyMDE3CnpjbVY8NzJPanV8UCk8aDszS3xM
azAwMGUxTkpMVHEwMDFaZTAwMVptMV5AczZqUStUNzAwME41TmtsPFpTUDhZNgp6JnVkZyE3UlQj
VkR3XjFGajVWWW9sUUF7XmgtaS1zamYjdEcwKXE9VExSMylQSUtyI347ekJwd3E4cVcoX3k9U3UK
ekNge3NyKGpjXyFNaEw/JnFQLVlyRihEP31sZ01QK2tQSz1QbFRgS2heWVhzTWViMWAySGElQmZv
JTdFOXA2QHlECnorI20xZThDNUVrVC1YakFJSXdCa3dyemI0NEdxMGY2bV9WLUNHN3ZEYjtXb3Mm
ZEtIRjwhXyVvZC1uQ0NNfn4qaAp6Nz9CZWNGelZ+O0pLZmFPXm0kYHJWXkxSNXJ1WWdTTExGWik8
X1A9SC1HYCpyIWVpckZUM1g1fSQoYzhBLVZFSG8KemV9NzF9eE4+b1ZCOFgwJElCYGtJXnstcEVF
fDxeZVc1Vm5ZSmBQSHNiPnVKNiVIP3dJLU1lP1dnQHVLfHlMYXppCnpCZ3EyOU1+QHlveT8qYHJJ
NWBLYzdjaENTeFpBcEFKKWFNPzZQcDV3dVV8UWgla1IoOHt7OHptP2J4d25NQWEqNQp6LWxlI2x0
U2R3IXd4eGl7anIlP25wWElQV2x+ZmdITW5efGBAPntsUz4wezIzOTMzPHk3WVNMcU58d2YxOGZP
eyQKelYmZ0o0UmBlNnYme3RNZ3M8dUwqUCRXMFdMTjlZSjFsSjw0RWkzVlJgfVM/dDlOJXgpdSVY
SX1wPEdfa1o8SShaCnoqNTlBUTxWMD0tSiF1RWZ1cmwwI092ODZAYVBZcXhnP1F6dTU+YkREZV9M
KE5hOWd1KG5UfD9zQi1yOVBsa1JeMQp6aikweWdWSzRTI3ZBRT5iQDZpWWA9PUo9S0dkRDhQVGpF
dVc8QSlMdTlPc3tFO05XI3E8X34zPDVPI0JpNTEyfFkKemJWa29NMlgmPn4/KzVnfnJSfG5aeno9
QTxDNFFtS2VKYTgxNjlLampheE1MZT8jdFNlOFhUaytzY201fWJvc0FICno9OWA8RkJPV3MzJEVR
fEh5KXNPUTQwVj0yJCg9Zk4+Z21DUTJtaSl5fEZJMXBlQnFkJXBSZWUoN0U/RypKLSEwTAp6KkpA
TzVhZEVNNz1GRkw9K1REeDd3QE0kQ3QmM2ZzUnhiIzREbElIO2h8IUF8RkxyOUI9az9abGRoX1Ba
LSlraHwKek80ZkB7WmdCLTZzJl8lWWNra1lSa3ttPD83I0o5TUMrRjhCVSN+ZjdmYEcqYlUrezNq
MzN0Nz9fUnBeY1V8OTUpCnpuWW5QYCFzYWxNKzFjNFF4P2QoWiYxQ1VTQD8lfncodzdzVERnO2ly
IXw3cmtgeSR0emdPSHkqZDIpKDNnNEAqOAp6KURLcyNUPEtDWlREOC1zLVcwfSE1e3dkUSNScCZh
ITNqNVdGLSQxYiFLTnlSMFJTeXxeMkgtWmp7R197QnRNcmcKelV0VSZubithQGUqbCpvfG08R2Fn
Wk43QnIoKDF9Y0t5VkFVPXAtP1JvYWxBdUFXa352akE9cXctJFBISEpRPCZ2CnpuZHY1PTZSPm4q
cD4hfUxKe3NuM0lFO2IydEUrM3czN1gzaVR3Rm4mSFI2OTUmfWV9Nj9jMH1uO15FPXBpWl5MMAp6
O3xweElWVClQOCFLcVQ8Sk4lZDc2aitPZXkpa3o4cTY+TGZIfG12RHopR1leRkJRMz5sWlRFd3RO
VGIyZVBVdncKeiVeTkh4WntrViFgQClNbms+RHF1T3wqcjsmZCR6OEN4cVFlOGswe017QWBreWF3
WFQlKGVhNmFOTnVwSztrfTw2CnpzYlB2NzJ0QlQjcyVKP2IzRj5IOzt2ZmNuIyN4JCsoQGZrK1Y5
byRrOF84ZytyQj1EXzFAfXxYejFrbzxjSTtUWQp6Pz9WfmwoTWRBWDtzLU8lNSk2ODM2Xy1edGo3
WWBJTzsxbSFQTkxjX3t6dHpybGp6LT08STxhPEQkJEojcjhyVzUKelJ3fkI0PVFUS1VURitKfTJK
bk5eaXgpMnpzfEczQ3d7UU9zKXBFMSQ7bE9VMkZgO0RaZitNcyFoNys7YGdJOyU9CnpWSkpwTU0m
ZDxlTFQjKU9KM28kR3Q1YWZDaFB3TitsRH5jN0ZkdmNfI0w4bTFyPiRBUnY5WWxkZHo3MkxJJjlP
KQp6YEheaTJoc2Ftd0U7IXJsVn5HI0dhRCtCfU8oPVBZWjRZSXRmXjx8ZipBUj1lYFFFKkl2IVRR
Rj4oPmppUGJZN2gKenhVMUlGbitGTE5BTmUraFQ+OWdEanVAXldlZkJkaFJZNytteGowVH5iTi1E
XjlvMW9KWipUd2Y+ZVpgYnZRM004Cnole2orPjFPcFp5YEJ3S3BJQih5Ky1MNklCVCZsQEFKe3xF
c1hoVC0hYnZoREo+JWRuN3NWYTdOY2I5SjV4R35regp6KCgtcDVXYUd+alJMUDQ0b3ctVU03LTMp
SFFfViFtd1FKWEFnPXIwa20tc2EyMGJoZkBXY144JWlaQFI+IWdCTGcKemYjQ1ZgPVdSTTFlN3xT
VW9+RD5WS05+bDB7Tih1WTxHPFJ5ZC1yIVFVJW5pRl8zRzd2MHhxZHl1WjVsNXhwVV9+CnomWXdV
M3trZTFKTj9gNFdST016TEpiM1VLKXF+IyZJWDAzZXpQYWV8O2xxRWAoSUBxRWFqJC15YVBzQThg
UnYpVgp6fEkoMj9eKEhYKEwqPnhXKENuPlN3fDQzd1hlbD94TCg9ci1kYWVwP0p0ZzMkRFAtbSo4
SFc3aCRCKX56dmoyVlAKeig0cHBWP3F1TEtaeHQta0plPlJIIThlfjM4VmRQcmEjPCZtUjBTcytO
flBjWkt9VnRPRV43ITNPSFB2OVloIUtHCnokfVVVKVZiYHUqJV5haUZZTn4jOD1neXJ1b2c8NiN7
Vmo+cl45a2NJfENIYyZRRXpZV0FONS1MdlF8WF5rcio7Owp6RUNNZHxFb2N0RT07YFRNRHdScz53
TXZgOFgtPnstLVkja3JacXo+NHNjSk5sUkpMa2FlI2ImR3QrZEYjaCFrTWMKeil+I0RkdmB+dDRk
YHUkJTdzS0hUZT02WSUmWSMxcD5kbE9na040eT9yezxMSGZjRz45TGVlWmwtNThRXldmJWRTCnpr
bUozUntnWnE4Tlk0MTVsRW1QRjg2OSNXeDQye3ZBM2h3Q1ZVVihCRC14MjFOcnJsZVN4WE9uTGZ0
K3xWaHJzZAp6SWV8JWlNQXV3OHQqNEphcUkrMVYoKkx1TzlGNC1MSz5RZ3hwdCttPWgjbkBPPElw
Q1phe0g4NnVQKGtGKjhPaD8Kemt8JSY0IW4lV295dFZZaXxGIVV3eTF0IzlvY3grJDRZNUIwNiVz
dnBQbnZBazAwMDAwTmt2WFh1MG1qZlN0YT8+CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UmVzb3VyY2VzL3N0YXJ0QnV0dG9uQDJ4LnBuZyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9z
dGFydEJ1dHRvbkAyeC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkYTQ0MjFi
ZTkxMjUwNjA0YzBlMDA3MDk1MzQ3M2E4MzhmZWUzOWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEK
CmxpdGVyYWwgNTMzNQp6Y21WO3w2ZSNQN1ApPGg7M0t8TGswMDBlMU5KTFRxMDAyK2AwMDItMzFe
QHM2anVHOyQwMDAhOE5rbDxaY21kVSYKelheZDZYbWRDNT03RlktPFZrNXtYNHd4djlqdFc3dlpB
KjxxNk9EMDUkN3VBVXYoZHokd29ePExwTjFHP2pLPXVVCno9a1I8Vm8qel5rSSE+P1NmU15nK0sz
aT5sRCMpWDBYeWg+I1AoJU5KPWlkS2ktT1Z9WS1kaHlpe1dkd1opPihWNAp6e35GSFRgfE53cHQp
Zz5pWHNEeD0pflAxRm8obkkkYU4kNyo5VyttO2xYTzEwdEUrM2dGekVaTVlzejcwYUJ5JnwKemEj
JWt3RnRCMFF1M2NaZV9TJFBKbHRgYSlZTjtAdCZHaDc/dlV1XzBgUXlmb3lTbDU9KW0hUFJPZFJU
e1ZNOGNnCnpPUmsjTm11b35rUEA0SD5GKlprVFR8KSlrKVpnRiN7KzJDVWUpSU8qWj9CVD9maW1t
RDB4RjVsdig3cWUmY3VsbQp6bXk4fWdkTkNsblFyU19kUk8mbyhDayk/Q09BNz4hVyRvWTs9XjZg
fipZS3g7V25KaX5hTT9MQiZVZiRMeT9vUUEKelAwUVlVQDRhdHpvKHF5Jktta2BTeTZCPlI5Nk5V
R1FXZFItIWx7VEk2Yj45MCV6T2NNcmVfX1pHO2pVMVV9PUF2CnpeaG9RY2M9a3NESEp2KiZ0O3dO
cD4oO0lKeSF6Xl56Ziprc2pLK05tRDElWCNUeW5gal80TT55UHZKKDU4cjlMPQp6LUVIaHIlRk4/
QiluO0l3JiVicyNQK2t0SUdxfTFtU2VCIUhwaGIreEokdj9LcXE0OEJAMG5MI2RGOXRDOy0yV1kK
enApeDk3Ql5GT05pfjRBYk0mfGImRzFWenBUXk9xKTRqdyZQKEd7PWI0T1UwQGtaOFJISG5tVXZy
flAkfDhxLVdhCno/ZjFaO2tQSWwqaDgmaGt1UmFwJTF5bn5UKF5mXmhvfmNVbFhiITN0ISMpSjNa
c3R2XkJhKSgySElRM29uQEhebwp6Tn5gTWN5I1BAK2tHRWdiUkhxcSFVT3o9LUNOaWF8amNXOEMo
KStEXldRb19PQFkhZGRlZiR3ZTlQeCZWKk9SVnkKejRrJmV5MjYmKilpTmk3QSVSSUR8KX48Y2pY
RlgmKFljJSQ0KnMkUnItaEtEb1p9OGQwNCtUJjs/NkFYQGFLbThECnpWKzdYWmJzQj5PSVBYOWlj
fk5zOy1CJGFiakVDMHRMWiVWUmBZe0Y8JWB7SXglOEZ0dGxOJWUjTmFTRkVRN2clXgp6QjR0emZ5
enxiUnVnPThgUmZefENeVDE7dHo/fEVXYEtYZyhIMXhVRkhSfEctVmpLMCVvMko7VT10bz1ncmc/
WiMKek1nYlgjKVFYeV5aJCsxcUA2PmtYWUtuKEtKSSMpdmsjN2clSzxhdnIyYVd2eF9AcVlFaWtl
WTdEJUstbUZRQU0qCno5SEJyblp8QkdAJWo/Z0tOYDVyNlpgTk18byFfTjJ2ZT5LWFJDTk9IVHcy
WUtfKkFwKCgwIXM7ZklYY1RUeVIwfQp6QSVgNkRBfiVrOU1fXylgITt8alZ2NztAK2dBWUVxc3M0
eXhrZVd4ZkhUc20mcF50bDRjSWw9dTQ+XkA+KjVXa3YKencyYyZkPnFPbzxRM2xfdjhMUDs/U153
WipiLU09VEs7SmFsSGpCZ2t3JjVJfStJNEglQD5DQCZBVkxabTczcXR1Cnp0U3s9cGA9WGVaO2sp
bV8yT3IkNW5jJis/MUVqOGU9ZV9zZEpFMWBzUDheJFF3V3w/SURIYi16Jn1pU05aWEtsNQp6dTNM
aTEoSUUxVHJwP2M2WW5vP0spO0JtYiptMlpSTkExKmRsQUVUYzRieC0tN3spUXBeVkxqZFRUfUVT
VXR9SyEKeiNOO2tqYVhnQX48Tjt6SlEqX0sxXmBvPDJFd15tTmgkOV9PR2QlWWI1aj9mKSkqWXlt
I256cHNkMTFUcXJzJjRQCno9aD9JPkdnZFF3JENweTxAP18yTSh0Y3k0YT9ZSk1sIU14cFp1fEB1
WClJVWBxejtfdHY+bG9Ldn0wNEkzdG8magp6KXBaezx1UXtHYlpCeVUrPFFaQlA0UCE4WDd8NHxW
Xlo+XmdrKyl1eXI5OV8odHNPaktxZDh2bG5YclcpX1RfazsKellzQVkmcGNWMms0TUx4Sig8cDxG
NCVgPVlFclpoQjJqIyVObTFnfmo1JjRMbFYhQUkrS2hKbE96VTV0SlFiNWExCnolZlFofDR+RG9O
TFN+MmlxS2BhMFBtOD1oJVZJcHteWURAM3BUfCY5Jm9RSmolVDRxODlmSyk0LTV4Y1puRDxxUwp6
Rzg7dSZxKSNDbkkyaTJPZEE/WU49ZX4mRkUpTkNgaWh0dHBmcSZtRGl9RVlWJEc5O2IkMisxVTVD
O1V6bTR8OVcKenlqd3dTPEQoQTtFaWFnP3FlLTgycGtOcnNIMV9rdnIxbX56bj81YjxqeG0rbDg+
PDw8ZVdCTHtfKChNWGNrYk1vCnpDOHROPSt3Wl5ze2BGVH1hbUJ4YT8tNE9sektVPiYwYmV3SC0q
P31BPnhtYENSJUZ8Km9aNXdGNllaS2U+TmBOQgp6YGs9cGcqfEtHU0lwS3M4RHdraD1gUnItYXJt
YU5vWCRebE04Wmp7WFk1MnRWaTZAPnxBckBqbiZJS04rTEJvPFQKekFfYV9yPnRvcFZyQXdGWW1e
eVZUQG4tR2VoYWFBKD5IS0goY3IxUlA4cmI7MjdlNEtXU2NyKyg9cFUmSVNzI0liCnphP25nOC0+
bCEkUXkqPmlKbitCK25gWHxPblBLXmR6U1NgMSZPN2cxRTFaNmtXUEt7YXdAbmRzRVJORkAldnU1
YQp6QDRELSp3Zkt3fSM2KWFiNlpjQGxqbUBedSRsRVQ7QkpYfV4hdzhIQGsmZ3hgPyokd0FSYWFm
TD1KP319dWY5LTgKejZpK18rPFl9aiRlKT1iZlUydTUmTnFOcTVUaTdidm1YUUReNElkfCtia2Vq
dVRWbEtOJH04N2skNCFtY2plKSotCnpYeW8mLUVOaSQ2VFViT1JENyp1UXBFR0M5PldlU0Z4VG5Z
I2BFOXF8YzljZk8qWFRScEdYMT4xX3xEa3pfXnY7Rwp6e1A/ZiZrIU5RYUYlbTFiaktYJS1MO0hq
SkM+Pz1URzk/SWpIP0tMRzdKWnRjKWZkVWAlJUtXKW0pNTdQYmIlQTYKemE+VUlzRWZpNHoraUQ1
ZmlqUDkmU19pUWJHamA8UVcqbGhWZnU0MTJsTkhkKWM/d3BIZWR2NFkhc30pOEk9JCt2Cnp6cGFs
cDx+MyNkdUQkbCF8Tjc7WlVsdChhNkBvWG0pPTdpMkpmJCZTSG90Nj1wPHY2JGRWSGxlQHRqelJJ
bjR1fAp6dktaVkt7Zztsd0dDPFo0ZmJAM2lGV1BVRlBGP0JreTVXVyEpQHxPcmQ2NSZRYz5DTCY1
U1NXS1NyTyZxRzxATisKejQ0O15aOVNtfXo4NG51eUdNeEhHeD5XLV5eN1BhRChUeGd6QDRVfE9f
VzB3RWY0eTx6Iz8kRj9xN0txRCRFO0xACno5ZmRSMShvbzA3N2UzMVhpMjItZSYpdFgpMUB1fTdV
YUprOChxVWpRRDJMWUBGVFFNQkYxX145YWIqc0ZSe1ArQwp6NUI/NHZybWJ3cylaNk15O3slJXVN
OGhZKCVLJElDPzZQcz5mUjBDRClLQnI5emJVJDwxJm08dVR5WXd9QFcmbEAKeit8Um5KN09zOEw4
YDdSXksrfD02d3JqNlZUa0pXRWxgJUQzXkZgRWxecVlAKF9KaHk2QDRrQ0xlVDc0Yyp0TkNFCnpp
Y0M/T0hSbGdDcEIyeW5xJTtPOzl2JHpXXm82OS07cT1pKkFBUGxiYH1SZkhGdlgwS0c1VWVyR0kk
NSZ7JnVQSAp6QENDMjt3dT9VZ19+VTtzIXxDbnF0KUxya2lrdXRFKU56X3hVT0VEOzFVMnVXdH04
cnIrRyhlYUUoYDlabXRNKygKemlfXkMzTnwqSVRLYU5LYXRGcE1Ee0cma2BnfXpgZnpXOEVral5z
Y3RuUWJ4KG93Tk8rVjtNWkg2eDwweDt7bktfCnpoYVMzN2NkXjI4dVI/RUl2dTRlJig0fk1SMSVf
JEZ1NzxMQWlTVChJWkFpZjBwXj9gcWUkWFdiViMmaW9NaEBmeAp6LSstPDI3LVAmSS1uIVcqNWwm
S3RYYmlaVTRmTyMlK1lub3gobF82SF5HfWpaQWB6eCQ5JHArWjhzcWgjUW1wamMKekBnZ15Gc15n
MCQtOy0qd3EkPjR1YXhyR0MwfTRnPkhaQzIzUipLWEcpRDZWZkphKlVsND9wfWNuLSZ6JSY5PX50
Cno3bExXKz53IzdzNzlGVTRsPl5GPWpkczFQY1B2R3EmYypRKz43e2JrUDJMTTxVdjZYc1dKeiRO
dCotNTxlIzEhOAp6XlMwOVVQZ0FHIzJEMS0xWmRLVDM0SVNUWCV0eU57an5ZbShDcklzUE5ASk5p
Wkt9UXNRUU19dTRtcDg8WFA8TykKemZ2VUkwOU9YUWIxQkdlfVAtP3F2K3FROWJXOy16UmN3fHdZ
PWk0JFRWU1E4Zz1UWkhkTGdgKzB7SjhPQHhmcypGCnpwZDFYbyV5NGkocWNENiF6VVRAZ1hWX0FD
RXhlNHQtM0N2b14hfjs7WGBqeXQhVVo4MWFKNU1mNTNIPE5yU3YpUQp6WGp8bVJhJDsjallDT3xa
b1lCKyh8RT5jWChGZjtfKXdzd1NEdnRycEgwODYteSp+O1FNTVh9c3teJT9YMikqY3cKemJBM2pn
TEx6ejFNYjdJKG1XTi1uRFVEVkJ2VkxAcGxRQV8rXkxlelBmTyFnMD00NWZDTz17dWohJHUkNXcp
aTwrCnpFUW0yOHU2Wlk1WUkmcncmc2U3RE1jJXJecU9QJEtDLVRqNXY5N1Y5IyU/R2U5Z0crJitS
IXdQQ2FvKHghWUV2dgp6Xnt2KyhlISprPWx0ekRnYjV7M2xLUD5GfSg0P1EkblBERTxQOXY1d3th
UCt7bTlxUkR2ejQ+Q2czdn4kUiFGSHcKeih+bSM/U1VMaEhPYDViNUVVdUxDUXxnTmFqbEFgOzg9
XjM+YGF4PVp5PGZwKXZSYVZsLUVaSC1sSTlXNSRwc3M3CnpHZSt6JDt+TiRtOCNAM0RFaT47I2ZC
TmFDMkhWdCQ5Jj0/NjhNeF5iSERlZH5FMyZpUCgrQz1RX3VLZFI9YnZBPwp6WEg5YntpWUc3TGg3
c3VFY3RqOGdkfjY8cCtVSTNvJSMzfUpAOXBoOVNgSWh4KipROCEje3M2KWVhNEEpc1Y/VmYKenlp
bz5eWnh3ZEtuUDs5aytuOU5qVCtydiFpIXEkSFhgVVVyNEtJfXQoNGErIWdWeWlTOS0rbXphMUIm
MjxFS29TCnpAPDtHSUleZkclPmZnU2dQUTxoZmhkeihLJCYpQWxreXdpSyQkP3p4SCtFNihzVGBa
cVheMkFGPl9oPCRlKXtSQgp6KW8wPFVRdGUhaSlfSlR4JE9HNnxvQzVXSSNMKmA1UipiVTkoX2Vk
OEc8ZWZaSDxkb3hDa0p4RCM8e19fK1VpcmQKelJSaT9BKmUra2J5bSowPS1odUBTZXgoO1V8SDI1
MlpAPTJ7SDVeQGg7WndoRHt8OTB5IXlwSFdAMT8wc0h9PzYwCnpXZCZAdkBfdylKLUZNJGoqR0lP
KFheZ3slOShzc0h3MiEzaEd6SyEjSmNhQTstPWwoYl55eWI3TkBwMGNsTFB0dAp6UlkwcnB4TXJt
eiY8UjUkWih8anU+LXAhT0ZNV2tMZC1tKk8mcEdGdUh3ZXQlKylEOVU0WjR7Z3hWKjN6PXtXMUcK
emJLYnlybkdMYSUxM0p6cj5jXlpUa0ItbWxSfHI5Uk04JVola2s9SExyZE5yanF3eDBJWihsSEQj
KkRZWFV+X0hmCnpvWDJMbDxEayM3JGgkdk1NcWFnZUxtbHxTWFQobDxWa1VPdiZMIWc2dVBKKXdP
KjMxNTQ1eFg+Pms0KjFfMCZfUAp6cWZsNDM+Kj1TVG9+XkgjZVMmajsjQig2ZiRVQn1XaUBmX3lE
VntPJGZpSFp6S2FVYkt2RDQ+Vl43Tlg/PmhGYjcKemo2dVN1TjdQfSsrcCU4VSUreGN0KHQhMWpW
JSpDd3pkVWpKXnl6UGNPVHZDVj5MQTxran0zKGIhPW9CKGVCakhOCnpkNlphKm5MaFNAPFUodUxL
UV5VRnFZenVfeihaZGYqM0wmQ2VSUjxNKEkpYUZfVXlDSSZlYVI7LXooXnlZOz43Kwp6djUqbk5p
OXNXZWomMGZSPjNwWncrMjRjUnRhI1d5XjJqNFkjMDtrTlZ+Q31eVn1vKlYwVl91emVlfnI1biQt
QEYKenkkfUVnTm9YQFZVZilnbVcjUGh3cjU4b3xvcTd7Q1VCfHpEXjJzTkUoeXpKQlIzS2R4Z24m
NUdXO3JeVmNHLWJYCnp3U21KQUttN2cyOSghel57dl80a2Z9UHI/PVRBUVFXZERqNEUyYmw3MjYr
JnFkZDwjPk1NZUNucTVNPnA3QCMhcwp6V3BPYkRJN21uQFopUDJQPzZJciRyPW0pNERxIW92OXJ3
WnVGTFpxVmBSRClxIzFsXyt1VW9mbnVFYk81c30lPH0KengyZDUyZEV9OHRldEdNeXhBeUNNaHVO
Pnw8fC15YV9JJClCQHNRKD1EI09YWVEkem9eOGh3OTFYM1V0WmE0czZhCno9M1QobGZ0QDR3cndz
K3h1a1IjcChEJFJPU0hWaDZzRVcyI1UmcnxGXzE5blQpTCtGSXFtTmh6WWktTmNHQ2tfcgp6I3Y+
e0hSZ3Blam9JIW9JSnl3MVNLYzN+ZWBzJUIlSStyWTJHRCZ7MlUrc3dCNGxCeTlFUHZLcmpsd19G
MyZgYGgKentie2o/ZEBFaVg9cSs+UyZUWHJSYHtUZE5fUkJCNzxvQXBaUVBOezYzZE04TCVJd1Bl
VHRMPDw8dnpTXjFhPnIyCnpyVWtxPCV3ekFrPEJtejFHVyN4UW5aXkkhNGBMdHxWIXxzaXhfRktv
OGhKKy1Xc3dqNExseTFUJih9Z2EyakkzRgp6T0V4dXg+Z2R3ZXRGeGp0UjQ9SHNQSWF3WngkO25i
KW9lMzI3Njt3N2s2e3srdXg9T3dgbWB9cXlpKGx6Mmg8fHUKemFOK2Arbn4yXiRmNXw+QEolSFRs
K0hSaHBQI3dDQzlUb2pPbihvb3Y5aTRobEJnfj1ZWiFEajJeVVhKUnUzbykqCno3KzB3NmgleTZ3
LUZWfVRvbXgrNERBXiYzIzJwdChAOyo/OFpAME50OFl0YGVtSCFPfTA/YlpZMGt0a1BZc0E3eAp6
KVc3YkV7endofmJhJlBWXzlMJm0/eilhc1BkIzxARXd8aiNxbypYTGtISzI7b3V7TCVSSlRUNXBT
REwrTnNAZSsKelMpTl5LdkN7WmsmRU1Gdi1fV1V+ZGk3clBNVnpwPjhpV0FOcjtoVzJGT3A/TFR9
M3A4TW5iPEh2SCRzK1lweXdICnohaHtLPmtIZDtFUSNxZSZwTF8xUFUybmJoKT5NQnlxZDRxcyQ7
JWhHU3c1ezZsKVdlZUxvY0pRV2F5MDFSJVdIdgp6aD42XlpzVj9oOVVVTUltaE1yfTRgaigtQ0xr
PjMqSkxaXlVlJTEhS09LVzdlbypUOWBEeiNfdClgcXhXZkFlKGsKemB8clA+NHo+I2ZIbkJtPTsm
VUlBKStgX0VhfGFmYD43OTRwUy0/aVJQdE08JEB1aUZ3dTM4Wnc0KHRlT3ojQEozCnpxZjBVekUr
cTd1WkAhdVM/WUgwMy1LN0hsdz80fm0oTUBlPSl+czJod0QwVEkqR0lETj4qfjRQOV88VkpfM34l
Vwp6ND9xMFN4cHdXXkxzWT1TZytKJn4wfD5GWmFHY1d8R3JaJTAoJikye2JNcjwwPW8yQE1udSt2
ZlV6SiQyWHdnRF8KelB3b3tHXmFCRXY0cGR7TDVUdVYqe2tUfGhOKWp7WUJ4aVo2YypEezJed2w/
U0ZWTz51NzFAeHxxUHQyUiVoUUNzCnpaYjJoSTlMTGR5TTE4U1hjZSFYREpzdlRzS05rbChiZkRO
bUlvdSFwcTxxQVRlNSZYM3J+Xi1aNz1oR15ueFU1IQp6UEBNeiVQYF55SGs3O1p9Mkw8SW9aVkkw
czBOTkhsWlNJUzk9enZMNFR1NlIjaFZfXk5uYkozRWJvRmw9Uj1RUWgKek5eUWl8SFVRd0hfKSFN
bVpYKyg1RFdneFZQZDY9VW1DZmIpLUQxX01Sb3wrSl9mUzktc2Roez4xX3Vod3opJWkhCnpPakZ4
RGB6cCVicEhWMEJicSNPWHBnSjwwOHFMIz52ZDl9UiVIV0YqWUMlbUhlYm5mU0ZUVGhZWmdBPWFs
PHw8fQp6XnpUJV9YRTJCKChHRjlKTHoqMyUmeEhSRWV2Q3dYVXtIJSVPYGY0Zmwyc0V8al9LcDkw
Z2EkdnBLLTwrdFYhMm4KeiNNRUlfKExCMCo0dnVBK0xYI2lYRXdzbENwP08tR3VaUD5qS344dGJi
KVZpZXt4bSlocX1yQH1NcWRAPyZtaXlKCnppeEZ5YDB8OFpaWFhZPlpFKjBPeUJKRC1xUEttflI5
PnpZPXt2UWFeZzB2YmhkSzhUKkU1MSlwJkZgcz15b1RiRAp6UWY+alc0dGJ3OVp7OGczJENqdmdp
d1RDN2o+dD97YF9VfW12X0lQQkBvQj1UZVk1QCl2cSZGM2BaeT5XQk0pOWgKelQoMTQrR1MpbnU9
Z3h6fDBAfUhQdUFGa3BEZjlLZl8zR3xYYGN0N3A5VFNWRFNlbD9RT29fb2RtUFA3NUNAdDBCCnot
flErZXo1czhOWlchPERAei14WWB8UHZmfDdRZF8mZDkxfntgfm4xd1lBX2VgWG1KflMoR1FrVWJW
I2pSVyhLeApwemF6cEVzU1d5d19Kd3ZNWlQpdWB7e3lpTipXbHJfU0dORUYwMDJvdlBESExrVjFs
aGgoblNDTwoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9zdGFydEJ1dHRv
blByZXNzZWQucG5nIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3N0YXJ0QnV0dG9uUHJlc3Nl
ZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1ODJlYWZjZjdiZDNlYTcxYTdj
NzBlODM2NzkxYmIxOGJmY2FjZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMjI4
MAp6Y21WPEUycDlLPlApPGg7M0t8TGswMDBlMU5KTFRxMDAxWmUwMDFabTFeQHM2alErVDcwMDBR
RE5rbDxaU1A4WTUKeitpejlYN1JKfVVecy1BXjMjbztJMCU/VXYxT2lmczdzT05oMlk0KFBnOVJS
fSNeP2hvTkNhUVIyT2YtKXMxTT9XCnorRi0qdUlTPXBgTkg5a080PHRONTB0dlE7d3Y7THFsd041
fF9qZGZ8VEhvczJ5UkdgNXZ6ZEYkSjt4Wnxffnd7bgp6JmI0K0V4bSsmclRYbDh5bDllbDA/ekgo
UWxGOCkjcnB4JkhlXyVYanYyR2dmbkpaVldiUE5tKF4hWUlvQkE3QGQKemtfYDxGZHJMfTZURmM3
SERwUlJjS3NTPVV7b2d2eVgwcmtEa0B4UTEzJnpJQTJDY1c5S1kjd1AmMVZWYjJ0c2ItCnojKkxx
cm16T3RaR01TKlh3QTdKPHB5fmNyUWlXZztvU0s/KXtxRWhua1BMPjBoZmtoNmNXeVQlKD5RRnt1
d2Y3Ngp6RGs+QGglYkBFSlF9K0hUbDh+YipsTyFhYWM5ZmNwKF5YU19sJjBvWnR5PVo2Wkw3OyVh
ZEVOQi1mUlFgV00wNjQKemAlT0E2PStFciZnJmY0TlcjQCFwVG1HX2ZgKV9LXm5sLU9pUiNyWWVa
ezlxWUlnRHUtKGc5RkZyfD5ANThYOGhyCnpEM2s8TkZUfSVeVHwlIz5AMWByVXE+V2lkKH5xJk9N
TVh0M3dpRSFHcShGUjBhYSt5SXVweTlAT31yWis0aHYkQAp6O2xpZkpWS1Q3Nms2azMyYTcpYG40
Zn5FbCYwbXFgV3xJJm5kbGRIWnt+UyokYF4+ZXgqcGxWSWt1QEpYMiZTXyYKekpAKTU5a2BicXh3
MntkR0Z4Tkt2IzJ9OEg3Snd2ITZCODNiUmFJNDFMP0YmUUw8eXU7PSZ5TjZWUVchbHBQQllICnpE
fVZfaTAmK3dPOTIpQFdueEQtY2c0bSsteUhDTyZnTjF6fHJYIzJUYSZUN09oeDd6eE9qYjA5KVl4
LXpMKE1CTgp6ez4wRiFtQSZscjlVQz5hSTl7TyQlMFEwREAkdkQlRT5hdWp2VWEqczZmekFSeXw4
SXNJP0JMbW1ENz41K0R2ZFQKeihKN3x5QEI3OWxMejVWNGpBWnAzZn14P0krPlJZUGRlXlVDZWAj
YzdCKW5SfXI7KDM2Vis7bmhofGp1cD5uPyNZCnpJNT9PYTlVWFBwJUkqeHVYZDxyJGVJdD0lPHAh
UT5lV2tUOyt0ekpNdz5gZnR5Un5fMWp8RXQmRWNreEA3ITA8Ugp6TjA/bj5KcU89RV89d2ViR01Q
P1pZeH1CZ2lII0U0M0dFdkdfXkcpSmljRnlkb1J6TyN5U0ImM0olQUpWQTBHWk4KelYrMlE0bEw5
TjA7N3Z8VzJINF8qRkUoSS0zQVFpX1dBbU1zb0p+UjZ3UV5oODtDbHooVGs1USVrQWEmNSF4bmdv
Cno+PFktJllZWXhIKX5FMiVKUTdUPiR1NCV7ZmxneSZUIVRfYlFhM3A3K089IVk0bj0mZEl5KmMy
X3E/XkkrRD51Pgp6cn08QjckWlR2SUU4Z0R3Yn5WMT4pNCopbSp+MDc5ajRiKz9GK29pdD4xNURJ
UENXYlhYV2lDQHV0RChWOCpoI2YKelBfSmFPb2tERGQkRjVTVkVDXnJXQWUqMFNldDtPMTBTUXMm
ZTQ4MEgyciRONkQ9U3Y0PW0lV3crZigyRWM8MFdZCnpoaXZ1a2Q4eHQlYyYtTFA0Z3g7LWYrMVY1
P2RgcHZTaX5mQE5ENEN+WHdPSWZYaiF7RFA/RXQtbj5OSztpPn45Rgp6anRSRWFmM2FZRyZLN3dt
UV59eUh4WDR9YjlVVURMekowXlNoTktSUHZNIVI/ZyNAIWsmLSM/VFdrXm07UDZRN3cKemVLN0Mk
TktiYzlDOUNGMUs9JFVeLWs1LWArMWMzfU9nZmN6VGl0V0RyIXY7dFZBLS18ckVJYXROeV41WlZ0
dnR6CnoxfDtjcWIjLX1RYntmbXN2Z28jT25ae1FjMmJge3E2eEoxZnd3PmoxSlIxOzBlbl95OEA9
WiZMIWFfd3NrP3k0Kwp6SzEyfnsmYWI9QkMpOHx5YSZ6UHhXe3BmazJwZVR2R1F4N2c8YE4+dGdw
Ykw1ZD1IfGBUR25WJlE+LUtpZGF2fmsKenh7MnQrWUh0SnBiKjJmKml6JlpuZTkwUitJLTJafWhM
THc0VDh0c3RJcGdSOVRVdWQ7QjZTJEpeVCpEK0BxYFdQCno+ZyNAMD5OUVYyYSFQcVFnX05ZT0E9
d2QtdHBgSk1OV355cUchZkd7SlMxTExXV2VAKGNseF88OE99OGJUM1Q5KQp6eGVfUjlIQ0E2I2wo
dHYmQFlpNF9RfGJ1b0FqdTlObytAQnk0b004WnJpcmhQS0wzIXwxT2FnJWZaaEJ4V0s2QjgKenNw
KDwrZnB3V2NgSSUlWl4lNUlPZjdgSWQyVlhGUiQ5ens7Un1IYTU1P3ZsYU8oP31ren1ZcWZEN0wl
cngmVjxNCnpmQWFCdF82V1I5Q2IxUlJUb014NDskeXk1SntIKS07OWdZJk1+IWhfNE4zXz9JKDV8
RS1oTGtlKWErVlZlQ1dgagp6MGVlQlkjansjaCU0YEpEVlNfQ2A9MzZUcUZ1flNvQ3hlUEZpRVZz
fTYraSR1NnFnalVgZ3NUNUojYkMpJGp3aH0KelVmRilFZWNaQnEoT3kyPzNvUVl1R2RnMmwwPz1W
fD9BV24hZTArQGtgfWc7TyV9eTI4dEdGT2p3WTlhYytVWUNqCno1a0AwKEQ0ZE0wOVhufjJzZFRG
VShlO20zRDlIUyhgNCF1QFoobkZ4eCFseysra05aU3R4P08/cXktKFpmSWx4Xgp6eldrQCVafHVI
Zkw+e3FVZTZiKD9aQ3woYnBGREFMRzAkZipTUXJ9e08yZ2g0aHZQVHVte2RkI0JlRG5wIy1EJW8K
emQ1dWw9eDR6VUdaeGMzS3dycDh0b3VTX3JgZHxGPChXNktFeng/OU04cD1vOHRDQ1h2NkF3UEwp
U15XVGNWO3FXCnpeWmlxVkxJI1laYGJlSFZiR0c4cjx4NzJ5fDd4dCVzP3E8SU1sSjUheDNCTlNp
NCUpVU9HXjNTPFQze34xbDVSMwp6azF9fH1ZQjBEI0Z+aTxKbHtueGA9YWxJSktKJnd3Q0NAWklH
dHpkbj9mVEBzPkhBT3QzTURxITtgOUNnemg2PzgKejNBWXRZdStAfGhhWD96VGt5eVFZXzEqO3c3
Vk09UzNoJCVIQz8/TkJ4WCpNVEVRXiElXzRQTCFuO0xXVmJAZHMwCnpHalgtbi1RN0xaXjs2Zl89
fkpmQGNGKX4hZSNXUUItM2xCRXZNK01QUjI9NVc5TitFYTJlKXRFS0FiUk93ZX15Ygp6UX0hJmEw
en56b2xfOGFPckpqPXQ1SlV3aTh8O05hS25QSDROYnIlO2AmO1lCMHBFVit7JnctPSNpcTJLbHp0
PDQKeiM4ITFjZkNMa1cjc0pXP2RXZFFEdFFiMlE1Kit6c3FwbXE7N31AJGBeeCNzaiNfSV4mOyhy
MCNrTG5OWHhAcGw/Cno8QXtTVjhUJipTKD90K196V1lRVnImZnNQVl9gIUhNZ0pyP2UmTkR9Y1RB
dG5gek58KEAtLXYpeD9LVkQqJHkmNgp6fEQmY0xiSj5YMFR6VkVxWEltfEV6Z3EybVc/T3AlYWA/
bXExel8pVjMkNV45dSkyQk4kU3R6QGF0a3YzZlJySzUKelVkRVYpdG1adGtJZnJKOyVqJlQ4cFJK
ekgrSlg5P3tXSjZ6LXtFJUBZeSpVbS1DclI5MDAwMDxNTlVNbkxTVFpFCkNRKTdQcwoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9zdGFydEJ1dHRvblByZXNzZWRAMngucG5n
IGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3N0YXJ0QnV0dG9uUHJlc3NlZEAyeC5wbmcKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxNmNkNjgzZTkxNTM5MTdmZGVmYjVhMGQ1NjUx
MTE1ZGE1Yzc1ODAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lU
IGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgNjIwMgp6Y21WLUE3
eyV2X1ApPGg7M0t8TGswMDBlMU5KTFRxMDAyK2AwMDItMzFeQHM2anVHOyQwMDA7UE5rbDxaY21k
VSYKelheXkU9ZEI9TzM+N0l0Xm8oKyV6JW02YHsxd0o0dUl4Xz9fRDVRY1okbWwzYUMwMj5+NUx4
MFV0cU0hPmd+ZD02Cno1aC1LZjgkJUpjTi0+Wn5yRW0kT0IkZz45MHpuYW1wIyV8X2VlSWR2XjhE
VnV6ZEtLI2UoJndlUWV9REkrfit5Wgp6ZERqMHE/e2VSSlolX0IrPFlaU1R0LUhJc0MtaEV1LX1+
UDgkNDRLMV52YllYOUlfPUxKRjJJTHNvJjJ3RileX30KekdUIzxgYEBWaHFvXytyTD1mNDtIdDVN
JVhDbHooaTI0SHxSN0ArLUdmY0J8QGM+fUJaZGkmO2c7YHNNZlhLWlkyCnpANDxyeXBWX2wjJmpU
O01ffk5GKD1SbXQhU15+KDlKTmV8M0ZJYyM2O2d2QG5iPHthQT94TjNgR3BDQ2s9TlJYMgp6Y0wl
YX5fO0NeQ3EzPWQze256PEskTjF5cDw2V2JwcXR6Sk17ezgjXlhYbm5ILStidyVtbVpJQz9UKU1r
RmJXdHYKentxKW5uZTlTUyZkQDtiOCt1UGdRSEZ4Z1pFLTF4R052S2BYPHMzO1Z0RnRaViVZd0Nx
KCV5LUZZMEg9bmg7ZGtWCno5WGZQS3tfdllgeklvPl9mQkRPUWpRSlY2djlCaHtNUTVGTCktNE1i
RWNqQ3I5VCp0cz5nKCZQS3gzIW4tRGVeQwp6cHN2VXZLJD89c0xweTVOcTEmKTtAfTFndTZsQTg3
OzZkM08wMEBvNHhvYyEoV2JTZHQ5cnZhRnt7Q2ZBP15pLSsKek5BQHJjeiklPHpKYjs9dlooYW8r
MDVabUB5QVNYUGgjWDImMkJqZmEjI3I4WVdWeDA0Y0BEbWBGWklqJCghTmR+Cnp1KFg0eDFEeTNU
JDhLYXAxdmNuajZNbVhJdT9iKkleZWtWI3tMM2hFbyhzZ1FeUFMqSGFZKG5JR1JadGY0UXcwZwp6
T30+RzVSO19zYVN8a0VfQ35kYStOfno2RG94TThfR2RCYVowLWBgLTdkeD42RiktUjE8Q2BMPD5Z
VWdGQFQ4TVkKeng/c3RZQzBGMUNASHBxZWQobldXOD5uSkJjbzk1UTwpd0F6Qnh7cUcwd2cmSXNK
d1k7Kk5WMlgyU2doNGJhbytpCnooPk4hQjF1ZEA1VTBAVmd7VW5DfWZ2Zl5CNSokM3xvT0F2PFhn
fXZYM3xJeDY7RzZfNEJDaStAWGNtQUQzOCpfWQp6ZCpzelFYd3w/OXd0LXBmP0hHb0FMczA2IVJz
V0BhPjVtKSQlbHNXQEl7Oyo/PzcpRW97YyVuTnN+PzhIMH5MVSQKem9fZ3ZoMV91V30yeXBIXjAw
YjxKcCQwSVpQTXhidXVyZis3PXJvJmJnOTA4K1RKY0Y9VFdPX1N5eVE3flkzWXgjCnp3Wkg9PSYz
ZDM8ZklWfHkhKGtvbWdKMmYpek1mRig4NSRiOzZ3MiY0ZlhtPCFLIUAtLXBvdXs8UGxRZXlOdEst
eQp6WmBWdEcjO3V4aitNdVZiJkwtREsmRElXeDtzUXBASDhBVTgyUUgxPncrYVEkZU40aEAlb3VR
PkchaFUqYEYyVEYKek12V0tqdlc8U1RKLW80O2NYNHBUb2J5ci12bUM0OTxDSTxiJmhJbzZwTDBS
SyV1Z0JkSiQxMVE0PEEwPDY+bHo5CnojcilFfnhNNG0mQ1drfjhNSDdRczFrTmx9bnF9fl9IU001
KzAjQT1+T0M/akAkYD83Jlc2Xyg3Kyk2aSZtIyorMAp6dVQhV0lOMDc4Wld8Tm1IQ213Y291IT9z
cUx0eGh6aUxBXkQwKklfXmc0d0RfWX1DUDRVajRkeGw0VHlzUEk2cGwKelBYUk92Jl8pXlooKk1O
N0lNVlA1Ql9CNHljdHNoUGBwRGBVZFVPR0Y0MGU0WFQqM3MwdHg3czYwWUVNbz5hP1R5CnpxZS0o
cmNzc3l4U09ESmItQEpXSjxsXk9KbileNmBjVkJob1JpZztlJkVPJDNIen40XlBMYWtkQWh2NFFr
ISFaawp6Sm5AKU1TU3slYiE2RjxvTDZeXzg1X2ElbkZsbjdob2BhYHpXZG80V3ZDKiEkI35TNTRR
YFoyd2FUVG9JXnJLZT8KeldTd29EJXZffUNXUyVqWUFRSztgS25BfWtfQDMlezl6cSlpSSs4TGMt
KWRnX3c/ZyM9NU0hZyZFa2F2ISFOdnw3CnpubSooITtvRXFAazNLVDVEYFd6UjREOSs7TThJVWI9
RGJ2ZyorKUQzSlpKRzd6U3VNRiMxREd2Plo4bn42RiloWgp6JSh0XjtsaTlnZXB4YjthQ24hMiZ0
Z31xQjlHKVVkVFlkYmxEUzc5NyVZMitgbUFgZGsyY0grdXhoODw2YkJ6cWIKelNsKW5qM0ZeMyZK
fWExWSgwZXpVeHMoZjxXNUtfYmAxO2dgYnhYO2NpJTZCZk4qM2MtaWQ8ZnJXIWdkVWlIPCRiCno8
cFQ5bnI8Wkw/S0lfOTwxSE5oY1dlaX1zd1RocDBHT3c+WDhGOG5iMTY3c15nYjhMUkBhVT1JOTVP
cVBmWiV5Ugp6S19VNzxfSEghJk5idzB6OUR3NUszMn1YZyNlQnxKS0lmJEA+cEc3dEgpMiZna1lF
T2VUNU9oT0wtYHlHOFR2R0MKekh8VUolMDExZmJ5Q2E7RmxFWFZ+KiUjbihmdWVFYz05WSghaiky
SFJZMVVJV3VXelk0eCRPP2JzbXxmY21nalR+CnphNkd9fiE8bCU7NVY/O1hpaGRNSHVAZVheaF40
PHkkSyZ5Q1Z4c1hHNTQ1TkgjQzBsSEAqcUF2K1d4cmQ/R0xgcwp6UDJ4UmYyRmJZQUJTa0o+UXM7
VyEkOyN1RHxMe1F2SmxAa25CaGlDNS1FYEM4Jndsb15UaTZOZzIjVWhTVmstTl8Kej5SVXU3Rzth
QnUma1RLfHA8aTwjQ2I0aDRAeTVnQ3E4d196ZzN3WFMqWnxhOD9iMz55cy1ycj9UMWNqeUk8KXxI
Cno5Tj58NzlJcEduXi10Zkx2dHMzbiFPdmEoeGlnUEh7YG1qbkZ5Y19vOX4lPFNCOCl2LVR5Mzwy
M0o1VmdiY3NwcQp6bTgoX2BrXyRQSjgjJFQtY0cqdWdYekBaXm1RNCFKa3U/MWgpeHgrR1RkYXZe
QFp5amV4JFU7dz0wKlh7VGNvZXcKel9WczE0YSZKJXxKQWd0MkxSIVhYSCNVQnpfezI5Y2goJTAm
a1BBN0g4fW9uJilnSFowQD0hLVI+WW85aU80K0ZmCnokbnZWZWxRPXNJOGcxO0J1aVl+Ri1hbU5u
KUNVU2txNzRyWjRfPHJTd2ZoMy1GJUR3QCpPdkpsbFgxSkl1OVVkPQp6IWVfKHgqbWMpbXd+dl9G
ND5eJXI/M3l1YiY9b31OdHg+PCYkfiV7M2BrbkAwQ2s3ZnFQMjgyZzspKk53dFhRI1AKelVlPUxj
dnU0ZEgoV150NSFfNElDVnJvLU08Rj5XNSFJd1VYdjNtOURRfGZIVj9GKFB7IVhFVHAkaX43fj5a
TTxWCnolSWY/Zm4rOU1qQ0ZLQXtnT1lAYTFLX0d2dEtNQXkkQFNIZjlyYTZrIXs2UG9EeFJUakMy
NGw4e3p8PWU8SD9DNQp6X21DOGE1NWREWEcxfVJhQmV7fEBJWnktbjIkWnpXTjhRe3MwOUFuMmIp
MDU3dDRRIzslOGxPZV9jdDZ7N2N8UXYKej41O0hNVkE5YStGWUNfNlllIyV+IWBBXn4ld35LMjRj
OHdfJmUmMGR6TSEtYCZiKUojUXNib3BQJGd1b2M3LX1uCnpsamdpYi0+X2xCP2doZ09qJTx3X3B9
fExAMmlPMWtgbU1Xbj9fUGxxb0BRX3JCYzNzbGNoYjxxMkZoJig0PilQfgp6e15hXmt6Q141Y2Um
UCNMbGpMbXYpYExITG9xZiZ8Sj0oTSNzRkJHclIjQmNneCkrVyhTcyVGa0ZEfmJNZi1UJEYKel99
RUIqd2BKRl5UYE4kRSl2b3wtWTAlKz54ZDk/UlkxX0FOVXI4KXR3c1MreTxQTGJBUFQmUGwtX2xt
VFg2KFFeCnpnRGlzd0tuQHZKQFp5VXYtYW5ecitDX0lwdGduOU10NTB2K3d5cFo/ZytreHlJfXJv
dWh1dXRmVlRlVWNfMzlgJgp6bFk4RVUpYG90cnh6MWkkP0dBS09Dcn48fDBVcVpLUFF2bGxaMlU4
cWVXdlpYQDQ0cm0rcShJUSY4c1lzNH0+aDMKem9rTT5vNFNSczM8Njk3a04kaHNNJCg8Vjk0QSFZ
bHVIUGUlSWQ+fDJUTDRrODtlZHV5OW1FJUh3I0RiOEVsKnNiCnpKOStoMFNDMiQtXkRLQCtJY0w+
QFhUcnY7cW90MDFAUUg1I0JvO0JSeCV3SXxTfXBTPF9xZXMkPGBJUHwtQ0UxfAp6RTtleSZPJTVY
K05LdH5mcCN5bDBEXysre2V7I3tabl5wQ3NuO3pjdXp3eTF9R3UoWXAzV2VxKilIZ3hMb2x0RD4K
em0zX01sPDc+S1NKaU9gUXBTU2FLO1lBaz9RWEA1YWdmU014VCkoXz9fLXo3TTdlcSVHWGs7Syhg
TW1TYTg+K0tZCnpjSzFEWmNUKmc/N1JjQ0xCVVJyUmolVEdGe218JnUhdF9uO2FBUilWeFVzRHBZ
Q3hCfCpjPiMwJTQyMHhvd2Z6Zwp6Zn1uIXc7VHp2MCsjTlRyTjRCUlA4I0p6TGR0ZCRhdElHaCU5
UllYKHNDckhhLVB1fiFfZCFQVyN5JWN0VmMhP3UKelJ2YHY0OEl1Rkt3REw8MClQaTRZTHpsNiF0
WTRYT15tLWlSTnFFNjQ9VXRUKFBCQHxNWk5mYnA/fERBXzR8flhaCnoqaytJLU1SS1NmNHBsVmJj
R199WStQRloqZ2htQH48ZjdVUFlBd2A4LTIjVDlJTHQ2PTItQHp6KG53JlRAdENOcwp6P2RIdiEk
MC1RbDBMYDczMHJjXlpKRUBHPCR5azMtN05pPWRMejxIbXh3UHt8RXhFUkt4X0ooOG5AXisoaip9
e2gKeiMmYSl9RDtlQGU9VWY0UTspeTVyWEo7azwkfTZ3KlFqRUw4TFFCMU9HQTBpamU2PTdeMFoq
dV8mSHtHI2NEPyVRCnp0NWFWPVJrQCVgUGg4czFsV2w5Vyk8VWZzPTlwRHxieE5nN2hpK30/e0dz
YDYwZ1M4ZkpPUldYZDxtay1OWHhrRwp6I0BhfkxISUF7TmQtdnxHZUx8JG9AWCZCU2UmfSVrSCNk
dihRZSRPV29nXndfcEtgRk1qZFF0KklIK3tlaVo1UVkKenhHakpJQHtxLU5fP2lndlI9KHElMG52
fGFFc2NVWVNMVDlCXzZlVk5LRGlffUd1VEI3N3hoPDlkMTlZVmpLJSRLCnpXNHt0ZHp2ZTUmMl4q
O28jQkVNV2shUmo8TClObFReeTF1Q0VrZ3pteVNqdnMqKjwjeU09UzhreERCMDJaYUhZIwp6TXE2
IzkjeGZXNk4qYTNJMFk7Y2p0KHozUiUkSWhJYDM3UmdPPWxuPEg+dVVmVWFnR2RIaTk0VkhMcXll
TzBeUlIKekM+XzlRai18KzQzfW1fQ1FAPks/JHJEfDMkdV5tdnQoTDN7cFd7dEUyV25eLVQkK2Ak
NEVmR29JfVpuYHt+bFVRCnojRSVuNDtAcEYzJVo1KEA7JldxZUJSckFVODM3PHliIzZ9dHZyZXkr
a3hNRGQ8RlhkPUQoaUpEKXhLS3BFWD0lMAp6blkjTDBVZjl6MW5jSThiXlBXVGFeND8wblBga2Rv
WnZ6fXxmSF9RQ2IjJDwrMTJEJjZfWW9UengjU3YzLWRnYWgKems1WkBBYy1wLWpMMlklOHZnfXZD
YHFkRi1qU35JWGcmKFZhJGpGWHIqR1FUVWh5dkxUSmFtYGBLPVhsYHlFMDxCCnpuP0hXeCRFVmQ8
PTJPOyE1Qio1N3NwRl5aej8+OUNsP0BwPnc1P21XdyFKbURecFo8WWl5ZzJ0Pyp0USY+Ui1QQwp6
PVBxUW9BKE8lYnB1NWpwXmFJNzBGJmxLfUM2YD9DaGdxbE90d24kTXB3cHpLanBKITY8MD4qcWsh
N0xDYVkmJX0KejNGdn5qKlBEcWxPM35zdStpPzZgYn1LJFNsdj9ASUNscypvNCtUaTZ5Vkxucmdf
Klo4JCQ/eV52WVBveTRiKHpSCnplM3BMb2hiNm9pUzw1czRYUyR5JHAlN1g7UEBRPTQkdFNCVD9N
JHNIJHUtd3A2WShZe2M9KmJiVXhKJkUyfCFKcAp6QjY3eklXMUdEQyVCQT1zMjhTKiZpQUBnOSpI
TFBxN1VyejJQT3BgJCR9U2ZydUt7RDRObUImN2ZjREA2ND5vYEgKelNxWH1sYnItQ0FlPn59VSVB
KGo2QFZTKk1VTj5pSz1JWnAjKipFfFFBRD87cmoyeURobEQ3dEclNWtoYT5uayVKCnpiSmQmWlkq
PzN8UE1xXkZpYnYqNDslRChLNGBifSYzcjYhfF9yPDNHUXkrbnYxaXN8O3w4fVQ4cnMma15mPj5p
Pwp6cWxhJDNgUjI5e2U5NF59KyFXIzwpaS0mO257JUZAd2dYa1A1Rko0MjFqM2xENGtnak0/ITBU
ZWBnUWNvdig4KzsKel9Qbih9Vz1IUz1JRU9Namd4eUZoY1Z3TjlSPGZLUWVod2NWWkdPVkdYNkBQ
XjZUNml5YSZvN0pUJDg1Pj1DZ2s+CnpRMGBwdzFmeEpqI345RUVWan5Ed01BfTBTSnYxRDVAPCUz
Qk47RyFEbilyJDZlK2k8dTdzZT1LST52PU1uYTI7RQp6SWU4WXdrNk1YRSUjXnxtbVltNiozMk1v
fUE7VUt7KlR2N1dDViZ7VllkRTkzM3E2Y3VTTWA0Rm1hcC01UzZhNVAKej4pQ2tFIys3a1p7a2I0
PWxKYG5VTFUhaERDaDhvdG9NKChMYn5wWnJLYGRoR3I7ZF57eGxAbmxLV240VFBUUkNFCnpTa0Ao
K2xoLWtVU1QkfWxrVWpxUjxCUXxAVStvaFY2TnlgaXAtMkRpKFBpPEE/PFhuTEZKaEtnWFk+SzN0
fXx5bwp6JXdyMzllbEhRPCMyXjtCdHMxJEtHcjNiby1ocyVCUUJ3Uk4lZFBEeVdrcTw1MXJoM3Mw
bXlhTlVSUW10UH08fSUKemcrMWAjMUx2K0B2LSReTkdzM1JuOTdHcExmSDg0bj5PKG9GMEJvP1Fo
d2FGUlNBWH5pXz9gX3NkfGRtdCpYfH1+CnpjYnwxd29BRkFERXpMYTB3ZkVSI2tHKHYwKHNBcjI5
TXc2fnV+ZiY3RGRfZHJVbXU5YCVDN2lvKj97d1BHO0YlcAp6dHl7UDMreip9bWRefkYzNjEoVTR1
PHYwZmtyOylReUFLJkw9OygyLVlYQ2tUdzw8c1IjeTdyaztJaGp1YHZBVnsKelZySlFgeDhBenpg
YGBRaTAjdGNgTEVXQj9KZTFMfGI0N21VTWpweyRafkhVYENtM2FDQE5gIz9EPjZ5b0BQWWR1CnpT
aClPKjwkRXZ3I0tsTUZyMGUramB0T1FPazhKOUM7eTw0TmZickt9ZCtwVEZJfGZ+MldJSTxLUyVD
THVlQ3piWgp6dEZPTWdfcTt6az8/WUx5OXNsU2ZrTTFNS0BJT2g7PFN1eGB2PU5KanRnSyVoWD9K
e0E/eT5wdj1ic2dpZEA1KDAKejQ9a1dgMFEkKEY+PFZgVnlNYVRBYVU/Y3o9VXNQQnRYI1FyK1Rz
fG42XiNZaHtuJXJWSkA9aHx8SVRSYT1EOXFFCno1MS1aaD9mQ21PMlA0T1dAbDw2cktGc2dDPSVT
MDNOMVQ+IyYrMX00YHxQdTBVJWNYcj9EUVQkPDhSXnNCMFN4OQp6QT1HRWZeI2RlRjBKVCN1a0x1
eiteNSskUkBmQy0mQkVqYTA7NG5NVnAoX0l3TD49TkI1RStOQkwtRCljLWRMUXMKejFmcEA/WlRp
ZUomeTI8SWpLYHpzZXZUYWZwcFh8Mj5oO3RgPntoa3NPKFRIKChUVHcwJGIkbnghalppNWN8e0U5
CnpwJHZAXmNvalUoaDVmQWRCYnklQ2hvOWVOQkx7TEpDLU5zcGNOfUIjWnE+XkFPRmdqYmppKGl0
IyNUT3cpJGtuIwp6anlyMF5qPytiVlB3Mj0wMVNHa31xMjJ3JjZIb04tK1BRMWpNXj1BaXBrdHBN
MSlnMXJUeUZoYFRYKUBZI35zNncKelB4VGNPRSpqS210JD02RWRUZl5gTTtDck1nZ05JJi12UntI
VFFNZit2JFklYHVHIVUmaV8xel57OVZEVy1aQGp9CnpsbTNESnVBYmlOK296TkZ7PiF9IUtMM31X
LX1UQ2ArdXRZNzdXYntwNk57TWwtaDF6WXNBLVojMXczfmlsJEw5JAp6OCZedWpPTSVuJm8+LW1q
MF9VWFhIXihLI0NwdEQobDRTVF5PMH5LSD0wTntjIWhya3EoQCFzMHprWXBCZUNjc1YKemVFIWgt
bjk8P2VyMSZOVnY1MUtxITFBeiNIJl5uZFRMKmxKZ0xRTDZ4JS1xcyFMQiN7Zlh1T1JRb1J1OFQk
Tn05CnpxMD98Jio5QE5MO3ByeWdOO2lVYXozez5kXlh8WHp7XyEwPGNrRGolJXJvYXYqdF5rcVVt
TGVWeVcoYmsmTSR1UAp6aSRSSmRmOWZHZEs1V1UhSmszMiphJj9+RTtGMENkQXh3e2x2M0c7Yyh6
RE0jYEAwY24qanBKX05mMGc0IzlUR3oKelMpRFFuXlRAc0kheE5DUGlBMjJhX2A1NFJIaGctK3p9
aHV5Mlp4NC1XPFAoSk5ZRmpJX2pHVW07cFBMZUFTM2F8Cno1ZntaZmxnZ2YpMExrK2x4eHBpfEUm
KERKPGhkU2VPcmVeKSYkPEZRLVU7cGc9fSYqVWpAeWppI143Zlc8YX48TQp6QTtHZF45M3NuPGRH
ckJAQ1hnbklPbntrVkN2ZnRgRjZpVl9QZCY5VEl5PEZqQCM0ak1ten0pcTszPW5eKHRYLSMKenJ3
em4tJmR+ZyE+WDZ2OGNoQk1ZXjd2QCU7RjAqZHJqc3ZrZVI8eEY5WHNhN0pDYj0zaStqYU17Z1Yl
WGtwckVXCnokZTU9fEdrRUNIJE99SCNaVHslZishU0NJIXsxaClvR258bj85I1h6LUAqTTY5Vll9
Ym42JmNIOz43Pz0hYG4lSwp6UEV2TjBhMUktamhOb3FKakJeZz1oWWtRU3JlfmZwenpKVGlyfVcz
VHU5PF9pa1IkaUheIU9hKk9JeD5Ze256UzcKel92TSNnZWt7Jn5LWj0hRyVgVzhKS3xsPHAxZHha
OCV7bGQpdzx2LU83eyVkUjhJKjNLUWhYcHMtPGF9QDBZeykxCnpEXnQhSyV7bDhxQ05EKStIc18k
XjBYN14jdkhOfW1YNlJQe2hRaCg2T1BBZ3J5WUt5PkcoZ2I/KWhYbGJQPGZ7NAp6NUorMlglQSh6
WSRtI2Z7KTE+aEQlQj19Vis7YCVldWRvP1FVd310ciVwNlRCcEpQLUNIODFGM3IhRXhtZnt3KGAK
ekN+Z20wZVgqZVZSeDk0anwxZDVoeDVja2B6SmZtdldzPD5BTV5mV0NoU0piMjBtLWBmMH5GM3Q9
Jn5iQWVkUEtRCno0OTNSRDZyUFRySnBSZ040ZTAwfTllSnNDai19K3VWYXBEVEtafEBEU2dHM3RG
cTlgRXpfO1c1PiZjUE8xfEF1Qwp6Xk5GSno5RyskWFhfalQzJXYmSGY4OWFUcz5se35zO3pifFlH
Y0ozblRnRV5pblpER1E9OXV6Oz1TS3pjPTxXWGEKejdRP3E9dTZieFEwbU1tNmpEKyorO35zND96
SV4+QG9DdTtwR0cpRzFHTm01bHgmaT5DMl4heG5XZTNJajtKZjtrCnpBWnJ6RGp3NEBFVl4rMilw
N04zcypQTktrSm1ZbEU8SF5mP0BrSGxfQElDRXxPMEU3N19kd2pFe1olfXl7Rl51Kgp6Ul84PHhJ
fWJlKnVNM0xvP0tGJC0pSGRoUCUwQHVjQzVFeSg4KnxfczRTM00jQms/MX51Z0FVU0tiUFIpcVpZ
dHcKekIwaUxmMyhMOWojUU1zKD17P2A4RGQhdXtQMyN0dll1SFJYTTlQRnNLSEZmfHM8fWcpRllW
dXx8MmxuUUFnNmg4Cno8RkpLfnRMK2NvYztrKDR7Xm1Fb2BSfndhOT03SEtaMyY9Q2sjdjlEK14m
bFklIWF0SWQ/M0pFJFJTMkN7S3g7Kgp6cEB5PiMmTjFyZktVMyRSdzdQPG95YEF+V1g/aWk5elZJ
RjM/VGliP1B2WUlpe2FkemRgRUpQQ2VsPjFaMEY0KkgKenNBX1RpJU1OUX1OM00qK25WK35XM0dx
PXVyeiUkWV9sRXtQbGhyP201cl4heSptMy1HN0BIJH45PFdTcCVVTnBxClllLSMpfm5RbUtOZzgl
PmswNypxb002TjwkZjxmdEtvZDVzOwoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNGY0YmZlZTNh
Y2Q1YWFhYzU2ZWY3ZTYwYTliYTI1NWJmOWIwMDMxNC4uMTVmODVkZGM2OTAzMWNmZjI4ZmRlNjlk
YzE3YzI5ZTc5MDE3MWZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE2MzIsNiArMTYzMiw3
IEBAIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyOW1vdXNlRG93bkVQN05TRXZlbnQKIF9fWk43
V2ViQ29yZTEyUG9wdXBNZW51TWFjQzFFUE5TXzE1UG9wdXBNZW51Q2xpZW50RQogX19aTjdXZWJD
b3JlMTN0b0RldmljZVNwYWNlRVJLTlNfOUZsb2F0UmVjdEVQOE5TV2luZG93CiBfX1pON1dlYkNv
cmUxNUdyYXBoaWNzQ29udGV4dEMxRVA5Q0dDb250ZXh0CitfX1pON1dlYkNvcmUxNUdyYXBoaWNz
Q29udGV4dDE1ZHJhd05hdGl2ZUltYWdlRVA3Q0dJbWFnZVJLTlNfOUZsb2F0U2l6ZUVOU18xMENv
bG9yU3BhY2VFUktOU185RmxvYXRSZWN0RVM5X05TXzE3Q29tcG9zaXRlT3BlcmF0b3JFTlNfMTZJ
bWFnZU9yaWVudGF0aW9uRQogX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhQzFFUDZOU0Zv
bnRmYmJiTlNfMTVGb250T3JpZW50YXRpb25FTlNfMTZGb250V2lkdGhWYXJpYW50RQogX19aTjdX
ZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhQzJFUDZOU0ZvbnRmYmJiTlNfMTVGb250T3JpZW50YXRp
b25FTlNfMTZGb250V2lkdGhWYXJpYW50RQogX19aTjdXZWJDb3JlMTZjb2xvckZyb21OU0NvbG9y
RVA3TlNDb2xvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDJkODFjZTZlNDBmYTc5ODZhMTdlNWZlMThmM2ZlNTIzMWNlYzgzNGUu
LjA1ZmJiODg5OGNkYWZiZTRmOTQxZTI5YzY3ZGY2YjU5Yjc1YzE2ODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkzMSwxMCAr
OTMxLDYgQEAKIAkJMzE5RTY5QjUxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbkxp
c3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5
RTY5QUYxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuY3BwICovOyB9Owog
CQkzMTlFNjlCNjEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5RTY5QjAxMzI5OUJC
RDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuaCAqLzsgfTsKIAkJMzE5RkJENUYxNUQy
RjQ2NDAwOTY0MEE2IC8qIENhY2hlZEltYWdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTlGQkQ1RDE1RDJGNDQ0MDA5NjQwQTYgLyogQ2Fj
aGVkSW1hZ2VDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQkzMUE5NjNBNTE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b24ucG5nIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUE5NjNBMTE2
NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b24ucG5nICovOyB9OwotCQkzMUE5NjNBNjE2NTVE
NDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25AMngucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUE5NjNBMjE2NTVENDI2MDAwRDQ2NDUgLyogc3Rh
cnRCdXR0b25AMngucG5nICovOyB9OwotCQkzMUE5NjNBNzE2NTVENDI2MDAwRDQ2NDUgLyogc3Rh
cnRCdXR0b25QcmVzc2VkLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzFBOTYzQTMxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3Nl
ZC5wbmcgKi87IH07Ci0JCTMxQTk2M0E4MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvblBy
ZXNzZWRAMngucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMUE5NjNBNDE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25QcmVzc2VkQDJ4LnBu
ZyAqLzsgfTsKIAkJMzFDMEZGMjEwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
QzBGRjFCMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgKi87IH07
CiAJCTMxQzBGRjIyMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUMwRTRD
RUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmggKi87IH07CiAJCTMxQzBGRjI0
MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUUwRTRDRUI2RTAwN0Q2
RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgKi87IH07CkBAIC04MTIxLDEwICs4MTE3
LDYgQEAKIAkJMzE5RTY5QjAxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbkxpc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0QW5pbWF0aW9uTGlzdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTlFNjlCMTEzMjk5QkJEMDA0QUM5MUEg
LyogV2ViS2l0QW5pbWF0aW9uTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0
QW5pbWF0aW9uTGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxOUZCRDVE
MTVEMkY0NDQwMDk2NDBBNiAvKiBDYWNoZWRJbWFnZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDYWNoZWRJbWFnZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkzMUE5NjNBMTE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b24ucG5nICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5n
OyBwYXRoID0gc3RhcnRCdXR0b24ucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkz
MUE5NjNBMjE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25AMngucG5nICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0g
InN0YXJ0QnV0dG9uQDJ4LnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxQTk2
M0EzMTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvblByZXNzZWQucG5nICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0g
c3RhcnRCdXR0b25QcmVzc2VkLnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFB
OTYzQTQxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZEAyeC5wbmcgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBh
dGggPSAic3RhcnRCdXR0b25QcmVzc2VkQDJ4LnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTMxQzBGRjFCMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRBbmltYXRpb25F
dmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQzBGRjFDMEU0Q0VCNkUw
MDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJLaXRBbmltYXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzMUMwRkYxRDBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbkV2ZW50LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NTI2LDEwICsxNDUxOCw2IEBACiAJCQkJODUx
MzZDOTQwQUVENjY1OTAwRjkwQTNEIC8qIHNvdXRoRWFzdFJlc2l6ZUN1cnNvci5wbmcgKi8sCiAJ
CQkJODUxMzZDOTUwQUVENjY1OTAwRjkwQTNEIC8qIHNvdXRoUmVzaXplQ3Vyc29yLnBuZyAqLywK
IAkJCQk4NTEzNkM5NjBBRUQ2NjU5MDBGOTBBM0QgLyogc291dGhXZXN0UmVzaXplQ3Vyc29yLnBu
ZyAqLywKLQkJCQkzMUE5NjNBMTE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b24ucG5nICov
LAotCQkJCTMxQTk2M0EyMTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvbkAyeC5wbmcgKi8s
Ci0JCQkJMzFBOTYzQTMxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZC5wbmcg
Ki8sCi0JCQkJMzFBOTYzQTQxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZEAy
eC5wbmcgKi8sCiAJCQkJOTMxNTNCREIxNDE5NTlCQjAwRkNGNUJFIC8qIHRleHRBcmVhUmVzaXpl
Q29ybmVyLnBuZyAqLywKIAkJCQk5MzcwOTE4QzE0MTZEODZCMDA0NzczMzMgLyogdGV4dEFyZWFS
ZXNpemVDb3JuZXJAMngucG5nICovLAogCQkJCTQ2RDRGMjQ4MEFGOTdFODEwMDM1Mzg1QSAvKiB2
ZXJ0aWNhbFRleHRDdXJzb3IucG5nICovLApAQCAtMjYwMzIsMTAgKzI2MDIwLDYgQEAKIAkJCQk4
NTEzNkNBODBBRUQ2NjU5MDBGOTBBM0QgLyogd2VzdFJlc2l6ZUN1cnNvci5wbmcgaW4gUmVzb3Vy
Y2VzICovLAogCQkJCTFBQjFBRTdBMEMwNTFGREUwMDEzOUY0RiAvKiB6b29tSW5DdXJzb3IucG5n
IGluIFJlc291cmNlcyAqLywKIAkJCQkxQUIxQUU3QjBDMDUxRkRFMDAxMzlGNEYgLyogem9vbU91
dEN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAotCQkJCTMxQTk2M0E1MTY1NUQ0MjYwMDBENDY0
NSAvKiBzdGFydEJ1dHRvbi5wbmcgaW4gUmVzb3VyY2VzICovLAotCQkJCTMxQTk2M0E2MTY1NUQ0
MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvbkAyeC5wbmcgaW4gUmVzb3VyY2VzICovLAotCQkJCTMx
QTk2M0E3MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvblByZXNzZWQucG5nIGluIFJlc291
cmNlcyAqLywKLQkJCQkzMUE5NjNBODE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25QcmVz
c2VkQDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApp
bmRleCAzNWMzMjMyOGMzNDNhMGY1NjkzMjk2ZDcwNTcxMTc3MzA4YmFhYjI5Li5kODdhZGUxMzE3
MGZmYzQ4ZDE0NWExMGYyZDYwYWNkMDY3MjVhOWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJQb3B1cE1lbnUuaCIKICNpbmNsdWRl
ICJQb3B1cE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgor
I2luY2x1ZGUgIlJlbmRlclNuYXBzaG90dGVkUGx1Z0luLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlw
ZXMuaCIKICNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJXZWJDb3JlS2V5
Ym9hcmRVSU1vZGUuaCIKQEAgLTQ3LDMzNCArNDgsMzM2IEBAIGNsYXNzIE5TUmVzcG9uZGVyOwog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0Owot
ICAgIGNsYXNzIERhdGVUaW1lQ2hvb3NlcjsKLSAgICBjbGFzcyBEYXRlVGltZUNob29zZXJDbGll
bnQ7Ci0gICAgY2xhc3MgRWxlbWVudDsKLSAgICBjbGFzcyBGaWxlQ2hvb3NlcjsKLSAgICBjbGFz
cyBGaWxlSWNvbkxvYWRlcjsKLSAgICBjbGFzcyBGbG9hdFJlY3Q7Ci0gICAgY2xhc3MgRnJhbWU7
Ci0gICAgY2xhc3MgR2VvbG9jYXRpb247Ci0gICAgY2xhc3MgR3JhcGhpY3NMYXllcjsKLSAgICBj
bGFzcyBIVE1MSW5wdXRFbGVtZW50OwotICAgIGNsYXNzIEhpdFRlc3RSZXN1bHQ7Ci0gICAgY2xh
c3MgSW50UmVjdDsKLSAgICBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOwotICAgIGNsYXNzIE5vZGU7
Ci0gICAgY2xhc3MgUGFnZTsKLSAgICBjbGFzcyBQYWdlUG9wdXA7Ci0gICAgY2xhc3MgUGFnZVBv
cHVwQ2xpZW50OwotICAgIGNsYXNzIFBhZ2VQb3B1cERyaXZlcjsKLSAgICBjbGFzcyBQb3B1cE1l
bnVDbGllbnQ7Ci0gICAgY2xhc3MgU2VjdXJpdHlPcmlnaW47Ci0gICAgY2xhc3MgR3JhcGhpY3ND
b250ZXh0M0Q7Ci0gICAgY2xhc3MgV2lkZ2V0OwotCi0gICAgc3RydWN0IERhdGVUaW1lQ2hvb3Nl
clBhcmFtZXRlcnM7Ci0gICAgc3RydWN0IEZyYW1lTG9hZFJlcXVlc3Q7Ci0gICAgc3RydWN0IFZp
ZXdwb3J0QXJndW1lbnRzOwotICAgIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKK2NsYXNzIEFjY2Vz
c2liaWxpdHlPYmplY3Q7CitjbGFzcyBEYXRlVGltZUNob29zZXI7CitjbGFzcyBEYXRlVGltZUNo
b29zZXJDbGllbnQ7CitjbGFzcyBFbGVtZW50OworY2xhc3MgRmlsZUNob29zZXI7CitjbGFzcyBG
aWxlSWNvbkxvYWRlcjsKK2NsYXNzIEZsb2F0UmVjdDsKK2NsYXNzIEZyYW1lOworY2xhc3MgR2Vv
bG9jYXRpb247CitjbGFzcyBHcmFwaGljc0xheWVyOworY2xhc3MgSFRNTElucHV0RWxlbWVudDsK
K2NsYXNzIEhpdFRlc3RSZXN1bHQ7CitjbGFzcyBJbnRSZWN0OworY2xhc3MgTmF2aWdhdGlvbkFj
dGlvbjsKK2NsYXNzIE5vZGU7CitjbGFzcyBQYWdlOworY2xhc3MgUGFnZVBvcHVwOworY2xhc3Mg
UGFnZVBvcHVwQ2xpZW50OworY2xhc3MgUGFnZVBvcHVwRHJpdmVyOworY2xhc3MgUG9wdXBNZW51
Q2xpZW50OworY2xhc3MgU2VjdXJpdHlPcmlnaW47CitjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsK
K2NsYXNzIFdpZGdldDsKKworc3RydWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnM7CitzdHJ1
Y3QgRnJhbWVMb2FkUmVxdWVzdDsKK3N0cnVjdCBWaWV3cG9ydEFyZ3VtZW50czsKK3N0cnVjdCBX
aW5kb3dGZWF0dXJlczsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBj
bGFzcyBHcmFwaGljc0xheWVyOwotICAgIGNsYXNzIEdyYXBoaWNzTGF5ZXJGYWN0b3J5OworY2xh
c3MgR3JhcGhpY3NMYXllcjsKK2NsYXNzIEdyYXBoaWNzTGF5ZXJGYWN0b3J5OwogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICBjbGFzcyBDb2xvckNob29zZXI7Ci0g
ICAgY2xhc3MgQ29sb3JDaG9vc2VyQ2xpZW50OworY2xhc3MgQ29sb3JDaG9vc2VyOworY2xhc3Mg
Q29sb3JDaG9vc2VyQ2xpZW50OwogI2VuZGlmCiAKICNpZiBQTEFURk9STShXSU4pICYmIFVTRShB
VkZPVU5EQVRJT04pCi0gICAgc3RydWN0IEdyYXBoaWNzRGV2aWNlQWRhcHRlcjsKK3N0cnVjdCBH
cmFwaGljc0RldmljZUFkYXB0ZXI7CiAjZW5kaWYKIAotICAgIGNsYXNzIENocm9tZUNsaWVudCB7
Ci0gICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJveWVkKCkgPSAw
OwotICAgICAgICAKLSAgICAgICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgRmxv
YXRSZWN0JikgPSAwOwotICAgICAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCkgPSAw
OwotICAgICAgICAKLSAgICAgICAgdmlydHVhbCBGbG9hdFJlY3QgcGFnZVJlY3QoKSA9IDA7Ci0g
ICAgICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKSA9IDA7Ci0gICAgICAgIHZpcnR1
YWwgdm9pZCB1bmZvY3VzKCkgPSAwOwotCi0gICAgICAgIHZpcnR1YWwgYm9vbCBjYW5UYWtlRm9j
dXMoRm9jdXNEaXJlY3Rpb24pID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHRha2VGb2N1cyhG
b2N1c0RpcmVjdGlvbikgPSAwOwotCi0gICAgICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkTm9kZUNo
YW5nZWQoTm9kZSopID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGZvY3VzZWRGcmFtZUNoYW5n
ZWQoRnJhbWUqKSA9IDA7Ci0KLSAgICAgICAgLy8gVGhlIEZyYW1lIHBvaW50ZXIgcHJvdmlkZXMg
dGhlIENocm9tZUNsaWVudCB3aXRoIGNvbnRleHQgYWJvdXQgd2hpY2gKLSAgICAgICAgLy8gRnJh
bWUgd2FudHMgdG8gY3JlYXRlIHRoZSBuZXcgUGFnZS4gIEFsc28sIHRoZSBuZXdseSBjcmVhdGVk
IHdpbmRvdwotICAgICAgICAvLyBzaG91bGQgbm90IGJlIHNob3duIHRvIHRoZSB1c2VyIHVudGls
IHRoZSBDaHJvbWVDbGllbnQgb2YgdGhlIG5ld2x5Ci0gICAgICAgIC8vIGNyZWF0ZWQgUGFnZSBo
YXMgaXRzIHNob3cgbWV0aG9kIGNhbGxlZC4KLSAgICAgICAgLy8gVGhlIEZyYW1lTG9hZFJlcXVl
c3QgcGFyYW1ldGVyIGlzIG9ubHkgZm9yIENocm9tZUNsaWVudCB0byBjaGVjayBpZiB0aGUKLSAg
ICAgICAgLy8gcmVxdWVzdCBjb3VsZCBiZSBmdWxmaWxsZWQuICBUaGUgQ2hyb21lQ2xpZW50IHNo
b3VsZCBub3QgbG9hZCB0aGUgcmVxdWVzdC4KLSAgICAgICAgdmlydHVhbCBQYWdlKiBjcmVhdGVX
aW5kb3coRnJhbWUqLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVy
ZXMmLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQg
c2hvdygpID0gMDsKLQotICAgICAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuTW9kYWwoKSA9IDA7Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBydW5Nb2RhbCgpID0gMDsKLQotICAgICAgICB2aXJ0dWFsIHZv
aWQgc2V0VG9vbGJhcnNWaXNpYmxlKGJvb2wpID0gMDsKLSAgICAgICAgdmlydHVhbCBib29sIHRv
b2xiYXJzVmlzaWJsZSgpID0gMDsKLSAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRT
dGF0dXNiYXJWaXNpYmxlKGJvb2wpID0gMDsKLSAgICAgICAgdmlydHVhbCBib29sIHN0YXR1c2Jh
clZpc2libGUoKSA9IDA7Ci0gICAgICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xs
YmFyc1Zpc2libGUoYm9vbCkgPSAwOwotICAgICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsYmFyc1Zp
c2libGUoKSA9IDA7Ci0gICAgICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0TWVudWJhclZp
c2libGUoYm9vbCkgPSAwOwotICAgICAgICB2aXJ0dWFsIGJvb2wgbWVudWJhclZpc2libGUoKSA9
IDA7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIHNldFJlc2l6YWJsZShib29sKSA9IDA7Ci0gICAg
ICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291
cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVu
c2lnbmVkIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKSA9IDA7Ci0KLSAg
ICAgICAgdmlydHVhbCBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpID0gMDsK
LSAgICAgICAgdmlydHVhbCBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIEZyYW1lKiBmcmFtZSkgPSAwOwotCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCBjbG9zZVdpbmRvd1Nvb24oKSA9IDA7Ci0gICAgICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQg
cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiwgY29uc3QgU3RyaW5nJikgPSAwOwotICAgICAgICB2
aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmKSA9
IDA7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiBy
ZXN1bHQpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3Qg
U3RyaW5nJikgPSAwOwotICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW50ZXJydXB0SmF2YVNj
cmlwdCgpID0gMDsKLSAgICAgICAgdmlydHVhbCBLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9k
ZSgpID0gMDsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQqIHdlYlZpZXcoKSBjb25zdCA9IDA7Ci0K
LSAgICAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QgPSAwOwot
Ci0gICAgICAgIC8vIE1ldGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgotICAgICAgICB2aXJ0dWFs
IHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJlY3QmLCBib29sKSA9IDA7Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRS
ZWN0JiwgYm9vbCkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRz
Rm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiwgYm9vbCkgPSAwOwotICAgICAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVj
dCYpID0gMDsKK2NsYXNzIENocm9tZUNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lk
IGNocm9tZURlc3Ryb3llZCgpID0gMDsKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93
UmVjdChjb25zdCBGbG9hdFJlY3QmKSA9IDA7CisgICAgdmlydHVhbCBGbG9hdFJlY3Qgd2luZG93
UmVjdCgpID0gMDsKKyAgICAKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBwYWdlUmVjdCgpID0gMDsK
KyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVu
Zm9jdXMoKSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgY2FuVGFrZUZvY3VzKEZvY3VzRGlyZWN0
aW9uKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRha2VGb2N1cyhGb2N1c0RpcmVjdGlvbikgPSAw
OworCisgICAgdmlydHVhbCB2b2lkIGZvY3VzZWROb2RlQ2hhbmdlZChOb2RlKikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKikgPSAwOworCisgICAgLy8g
VGhlIEZyYW1lIHBvaW50ZXIgcHJvdmlkZXMgdGhlIENocm9tZUNsaWVudCB3aXRoIGNvbnRleHQg
YWJvdXQgd2hpY2gKKyAgICAvLyBGcmFtZSB3YW50cyB0byBjcmVhdGUgdGhlIG5ldyBQYWdlLiBB
bHNvLCB0aGUgbmV3bHkgY3JlYXRlZCB3aW5kb3cKKyAgICAvLyBzaG91bGQgbm90IGJlIHNob3du
IHRvIHRoZSB1c2VyIHVudGlsIHRoZSBDaHJvbWVDbGllbnQgb2YgdGhlIG5ld2x5CisgICAgLy8g
Y3JlYXRlZCBQYWdlIGhhcyBpdHMgc2hvdyBtZXRob2QgY2FsbGVkLgorICAgIC8vIFRoZSBGcmFt
ZUxvYWRSZXF1ZXN0IHBhcmFtZXRlciBpcyBvbmx5IGZvciBDaHJvbWVDbGllbnQgdG8gY2hlY2sg
aWYgdGhlCisgICAgLy8gcmVxdWVzdCBjb3VsZCBiZSBmdWxmaWxsZWQuIFRoZSBDaHJvbWVDbGll
bnQgc2hvdWxkIG5vdCBsb2FkIHRoZSByZXF1ZXN0LgorICAgIHZpcnR1YWwgUGFnZSogY3JlYXRl
V2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1
cmVzJiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2hv
dygpID0gMDsKKworICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5Nb2RhbCgpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcnVuTW9kYWwoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbGJhcnNW
aXNpYmxlKGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgdG9vbGJhcnNWaXNpYmxlKCkgPSAw
OworICAgIAorICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNiYXJWaXNpYmxlKGJvb2wpID0gMDsK
KyAgICB2aXJ0dWFsIGJvb2wgc3RhdHVzYmFyVmlzaWJsZSgpID0gMDsKKyAgICAKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0U2Nyb2xsYmFyc1Zpc2libGUoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgYm9v
bCBzY3JvbGxiYXJzVmlzaWJsZSgpID0gMDsKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TWVu
dWJhclZpc2libGUoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBtZW51YmFyVmlzaWJsZSgp
ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRSZXNpemFibGUoYm9vbCkgPSAwOworICAgIAor
ICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGlu
ZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkgPSAwOworCisgICAgdmlydHVhbCBib29s
IGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wg
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUq
KSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2VXaW5kb3dTb29uKCkgPSAwOworICAgIAor
ICAgIHZpcnR1YWwgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqLCBjb25zdCBTdHJpbmcm
KSA9IDA7CisgICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiwgY29u
c3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZy
YW1lKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwg
U3RyaW5nJiByZXN1bHQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChj
b25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCBib29sIHNob3VsZEludGVycnVwdEphdmFT
Y3JpcHQoKSA9IDA7CisgICAgdmlydHVhbCBLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgp
ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0ID0gMDsKKworICAgIHZp
cnR1YWwgSW50UmVjdCB3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0ID0gMDsKKworICAgIC8vIE1l
dGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgorICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9v
dFZpZXcoY29uc3QgSW50UmVjdCYsIGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxp
ZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYsIGJvb2wpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0
JiwgYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYsIGNv
bnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0JikgPSAwOwogI2lmIFVTRShUSUxFRF9CQUNLSU5H
X1NUT1JFKQotICAgICAgICB2aXJ0dWFsIHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNv
bnN0IEludFBvaW50JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1
ZXN0ZWQoY29uc3QgSW50UG9pbnQmKSA9IDA7CiAjZW5kaWYKLSAgICAgICAgdmlydHVhbCBJbnRQ
b2ludCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBvaW50JikgY29uc3QgPSAwOwotICAgICAg
ICB2aXJ0dWFsIEludFJlY3Qgcm9vdFZpZXdUb1NjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3Qg
PSAwOwotICAgICAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGll
bnQoKSBjb25zdCA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENo
YW5nZSgpIGNvbnN0ID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBD
dXJzb3ImKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1v
dXNlTW92ZXMoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9Sb290Vmll
dyhjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEludFJlY3Qgcm9vdFZp
ZXdUb1NjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUGxhdGZv
cm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3ImKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEN1
cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKSA9IDA7CiAjaWYgRU5BQkxFKFJFUVVFU1Rf
QU5JTUFUSU9OX0ZSQU1FKSAmJiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQot
ICAgICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBbmltYXRpb24oKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkgPSAwOwogI2VuZGlmCi0gICAgICAgIC8vIEVuZCBt
ZXRob2RzIHVzZWQgYnkgSG9zdFdpbmRvdy4KKyAgICAvLyBFbmQgbWV0aG9kcyB1c2VkIGJ5IEhv
c3RXaW5kb3cuCiAKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0
aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJikgY29uc3QgeyB9CisgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdw
b3J0QXJndW1lbnRzJikgY29uc3QgeyB9CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRz
U2l6ZUNoYW5nZWQoRnJhbWUqLCBjb25zdCBJbnRTaXplJikgY29uc3QgPSAwOwotICAgICAgICB2
aXJ0dWFsIHZvaWQgbGF5b3V0VXBkYXRlZChGcmFtZSopIGNvbnN0IHsgfQotICAgICAgICB2aXJ0
dWFsIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdCB7IH07IC8v
IEN1cnJlbnRseSBvbmx5IE1hYyBoYXMgYSBub24gZW1wdHkgaW1wbGVtZW50YXRpb24uCi0gICAg
ICAgCi0gICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VC
ZUJ1dHRvbihSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24p
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB1bmF2YWlsYWJs
ZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCosIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVn
aW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBt
b3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9k
aWZpZXJGbGFncykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZy
YW1lKiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0
VXBkYXRlZChGcmFtZSopIGNvbnN0IHsgfQorICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50
b1ZpZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0IHsgfTsgLy8gQ3VycmVudGx5IG9ubHkgTWFjIGhh
cyBhIG5vbiBlbXB0eSBpbXBsZW1lbnRhdGlvbi4KIAotICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0
VG9vbFRpcChjb25zdCBTdHJpbmcmLCBUZXh0RGlyZWN0aW9uKSA9IDA7CisgICAgdmlydHVhbCBi
b29sIHNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFJlbmRlckVtYmVkZGVk
T2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKEVsZW1l
bnQqLCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNv
bnN0IHsgfQorICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBI
aXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykgPSAwOwogCi0gICAgICAgIHZp
cnR1YWwgdm9pZCBwcmludChGcmFtZSopID0gMDsKLSAgICAgICAgdmlydHVhbCBib29sIHNob3Vs
ZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24pIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJpbmcmLCBUZXh0RGlyZWN0aW9uKSA9IDA7
CisKKyAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJhbWUqKSA9IDA7CisgICAgdmlydHVhbCBib29s
IHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24pIGNvbnN0ID0gMDsK
IAogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0gICAgICAgIHZpcnR1YWwgdm9pZCBleGNlZWRl
ZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJp
bmcmIGRhdGFiYXNlTmFtZSkgPSAwOwogI2VuZGlmCiAKLSAgICAgICAgLy8gQ2FsbGJhY2sgaW52
b2tlZCB3aGVuIHRoZSBhcHBsaWNhdGlvbiBjYWNoZSBmYWlscyB0byBzYXZlIGEgY2FjaGUgb2Jq
ZWN0Ci0gICAgICAgIC8vIGJlY2F1c2Ugc3RvcmluZyBpdCB3b3VsZCBncm93IHRoZSBkYXRhYmFz
ZSBmaWxlIHBhc3QgaXRzIGRlZmluZWQgbWF4aW11bQotICAgICAgICAvLyBzaXplIG9yIHBhc3Qg
dGhlIGFtb3VudCBvZiBmcmVlIHNwYWNlIG9uIHRoZSBkZXZpY2UuIAotICAgICAgICAvLyBUaGUg
Y2hyb21lIGNsaWVudCB3b3VsZCBuZWVkIHRvIHRha2Ugc29tZSBhY3Rpb24gc3VjaCBhcyBldmlj
dGluZyBzb21lCi0gICAgICAgIC8vIG9sZCBjYWNoZXMuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBy
ZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpID0gMDsKLQotICAgICAg
ICAvLyBDYWxsYmFjayBpbnZva2VkIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGNhY2hlIG9yaWdpbiBx
dW90YSBpcyByZWFjaGVkLiBUaGlzCi0gICAgICAgIC8vIG1lYW5zIHRoYXQgdGhlIHJlc291cmNl
cyBhdHRlbXB0aW5nIHRvIGJlIGNhY2hlZCB2aWEgdGhlIG1hbmlmZXN0IGFyZQotICAgICAgICAv
LyBtb3JlIHRoYW4gYWxsb3dlZCBvbiB0aGlzIG9yaWdpbi4gVGhpcyBjYWxsYmFjayBhbGxvd3Mg
dGhlIGNocm9tZSBjbGllbnQKLSAgICAgICAgLy8gdG8gdGFrZSBhY3Rpb24sIHN1Y2ggYXMgcHJv
bXB0aW5nIHRoZSB1c2VyIHRvIGFzayB0byBpbmNyZWFzZSB0aGUgcXVvdGEKLSAgICAgICAgLy8g
Zm9yIHRoaXMgb3JpZ2luLiBUaGUgdG90YWxTcGFjZU5lZWRlZCBwYXJhbWV0ZXIgaXMgdGhlIHRv
dGFsIGFtb3VudCBvZgotICAgICAgICAvLyBzdG9yYWdlLCBpbiBieXRlcywgbmVlZGVkIHRvIHN0
b3JlIHRoZSBuZXcgY2FjaGUgYWxvbmcgd2l0aCBhbGwgb2YgdGhlCi0gICAgICAgIC8vIG90aGVy
IGV4aXN0aW5nIGNhY2hlcyBmb3IgdGhlIG9yaWdpbiB0aGF0IHdvdWxkIG5vdCBiZSByZXBsYWNl
ZCBieQotICAgICAgICAvLyB0aGUgbmV3IGNhY2hlLgotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVh
Y2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0X3Qg
dG90YWxTcGFjZU5lZWRlZCkgPSAwOworICAgIC8vIENhbGxiYWNrIGludm9rZWQgd2hlbiB0aGUg
YXBwbGljYXRpb24gY2FjaGUgZmFpbHMgdG8gc2F2ZSBhIGNhY2hlIG9iamVjdAorICAgIC8vIGJl
Y2F1c2Ugc3RvcmluZyBpdCB3b3VsZCBncm93IHRoZSBkYXRhYmFzZSBmaWxlIHBhc3QgaXRzIGRl
ZmluZWQgbWF4aW11bQorICAgIC8vIHNpemUgb3IgcGFzdCB0aGUgYW1vdW50IG9mIGZyZWUgc3Bh
Y2Ugb24gdGhlIGRldmljZS4gCisgICAgLy8gVGhlIGNocm9tZSBjbGllbnQgd291bGQgbmVlZCB0
byB0YWtlIHNvbWUgYWN0aW9uIHN1Y2ggYXMgZXZpY3Rpbmcgc29tZQorICAgIC8vIG9sZCBjYWNo
ZXMuCisgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFj
ZU5lZWRlZCkgPSAwOworCisgICAgLy8gQ2FsbGJhY2sgaW52b2tlZCB3aGVuIHRoZSBhcHBsaWNh
dGlvbiBjYWNoZSBvcmlnaW4gcXVvdGEgaXMgcmVhY2hlZC4gVGhpcworICAgIC8vIG1lYW5zIHRo
YXQgdGhlIHJlc291cmNlcyBhdHRlbXB0aW5nIHRvIGJlIGNhY2hlZCB2aWEgdGhlIG1hbmlmZXN0
IGFyZQorICAgIC8vIG1vcmUgdGhhbiBhbGxvd2VkIG9uIHRoaXMgb3JpZ2luLiBUaGlzIGNhbGxi
YWNrIGFsbG93cyB0aGUgY2hyb21lIGNsaWVudAorICAgIC8vIHRvIHRha2UgYWN0aW9uLCBzdWNo
IGFzIHByb21wdGluZyB0aGUgdXNlciB0byBhc2sgdG8gaW5jcmVhc2UgdGhlIHF1b3RhCisgICAg
Ly8gZm9yIHRoaXMgb3JpZ2luLiBUaGUgdG90YWxTcGFjZU5lZWRlZCBwYXJhbWV0ZXIgaXMgdGhl
IHRvdGFsIGFtb3VudCBvZgorICAgIC8vIHN0b3JhZ2UsIGluIGJ5dGVzLCBuZWVkZWQgdG8gc3Rv
cmUgdGhlIG5ldyBjYWNoZSBhbG9uZyB3aXRoIGFsbCBvZiB0aGUKKyAgICAvLyBvdGhlciBleGlz
dGluZyBjYWNoZXMgZm9yIHRoZSBvcmlnaW4gdGhhdCB3b3VsZCBub3QgYmUgcmVwbGFjZWQgYnkK
KyAgICAvLyB0aGUgbmV3IGNhY2hlLgorICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRp
b25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVl
ZGVkKSA9IDA7CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpIHx8IEVOQUJMRShEUkFH
R0FCTEVfUkVHSU9OKQotICAgICAgICB2aXJ0dWFsIHZvaWQgYW5ub3RhdGVkUmVnaW9uc0NoYW5n
ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgYW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKTsKICNlbmRp
ZgogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwb3B1bGF0ZVZpc2l0ZWRMaW5rcygpOworICAgIHZp
cnR1YWwgdm9pZCBwb3B1bGF0ZVZpc2l0ZWRMaW5rcygpOwogCi0gICAgICAgIHZpcnR1YWwgRmxv
YXRSZWN0IGN1c3RvbUhpZ2hsaWdodFJlY3QoTm9kZSosIGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgY29uc3QgRmxvYXRSZWN0JiBsaW5lUmVjdCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwYWlu
dEN1c3RvbUhpZ2hsaWdodChOb2RlKiwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBG
bG9hdFJlY3QmIGJveFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgbGluZVJlY3QsCi0gICAgICAgICAg
ICBib29sIGJlaGluZFRleHQsIGJvb2wgZW50aXJlTGluZSk7Ci0gICAgICAgICAgICAKLSAgICAg
ICAgdmlydHVhbCBib29sIHNob3VsZFJlcGxhY2VXaXRoR2VuZXJhdGVkRmlsZUZvclVwbG9hZChj
b25zdCBTdHJpbmcmIHBhdGgsIFN0cmluZyYgZ2VuZXJhdGVkRmlsZW5hbWUpOwotICAgICAgICB2
aXJ0dWFsIFN0cmluZyBnZW5lcmF0ZVJlcGxhY2VtZW50RmlsZShjb25zdCBTdHJpbmcmIHBhdGgp
OworICAgIHZpcnR1YWwgRmxvYXRSZWN0IGN1c3RvbUhpZ2hsaWdodFJlY3QoTm9kZSosIGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRmxvYXRSZWN0JiBsaW5lUmVjdCk7CisgICAgdmly
dHVhbCB2b2lkIHBhaW50Q3VzdG9tSGlnaGxpZ2h0KE5vZGUqLCBjb25zdCBBdG9taWNTdHJpbmcm
IHR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgYm94UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBsaW5lUmVj
dCwKKyAgICAgICAgYm9vbCBiZWhpbmRUZXh0LCBib29sIGVudGlyZUxpbmUpOworICAgICAgICAK
KyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVwbGFjZVdpdGhHZW5lcmF0ZWRGaWxlRm9yVXBsb2Fk
KGNvbnN0IFN0cmluZyYgcGF0aCwgU3RyaW5nJiBnZW5lcmF0ZWRGaWxlbmFtZSk7CisgICAgdmly
dHVhbCBTdHJpbmcgZ2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKTsK
IAotICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRDdXN0b21PdmVyaGFuZ0FyZWEoR3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0Jik7
CisgICAgdmlydHVhbCBib29sIHBhaW50Q3VzdG9tT3ZlcmhhbmdBcmVhKEdyYXBoaWNzQ29udGV4
dCosIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpOwogCiAj
aWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgICAgIHZpcnR1YWwgUGFzc093blB0cjxD
b2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqLCBjb25z
dCBDb2xvciYpID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8Q29sb3JDaG9vc2VyPiBjcmVh
dGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgQ29sb3ImKSA9IDA7CiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQotICAgICAgICAv
LyBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgZm9yOgotICAgICAgICAvLyAgLSBNYW5kYXRvcnkgZGF0
ZS90aW1lIGNob29zZXJzIGlmICFFTkFCTEUoSU5QVVRfTVVMVElQTEVfRklFTERTX1VJKQotICAg
ICAgICAvLyAgLSBEYXRlL3RpbWUgY2hvb3NlcnMgZm9yIHR5cGVzIGZvciB3aGljaCBSZW5kZXJU
aGVtZTo6c3VwcG9ydHNDYWxlbmRhclBpY2tlcgotICAgICAgICAvLyAgICByZXR1cm5zIHRydWUs
IGlmIEVOQUJMRShJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUkpCi0gICAgICAgIC8vICAtIDxkYXRh
bGlzdD4gVUkgZm9yIGRhdGUvdGltZSBpbnB1dCB0eXBlcyByZWdhcmRsZXNzIG9mCi0gICAgICAg
IC8vICAgIEVOQUJMRShJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUkpCi0gICAgICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxEYXRlVGltZUNob29zZXI+IG9wZW5EYXRlVGltZUNob29zZXIoRGF0ZVRpbWVD
aG9vc2VyQ2xpZW50KiwgY29uc3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyYpID0gMDsKKyAg
ICAvLyBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgZm9yOgorICAgIC8vICAtIE1hbmRhdG9yeSBkYXRl
L3RpbWUgY2hvb3NlcnMgaWYgIUVOQUJMRShJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUkpCisgICAg
Ly8gIC0gRGF0ZS90aW1lIGNob29zZXJzIGZvciB0eXBlcyBmb3Igd2hpY2ggUmVuZGVyVGhlbWU6
OnN1cHBvcnRzQ2FsZW5kYXJQaWNrZXIKKyAgICAvLyAgICByZXR1cm5zIHRydWUsIGlmIEVOQUJM
RShJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUkpCisgICAgLy8gIC0gPGRhdGFsaXN0PiBVSSBmb3Ig
ZGF0ZS90aW1lIGlucHV0IHR5cGVzIHJlZ2FyZGxlc3Mgb2YKKyAgICAvLyAgICBFTkFCTEUoSU5Q
VVRfTVVMVElQTEVfRklFTERTX1VJKQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxEYXRlVGltZUNo
b29zZXI+IG9wZW5EYXRlVGltZUNob29zZXIoRGF0ZVRpbWVDaG9vc2VyQ2xpZW50KiwgY29uc3Qg
RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyYpID0gMDsKICNlbmRpZgogCi0gICAgICAgIHZpcnR1
YWwgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikgPSAw
OwotICAgICAgICAvLyBBc3luY2hyb25vdXMgcmVxdWVzdCB0byBsb2FkIGFuIGljb24gZm9yIHNw
ZWNpZmllZCBmaWxlbmFtZXMuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXIqKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KSA9IDA7
CisgICAgLy8gQXN5bmNocm9ub3VzIHJlcXVlc3QgdG8gbG9hZCBhbiBpY29uIGZvciBzcGVjaWZp
ZWQgZmlsZW5hbWVzLgorICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXIqKSA9IDA7CiAKICNpZiBFTkFCTEUoRElSRUNU
T1JZX1VQTE9BRCkKLSAgICAgICAgLy8gQXN5Y2hyb25vdXMgcmVxdWVzdCB0byBlbnVtZXJhdGUg
YWxsIGZpbGVzIGluIGEgZGlyZWN0b3J5IGNob3NlbiBieSB0aGUgdXNlci4KLSAgICAgICAgdmly
dHVhbCB2b2lkIGVudW1lcmF0ZUNob3NlbkRpcmVjdG9yeShGaWxlQ2hvb3NlciopID0gMDsKKyAg
ICAvLyBBc3ljaHJvbm91cyByZXF1ZXN0IHRvIGVudW1lcmF0ZSBhbGwgZmlsZXMgaW4gYSBkaXJl
Y3RvcnkgY2hvc2VuIGJ5IHRoZSB1c2VyLgorICAgIHZpcnR1YWwgdm9pZCBlbnVtZXJhdGVDaG9z
ZW5EaXJlY3RvcnkoRmlsZUNob29zZXIqKSA9IDA7CiAjZW5kaWYKIAotICAgICAgICAvLyBOb3Rp
ZmljYXRpb24gdGhhdCB0aGUgZ2l2ZW4gZm9ybSBlbGVtZW50IGhhcyBjaGFuZ2VkLiBUaGlzIGZ1
bmN0aW9uCi0gICAgICAgIC8vIHdpbGwgYmUgY2FsbGVkIGZyZXF1ZW50bHksIHNvIGhhbmRsaW5n
IHNob3VsZCBiZSB2ZXJ5IGZhc3QuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBmb3JtU3RhdGVEaWRD
aGFuZ2UoY29uc3QgTm9kZSopID0gMDsKLSAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBl
bGVtZW50RGlkRm9jdXMoY29uc3QgTm9kZSopIHsgfTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGVs
ZW1lbnREaWRCbHVyKGNvbnN0IE5vZGUqKSB7IH07CisgICAgLy8gTm90aWZpY2F0aW9uIHRoYXQg
dGhlIGdpdmVuIGZvcm0gZWxlbWVudCBoYXMgY2hhbmdlZC4gVGhpcyBmdW5jdGlvbgorICAgIC8v
IHdpbGwgYmUgY2FsbGVkIGZyZXF1ZW50bHksIHNvIGhhbmRsaW5nIHNob3VsZCBiZSB2ZXJ5IGZh
c3QuCisgICAgdmlydHVhbCB2b2lkIGZvcm1TdGF0ZURpZENoYW5nZShjb25zdCBOb2RlKikgPSAw
OworICAgIAorICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgTm9kZSopIHsg
fTsKKyAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgTm9kZSopIHsgfTsKIAog
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICAgICAgLy8gQWxsb3dzIHBvcnRz
IHRvIGN1c3RvbWl6ZSB0aGUgdHlwZSBvZiBncmFwaGljcyBsYXllcnMgY3JlYXRlZCBieSB0aGlz
IHBhZ2UuCi0gICAgICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllckZhY3RvcnkqIGdyYXBoaWNzTGF5
ZXJGYWN0b3J5KCkgY29uc3QgeyByZXR1cm4gMDsgfQotCi0gICAgICAgIC8vIFBhc3MgMCBhcyB0
aGUgR3JhcGhpY3NMYXllciB0byBkZXRhdGNoIHRoZSByb290IGxheWVyLgotICAgICAgICB2aXJ0
dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKikg
PSAwOwotICAgICAgICAvLyBTZXRzIGEgZmxhZyB0byBzcGVjaWZ5IHRoYXQgdGhlIG5leHQgdGlt
ZSBjb250ZW50IGlzIGRyYXduIHRvIHRoZSB3aW5kb3csCi0gICAgICAgIC8vIHRoZSBjaGFuZ2Vz
IGFwcGVhciBvbiB0aGUgc2NyZWVuIGluIHN5bmNocm9ueSB3aXRoIHVwZGF0ZXMgdG8gR3JhcGhp
Y3NMYXllcnMuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3lu
Y2hyb25pemF0aW9uKCkgPSAwOwotICAgICAgICAvLyBTZXRzIGEgZmxhZyB0byBzcGVjaWZ5IHRo
YXQgdGhlIHZpZXcgbmVlZHMgdG8gYmUgdXBkYXRlZCwgc28gd2UgbmVlZAotICAgICAgICAvLyB0
byBkbyBhbiBlYWdlciBsYXlvdXQgYmVmb3JlIHRoZSBkcmF3aW5nLgotICAgICAgICB2aXJ0dWFs
IHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSA9IDA7Ci0gICAgICAgIC8vIFJl
dHVybnMgd2hldGhlciBvciBub3QgdGhlIGNsaWVudCBjYW4gcmVuZGVyIHRoZSBjb21wb3NpdGVk
IGxheWVyLAotICAgICAgICAvLyByZWdhcmRsZXNzIG9mIHRoZSBzZXR0aW5ncy4KLSAgICAgICAg
dmlydHVhbCBib29sIGFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9Ci0KLSAgICAgICAgZW51bSBDb21wb3NpdGluZ1RyaWdnZXIgewotICAgICAgICAg
ICAgVGhyZWVEVHJhbnNmb3JtVHJpZ2dlciA9IDEgPDwgMCwKLSAgICAgICAgICAgIFZpZGVvVHJp
Z2dlciA9IDEgPDwgMSwKLSAgICAgICAgICAgIFBsdWdpblRyaWdnZXIgPSAxIDw8IDIsCi0gICAg
ICAgICAgICBDYW52YXNUcmlnZ2VyID0gMSA8PCAzLAotICAgICAgICAgICAgQW5pbWF0aW9uVHJp
Z2dlciA9IDEgPDwgNCwKLSAgICAgICAgICAgIEZpbHRlclRyaWdnZXIgPSAxIDw8IDUsCi0gICAg
ICAgICAgICBBbGxUcmlnZ2VycyA9IDB4RkZGRkZGRkYKLSAgICAgICAgfTsKLSAgICAgICAgdHlw
ZWRlZiB1bnNpZ25lZCBDb21wb3NpdGluZ1RyaWdnZXJGbGFnczsKLQotICAgICAgICAvLyBSZXR1
cm5zIGEgYml0ZmllbGQgaW5kaWNhdGluZyBjb25kaXRpb25zIHRoYXQgY2FuIHRyaWdnZXIgdGhl
IGNvbXBvc2l0b3IuCi0gICAgICAgIHZpcnR1YWwgQ29tcG9zaXRpbmdUcmlnZ2VyRmxhZ3MgYWxs
b3dlZENvbXBvc2l0aW5nVHJpZ2dlcnMoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxDb21w
b3NpdGluZ1RyaWdnZXJGbGFncz4oQWxsVHJpZ2dlcnMpOyB9CisgICAgLy8gQWxsb3dzIHBvcnRz
IHRvIGN1c3RvbWl6ZSB0aGUgdHlwZSBvZiBncmFwaGljcyBsYXllcnMgY3JlYXRlZCBieSB0aGlz
IHBhZ2UuCisgICAgdmlydHVhbCBHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZh
Y3RvcnkoKSBjb25zdCB7IHJldHVybiAwOyB9CisKKyAgICAvLyBQYXNzIDAgYXMgdGhlIEdyYXBo
aWNzTGF5ZXIgdG8gZGV0YXRjaCB0aGUgcm9vdCBsYXllci4KKyAgICB2aXJ0dWFsIHZvaWQgYXR0
YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKikgPSAwOworICAgIC8v
IFNldHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUgbmV4dCB0aW1lIGNvbnRlbnQgaXMgZHJh
d24gdG8gdGhlIHdpbmRvdywKKyAgICAvLyB0aGUgY2hhbmdlcyBhcHBlYXIgb24gdGhlIHNjcmVl
biBpbiBzeW5jaHJvbnkgd2l0aCB1cGRhdGVzIHRvIEdyYXBoaWNzTGF5ZXJzLgorICAgIHZpcnR1
YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgPSAwOworICAg
IC8vIFNldHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUgdmlldyBuZWVkcyB0byBiZSB1cGRh
dGVkLCBzbyB3ZSBuZWVkCisgICAgLy8gdG8gZG8gYW4gZWFnZXIgbGF5b3V0IGJlZm9yZSB0aGUg
ZHJhd2luZy4KKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2go
KSA9IDA7CisgICAgLy8gUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgY2xpZW50IGNhbiByZW5k
ZXIgdGhlIGNvbXBvc2l0ZWQgbGF5ZXIsCisgICAgLy8gcmVnYXJkbGVzcyBvZiB0aGUgc2V0dGlu
Z3MuCisgICAgdmlydHVhbCBib29sIGFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBlbnVtIENvbXBvc2l0aW5nVHJpZ2dlciB7CisgICAg
ICAgIFRocmVlRFRyYW5zZm9ybVRyaWdnZXIgPSAxIDw8IDAsCisgICAgICAgIFZpZGVvVHJpZ2dl
ciA9IDEgPDwgMSwKKyAgICAgICAgUGx1Z2luVHJpZ2dlciA9IDEgPDwgMiwKKyAgICAgICAgQ2Fu
dmFzVHJpZ2dlciA9IDEgPDwgMywKKyAgICAgICAgQW5pbWF0aW9uVHJpZ2dlciA9IDEgPDwgNCwK
KyAgICAgICAgRmlsdGVyVHJpZ2dlciA9IDEgPDwgNSwKKyAgICAgICAgQWxsVHJpZ2dlcnMgPSAw
eEZGRkZGRkZGCisgICAgfTsKKyAgICB0eXBlZGVmIHVuc2lnbmVkIENvbXBvc2l0aW5nVHJpZ2dl
ckZsYWdzOworCisgICAgLy8gUmV0dXJucyBhIGJpdGZpZWxkIGluZGljYXRpbmcgY29uZGl0aW9u
cyB0aGF0IGNhbiB0cmlnZ2VyIHRoZSBjb21wb3NpdG9yLgorICAgIHZpcnR1YWwgQ29tcG9zaXRp
bmdUcmlnZ2VyRmxhZ3MgYWxsb3dlZENvbXBvc2l0aW5nVHJpZ2dlcnMoKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxDb21wb3NpdGluZ1RyaWdnZXJGbGFncz4oQWxsVHJpZ2dlcnMpOyB9CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKEFWRk9VTkRBVElPTikKLSAgICAgICAg
dmlydHVhbCBHcmFwaGljc0RldmljZUFkYXB0ZXIqIGdyYXBoaWNzRGV2aWNlQWRhcHRlcigpIGNv
bnN0IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIEdyYXBoaWNzRGV2aWNlQWRhcHRlciogZ3Jh
cGhpY3NEZXZpY2VBZGFwdGVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQogI2VuZGlmCiAKLSAgICAg
ICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUoY29uc3QgTm9kZSopIHsg
cmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW5Gb3JO
b2RlKE5vZGUqKSB7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsc2NyZWVuRm9yTm9k
ZShOb2RlKikgeyB9Ci0gICAgICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JW
aWRlb1BsYXliYWNrKCkgeyByZXR1cm4gZmFsc2U7IH0gCisgICAgdmlydHVhbCBib29sIHN1cHBv
cnRzRnVsbHNjcmVlbkZvck5vZGUoY29uc3QgTm9kZSopIHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
dmlydHVhbCB2b2lkIGVudGVyRnVsbHNjcmVlbkZvck5vZGUoTm9kZSopIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBleGl0RnVsbHNjcmVlbkZvck5vZGUoTm9kZSopIHsgfQorICAgIHZpcnR1YWwgYm9v
bCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCkgeyByZXR1cm4gZmFsc2U7IH0g
CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgICAgIHZpcnR1YWwgYm9vbCBzdXBw
b3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQqLCBib29sKSB7IHJldHVybiBm
YWxzZTsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChF
bGVtZW50KikgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1l
bnQoRWxlbWVudCopIHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgZnVsbFNjcmVlblJlbmRlcmVy
Q2hhbmdlZChSZW5kZXJCb3gqKSB7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIHNldFJvb3RGdWxs
U2NyZWVuTGF5ZXIoR3JhcGhpY3NMYXllciopIHsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0
c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQqLCBib29sKSB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQq
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQq
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZnVsbFNjcmVlblJlbmRlcmVyQ2hhbmdlZChSZW5kZXJC
b3gqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdEZ1bGxTY3JlZW5MYXllcihHcmFwaGlj
c0xheWVyKikgeyB9CiAjZW5kaWYKLSAgICAgICAgCisgICAgCiAjaWYgVVNFKFRJTEVEX0JBQ0tJ
TkdfU1RPUkUpCi0gICAgICAgIHZpcnR1YWwgSW50UmVjdCB2aXNpYmxlUmVjdEZvclRpbGVkQmFj
a2luZ1N0b3JlKCkgY29uc3QgeyByZXR1cm4gSW50UmVjdCgpOyB9CisgICAgdmlydHVhbCBJbnRS
ZWN0IHZpc2libGVSZWN0Rm9yVGlsZWRCYWNraW5nU3RvcmUoKSBjb25zdCB7IHJldHVybiBJbnRS
ZWN0KCk7IH0KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgICAgICB2aXJ0dWFsIE5T
UmVzcG9uZGVyICpmaXJzdFJlc3BvbmRlcigpIHsgcmV0dXJuIDA7IH0KLSAgICAgICAgdmlydHVh
bCB2b2lkIG1ha2VGaXJzdFJlc3BvbmRlcihOU1Jlc3BvbmRlciAqKSB7IH0KLSAgICAgICAgLy8g
Rm9jdXNlcyBvbiB0aGUgY29udGFpbmluZyB2aWV3IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHBhZ2Uu
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBtYWtlRmlyc3RSZXNwb25kZXIoKSB7IH0KLSAgICAgICAg
dmlydHVhbCB2b2lkIHdpbGxQb3BVcE1lbnUoTlNNZW51ICopIHsgfQorICAgIHZpcnR1YWwgTlNS
ZXNwb25kZXIgKmZpcnN0UmVzcG9uZGVyKCkgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgdm9p
ZCBtYWtlRmlyc3RSZXNwb25kZXIoTlNSZXNwb25kZXIgKikgeyB9CisgICAgLy8gRm9jdXNlcyBv
biB0aGUgY29udGFpbmluZyB2aWV3IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHBhZ2UuCisgICAgdmly
dHVhbCB2b2lkIG1ha2VGaXJzdFJlc3BvbmRlcigpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxs
UG9wVXBNZW51KE5TTWVudSAqKSB7IH0KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKQotICAg
ICAgICB2aXJ0dWFsIHZvaWQgc2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpID0gMDsK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLSAgICAgICAgdmlydHVhbCB2b2lk
IG5lZWRUb3VjaEV2ZW50cyhib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG5lZWRUb3VjaEV2
ZW50cyhib29sKSA9IDA7CiAjZW5kaWYKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRl
bVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBz
ZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgPSAwOwotICAg
ICAgICAvLyBDaGVja3MgaWYgdGhlcmUgaXMgYW4gb3BlbmVkIHBvcHVwLCBjYWxsZWQgYnkgUmVu
ZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgpLgotICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVk
UG9wdXAoKSBjb25zdCA9IDA7Ci0gICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+
IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7Ci0gICAgICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQ
b3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJ
dGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgPSAwOworICAgIC8vIENo
ZWNrcyBpZiB0aGVyZSBpcyBhbiBvcGVuZWQgcG9wdXAsIGNhbGxlZCBieSBSZW5kZXJNZW51TGlz
dDo6c2hvd1BvcHVwKCkuCisgICAgdmlydHVhbCBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQ
b3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJj
aFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0
ID0gMDsKICNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKLSAgICAgICAgLy8gQ3JlYXRlcyBhIFBhZ2VQ
b3B1cCBvYmplY3QsIGFuZCBzaG93cyBpdCBiZXNpZGUgb3JpZ2luQm91bmRzSW5Sb290Vmlldy4K
LSAgICAgICAgLy8gVGhlIHJldHVybiB2YWx1ZSBjYW4gYmUgMC4KLSAgICAgICAgdmlydHVhbCBQ
YWdlUG9wdXAqIG9wZW5QYWdlUG9wdXAoUGFnZVBvcHVwQ2xpZW50KiwgY29uc3QgSW50UmVjdCYg
b3JpZ2luQm91bmRzSW5Sb290VmlldykgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VQ
YWdlUG9wdXAoUGFnZVBvcHVwKikgPSAwOwotICAgICAgICAvLyBGb3IgdGVzdGluZy4KLSAgICAg
ICAgdmlydHVhbCB2b2lkIHNldFBhZ2VQb3B1cERyaXZlcihQYWdlUG9wdXBEcml2ZXIqKSA9IDA7
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZXNldFBhZ2VQb3B1cERyaXZlcigpID0gMDsKKyAgICAv
LyBDcmVhdGVzIGEgUGFnZVBvcHVwIG9iamVjdCwgYW5kIHNob3dzIGl0IGJlc2lkZSBvcmlnaW5C
b3VuZHNJblJvb3RWaWV3LgorICAgIC8vIFRoZSByZXR1cm4gdmFsdWUgY2FuIGJlIDAuCisgICAg
dmlydHVhbCBQYWdlUG9wdXAqIG9wZW5QYWdlUG9wdXAoUGFnZVBvcHVwQ2xpZW50KiwgY29uc3Qg
SW50UmVjdCYgb3JpZ2luQm91bmRzSW5Sb290VmlldykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBj
bG9zZVBhZ2VQb3B1cChQYWdlUG9wdXAqKSA9IDA7CisgICAgLy8gRm9yIHRlc3RpbmcuCisgICAg
dmlydHVhbCB2b2lkIHNldFBhZ2VQb3B1cERyaXZlcihQYWdlUG9wdXBEcml2ZXIqKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHJlc2V0UGFnZVBvcHVwRHJpdmVyKCkgPSAwOwogI2VuZGlmCi0gICAg
ICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW5ldmVyIGEgdGV4dCBmaWVsZCA8aW5w
dXQ+IGlzCi0gICAgICAgIC8vIGNyZWF0ZWQuIFRoZSBpbXBsZW1lbnRhdGlvbiBzaG91bGQgcmV0
dXJuIHRydWUgaWYgaXQgd2FudHMKLSAgICAgICAgLy8gdG8gZG8gc29tZXRoaW5nIGluIGFkZFRl
eHRGaWVsZERlY29yYXRpb25zVG8oKS4KLSAgICAgICAgLy8gVGhlIGFyZ3VtZW50IGlzIGFsd2F5
cyBub24tMC4KLSAgICAgICAgdmlydHVhbCBib29sIHdpbGxBZGRUZXh0RmllbGREZWNvcmF0aW9u
c1RvKEhUTUxJbnB1dEVsZW1lbnQqKSB7IHJldHVybiBmYWxzZTsgfQotICAgICAgICAvLyBUaGUg
YXJndW1lbnQgaXMgYWx3YXlzIG5vbi0wLgotICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkVGV4dEZp
ZWxkRGVjb3JhdGlvbnNUbyhIVE1MSW5wdXRFbGVtZW50KikgeyB9Ci0KLSAgICAgICAgdmlydHVh
bCB2b2lkIHBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
LCBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbikgeyB9Ci0gICAgICAgIAotICAgICAgICB2
aXJ0dWFsIHZvaWQgbm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChjb25zdCBJbnRS
ZWN0JikgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxl
RGlkQ2hhbmdlKGludCAvKm5ld1N0eWxlKi8pIHsgfQotCi0gICAgICAgIGVudW0gRGlhbG9nVHlw
ZSB7Ci0gICAgICAgICAgICBBbGVydERpYWxvZyA9IDAsCi0gICAgICAgICAgICBDb25maXJtRGlh
bG9nID0gMSwKLSAgICAgICAgICAgIFByb21wdERpYWxvZyA9IDIsCi0gICAgICAgICAgICBIVE1M
RGlhbG9nID0gMwotICAgICAgICB9OwotICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnVuTW9k
YWxEaWFsb2dEdXJpbmdQYWdlRGlzbWlzc2FsKGNvbnN0IERpYWxvZ1R5cGUmLCBjb25zdCBTdHJp
bmcmIGRpYWxvZ01lc3NhZ2UsIEZyYW1lTG9hZGVyOjpQYWdlRGlzbWlzc2FsVHlwZSkgY29uc3Qg
eyBVTlVTRURfUEFSQU0oZGlhbG9nTWVzc2FnZSk7IHJldHVybiB0cnVlOyB9Ci0KLSAgICAgICAg
dmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpID0gMDsK
LSAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgYm9vbCBpc1NWR0ltYWdlQ2hyb21lQ2xpZW50KCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3
aGVuZXZlciBhIHRleHQgZmllbGQgPGlucHV0PiBpcworICAgIC8vIGNyZWF0ZWQuIFRoZSBpbXBs
ZW1lbnRhdGlvbiBzaG91bGQgcmV0dXJuIHRydWUgaWYgaXQgd2FudHMKKyAgICAvLyB0byBkbyBz
b21ldGhpbmcgaW4gYWRkVGV4dEZpZWxkRGVjb3JhdGlvbnNUbygpLgorICAgIC8vIFRoZSBhcmd1
bWVudCBpcyBhbHdheXMgbm9uLTAuCisgICAgdmlydHVhbCBib29sIHdpbGxBZGRUZXh0RmllbGRE
ZWNvcmF0aW9uc1RvKEhUTUxJbnB1dEVsZW1lbnQqKSB7IHJldHVybiBmYWxzZTsgfQorICAgIC8v
IFRoZSBhcmd1bWVudCBpcyBhbHdheXMgbm9uLTAuCisgICAgdmlydHVhbCB2b2lkIGFkZFRleHRG
aWVsZERlY29yYXRpb25zVG8oSFRNTElucHV0RWxlbWVudCopIHsgfQorCisgICAgdmlydHVhbCB2
b2lkIHBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbikgeyB9CisgICAgCisgICAgdmlydHVhbCB2b2lk
IG5vdGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3QoY29uc3QgSW50UmVjdCYpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCByZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKGludCAv
Km5ld1N0eWxlKi8pIHsgfQorCisgICAgZW51bSBEaWFsb2dUeXBlIHsKKyAgICAgICAgQWxlcnRE
aWFsb2cgPSAwLAorICAgICAgICBDb25maXJtRGlhbG9nID0gMSwKKyAgICAgICAgUHJvbXB0RGlh
bG9nID0gMiwKKyAgICAgICAgSFRNTERpYWxvZyA9IDMKKyAgICB9OworICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRSdW5Nb2RhbERpYWxvZ0R1cmluZ1BhZ2VEaXNtaXNzYWwoY29uc3QgRGlhbG9nVHlw
ZSYsIGNvbnN0IFN0cmluZyYgZGlhbG9nTWVzc2FnZSwgRnJhbWVMb2FkZXI6OlBhZ2VEaXNtaXNz
YWxUeXBlKSBjb25zdCB7IFVOVVNFRF9QQVJBTShkaWFsb2dNZXNzYWdlKTsgcmV0dXJuIHRydWU7
IH0KKworICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2ln
bmVkKSA9IDA7CisgICAgCisgICAgdmlydHVhbCBib29sIGlzU1ZHSW1hZ2VDaHJvbWVDbGllbnQo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKLSAg
ICAgICAgdmlydHVhbCBib29sIHJlcXVlc3RQb2ludGVyTG9jaygpIHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UG9pbnRlclVubG9jaygpIHsgfQotICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNQb2ludGVyTG9ja2VkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgcmVxdWVzdFBvaW50ZXJMb2NrKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
aXNQb2ludGVyTG9ja2VkKCkgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogCi0gICAgICAgIHZp
cnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgc3RhdHVzKSB7IFVOVVNFRF9Q
QVJBTShtZXNzYWdlKTsgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsgVU5VU0VEX1BBUkFNKHN0
YXR1cyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHN0
YXR1cykgeyBVTlVTRURfUEFSQU0obWVzc2FnZSk7IFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7
IFVOVVNFRF9QQVJBTShzdGF0dXMpOyB9CiAKLSAgICAgICAgdmlydHVhbCBGbG9hdFNpemUgbWlu
aW11bVdpbmRvd1NpemUoKSBjb25zdCB7IHJldHVybiBGbG9hdFNpemUoMTAwLCAxMDApOyB9Owor
ICAgIHZpcnR1YWwgRmxvYXRTaXplIG1pbmltdW1XaW5kb3dTaXplKCkgY29uc3QgeyByZXR1cm4g
RmxvYXRTaXplKDEwMCwgMTAwKTsgfTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eUNo
cm9tZUNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlz
RW1wdHlDaHJvbWVDbGllbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgcHJvdGVj
dGVkOgotICAgICAgICB2aXJ0dWFsIH5DaHJvbWVDbGllbnQoKSB7IH0KLSAgICB9OworICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxJbWFnZT4gZ2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlKFJl
bmRlclNuYXBzaG90dGVkUGx1Z0luOjpCdXR0b25TaXplLCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bjo6QnV0dG9uU3RhdGUpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKworcHJvdGVjdGVkOgorICAgIHZp
cnR1YWwgfkNocm9tZUNsaWVudCgpIHsgfQorfTsKIAogfQogI2VuZGlmIC8vIENocm9tZUNsaWVu
dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVk
UGx1Z0luLmNwcAppbmRleCA5NzJiMmJmOTA0MjIzYjViNzc3NWYyNDI5ZGMxNjI4M2EwZjE2ODE1
Li5mOGRjNmI2ZmNmYWQ3ZDQ5MzRmM2Q0YzgyNDVhMTZjYTRmYzg3OTBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKQEAg
LTI2LDEyICsyNiwxNSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbmRlclNu
YXBzaG90dGVkUGx1Z0luLmgiCiAKKyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJv
bWVDbGllbnQuaCIKICNpbmNsdWRlICJDdXJzb3IuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNs
aWVudC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYWRpZW50LmgiCiAj
aW5jbHVkZSAiSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQu
aCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCiAjaW5jbHVkZSAi
UGF0aC5oIgogCkBAIC00NCw2ICs0Nyw3IEBAIHN0YXRpYyBjb25zdCBpbnQgc3RhcnRCdXR0b25Q
YWRkaW5nID0gMTA7CiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6UmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW4oSFRNTFBsdWdJbkltYWdlRWxlbWVudCogZWxlbWVudCkKICAgICA6IFJlbmRlckVtYmVk
ZGVkT2JqZWN0KGVsZW1lbnQpCiAgICAgLCBtX3NuYXBzaG90UmVzb3VyY2UoUmVuZGVySW1hZ2VS
ZXNvdXJjZTo6Y3JlYXRlKCkpCisgICAgLCBtX2J1dHRvblR5cGUoTm9CdXR0b24pCiAgICAgLCBt
X2lzTW91c2VJbkJ1dHRvblJlY3QoZmFsc2UpCiB7CiAgICAgbV9zbmFwc2hvdFJlc291cmNlLT5p
bml0aWFsaXplKHRoaXMpOwpAQCAtMTIyLDMzICsxMjYsMzkgQEAgdm9pZCBSZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbjo6cGFpbnRSZXBsYWNlZFNuYXBzaG90KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdAogICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgc3R5bGUoKS0+Y29sb3JT
cGFjZSgpLCBhbGlnbmVkUmVjdCwgQ29tcG9zaXRlU291cmNlT3Zlciwgc2hvdWxkUmVzcGVjdElt
YWdlT3JpZW50YXRpb24oKSwgdXNlTG93UXVhbGl0eVNjYWxpbmcpOwogfQogCi1zdGF0aWMgSW1h
Z2UqIHN0YXJ0QnV0dG9uSW1hZ2UoKQorSW1hZ2UqIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpz
dGFydEJ1dHRvbkltYWdlKEJ1dHRvblNpemUgc2l6ZSwgQnV0dG9uU3RhdGUgc3RhdGUpIGNvbnN0
CiB7Ci0gICAgc3RhdGljIEltYWdlKiBidXR0b25JbWFnZSA9IEltYWdlOjpsb2FkUGxhdGZvcm1S
ZXNvdXJjZSgic3RhcnRCdXR0b24iKS5sZWFrUmVmKCk7Ci0gICAgcmV0dXJuIGJ1dHRvbkltYWdl
OwotfQotCi1zdGF0aWMgSW1hZ2UqIHN0YXJ0QnV0dG9uUHJlc3NlZEltYWdlKCkKLXsKLSAgICBz
dGF0aWMgSW1hZ2UqIGJ1dHRvbkltYWdlID0gSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKCJz
dGFydEJ1dHRvblByZXNzZWQiKS5sZWFrUmVmKCk7Ci0gICAgcmV0dXJuIGJ1dHRvbkltYWdlOwor
ICAgIHN0YXRpYyBJbWFnZSogYnV0dG9uSW1hZ2VzWzRdID0geyAwLCAwLCAwLCAwIH07CisgICAg
c3RhdGljIGJvb2wgaW5pdGlhbGl6ZWRJbWFnZXNbNF0gPSB7IGZhbHNlLCBmYWxzZSwgZmFsc2Us
IGZhbHNlIH07CisKKyAgICBpbnQgYXJyYXlJbmRleCA9IHNpemUgPDwgMSB8IHN0YXRlOworICAg
IGlmIChidXR0b25JbWFnZXNbYXJyYXlJbmRleF0pCisgICAgICAgIHJldHVybiBidXR0b25JbWFn
ZXNbYXJyYXlJbmRleF07CisgICAgaWYgKGluaXRpYWxpemVkSW1hZ2VzW2FycmF5SW5kZXhdKQor
ICAgICAgICByZXR1cm4gMDsKKworICAgIGlmIChkb2N1bWVudCgpLT5wYWdlKCkpIHsKKyAgICAg
ICAgYnV0dG9uSW1hZ2VzW2FycmF5SW5kZXhdID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUo
KS0+Y2xpZW50KCktPmdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZShzaXplLCBzdGF0ZSku
bGVha1JlZigpOworICAgICAgICBpbml0aWFsaXplZEltYWdlc1thcnJheUluZGV4XSA9IHRydWU7
CisgICAgfQorICAgIHJldHVybiBidXR0b25JbWFnZXNbYXJyYXlJbmRleF07CiB9CiAKIHZvaWQg
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50QnV0dG9uKFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7Ci0gICAgTGF5b3V0UmVjdCBjb250
ZW50UmVjdCA9IGNvbnRlbnRCb3hSZWN0KCk7Ci0gICAgaWYgKGNvbnRlbnRSZWN0LmlzRW1wdHko
KSkKKyAgICBpZiAoY29udGVudEJveFJlY3QoKS5pc0VtcHR5KCkgfHwgbV9idXR0b25UeXBlID09
IE5vQnV0dG9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBJbWFnZSogYnV0dG9uSW1hZ2UgPSBz
dGFydEJ1dHRvbkltYWdlKCk7CisgICAgSW1hZ2UqIGJ1dHRvbkltYWdlID0gMDsKICAgICBpZiAo
cGx1Z0luSW1hZ2VFbGVtZW50KCktPmFjdGl2ZSgpKSB7CiAgICAgICAgIGlmIChtX2lzTW91c2VJ
bkJ1dHRvblJlY3QpCi0gICAgICAgICAgICBidXR0b25JbWFnZSA9IHN0YXJ0QnV0dG9uUHJlc3Nl
ZEltYWdlKCk7Ci0gICAgfSBlbHNlIGlmICghcGx1Z0luSW1hZ2VFbGVtZW50KCktPmhvdmVyZWQo
KSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgYnV0dG9uSW1hZ2UgPSBzdGFydEJ1dHRv
bkltYWdlKG1fYnV0dG9uVHlwZSwgQnV0dG9uU3RhdGVBY3RpdmUpOworICAgIH0gZWxzZSBpZiAo
cGx1Z0luSW1hZ2VFbGVtZW50KCktPmhvdmVyZWQoKSkKKyAgICAgICAgYnV0dG9uSW1hZ2UgPSBz
dGFydEJ1dHRvbkltYWdlKG1fYnV0dG9uVHlwZSwgQnV0dG9uU3RhdGVIb3ZlcmVkKTsKIAotICAg
IExheW91dFBvaW50IGNvbnRlbnRMb2NhdGlvbiA9IHBhaW50T2Zmc2V0ICsgY29udGVudFJlY3Qu
bWF4WE1heFlDb3JuZXIoKSAtIGJ1dHRvbkltYWdlLT5zaXplKCkgLSBMYXlvdXRTaXplKHN0YXJ0
QnV0dG9uUGFkZGluZywgc3RhcnRCdXR0b25QYWRkaW5nKTsKLSAgICBwYWludEluZm8uY29udGV4
dC0+ZHJhd0ltYWdlKGJ1dHRvbkltYWdlLCBDb2xvclNwYWNlRGV2aWNlUkdCLCByb3VuZGVkSW50
UG9pbnQoY29udGVudExvY2F0aW9uKSwgYnV0dG9uSW1hZ2UtPnJlY3QoKSk7CisgICAgaWYgKCFi
dXR0b25JbWFnZSkKKyAgICAgICAgcmV0dXJuOworICAgIHBhaW50SW5mby5jb250ZXh0LT5kcmF3
SW1hZ2UoYnV0dG9uSW1hZ2UsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHJvdW5kZWRJbnRQb2ludChw
YWludE9mZnNldCArIG1fYnV0dG9uUmVjdC5sb2NhdGlvbigpKSwgYnV0dG9uSW1hZ2UtPnJlY3Qo
KSk7CiB9CiAKIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnJlcGFpbnRCdXR0b24oKQpA
QCAtMTk3LDE5ICsyMDcsNDUgQEAgdm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6aGFuZGxl
RXZlbnQoRXZlbnQqIGV2ZW50KQogICAgIH0KIH0KIAorTGF5b3V0UmVjdCBSZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbjo6dHJ5VG9GaXRTdGFydEJ1dHRvbihCdXR0b25TaXplIHNpemUsIGNvbnN0IExh
eW91dFJlY3QmIGNvbnRlbnRCb3gpIGNvbnN0Cit7CisgICAgSW1hZ2UqIGJ1dHRvbkltYWdlID0g
c3RhcnRCdXR0b25JbWFnZShzaXplLCBCdXR0b25TdGF0ZUhvdmVyZWQpOworICAgIGlmICghYnV0
dG9uSW1hZ2UpCisgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CisKKyAgICBMYXlvdXRTaXpl
IGJ1dHRvblNpemUgPSBidXR0b25JbWFnZS0+c2l6ZSgpOworICAgIExheW91dFJlY3QgY2FuZGlk
YXRlUmVjdChjb250ZW50Qm94Lm1heFhNaW5ZQ29ybmVyKCkgKyBMYXlvdXRTaXplKC1zdGFydEJ1
dHRvblBhZGRpbmcsIHN0YXJ0QnV0dG9uUGFkZGluZykgKyBMYXlvdXRTaXplKC1idXR0b25TaXpl
LndpZHRoKCksIDApLCBidXR0b25TaXplKTsKKyAgICAvLyBUaGUgbWluaW11bSBhbGxvd2VkIGNv
bnRlbnQgYm94IHNpemUgaXMgdGhlIGJ1dHRvbiBpbWFnZSBwbGFjZWQgaW4gdGhlIGNlbnRlciBv
ZiB0aGUgYm94LCBzdXJyb3VuZGVkIGJ5IHN0YXJ0QnV0dG9uUGFkZGluZy4KKyAgICBpZiAoY2Fu
ZGlkYXRlUmVjdC54KCkgPCBzdGFydEJ1dHRvblBhZGRpbmcgfHwgY2FuZGlkYXRlUmVjdC5tYXhZ
KCkgPiBjb250ZW50Qm94LmhlaWdodCgpIC0gc3RhcnRCdXR0b25QYWRkaW5nKQorICAgICAgICBy
ZXR1cm4gTGF5b3V0UmVjdCgpOworICAgIHJldHVybiBjYW5kaWRhdGVSZWN0OworfQorCiB2b2lk
IFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpsYXlvdXQoKQogewogICAgIFJlbmRlckVtYmVkZGVk
T2JqZWN0OjpsYXlvdXQoKTsKKworICAgIExheW91dFJlY3QgcmVjdCA9IGNvbnRlbnRCb3hSZWN0
KCk7CisgICAgaW50IHdpZHRoID0gcmVjdC53aWR0aCgpOworICAgIGludCBoZWlnaHQgPSByZWN0
LmhlaWdodCgpOwogICAgIGlmIChwbHVnSW5JbWFnZUVsZW1lbnQoKS0+ZGlzcGxheVN0YXRlKCkg
PCBIVE1MUGx1Z0luRWxlbWVudDo6UGxheWluZykgewotICAgICAgICBMYXlvdXRSZWN0IHJlY3Qg
PSBjb250ZW50Qm94UmVjdCgpOwotICAgICAgICBpbnQgd2lkdGggPSByZWN0LndpZHRoKCk7Ci0g
ICAgICAgIGludCBoZWlnaHQgPSByZWN0LmhlaWdodCgpOwogICAgICAgICBpZiAoIXdpZHRoIHx8
ICFoZWlnaHQgfHwgKHdpZHRoIDw9IGF1dG9TdGFydFBsdWdJblNpemVUaHJlc2hvbGRXaWR0aCAm
JiBoZWlnaHQgPD0gYXV0b1N0YXJ0UGx1Z0luU2l6ZVRocmVzaG9sZEhlaWdodCkpCiAgICAgICAg
ICAgICBwbHVnSW5JbWFnZUVsZW1lbnQoKS0+c2V0RGlzcGxheVN0YXRlKEhUTUxQbHVnSW5FbGVt
ZW50OjpQbGF5aW5nKTsKICAgICB9CiAKLSAgICBMYXlvdXRTaXplIGJ1dHRvblNpemUgPSBzdGFy
dEJ1dHRvbkltYWdlKCktPnNpemUoKTsKLSAgICBtX2J1dHRvblJlY3QgPSBMYXlvdXRSZWN0KGNv
bnRlbnRCb3hSZWN0KCkubWF4WE1heFlDb3JuZXIoKSAtIExheW91dFNpemUoc3RhcnRCdXR0b25Q
YWRkaW5nLCBzdGFydEJ1dHRvblBhZGRpbmcpIC0gYnV0dG9uU2l6ZSwgYnV0dG9uU2l6ZSk7Cisg
ICAgbV9idXR0b25SZWN0ID0gdHJ5VG9GaXRTdGFydEJ1dHRvbihCdXR0b25TaXplTGFyZ2UsIHJl
Y3QpOworICAgIGlmICghbV9idXR0b25SZWN0LmlzRW1wdHkoKSkgeworICAgICAgICBtX2J1dHRv
blR5cGUgPSBCdXR0b25TaXplTGFyZ2U7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBt
X2J1dHRvblJlY3QgPSB0cnlUb0ZpdFN0YXJ0QnV0dG9uKEJ1dHRvblNpemVTbWFsbCwgcmVjdCk7
CisgICAgaWYgKCFtX2J1dHRvblJlY3QuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fYnV0dG9uVHlw
ZSA9IEJ1dHRvblNpemVTbWFsbDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fYnV0
dG9uVHlwZSA9IE5vQnV0dG9uOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCmluZGV4
IDJhMWY4OTZjNzQ0YzE3M2E4Mzc4ZmQxZjQ3ZTExNDJlNzY5ZmZkZjcuLjMzYzM5ODRjYzg2MjRk
ZGEzMDkyODEyZmUzNGM5ODU1ODY1ZWE1YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5j
bHVkZSAiUmVuZGVyRW1iZWRkZWRPYmplY3QuaCIKIAogI2luY2x1ZGUgIlJlbmRlckltYWdlUmVz
b3VyY2UuaCIKLSNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTQwLDYgKzM5LDE4IEBAIHB1YmxpYzoKICAgICBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Kik7CiAgICAgdmlydHVhbCB+UmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4oKTsKIAorICAgIGVudW0gQnV0dG9uU2l6ZSB7CisgICAgICAgIE5vQnV0dG9uLAor
ICAgICAgICBCdXR0b25TaXplU21hbGwsCisgICAgICAgIEJ1dHRvblNpemVMYXJnZSwKKyAgICB9
OworCisgICAgZW51bSBCdXR0b25TdGF0ZSB7CisgICAgICAgIEJ1dHRvblN0YXRlTm9ybWFsLAor
ICAgICAgICBCdXR0b25TdGF0ZUhvdmVyZWQsCisgICAgICAgIEJ1dHRvblN0YXRlQWN0aXZlLAor
ICAgIH07CisKICAgICB2b2lkIHVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1hZ2U+KTsKIAog
ICAgIHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqKTsKQEAgLTU3LDkgKzY4LDEzIEBAIHByaXZhdGU6
CiAgICAgdm9pZCBwYWludEJ1dHRvbihQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwog
ICAgIHZvaWQgcmVwYWludEJ1dHRvbigpOwogCisgICAgTGF5b3V0UmVjdCB0cnlUb0ZpdFN0YXJ0
QnV0dG9uKEJ1dHRvblNpemUsIGNvbnN0IExheW91dFJlY3QmIGNvbnRlbnRCb3gpIGNvbnN0Owor
ICAgIEltYWdlKiBzdGFydEJ1dHRvbkltYWdlKEJ1dHRvblNpemUsIEJ1dHRvblN0YXRlKSBjb25z
dDsKKwogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERTsKIAogICAgIE93blB0cjxS
ZW5kZXJJbWFnZVJlc291cmNlPiBtX3NuYXBzaG90UmVzb3VyY2U7CisgICAgQnV0dG9uU2l6ZSBt
X2J1dHRvblR5cGU7CiAgICAgTGF5b3V0UmVjdCBtX2J1dHRvblJlY3Q7CiAgICAgYm9vbCBtX2lz
TW91c2VJbkJ1dHRvblJlY3Q7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9jL2NnL1dLSW1hZ2VDRy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvY2cv
V0tJbWFnZUNHLmNwcAppbmRleCA5MzgwNDliNzFiOWUwNzI4MTQwNzkyMmM3NDMxMmUyN2EwM2U5
MDJkLi4xMDcxZWY1OTJiODY2NWZmYjgwNjJmZGJkOGY4MmUwMjk5ZTA3ZTc1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvY2cvV0tJbWFnZUNHLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvY2cvV0tJbWFnZUNHLmNwcApAQCAtMjksNiArMjksNyBA
QAogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIldLU2hhcmVkQVBJQ2Fz
dC5oIgogI2luY2x1ZGUgIldlYkltYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Db2xvclNwYWNl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKQEAgLTU0LDYgKzU1LDggQEAgV0tJbWFnZVJlZiBXS0ltYWdlQ3JlYXRlRnJv
bUNHSW1hZ2UoQ0dJbWFnZVJlZiBpbWFnZVJlZiwgV0tJbWFnZU9wdGlvbnMgb3B0aW9ucykKICAg
ICAgICAgcmV0dXJuIDA7CiAKICAgICBPd25QdHI8R3JhcGhpY3NDb250ZXh0PiBncmFwaGljc0Nv
bnRleHQgPSB3ZWJJbWFnZS0+Yml0bWFwKCktPmNyZWF0ZUdyYXBoaWNzQ29udGV4dCgpOwotICAg
IENHQ29udGV4dERyYXdJbWFnZShncmFwaGljc0NvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLCBD
R1JlY3RNYWtlKDAsIDAsIGltYWdlU2l6ZS53aWR0aCgpLCBpbWFnZVNpemUuaGVpZ2h0KCkpLCBp
bWFnZVJlZik7CisgICAgRmxvYXRSZWN0IHJlY3QoRmxvYXRQb2ludCgwLCAwKSwgaW1hZ2VTaXpl
KTsKKyAgICBncmFwaGljc0NvbnRleHQtPmNsZWFyUmVjdChyZWN0KTsKKyAgICBncmFwaGljc0Nv
bnRleHQtPmRyYXdOYXRpdmVJbWFnZShpbWFnZVJlZiwgaW1hZ2VTaXplLCBXZWJDb3JlOjpDb2xv
clNwYWNlRGV2aWNlUkdCLCByZWN0LCByZWN0KTsKICAgICByZXR1cm4gdG9BUEkod2ViSW1hZ2Uu
cmVsZWFzZSgpLmxlYWtSZWYoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAppbmRleCBj
MmIzNzg5NGE2ZjE2MGE1N2Q5YjIyNzQxMDQ5YTJkYzQ3NTEyNTYwLi5hN2ZiYTUxOWUxMjEzZWY3
OTIxZTIwOGI2MTE0MmE1Y2Y0MzhkMDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKQEAg
LTIyNSw3ICsyMjUsMjAgQEAgZW51bSB7CiAgICAgV0tCdW5kbGVQYWdlVUlFbGVtZW50SGlkZGVu
CiB9OwogdHlwZWRlZiB1aW50MzJfdCBXS0J1bmRsZVBhZ2VVSUVsZW1lbnRWaXNpYmlsaXR5Owot
ICAgIAorCitlbnVtIHsKKyAgICBXS0J1bmRsZVBhZ2VCdXR0b25TaXplU21hbGwsCisgICAgV0tC
dW5kbGVQYWdlQnV0dG9uU2l6ZUxhcmdlLAorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tCdW5kbGVQ
YWdlQnV0dG9uU2l6ZTsKKworZW51bSB7CisgICAgV0tCdW5kbGVQYWdlQnV0dG9uU3RhdGVOb3Jt
YWwsCisgICAgV0tCdW5kbGVQYWdlQnV0dG9uU3RhdGVIb3ZlcmVkLAorICAgIFdLQnVuZGxlUGFn
ZUJ1dHRvblN0YXRlQWN0aXZlLAorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tCdW5kbGVQYWdlQnV0
dG9uU3RhdGU7CisKIC8vIFVJIENsaWVudAogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlV2ls
bEFkZE1lc3NhZ2VUb0NvbnNvbGVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3Ry
aW5nUmVmIG1lc3NhZ2UsIHVpbnQzMl90IGxpbmVOdW1iZXIsIGNvbnN0IHZvaWQgKmNsaWVudElu
Zm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlV2lsbFNldFN0YXR1c2JhclRleHRDYWxs
YmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIHN0YXR1c2JhclRleHQsIGNv
bnN0IHZvaWQgKmNsaWVudEluZm8pOwpAQCAtMjQyLDYgKzI1NSw3IEBAIHR5cGVkZWYgV0tCdW5k
bGVQYWdlVUlFbGVtZW50VmlzaWJpbGl0eSAoKldLQnVuZGxlUGFnZU1lbnVCYXJJc1Zpc2libGVD
YWxsYmFjaykoCiB0eXBlZGVmIFdLQnVuZGxlUGFnZVVJRWxlbWVudFZpc2liaWxpdHkgKCpXS0J1
bmRsZVBhZ2VUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlUmVh
Y2hlZEFwcENhY2hlT3JpZ2luUXVvdGFDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdL
U2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQsIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB1aW50NjRfdCAoKldLQnVuZGxlUGFnZUV4Y2Vl
ZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTZWN1cml0
eU9yaWdpblJlZiBvcmlnaW4sIFdLU3RyaW5nUmVmIGRhdGFiYXNlTmFtZSwgV0tTdHJpbmdSZWYg
ZGF0YWJhc2VEaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhQnl0ZXMsIHVpbnQ2NF90
IGN1cnJlbnRPcmlnaW5Vc2FnZUJ5dGVzLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZUJ5
dGVzLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlQnl0ZXMsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8p
OwordHlwZWRlZiBXS0ltYWdlUmVmICgqV0tCdW5kbGVQYWdlR2VuZXJhdGVQbHVnSW5TdGFydEJ1
dHRvbkltYWdlQ2FsbGJhY2spKFdLQnVuZGxlUGFnZUJ1dHRvblNpemUgc2l6ZSwgV0tCdW5kbGVQ
YWdlQnV0dG9uU3RhdGUgc3RhdGUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogCiBzdHJ1Y3Qg
V0tCdW5kbGVQYWdlVUlDbGllbnQgewogICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKQEAgLTI2Niw3
ICsyODAsNyBAQCBzdHJ1Y3QgV0tCdW5kbGVQYWdlVUlDbGllbnQgewogCiAgICAgLy8gVmVyc2lv
biAyLgogICAgIFdLQnVuZGxlUGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGlkRXhjZWVkRGF0YWJhc2VRdW90YTsKLQorICAgIFdLQnVu
ZGxlUGFnZUdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgZ2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlOwogfTsKIHR5cGVkZWYgc3RydWN0
IFdLQnVuZGxlUGFnZVVJQ2xpZW50IFdLQnVuZGxlUGFnZVVJQ2xpZW50OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZVVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwCmluZGV4IDYyYWEyYjMxODkyYzAzY2Ew
NmVkNzBiNjRiNzM3ZTgxMGNiMmJkNTQuLmVlZWFmYzcxZmFmYjk3NTAxYjRkODkxNDYyMjVmZWI1
ZmE5YWI1OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3Bw
CkBAIC0xNjMsNCArMTYzLDM5IEBAIHVpbnQ2NF90IEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50
OjpkaWRFeGNlZWREYXRhYmFzZVF1b3RhKFdlYlBhZ2UqIHBhZ2UsIFdlYlNlCiAgICAgcmV0dXJu
IG1fY2xpZW50LmRpZEV4Y2VlZERhdGFiYXNlUXVvdGEodG9BUEkocGFnZSksIHRvQVBJKG9yaWdp
biksIHRvQVBJKGRhdGFiYXNlTmFtZS5pbXBsKCkpLCB0b0FQSShkYXRhYmFzZURpc3BsYXlOYW1l
LmltcGwoKSksIGN1cnJlbnRRdW90YUJ5dGVzLCBjdXJyZW50T3JpZ2luVXNhZ2VCeXRlcywgY3Vy
cmVudERhdGFiYXNlVXNhZ2VCeXRlcywgZXhwZWN0ZWRVc2FnZUJ5dGVzLCBtX2NsaWVudC5jbGll
bnRJbmZvKTsKIH0KIAorUGFzc1JlZlB0cjxXZWJJbWFnZT4gSW5qZWN0ZWRCdW5kbGVQYWdlVUlD
bGllbnQ6OmdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZShSZW5kZXJTbmFwc2hvdHRlZFBs
dWdJbjo6QnV0dG9uU2l6ZSBzaXplLCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6QnV0dG9uU3Rh
dGUgc3RhdGUpIGNvbnN0Cit7CisgICAgaWYgKCFtX2NsaWVudC5nZW5lcmF0ZVBsdWdJblN0YXJ0
QnV0dG9uSW1hZ2UpCisgICAgICAgIHJldHVybiAwOworCisgICAgV0tCdW5kbGVQYWdlQnV0dG9u
U2l6ZSB3a1NpemU7CisgICAgc3dpdGNoIChzaXplKSB7CisgICAgY2FzZSBSZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbjo6QnV0dG9uU2l6ZVNtYWxsOgorICAgICAgICB3a1NpemUgPSBXS0J1bmRsZVBh
Z2VCdXR0b25TaXplU21hbGw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW46OkJ1dHRvblNpemVMYXJnZToKKyAgICAgICAgd2tTaXplID0gV0tCdW5kbGVQ
YWdlQnV0dG9uU2l6ZUxhcmdlOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAg
ICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBXS0J1bmRsZVBhZ2VCdXR0b25TdGF0ZSB3a1N0YXRl
OworICAgIHN3aXRjaCAoc3RhdGUpIHsKKyAgICBjYXNlIFJlbmRlclNuYXBzaG90dGVkUGx1Z0lu
OjpCdXR0b25TdGF0ZU5vcm1hbDoKKyAgICAgICAgd2tTdGF0ZSA9IFdLQnVuZGxlUGFnZUJ1dHRv
blN0YXRlTm9ybWFsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJlbmRlclNuYXBzaG90dGVk
UGx1Z0luOjpCdXR0b25TdGF0ZUhvdmVyZWQ6CisgICAgICAgIHdrU3RhdGUgPSBXS0J1bmRsZVBh
Z2VCdXR0b25TdGF0ZUhvdmVyZWQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW46OkJ1dHRvblN0YXRlQWN0aXZlOgorICAgICAgICB3a1N0YXRlID0gV0tC
dW5kbGVQYWdlQnV0dG9uU3RhdGVBY3RpdmU7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6
CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHJldHVybiBhZG9wdFJlZih0b0ltcGwo
bV9jbGllbnQuZ2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlKHdrU2l6ZSwgd2tTdGF0ZSwg
bV9jbGllbnQuY2xpZW50SW5mbykpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKaW5kZXggMTNjODljNjdkZDJiY2Ux
NmE3ODRkODYxZDU5MGMzMzhlNzkzYTk0NC4uNTQxMGEyMTdjNzBiYTA0NjljMGQ3NWQxMWVkYTVl
YzJjZTlmNDE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaApA
QCAtMjksMTIgKzI5LDE0IEBACiAjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCiAjaW5jbHVkZSAiV0tC
dW5kbGVQYWdlLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJJbWFnZS5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaD4KICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgR3JhcGhp
Y3NDb250ZXh0OwotICAgIGNsYXNzIEhpdFRlc3RSZXN1bHQ7Ci0gICAgY2xhc3MgSW50UmVjdDsK
K2NsYXNzIEdyYXBoaWNzQ29udGV4dDsKK2NsYXNzIEhpdFRlc3RSZXN1bHQ7CitjbGFzcyBJbnRS
ZWN0OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTY4LDYgKzcwLDggQEAgcHVibGljOgog
CiAgICAgdm9pZCBkaWRSZWFjaEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJQYWdlKiwg
V2ViU2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQpOwogICAgIHVpbnQ2
NF90IGRpZEV4Y2VlZERhdGFiYXNlUXVvdGEoV2ViUGFnZSosIFdlYlNlY3VyaXR5T3JpZ2luKiwg
Y29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXNwbGF5
TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhQnl0ZXMsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5V
c2FnZUJ5dGVzLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZUJ5dGVzLCB1aW50NjRfdCBl
eHBlY3RlZFVzYWdlQnl0ZXMpOworCisgICAgUGFzc1JlZlB0cjxXZWJJbWFnZT4gZ2VuZXJhdGVQ
bHVnSW5TdGFydEJ1dHRvbkltYWdlKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpC
dXR0b25TaXplLCBXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6QnV0dG9uU3RhdGUp
IGNvbnN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKaW5kZXggMDk3YWJlOGNhYWQ1MWM1MzNhZWRiNGM5MzI4MjUwMjU1NTFjOTgxMC4uNmZmYWM4
NzllNzk4OTljOGNmN2FjYTY4YWZhMjk1ZDdhMmJjMGVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAi
V2ViRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlci5o
IgorI2luY2x1ZGUgIldlYkltYWdlLmgiCiAjaW5jbHVkZSAiV2ViT3BlblBhbmVsUGFyYW1ldGVy
cy5oIgogI2luY2x1ZGUgIldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmgiCiAjaW5jbHVkZSAi
V2ViUGFnZS5oIgpAQCAtODE4LDQgKzgxOSw5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpsb2dE
aWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYKICAg
ICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFn
bm9zdGljTWVzc2FnZShtX3BhZ2UsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCBzdWNjZXNzKTsKIH0K
IAorUGFzc1JlZlB0cjxJbWFnZT4gV2ViQ2hyb21lQ2xpZW50OjpnZW5lcmF0ZVBsdWdJblN0YXJ0
QnV0dG9uSW1hZ2UoUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OkJ1dHRvblNpemUgc2l6ZSwgUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW46OkJ1dHRvblN0YXRlIHN0YXRlKSBjb25zdAoreworICAgIHJl
dHVybiBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVUlDbGllbnQoKS5nZW5lcmF0ZVBsdWdJblN0YXJ0
QnV0dG9uSW1hZ2Uoc2l6ZSwgc3RhdGUpLT5iaXRtYXAoKS0+Y3JlYXRlSW1hZ2UoKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAxZTYyZjdhYmQ0
Y2MyYmI4NTI5ZTUwZjc3MTBmNzJkNjA4ZTAxYzYzLi44NzM4ZTljN2VjN2FlNDI5NjIwZDE2MmY2
OGIxOTg1YmM2ZjcyNDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTI4LDYgKzI4LDcgQEAK
ICNkZWZpbmUgV2ViQ2hyb21lQ2xpZW50X2gKIAogI2luY2x1ZGUgPFdlYkNvcmUvQ2hyb21lQ2xp
ZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmll
d3BvcnRBcmd1bWVudHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAt
MjI1LDYgKzIyNiw4IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3Rp
Y01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9u
LCBjb25zdCBTdHJpbmcmIHN1Y2Nlc3MpIE9WRVJSSURFOwogCisgICAgdmlydHVhbCBQYXNzUmVm
UHRyPFdlYkNvcmU6OkltYWdlPiBnZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2UoV2ViQ29y
ZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OkJ1dHRvblNpemUsIFdlYkNvcmU6OlJlbmRlclNu
YXBzaG90dGVkUGx1Z0luOjpCdXR0b25TdGF0ZSkgY29uc3QgT1ZFUlJJREU7CisKICAgICBTdHJp
bmcgbV9jYWNoZWRUb29sVGlwOwogICAgIG11dGFibGUgUmVmUHRyPFdlYkZyYW1lPiBtX2NhY2hl
ZEZyYW1lU2V0TGFyZ2VzdEZyYW1lOwogICAgIG11dGFibGUgYm9vbCBtX2NhY2hlZE1haW5GcmFt
ZUhhc0hvcml6b250YWxTY3JvbGxiYXI7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggZTZkYzhhODkyOTZmNTViOTBhOWU4MzFlZDRkZjk3MjAxNDEy
OWNmMi4uZWE1M2U4MmMwNTk1MjU2YTFmMDk4Y2Y2N2FjNTc1MzQ1ZmEwOWNmOSAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDEyLTEyLTA1ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBbV0sy
XSBNb3ZlIGJ1dHRvbiBpbWFnZSB0byBpbmplY3RlZCBidW5kbGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDEwNworICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTI4MTM4NDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5k
bGVQYWdlKTogVXBkYXRlIHRoZSBidW5kbGUgcGFnZSBVSSBjbGllbnQuCisKIDIwMTItMTItMDUg
IEp1c3NpIEt1a2tvbmVuICA8anVzc2kua3Vra29uZW5AaW50ZWwuY29tPgogCiAgICAgICAgIFtX
SzJdIEluamVjdGVkQnVuZGxlIHNob3VsZCBjaGVjayBJbnRlbnQgdXJsIGZvciBudWxsCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZS5jcHAKaW5kZXggMWQ1NzkxYzljNjQzODM0N2MwNWRiNTY3NjQyNWRmZTlh
NWQyOTFhZS4uMGI4MTk4YzMyMTZlYmI3NzI4NmYzMDhkZmY2NmQ0OWU3ODU1MmM0YyAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAtMzc2LDYgKzM3Niw3IEBAIEluamVjdGVkQnVuZGxlUGFn
ZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKFdLQnVuZGxlUGFnZVJlZiBwYWdlKQogICAgICAgICAwLCAv
KnRvb2xiYXJzQXJlVmlzaWJsZSovCiAgICAgICAgIGRpZFJlYWNoQXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhLAogICAgICAgICBkaWRFeGNlZWREYXRhYmFzZVF1b3RhLAorICAgICAgICAwLCAv
KmdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZSovCiAgICAgfTsKICAgICBXS0J1bmRsZVBh
Z2VTZXRVSUNsaWVudChtX3BhZ2UsICZ1aUNsaWVudCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178195</attachid>
            <date>2012-12-07 04:15:09 -0800</date>
            <delta_ts>2012-12-07 09:21:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104107-20121207041233.patch</filename>
            <type>text/plain</type>
            <size>76070</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY0YmMxOTE2M2Q1YjA5
ZGUxNjFjMDgxY2I2NDQyOTE4MWUyNzMyZC4uMGIwYzIyOWRkZjEwMTkxZjYzMjMxNGJiMjE4MThj
YmQ5OGFhNDllOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQwIEBACiAyMDEyLTEyLTA3ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAorICAgICAgICBbV0syXSBNb3ZlIGJ1dHRvbiBpbWFn
ZSB0byBpbmplY3RlZCBidW5kbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNDEwNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTI4MTM4NDI+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIFJl
bmRlclNuYXBzaG90dGVkUGx1Z0luIHRvIHJldHJpZXZlIHRoZSBzdGFydCBidXR0b24gaW1hZ2Ug
ZnJvbSB0aGUgQ2hyb21lQ2xpZW50LiBFeHBhbmQgdGhlCisgICAgICAgIGtpbmRzIG9mIGltYWdl
cyBhdmFpbGFibGUgZm9yIHVzZSBhcyB0aGUgYnV0dG9uLiBUcnkgdG8gZmluZCB0aGUgYmVzdCBz
aXplZCBidXR0b24gdG8gdXNlIGZvciB0aGUgcGx1Zy1pbiwKKyAgICAgICAgb3RoZXJ3aXNlIHVz
ZSBubyBpbWFnZSBhdCBhbGwuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4uY3BwOiBLZWVwIHRyYWNrIG9mIHRoZSBkZXNpcmVkIGJ1dHRvbiB0byB1c2UgZm9y
IHRoaXMgcmVuZGVyZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bjo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4pOiBTdGFydCBvZmYgd2l0aCBubyBidXR0b24uIER1
cmluZyBsYXlvdXQgd2Ugd2lsbAorICAgICAgICBkZXRlcm1pbmUgd2hpY2ggYnV0dG9uIHRvIHVz
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpzdGFydEJ1dHRv
bkltYWdlKTogTWFpbnRhaW4gYSBjYWNoZSBvZiB0aGUgaW1hZ2VzIGZvciByZXVzZS4gSW5kZXgg
aW50byB0aGUKKyAgICAgICAgYXJyYXkgdXNpbmcgdGhlIGVudW0uIElmIHRoZSBpbWFnZSBoYXMg
YmVlbiBsb2FkZWQsIG9yIGFuIGF0dGVtcHQgd2FzIG1hZGUsIHRoZW4gcmV0dXJuIHRoZSByZXN1
bHQuIE90aGVyd2lzZQorICAgICAgICBhc2sgdGhlIGNocm9tZSBjbGllbnQgdG8gZ2VuZXJhdGUg
dGhlIGltYWdlLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBh
aW50QnV0dG9uKTogUmVmYWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbjo6dHJ5VG9GaXRTdGFydEJ1dHRvbik6IENvbXBhcmUgdGhlIGJ1dHRvbiBzaXplIHdp
dGggdGhlIHByb3ZpZGVkIGNvbnRlbnQKKyAgICAgICAgYm94LiBSZXR1cm4gYSBMYXlvdXRSZWN0
IHJlcHJlc2VudGluZyB0aGUgYnV0dG9uJ3MgcGxhY2VtZW50LiBJZiBpdCBkb2Vzbid0IGZpdCwg
cmV0dXJuIGFuIGVtcHR5IHJlY3QuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbjo6bGF5b3V0KTogVHJ5IHRvIGZpdCB0aGUgbGFyZ2UgYnV0dG9uLCB0aGVuIHRoZSBz
bWFsbC4gSWYgYm90aCBmYWlsLCBkb24ndAorICAgICAgICBkcmF3IGEgYnV0dG9uLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oOiBBZGQgYW4gZW51bXMgcmVw
cmVzZW50aW5nIHRoZSBzaXplIHRvIHVzZS4KKworICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50
Lmg6IEFkZGVkIGdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZS4gQWxzbywgZml4IFdlYktp
dCBzdHlsZSBlcnJvcnMsIGluY2x1ZGluZyBpbmRlbnRhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudDo6Z2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlKToKKworICAgICAg
ICAqIFdlYkNvcmUuZXhwLmluOiBFeHBvc2UgR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1h
Z2UoKSBmb3IgV0tJbWFnZUNHLmNwcC4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6IFJlbW92ZSBzdGFydCBidXR0b24gYXNzZXRzLgorICAgICAgICAqIFJlc291
cmNlcy9zdGFydEJ1dHRvbi5wbmc6IFJlbW92ZWQuCisgICAgICAgICogUmVzb3VyY2VzL3N0YXJ0
QnV0dG9uQDJ4LnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBSZXNvdXJjZXMvc3RhcnRCdXR0b25Q
cmVzc2VkLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBSZXNvdXJjZXMvc3RhcnRCdXR0b25QcmVz
c2VkQDJ4LnBuZzogUmVtb3ZlZC4KKworMjAxMi0xMi0wNyAgSm9uIExlZSAgPGpvbmxlZUBhcHBs
ZS5jb20+CisKICAgICAgICAgQnVpbGQgZml4LgogCiAgICAgICAgICogcGx1Z2lucy9QbHVnSW5P
cmlnaW5IYXNoLmNwcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxZjMzODBiZGFiYTZiMWY3ZDc2M2Q3NzUzNTVj
OTNhYWUyOWQyNjI5Li4zN2VkNDA2ZGI2NDdhMjU3NTg2NDM5ZmQ1MTJjYzZhODc0YmUwMGQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMTItMDcgIEpvbiBMZWUgIDxqb25sZWVA
YXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIE1vdmUgYnV0dG9uIGltYWdlIHRvIGluamVjdGVk
IGJ1bmRsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA0MTA3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjgxMzg0Mj4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWx5IG9uIHRoZSBpbmplY3RlZCBi
dW5kbGUgdG8gY3JlYXRlIHRoZSBpbWFnZSB1c2VkIGZvciB0aGUgYnV0dG9uIGluIHNuYXBzaG90
dGVkIHBsdWctaW5zLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmdlbmVy
YXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZSk6IEZvcndhcmQgdGhlIGNhbGwgdG8gdGhlIGluamVj
dGVkIGJ1bmRsZSBVSSBjbGllbnQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaDogSW1wbGVtZW50IGdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25J
bWFnZSgpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VVSUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFn
ZVVJQ2xpZW50OjpnZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2UpOiBDb252ZXJ0IHRoZSBX
ZWJDb3JlIGVudW1zIHRvIFdLIEFQSQorICAgICAgICBlbnVtcy4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50Lmg6CisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oOiBFeHBv
c2UgYSBuZXcgY2FsbGJhY2sgdG8gZ2VuZXJhdGUgdGhlIGJ1dHRvbiBpbWFnZS4KKworICAgICAg
ICAqIFNoYXJlZC9BUEkvYy9jZy9XS0ltYWdlQ0cuY3BwOgorICAgICAgICAoV0tJbWFnZUNyZWF0
ZUZyb21DR0ltYWdlKTogUmVmYWN0b3IgdG8gdXNlIEdyYXBoaWNzQ29udGV4dCBtZXRob2RzIHNv
IHRoYXQgdGhlIGltYWdlIGlzIGZsaXBwZWQgYXBwcm9wcmlhdGVseS4KKwogMjAxMi0xMi0wNiAg
UmljayBCeWVycyAgPHJieWVyc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ1NTIGN1cnNvciBw
cm9wZXJ0eSBzaG91bGQgc3VwcG9ydCB3ZWJraXQtaW1hZ2Utc2V0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9SZXNvdXJjZXMvc3RhcnRCdXR0b24ucG5nIGIvU291cmNlL1dlYkNvcmUvUmVz
b3VyY2VzL3N0YXJ0QnV0dG9uLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjc0
OGMxOGY1ZGFjYjE1Njk1N2RkNGNkZjM5MjRlYjM1MjQxMGEyMC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2Qw
MDAwMQoKbGl0ZXJhbCAyMDE3CnpjbVY8NzJPanV8UCk8aDszS3xMazAwMGUxTkpMVHEwMDFaZTAw
MVptMV5AczZqUStUNzAwME41TmtsPFpTUDhZNgp6JnVkZyE3UlQjVkR3XjFGajVWWW9sUUF7Xmgt
aS1zamYjdEcwKXE9VExSMylQSUtyI347ekJwd3E4cVcoX3k9U3UKekNge3NyKGpjXyFNaEw/JnFQ
LVlyRihEP31sZ01QK2tQSz1QbFRgS2heWVhzTWViMWAySGElQmZvJTdFOXA2QHlECnorI20xZThD
NUVrVC1YakFJSXdCa3dyemI0NEdxMGY2bV9WLUNHN3ZEYjtXb3MmZEtIRjwhXyVvZC1uQ0NNfn4q
aAp6Nz9CZWNGelZ+O0pLZmFPXm0kYHJWXkxSNXJ1WWdTTExGWik8X1A9SC1HYCpyIWVpckZUM1g1
fSQoYzhBLVZFSG8KemV9NzF9eE4+b1ZCOFgwJElCYGtJXnstcEVFfDxeZVc1Vm5ZSmBQSHNiPnVK
NiVIP3dJLU1lP1dnQHVLfHlMYXppCnpCZ3EyOU1+QHlveT8qYHJJNWBLYzdjaENTeFpBcEFKKWFN
PzZQcDV3dVV8UWgla1IoOHt7OHptP2J4d25NQWEqNQp6LWxlI2x0U2R3IXd4eGl7anIlP25wWElQ
V2x+ZmdITW5efGBAPntsUz4wezIzOTMzPHk3WVNMcU58d2YxOGZPeyQKelYmZ0o0UmBlNnYme3RN
Z3M8dUwqUCRXMFdMTjlZSjFsSjw0RWkzVlJgfVM/dDlOJXgpdSVYSX1wPEdfa1o8SShaCnoqNTlB
UTxWMD0tSiF1RWZ1cmwwI092ODZAYVBZcXhnP1F6dTU+YkREZV9MKE5hOWd1KG5UfD9zQi1yOVBs
a1JeMQp6aikweWdWSzRTI3ZBRT5iQDZpWWA9PUo9S0dkRDhQVGpFdVc8QSlMdTlPc3tFO05XI3E8
X34zPDVPI0JpNTEyfFkKemJWa29NMlgmPn4/KzVnfnJSfG5aeno9QTxDNFFtS2VKYTgxNjlLamph
eE1MZT8jdFNlOFhUaytzY201fWJvc0FICno9OWA8RkJPV3MzJEVRfEh5KXNPUTQwVj0yJCg9Zk4+
Z21DUTJtaSl5fEZJMXBlQnFkJXBSZWUoN0U/RypKLSEwTAp6KkpATzVhZEVNNz1GRkw9K1REeDd3
QE0kQ3QmM2ZzUnhiIzREbElIO2h8IUF8RkxyOUI9az9abGRoX1BaLSlraHwKek80ZkB7WmdCLTZz
Jl8lWWNra1lSa3ttPD83I0o5TUMrRjhCVSN+ZjdmYEcqYlUrezNqMzN0Nz9fUnBeY1V8OTUpCnpu
WW5QYCFzYWxNKzFjNFF4P2QoWiYxQ1VTQD8lfncodzdzVERnO2lyIXw3cmtgeSR0emdPSHkqZDIp
KDNnNEAqOAp6KURLcyNUPEtDWlREOC1zLVcwfSE1e3dkUSNScCZhITNqNVdGLSQxYiFLTnlSMFJT
eXxeMkgtWmp7R197QnRNcmcKelV0VSZubithQGUqbCpvfG08R2FnWk43QnIoKDF9Y0t5VkFVPXAt
P1JvYWxBdUFXa352akE9cXctJFBISEpRPCZ2CnpuZHY1PTZSPm4qcD4hfUxKe3NuM0lFO2IydEUr
M3czN1gzaVR3Rm4mSFI2OTUmfWV9Nj9jMH1uO15FPXBpWl5MMAp6O3xweElWVClQOCFLcVQ8Sk4l
ZDc2aitPZXkpa3o4cTY+TGZIfG12RHopR1leRkJRMz5sWlRFd3ROVGIyZVBVdncKeiVeTkh4Wntr
ViFgQClNbms+RHF1T3wqcjsmZCR6OEN4cVFlOGswe017QWBreWF3WFQlKGVhNmFOTnVwSztrfTw2
CnpzYlB2NzJ0QlQjcyVKP2IzRj5IOzt2ZmNuIyN4JCsoQGZrK1Y5byRrOF84ZytyQj1EXzFAfXxY
ejFrbzxjSTtUWQp6Pz9WfmwoTWRBWDtzLU8lNSk2ODM2Xy1edGo3WWBJTzsxbSFQTkxjX3t6dHpy
bGp6LT08STxhPEQkJEojcjhyVzUKelJ3fkI0PVFUS1VURitKfTJKbk5eaXgpMnpzfEczQ3d7UU9z
KXBFMSQ7bE9VMkZgO0RaZitNcyFoNys7YGdJOyU9CnpWSkpwTU0mZDxlTFQjKU9KM28kR3Q1YWZD
aFB3TitsRH5jN0ZkdmNfI0w4bTFyPiRBUnY5WWxkZHo3MkxJJjlPKQp6YEheaTJoc2Ftd0U7IXJs
Vn5HI0dhRCtCfU8oPVBZWjRZSXRmXjx8ZipBUj1lYFFFKkl2IVRRRj4oPmppUGJZN2gKenhVMUlG
bitGTE5BTmUraFQ+OWdEanVAXldlZkJkaFJZNytteGowVH5iTi1EXjlvMW9KWipUd2Y+ZVpgYnZR
M004Cnole2orPjFPcFp5YEJ3S3BJQih5Ky1MNklCVCZsQEFKe3xFc1hoVC0hYnZoREo+JWRuN3NW
YTdOY2I5SjV4R35regp6KCgtcDVXYUd+alJMUDQ0b3ctVU03LTMpSFFfViFtd1FKWEFnPXIwa20t
c2EyMGJoZkBXY144JWlaQFI+IWdCTGcKemYjQ1ZgPVdSTTFlN3xTVW9+RD5WS05+bDB7Tih1WTxH
PFJ5ZC1yIVFVJW5pRl8zRzd2MHhxZHl1WjVsNXhwVV9+CnomWXdVM3trZTFKTj9gNFdST016TEpi
M1VLKXF+IyZJWDAzZXpQYWV8O2xxRWAoSUBxRWFqJC15YVBzQThgUnYpVgp6fEkoMj9eKEhYKEwq
PnhXKENuPlN3fDQzd1hlbD94TCg9ci1kYWVwP0p0ZzMkRFAtbSo4SFc3aCRCKX56dmoyVlAKeig0
cHBWP3F1TEtaeHQta0plPlJIIThlfjM4VmRQcmEjPCZtUjBTcytOflBjWkt9VnRPRV43ITNPSFB2
OVloIUtHCnokfVVVKVZiYHUqJV5haUZZTn4jOD1neXJ1b2c8NiN7Vmo+cl45a2NJfENIYyZRRXpZ
V0FONS1MdlF8WF5rcio7Owp6RUNNZHxFb2N0RT07YFRNRHdScz53TXZgOFgtPnstLVkja3JacXo+
NHNjSk5sUkpMa2FlI2ImR3QrZEYjaCFrTWMKeil+I0RkdmB+dDRkYHUkJTdzS0hUZT02WSUmWSMx
cD5kbE9na040eT9yezxMSGZjRz45TGVlWmwtNThRXldmJWRTCnprbUozUntnWnE4Tlk0MTVsRW1Q
Rjg2OSNXeDQye3ZBM2h3Q1ZVVihCRC14MjFOcnJsZVN4WE9uTGZ0K3xWaHJzZAp6SWV8JWlNQXV3
OHQqNEphcUkrMVYoKkx1TzlGNC1MSz5RZ3hwdCttPWgjbkBPPElwQ1phe0g4NnVQKGtGKjhPaD8K
emt8JSY0IW4lV295dFZZaXxGIVV3eTF0IzlvY3grJDRZNUIwNiVzdnBQbnZBazAwMDAwTmt2WFh1
MG1qZlN0YT8+CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3N0YXJ0QnV0
dG9uQDJ4LnBuZyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9zdGFydEJ1dHRvbkAyeC5wbmcK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkYTQ0MjFiZTkxMjUwNjA0YzBlMDA3MDk1
MzQ3M2E4MzhmZWUzOWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgNTMzNQp6Y21W
O3w2ZSNQN1ApPGg7M0t8TGswMDBlMU5KTFRxMDAyK2AwMDItMzFeQHM2anVHOyQwMDAhOE5rbDxa
Y21kVSYKelheZDZYbWRDNT03RlktPFZrNXtYNHd4djlqdFc3dlpBKjxxNk9EMDUkN3VBVXYoZHok
d29ePExwTjFHP2pLPXVVCno9a1I8Vm8qel5rSSE+P1NmU15nK0szaT5sRCMpWDBYeWg+I1AoJU5K
PWlkS2ktT1Z9WS1kaHlpe1dkd1opPihWNAp6e35GSFRgfE53cHQpZz5pWHNEeD0pflAxRm8obkkk
YU4kNyo5VyttO2xYTzEwdEUrM2dGekVaTVlzejcwYUJ5JnwKemEjJWt3RnRCMFF1M2NaZV9TJFBK
bHRgYSlZTjtAdCZHaDc/dlV1XzBgUXlmb3lTbDU9KW0hUFJPZFJUe1ZNOGNnCnpPUmsjTm11b35r
UEA0SD5GKlprVFR8KSlrKVpnRiN7KzJDVWUpSU8qWj9CVD9maW1tRDB4RjVsdig3cWUmY3VsbQp6
bXk4fWdkTkNsblFyU19kUk8mbyhDayk/Q09BNz4hVyRvWTs9XjZgfipZS3g7V25KaX5hTT9MQiZV
ZiRMeT9vUUEKelAwUVlVQDRhdHpvKHF5Jktta2BTeTZCPlI5Nk5VR1FXZFItIWx7VEk2Yj45MCV6
T2NNcmVfX1pHO2pVMVV9PUF2CnpeaG9RY2M9a3NESEp2KiZ0O3dOcD4oO0lKeSF6Xl56Ziprc2pL
K05tRDElWCNUeW5gal80TT55UHZKKDU4cjlMPQp6LUVIaHIlRk4/QiluO0l3JiVicyNQK2t0SUdx
fTFtU2VCIUhwaGIreEokdj9LcXE0OEJAMG5MI2RGOXRDOy0yV1kKenApeDk3Ql5GT05pfjRBYk0m
fGImRzFWenBUXk9xKTRqdyZQKEd7PWI0T1UwQGtaOFJISG5tVXZyflAkfDhxLVdhCno/ZjFaO2tQ
SWwqaDgmaGt1UmFwJTF5bn5UKF5mXmhvfmNVbFhiITN0ISMpSjNac3R2XkJhKSgySElRM29uQEhe
bwp6Tn5gTWN5I1BAK2tHRWdiUkhxcSFVT3o9LUNOaWF8amNXOEMoKStEXldRb19PQFkhZGRlZiR3
ZTlQeCZWKk9SVnkKejRrJmV5MjYmKilpTmk3QSVSSUR8KX48Y2pYRlgmKFljJSQ0KnMkUnItaEtE
b1p9OGQwNCtUJjs/NkFYQGFLbThECnpWKzdYWmJzQj5PSVBYOWljfk5zOy1CJGFiakVDMHRMWiVW
UmBZe0Y8JWB7SXglOEZ0dGxOJWUjTmFTRkVRN2clXgp6QjR0emZ5enxiUnVnPThgUmZefENeVDE7
dHo/fEVXYEtYZyhIMXhVRkhSfEctVmpLMCVvMko7VT10bz1ncmc/WiMKek1nYlgjKVFYeV5aJCsx
cUA2PmtYWUtuKEtKSSMpdmsjN2clSzxhdnIyYVd2eF9AcVlFaWtlWTdEJUstbUZRQU0qCno5SEJy
blp8QkdAJWo/Z0tOYDVyNlpgTk18byFfTjJ2ZT5LWFJDTk9IVHcyWUtfKkFwKCgwIXM7ZklYY1RU
eVIwfQp6QSVgNkRBfiVrOU1fXylgITt8alZ2NztAK2dBWUVxc3M0eXhrZVd4ZkhUc20mcF50bDRj
SWw9dTQ+XkA+KjVXa3YKencyYyZkPnFPbzxRM2xfdjhMUDs/U153WipiLU09VEs7SmFsSGpCZ2t3
JjVJfStJNEglQD5DQCZBVkxabTczcXR1Cnp0U3s9cGA9WGVaO2spbV8yT3IkNW5jJis/MUVqOGU9
ZV9zZEpFMWBzUDheJFF3V3w/SURIYi16Jn1pU05aWEtsNQp6dTNMaTEoSUUxVHJwP2M2WW5vP0sp
O0JtYiptMlpSTkExKmRsQUVUYzRieC0tN3spUXBeVkxqZFRUfUVTVXR9SyEKeiNOO2tqYVhnQX48
Tjt6SlEqX0sxXmBvPDJFd15tTmgkOV9PR2QlWWI1aj9mKSkqWXltI256cHNkMTFUcXJzJjRQCno9
aD9JPkdnZFF3JENweTxAP18yTSh0Y3k0YT9ZSk1sIU14cFp1fEB1WClJVWBxejtfdHY+bG9Ldn0w
NEkzdG8magp6KXBaezx1UXtHYlpCeVUrPFFaQlA0UCE4WDd8NHxWXlo+XmdrKyl1eXI5OV8odHNP
aktxZDh2bG5YclcpX1RfazsKellzQVkmcGNWMms0TUx4Sig8cDxGNCVgPVlFclpoQjJqIyVObTFn
fmo1JjRMbFYhQUkrS2hKbE96VTV0SlFiNWExCnolZlFofDR+RG9OTFN+MmlxS2BhMFBtOD1oJVZJ
cHteWURAM3BUfCY5Jm9RSmolVDRxODlmSyk0LTV4Y1puRDxxUwp6Rzg7dSZxKSNDbkkyaTJPZEE/
WU49ZX4mRkUpTkNgaWh0dHBmcSZtRGl9RVlWJEc5O2IkMisxVTVDO1V6bTR8OVcKenlqd3dTPEQo
QTtFaWFnP3FlLTgycGtOcnNIMV9rdnIxbX56bj81YjxqeG0rbDg+PDw8ZVdCTHtfKChNWGNrYk1v
CnpDOHROPSt3Wl5ze2BGVH1hbUJ4YT8tNE9sektVPiYwYmV3SC0qP31BPnhtYENSJUZ8Km9aNXdG
NllaS2U+TmBOQgp6YGs9cGcqfEtHU0lwS3M4RHdraD1gUnItYXJtYU5vWCRebE04Wmp7WFk1MnRW
aTZAPnxBckBqbiZJS04rTEJvPFQKekFfYV9yPnRvcFZyQXdGWW1eeVZUQG4tR2VoYWFBKD5IS0go
Y3IxUlA4cmI7MjdlNEtXU2NyKyg9cFUmSVNzI0liCnphP25nOC0+bCEkUXkqPmlKbitCK25gWHxP
blBLXmR6U1NgMSZPN2cxRTFaNmtXUEt7YXdAbmRzRVJORkAldnU1YQp6QDRELSp3Zkt3fSM2KWFi
NlpjQGxqbUBedSRsRVQ7QkpYfV4hdzhIQGsmZ3hgPyokd0FSYWFmTD1KP319dWY5LTgKejZpK18r
PFl9aiRlKT1iZlUydTUmTnFOcTVUaTdidm1YUUReNElkfCtia2VqdVRWbEtOJH04N2skNCFtY2pl
KSotCnpYeW8mLUVOaSQ2VFViT1JENyp1UXBFR0M5PldlU0Z4VG5ZI2BFOXF8YzljZk8qWFRScEdY
MT4xX3xEa3pfXnY7Rwp6e1A/ZiZrIU5RYUYlbTFiaktYJS1MO0hqSkM+Pz1URzk/SWpIP0tMRzdK
WnRjKWZkVWAlJUtXKW0pNTdQYmIlQTYKemE+VUlzRWZpNHoraUQ1ZmlqUDkmU19pUWJHamA8UVcq
bGhWZnU0MTJsTkhkKWM/d3BIZWR2NFkhc30pOEk9JCt2Cnp6cGFscDx+MyNkdUQkbCF8Tjc7WlVs
dChhNkBvWG0pPTdpMkpmJCZTSG90Nj1wPHY2JGRWSGxlQHRqelJJbjR1fAp6dktaVkt7Zztsd0dD
PFo0ZmJAM2lGV1BVRlBGP0JreTVXVyEpQHxPcmQ2NSZRYz5DTCY1U1NXS1NyTyZxRzxATisKejQ0
O15aOVNtfXo4NG51eUdNeEhHeD5XLV5eN1BhRChUeGd6QDRVfE9fVzB3RWY0eTx6Iz8kRj9xN0tx
RCRFO0xACno5ZmRSMShvbzA3N2UzMVhpMjItZSYpdFgpMUB1fTdVYUprOChxVWpRRDJMWUBGVFFN
QkYxX145YWIqc0ZSe1ArQwp6NUI/NHZybWJ3cylaNk15O3slJXVNOGhZKCVLJElDPzZQcz5mUjBD
RClLQnI5emJVJDwxJm08dVR5WXd9QFcmbEAKeit8Um5KN09zOEw4YDdSXksrfD02d3JqNlZUa0pX
RWxgJUQzXkZgRWxecVlAKF9KaHk2QDRrQ0xlVDc0Yyp0TkNFCnppY0M/T0hSbGdDcEIyeW5xJTtP
Ozl2JHpXXm82OS07cT1pKkFBUGxiYH1SZkhGdlgwS0c1VWVyR0kkNSZ7JnVQSAp6QENDMjt3dT9V
Z19+VTtzIXxDbnF0KUxya2lrdXRFKU56X3hVT0VEOzFVMnVXdH04cnIrRyhlYUUoYDlabXRNKygK
emlfXkMzTnwqSVRLYU5LYXRGcE1Ee0cma2BnfXpgZnpXOEVral5zY3RuUWJ4KG93Tk8rVjtNWkg2
eDwweDt7bktfCnpoYVMzN2NkXjI4dVI/RUl2dTRlJig0fk1SMSVfJEZ1NzxMQWlTVChJWkFpZjBw
Xj9gcWUkWFdiViMmaW9NaEBmeAp6LSstPDI3LVAmSS1uIVcqNWwmS3RYYmlaVTRmTyMlK1lub3go
bF82SF5HfWpaQWB6eCQ5JHArWjhzcWgjUW1wamMKekBnZ15Gc15nMCQtOy0qd3EkPjR1YXhyR0Mw
fTRnPkhaQzIzUipLWEcpRDZWZkphKlVsND9wfWNuLSZ6JSY5PX50Cno3bExXKz53IzdzNzlGVTRs
Pl5GPWpkczFQY1B2R3EmYypRKz43e2JrUDJMTTxVdjZYc1dKeiROdCotNTxlIzEhOAp6XlMwOVVQ
Z0FHIzJEMS0xWmRLVDM0SVNUWCV0eU57an5ZbShDcklzUE5ASk5pWkt9UXNRUU19dTRtcDg8WFA8
TykKemZ2VUkwOU9YUWIxQkdlfVAtP3F2K3FROWJXOy16UmN3fHdZPWk0JFRWU1E4Zz1UWkhkTGdg
KzB7SjhPQHhmcypGCnpwZDFYbyV5NGkocWNENiF6VVRAZ1hWX0FDRXhlNHQtM0N2b14hfjs7WGBq
eXQhVVo4MWFKNU1mNTNIPE5yU3YpUQp6WGp8bVJhJDsjallDT3xab1lCKyh8RT5jWChGZjtfKXdz
d1NEdnRycEgwODYteSp+O1FNTVh9c3teJT9YMikqY3cKemJBM2pnTEx6ejFNYjdJKG1XTi1uRFVE
VkJ2VkxAcGxRQV8rXkxlelBmTyFnMD00NWZDTz17dWohJHUkNXcpaTwrCnpFUW0yOHU2Wlk1WUkm
cncmc2U3RE1jJXJecU9QJEtDLVRqNXY5N1Y5IyU/R2U5Z0crJitSIXdQQ2FvKHghWUV2dgp6Xnt2
KyhlISprPWx0ekRnYjV7M2xLUD5GfSg0P1EkblBERTxQOXY1d3thUCt7bTlxUkR2ejQ+Q2czdn4k
UiFGSHcKeih+bSM/U1VMaEhPYDViNUVVdUxDUXxnTmFqbEFgOzg9XjM+YGF4PVp5PGZwKXZSYVZs
LUVaSC1sSTlXNSRwc3M3CnpHZSt6JDt+TiRtOCNAM0RFaT47I2ZCTmFDMkhWdCQ5Jj0/NjhNeF5i
SERlZH5FMyZpUCgrQz1RX3VLZFI9YnZBPwp6WEg5YntpWUc3TGg3c3VFY3RqOGdkfjY8cCtVSTNv
JSMzfUpAOXBoOVNgSWh4KipROCEje3M2KWVhNEEpc1Y/VmYKenlpbz5eWnh3ZEtuUDs5aytuOU5q
VCtydiFpIXEkSFhgVVVyNEtJfXQoNGErIWdWeWlTOS0rbXphMUImMjxFS29TCnpAPDtHSUleZkcl
PmZnU2dQUTxoZmhkeihLJCYpQWxreXdpSyQkP3p4SCtFNihzVGBacVheMkFGPl9oPCRlKXtSQgp6
KW8wPFVRdGUhaSlfSlR4JE9HNnxvQzVXSSNMKmA1UipiVTkoX2VkOEc8ZWZaSDxkb3hDa0p4RCM8
e19fK1VpcmQKelJSaT9BKmUra2J5bSowPS1odUBTZXgoO1V8SDI1MlpAPTJ7SDVeQGg7WndoRHt8
OTB5IXlwSFdAMT8wc0h9PzYwCnpXZCZAdkBfdylKLUZNJGoqR0lPKFheZ3slOShzc0h3MiEzaEd6
SyEjSmNhQTstPWwoYl55eWI3TkBwMGNsTFB0dAp6UlkwcnB4TXJteiY8UjUkWih8anU+LXAhT0ZN
V2tMZC1tKk8mcEdGdUh3ZXQlKylEOVU0WjR7Z3hWKjN6PXtXMUcKemJLYnlybkdMYSUxM0p6cj5j
XlpUa0ItbWxSfHI5Uk04JVola2s9SExyZE5yanF3eDBJWihsSEQjKkRZWFV+X0hmCnpvWDJMbDxE
ayM3JGgkdk1NcWFnZUxtbHxTWFQobDxWa1VPdiZMIWc2dVBKKXdPKjMxNTQ1eFg+Pms0KjFfMCZf
UAp6cWZsNDM+Kj1TVG9+XkgjZVMmajsjQig2ZiRVQn1XaUBmX3lEVntPJGZpSFp6S2FVYkt2RDQ+
Vl43Tlg/PmhGYjcKemo2dVN1TjdQfSsrcCU4VSUreGN0KHQhMWpWJSpDd3pkVWpKXnl6UGNPVHZD
Vj5MQTxran0zKGIhPW9CKGVCakhOCnpkNlphKm5MaFNAPFUodUxLUV5VRnFZenVfeihaZGYqM0wm
Q2VSUjxNKEkpYUZfVXlDSSZlYVI7LXooXnlZOz43Kwp6djUqbk5pOXNXZWomMGZSPjNwWncrMjRj
UnRhI1d5XjJqNFkjMDtrTlZ+Q31eVn1vKlYwVl91emVlfnI1biQtQEYKenkkfUVnTm9YQFZVZiln
bVcjUGh3cjU4b3xvcTd7Q1VCfHpEXjJzTkUoeXpKQlIzS2R4Z24mNUdXO3JeVmNHLWJYCnp3U21K
QUttN2cyOSghel57dl80a2Z9UHI/PVRBUVFXZERqNEUyYmw3MjYrJnFkZDwjPk1NZUNucTVNPnA3
QCMhcwp6V3BPYkRJN21uQFopUDJQPzZJciRyPW0pNERxIW92OXJ3WnVGTFpxVmBSRClxIzFsXyt1
VW9mbnVFYk81c30lPH0KengyZDUyZEV9OHRldEdNeXhBeUNNaHVOPnw8fC15YV9JJClCQHNRKD1E
I09YWVEkem9eOGh3OTFYM1V0WmE0czZhCno9M1QobGZ0QDR3cndzK3h1a1IjcChEJFJPU0hWaDZz
RVcyI1UmcnxGXzE5blQpTCtGSXFtTmh6WWktTmNHQ2tfcgp6I3Y+e0hSZ3Blam9JIW9JSnl3MVNL
YzN+ZWBzJUIlSStyWTJHRCZ7MlUrc3dCNGxCeTlFUHZLcmpsd19GMyZgYGgKentie2o/ZEBFaVg9
cSs+UyZUWHJSYHtUZE5fUkJCNzxvQXBaUVBOezYzZE04TCVJd1BlVHRMPDw8dnpTXjFhPnIyCnpy
VWtxPCV3ekFrPEJtejFHVyN4UW5aXkkhNGBMdHxWIXxzaXhfRktvOGhKKy1Xc3dqNExseTFUJih9
Z2EyakkzRgp6T0V4dXg+Z2R3ZXRGeGp0UjQ9SHNQSWF3WngkO25iKW9lMzI3Njt3N2s2e3srdXg9
T3dgbWB9cXlpKGx6Mmg8fHUKemFOK2Arbn4yXiRmNXw+QEolSFRsK0hSaHBQI3dDQzlUb2pPbihv
b3Y5aTRobEJnfj1ZWiFEajJeVVhKUnUzbykqCno3KzB3NmgleTZ3LUZWfVRvbXgrNERBXiYzIzJw
dChAOyo/OFpAME50OFl0YGVtSCFPfTA/YlpZMGt0a1BZc0E3eAp6KVc3YkV7endofmJhJlBWXzlM
Jm0/eilhc1BkIzxARXd8aiNxbypYTGtISzI7b3V7TCVSSlRUNXBTREwrTnNAZSsKelMpTl5LdkN7
WmsmRU1Gdi1fV1V+ZGk3clBNVnpwPjhpV0FOcjtoVzJGT3A/TFR9M3A4TW5iPEh2SCRzK1lweXdI
CnohaHtLPmtIZDtFUSNxZSZwTF8xUFUybmJoKT5NQnlxZDRxcyQ7JWhHU3c1ezZsKVdlZUxvY0pR
V2F5MDFSJVdIdgp6aD42XlpzVj9oOVVVTUltaE1yfTRgaigtQ0xrPjMqSkxaXlVlJTEhS09LVzdl
bypUOWBEeiNfdClgcXhXZkFlKGsKemB8clA+NHo+I2ZIbkJtPTsmVUlBKStgX0VhfGFmYD43OTRw
Uy0/aVJQdE08JEB1aUZ3dTM4Wnc0KHRlT3ojQEozCnpxZjBVekUrcTd1WkAhdVM/WUgwMy1LN0hs
dz80fm0oTUBlPSl+czJod0QwVEkqR0lETj4qfjRQOV88VkpfM34lVwp6ND9xMFN4cHdXXkxzWT1T
ZytKJn4wfD5GWmFHY1d8R3JaJTAoJikye2JNcjwwPW8yQE1udSt2ZlV6SiQyWHdnRF8KelB3b3tH
XmFCRXY0cGR7TDVUdVYqe2tUfGhOKWp7WUJ4aVo2YypEezJed2w/U0ZWTz51NzFAeHxxUHQyUiVo
UUNzCnpaYjJoSTlMTGR5TTE4U1hjZSFYREpzdlRzS05rbChiZkRObUlvdSFwcTxxQVRlNSZYM3J+
Xi1aNz1oR15ueFU1IQp6UEBNeiVQYF55SGs3O1p9Mkw8SW9aVkkwczBOTkhsWlNJUzk9enZMNFR1
NlIjaFZfXk5uYkozRWJvRmw9Uj1RUWgKek5eUWl8SFVRd0hfKSFNbVpYKyg1RFdneFZQZDY9VW1D
ZmIpLUQxX01Sb3wrSl9mUzktc2Roez4xX3Vod3opJWkhCnpPakZ4RGB6cCVicEhWMEJicSNPWHBn
SjwwOHFMIz52ZDl9UiVIV0YqWUMlbUhlYm5mU0ZUVGhZWmdBPWFsPHw8fQp6XnpUJV9YRTJCKChH
RjlKTHoqMyUmeEhSRWV2Q3dYVXtIJSVPYGY0Zmwyc0V8al9LcDkwZ2EkdnBLLTwrdFYhMm4KeiNN
RUlfKExCMCo0dnVBK0xYI2lYRXdzbENwP08tR3VaUD5qS344dGJiKVZpZXt4bSlocX1yQH1NcWRA
PyZtaXlKCnppeEZ5YDB8OFpaWFhZPlpFKjBPeUJKRC1xUEttflI5PnpZPXt2UWFeZzB2YmhkSzhU
KkU1MSlwJkZgcz15b1RiRAp6UWY+alc0dGJ3OVp7OGczJENqdmdpd1RDN2o+dD97YF9VfW12X0lQ
QkBvQj1UZVk1QCl2cSZGM2BaeT5XQk0pOWgKelQoMTQrR1MpbnU9Z3h6fDBAfUhQdUFGa3BEZjlL
Zl8zR3xYYGN0N3A5VFNWRFNlbD9RT29fb2RtUFA3NUNAdDBCCnotflErZXo1czhOWlchPERAei14
WWB8UHZmfDdRZF8mZDkxfntgfm4xd1lBX2VgWG1KflMoR1FrVWJWI2pSVyhLeApwemF6cEVzU1d5
d19Kd3ZNWlQpdWB7e3lpTipXbHJfU0dORUYwMDJvdlBESExrVjFsaGgoblNDTwoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9zdGFydEJ1dHRvblByZXNzZWQucG5nIGIvU291
cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3N0YXJ0QnV0dG9uUHJlc3NlZC5wbmcKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGQ1ODJlYWZjZjdiZDNlYTcxYTdjNzBlODM2NzkxYmIxOGJmY2Fj
ZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMjI4MAp6Y21WPEUycDlLPlApPGg7
M0t8TGswMDBlMU5KTFRxMDAxWmUwMDFabTFeQHM2alErVDcwMDBRRE5rbDxaU1A4WTUKeitpejlY
N1JKfVVecy1BXjMjbztJMCU/VXYxT2lmczdzT05oMlk0KFBnOVJSfSNeP2hvTkNhUVIyT2YtKXMx
TT9XCnorRi0qdUlTPXBgTkg5a080PHRONTB0dlE7d3Y7THFsd041fF9qZGZ8VEhvczJ5UkdgNXZ6
ZEYkSjt4Wnxffnd7bgp6JmI0K0V4bSsmclRYbDh5bDllbDA/ekgoUWxGOCkjcnB4JkhlXyVYanYy
R2dmbkpaVldiUE5tKF4hWUlvQkE3QGQKemtfYDxGZHJMfTZURmM3SERwUlJjS3NTPVV7b2d2eVgw
cmtEa0B4UTEzJnpJQTJDY1c5S1kjd1AmMVZWYjJ0c2ItCnojKkxxcm16T3RaR01TKlh3QTdKPHB5
fmNyUWlXZztvU0s/KXtxRWhua1BMPjBoZmtoNmNXeVQlKD5RRnt1d2Y3Ngp6RGs+QGglYkBFSlF9
K0hUbDh+YipsTyFhYWM5ZmNwKF5YU19sJjBvWnR5PVo2Wkw3OyVhZEVOQi1mUlFgV00wNjQKemAl
T0E2PStFciZnJmY0TlcjQCFwVG1HX2ZgKV9LXm5sLU9pUiNyWWVaezlxWUlnRHUtKGc5RkZyfD5A
NThYOGhyCnpEM2s8TkZUfSVeVHwlIz5AMWByVXE+V2lkKH5xJk9NTVh0M3dpRSFHcShGUjBhYSt5
SXVweTlAT31yWis0aHYkQAp6O2xpZkpWS1Q3Nms2azMyYTcpYG40Zn5FbCYwbXFgV3xJJm5kbGRI
Wnt+UyokYF4+ZXgqcGxWSWt1QEpYMiZTXyYKekpAKTU5a2BicXh3MntkR0Z4Tkt2IzJ9OEg3Snd2
ITZCODNiUmFJNDFMP0YmUUw8eXU7PSZ5TjZWUVchbHBQQllICnpEfVZfaTAmK3dPOTIpQFdueEQt
Y2c0bSsteUhDTyZnTjF6fHJYIzJUYSZUN09oeDd6eE9qYjA5KVl4LXpMKE1CTgp6ez4wRiFtQSZs
cjlVQz5hSTl7TyQlMFEwREAkdkQlRT5hdWp2VWEqczZmekFSeXw4SXNJP0JMbW1ENz41K0R2ZFQK
eihKN3x5QEI3OWxMejVWNGpBWnAzZn14P0krPlJZUGRlXlVDZWAjYzdCKW5SfXI7KDM2Vis7bmho
fGp1cD5uPyNZCnpJNT9PYTlVWFBwJUkqeHVYZDxyJGVJdD0lPHAhUT5lV2tUOyt0ekpNdz5gZnR5
Un5fMWp8RXQmRWNreEA3ITA8Ugp6TjA/bj5KcU89RV89d2ViR01QP1pZeH1CZ2lII0U0M0dFdkdf
XkcpSmljRnlkb1J6TyN5U0ImM0olQUpWQTBHWk4KelYrMlE0bEw5TjA7N3Z8VzJINF8qRkUoSS0z
QVFpX1dBbU1zb0p+UjZ3UV5oODtDbHooVGs1USVrQWEmNSF4bmdvCno+PFktJllZWXhIKX5FMiVK
UTdUPiR1NCV7ZmxneSZUIVRfYlFhM3A3K089IVk0bj0mZEl5KmMyX3E/XkkrRD51Pgp6cn08Qjck
WlR2SUU4Z0R3Yn5WMT4pNCopbSp+MDc5ajRiKz9GK29pdD4xNURJUENXYlhYV2lDQHV0RChWOCpo
I2YKelBfSmFPb2tERGQkRjVTVkVDXnJXQWUqMFNldDtPMTBTUXMmZTQ4MEgyciRONkQ9U3Y0PW0l
V3crZigyRWM8MFdZCnpoaXZ1a2Q4eHQlYyYtTFA0Z3g7LWYrMVY1P2RgcHZTaX5mQE5ENEN+WHdP
SWZYaiF7RFA/RXQtbj5OSztpPn45Rgp6anRSRWFmM2FZRyZLN3dtUV59eUh4WDR9YjlVVURMekow
XlNoTktSUHZNIVI/ZyNAIWsmLSM/VFdrXm07UDZRN3cKemVLN0MkTktiYzlDOUNGMUs9JFVeLWs1
LWArMWMzfU9nZmN6VGl0V0RyIXY7dFZBLS18ckVJYXROeV41WlZ0dnR6CnoxfDtjcWIjLX1RYntm
bXN2Z28jT25ae1FjMmJge3E2eEoxZnd3PmoxSlIxOzBlbl95OEA9WiZMIWFfd3NrP3k0Kwp6SzEy
fnsmYWI9QkMpOHx5YSZ6UHhXe3BmazJwZVR2R1F4N2c8YE4+dGdwYkw1ZD1IfGBUR25WJlE+LUtp
ZGF2fmsKenh7MnQrWUh0SnBiKjJmKml6JlpuZTkwUitJLTJafWhMTHc0VDh0c3RJcGdSOVRVdWQ7
QjZTJEpeVCpEK0BxYFdQCno+ZyNAMD5OUVYyYSFQcVFnX05ZT0E9d2QtdHBgSk1OV355cUchZkd7
SlMxTExXV2VAKGNseF88OE99OGJUM1Q5KQp6eGVfUjlIQ0E2I2wodHYmQFlpNF9RfGJ1b0FqdTlO
bytAQnk0b004WnJpcmhQS0wzIXwxT2FnJWZaaEJ4V0s2QjgKenNwKDwrZnB3V2NgSSUlWl4lNUlP
ZjdgSWQyVlhGUiQ5ens7Un1IYTU1P3ZsYU8oP31ren1ZcWZEN0wlcngmVjxNCnpmQWFCdF82V1I5
Q2IxUlJUb014NDskeXk1SntIKS07OWdZJk1+IWhfNE4zXz9JKDV8RS1oTGtlKWErVlZlQ1dgagp6
MGVlQlkjansjaCU0YEpEVlNfQ2A9MzZUcUZ1flNvQ3hlUEZpRVZzfTYraSR1NnFnalVgZ3NUNUoj
YkMpJGp3aH0KelVmRilFZWNaQnEoT3kyPzNvUVl1R2RnMmwwPz1WfD9BV24hZTArQGtgfWc7TyV9
eTI4dEdGT2p3WTlhYytVWUNqCno1a0AwKEQ0ZE0wOVhufjJzZFRGVShlO20zRDlIUyhgNCF1QFoo
bkZ4eCFseysra05aU3R4P08/cXktKFpmSWx4Xgp6eldrQCVafHVIZkw+e3FVZTZiKD9aQ3woYnBG
REFMRzAkZipTUXJ9e08yZ2g0aHZQVHVte2RkI0JlRG5wIy1EJW8KemQ1dWw9eDR6VUdaeGMzS3dy
cDh0b3VTX3JgZHxGPChXNktFeng/OU04cD1vOHRDQ1h2NkF3UEwpU15XVGNWO3FXCnpeWmlxVkxJ
I1laYGJlSFZiR0c4cjx4NzJ5fDd4dCVzP3E8SU1sSjUheDNCTlNpNCUpVU9HXjNTPFQze34xbDVS
Mwp6azF9fH1ZQjBEI0Z+aTxKbHtueGA9YWxJSktKJnd3Q0NAWklHdHpkbj9mVEBzPkhBT3QzTURx
ITtgOUNnemg2PzgKejNBWXRZdStAfGhhWD96VGt5eVFZXzEqO3c3Vk09UzNoJCVIQz8/TkJ4WCpN
VEVRXiElXzRQTCFuO0xXVmJAZHMwCnpHalgtbi1RN0xaXjs2Zl89fkpmQGNGKX4hZSNXUUItM2xC
RXZNK01QUjI9NVc5TitFYTJlKXRFS0FiUk93ZX15Ygp6UX0hJmEwen56b2xfOGFPckpqPXQ1SlV3
aTh8O05hS25QSDROYnIlO2AmO1lCMHBFVit7JnctPSNpcTJLbHp0PDQKeiM4ITFjZkNMa1cjc0pX
P2RXZFFEdFFiMlE1Kit6c3FwbXE7N31AJGBeeCNzaiNfSV4mOyhyMCNrTG5OWHhAcGw/Cno8QXtT
VjhUJipTKD90K196V1lRVnImZnNQVl9gIUhNZ0pyP2UmTkR9Y1RBdG5gek58KEAtLXYpeD9LVkQq
JHkmNgp6fEQmY0xiSj5YMFR6VkVxWEltfEV6Z3EybVc/T3AlYWA/bXExel8pVjMkNV45dSkyQk4k
U3R6QGF0a3YzZlJySzUKelVkRVYpdG1adGtJZnJKOyVqJlQ4cFJKekgrSlg5P3tXSjZ6LXtFJUBZ
eSpVbS1DclI5MDAwMDxNTlVNbkxTVFpFCkNRKTdQcwoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1Jlc291cmNlcy9zdGFydEJ1dHRvblByZXNzZWRAMngucG5nIGIvU291cmNlL1dlYkNvcmUv
UmVzb3VyY2VzL3N0YXJ0QnV0dG9uUHJlc3NlZEAyeC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDMxNmNkNjgzZTkxNTM5MTdmZGVmYjVhMGQ1NjUxMTE1ZGE1Yzc1ODAuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgNjIwMgp6Y21WLUE3eyV2X1ApPGg7M0t8TGswMDBl
MU5KTFRxMDAyK2AwMDItMzFeQHM2anVHOyQwMDA7UE5rbDxaY21kVSYKelheXkU9ZEI9TzM+N0l0
Xm8oKyV6JW02YHsxd0o0dUl4Xz9fRDVRY1okbWwzYUMwMj5+NUx4MFV0cU0hPmd+ZD02Cno1aC1L
ZjgkJUpjTi0+Wn5yRW0kT0IkZz45MHpuYW1wIyV8X2VlSWR2XjhEVnV6ZEtLI2UoJndlUWV9REkr
fit5Wgp6ZERqMHE/e2VSSlolX0IrPFlaU1R0LUhJc0MtaEV1LX1+UDgkNDRLMV52YllYOUlfPUxK
RjJJTHNvJjJ3RileX30KekdUIzxgYEBWaHFvXytyTD1mNDtIdDVNJVhDbHooaTI0SHxSN0ArLUdm
Y0J8QGM+fUJaZGkmO2c7YHNNZlhLWlkyCnpANDxyeXBWX2wjJmpUO01ffk5GKD1SbXQhU15+KDlK
TmV8M0ZJYyM2O2d2QG5iPHthQT94TjNgR3BDQ2s9TlJYMgp6Y0wlYX5fO0NeQ3EzPWQze256PEsk
TjF5cDw2V2JwcXR6Sk17ezgjXlhYbm5ILStidyVtbVpJQz9UKU1rRmJXdHYKentxKW5uZTlTUyZk
QDtiOCt1UGdRSEZ4Z1pFLTF4R052S2BYPHMzO1Z0RnRaViVZd0NxKCV5LUZZMEg9bmg7ZGtWCno5
WGZQS3tfdllgeklvPl9mQkRPUWpRSlY2djlCaHtNUTVGTCktNE1iRWNqQ3I5VCp0cz5nKCZQS3gz
IW4tRGVeQwp6cHN2VXZLJD89c0xweTVOcTEmKTtAfTFndTZsQTg3OzZkM08wMEBvNHhvYyEoV2JT
ZHQ5cnZhRnt7Q2ZBP15pLSsKek5BQHJjeiklPHpKYjs9dlooYW8rMDVabUB5QVNYUGgjWDImMkJq
ZmEjI3I4WVdWeDA0Y0BEbWBGWklqJCghTmR+Cnp1KFg0eDFEeTNUJDhLYXAxdmNuajZNbVhJdT9i
KkleZWtWI3tMM2hFbyhzZ1FeUFMqSGFZKG5JR1JadGY0UXcwZwp6T30+RzVSO19zYVN8a0VfQ35k
YStOfno2RG94TThfR2RCYVowLWBgLTdkeD42RiktUjE8Q2BMPD5ZVWdGQFQ4TVkKeng/c3RZQzBG
MUNASHBxZWQobldXOD5uSkJjbzk1UTwpd0F6Qnh7cUcwd2cmSXNKd1k7Kk5WMlgyU2doNGJhbytp
CnooPk4hQjF1ZEA1VTBAVmd7VW5DfWZ2Zl5CNSokM3xvT0F2PFhnfXZYM3xJeDY7RzZfNEJDaStA
WGNtQUQzOCpfWQp6ZCpzelFYd3w/OXd0LXBmP0hHb0FMczA2IVJzV0BhPjVtKSQlbHNXQEl7Oyo/
PzcpRW97YyVuTnN+PzhIMH5MVSQKem9fZ3ZoMV91V30yeXBIXjAwYjxKcCQwSVpQTXhidXVyZis3
PXJvJmJnOTA4K1RKY0Y9VFdPX1N5eVE3flkzWXgjCnp3Wkg9PSYzZDM8ZklWfHkhKGtvbWdKMmYp
ek1mRig4NSRiOzZ3MiY0ZlhtPCFLIUAtLXBvdXs8UGxRZXlOdEsteQp6WmBWdEcjO3V4aitNdVZi
JkwtREsmRElXeDtzUXBASDhBVTgyUUgxPncrYVEkZU40aEAlb3VRPkchaFUqYEYyVEYKek12V0tq
dlc8U1RKLW80O2NYNHBUb2J5ci12bUM0OTxDSTxiJmhJbzZwTDBSSyV1Z0JkSiQxMVE0PEEwPDY+
bHo5CnojcilFfnhNNG0mQ1drfjhNSDdRczFrTmx9bnF9fl9IU001KzAjQT1+T0M/akAkYD83Jlc2
Xyg3Kyk2aSZtIyorMAp6dVQhV0lOMDc4Wld8Tm1IQ213Y291IT9zcUx0eGh6aUxBXkQwKklfXmc0
d0RfWX1DUDRVajRkeGw0VHlzUEk2cGwKelBYUk92Jl8pXlooKk1ON0lNVlA1Ql9CNHljdHNoUGBw
RGBVZFVPR0Y0MGU0WFQqM3MwdHg3czYwWUVNbz5hP1R5CnpxZS0ocmNzc3l4U09ESmItQEpXSjxs
Xk9KbileNmBjVkJob1JpZztlJkVPJDNIen40XlBMYWtkQWh2NFFrISFaawp6Sm5AKU1TU3slYiE2
RjxvTDZeXzg1X2ElbkZsbjdob2BhYHpXZG80V3ZDKiEkI35TNTRRYFoyd2FUVG9JXnJLZT8KeldT
d29EJXZffUNXUyVqWUFRSztgS25BfWtfQDMlezl6cSlpSSs4TGMtKWRnX3c/ZyM9NU0hZyZFa2F2
ISFOdnw3CnpubSooITtvRXFAazNLVDVEYFd6UjREOSs7TThJVWI9RGJ2ZyorKUQzSlpKRzd6U3VN
RiMxREd2Plo4bn42RiloWgp6JSh0XjtsaTlnZXB4YjthQ24hMiZ0Z31xQjlHKVVkVFlkYmxEUzc5
NyVZMitgbUFgZGsyY0grdXhoODw2YkJ6cWIKelNsKW5qM0ZeMyZKfWExWSgwZXpVeHMoZjxXNUtf
YmAxO2dgYnhYO2NpJTZCZk4qM2MtaWQ8ZnJXIWdkVWlIPCRiCno8cFQ5bnI8Wkw/S0lfOTwxSE5o
Y1dlaX1zd1RocDBHT3c+WDhGOG5iMTY3c15nYjhMUkBhVT1JOTVPcVBmWiV5Ugp6S19VNzxfSEgh
Jk5idzB6OUR3NUszMn1YZyNlQnxKS0lmJEA+cEc3dEgpMiZna1lFT2VUNU9oT0wtYHlHOFR2R0MK
ekh8VUolMDExZmJ5Q2E7RmxFWFZ+KiUjbihmdWVFYz05WSghaikySFJZMVVJV3VXelk0eCRPP2Jz
bXxmY21nalR+CnphNkd9fiE8bCU7NVY/O1hpaGRNSHVAZVheaF40PHkkSyZ5Q1Z4c1hHNTQ1Tkgj
QzBsSEAqcUF2K1d4cmQ/R0xgcwp6UDJ4UmYyRmJZQUJTa0o+UXM7VyEkOyN1RHxMe1F2SmxAa25C
aGlDNS1FYEM4Jndsb15UaTZOZzIjVWhTVmstTl8Kej5SVXU3RzthQnUma1RLfHA8aTwjQ2I0aDRA
eTVnQ3E4d196ZzN3WFMqWnxhOD9iMz55cy1ycj9UMWNqeUk8KXxICno5Tj58NzlJcEduXi10Zkx2
dHMzbiFPdmEoeGlnUEh7YG1qbkZ5Y19vOX4lPFNCOCl2LVR5MzwyM0o1VmdiY3NwcQp6bTgoX2Br
XyRQSjgjJFQtY0cqdWdYekBaXm1RNCFKa3U/MWgpeHgrR1RkYXZeQFp5amV4JFU7dz0wKlh7VGNv
ZXcKel9WczE0YSZKJXxKQWd0MkxSIVhYSCNVQnpfezI5Y2goJTAma1BBN0g4fW9uJilnSFowQD0h
LVI+WW85aU80K0ZmCnokbnZWZWxRPXNJOGcxO0J1aVl+Ri1hbU5uKUNVU2txNzRyWjRfPHJTd2Zo
My1GJUR3QCpPdkpsbFgxSkl1OVVkPQp6IWVfKHgqbWMpbXd+dl9GND5eJXI/M3l1YiY9b31OdHg+
PCYkfiV7M2BrbkAwQ2s3ZnFQMjgyZzspKk53dFhRI1AKelVlPUxjdnU0ZEgoV150NSFfNElDVnJv
LU08Rj5XNSFJd1VYdjNtOURRfGZIVj9GKFB7IVhFVHAkaX43fj5aTTxWCnolSWY/Zm4rOU1qQ0ZL
QXtnT1lAYTFLX0d2dEtNQXkkQFNIZjlyYTZrIXs2UG9EeFJUakMyNGw4e3p8PWU8SD9DNQp6X21D
OGE1NWREWEcxfVJhQmV7fEBJWnktbjIkWnpXTjhRe3MwOUFuMmIpMDU3dDRRIzslOGxPZV9jdDZ7
N2N8UXYKej41O0hNVkE5YStGWUNfNlllIyV+IWBBXn4ld35LMjRjOHdfJmUmMGR6TSEtYCZiKUoj
UXNib3BQJGd1b2M3LX1uCnpsamdpYi0+X2xCP2doZ09qJTx3X3B9fExAMmlPMWtgbU1Xbj9fUGxx
b0BRX3JCYzNzbGNoYjxxMkZoJig0PilQfgp6e15hXmt6Q141Y2UmUCNMbGpMbXYpYExITG9xZiZ8
Sj0oTSNzRkJHclIjQmNneCkrVyhTcyVGa0ZEfmJNZi1UJEYKel99RUIqd2BKRl5UYE4kRSl2b3wt
WTAlKz54ZDk/UlkxX0FOVXI4KXR3c1MreTxQTGJBUFQmUGwtX2xtVFg2KFFeCnpnRGlzd0tuQHZK
QFp5VXYtYW5ecitDX0lwdGduOU10NTB2K3d5cFo/ZytreHlJfXJvdWh1dXRmVlRlVWNfMzlgJgp6
bFk4RVUpYG90cnh6MWkkP0dBS09Dcn48fDBVcVpLUFF2bGxaMlU4cWVXdlpYQDQ0cm0rcShJUSY4
c1lzNH0+aDMKem9rTT5vNFNSczM8Njk3a04kaHNNJCg8Vjk0QSFZbHVIUGUlSWQ+fDJUTDRrODtl
ZHV5OW1FJUh3I0RiOEVsKnNiCnpKOStoMFNDMiQtXkRLQCtJY0w+QFhUcnY7cW90MDFAUUg1I0Jv
O0JSeCV3SXxTfXBTPF9xZXMkPGBJUHwtQ0UxfAp6RTtleSZPJTVYK05LdH5mcCN5bDBEXysre2V7
I3tabl5wQ3NuO3pjdXp3eTF9R3UoWXAzV2VxKilIZ3hMb2x0RD4Kem0zX01sPDc+S1NKaU9gUXBT
U2FLO1lBaz9RWEA1YWdmU014VCkoXz9fLXo3TTdlcSVHWGs7SyhgTW1TYTg+K0tZCnpjSzFEWmNU
Kmc/N1JjQ0xCVVJyUmolVEdGe218JnUhdF9uO2FBUilWeFVzRHBZQ3hCfCpjPiMwJTQyMHhvd2Z6
Zwp6Zn1uIXc7VHp2MCsjTlRyTjRCUlA4I0p6TGR0ZCRhdElHaCU5UllYKHNDckhhLVB1fiFfZCFQ
VyN5JWN0VmMhP3UKelJ2YHY0OEl1Rkt3REw8MClQaTRZTHpsNiF0WTRYT15tLWlSTnFFNjQ9VXRU
KFBCQHxNWk5mYnA/fERBXzR8flhaCnoqaytJLU1SS1NmNHBsVmJjR199WStQRloqZ2htQH48ZjdV
UFlBd2A4LTIjVDlJTHQ2PTItQHp6KG53JlRAdENOcwp6P2RIdiEkMC1RbDBMYDczMHJjXlpKRUBH
PCR5azMtN05pPWRMejxIbXh3UHt8RXhFUkt4X0ooOG5AXisoaip9e2gKeiMmYSl9RDtlQGU9VWY0
UTspeTVyWEo7azwkfTZ3KlFqRUw4TFFCMU9HQTBpamU2PTdeMFoqdV8mSHtHI2NEPyVRCnp0NWFW
PVJrQCVgUGg4czFsV2w5Vyk8VWZzPTlwRHxieE5nN2hpK30/e0dzYDYwZ1M4ZkpPUldYZDxtay1O
WHhrRwp6I0BhfkxISUF7TmQtdnxHZUx8JG9AWCZCU2UmfSVrSCNkdihRZSRPV29nXndfcEtgRk1q
ZFF0KklIK3tlaVo1UVkKenhHakpJQHtxLU5fP2lndlI9KHElMG52fGFFc2NVWVNMVDlCXzZlVk5L
RGlffUd1VEI3N3hoPDlkMTlZVmpLJSRLCnpXNHt0ZHp2ZTUmMl4qO28jQkVNV2shUmo8TClObFRe
eTF1Q0VrZ3pteVNqdnMqKjwjeU09UzhreERCMDJaYUhZIwp6TXE2IzkjeGZXNk4qYTNJMFk7Y2p0
KHozUiUkSWhJYDM3UmdPPWxuPEg+dVVmVWFnR2RIaTk0VkhMcXllTzBeUlIKekM+XzlRai18KzQz
fW1fQ1FAPks/JHJEfDMkdV5tdnQoTDN7cFd7dEUyV25eLVQkK2AkNEVmR29JfVpuYHt+bFVRCnoj
RSVuNDtAcEYzJVo1KEA7JldxZUJSckFVODM3PHliIzZ9dHZyZXkra3hNRGQ8RlhkPUQoaUpEKXhL
S3BFWD0lMAp6blkjTDBVZjl6MW5jSThiXlBXVGFeND8wblBga2RvWnZ6fXxmSF9RQ2IjJDwrMTJE
JjZfWW9UengjU3YzLWRnYWgKems1WkBBYy1wLWpMMlklOHZnfXZDYHFkRi1qU35JWGcmKFZhJGpG
WHIqR1FUVWh5dkxUSmFtYGBLPVhsYHlFMDxCCnpuP0hXeCRFVmQ8PTJPOyE1Qio1N3NwRl5aej8+
OUNsP0BwPnc1P21XdyFKbURecFo8WWl5ZzJ0Pyp0USY+Ui1QQwp6PVBxUW9BKE8lYnB1NWpwXmFJ
NzBGJmxLfUM2YD9DaGdxbE90d24kTXB3cHpLanBKITY8MD4qcWshN0xDYVkmJX0KejNGdn5qKlBE
cWxPM35zdStpPzZgYn1LJFNsdj9ASUNscypvNCtUaTZ5VkxucmdfKlo4JCQ/eV52WVBveTRiKHpS
CnplM3BMb2hiNm9pUzw1czRYUyR5JHAlN1g7UEBRPTQkdFNCVD9NJHNIJHUtd3A2WShZe2M9KmJi
VXhKJkUyfCFKcAp6QjY3eklXMUdEQyVCQT1zMjhTKiZpQUBnOSpITFBxN1VyejJQT3BgJCR9U2Zy
dUt7RDRObUImN2ZjREA2ND5vYEgKelNxWH1sYnItQ0FlPn59VSVBKGo2QFZTKk1VTj5pSz1JWnAj
KipFfFFBRD87cmoyeURobEQ3dEclNWtoYT5uayVKCnpiSmQmWlkqPzN8UE1xXkZpYnYqNDslRChL
NGBifSYzcjYhfF9yPDNHUXkrbnYxaXN8O3w4fVQ4cnMma15mPj5pPwp6cWxhJDNgUjI5e2U5NF59
KyFXIzwpaS0mO257JUZAd2dYa1A1Rko0MjFqM2xENGtnak0/ITBUZWBnUWNvdig4KzsKel9Qbih9
Vz1IUz1JRU9Namd4eUZoY1Z3TjlSPGZLUWVod2NWWkdPVkdYNkBQXjZUNml5YSZvN0pUJDg1Pj1D
Z2s+CnpRMGBwdzFmeEpqI345RUVWan5Ed01BfTBTSnYxRDVAPCUzQk47RyFEbilyJDZlK2k8dTdz
ZT1LST52PU1uYTI7RQp6SWU4WXdrNk1YRSUjXnxtbVltNiozMk1vfUE7VUt7KlR2N1dDViZ7Vllk
RTkzM3E2Y3VTTWA0Rm1hcC01UzZhNVAKej4pQ2tFIys3a1p7a2I0PWxKYG5VTFUhaERDaDhvdG9N
KChMYn5wWnJLYGRoR3I7ZF57eGxAbmxLV240VFBUUkNFCnpTa0AoK2xoLWtVU1QkfWxrVWpxUjxC
UXxAVStvaFY2TnlgaXAtMkRpKFBpPEE/PFhuTEZKaEtnWFk+SzN0fXx5bwp6JXdyMzllbEhRPCMy
XjtCdHMxJEtHcjNiby1ocyVCUUJ3Uk4lZFBEeVdrcTw1MXJoM3MwbXlhTlVSUW10UH08fSUKemcr
MWAjMUx2K0B2LSReTkdzM1JuOTdHcExmSDg0bj5PKG9GMEJvP1Fod2FGUlNBWH5pXz9gX3NkfGRt
dCpYfH1+CnpjYnwxd29BRkFERXpMYTB3ZkVSI2tHKHYwKHNBcjI5TXc2fnV+ZiY3RGRfZHJVbXU5
YCVDN2lvKj97d1BHO0YlcAp6dHl7UDMreip9bWRefkYzNjEoVTR1PHYwZmtyOylReUFLJkw9Oygy
LVlYQ2tUdzw8c1IjeTdyaztJaGp1YHZBVnsKelZySlFgeDhBenpgYGBRaTAjdGNgTEVXQj9KZTFM
fGI0N21VTWpweyRafkhVYENtM2FDQE5gIz9EPjZ5b0BQWWR1CnpTaClPKjwkRXZ3I0tsTUZyMGUr
amB0T1FPazhKOUM7eTw0TmZickt9ZCtwVEZJfGZ+MldJSTxLUyVDTHVlQ3piWgp6dEZPTWdfcTt6
az8/WUx5OXNsU2ZrTTFNS0BJT2g7PFN1eGB2PU5KanRnSyVoWD9Ke0E/eT5wdj1ic2dpZEA1KDAK
ejQ9a1dgMFEkKEY+PFZgVnlNYVRBYVU/Y3o9VXNQQnRYI1FyK1RzfG42XiNZaHtuJXJWSkA9aHx8
SVRSYT1EOXFFCno1MS1aaD9mQ21PMlA0T1dAbDw2cktGc2dDPSVTMDNOMVQ+IyYrMX00YHxQdTBV
JWNYcj9EUVQkPDhSXnNCMFN4OQp6QT1HRWZeI2RlRjBKVCN1a0x1eiteNSskUkBmQy0mQkVqYTA7
NG5NVnAoX0l3TD49TkI1RStOQkwtRCljLWRMUXMKejFmcEA/WlRpZUomeTI8SWpLYHpzZXZUYWZw
cFh8Mj5oO3RgPntoa3NPKFRIKChUVHcwJGIkbnghalppNWN8e0U5CnpwJHZAXmNvalUoaDVmQWRC
YnklQ2hvOWVOQkx7TEpDLU5zcGNOfUIjWnE+XkFPRmdqYmppKGl0IyNUT3cpJGtuIwp6anlyMF5q
PytiVlB3Mj0wMVNHa31xMjJ3JjZIb04tK1BRMWpNXj1BaXBrdHBNMSlnMXJUeUZoYFRYKUBZI35z
NncKelB4VGNPRSpqS210JD02RWRUZl5gTTtDck1nZ05JJi12UntIVFFNZit2JFklYHVHIVUmaV8x
el57OVZEVy1aQGp9CnpsbTNESnVBYmlOK296TkZ7PiF9IUtMM31XLX1UQ2ArdXRZNzdXYntwNk57
TWwtaDF6WXNBLVojMXczfmlsJEw5JAp6OCZedWpPTSVuJm8+LW1qMF9VWFhIXihLI0NwdEQobDRT
VF5PMH5LSD0wTntjIWhya3EoQCFzMHprWXBCZUNjc1YKemVFIWgtbjk8P2VyMSZOVnY1MUtxITFB
eiNIJl5uZFRMKmxKZ0xRTDZ4JS1xcyFMQiN7Zlh1T1JRb1J1OFQkTn05CnpxMD98Jio5QE5MO3By
eWdOO2lVYXozez5kXlh8WHp7XyEwPGNrRGolJXJvYXYqdF5rcVVtTGVWeVcoYmsmTSR1UAp6aSRS
SmRmOWZHZEs1V1UhSmszMiphJj9+RTtGMENkQXh3e2x2M0c7Yyh6RE0jYEAwY24qanBKX05mMGc0
IzlUR3oKelMpRFFuXlRAc0kheE5DUGlBMjJhX2A1NFJIaGctK3p9aHV5Mlp4NC1XPFAoSk5ZRmpJ
X2pHVW07cFBMZUFTM2F8Cno1ZntaZmxnZ2YpMExrK2x4eHBpfEUmKERKPGhkU2VPcmVeKSYkPEZR
LVU7cGc9fSYqVWpAeWppI143Zlc8YX48TQp6QTtHZF45M3NuPGRHckJAQ1hnbklPbntrVkN2ZnRg
RjZpVl9QZCY5VEl5PEZqQCM0ak1ten0pcTszPW5eKHRYLSMKenJ3em4tJmR+ZyE+WDZ2OGNoQk1Z
Xjd2QCU7RjAqZHJqc3ZrZVI8eEY5WHNhN0pDYj0zaStqYU17Z1YlWGtwckVXCnokZTU9fEdrRUNI
JE99SCNaVHslZishU0NJIXsxaClvR258bj85I1h6LUAqTTY5Vll9Ym42JmNIOz43Pz0hYG4lSwp6
UEV2TjBhMUktamhOb3FKakJeZz1oWWtRU3JlfmZwenpKVGlyfVczVHU5PF9pa1IkaUheIU9hKk9J
eD5Ze256UzcKel92TSNnZWt7Jn5LWj0hRyVgVzhKS3xsPHAxZHhaOCV7bGQpdzx2LU83eyVkUjhJ
KjNLUWhYcHMtPGF9QDBZeykxCnpEXnQhSyV7bDhxQ05EKStIc18kXjBYN14jdkhOfW1YNlJQe2hR
aCg2T1BBZ3J5WUt5PkcoZ2I/KWhYbGJQPGZ7NAp6NUorMlglQSh6WSRtI2Z7KTE+aEQlQj19Vis7
YCVldWRvP1FVd310ciVwNlRCcEpQLUNIODFGM3IhRXhtZnt3KGAKekN+Z20wZVgqZVZSeDk0anwx
ZDVoeDVja2B6SmZtdldzPD5BTV5mV0NoU0piMjBtLWBmMH5GM3Q9Jn5iQWVkUEtRCno0OTNSRDZy
UFRySnBSZ040ZTAwfTllSnNDai19K3VWYXBEVEtafEBEU2dHM3RGcTlgRXpfO1c1PiZjUE8xfEF1
Qwp6Xk5GSno5RyskWFhfalQzJXYmSGY4OWFUcz5se35zO3pifFlHY0ozblRnRV5pblpER1E9OXV6
Oz1TS3pjPTxXWGEKejdRP3E9dTZieFEwbU1tNmpEKyorO35zND96SV4+QG9DdTtwR0cpRzFHTm01
bHgmaT5DMl4heG5XZTNJajtKZjtrCnpBWnJ6RGp3NEBFVl4rMilwN04zcypQTktrSm1ZbEU8SF5m
P0BrSGxfQElDRXxPMEU3N19kd2pFe1olfXl7Rl51Kgp6Ul84PHhJfWJlKnVNM0xvP0tGJC0pSGRo
UCUwQHVjQzVFeSg4KnxfczRTM00jQms/MX51Z0FVU0tiUFIpcVpZdHcKekIwaUxmMyhMOWojUU1z
KD17P2A4RGQhdXtQMyN0dll1SFJYTTlQRnNLSEZmfHM8fWcpRllWdXx8MmxuUUFnNmg4Cno8RkpL
fnRMK2NvYztrKDR7Xm1Fb2BSfndhOT03SEtaMyY9Q2sjdjlEK14mbFklIWF0SWQ/M0pFJFJTMkN7
S3g7Kgp6cEB5PiMmTjFyZktVMyRSdzdQPG95YEF+V1g/aWk5elZJRjM/VGliP1B2WUlpe2FkemRg
RUpQQ2VsPjFaMEY0KkgKenNBX1RpJU1OUX1OM00qK25WK35XM0dxPXVyeiUkWV9sRXtQbGhyP201
cl4heSptMy1HN0BIJH45PFdTcCVVTnBxClllLSMpfm5RbUtOZzglPmswNypxb002TjwkZjxmdEtv
ZDVzOwoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNWE0NWQ1ZGUwNWUyZDYxMTdlNjgzMTExZDMy
MjQ0ODNlNTU3NGFhZS4uMGUwNmVlMzc1ZWJhZGViYjYxYmY3MDUyNjc0NWJiOWNiMGI4OWI5NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE2MzcsNiArMTYzNyw3IEBAIF9fWk43V2ViQ29yZTEy
RXZlbnRIYW5kbGVyOW1vdXNlRG93bkVQN05TRXZlbnQKIF9fWk43V2ViQ29yZTEyUG9wdXBNZW51
TWFjQzFFUE5TXzE1UG9wdXBNZW51Q2xpZW50RQogX19aTjdXZWJDb3JlMTN0b0RldmljZVNwYWNl
RVJLTlNfOUZsb2F0UmVjdEVQOE5TV2luZG93CiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4
dEMxRVA5Q0dDb250ZXh0CitfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDE1ZHJhd05hdGl2
ZUltYWdlRVA3Q0dJbWFnZVJLTlNfOUZsb2F0U2l6ZUVOU18xMENvbG9yU3BhY2VFUktOU185Rmxv
YXRSZWN0RVM5X05TXzE3Q29tcG9zaXRlT3BlcmF0b3JFTlNfMTZJbWFnZU9yaWVudGF0aW9uRQog
X19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhQzFFUDZOU0ZvbnRmYmJiTlNfMTVGb250T3Jp
ZW50YXRpb25FTlNfMTZGb250V2lkdGhWYXJpYW50RQogX19aTjdXZWJDb3JlMTZGb250UGxhdGZv
cm1EYXRhQzJFUDZOU0ZvbnRmYmJiTlNfMTVGb250T3JpZW50YXRpb25FTlNfMTZGb250V2lkdGhW
YXJpYW50RQogX19aTjdXZWJDb3JlMTZjb2xvckZyb21OU0NvbG9yRVA3TlNDb2xvcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdl
NmI2NmQ1ZWYxYzQzOWU3MTEyN2VjMTM3MDI3YWUzMTRhZTU2NjUuLjBjYTY4OTE1YjA5NzNiNmQ4
MjA4NTNjMjI2NDUwZDZhNWZhNTA4OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkzMSwxMCArOTMxLDYgQEAKIAkJMzE5RTY5
QjUxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5RTY5QUYxMzI5OUJCRDAwNEFD
OTFBIC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuY3BwICovOyB9OwogCQkzMTlFNjlCNjEzMjk5QkJE
MDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5RTY5QjAxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktp
dEFuaW1hdGlvbkxpc3QuaCAqLzsgfTsKIAkJMzE5RkJENUYxNUQyRjQ2NDAwOTY0MEE2IC8qIENh
Y2hlZEltYWdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTlGQkQ1RDE1RDJGNDQ0MDA5NjQwQTYgLyogQ2FjaGVkSW1hZ2VDbGllbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkzMUE5NjNB
NTE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b24ucG5nIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUE5NjNBMTE2NTVENDI2MDAwRDQ2NDUgLyog
c3RhcnRCdXR0b24ucG5nICovOyB9OwotCQkzMUE5NjNBNjE2NTVENDI2MDAwRDQ2NDUgLyogc3Rh
cnRCdXR0b25AMngucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMUE5NjNBMjE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25AMngucG5nICov
OyB9OwotCQkzMUE5NjNBNzE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25QcmVzc2VkLnBu
ZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBOTYz
QTMxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZC5wbmcgKi87IH07Ci0JCTMx
QTk2M0E4MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvblByZXNzZWRAMngucG5nIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUE5NjNBNDE2NTVE
NDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25QcmVzc2VkQDJ4LnBuZyAqLzsgfTsKIAkJMzFDMEZG
MjEwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjFCMEU0Q0VCNkUwMDdE
NkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgKi87IH07CiAJCTMxQzBGRjIyMEU0Q0VC
NkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUMwRTRDRUI2RTAwN0Q2RkU1IC8qIFdl
YktpdEFuaW1hdGlvbkV2ZW50LmggKi87IH07CiAJCTMxQzBGRjI0MEU0Q0VCNkUwMDdENkZFNSAv
KiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUUwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5z
aXRpb25FdmVudC5jcHAgKi87IH07CkBAIC04MTI3LDEwICs4MTIzLDYgQEAKIAkJMzE5RTY5QjAx
MzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0QW5pbWF0aW9uTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzMTlFNjlCMTEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9u
TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0QW5pbWF0aW9uTGlzdC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxOUZCRDVEMTVEMkY0NDQwMDk2NDBBNiAv
KiBDYWNoZWRJbWFnZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
YWNoZWRJbWFnZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUE5NjNB
MTE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b24ucG5nICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gc3RhcnRCdXR0
b24ucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUE5NjNBMjE2NTVENDI2MDAw
RDQ2NDUgLyogc3RhcnRCdXR0b25AMngucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gInN0YXJ0QnV0dG9uQDJ4LnBu
ZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxQTk2M0EzMTY1NUQ0MjYwMDBENDY0
NSAvKiBzdGFydEJ1dHRvblByZXNzZWQucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gc3RhcnRCdXR0b25QcmVzc2Vk
LnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFBOTYzQTQxNjU1RDQyNjAwMEQ0
NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZEAyeC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAic3RhcnRCdXR0b25Q
cmVzc2VkQDJ4LnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQzBGRjFCMEU0
Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRBbmltYXRpb25FdmVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQzBGRjFDMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRB
bmltYXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRB
bmltYXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUMwRkYxRDBF
NENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbkV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE0NTM1LDEwICsxNDUyNyw2IEBACiAJCQkJODUxMzZDOTQwQUVENjY1OTAwRjkw
QTNEIC8qIHNvdXRoRWFzdFJlc2l6ZUN1cnNvci5wbmcgKi8sCiAJCQkJODUxMzZDOTUwQUVENjY1
OTAwRjkwQTNEIC8qIHNvdXRoUmVzaXplQ3Vyc29yLnBuZyAqLywKIAkJCQk4NTEzNkM5NjBBRUQ2
NjU5MDBGOTBBM0QgLyogc291dGhXZXN0UmVzaXplQ3Vyc29yLnBuZyAqLywKLQkJCQkzMUE5NjNB
MTE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b24ucG5nICovLAotCQkJCTMxQTk2M0EyMTY1
NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvbkAyeC5wbmcgKi8sCi0JCQkJMzFBOTYzQTMxNjU1
RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZC5wbmcgKi8sCi0JCQkJMzFBOTYzQTQx
NjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZEAyeC5wbmcgKi8sCiAJCQkJOTMx
NTNCREIxNDE5NTlCQjAwRkNGNUJFIC8qIHRleHRBcmVhUmVzaXplQ29ybmVyLnBuZyAqLywKIAkJ
CQk5MzcwOTE4QzE0MTZEODZCMDA0NzczMzMgLyogdGV4dEFyZWFSZXNpemVDb3JuZXJAMngucG5n
ICovLAogCQkJCTQ2RDRGMjQ4MEFGOTdFODEwMDM1Mzg1QSAvKiB2ZXJ0aWNhbFRleHRDdXJzb3Iu
cG5nICovLApAQCAtMjYwNDYsMTAgKzI2MDM0LDYgQEAKIAkJCQk4NTEzNkNBODBBRUQ2NjU5MDBG
OTBBM0QgLyogd2VzdFJlc2l6ZUN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJCTFBQjFB
RTdBMEMwNTFGREUwMDEzOUY0RiAvKiB6b29tSW5DdXJzb3IucG5nIGluIFJlc291cmNlcyAqLywK
IAkJCQkxQUIxQUU3QjBDMDUxRkRFMDAxMzlGNEYgLyogem9vbU91dEN1cnNvci5wbmcgaW4gUmVz
b3VyY2VzICovLAotCQkJCTMxQTk2M0E1MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvbi5w
bmcgaW4gUmVzb3VyY2VzICovLAotCQkJCTMxQTk2M0E2MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFy
dEJ1dHRvbkAyeC5wbmcgaW4gUmVzb3VyY2VzICovLAotCQkJCTMxQTk2M0E3MTY1NUQ0MjYwMDBE
NDY0NSAvKiBzdGFydEJ1dHRvblByZXNzZWQucG5nIGluIFJlc291cmNlcyAqLywKLQkJCQkzMUE5
NjNBODE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25QcmVzc2VkQDJ4LnBuZyBpbiBSZXNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAzNWMzMjMyOGMzNDNh
MGY1NjkzMjk2ZDcwNTcxMTc3MzA4YmFhYjI5Li40MmU1MTQwYTUyMmI0ZjJkYzgzNDg2YzA4OTRi
M2MwMThlM2M1YjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlICJQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQu
aCIKICNpbmNsdWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgorI2luY2x1ZGUgIlJlbmRlclNu
YXBzaG90dGVkUGx1Z0luLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlICJT
ZWFyY2hQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJXZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaCIKQEAg
LTQ3LDMzNCArNDgsMzM2IEBAIGNsYXNzIE5TUmVzcG9uZGVyOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLSAgICBjbGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0OwotICAgIGNsYXNzIERhdGVUaW1l
Q2hvb3NlcjsKLSAgICBjbGFzcyBEYXRlVGltZUNob29zZXJDbGllbnQ7Ci0gICAgY2xhc3MgRWxl
bWVudDsKLSAgICBjbGFzcyBGaWxlQ2hvb3NlcjsKLSAgICBjbGFzcyBGaWxlSWNvbkxvYWRlcjsK
LSAgICBjbGFzcyBGbG9hdFJlY3Q7Ci0gICAgY2xhc3MgRnJhbWU7Ci0gICAgY2xhc3MgR2VvbG9j
YXRpb247Ci0gICAgY2xhc3MgR3JhcGhpY3NMYXllcjsKLSAgICBjbGFzcyBIVE1MSW5wdXRFbGVt
ZW50OwotICAgIGNsYXNzIEhpdFRlc3RSZXN1bHQ7Ci0gICAgY2xhc3MgSW50UmVjdDsKLSAgICBj
bGFzcyBOYXZpZ2F0aW9uQWN0aW9uOwotICAgIGNsYXNzIE5vZGU7Ci0gICAgY2xhc3MgUGFnZTsK
LSAgICBjbGFzcyBQYWdlUG9wdXA7Ci0gICAgY2xhc3MgUGFnZVBvcHVwQ2xpZW50OwotICAgIGNs
YXNzIFBhZ2VQb3B1cERyaXZlcjsKLSAgICBjbGFzcyBQb3B1cE1lbnVDbGllbnQ7Ci0gICAgY2xh
c3MgU2VjdXJpdHlPcmlnaW47Ci0gICAgY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7Ci0gICAgY2xh
c3MgV2lkZ2V0OwotCi0gICAgc3RydWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnM7Ci0gICAg
c3RydWN0IEZyYW1lTG9hZFJlcXVlc3Q7Ci0gICAgc3RydWN0IFZpZXdwb3J0QXJndW1lbnRzOwot
ICAgIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKK2NsYXNzIEFjY2Vzc2liaWxpdHlPYmplY3Q7Citj
bGFzcyBEYXRlVGltZUNob29zZXI7CitjbGFzcyBEYXRlVGltZUNob29zZXJDbGllbnQ7CitjbGFz
cyBFbGVtZW50OworY2xhc3MgRmlsZUNob29zZXI7CitjbGFzcyBGaWxlSWNvbkxvYWRlcjsKK2Ns
YXNzIEZsb2F0UmVjdDsKK2NsYXNzIEZyYW1lOworY2xhc3MgR2VvbG9jYXRpb247CitjbGFzcyBH
cmFwaGljc0xheWVyOworY2xhc3MgSFRNTElucHV0RWxlbWVudDsKK2NsYXNzIEhpdFRlc3RSZXN1
bHQ7CitjbGFzcyBJbnRSZWN0OworY2xhc3MgTmF2aWdhdGlvbkFjdGlvbjsKK2NsYXNzIE5vZGU7
CitjbGFzcyBQYWdlOworY2xhc3MgUGFnZVBvcHVwOworY2xhc3MgUGFnZVBvcHVwQ2xpZW50Owor
Y2xhc3MgUGFnZVBvcHVwRHJpdmVyOworY2xhc3MgUG9wdXBNZW51Q2xpZW50OworY2xhc3MgU2Vj
dXJpdHlPcmlnaW47CitjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKK2NsYXNzIFdpZGdldDsKKwor
c3RydWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnM7CitzdHJ1Y3QgRnJhbWVMb2FkUmVxdWVz
dDsKK3N0cnVjdCBWaWV3cG9ydEFyZ3VtZW50czsKK3N0cnVjdCBXaW5kb3dGZWF0dXJlczsKIAog
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBjbGFzcyBHcmFwaGljc0xheWVy
OwotICAgIGNsYXNzIEdyYXBoaWNzTGF5ZXJGYWN0b3J5OworY2xhc3MgR3JhcGhpY3NMYXllcjsK
K2NsYXNzIEdyYXBoaWNzTGF5ZXJGYWN0b3J5OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5QVVRf
VFlQRV9DT0xPUikKLSAgICBjbGFzcyBDb2xvckNob29zZXI7Ci0gICAgY2xhc3MgQ29sb3JDaG9v
c2VyQ2xpZW50OworY2xhc3MgQ29sb3JDaG9vc2VyOworY2xhc3MgQ29sb3JDaG9vc2VyQ2xpZW50
OwogI2VuZGlmCiAKICNpZiBQTEFURk9STShXSU4pICYmIFVTRShBVkZPVU5EQVRJT04pCi0gICAg
c3RydWN0IEdyYXBoaWNzRGV2aWNlQWRhcHRlcjsKK3N0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0
ZXI7CiAjZW5kaWYKIAotICAgIGNsYXNzIENocm9tZUNsaWVudCB7Ci0gICAgcHVibGljOgotICAg
ICAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJveWVkKCkgPSAwOwotICAgICAgICAKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JikgPSAwOwotICAg
ICAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCkgPSAwOwotICAgICAgICAKLSAgICAg
ICAgdmlydHVhbCBGbG9hdFJlY3QgcGFnZVJlY3QoKSA9IDA7Ci0gICAgICAgIAotICAgICAgICB2
aXJ0dWFsIHZvaWQgZm9jdXMoKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCkg
PSAwOwotCi0gICAgICAgIHZpcnR1YWwgYm9vbCBjYW5UYWtlRm9jdXMoRm9jdXNEaXJlY3Rpb24p
ID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHRha2VGb2N1cyhGb2N1c0RpcmVjdGlvbikgPSAw
OwotCi0gICAgICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkTm9kZUNoYW5nZWQoTm9kZSopID0gMDsK
LSAgICAgICAgdmlydHVhbCB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqKSA9IDA7Ci0K
LSAgICAgICAgLy8gVGhlIEZyYW1lIHBvaW50ZXIgcHJvdmlkZXMgdGhlIENocm9tZUNsaWVudCB3
aXRoIGNvbnRleHQgYWJvdXQgd2hpY2gKLSAgICAgICAgLy8gRnJhbWUgd2FudHMgdG8gY3JlYXRl
IHRoZSBuZXcgUGFnZS4gIEFsc28sIHRoZSBuZXdseSBjcmVhdGVkIHdpbmRvdwotICAgICAgICAv
LyBzaG91bGQgbm90IGJlIHNob3duIHRvIHRoZSB1c2VyIHVudGlsIHRoZSBDaHJvbWVDbGllbnQg
b2YgdGhlIG5ld2x5Ci0gICAgICAgIC8vIGNyZWF0ZWQgUGFnZSBoYXMgaXRzIHNob3cgbWV0aG9k
IGNhbGxlZC4KLSAgICAgICAgLy8gVGhlIEZyYW1lTG9hZFJlcXVlc3QgcGFyYW1ldGVyIGlzIG9u
bHkgZm9yIENocm9tZUNsaWVudCB0byBjaGVjayBpZiB0aGUKLSAgICAgICAgLy8gcmVxdWVzdCBj
b3VsZCBiZSBmdWxmaWxsZWQuICBUaGUgQ2hyb21lQ2xpZW50IHNob3VsZCBub3QgbG9hZCB0aGUg
cmVxdWVzdC4KLSAgICAgICAgdmlydHVhbCBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25z
dCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25zdCBOYXZpZ2F0
aW9uQWN0aW9uJikgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgc2hvdygpID0gMDsKLQotICAg
ICAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuTW9kYWwoKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9p
ZCBydW5Nb2RhbCgpID0gMDsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbGJhcnNWaXNp
YmxlKGJvb2wpID0gMDsKLSAgICAgICAgdmlydHVhbCBib29sIHRvb2xiYXJzVmlzaWJsZSgpID0g
MDsKLSAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNiYXJWaXNpYmxlKGJv
b2wpID0gMDsKLSAgICAgICAgdmlydHVhbCBib29sIHN0YXR1c2JhclZpc2libGUoKSA9IDA7Ci0g
ICAgICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsYmFyc1Zpc2libGUoYm9vbCkg
PSAwOwotICAgICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsYmFyc1Zpc2libGUoKSA9IDA7Ci0gICAg
ICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0TWVudWJhclZpc2libGUoYm9vbCkgPSAwOwot
ICAgICAgICB2aXJ0dWFsIGJvb2wgbWVudWJhclZpc2libGUoKSA9IDA7Ci0KLSAgICAgICAgdmly
dHVhbCB2b2lkIHNldFJlc2l6YWJsZShib29sKSA9IDA7Ci0gICAgICAgIAotICAgICAgICB2aXJ0
dWFsIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwg
TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGludCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKSA9IDA7Ci0KLSAgICAgICAgdmlydHVhbCBib29s
IGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpID0gMDsKLSAgICAgICAgdmlydHVhbCBi
b29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZy
YW1lKiBmcmFtZSkgPSAwOwotCi0gICAgICAgIHZpcnR1YWwgdm9pZCBjbG9zZVdpbmRvd1Nvb24o
KSA9IDA7Ci0gICAgICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0
KEZyYW1lKiwgY29uc3QgU3RyaW5nJikgPSAwOwotICAgICAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2
YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgICAgIHZpcnR1
YWwgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpID0gMDsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikgPSAwOwotICAg
ICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpID0gMDsKLSAgICAg
ICAgdmlydHVhbCBLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpID0gMDsKLQotICAgICAg
ICB2aXJ0dWFsIHZvaWQqIHdlYlZpZXcoKSBjb25zdCA9IDA7Ci0KLSAgICAgICAgdmlydHVhbCBJ
bnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QgPSAwOwotCi0gICAgICAgIC8vIE1ldGhv
ZHMgdXNlZCBieSBIb3N0V2luZG93LgotICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJv
b3RWaWV3KGNvbnN0IEludFJlY3QmLCBib29sKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBp
bnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiwgYm9vbCkgPSAwOwot
ICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25z
dCBJbnRSZWN0JiwgYm9vbCkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0
IEludFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpID0gMDsKK2NsYXNzIENo
cm9tZUNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgp
ID0gMDsKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJl
Y3QmKSA9IDA7CisgICAgdmlydHVhbCBGbG9hdFJlY3Qgd2luZG93UmVjdCgpID0gMDsKKyAgICAK
KyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBwYWdlUmVjdCgpID0gMDsKKyAgICAKKyAgICB2aXJ0dWFs
IHZvaWQgZm9jdXMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKSA9IDA7CisKKyAg
ICB2aXJ0dWFsIGJvb2wgY2FuVGFrZUZvY3VzKEZvY3VzRGlyZWN0aW9uKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHRha2VGb2N1cyhGb2N1c0RpcmVjdGlvbikgPSAwOworCisgICAgdmlydHVhbCB2
b2lkIGZvY3VzZWROb2RlQ2hhbmdlZChOb2RlKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmb2N1
c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKikgPSAwOworCisgICAgLy8gVGhlIEZyYW1lIHBvaW50ZXIg
cHJvdmlkZXMgdGhlIENocm9tZUNsaWVudCB3aXRoIGNvbnRleHQgYWJvdXQgd2hpY2gKKyAgICAv
LyBGcmFtZSB3YW50cyB0byBjcmVhdGUgdGhlIG5ldyBQYWdlLiBBbHNvLCB0aGUgbmV3bHkgY3Jl
YXRlZCB3aW5kb3cKKyAgICAvLyBzaG91bGQgbm90IGJlIHNob3duIHRvIHRoZSB1c2VyIHVudGls
IHRoZSBDaHJvbWVDbGllbnQgb2YgdGhlIG5ld2x5CisgICAgLy8gY3JlYXRlZCBQYWdlIGhhcyBp
dHMgc2hvdyBtZXRob2QgY2FsbGVkLgorICAgIC8vIFRoZSBGcmFtZUxvYWRSZXF1ZXN0IHBhcmFt
ZXRlciBpcyBvbmx5IGZvciBDaHJvbWVDbGllbnQgdG8gY2hlY2sgaWYgdGhlCisgICAgLy8gcmVx
dWVzdCBjb3VsZCBiZSBmdWxmaWxsZWQuIFRoZSBDaHJvbWVDbGllbnQgc2hvdWxkIG5vdCBsb2Fk
IHRoZSByZXF1ZXN0LgorICAgIHZpcnR1YWwgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lKiwgY29u
c3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29uc3QgTmF2aWdh
dGlvbkFjdGlvbiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdygpID0gMDsKKworICAgIHZp
cnR1YWwgYm9vbCBjYW5SdW5Nb2RhbCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcnVuTW9kYWwo
KSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbGJhcnNWaXNpYmxlKGJvb2wpID0gMDsK
KyAgICB2aXJ0dWFsIGJvb2wgdG9vbGJhcnNWaXNpYmxlKCkgPSAwOworICAgIAorICAgIHZpcnR1
YWwgdm9pZCBzZXRTdGF0dXNiYXJWaXNpYmxlKGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wg
c3RhdHVzYmFyVmlzaWJsZSgpID0gMDsKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xs
YmFyc1Zpc2libGUoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxiYXJzVmlzaWJs
ZSgpID0gMDsKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TWVudWJhclZpc2libGUoYm9vbCkg
PSAwOworICAgIHZpcnR1YWwgYm9vbCBtZW51YmFyVmlzaWJsZSgpID0gMDsKKworICAgIHZpcnR1
YWwgdm9pZCBzZXRSZXNpemFibGUoYm9vbCkgPSAwOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBh
ZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2
ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VJRCkgPSAwOworCisgICAgdmlydHVhbCBib29sIGNhblJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbCgpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29u
ZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUqKSA9IDA7CisKKyAgICB2aXJ0
dWFsIHZvaWQgY2xvc2VXaW5kb3dTb29uKCkgPSAwOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBy
dW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqLCBjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVh
bCBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiwgY29uc3QgU3RyaW5nJikgPSAwOwor
ICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmKSA9IDA7
CisgICAgdmlydHVhbCBib29sIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQoKSA9IDA7CisgICAg
dmlydHVhbCBLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpID0gMDsKKworICAgIHZpcnR1
YWwgdm9pZCogd2ViVmlldygpIGNvbnN0ID0gMDsKKworICAgIHZpcnR1YWwgSW50UmVjdCB3aW5k
b3dSZXNpemVyUmVjdCgpIGNvbnN0ID0gMDsKKworICAgIC8vIE1ldGhvZHMgdXNlZCBieSBIb3N0
V2luZG93LgorICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVj
dCYsIGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9v
dFZpZXcoY29uc3QgSW50UmVjdCYsIGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxp
ZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiwgYm9vbCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBjb25z
dCBJbnRSZWN0JikgPSAwOwogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotICAgICAgICB2
aXJ0dWFsIHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFBvaW50JikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50UG9p
bnQmKSA9IDA7CiAjZW5kaWYKLSAgICAgICAgdmlydHVhbCBJbnRQb2ludCBzY3JlZW5Ub1Jvb3RW
aWV3KGNvbnN0IEludFBvaW50JikgY29uc3QgPSAwOwotICAgICAgICB2aXJ0dWFsIEludFJlY3Qg
cm9vdFZpZXdUb1NjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3QgPSAwOwotICAgICAgICB2aXJ0
dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCA9IDA7Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0ID0gMDsK
LSAgICAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3ImKSA9IDA7Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkgPSAw
OworICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYp
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEludFJlY3Qgcm9vdFZpZXdUb1NjcmVlbihjb25zdCBJ
bnRSZWN0JikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRm
b3JtUGFnZUNsaWVudCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyc01v
ZGVEaWRDaGFuZ2UoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25z
dCBDdXJzb3ImKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91
c2VNb3Zlcyhib29sKSA9IDA7CiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAm
JiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQotICAgICAgICB2aXJ0dWFsIHZv
aWQgc2NoZWR1bGVBbmltYXRpb24oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQW5p
bWF0aW9uKCkgPSAwOwogI2VuZGlmCi0gICAgICAgIC8vIEVuZCBtZXRob2RzIHVzZWQgYnkgSG9z
dFdpbmRvdy4KKyAgICAvLyBFbmQgbWV0aG9kcyB1c2VkIGJ5IEhvc3RXaW5kb3cuCiAKLSAgICAg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0
IFZpZXdwb3J0QXJndW1lbnRzJikgY29uc3QgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
Vmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJikgY29u
c3QgeyB9CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUq
LCBjb25zdCBJbnRTaXplJikgY29uc3QgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0
VXBkYXRlZChGcmFtZSopIGNvbnN0IHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVj
dEludG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdCB7IH07IC8vIEN1cnJlbnRseSBvbmx5IE1h
YyBoYXMgYSBub24gZW1wdHkgaW1wbGVtZW50YXRpb24uCi0gICAgICAgCi0gICAgICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihSZW5kZXJFbWJl
ZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNr
ZWQoRWxlbWVudCosIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJl
YXNvbikgY29uc3QgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxl
bWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6
ZSYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0VXBkYXRlZChGcmFtZSopIGNv
bnN0IHsgfQorICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVj
dCYpIGNvbnN0IHsgfTsgLy8gQ3VycmVudGx5IG9ubHkgTWFjIGhhcyBhIG5vbiBlbXB0eSBpbXBs
ZW1lbnRhdGlvbi4KIAotICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJp
bmcmLCBUZXh0RGlyZWN0aW9uKSA9IDA7CisgICAgdmlydHVhbCBib29sIHNob3VsZFVuYXZhaWxh
YmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2
YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKEVsZW1lbnQqLCBSZW5kZXJFbWJlZGRl
ZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IHsgfQorICAgIHZpcnR1
YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5z
aWduZWQgbW9kaWZpZXJGbGFncykgPSAwOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwcmludChG
cmFtZSopID0gMDsKLSAgICAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVj
dGlvbihTY3JvbGxEaXJlY3Rpb24pIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9v
bFRpcChjb25zdCBTdHJpbmcmLCBUZXh0RGlyZWN0aW9uKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZv
aWQgcHJpbnQoRnJhbWUqKSA9IDA7CisgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJ
bkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24pIGNvbnN0ID0gMDsKIAogI2lmIEVOQUJMRShTUUxf
REFUQUJBU0UpCi0gICAgICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJh
bWUqLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBl
eGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSkg
PSAwOwogI2VuZGlmCiAKLSAgICAgICAgLy8gQ2FsbGJhY2sgaW52b2tlZCB3aGVuIHRoZSBhcHBs
aWNhdGlvbiBjYWNoZSBmYWlscyB0byBzYXZlIGEgY2FjaGUgb2JqZWN0Ci0gICAgICAgIC8vIGJl
Y2F1c2Ugc3RvcmluZyBpdCB3b3VsZCBncm93IHRoZSBkYXRhYmFzZSBmaWxlIHBhc3QgaXRzIGRl
ZmluZWQgbWF4aW11bQotICAgICAgICAvLyBzaXplIG9yIHBhc3QgdGhlIGFtb3VudCBvZiBmcmVl
IHNwYWNlIG9uIHRoZSBkZXZpY2UuIAotICAgICAgICAvLyBUaGUgY2hyb21lIGNsaWVudCB3b3Vs
ZCBuZWVkIHRvIHRha2Ugc29tZSBhY3Rpb24gc3VjaCBhcyBldmljdGluZyBzb21lCi0gICAgICAg
IC8vIG9sZCBjYWNoZXMuCi0gICAgICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVT
aXplKGludDY0X3Qgc3BhY2VOZWVkZWQpID0gMDsKLQotICAgICAgICAvLyBDYWxsYmFjayBpbnZv
a2VkIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGNhY2hlIG9yaWdpbiBxdW90YSBpcyByZWFjaGVkLiBU
aGlzCi0gICAgICAgIC8vIG1lYW5zIHRoYXQgdGhlIHJlc291cmNlcyBhdHRlbXB0aW5nIHRvIGJl
IGNhY2hlZCB2aWEgdGhlIG1hbmlmZXN0IGFyZQotICAgICAgICAvLyBtb3JlIHRoYW4gYWxsb3dl
ZCBvbiB0aGlzIG9yaWdpbi4gVGhpcyBjYWxsYmFjayBhbGxvd3MgdGhlIGNocm9tZSBjbGllbnQK
LSAgICAgICAgLy8gdG8gdGFrZSBhY3Rpb24sIHN1Y2ggYXMgcHJvbXB0aW5nIHRoZSB1c2VyIHRv
IGFzayB0byBpbmNyZWFzZSB0aGUgcXVvdGEKLSAgICAgICAgLy8gZm9yIHRoaXMgb3JpZ2luLiBU
aGUgdG90YWxTcGFjZU5lZWRlZCBwYXJhbWV0ZXIgaXMgdGhlIHRvdGFsIGFtb3VudCBvZgotICAg
ICAgICAvLyBzdG9yYWdlLCBpbiBieXRlcywgbmVlZGVkIHRvIHN0b3JlIHRoZSBuZXcgY2FjaGUg
YWxvbmcgd2l0aCBhbGwgb2YgdGhlCi0gICAgICAgIC8vIG90aGVyIGV4aXN0aW5nIGNhY2hlcyBm
b3IgdGhlIG9yaWdpbiB0aGF0IHdvdWxkIG5vdCBiZSByZXBsYWNlZCBieQotICAgICAgICAvLyB0
aGUgbmV3IGNhY2hlLgotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCkg
PSAwOworICAgIC8vIENhbGxiYWNrIGludm9rZWQgd2hlbiB0aGUgYXBwbGljYXRpb24gY2FjaGUg
ZmFpbHMgdG8gc2F2ZSBhIGNhY2hlIG9iamVjdAorICAgIC8vIGJlY2F1c2Ugc3RvcmluZyBpdCB3
b3VsZCBncm93IHRoZSBkYXRhYmFzZSBmaWxlIHBhc3QgaXRzIGRlZmluZWQgbWF4aW11bQorICAg
IC8vIHNpemUgb3IgcGFzdCB0aGUgYW1vdW50IG9mIGZyZWUgc3BhY2Ugb24gdGhlIGRldmljZS4g
CisgICAgLy8gVGhlIGNocm9tZSBjbGllbnQgd291bGQgbmVlZCB0byB0YWtlIHNvbWUgYWN0aW9u
IHN1Y2ggYXMgZXZpY3Rpbmcgc29tZQorICAgIC8vIG9sZCBjYWNoZXMuCisgICAgdmlydHVhbCB2
b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkgPSAwOworCisg
ICAgLy8gQ2FsbGJhY2sgaW52b2tlZCB3aGVuIHRoZSBhcHBsaWNhdGlvbiBjYWNoZSBvcmlnaW4g
cXVvdGEgaXMgcmVhY2hlZC4gVGhpcworICAgIC8vIG1lYW5zIHRoYXQgdGhlIHJlc291cmNlcyBh
dHRlbXB0aW5nIHRvIGJlIGNhY2hlZCB2aWEgdGhlIG1hbmlmZXN0IGFyZQorICAgIC8vIG1vcmUg
dGhhbiBhbGxvd2VkIG9uIHRoaXMgb3JpZ2luLiBUaGlzIGNhbGxiYWNrIGFsbG93cyB0aGUgY2hy
b21lIGNsaWVudAorICAgIC8vIHRvIHRha2UgYWN0aW9uLCBzdWNoIGFzIHByb21wdGluZyB0aGUg
dXNlciB0byBhc2sgdG8gaW5jcmVhc2UgdGhlIHF1b3RhCisgICAgLy8gZm9yIHRoaXMgb3JpZ2lu
LiBUaGUgdG90YWxTcGFjZU5lZWRlZCBwYXJhbWV0ZXIgaXMgdGhlIHRvdGFsIGFtb3VudCBvZgor
ICAgIC8vIHN0b3JhZ2UsIGluIGJ5dGVzLCBuZWVkZWQgdG8gc3RvcmUgdGhlIG5ldyBjYWNoZSBh
bG9uZyB3aXRoIGFsbCBvZiB0aGUKKyAgICAvLyBvdGhlciBleGlzdGluZyBjYWNoZXMgZm9yIHRo
ZSBvcmlnaW4gdGhhdCB3b3VsZCBub3QgYmUgcmVwbGFjZWQgYnkKKyAgICAvLyB0aGUgbmV3IGNh
Y2hlLgorICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
KFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKSA9IDA7CiAKICNpZiBF
TkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpIHx8IEVOQUJMRShEUkFHR0FCTEVfUkVHSU9OKQotICAg
ICAgICB2aXJ0dWFsIHZvaWQgYW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKTsKKyAgICB2aXJ0dWFs
IHZvaWQgYW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKTsKICNlbmRpZgogCi0gICAgICAgIHZpcnR1
YWwgdm9pZCBwb3B1bGF0ZVZpc2l0ZWRMaW5rcygpOworICAgIHZpcnR1YWwgdm9pZCBwb3B1bGF0
ZVZpc2l0ZWRMaW5rcygpOwogCi0gICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IGN1c3RvbUhpZ2hs
aWdodFJlY3QoTm9kZSosIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRmxvYXRSZWN0
JiBsaW5lUmVjdCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwYWludEN1c3RvbUhpZ2hsaWdodChO
b2RlKiwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBGbG9hdFJlY3QmIGJveFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgbGluZVJlY3QsCi0gICAgICAgICAgICBib29sIGJlaGluZFRleHQs
IGJvb2wgZW50aXJlTGluZSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgdmlydHVhbCBib29sIHNo
b3VsZFJlcGxhY2VXaXRoR2VuZXJhdGVkRmlsZUZvclVwbG9hZChjb25zdCBTdHJpbmcmIHBhdGgs
IFN0cmluZyYgZ2VuZXJhdGVkRmlsZW5hbWUpOwotICAgICAgICB2aXJ0dWFsIFN0cmluZyBnZW5l
cmF0ZVJlcGxhY2VtZW50RmlsZShjb25zdCBTdHJpbmcmIHBhdGgpOworICAgIHZpcnR1YWwgRmxv
YXRSZWN0IGN1c3RvbUhpZ2hsaWdodFJlY3QoTm9kZSosIGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgY29uc3QgRmxvYXRSZWN0JiBsaW5lUmVjdCk7CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q3Vz
dG9tSGlnaGxpZ2h0KE5vZGUqLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEZsb2F0
UmVjdCYgYm94UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBsaW5lUmVjdCwKKyAgICAgICAgYm9vbCBi
ZWhpbmRUZXh0LCBib29sIGVudGlyZUxpbmUpOworICAgICAgICAKKyAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkUmVwbGFjZVdpdGhHZW5lcmF0ZWRGaWxlRm9yVXBsb2FkKGNvbnN0IFN0cmluZyYgcGF0
aCwgU3RyaW5nJiBnZW5lcmF0ZWRGaWxlbmFtZSk7CisgICAgdmlydHVhbCBTdHJpbmcgZ2VuZXJh
dGVSZXBsYWNlbWVudEZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKTsKIAotICAgICAgICB2aXJ0dWFs
IGJvb2wgcGFpbnRDdXN0b21PdmVyaGFuZ0FyZWEoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50
UmVjdCYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0Jik7CisgICAgdmlydHVhbCBib29s
IHBhaW50Q3VzdG9tT3ZlcmhhbmdBcmVhKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3Qm
LCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpOwogCiAjaWYgRU5BQkxFKElOUFVUX1RZ
UEVfQ09MT1IpCi0gICAgICAgIHZpcnR1YWwgUGFzc093blB0cjxDb2xvckNob29zZXI+IGNyZWF0
ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBDb2xvciYpID0gMDsKKyAg
ICB2aXJ0dWFsIFBhc3NPd25QdHI8Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoQ29s
b3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgQ29sb3ImKSA9IDA7CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQotICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlz
IHVzZWQgZm9yOgotICAgICAgICAvLyAgLSBNYW5kYXRvcnkgZGF0ZS90aW1lIGNob29zZXJzIGlm
ICFFTkFCTEUoSU5QVVRfTVVMVElQTEVfRklFTERTX1VJKQotICAgICAgICAvLyAgLSBEYXRlL3Rp
bWUgY2hvb3NlcnMgZm9yIHR5cGVzIGZvciB3aGljaCBSZW5kZXJUaGVtZTo6c3VwcG9ydHNDYWxl
bmRhclBpY2tlcgotICAgICAgICAvLyAgICByZXR1cm5zIHRydWUsIGlmIEVOQUJMRShJTlBVVF9N
VUxUSVBMRV9GSUVMRFNfVUkpCi0gICAgICAgIC8vICAtIDxkYXRhbGlzdD4gVUkgZm9yIGRhdGUv
dGltZSBpbnB1dCB0eXBlcyByZWdhcmRsZXNzIG9mCi0gICAgICAgIC8vICAgIEVOQUJMRShJTlBV
VF9NVUxUSVBMRV9GSUVMRFNfVUkpCi0gICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxEYXRlVGlt
ZUNob29zZXI+IG9wZW5EYXRlVGltZUNob29zZXIoRGF0ZVRpbWVDaG9vc2VyQ2xpZW50KiwgY29u
c3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyYpID0gMDsKKyAgICAvLyBUaGlzIGZ1bmN0aW9u
IGlzIHVzZWQgZm9yOgorICAgIC8vICAtIE1hbmRhdG9yeSBkYXRlL3RpbWUgY2hvb3NlcnMgaWYg
IUVOQUJMRShJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUkpCisgICAgLy8gIC0gRGF0ZS90aW1lIGNo
b29zZXJzIGZvciB0eXBlcyBmb3Igd2hpY2ggUmVuZGVyVGhlbWU6OnN1cHBvcnRzQ2FsZW5kYXJQ
aWNrZXIKKyAgICAvLyAgICByZXR1cm5zIHRydWUsIGlmIEVOQUJMRShJTlBVVF9NVUxUSVBMRV9G
SUVMRFNfVUkpCisgICAgLy8gIC0gPGRhdGFsaXN0PiBVSSBmb3IgZGF0ZS90aW1lIGlucHV0IHR5
cGVzIHJlZ2FyZGxlc3Mgb2YKKyAgICAvLyAgICBFTkFCTEUoSU5QVVRfTVVMVElQTEVfRklFTERT
X1VJKQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxEYXRlVGltZUNob29zZXI+IG9wZW5EYXRlVGlt
ZUNob29zZXIoRGF0ZVRpbWVDaG9vc2VyQ2xpZW50KiwgY29uc3QgRGF0ZVRpbWVDaG9vc2VyUGFy
YW1ldGVycyYpID0gMDsKICNlbmRpZgogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFu
ZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikgPSAwOwotICAgICAgICAvLyBBc3lu
Y2hyb25vdXMgcmVxdWVzdCB0byBsb2FkIGFuIGljb24gZm9yIHNwZWNpZmllZCBmaWxlbmFtZXMu
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiwgRmlsZUljb25Mb2FkZXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5l
bChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KSA9IDA7CisgICAgLy8gQXN5bmNocm9u
b3VzIHJlcXVlc3QgdG8gbG9hZCBhbiBpY29uIGZvciBzcGVjaWZpZWQgZmlsZW5hbWVzLgorICAg
IHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmls
ZUljb25Mb2FkZXIqKSA9IDA7CiAKICNpZiBFTkFCTEUoRElSRUNUT1JZX1VQTE9BRCkKLSAgICAg
ICAgLy8gQXN5Y2hyb25vdXMgcmVxdWVzdCB0byBlbnVtZXJhdGUgYWxsIGZpbGVzIGluIGEgZGly
ZWN0b3J5IGNob3NlbiBieSB0aGUgdXNlci4KLSAgICAgICAgdmlydHVhbCB2b2lkIGVudW1lcmF0
ZUNob3NlbkRpcmVjdG9yeShGaWxlQ2hvb3NlciopID0gMDsKKyAgICAvLyBBc3ljaHJvbm91cyBy
ZXF1ZXN0IHRvIGVudW1lcmF0ZSBhbGwgZmlsZXMgaW4gYSBkaXJlY3RvcnkgY2hvc2VuIGJ5IHRo
ZSB1c2VyLgorICAgIHZpcnR1YWwgdm9pZCBlbnVtZXJhdGVDaG9zZW5EaXJlY3RvcnkoRmlsZUNo
b29zZXIqKSA9IDA7CiAjZW5kaWYKIAotICAgICAgICAvLyBOb3RpZmljYXRpb24gdGhhdCB0aGUg
Z2l2ZW4gZm9ybSBlbGVtZW50IGhhcyBjaGFuZ2VkLiBUaGlzIGZ1bmN0aW9uCi0gICAgICAgIC8v
IHdpbGwgYmUgY2FsbGVkIGZyZXF1ZW50bHksIHNvIGhhbmRsaW5nIHNob3VsZCBiZSB2ZXJ5IGZh
c3QuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBmb3JtU3RhdGVEaWRDaGFuZ2UoY29uc3QgTm9kZSop
ID0gMDsKLSAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29u
c3QgTm9kZSopIHsgfTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0
IE5vZGUqKSB7IH07CisgICAgLy8gTm90aWZpY2F0aW9uIHRoYXQgdGhlIGdpdmVuIGZvcm0gZWxl
bWVudCBoYXMgY2hhbmdlZC4gVGhpcyBmdW5jdGlvbgorICAgIC8vIHdpbGwgYmUgY2FsbGVkIGZy
ZXF1ZW50bHksIHNvIGhhbmRsaW5nIHNob3VsZCBiZSB2ZXJ5IGZhc3QuCisgICAgdmlydHVhbCB2
b2lkIGZvcm1TdGF0ZURpZENoYW5nZShjb25zdCBOb2RlKikgPSAwOworICAgIAorICAgIHZpcnR1
YWwgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgTm9kZSopIHsgfTsKKyAgICB2aXJ0dWFsIHZv
aWQgZWxlbWVudERpZEJsdXIoY29uc3QgTm9kZSopIHsgfTsKIAogI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKLSAgICAgICAgLy8gQWxsb3dzIHBvcnRzIHRvIGN1c3RvbWl6ZSB0aGUg
dHlwZSBvZiBncmFwaGljcyBsYXllcnMgY3JlYXRlZCBieSB0aGlzIHBhZ2UuCi0gICAgICAgIHZp
cnR1YWwgR3JhcGhpY3NMYXllckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgY29uc3Qg
eyByZXR1cm4gMDsgfQotCi0gICAgICAgIC8vIFBhc3MgMCBhcyB0aGUgR3JhcGhpY3NMYXllciB0
byBkZXRhdGNoIHRoZSByb290IGxheWVyLgotICAgICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9v
dEdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKikgPSAwOwotICAgICAgICAvLyBT
ZXRzIGEgZmxhZyB0byBzcGVjaWZ5IHRoYXQgdGhlIG5leHQgdGltZSBjb250ZW50IGlzIGRyYXdu
IHRvIHRoZSB3aW5kb3csCi0gICAgICAgIC8vIHRoZSBjaGFuZ2VzIGFwcGVhciBvbiB0aGUgc2Ny
ZWVuIGluIHN5bmNocm9ueSB3aXRoIHVwZGF0ZXMgdG8gR3JhcGhpY3NMYXllcnMuCi0gICAgICAg
IHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgPSAw
OwotICAgICAgICAvLyBTZXRzIGEgZmxhZyB0byBzcGVjaWZ5IHRoYXQgdGhlIHZpZXcgbmVlZHMg
dG8gYmUgdXBkYXRlZCwgc28gd2UgbmVlZAotICAgICAgICAvLyB0byBkbyBhbiBlYWdlciBsYXlv
dXQgYmVmb3JlIHRoZSBkcmF3aW5nLgotICAgICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21w
b3NpdGluZ0xheWVyRmx1c2goKSA9IDA7Ci0gICAgICAgIC8vIFJldHVybnMgd2hldGhlciBvciBu
b3QgdGhlIGNsaWVudCBjYW4gcmVuZGVyIHRoZSBjb21wb3NpdGVkIGxheWVyLAotICAgICAgICAv
LyByZWdhcmRsZXNzIG9mIHRoZSBzZXR0aW5ncy4KLSAgICAgICAgdmlydHVhbCBib29sIGFsbG93
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0KLSAgICAg
ICAgZW51bSBDb21wb3NpdGluZ1RyaWdnZXIgewotICAgICAgICAgICAgVGhyZWVEVHJhbnNmb3Jt
VHJpZ2dlciA9IDEgPDwgMCwKLSAgICAgICAgICAgIFZpZGVvVHJpZ2dlciA9IDEgPDwgMSwKLSAg
ICAgICAgICAgIFBsdWdpblRyaWdnZXIgPSAxIDw8IDIsCi0gICAgICAgICAgICBDYW52YXNUcmln
Z2VyID0gMSA8PCAzLAotICAgICAgICAgICAgQW5pbWF0aW9uVHJpZ2dlciA9IDEgPDwgNCwKLSAg
ICAgICAgICAgIEZpbHRlclRyaWdnZXIgPSAxIDw8IDUsCi0gICAgICAgICAgICBBbGxUcmlnZ2Vy
cyA9IDB4RkZGRkZGRkYKLSAgICAgICAgfTsKLSAgICAgICAgdHlwZWRlZiB1bnNpZ25lZCBDb21w
b3NpdGluZ1RyaWdnZXJGbGFnczsKLQotICAgICAgICAvLyBSZXR1cm5zIGEgYml0ZmllbGQgaW5k
aWNhdGluZyBjb25kaXRpb25zIHRoYXQgY2FuIHRyaWdnZXIgdGhlIGNvbXBvc2l0b3IuCi0gICAg
ICAgIHZpcnR1YWwgQ29tcG9zaXRpbmdUcmlnZ2VyRmxhZ3MgYWxsb3dlZENvbXBvc2l0aW5nVHJp
Z2dlcnMoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxDb21wb3NpdGluZ1RyaWdnZXJGbGFn
cz4oQWxsVHJpZ2dlcnMpOyB9CisgICAgLy8gQWxsb3dzIHBvcnRzIHRvIGN1c3RvbWl6ZSB0aGUg
dHlwZSBvZiBncmFwaGljcyBsYXllcnMgY3JlYXRlZCBieSB0aGlzIHBhZ2UuCisgICAgdmlydHVh
bCBHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBjb25zdCB7IHJl
dHVybiAwOyB9CisKKyAgICAvLyBQYXNzIDAgYXMgdGhlIEdyYXBoaWNzTGF5ZXIgdG8gZGV0YXRj
aCB0aGUgcm9vdCBsYXllci4KKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5
ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKikgPSAwOworICAgIC8vIFNldHMgYSBmbGFnIHRvIHNw
ZWNpZnkgdGhhdCB0aGUgbmV4dCB0aW1lIGNvbnRlbnQgaXMgZHJhd24gdG8gdGhlIHdpbmRvdywK
KyAgICAvLyB0aGUgY2hhbmdlcyBhcHBlYXIgb24gdGhlIHNjcmVlbiBpbiBzeW5jaHJvbnkgd2l0
aCB1cGRhdGVzIHRvIEdyYXBoaWNzTGF5ZXJzLgorICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09u
ZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgPSAwOworICAgIC8vIFNldHMgYSBmbGFnIHRv
IHNwZWNpZnkgdGhhdCB0aGUgdmlldyBuZWVkcyB0byBiZSB1cGRhdGVkLCBzbyB3ZSBuZWVkCisg
ICAgLy8gdG8gZG8gYW4gZWFnZXIgbGF5b3V0IGJlZm9yZSB0aGUgZHJhd2luZy4KKyAgICB2aXJ0
dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSA9IDA7CisgICAgLy8gUmV0
dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgY2xpZW50IGNhbiByZW5kZXIgdGhlIGNvbXBvc2l0ZWQg
bGF5ZXIsCisgICAgLy8gcmVnYXJkbGVzcyBvZiB0aGUgc2V0dGluZ3MuCisgICAgdmlydHVhbCBi
b29sIGFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CisKKyAgICBlbnVtIENvbXBvc2l0aW5nVHJpZ2dlciB7CisgICAgICAgIFRocmVlRFRyYW5zZm9y
bVRyaWdnZXIgPSAxIDw8IDAsCisgICAgICAgIFZpZGVvVHJpZ2dlciA9IDEgPDwgMSwKKyAgICAg
ICAgUGx1Z2luVHJpZ2dlciA9IDEgPDwgMiwKKyAgICAgICAgQ2FudmFzVHJpZ2dlciA9IDEgPDwg
MywKKyAgICAgICAgQW5pbWF0aW9uVHJpZ2dlciA9IDEgPDwgNCwKKyAgICAgICAgRmlsdGVyVHJp
Z2dlciA9IDEgPDwgNSwKKyAgICAgICAgQWxsVHJpZ2dlcnMgPSAweEZGRkZGRkZGCisgICAgfTsK
KyAgICB0eXBlZGVmIHVuc2lnbmVkIENvbXBvc2l0aW5nVHJpZ2dlckZsYWdzOworCisgICAgLy8g
UmV0dXJucyBhIGJpdGZpZWxkIGluZGljYXRpbmcgY29uZGl0aW9ucyB0aGF0IGNhbiB0cmlnZ2Vy
IHRoZSBjb21wb3NpdG9yLgorICAgIHZpcnR1YWwgQ29tcG9zaXRpbmdUcmlnZ2VyRmxhZ3MgYWxs
b3dlZENvbXBvc2l0aW5nVHJpZ2dlcnMoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxDb21w
b3NpdGluZ1RyaWdnZXJGbGFncz4oQWxsVHJpZ2dlcnMpOyB9CiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKFdJTikgJiYgVVNFKEFWRk9VTkRBVElPTikKLSAgICAgICAgdmlydHVhbCBHcmFwaGljc0Rl
dmljZUFkYXB0ZXIqIGdyYXBoaWNzRGV2aWNlQWRhcHRlcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0K
KyAgICB2aXJ0dWFsIEdyYXBoaWNzRGV2aWNlQWRhcHRlciogZ3JhcGhpY3NEZXZpY2VBZGFwdGVy
KCkgY29uc3QgeyByZXR1cm4gMDsgfQogI2VuZGlmCiAKLSAgICAgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUoY29uc3QgTm9kZSopIHsgcmV0dXJuIGZhbHNlOyB9Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqKSB7IH0KLSAg
ICAgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsc2NyZWVuRm9yTm9kZShOb2RlKikgeyB9Ci0gICAg
ICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCkgeyBy
ZXR1cm4gZmFsc2U7IH0gCisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbHNjcmVlbkZvck5v
ZGUoY29uc3QgTm9kZSopIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIGVudGVy
RnVsbHNjcmVlbkZvck5vZGUoTm9kZSopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbHNj
cmVlbkZvck5vZGUoTm9kZSopIHsgfQorICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0Z1bGxzY3Jl
ZW5Gb3JWaWRlb1BsYXliYWNrKCkgeyByZXR1cm4gZmFsc2U7IH0gCiAKICNpZiBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCi0gICAgICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JF
bGVtZW50KGNvbnN0IEVsZW1lbnQqLCBib29sKSB7IHJldHVybiBmYWxzZTsgfQotICAgICAgICB2
aXJ0dWFsIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KikgeyB9Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopIHsgfQot
ICAgICAgICB2aXJ0dWFsIHZvaWQgZnVsbFNjcmVlblJlbmRlcmVyQ2hhbmdlZChSZW5kZXJCb3gq
KSB7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIHNldFJvb3RGdWxsU2NyZWVuTGF5ZXIoR3JhcGhp
Y3NMYXllciopIHsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVt
ZW50KGNvbnN0IEVsZW1lbnQqLCBib29sKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
dm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqKSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqKSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgZnVsbFNjcmVlblJlbmRlcmVyQ2hhbmdlZChSZW5kZXJCb3gqKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgc2V0Um9vdEZ1bGxTY3JlZW5MYXllcihHcmFwaGljc0xheWVyKikgeyB9CiAjZW5k
aWYKLSAgICAgICAgCisgICAgCiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0gICAgICAg
IHZpcnR1YWwgSW50UmVjdCB2aXNpYmxlUmVjdEZvclRpbGVkQmFja2luZ1N0b3JlKCkgY29uc3Qg
eyByZXR1cm4gSW50UmVjdCgpOyB9CisgICAgdmlydHVhbCBJbnRSZWN0IHZpc2libGVSZWN0Rm9y
VGlsZWRCYWNraW5nU3RvcmUoKSBjb25zdCB7IHJldHVybiBJbnRSZWN0KCk7IH0KICNlbmRpZgog
CiAjaWYgUExBVEZPUk0oTUFDKQotICAgICAgICB2aXJ0dWFsIE5TUmVzcG9uZGVyICpmaXJzdFJl
c3BvbmRlcigpIHsgcmV0dXJuIDA7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIG1ha2VGaXJzdFJl
c3BvbmRlcihOU1Jlc3BvbmRlciAqKSB7IH0KLSAgICAgICAgLy8gRm9jdXNlcyBvbiB0aGUgY29u
dGFpbmluZyB2aWV3IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHBhZ2UuCi0gICAgICAgIHZpcnR1YWwg
dm9pZCBtYWtlRmlyc3RSZXNwb25kZXIoKSB7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxQ
b3BVcE1lbnUoTlNNZW51ICopIHsgfQorICAgIHZpcnR1YWwgTlNSZXNwb25kZXIgKmZpcnN0UmVz
cG9uZGVyKCkgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgdm9pZCBtYWtlRmlyc3RSZXNwb25k
ZXIoTlNSZXNwb25kZXIgKikgeyB9CisgICAgLy8gRm9jdXNlcyBvbiB0aGUgY29udGFpbmluZyB2
aWV3IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHBhZ2UuCisgICAgdmlydHVhbCB2b2lkIG1ha2VGaXJz
dFJlc3BvbmRlcigpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxsUG9wVXBNZW51KE5TTWVudSAq
KSB7IH0KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKQotICAgICAgICB2aXJ0dWFsIHZvaWQg
c2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpID0gMDsKICNlbmRpZgogCiAjaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKLSAgICAgICAgdmlydHVhbCB2b2lkIG5lZWRUb3VjaEV2ZW50cyhi
b29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG5lZWRUb3VjaEV2ZW50cyhib29sKSA9IDA7CiAj
ZW5kaWYKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25J
c05hdHVyYWwoKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50
Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgPSAwOwotICAgICAgICAvLyBDaGVja3MgaWYg
dGhlcmUgaXMgYW4gb3BlbmVkIHBvcHVwLCBjYWxsZWQgYnkgUmVuZGVyTWVudUxpc3Q6OnNob3dQ
b3B1cCgpLgotICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCA9IDA7
Ci0gICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQ
b3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7Ci0gICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxT
ZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBj
b25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNO
YXR1cmFsKCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93
c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgPSAwOworICAgIC8vIENoZWNrcyBpZiB0aGVyZSBpcyBh
biBvcGVuZWQgcG9wdXAsIGNhbGxlZCBieSBSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKCkuCisg
ICAgdmlydHVhbCBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBj
b25zdCA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRl
U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0ID0gMDsKICNpZiBFTkFCTEUo
UEFHRV9QT1BVUCkKLSAgICAgICAgLy8gQ3JlYXRlcyBhIFBhZ2VQb3B1cCBvYmplY3QsIGFuZCBz
aG93cyBpdCBiZXNpZGUgb3JpZ2luQm91bmRzSW5Sb290Vmlldy4KLSAgICAgICAgLy8gVGhlIHJl
dHVybiB2YWx1ZSBjYW4gYmUgMC4KLSAgICAgICAgdmlydHVhbCBQYWdlUG9wdXAqIG9wZW5QYWdl
UG9wdXAoUGFnZVBvcHVwQ2xpZW50KiwgY29uc3QgSW50UmVjdCYgb3JpZ2luQm91bmRzSW5Sb290
VmlldykgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VQYWdlUG9wdXAoUGFnZVBvcHVw
KikgPSAwOwotICAgICAgICAvLyBGb3IgdGVzdGluZy4KLSAgICAgICAgdmlydHVhbCB2b2lkIHNl
dFBhZ2VQb3B1cERyaXZlcihQYWdlUG9wdXBEcml2ZXIqKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwg
dm9pZCByZXNldFBhZ2VQb3B1cERyaXZlcigpID0gMDsKKyAgICAvLyBDcmVhdGVzIGEgUGFnZVBv
cHVwIG9iamVjdCwgYW5kIHNob3dzIGl0IGJlc2lkZSBvcmlnaW5Cb3VuZHNJblJvb3RWaWV3Lgor
ICAgIC8vIFRoZSByZXR1cm4gdmFsdWUgY2FuIGJlIDAuCisgICAgdmlydHVhbCBQYWdlUG9wdXAq
IG9wZW5QYWdlUG9wdXAoUGFnZVBvcHVwQ2xpZW50KiwgY29uc3QgSW50UmVjdCYgb3JpZ2luQm91
bmRzSW5Sb290VmlldykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbG9zZVBhZ2VQb3B1cChQYWdl
UG9wdXAqKSA9IDA7CisgICAgLy8gRm9yIHRlc3RpbmcuCisgICAgdmlydHVhbCB2b2lkIHNldFBh
Z2VQb3B1cERyaXZlcihQYWdlUG9wdXBEcml2ZXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJl
c2V0UGFnZVBvcHVwRHJpdmVyKCkgPSAwOwogI2VuZGlmCi0gICAgICAgIC8vIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIHdoZW5ldmVyIGEgdGV4dCBmaWVsZCA8aW5wdXQ+IGlzCi0gICAgICAgIC8v
IGNyZWF0ZWQuIFRoZSBpbXBsZW1lbnRhdGlvbiBzaG91bGQgcmV0dXJuIHRydWUgaWYgaXQgd2Fu
dHMKLSAgICAgICAgLy8gdG8gZG8gc29tZXRoaW5nIGluIGFkZFRleHRGaWVsZERlY29yYXRpb25z
VG8oKS4KLSAgICAgICAgLy8gVGhlIGFyZ3VtZW50IGlzIGFsd2F5cyBub24tMC4KLSAgICAgICAg
dmlydHVhbCBib29sIHdpbGxBZGRUZXh0RmllbGREZWNvcmF0aW9uc1RvKEhUTUxJbnB1dEVsZW1l
bnQqKSB7IHJldHVybiBmYWxzZTsgfQotICAgICAgICAvLyBUaGUgYXJndW1lbnQgaXMgYWx3YXlz
IG5vbi0wLgotICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkVGV4dEZpZWxkRGVjb3JhdGlvbnNUbyhI
VE1MSW5wdXRFbGVtZW50KikgeyB9Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE9iamVjdENhY2hlOjpB
WE5vdGlmaWNhdGlvbikgeyB9Ci0gICAgICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5
U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChjb25zdCBJbnRSZWN0JikgeyB9Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCByZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKGludCAvKm5l
d1N0eWxlKi8pIHsgfQotCi0gICAgICAgIGVudW0gRGlhbG9nVHlwZSB7Ci0gICAgICAgICAgICBB
bGVydERpYWxvZyA9IDAsCi0gICAgICAgICAgICBDb25maXJtRGlhbG9nID0gMSwKLSAgICAgICAg
ICAgIFByb21wdERpYWxvZyA9IDIsCi0gICAgICAgICAgICBIVE1MRGlhbG9nID0gMwotICAgICAg
ICB9OwotICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnVuTW9kYWxEaWFsb2dEdXJpbmdQYWdl
RGlzbWlzc2FsKGNvbnN0IERpYWxvZ1R5cGUmLCBjb25zdCBTdHJpbmcmIGRpYWxvZ01lc3NhZ2Us
IEZyYW1lTG9hZGVyOjpQYWdlRGlzbWlzc2FsVHlwZSkgY29uc3QgeyBVTlVTRURfUEFSQU0oZGlh
bG9nTWVzc2FnZSk7IHJldHVybiB0cnVlOyB9Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIG51bVdo
ZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpID0gMDsKLSAgICAgICAgCi0gICAgICAg
IHZpcnR1YWwgYm9vbCBpc1NWR0ltYWdlQ2hyb21lQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuZXZlciBhIHRleHQgZmll
bGQgPGlucHV0PiBpcworICAgIC8vIGNyZWF0ZWQuIFRoZSBpbXBsZW1lbnRhdGlvbiBzaG91bGQg
cmV0dXJuIHRydWUgaWYgaXQgd2FudHMKKyAgICAvLyB0byBkbyBzb21ldGhpbmcgaW4gYWRkVGV4
dEZpZWxkRGVjb3JhdGlvbnNUbygpLgorICAgIC8vIFRoZSBhcmd1bWVudCBpcyBhbHdheXMgbm9u
LTAuCisgICAgdmlydHVhbCBib29sIHdpbGxBZGRUZXh0RmllbGREZWNvcmF0aW9uc1RvKEhUTUxJ
bnB1dEVsZW1lbnQqKSB7IHJldHVybiBmYWxzZTsgfQorICAgIC8vIFRoZSBhcmd1bWVudCBpcyBh
bHdheXMgbm9uLTAuCisgICAgdmlydHVhbCB2b2lkIGFkZFRleHRGaWVsZERlY29yYXRpb25zVG8o
SFRNTElucHV0RWxlbWVudCopIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHBvc3RBY2Nlc3NpYmls
aXR5Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE9iamVjdENhY2hlOjpBWE5v
dGlmaWNhdGlvbikgeyB9CisgICAgCisgICAgdmlydHVhbCB2b2lkIG5vdGlmeVNjcm9sbGVyVGh1
bWJJc1Zpc2libGVJblJlY3QoY29uc3QgSW50UmVjdCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBy
ZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKGludCAvKm5ld1N0eWxlKi8pIHsgfQor
CisgICAgZW51bSBEaWFsb2dUeXBlIHsKKyAgICAgICAgQWxlcnREaWFsb2cgPSAwLAorICAgICAg
ICBDb25maXJtRGlhbG9nID0gMSwKKyAgICAgICAgUHJvbXB0RGlhbG9nID0gMiwKKyAgICAgICAg
SFRNTERpYWxvZyA9IDMKKyAgICB9OworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdW5Nb2RhbERp
YWxvZ0R1cmluZ1BhZ2VEaXNtaXNzYWwoY29uc3QgRGlhbG9nVHlwZSYsIGNvbnN0IFN0cmluZyYg
ZGlhbG9nTWVzc2FnZSwgRnJhbWVMb2FkZXI6OlBhZ2VEaXNtaXNzYWxUeXBlKSBjb25zdCB7IFVO
VVNFRF9QQVJBTShkaWFsb2dNZXNzYWdlKTsgcmV0dXJuIHRydWU7IH0KKworICAgIHZpcnR1YWwg
dm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSA9IDA7CisgICAgCisg
ICAgdmlydHVhbCBib29sIGlzU1ZHSW1hZ2VDaHJvbWVDbGllbnQoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKLSAgICAgICAgdmlydHVhbCBib29s
IHJlcXVlc3RQb2ludGVyTG9jaygpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0UG9pbnRlclVubG9jaygpIHsgfQotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNQ
b2ludGVyTG9ja2VkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWVz
dFBvaW50ZXJMb2NrKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dFBvaW50ZXJVbmxvY2soKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNQb2ludGVyTG9ja2VkKCkg
eyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFn
bm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24sIGNvbnN0IFN0cmluZyYgc3RhdHVzKSB7IFVOVVNFRF9QQVJBTShtZXNzYWdlKTsgVU5V
U0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsgVU5VU0VEX1BBUkFNKHN0YXR1cyk7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHN0YXR1cykgeyBVTlVTRURfUEFS
QU0obWVzc2FnZSk7IFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7IFVOVVNFRF9QQVJBTShzdGF0
dXMpOyB9CiAKLSAgICAgICAgdmlydHVhbCBGbG9hdFNpemUgbWluaW11bVdpbmRvd1NpemUoKSBj
b25zdCB7IHJldHVybiBGbG9hdFNpemUoMTAwLCAxMDApOyB9OworICAgIHZpcnR1YWwgRmxvYXRT
aXplIG1pbmltdW1XaW5kb3dTaXplKCkgY29uc3QgeyByZXR1cm4gRmxvYXRTaXplKDEwMCwgMTAw
KTsgfTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eUNocm9tZUNsaWVudCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzRW1wdHlDaHJvbWVDbGllbnQo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0
dWFsIH5DaHJvbWVDbGllbnQoKSB7IH0KLSAgICB9OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJ
bWFnZT4gZ2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlKFJlbmRlclNuYXBzaG90dGVkUGx1
Z0luOjpCdXR0b25TaXplKSBjb25zdCB7IHJldHVybiAwOyB9CisKK3Byb3RlY3RlZDoKKyAgICB2
aXJ0dWFsIH5DaHJvbWVDbGllbnQoKSB7IH0KK307CiAKIH0KICNlbmRpZiAvLyBDaHJvbWVDbGll
bnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90
dGVkUGx1Z0luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbi5jcHAKaW5kZXggOTcyYjJiZjkwNDIyM2I1Yjc3NzVmMjQyOWRjMTYyODNhMGYxNjgx
NS4uNWU2MTZhNmViMDBmZmVhNzMxMjNhMDkzZDdlZTA1MjgzMmJlMGI1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCkBA
IC0yNiwxMiArMjYsMTUgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbi5oIgogCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hy
b21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ3Vyc29yLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJD
bGllbnQuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFkaWVudC5oIgog
I2luY2x1ZGUgIkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50
LmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhaW50SW5mby5oIgogI2luY2x1ZGUg
IlBhdGguaCIKIApAQCAtNDQsNiArNDcsNyBAQCBzdGF0aWMgY29uc3QgaW50IHN0YXJ0QnV0dG9u
UGFkZGluZyA9IDEwOwogUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OlJlbmRlclNuYXBzaG90dGVk
UGx1Z0luKEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqIGVsZW1lbnQpCiAgICAgOiBSZW5kZXJFbWJl
ZGRlZE9iamVjdChlbGVtZW50KQogICAgICwgbV9zbmFwc2hvdFJlc291cmNlKFJlbmRlckltYWdl
UmVzb3VyY2U6OmNyZWF0ZSgpKQorICAgICwgbV9idXR0b25UeXBlKE5vQnV0dG9uKQogICAgICwg
bV9pc01vdXNlSW5CdXR0b25SZWN0KGZhbHNlKQogewogICAgIG1fc25hcHNob3RSZXNvdXJjZS0+
aW5pdGlhbGl6ZSh0aGlzKTsKQEAgLTEyMiwzMyArMTI2LDM2IEBAIHZvaWQgUmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW46OnBhaW50UmVwbGFjZWRTbmFwc2hvdChQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QKICAgICBjb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UuZ2V0KCksIHN0eWxlKCktPmNvbG9y
U3BhY2UoKSwgYWxpZ25lZFJlY3QsIENvbXBvc2l0ZVNvdXJjZU92ZXIsIHNob3VsZFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uKCksIHVzZUxvd1F1YWxpdHlTY2FsaW5nKTsKIH0KIAotc3RhdGljIElt
YWdlKiBzdGFydEJ1dHRvbkltYWdlKCkKK0ltYWdlKiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6
c3RhcnRCdXR0b25JbWFnZShCdXR0b25TaXplIHNpemUpIGNvbnN0CiB7Ci0gICAgc3RhdGljIElt
YWdlKiBidXR0b25JbWFnZSA9IEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZSgic3RhcnRCdXR0
b24iKS5sZWFrUmVmKCk7Ci0gICAgcmV0dXJuIGJ1dHRvbkltYWdlOwotfQotCi1zdGF0aWMgSW1h
Z2UqIHN0YXJ0QnV0dG9uUHJlc3NlZEltYWdlKCkKLXsKLSAgICBzdGF0aWMgSW1hZ2UqIGJ1dHRv
bkltYWdlID0gSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKCJzdGFydEJ1dHRvblByZXNzZWQi
KS5sZWFrUmVmKCk7Ci0gICAgcmV0dXJuIGJ1dHRvbkltYWdlOworICAgIHN0YXRpYyBJbWFnZSog
YnV0dG9uSW1hZ2VzWzJdID0geyAwLCAwIH07CisgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWRJ
bWFnZXNbMl0gPSB7IGZhbHNlLCBmYWxzZSB9OworCisgICAgaW50IGFycmF5SW5kZXggPSBzdGF0
aWNfY2FzdDxpbnQ+KHNpemUpOworICAgIGlmIChidXR0b25JbWFnZXNbYXJyYXlJbmRleF0pCisg
ICAgICAgIHJldHVybiBidXR0b25JbWFnZXNbYXJyYXlJbmRleF07CisgICAgaWYgKGluaXRpYWxp
emVkSW1hZ2VzW2FycmF5SW5kZXhdKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmIChkb2N1
bWVudCgpLT5wYWdlKCkpIHsKKyAgICAgICAgYnV0dG9uSW1hZ2VzW2FycmF5SW5kZXhdID0gZG9j
dW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPmdlbmVyYXRlUGx1Z0luU3RhcnRC
dXR0b25JbWFnZShzaXplKS5sZWFrUmVmKCk7CisgICAgICAgIGluaXRpYWxpemVkSW1hZ2VzW2Fy
cmF5SW5kZXhdID0gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGJ1dHRvbkltYWdlc1thcnJheUlu
ZGV4XTsKIH0KIAogdm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRCdXR0b24oUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIHsKLSAg
ICBMYXlvdXRSZWN0IGNvbnRlbnRSZWN0ID0gY29udGVudEJveFJlY3QoKTsKLSAgICBpZiAoY29u
dGVudFJlY3QuaXNFbXB0eSgpKQorICAgIGlmIChjb250ZW50Qm94UmVjdCgpLmlzRW1wdHkoKSB8
fCBtX2J1dHRvblR5cGUgPT0gTm9CdXR0b24pCiAgICAgICAgIHJldHVybjsKIAotICAgIEltYWdl
KiBidXR0b25JbWFnZSA9IHN0YXJ0QnV0dG9uSW1hZ2UoKTsKLSAgICBpZiAocGx1Z0luSW1hZ2VF
bGVtZW50KCktPmFjdGl2ZSgpKSB7Ci0gICAgICAgIGlmIChtX2lzTW91c2VJbkJ1dHRvblJlY3Qp
Ci0gICAgICAgICAgICBidXR0b25JbWFnZSA9IHN0YXJ0QnV0dG9uUHJlc3NlZEltYWdlKCk7Ci0g
ICAgfSBlbHNlIGlmICghcGx1Z0luSW1hZ2VFbGVtZW50KCktPmhvdmVyZWQoKSkKLSAgICAgICAg
cmV0dXJuOworICAgIEltYWdlKiBidXR0b25JbWFnZSA9IDA7CisgICAgaWYgKHBsdWdJbkltYWdl
RWxlbWVudCgpLT5ob3ZlcmVkKCkpCisgICAgICAgIGJ1dHRvbkltYWdlID0gc3RhcnRCdXR0b25J
bWFnZShtX2J1dHRvblR5cGUpOwogCi0gICAgTGF5b3V0UG9pbnQgY29udGVudExvY2F0aW9uID0g
cGFpbnRPZmZzZXQgKyBjb250ZW50UmVjdC5tYXhYTWF4WUNvcm5lcigpIC0gYnV0dG9uSW1hZ2Ut
PnNpemUoKSAtIExheW91dFNpemUoc3RhcnRCdXR0b25QYWRkaW5nLCBzdGFydEJ1dHRvblBhZGRp
bmcpOwotICAgIHBhaW50SW5mby5jb250ZXh0LT5kcmF3SW1hZ2UoYnV0dG9uSW1hZ2UsIENvbG9y
U3BhY2VEZXZpY2VSR0IsIHJvdW5kZWRJbnRQb2ludChjb250ZW50TG9jYXRpb24pLCBidXR0b25J
bWFnZS0+cmVjdCgpKTsKKyAgICBpZiAoIWJ1dHRvbkltYWdlKQorICAgICAgICByZXR1cm47Cisg
ICAgcGFpbnRJbmZvLmNvbnRleHQtPmRyYXdJbWFnZShidXR0b25JbWFnZSwgQ29sb3JTcGFjZURl
dmljZVJHQiwgcm91bmRlZEludFBvaW50KHBhaW50T2Zmc2V0ICsgbV9idXR0b25SZWN0LmxvY2F0
aW9uKCkpLCBidXR0b25JbWFnZS0+cmVjdCgpKTsKIH0KIAogdm9pZCBSZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbjo6cmVwYWludEJ1dHRvbigpCkBAIC0xOTcsMTkgKzIwNCw0NSBAQCB2b2lkIFJlbmRl
clNuYXBzaG90dGVkUGx1Z0luOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQpCiAgICAgfQogfQog
CitMYXlvdXRSZWN0IFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp0cnlUb0ZpdFN0YXJ0QnV0dG9u
KEJ1dHRvblNpemUgc2l6ZSwgY29uc3QgTGF5b3V0UmVjdCYgY29udGVudEJveCkgY29uc3QKK3sK
KyAgICBJbWFnZSogYnV0dG9uSW1hZ2UgPSBzdGFydEJ1dHRvbkltYWdlKHNpemUpOworICAgIGlm
ICghYnV0dG9uSW1hZ2UpCisgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CisKKyAgICBMYXlv
dXRTaXplIGJ1dHRvblNpemUgPSBidXR0b25JbWFnZS0+c2l6ZSgpOworICAgIExheW91dFJlY3Qg
Y2FuZGlkYXRlUmVjdChjb250ZW50Qm94Lm1heFhNaW5ZQ29ybmVyKCkgKyBMYXlvdXRTaXplKC1z
dGFydEJ1dHRvblBhZGRpbmcsIHN0YXJ0QnV0dG9uUGFkZGluZykgKyBMYXlvdXRTaXplKC1idXR0
b25TaXplLndpZHRoKCksIDApLCBidXR0b25TaXplKTsKKyAgICAvLyBUaGUgbWluaW11bSBhbGxv
d2VkIGNvbnRlbnQgYm94IHNpemUgaXMgdGhlIGJ1dHRvbiBpbWFnZSBwbGFjZWQgaW4gdGhlIGNl
bnRlciBvZiB0aGUgYm94LCBzdXJyb3VuZGVkIGJ5IHN0YXJ0QnV0dG9uUGFkZGluZy4KKyAgICBp
ZiAoY2FuZGlkYXRlUmVjdC54KCkgPCBzdGFydEJ1dHRvblBhZGRpbmcgfHwgY2FuZGlkYXRlUmVj
dC5tYXhZKCkgPiBjb250ZW50Qm94LmhlaWdodCgpIC0gc3RhcnRCdXR0b25QYWRkaW5nKQorICAg
ICAgICByZXR1cm4gTGF5b3V0UmVjdCgpOworICAgIHJldHVybiBjYW5kaWRhdGVSZWN0OworfQor
CiB2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpsYXlvdXQoKQogewogICAgIFJlbmRlckVt
YmVkZGVkT2JqZWN0OjpsYXlvdXQoKTsKKworICAgIExheW91dFJlY3QgcmVjdCA9IGNvbnRlbnRC
b3hSZWN0KCk7CisgICAgaW50IHdpZHRoID0gcmVjdC53aWR0aCgpOworICAgIGludCBoZWlnaHQg
PSByZWN0LmhlaWdodCgpOwogICAgIGlmIChwbHVnSW5JbWFnZUVsZW1lbnQoKS0+ZGlzcGxheVN0
YXRlKCkgPCBIVE1MUGx1Z0luRWxlbWVudDo6UGxheWluZykgewotICAgICAgICBMYXlvdXRSZWN0
IHJlY3QgPSBjb250ZW50Qm94UmVjdCgpOwotICAgICAgICBpbnQgd2lkdGggPSByZWN0LndpZHRo
KCk7Ci0gICAgICAgIGludCBoZWlnaHQgPSByZWN0LmhlaWdodCgpOwogICAgICAgICBpZiAoIXdp
ZHRoIHx8ICFoZWlnaHQgfHwgKHdpZHRoIDw9IGF1dG9TdGFydFBsdWdJblNpemVUaHJlc2hvbGRX
aWR0aCAmJiBoZWlnaHQgPD0gYXV0b1N0YXJ0UGx1Z0luU2l6ZVRocmVzaG9sZEhlaWdodCkpCiAg
ICAgICAgICAgICBwbHVnSW5JbWFnZUVsZW1lbnQoKS0+c2V0RGlzcGxheVN0YXRlKEhUTUxQbHVn
SW5FbGVtZW50OjpQbGF5aW5nKTsKICAgICB9CiAKLSAgICBMYXlvdXRTaXplIGJ1dHRvblNpemUg
PSBzdGFydEJ1dHRvbkltYWdlKCktPnNpemUoKTsKLSAgICBtX2J1dHRvblJlY3QgPSBMYXlvdXRS
ZWN0KGNvbnRlbnRCb3hSZWN0KCkubWF4WE1heFlDb3JuZXIoKSAtIExheW91dFNpemUoc3RhcnRC
dXR0b25QYWRkaW5nLCBzdGFydEJ1dHRvblBhZGRpbmcpIC0gYnV0dG9uU2l6ZSwgYnV0dG9uU2l6
ZSk7CisgICAgbV9idXR0b25SZWN0ID0gdHJ5VG9GaXRTdGFydEJ1dHRvbihCdXR0b25TaXplTGFy
Z2UsIHJlY3QpOworICAgIGlmICghbV9idXR0b25SZWN0LmlzRW1wdHkoKSkgeworICAgICAgICBt
X2J1dHRvblR5cGUgPSBCdXR0b25TaXplTGFyZ2U7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBtX2J1dHRvblJlY3QgPSB0cnlUb0ZpdFN0YXJ0QnV0dG9uKEJ1dHRvblNpemVTbWFsbCwg
cmVjdCk7CisgICAgaWYgKCFtX2J1dHRvblJlY3QuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fYnV0
dG9uVHlwZSA9IEJ1dHRvblNpemVTbWFsbDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IG1fYnV0dG9uVHlwZSA9IE5vQnV0dG9uOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVn
SW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5o
CmluZGV4IDJhMWY4OTZjNzQ0YzE3M2E4Mzc4ZmQxZjQ3ZTExNDJlNzY5ZmZkZjcuLjA4MWE0YTdi
NGI3MGE3M2IwZTE5NWZjZWZlYjYyM2I4MmU0NzNkYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCkBAIC0yOSw3ICsyOSw2IEBA
CiAjaW5jbHVkZSAiUmVuZGVyRW1iZWRkZWRPYmplY3QuaCIKIAogI2luY2x1ZGUgIlJlbmRlcklt
YWdlUmVzb3VyY2UuaCIKLSNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTQwLDYgKzM5LDEyIEBAIHB1YmxpYzoKICAgICBSZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Kik7CiAgICAgdmlydHVhbCB+UmVuZGVyU25h
cHNob3R0ZWRQbHVnSW4oKTsKIAorICAgIGVudW0gQnV0dG9uU2l6ZSB7CisgICAgICAgIEJ1dHRv
blNpemVTbWFsbCwKKyAgICAgICAgQnV0dG9uU2l6ZUxhcmdlLAorICAgICAgICBOb0J1dHRvbiwK
KyAgICB9OworCiAgICAgdm9pZCB1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPik7CiAK
ICAgICB2b2lkIGhhbmRsZUV2ZW50KEV2ZW50Kik7CkBAIC01Nyw5ICs2MiwxMyBAQCBwcml2YXRl
OgogICAgIHZvaWQgcGFpbnRCdXR0b24oUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsK
ICAgICB2b2lkIHJlcGFpbnRCdXR0b24oKTsKIAorICAgIExheW91dFJlY3QgdHJ5VG9GaXRTdGFy
dEJ1dHRvbihCdXR0b25TaXplLCBjb25zdCBMYXlvdXRSZWN0JiBjb250ZW50Qm94KSBjb25zdDsK
KyAgICBJbWFnZSogc3RhcnRCdXR0b25JbWFnZShCdXR0b25TaXplKSBjb25zdDsKKwogICAgIHZp
cnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERTsKIAogICAgIE93blB0cjxSZW5kZXJJbWFnZVJl
c291cmNlPiBtX3NuYXBzaG90UmVzb3VyY2U7CisgICAgQnV0dG9uU2l6ZSBtX2J1dHRvblR5cGU7
CiAgICAgTGF5b3V0UmVjdCBtX2J1dHRvblJlY3Q7CiAgICAgYm9vbCBtX2lzTW91c2VJbkJ1dHRv
blJlY3Q7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL2NnL1dL
SW1hZ2VDRy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvY2cvV0tJbWFnZUNHLmNw
cAppbmRleCA5MzgwNDliNzFiOWUwNzI4MTQwNzkyMmM3NDMxMmUyN2EwM2U5MDJkLi4xMDcxZWY1
OTJiODY2NWZmYjgwNjJmZGJkOGY4MmUwMjk5ZTA3ZTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvY2cvV0tJbWFnZUNHLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvY2cvV0tJbWFnZUNHLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg
IlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIldLU2hhcmVkQVBJQ2FzdC5oIgogI2luY2x1
ZGUgIldlYkltYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Db2xvclNwYWNlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
QEAgLTU0LDYgKzU1LDggQEAgV0tJbWFnZVJlZiBXS0ltYWdlQ3JlYXRlRnJvbUNHSW1hZ2UoQ0dJ
bWFnZVJlZiBpbWFnZVJlZiwgV0tJbWFnZU9wdGlvbnMgb3B0aW9ucykKICAgICAgICAgcmV0dXJu
IDA7CiAKICAgICBPd25QdHI8R3JhcGhpY3NDb250ZXh0PiBncmFwaGljc0NvbnRleHQgPSB3ZWJJ
bWFnZS0+Yml0bWFwKCktPmNyZWF0ZUdyYXBoaWNzQ29udGV4dCgpOwotICAgIENHQ29udGV4dERy
YXdJbWFnZShncmFwaGljc0NvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLCBDR1JlY3RNYWtlKDAs
IDAsIGltYWdlU2l6ZS53aWR0aCgpLCBpbWFnZVNpemUuaGVpZ2h0KCkpLCBpbWFnZVJlZik7Cisg
ICAgRmxvYXRSZWN0IHJlY3QoRmxvYXRQb2ludCgwLCAwKSwgaW1hZ2VTaXplKTsKKyAgICBncmFw
aGljc0NvbnRleHQtPmNsZWFyUmVjdChyZWN0KTsKKyAgICBncmFwaGljc0NvbnRleHQtPmRyYXdO
YXRpdmVJbWFnZShpbWFnZVJlZiwgaW1hZ2VTaXplLCBXZWJDb3JlOjpDb2xvclNwYWNlRGV2aWNl
UkdCLCByZWN0LCByZWN0KTsKICAgICByZXR1cm4gdG9BUEkod2ViSW1hZ2UucmVsZWFzZSgpLmxl
YWtSZWYoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAppbmRleCBjMmIzNzg5NGE2ZjE2
MGE1N2Q5YjIyNzQxMDQ5YTJkYzQ3NTEyNTYwLi5iNjFjZjdiNjM1YzViZWU0YzQ0MWRiZTNiZGU3
YjVmZmEwYzA4MjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKQEAgLTIyNSw3ICsyMjUs
MTMgQEAgZW51bSB7CiAgICAgV0tCdW5kbGVQYWdlVUlFbGVtZW50SGlkZGVuCiB9OwogdHlwZWRl
ZiB1aW50MzJfdCBXS0J1bmRsZVBhZ2VVSUVsZW1lbnRWaXNpYmlsaXR5OwotICAgIAorCitlbnVt
IHsKKyAgICBXS0J1bmRsZVBhZ2VCdXR0b25TaXplU21hbGwsCisgICAgV0tCdW5kbGVQYWdlQnV0
dG9uU2l6ZUxhcmdlLAorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tCdW5kbGVQYWdlQnV0dG9uU2l6
ZTsKKwogLy8gVUkgQ2xpZW50CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VXaWxsQWRkTWVz
c2FnZVRvQ29uc29sZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYg
bWVzc2FnZSwgdWludDMyX3QgbGluZU51bWJlciwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0
eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VXaWxsU2V0U3RhdHVzYmFyVGV4dENhbGxiYWNrKShX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgc3RhdHVzYmFyVGV4dCwgY29uc3Qgdm9p
ZCAqY2xpZW50SW5mbyk7CkBAIC0yNDIsNiArMjQ4LDcgQEAgdHlwZWRlZiBXS0J1bmRsZVBhZ2VV
SUVsZW1lbnRWaXNpYmlsaXR5ICgqV0tCdW5kbGVQYWdlTWVudUJhcklzVmlzaWJsZUNhbGxiYWNr
KSgKIHR5cGVkZWYgV0tCdW5kbGVQYWdlVUlFbGVtZW50VmlzaWJpbGl0eSAoKldLQnVuZGxlUGFn
ZVRvb2xiYXJzQXJlVmlzaWJsZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgY29uc3Qg
dm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VSZWFjaGVkQXBw
Q2FjaGVPcmlnaW5RdW90YUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTZWN1cml0
eU9yaWdpblJlZiBvcmlnaW4sIGludDY0X3QgdG90YWxCeXRlc05lZWRlZCwgY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbyk7CiB0eXBlZGVmIHVpbnQ2NF90ICgqV0tCdW5kbGVQYWdlRXhjZWVkZWREYXRh
YmFzZVF1b3RhQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2lu
UmVmIG9yaWdpbiwgV0tTdHJpbmdSZWYgZGF0YWJhc2VOYW1lLCBXS1N0cmluZ1JlZiBkYXRhYmFz
ZURpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGFCeXRlcywgdWludDY0X3QgY3VycmVu
dE9yaWdpblVzYWdlQnl0ZXMsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlQnl0ZXMsIHVp
bnQ2NF90IGV4cGVjdGVkVXNhZ2VCeXRlcywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0eXBl
ZGVmIFdLSW1hZ2VSZWYgKCpXS0J1bmRsZVBhZ2VHZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1h
Z2VDYWxsYmFjaykoV0tCdW5kbGVQYWdlQnV0dG9uU2l6ZSBzaXplLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKTsKIAogc3RydWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50IHsKICAgICBpbnQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZlcnNpb247CkBAIC0yNjYsNyArMjczLDcgQEAgc3RydWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50
IHsKIAogICAgIC8vIFZlcnNpb24gMi4KICAgICBXS0J1bmRsZVBhZ2VFeGNlZWRlZERhdGFiYXNl
UXVvdGFDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZEV4Y2VlZERhdGFiYXNl
UXVvdGE7Ci0KKyAgICBXS0J1bmRsZVBhZ2VHZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2VD
YWxsYmFjayAgICAgICAgICAgICAgICAgIGdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZTsK
IH07CiB0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VVSUNsaWVudCBXS0J1bmRsZVBhZ2VVSUNs
aWVudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcAppbmRl
eCA2MmFhMmIzMTg5MmMwM2NhMDZlZDcwYjY0YjczN2U4MTBjYjJiZDU0Li5mMzZiMjY3ZDMwNzYz
YjViN2M3MWVlZDBmZDI0Y2M4YWE5YTY3YmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZVVJQ2xpZW50LmNwcApAQCAtMTYzLDQgKzE2MywyNCBAQCB1aW50NjRfdCBJbmplY3Rl
ZEJ1bmRsZVBhZ2VVSUNsaWVudDo6ZGlkRXhjZWVkRGF0YWJhc2VRdW90YShXZWJQYWdlKiBwYWdl
LCBXZWJTZQogICAgIHJldHVybiBtX2NsaWVudC5kaWRFeGNlZWREYXRhYmFzZVF1b3RhKHRvQVBJ
KHBhZ2UpLCB0b0FQSShvcmlnaW4pLCB0b0FQSShkYXRhYmFzZU5hbWUuaW1wbCgpKSwgdG9BUEko
ZGF0YWJhc2VEaXNwbGF5TmFtZS5pbXBsKCkpLCBjdXJyZW50UXVvdGFCeXRlcywgY3VycmVudE9y
aWdpblVzYWdlQnl0ZXMsIGN1cnJlbnREYXRhYmFzZVVzYWdlQnl0ZXMsIGV4cGVjdGVkVXNhZ2VC
eXRlcywgbV9jbGllbnQuY2xpZW50SW5mbyk7CiB9CiAKK1Bhc3NSZWZQdHI8V2ViSW1hZ2U+IElu
amVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50OjpnZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2Uo
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OkJ1dHRvblNpemUgc2l6ZSkgY29uc3QKK3sKKyAgICBp
ZiAoIW1fY2xpZW50LmdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZSkKKyAgICAgICAgcmV0
dXJuIDA7CisKKyAgICBXS0J1bmRsZVBhZ2VCdXR0b25TaXplIHdrU2l6ZTsKKyAgICBzd2l0Y2gg
KHNpemUpIHsKKyAgICBjYXNlIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpCdXR0b25TaXplU21h
bGw6CisgICAgICAgIHdrU2l6ZSA9IFdLQnVuZGxlUGFnZUJ1dHRvblNpemVTbWFsbDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6QnV0dG9uU2l6ZUxh
cmdlOgorICAgICAgICB3a1NpemUgPSBXS0J1bmRsZVBhZ2VCdXR0b25TaXplTGFyZ2U7CisgICAg
ICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAg
IHJldHVybiBhZG9wdFJlZih0b0ltcGwobV9jbGllbnQuZ2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRv
bkltYWdlKHdrU2l6ZSwgbV9jbGllbnQuY2xpZW50SW5mbykpKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKaW5kZXgg
MTNjODljNjdkZDJiY2UxNmE3ODRkODYxZDU5MGMzMzhlNzkzYTk0NC4uZjFmMjg0MTIwOWUwYmI4
YmJmMjI3MmE3ZDc3NGY3N2JhMDdkYmNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlVUlDbGllbnQuaApAQCAtMjksMTIgKzI5LDE0IEBACiAjaW5jbHVkZSAiQVBJQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiV0tCdW5kbGVQYWdlLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNs
dWRlICJXZWJJbWFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyU25hcHNob3R0ZWRQbHVn
SW4uaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0g
ICAgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwotICAgIGNsYXNzIEhpdFRlc3RSZXN1bHQ7Ci0gICAg
Y2xhc3MgSW50UmVjdDsKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDsKK2NsYXNzIEhpdFRlc3RSZXN1
bHQ7CitjbGFzcyBJbnRSZWN0OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTY4LDYgKzcw
LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRSZWFjaEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5R
dW90YShXZWJQYWdlKiwgV2ViU2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsQnl0ZXNOZWVk
ZWQpOwogICAgIHVpbnQ2NF90IGRpZEV4Y2VlZERhdGFiYXNlUXVvdGEoV2ViUGFnZSosIFdlYlNl
Y3VyaXR5T3JpZ2luKiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYg
ZGF0YWJhc2VEaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhQnl0ZXMsIHVpbnQ2NF90
IGN1cnJlbnRPcmlnaW5Vc2FnZUJ5dGVzLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZUJ5
dGVzLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlQnl0ZXMpOworCisgICAgUGFzc1JlZlB0cjxXZWJJ
bWFnZT4gZ2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlKFdlYkNvcmU6OlJlbmRlclNuYXBz
aG90dGVkUGx1Z0luOjpCdXR0b25TaXplKSBjb25zdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDA5N2FiZThjYWFkNTFjNTMzYWVkYjRj
OTMyODI1MDI1NTUxYzk4MTAuLjdkODY0MWQ4NjM0Yzk5ZmI1MzZlZjk3NTU3YWQ3MDc5ODNmOTVl
YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRl
ICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJJbWFnZS5oIgogI2luY2x1
ZGUgIldlYk9wZW5QYW5lbFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKQEAgLTgxOCw0ICs4MTksOSBAQCB2
b2lkIFdlYkNocm9tZUNsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmCiAgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZURpYWdub3N0
aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2UobV9wYWdlLCBtZXNzYWdlLCBk
ZXNjcmlwdGlvbiwgc3VjY2Vzcyk7CiB9CiAKK1Bhc3NSZWZQdHI8SW1hZ2U+IFdlYkNocm9tZUNs
aWVudDo6Z2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlKFJlbmRlclNuYXBzaG90dGVkUGx1
Z0luOjpCdXR0b25TaXplIHNpemUpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS0+aW5qZWN0
ZWRCdW5kbGVVSUNsaWVudCgpLmdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZShzaXplKS0+
Yml0bWFwKCktPmNyZWF0ZUltYWdlKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKaW5kZXggMWU2MmY3YWJkNGNjMmJiODUyOWU1MGY3NzEwZjcyZDYwOGUw
MWM2My4uZjgwMWE0YmM3ZTU3ZWZmNzYzMGRiYTZjYjBhZDdlMDE2Y2Y1NmU2YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjZGVmaW5lIFdlYkNocm9tZUNsaWVudF9o
CiAKICNpbmNsdWRlIDxXZWJDb3JlL0Nocm9tZUNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
SW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTIyNSw2ICsyMjYsOCBAQCBwcml2YXRlOgog
CiAgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiBzdWNjZXNzKSBP
VkVSUklERTsKIAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJbWFnZT4gZ2VuZXJh
dGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0lu
OjpCdXR0b25TaXplKSBjb25zdCBPVkVSUklERTsKKwogICAgIFN0cmluZyBtX2NhY2hlZFRvb2xU
aXA7CiAgICAgbXV0YWJsZSBSZWZQdHI8V2ViRnJhbWU+IG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0
RnJhbWU7CiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNj
cm9sbGJhcjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCAzZjQwMmM3ZjAyMjhkYjdmODcwNTI1NzZmNTAxYzhiNWY3NjE3ZjQ0Li5iZjFhZDg0ZGU3
OTE4Njg1Y2JiMzBiNjg0M2I1NzdjNDdkMGRlMWE0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTItMDcgIEpv
biBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIE1vdmUgYnV0dG9uIGlt
YWdlIHRvIGluamVjdGVkIGJ1bmRsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA0MTA3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjgxMzg0Mj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAg
ICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UpOiBVcGRhdGUg
dGhlIGJ1bmRsZSBwYWdlIFVJIGNsaWVudC4KKwogMjAxMi0xMi0wNyAgR3dhbmcgWW9vbiBId2Fu
ZyAgPHJ5dW1pZWxAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgW1F0XSBBZGp1c3QgbGlicmFy
eSBuYW1lIGluIGxheW91dF90ZXN0cy9wb3J0L3F0LnB5IGFmdGVyIFF0NS1yNDAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlLmNwcAppbmRleCAxZDU3OTFjOWM2NDM4MzQ3YzA1ZGI1Njc2NDI1ZGZlOWE1ZDI5
MWFlLi4wYjgxOThjMzIxNmViYjc3Mjg2ZjMwOGRmZjY2ZDQ5ZTc4NTUyYzRjIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2UuY3BwCkBAIC0zNzYsNiArMzc2LDcgQEAgSW5qZWN0ZWRCdW5kbGVQYWdlOjpJ
bmplY3RlZEJ1bmRsZVBhZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiAgICAgICAgIDAsIC8qdG9v
bGJhcnNBcmVWaXNpYmxlKi8KICAgICAgICAgZGlkUmVhY2hBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEsCiAgICAgICAgIGRpZEV4Y2VlZERhdGFiYXNlUXVvdGEsCisgICAgICAgIDAsIC8qZ2Vu
ZXJhdGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlKi8KICAgICB9OwogICAgIFdLQnVuZGxlUGFnZVNl
dFVJQ2xpZW50KG1fcGFnZSwgJnVpQ2xpZW50KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178226</attachid>
            <date>2012-12-07 09:21:03 -0800</date>
            <delta_ts>2012-12-07 09:32:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104107-20121207091827.patch</filename>
            <type>text/plain</type>
            <size>26804</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY0YmMxOTE2M2Q1YjA5
ZGUxNjFjMDgxY2I2NDQyOTE4MWUyNzMyZC4uMGIwYzIyOWRkZjEwMTkxZjYzMjMxNGJiMjE4MThj
YmQ5OGFhNDllOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQwIEBACiAyMDEyLTEyLTA3ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAorICAgICAgICBbV0syXSBNb3ZlIGJ1dHRvbiBpbWFn
ZSB0byBpbmplY3RlZCBidW5kbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNDEwNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTI4MTM4NDI+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIFJl
bmRlclNuYXBzaG90dGVkUGx1Z0luIHRvIHJldHJpZXZlIHRoZSBzdGFydCBidXR0b24gaW1hZ2Ug
ZnJvbSB0aGUgQ2hyb21lQ2xpZW50LiBFeHBhbmQgdGhlCisgICAgICAgIGtpbmRzIG9mIGltYWdl
cyBhdmFpbGFibGUgZm9yIHVzZSBhcyB0aGUgYnV0dG9uLiBUcnkgdG8gZmluZCB0aGUgYmVzdCBz
aXplZCBidXR0b24gdG8gdXNlIGZvciB0aGUgcGx1Zy1pbiwKKyAgICAgICAgb3RoZXJ3aXNlIHVz
ZSBubyBpbWFnZSBhdCBhbGwuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4uY3BwOiBLZWVwIHRyYWNrIG9mIHRoZSBkZXNpcmVkIGJ1dHRvbiB0byB1c2UgZm9y
IHRoaXMgcmVuZGVyZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bjo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4pOiBTdGFydCBvZmYgd2l0aCBubyBidXR0b24uIER1
cmluZyBsYXlvdXQgd2Ugd2lsbAorICAgICAgICBkZXRlcm1pbmUgd2hpY2ggYnV0dG9uIHRvIHVz
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpzdGFydEJ1dHRv
bkltYWdlKTogTWFpbnRhaW4gYSBjYWNoZSBvZiB0aGUgaW1hZ2VzIGZvciByZXVzZS4gSW5kZXgg
aW50byB0aGUKKyAgICAgICAgYXJyYXkgdXNpbmcgdGhlIGVudW0uIElmIHRoZSBpbWFnZSBoYXMg
YmVlbiBsb2FkZWQsIG9yIGFuIGF0dGVtcHQgd2FzIG1hZGUsIHRoZW4gcmV0dXJuIHRoZSByZXN1
bHQuIE90aGVyd2lzZQorICAgICAgICBhc2sgdGhlIGNocm9tZSBjbGllbnQgdG8gZ2VuZXJhdGUg
dGhlIGltYWdlLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBh
aW50QnV0dG9uKTogUmVmYWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbjo6dHJ5VG9GaXRTdGFydEJ1dHRvbik6IENvbXBhcmUgdGhlIGJ1dHRvbiBzaXplIHdp
dGggdGhlIHByb3ZpZGVkIGNvbnRlbnQKKyAgICAgICAgYm94LiBSZXR1cm4gYSBMYXlvdXRSZWN0
IHJlcHJlc2VudGluZyB0aGUgYnV0dG9uJ3MgcGxhY2VtZW50LiBJZiBpdCBkb2Vzbid0IGZpdCwg
cmV0dXJuIGFuIGVtcHR5IHJlY3QuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbjo6bGF5b3V0KTogVHJ5IHRvIGZpdCB0aGUgbGFyZ2UgYnV0dG9uLCB0aGVuIHRoZSBz
bWFsbC4gSWYgYm90aCBmYWlsLCBkb24ndAorICAgICAgICBkcmF3IGEgYnV0dG9uLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oOiBBZGQgYW4gZW51bXMgcmVw
cmVzZW50aW5nIHRoZSBzaXplIHRvIHVzZS4KKworICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50
Lmg6IEFkZGVkIGdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZS4gQWxzbywgZml4IFdlYktp
dCBzdHlsZSBlcnJvcnMsIGluY2x1ZGluZyBpbmRlbnRhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudDo6Z2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlKToKKworICAgICAg
ICAqIFdlYkNvcmUuZXhwLmluOiBFeHBvc2UgR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1h
Z2UoKSBmb3IgV0tJbWFnZUNHLmNwcC4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6IFJlbW92ZSBzdGFydCBidXR0b24gYXNzZXRzLgorICAgICAgICAqIFJlc291
cmNlcy9zdGFydEJ1dHRvbi5wbmc6IFJlbW92ZWQuCisgICAgICAgICogUmVzb3VyY2VzL3N0YXJ0
QnV0dG9uQDJ4LnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBSZXNvdXJjZXMvc3RhcnRCdXR0b25Q
cmVzc2VkLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBSZXNvdXJjZXMvc3RhcnRCdXR0b25QcmVz
c2VkQDJ4LnBuZzogUmVtb3ZlZC4KKworMjAxMi0xMi0wNyAgSm9uIExlZSAgPGpvbmxlZUBhcHBs
ZS5jb20+CisKICAgICAgICAgQnVpbGQgZml4LgogCiAgICAgICAgICogcGx1Z2lucy9QbHVnSW5P
cmlnaW5IYXNoLmNwcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxZjMzODBiZGFiYTZiMWY3ZDc2M2Q3NzUzNTVj
OTNhYWUyOWQyNjI5Li4zN2VkNDA2ZGI2NDdhMjU3NTg2NDM5ZmQ1MTJjYzZhODc0YmUwMGQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMTItMDcgIEpvbiBMZWUgIDxqb25sZWVA
YXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIE1vdmUgYnV0dG9uIGltYWdlIHRvIGluamVjdGVk
IGJ1bmRsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA0MTA3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjgxMzg0Mj4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWx5IG9uIHRoZSBpbmplY3RlZCBi
dW5kbGUgdG8gY3JlYXRlIHRoZSBpbWFnZSB1c2VkIGZvciB0aGUgYnV0dG9uIGluIHNuYXBzaG90
dGVkIHBsdWctaW5zLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmdlbmVy
YXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZSk6IEZvcndhcmQgdGhlIGNhbGwgdG8gdGhlIGluamVj
dGVkIGJ1bmRsZSBVSSBjbGllbnQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaDogSW1wbGVtZW50IGdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25J
bWFnZSgpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VVSUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFn
ZVVJQ2xpZW50OjpnZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2UpOiBDb252ZXJ0IHRoZSBX
ZWJDb3JlIGVudW1zIHRvIFdLIEFQSQorICAgICAgICBlbnVtcy4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50Lmg6CisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oOiBFeHBv
c2UgYSBuZXcgY2FsbGJhY2sgdG8gZ2VuZXJhdGUgdGhlIGJ1dHRvbiBpbWFnZS4KKworICAgICAg
ICAqIFNoYXJlZC9BUEkvYy9jZy9XS0ltYWdlQ0cuY3BwOgorICAgICAgICAoV0tJbWFnZUNyZWF0
ZUZyb21DR0ltYWdlKTogUmVmYWN0b3IgdG8gdXNlIEdyYXBoaWNzQ29udGV4dCBtZXRob2RzIHNv
IHRoYXQgdGhlIGltYWdlIGlzIGZsaXBwZWQgYXBwcm9wcmlhdGVseS4KKwogMjAxMi0xMi0wNiAg
UmljayBCeWVycyAgPHJieWVyc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ1NTIGN1cnNvciBw
cm9wZXJ0eSBzaG91bGQgc3VwcG9ydCB3ZWJraXQtaW1hZ2Utc2V0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CmluZGV4IDVhNDVkNWRlMDVlMmQ2MTE3ZTY4MzExMWQzMjI0NDgzZTU1NzRhYWUuLjBlMDZlZTM3
NWViYWRlYmI2MWJmNzA1MjY3NDViYjljYjBiODliOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBA
IC0xNjM3LDYgKzE2MzcsNyBAQCBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjltb3VzZURvd25F
UDdOU0V2ZW50CiBfX1pON1dlYkNvcmUxMlBvcHVwTWVudU1hY0MxRVBOU18xNVBvcHVwTWVudUNs
aWVudEUKIF9fWk43V2ViQ29yZTEzdG9EZXZpY2VTcGFjZUVSS05TXzlGbG9hdFJlY3RFUDhOU1dp
bmRvdwogX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHRDMUVQOUNHQ29udGV4dAorX19aTjdX
ZWJDb3JlMTVHcmFwaGljc0NvbnRleHQxNWRyYXdOYXRpdmVJbWFnZUVQN0NHSW1hZ2VSS05TXzlG
bG9hdFNpemVFTlNfMTBDb2xvclNwYWNlRVJLTlNfOUZsb2F0UmVjdEVTOV9OU18xN0NvbXBvc2l0
ZU9wZXJhdG9yRU5TXzE2SW1hZ2VPcmllbnRhdGlvbkUKIF9fWk43V2ViQ29yZTE2Rm9udFBsYXRm
b3JtRGF0YUMxRVA2TlNGb250ZmJiYk5TXzE1Rm9udE9yaWVudGF0aW9uRU5TXzE2Rm9udFdpZHRo
VmFyaWFudEUKIF9fWk43V2ViQ29yZTE2Rm9udFBsYXRmb3JtRGF0YUMyRVA2TlNGb250ZmJiYk5T
XzE1Rm9udE9yaWVudGF0aW9uRU5TXzE2Rm9udFdpZHRoVmFyaWFudEUKIF9fWk43V2ViQ29yZTE2
Y29sb3JGcm9tTlNDb2xvckVQN05TQ29sb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3ZTZiNjZkNWVmMWM0MzllNzExMjdlYzEz
NzAyN2FlMzE0YWU1NjY1Li4wY2E2ODkxNWIwOTczYjZkODIwODUzYzIyNjQ1MGQ2YTVmYTUwODk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC05MzEsMTAgKzkzMSw2IEBACiAJCTMxOUU2OUI1MTMyOTlCQkQwMDRBQzkxQSAvKiBX
ZWJLaXRBbmltYXRpb25MaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxOUU2OUFGMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25M
aXN0LmNwcCAqLzsgfTsKIAkJMzE5RTY5QjYxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1h
dGlvbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxOUU2OUIwMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmggKi87IH07
CiAJCTMxOUZCRDVGMTVEMkY0NjQwMDk2NDBBNiAvKiBDYWNoZWRJbWFnZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5RkJENUQxNUQyRjQ0
NDAwOTY0MEE2IC8qIENhY2hlZEltYWdlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMzFBOTYzQTUxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0
YXJ0QnV0dG9uLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzFBOTYzQTExNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uLnBuZyAqLzsgfTsK
LQkJMzFBOTYzQTYxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uQDJ4LnBuZyBpbiBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBOTYzQTIxNjU1RDQy
NjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uQDJ4LnBuZyAqLzsgfTsKLQkJMzFBOTYzQTcxNjU1RDQy
NjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZC5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTk2M0EzMTY1NUQ0MjYwMDBENDY0NSAvKiBz
dGFydEJ1dHRvblByZXNzZWQucG5nICovOyB9OwotCQkzMUE5NjNBODE2NTVENDI2MDAwRDQ2NDUg
Lyogc3RhcnRCdXR0b25QcmVzc2VkQDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBOTYzQTQxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0
dG9uUHJlc3NlZEAyeC5wbmcgKi87IH07CiAJCTMxQzBGRjIxMEU0Q0VCNkUwMDdENkZFNSAvKiBX
ZWJLaXRBbmltYXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMUMwRkYxQjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9u
RXZlbnQuY3BwICovOyB9OwogCQkzMUMwRkYyMjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5p
bWF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxQzBGRjFDMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oICov
OyB9OwogCQkzMUMwRkYyNDBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBG
RjFFMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwICovOyB9OwpA
QCAtODEyNywxMCArODEyMyw2IEBACiAJCTMxOUU2OUIwMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJL
aXRBbmltYXRpb25MaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktp
dEFuaW1hdGlvbkxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE5RTY5QjEx
MzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbkxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzMTlGQkQ1RDE1RDJGNDQ0MDA5NjQwQTYgLyogQ2FjaGVkSW1hZ2VDbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkSW1hZ2VDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFBOTYzQTExNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0
YXJ0QnV0dG9uLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9IHN0YXJ0QnV0dG9uLnBuZzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMzFBOTYzQTIxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uQDJ4
LnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGlt
YWdlLnBuZzsgcGF0aCA9ICJzdGFydEJ1dHRvbkAyeC5wbmciOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkzMUE5NjNBMzE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25QcmVzc2Vk
LnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGlt
YWdlLnBuZzsgcGF0aCA9IHN0YXJ0QnV0dG9uUHJlc3NlZC5wbmc7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTMxQTk2M0E0MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvblByZXNz
ZWRAMngucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gaW1hZ2UucG5nOyBwYXRoID0gInN0YXJ0QnV0dG9uUHJlc3NlZEAyeC5wbmciOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzMUMwRkYxQjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0
QW5pbWF0aW9uRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkz
MUMwRkYxQzBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0QW5pbWF0aW9uRXZlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFDMEZGMUQwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktp
dEFuaW1hdGlvbkV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRBbmltYXRp
b25FdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDUzNSwxMCArMTQ1
MjcsNiBAQAogCQkJCTg1MTM2Qzk0MEFFRDY2NTkwMEY5MEEzRCAvKiBzb3V0aEVhc3RSZXNpemVD
dXJzb3IucG5nICovLAogCQkJCTg1MTM2Qzk1MEFFRDY2NTkwMEY5MEEzRCAvKiBzb3V0aFJlc2l6
ZUN1cnNvci5wbmcgKi8sCiAJCQkJODUxMzZDOTYwQUVENjY1OTAwRjkwQTNEIC8qIHNvdXRoV2Vz
dFJlc2l6ZUN1cnNvci5wbmcgKi8sCi0JCQkJMzFBOTYzQTExNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0
YXJ0QnV0dG9uLnBuZyAqLywKLQkJCQkzMUE5NjNBMjE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRC
dXR0b25AMngucG5nICovLAotCQkJCTMxQTk2M0EzMTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1
dHRvblByZXNzZWQucG5nICovLAotCQkJCTMxQTk2M0E0MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFy
dEJ1dHRvblByZXNzZWRAMngucG5nICovLAogCQkJCTkzMTUzQkRCMTQxOTU5QkIwMEZDRjVCRSAv
KiB0ZXh0QXJlYVJlc2l6ZUNvcm5lci5wbmcgKi8sCiAJCQkJOTM3MDkxOEMxNDE2RDg2QjAwNDc3
MzMzIC8qIHRleHRBcmVhUmVzaXplQ29ybmVyQDJ4LnBuZyAqLywKIAkJCQk0NkQ0RjI0ODBBRjk3
RTgxMDAzNTM4NUEgLyogdmVydGljYWxUZXh0Q3Vyc29yLnBuZyAqLywKQEAgLTI2MDQ2LDEwICsy
NjAzNCw2IEBACiAJCQkJODUxMzZDQTgwQUVENjY1OTAwRjkwQTNEIC8qIHdlc3RSZXNpemVDdXJz
b3IucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQkxQUIxQUU3QTBDMDUxRkRFMDAxMzlGNEYgLyog
em9vbUluQ3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJMUFCMUFFN0IwQzA1MUZERTAw
MTM5RjRGIC8qIHpvb21PdXRDdXJzb3IucG5nIGluIFJlc291cmNlcyAqLywKLQkJCQkzMUE5NjNB
NTE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b24ucG5nIGluIFJlc291cmNlcyAqLywKLQkJ
CQkzMUE5NjNBNjE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25AMngucG5nIGluIFJlc291
cmNlcyAqLywKLQkJCQkzMUE5NjNBNzE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25QcmVz
c2VkLnBuZyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJMzFBOTYzQTgxNjU1RDQyNjAwMEQ0NjQ1IC8q
IHN0YXJ0QnV0dG9uUHJlc3NlZEAyeC5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmgKaW5kZXggMzVjMzIzMjhjMzQzYTBmNTY5MzI5NmQ3MDU3MTE3NzMwOGJh
YWIyOS4uZjY1MmJhOWNiMWNjMTM1MzYxMzRlMmY1MDBlNGVlYzk5MWQxNzdkNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiUG9wdXBN
ZW51LmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyRW1i
ZWRkZWRPYmplY3QuaCIKKyNpbmNsdWRlICJSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oIgogI2lu
Y2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCiAjaW5j
bHVkZSAiV2ViQ29yZUtleWJvYXJkVUlNb2RlLmgiCkBAIC0zNzIsNiArMzczLDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5Q2hyb21lQ2xpZW50
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
SW1hZ2U+IGdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZShSZW5kZXJTbmFwc2hvdHRlZFBs
dWdJbjo6QnV0dG9uU2l6ZSkgY29uc3QgeyByZXR1cm4gMDsgfQorCiAgICAgcHJvdGVjdGVkOgog
ICAgICAgICB2aXJ0dWFsIH5DaHJvbWVDbGllbnQoKSB7IH0KICAgICB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKaW5kZXgg
OTcyYjJiZjkwNDIyM2I1Yjc3NzVmMjQyOWRjMTYyODNhMGYxNjgxNS4uNWU2MTZhNmViMDBmZmVh
NzMxMjNhMDkzZDdlZTA1MjgzMmJlMGI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCkBAIC0yNiwxMiArMjYsMTUgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5o
IgogCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5j
bHVkZSAiQ3Vyc29yLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRl
ICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFkaWVudC5oIgogI2luY2x1ZGUgIkhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlBhaW50SW5mby5oIgogI2luY2x1ZGUgIlBhdGguaCIKIApAQCAtNDQs
NiArNDcsNyBAQCBzdGF0aWMgY29uc3QgaW50IHN0YXJ0QnV0dG9uUGFkZGluZyA9IDEwOwogUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW46OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luKEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQqIGVsZW1lbnQpCiAgICAgOiBSZW5kZXJFbWJlZGRlZE9iamVjdChlbGVtZW50
KQogICAgICwgbV9zbmFwc2hvdFJlc291cmNlKFJlbmRlckltYWdlUmVzb3VyY2U6OmNyZWF0ZSgp
KQorICAgICwgbV9idXR0b25UeXBlKE5vQnV0dG9uKQogICAgICwgbV9pc01vdXNlSW5CdXR0b25S
ZWN0KGZhbHNlKQogewogICAgIG1fc25hcHNob3RSZXNvdXJjZS0+aW5pdGlhbGl6ZSh0aGlzKTsK
QEAgLTEyMiwzMyArMTI2LDM2IEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50
UmVwbGFjZWRTbmFwc2hvdChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QKICAgICBjb250ZXh0
LT5kcmF3SW1hZ2UoaW1hZ2UuZ2V0KCksIHN0eWxlKCktPmNvbG9yU3BhY2UoKSwgYWxpZ25lZFJl
Y3QsIENvbXBvc2l0ZVNvdXJjZU92ZXIsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCks
IHVzZUxvd1F1YWxpdHlTY2FsaW5nKTsKIH0KIAotc3RhdGljIEltYWdlKiBzdGFydEJ1dHRvbklt
YWdlKCkKK0ltYWdlKiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6c3RhcnRCdXR0b25JbWFnZShC
dXR0b25TaXplIHNpemUpIGNvbnN0CiB7Ci0gICAgc3RhdGljIEltYWdlKiBidXR0b25JbWFnZSA9
IEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZSgic3RhcnRCdXR0b24iKS5sZWFrUmVmKCk7Ci0g
ICAgcmV0dXJuIGJ1dHRvbkltYWdlOwotfQotCi1zdGF0aWMgSW1hZ2UqIHN0YXJ0QnV0dG9uUHJl
c3NlZEltYWdlKCkKLXsKLSAgICBzdGF0aWMgSW1hZ2UqIGJ1dHRvbkltYWdlID0gSW1hZ2U6Omxv
YWRQbGF0Zm9ybVJlc291cmNlKCJzdGFydEJ1dHRvblByZXNzZWQiKS5sZWFrUmVmKCk7Ci0gICAg
cmV0dXJuIGJ1dHRvbkltYWdlOworICAgIHN0YXRpYyBJbWFnZSogYnV0dG9uSW1hZ2VzWzJdID0g
eyAwLCAwIH07CisgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWRJbWFnZXNbMl0gPSB7IGZhbHNl
LCBmYWxzZSB9OworCisgICAgaW50IGFycmF5SW5kZXggPSBzdGF0aWNfY2FzdDxpbnQ+KHNpemUp
OworICAgIGlmIChidXR0b25JbWFnZXNbYXJyYXlJbmRleF0pCisgICAgICAgIHJldHVybiBidXR0
b25JbWFnZXNbYXJyYXlJbmRleF07CisgICAgaWYgKGluaXRpYWxpemVkSW1hZ2VzW2FycmF5SW5k
ZXhdKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmIChkb2N1bWVudCgpLT5wYWdlKCkpIHsK
KyAgICAgICAgYnV0dG9uSW1hZ2VzW2FycmF5SW5kZXhdID0gZG9jdW1lbnQoKS0+cGFnZSgpLT5j
aHJvbWUoKS0+Y2xpZW50KCktPmdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZShzaXplKS5s
ZWFrUmVmKCk7CisgICAgICAgIGluaXRpYWxpemVkSW1hZ2VzW2FycmF5SW5kZXhdID0gdHJ1ZTsK
KyAgICB9CisgICAgcmV0dXJuIGJ1dHRvbkltYWdlc1thcnJheUluZGV4XTsKIH0KIAogdm9pZCBS
ZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRCdXR0b24oUGFpbnRJbmZvJiBwYWludEluZm8s
IGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIHsKLSAgICBMYXlvdXRSZWN0IGNvbnRl
bnRSZWN0ID0gY29udGVudEJveFJlY3QoKTsKLSAgICBpZiAoY29udGVudFJlY3QuaXNFbXB0eSgp
KQorICAgIGlmIChjb250ZW50Qm94UmVjdCgpLmlzRW1wdHkoKSB8fCBtX2J1dHRvblR5cGUgPT0g
Tm9CdXR0b24pCiAgICAgICAgIHJldHVybjsKIAotICAgIEltYWdlKiBidXR0b25JbWFnZSA9IHN0
YXJ0QnV0dG9uSW1hZ2UoKTsKLSAgICBpZiAocGx1Z0luSW1hZ2VFbGVtZW50KCktPmFjdGl2ZSgp
KSB7Ci0gICAgICAgIGlmIChtX2lzTW91c2VJbkJ1dHRvblJlY3QpCi0gICAgICAgICAgICBidXR0
b25JbWFnZSA9IHN0YXJ0QnV0dG9uUHJlc3NlZEltYWdlKCk7Ci0gICAgfSBlbHNlIGlmICghcGx1
Z0luSW1hZ2VFbGVtZW50KCktPmhvdmVyZWQoKSkKLSAgICAgICAgcmV0dXJuOworICAgIEltYWdl
KiBidXR0b25JbWFnZSA9IDA7CisgICAgaWYgKHBsdWdJbkltYWdlRWxlbWVudCgpLT5ob3ZlcmVk
KCkpCisgICAgICAgIGJ1dHRvbkltYWdlID0gc3RhcnRCdXR0b25JbWFnZShtX2J1dHRvblR5cGUp
OwogCi0gICAgTGF5b3V0UG9pbnQgY29udGVudExvY2F0aW9uID0gcGFpbnRPZmZzZXQgKyBjb250
ZW50UmVjdC5tYXhYTWF4WUNvcm5lcigpIC0gYnV0dG9uSW1hZ2UtPnNpemUoKSAtIExheW91dFNp
emUoc3RhcnRCdXR0b25QYWRkaW5nLCBzdGFydEJ1dHRvblBhZGRpbmcpOwotICAgIHBhaW50SW5m
by5jb250ZXh0LT5kcmF3SW1hZ2UoYnV0dG9uSW1hZ2UsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHJv
dW5kZWRJbnRQb2ludChjb250ZW50TG9jYXRpb24pLCBidXR0b25JbWFnZS0+cmVjdCgpKTsKKyAg
ICBpZiAoIWJ1dHRvbkltYWdlKQorICAgICAgICByZXR1cm47CisgICAgcGFpbnRJbmZvLmNvbnRl
eHQtPmRyYXdJbWFnZShidXR0b25JbWFnZSwgQ29sb3JTcGFjZURldmljZVJHQiwgcm91bmRlZElu
dFBvaW50KHBhaW50T2Zmc2V0ICsgbV9idXR0b25SZWN0LmxvY2F0aW9uKCkpLCBidXR0b25JbWFn
ZS0+cmVjdCgpKTsKIH0KIAogdm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6cmVwYWludEJ1
dHRvbigpCkBAIC0xOTcsMTkgKzIwNCw0NSBAQCB2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0lu
OjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQpCiAgICAgfQogfQogCitMYXlvdXRSZWN0IFJlbmRl
clNuYXBzaG90dGVkUGx1Z0luOjp0cnlUb0ZpdFN0YXJ0QnV0dG9uKEJ1dHRvblNpemUgc2l6ZSwg
Y29uc3QgTGF5b3V0UmVjdCYgY29udGVudEJveCkgY29uc3QKK3sKKyAgICBJbWFnZSogYnV0dG9u
SW1hZ2UgPSBzdGFydEJ1dHRvbkltYWdlKHNpemUpOworICAgIGlmICghYnV0dG9uSW1hZ2UpCisg
ICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CisKKyAgICBMYXlvdXRTaXplIGJ1dHRvblNpemUg
PSBidXR0b25JbWFnZS0+c2l6ZSgpOworICAgIExheW91dFJlY3QgY2FuZGlkYXRlUmVjdChjb250
ZW50Qm94Lm1heFhNaW5ZQ29ybmVyKCkgKyBMYXlvdXRTaXplKC1zdGFydEJ1dHRvblBhZGRpbmcs
IHN0YXJ0QnV0dG9uUGFkZGluZykgKyBMYXlvdXRTaXplKC1idXR0b25TaXplLndpZHRoKCksIDAp
LCBidXR0b25TaXplKTsKKyAgICAvLyBUaGUgbWluaW11bSBhbGxvd2VkIGNvbnRlbnQgYm94IHNp
emUgaXMgdGhlIGJ1dHRvbiBpbWFnZSBwbGFjZWQgaW4gdGhlIGNlbnRlciBvZiB0aGUgYm94LCBz
dXJyb3VuZGVkIGJ5IHN0YXJ0QnV0dG9uUGFkZGluZy4KKyAgICBpZiAoY2FuZGlkYXRlUmVjdC54
KCkgPCBzdGFydEJ1dHRvblBhZGRpbmcgfHwgY2FuZGlkYXRlUmVjdC5tYXhZKCkgPiBjb250ZW50
Qm94LmhlaWdodCgpIC0gc3RhcnRCdXR0b25QYWRkaW5nKQorICAgICAgICByZXR1cm4gTGF5b3V0
UmVjdCgpOworICAgIHJldHVybiBjYW5kaWRhdGVSZWN0OworfQorCiB2b2lkIFJlbmRlclNuYXBz
aG90dGVkUGx1Z0luOjpsYXlvdXQoKQogewogICAgIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpsYXlv
dXQoKTsKKworICAgIExheW91dFJlY3QgcmVjdCA9IGNvbnRlbnRCb3hSZWN0KCk7CisgICAgaW50
IHdpZHRoID0gcmVjdC53aWR0aCgpOworICAgIGludCBoZWlnaHQgPSByZWN0LmhlaWdodCgpOwog
ICAgIGlmIChwbHVnSW5JbWFnZUVsZW1lbnQoKS0+ZGlzcGxheVN0YXRlKCkgPCBIVE1MUGx1Z0lu
RWxlbWVudDo6UGxheWluZykgewotICAgICAgICBMYXlvdXRSZWN0IHJlY3QgPSBjb250ZW50Qm94
UmVjdCgpOwotICAgICAgICBpbnQgd2lkdGggPSByZWN0LndpZHRoKCk7Ci0gICAgICAgIGludCBo
ZWlnaHQgPSByZWN0LmhlaWdodCgpOwogICAgICAgICBpZiAoIXdpZHRoIHx8ICFoZWlnaHQgfHwg
KHdpZHRoIDw9IGF1dG9TdGFydFBsdWdJblNpemVUaHJlc2hvbGRXaWR0aCAmJiBoZWlnaHQgPD0g
YXV0b1N0YXJ0UGx1Z0luU2l6ZVRocmVzaG9sZEhlaWdodCkpCiAgICAgICAgICAgICBwbHVnSW5J
bWFnZUVsZW1lbnQoKS0+c2V0RGlzcGxheVN0YXRlKEhUTUxQbHVnSW5FbGVtZW50OjpQbGF5aW5n
KTsKICAgICB9CiAKLSAgICBMYXlvdXRTaXplIGJ1dHRvblNpemUgPSBzdGFydEJ1dHRvbkltYWdl
KCktPnNpemUoKTsKLSAgICBtX2J1dHRvblJlY3QgPSBMYXlvdXRSZWN0KGNvbnRlbnRCb3hSZWN0
KCkubWF4WE1heFlDb3JuZXIoKSAtIExheW91dFNpemUoc3RhcnRCdXR0b25QYWRkaW5nLCBzdGFy
dEJ1dHRvblBhZGRpbmcpIC0gYnV0dG9uU2l6ZSwgYnV0dG9uU2l6ZSk7CisgICAgbV9idXR0b25S
ZWN0ID0gdHJ5VG9GaXRTdGFydEJ1dHRvbihCdXR0b25TaXplTGFyZ2UsIHJlY3QpOworICAgIGlm
ICghbV9idXR0b25SZWN0LmlzRW1wdHkoKSkgeworICAgICAgICBtX2J1dHRvblR5cGUgPSBCdXR0
b25TaXplTGFyZ2U7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2J1dHRvblJlY3Qg
PSB0cnlUb0ZpdFN0YXJ0QnV0dG9uKEJ1dHRvblNpemVTbWFsbCwgcmVjdCk7CisgICAgaWYgKCFt
X2J1dHRvblJlY3QuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fYnV0dG9uVHlwZSA9IEJ1dHRvblNp
emVTbWFsbDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fYnV0dG9uVHlwZSA9IE5v
QnV0dG9uOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCmluZGV4IDJhMWY4OTZjNzQ0
YzE3M2E4Mzc4ZmQxZjQ3ZTExNDJlNzY5ZmZkZjcuLjA4MWE0YTdiNGI3MGE3M2IwZTE5NWZjZWZl
YjYyM2I4MmU0NzNkYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbi5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiUmVuZGVy
RW1iZWRkZWRPYmplY3QuaCIKIAogI2luY2x1ZGUgIlJlbmRlckltYWdlUmVzb3VyY2UuaCIKLSNp
bmNsdWRlICJSZW5kZXJUaGVtZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQwLDYg
KzM5LDEyIEBAIHB1YmxpYzoKICAgICBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbihIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50Kik7CiAgICAgdmlydHVhbCB+UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4oKTsK
IAorICAgIGVudW0gQnV0dG9uU2l6ZSB7CisgICAgICAgIEJ1dHRvblNpemVTbWFsbCwKKyAgICAg
ICAgQnV0dG9uU2l6ZUxhcmdlLAorICAgICAgICBOb0J1dHRvbiwKKyAgICB9OworCiAgICAgdm9p
ZCB1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPik7CiAKICAgICB2b2lkIGhhbmRsZUV2
ZW50KEV2ZW50Kik7CkBAIC01Nyw5ICs2MiwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRC
dXR0b24oUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKICAgICB2b2lkIHJlcGFpbnRC
dXR0b24oKTsKIAorICAgIExheW91dFJlY3QgdHJ5VG9GaXRTdGFydEJ1dHRvbihCdXR0b25TaXpl
LCBjb25zdCBMYXlvdXRSZWN0JiBjb250ZW50Qm94KSBjb25zdDsKKyAgICBJbWFnZSogc3RhcnRC
dXR0b25JbWFnZShCdXR0b25TaXplKSBjb25zdDsKKwogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQo
KSBPVkVSUklERTsKIAogICAgIE93blB0cjxSZW5kZXJJbWFnZVJlc291cmNlPiBtX3NuYXBzaG90
UmVzb3VyY2U7CisgICAgQnV0dG9uU2l6ZSBtX2J1dHRvblR5cGU7CiAgICAgTGF5b3V0UmVjdCBt
X2J1dHRvblJlY3Q7CiAgICAgYm9vbCBtX2lzTW91c2VJbkJ1dHRvblJlY3Q7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL2NnL1dLSW1hZ2VDRy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvY2cvV0tJbWFnZUNHLmNwcAppbmRleCA5MzgwNDliNzFi
OWUwNzI4MTQwNzkyMmM3NDMxMmUyN2EwM2U5MDJkLi4xMDcxZWY1OTJiODY2NWZmYjgwNjJmZGJk
OGY4MmUwMjk5ZTA3ZTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
Y2cvV0tJbWFnZUNHLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvY2cvV0tJ
bWFnZUNHLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5o
IgogI2luY2x1ZGUgIldLU2hhcmVkQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldlYkltYWdlLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9Db2xvclNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGlj
c0NvbnRleHQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTU0LDYgKzU1LDggQEAg
V0tJbWFnZVJlZiBXS0ltYWdlQ3JlYXRlRnJvbUNHSW1hZ2UoQ0dJbWFnZVJlZiBpbWFnZVJlZiwg
V0tJbWFnZU9wdGlvbnMgb3B0aW9ucykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBPd25QdHI8
R3JhcGhpY3NDb250ZXh0PiBncmFwaGljc0NvbnRleHQgPSB3ZWJJbWFnZS0+Yml0bWFwKCktPmNy
ZWF0ZUdyYXBoaWNzQ29udGV4dCgpOwotICAgIENHQ29udGV4dERyYXdJbWFnZShncmFwaGljc0Nv
bnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLCBDR1JlY3RNYWtlKDAsIDAsIGltYWdlU2l6ZS53aWR0
aCgpLCBpbWFnZVNpemUuaGVpZ2h0KCkpLCBpbWFnZVJlZik7CisgICAgRmxvYXRSZWN0IHJlY3Qo
RmxvYXRQb2ludCgwLCAwKSwgaW1hZ2VTaXplKTsKKyAgICBncmFwaGljc0NvbnRleHQtPmNsZWFy
UmVjdChyZWN0KTsKKyAgICBncmFwaGljc0NvbnRleHQtPmRyYXdOYXRpdmVJbWFnZShpbWFnZVJl
ZiwgaW1hZ2VTaXplLCBXZWJDb3JlOjpDb2xvclNwYWNlRGV2aWNlUkdCLCByZWN0LCByZWN0KTsK
ICAgICByZXR1cm4gdG9BUEkod2ViSW1hZ2UucmVsZWFzZSgpLmxlYWtSZWYoKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2UuaAppbmRleCBjMmIzNzg5NGE2ZjE2MGE1N2Q5YjIyNzQxMDQ5YTJk
YzQ3NTEyNTYwLi5iNjFjZjdiNjM1YzViZWU0YzQ0MWRiZTNiZGU3YjVmZmEwYzA4MjgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKQEAgLTIyNSw3ICsyMjUsMTMgQEAgZW51bSB7CiAgICAg
V0tCdW5kbGVQYWdlVUlFbGVtZW50SGlkZGVuCiB9OwogdHlwZWRlZiB1aW50MzJfdCBXS0J1bmRs
ZVBhZ2VVSUVsZW1lbnRWaXNpYmlsaXR5OwotICAgIAorCitlbnVtIHsKKyAgICBXS0J1bmRsZVBh
Z2VCdXR0b25TaXplU21hbGwsCisgICAgV0tCdW5kbGVQYWdlQnV0dG9uU2l6ZUxhcmdlLAorfTsK
K3R5cGVkZWYgdWludDMyX3QgV0tCdW5kbGVQYWdlQnV0dG9uU2l6ZTsKKwogLy8gVUkgQ2xpZW50
CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VXaWxsQWRkTWVzc2FnZVRvQ29uc29sZUNhbGxi
YWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgdWludDMyX3Qg
bGluZU51bWJlciwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1
bmRsZVBhZ2VXaWxsU2V0U3RhdHVzYmFyVGV4dENhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgV0tTdHJpbmdSZWYgc3RhdHVzYmFyVGV4dCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkBA
IC0yNDIsNiArMjQ4LDcgQEAgdHlwZWRlZiBXS0J1bmRsZVBhZ2VVSUVsZW1lbnRWaXNpYmlsaXR5
ICgqV0tCdW5kbGVQYWdlTWVudUJhcklzVmlzaWJsZUNhbGxiYWNrKSgKIHR5cGVkZWYgV0tCdW5k
bGVQYWdlVUlFbGVtZW50VmlzaWJpbGl0eSAoKldLQnVuZGxlUGFnZVRvb2xiYXJzQXJlVmlzaWJs
ZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7
CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VSZWFjaGVkQXBwQ2FjaGVPcmlnaW5RdW90YUNh
bGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4s
IGludDY0X3QgdG90YWxCeXRlc05lZWRlZCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBl
ZGVmIHVpbnQ2NF90ICgqV0tCdW5kbGVQYWdlRXhjZWVkZWREYXRhYmFzZVF1b3RhQ2FsbGJhY2sp
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tTdHJp
bmdSZWYgZGF0YWJhc2VOYW1lLCBXS1N0cmluZ1JlZiBkYXRhYmFzZURpc3BsYXlOYW1lLCB1aW50
NjRfdCBjdXJyZW50UXVvdGFCeXRlcywgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlQnl0ZXMs
IHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlQnl0ZXMsIHVpbnQ2NF90IGV4cGVjdGVkVXNh
Z2VCeXRlcywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0eXBlZGVmIFdLSW1hZ2VSZWYgKCpX
S0J1bmRsZVBhZ2VHZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2VDYWxsYmFjaykoV0tCdW5k
bGVQYWdlQnV0dG9uU2l6ZSBzaXplLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIAogc3RydWN0
IFdLQnVuZGxlUGFnZVVJQ2xpZW50IHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CkBAIC0yNjYs
NyArMjczLDcgQEAgc3RydWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50IHsKIAogICAgIC8vIFZlcnNp
b24gMi4KICAgICBXS0J1bmRsZVBhZ2VFeGNlZWRlZERhdGFiYXNlUXVvdGFDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpZEV4Y2VlZERhdGFiYXNlUXVvdGE7Ci0KKyAgICBXS0J1
bmRsZVBhZ2VHZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2VDYWxsYmFjayAgICAgICAgICAg
ICAgICAgIGdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZTsKIH07CiB0eXBlZGVmIHN0cnVj
dCBXS0J1bmRsZVBhZ2VVSUNsaWVudCBXS0J1bmRsZVBhZ2VVSUNsaWVudDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VVSUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcAppbmRleCA2MmFhMmIzMTg5MmMwM2Nh
MDZlZDcwYjY0YjczN2U4MTBjYjJiZDU0Li5mMzZiMjY3ZDMwNzYzYjViN2M3MWVlZDBmZDI0Y2M4
YWE5YTY3YmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNw
cApAQCAtMTYzLDQgKzE2MywyNCBAQCB1aW50NjRfdCBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVu
dDo6ZGlkRXhjZWVkRGF0YWJhc2VRdW90YShXZWJQYWdlKiBwYWdlLCBXZWJTZQogICAgIHJldHVy
biBtX2NsaWVudC5kaWRFeGNlZWREYXRhYmFzZVF1b3RhKHRvQVBJKHBhZ2UpLCB0b0FQSShvcmln
aW4pLCB0b0FQSShkYXRhYmFzZU5hbWUuaW1wbCgpKSwgdG9BUEkoZGF0YWJhc2VEaXNwbGF5TmFt
ZS5pbXBsKCkpLCBjdXJyZW50UXVvdGFCeXRlcywgY3VycmVudE9yaWdpblVzYWdlQnl0ZXMsIGN1
cnJlbnREYXRhYmFzZVVzYWdlQnl0ZXMsIGV4cGVjdGVkVXNhZ2VCeXRlcywgbV9jbGllbnQuY2xp
ZW50SW5mbyk7CiB9CiAKK1Bhc3NSZWZQdHI8V2ViSW1hZ2U+IEluamVjdGVkQnVuZGxlUGFnZVVJ
Q2xpZW50OjpnZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2UoUmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW46OkJ1dHRvblNpemUgc2l6ZSkgY29uc3QKK3sKKyAgICBpZiAoIW1fY2xpZW50LmdlbmVy
YXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBXS0J1
bmRsZVBhZ2VCdXR0b25TaXplIHdrU2l6ZTsKKyAgICBzd2l0Y2ggKHNpemUpIHsKKyAgICBjYXNl
IFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpCdXR0b25TaXplU21hbGw6CisgICAgICAgIHdrU2l6
ZSA9IFdLQnVuZGxlUGFnZUJ1dHRvblNpemVTbWFsbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6QnV0dG9uU2l6ZUxhcmdlOgorICAgICAgICB3a1Np
emUgPSBXS0J1bmRsZVBhZ2VCdXR0b25TaXplTGFyZ2U7CisgICAgICAgIGJyZWFrOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHJldHVybiBhZG9wdFJlZih0
b0ltcGwobV9jbGllbnQuZ2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlKHdrU2l6ZSwgbV9j
bGllbnQuY2xpZW50SW5mbykpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKaW5kZXggMTNjODljNjdkZDJiY2UxNmE3
ODRkODYxZDU5MGMzMzhlNzkzYTk0NC4uZjFmMjg0MTIwOWUwYmI4YmJmMjI3MmE3ZDc3NGY3N2Jh
MDdkYmNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaApAQCAt
MjksMTIgKzI5LDE0IEBACiAjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCiAjaW5jbHVkZSAiV0tCdW5k
bGVQYWdlLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJJbWFnZS5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaD4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgR3JhcGhpY3ND
b250ZXh0OwotICAgIGNsYXNzIEhpdFRlc3RSZXN1bHQ7Ci0gICAgY2xhc3MgSW50UmVjdDsKK2Ns
YXNzIEdyYXBoaWNzQ29udGV4dDsKK2NsYXNzIEhpdFRlc3RSZXN1bHQ7CitjbGFzcyBJbnRSZWN0
OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTY4LDYgKzcwLDggQEAgcHVibGljOgogCiAg
ICAgdm9pZCBkaWRSZWFjaEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJQYWdlKiwgV2Vi
U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQpOwogICAgIHVpbnQ2NF90
IGRpZEV4Y2VlZERhdGFiYXNlUXVvdGEoV2ViUGFnZSosIFdlYlNlY3VyaXR5T3JpZ2luKiwgY29u
c3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXNwbGF5TmFt
ZSwgdWludDY0X3QgY3VycmVudFF1b3RhQnl0ZXMsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2Fn
ZUJ5dGVzLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZUJ5dGVzLCB1aW50NjRfdCBleHBl
Y3RlZFVzYWdlQnl0ZXMpOworCisgICAgUGFzc1JlZlB0cjxXZWJJbWFnZT4gZ2VuZXJhdGVQbHVn
SW5TdGFydEJ1dHRvbkltYWdlKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpCdXR0
b25TaXplKSBjb25zdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCmluZGV4IDA5N2FiZThjYWFkNTFjNTMzYWVkYjRjOTMyODI1MDI1NTUxYzk4MTAu
LjdkODY0MWQ4NjM0Yzk5ZmI1MzZlZjk3NTU3YWQ3MDc5ODNmOTVlYjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2lu
Y2x1ZGUgIldlYkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1h
bmFnZXIuaCIKKyNpbmNsdWRlICJXZWJJbWFnZS5oIgogI2luY2x1ZGUgIldlYk9wZW5QYW5lbFBh
cmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2UuaCIKQEAgLTgxOCw0ICs4MTksOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6bG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJp
bmcmCiAgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCku
bG9nRGlhZ25vc3RpY01lc3NhZ2UobV9wYWdlLCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwgc3VjY2Vz
cyk7CiB9CiAKK1Bhc3NSZWZQdHI8SW1hZ2U+IFdlYkNocm9tZUNsaWVudDo6Z2VuZXJhdGVQbHVn
SW5TdGFydEJ1dHRvbkltYWdlKFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpCdXR0b25TaXplIHNp
emUpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVVSUNsaWVudCgp
LmdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZShzaXplKS0+Yml0bWFwKCktPmNyZWF0ZUlt
YWdlKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5k
ZXggMWU2MmY3YWJkNGNjMmJiODUyOWU1MGY3NzEwZjcyZDYwOGUwMWM2My4uZjgwMWE0YmM3ZTU3
ZWZmNzYzMGRiYTZjYjBhZDdlMDE2Y2Y1NmU2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0y
OCw2ICsyOCw3IEBACiAjZGVmaW5lIFdlYkNocm9tZUNsaWVudF9oCiAKICNpbmNsdWRlIDxXZWJD
b3JlL0Nocm9tZUNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKQEAgLTIyNSw2ICsyMjYsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lk
IGxvZ0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiBzdWNjZXNzKSBPVkVSUklERTsKIAorICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJbWFnZT4gZ2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRv
bkltYWdlKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpCdXR0b25TaXplKSBjb25z
dCBPVkVSUklERTsKKwogICAgIFN0cmluZyBtX2NhY2hlZFRvb2xUaXA7CiAgICAgbXV0YWJsZSBS
ZWZQdHI8V2ViRnJhbWU+IG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWU7CiAgICAgbXV0YWJs
ZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhcjsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzZjQwMmM3ZjAyMjhk
YjdmODcwNTI1NzZmNTAxYzhiNWY3NjE3ZjQ0Li5iZjFhZDg0ZGU3OTE4Njg1Y2JiMzBiNjg0M2I1
NzdjNDdkMGRlMWE0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTItMDcgIEpvbiBMZWUgIDxqb25sZWVAYXBw
bGUuY29tPgorCisgICAgICAgIFtXSzJdIE1vdmUgYnV0dG9uIGltYWdlIHRvIGluamVjdGVkIGJ1
bmRsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0
MTA3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjgxMzg0Mj4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRC
dW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UpOiBVcGRhdGUgdGhlIGJ1bmRsZSBwYWdlIFVJ
IGNsaWVudC4KKwogMjAxMi0xMi0wNyAgR3dhbmcgWW9vbiBId2FuZyAgPHJ5dW1pZWxAY29tcGFu
eTEwMC5uZXQ+CiAKICAgICAgICAgW1F0XSBBZGp1c3QgbGlicmFyeSBuYW1lIGluIGxheW91dF90
ZXN0cy9wb3J0L3F0LnB5IGFmdGVyIFF0NS1yNDAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAppbmRl
eCAxZDU3OTFjOWM2NDM4MzQ3YzA1ZGI1Njc2NDI1ZGZlOWE1ZDI5MWFlLi4wYjgxOThjMzIxNmVi
Yjc3Mjg2ZjMwOGRmZjY2ZDQ5ZTc4NTUyYzRjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCkBA
IC0zNzYsNiArMzc2LDcgQEAgSW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2Uo
V0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiAgICAgICAgIDAsIC8qdG9vbGJhcnNBcmVWaXNpYmxlKi8K
ICAgICAgICAgZGlkUmVhY2hBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEsCiAgICAgICAgIGRp
ZEV4Y2VlZERhdGFiYXNlUXVvdGEsCisgICAgICAgIDAsIC8qZ2VuZXJhdGVQbHVnSW5TdGFydEJ1
dHRvbkltYWdlKi8KICAgICB9OwogICAgIFdLQnVuZGxlUGFnZVNldFVJQ2xpZW50KG1fcGFnZSwg
JnVpQ2xpZW50KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178228</attachid>
            <date>2012-12-07 09:32:14 -0800</date>
            <delta_ts>2012-12-07 14:20:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104107-20121207092938.patch</filename>
            <type>text/plain</type>
            <size>48373</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY0YmMxOTE2M2Q1YjA5
ZGUxNjFjMDgxY2I2NDQyOTE4MWUyNzMyZC4uMGIwYzIyOWRkZjEwMTkxZjYzMjMxNGJiMjE4MThj
YmQ5OGFhNDllOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQwIEBACiAyMDEyLTEyLTA3ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAorICAgICAgICBbV0syXSBNb3ZlIGJ1dHRvbiBpbWFn
ZSB0byBpbmplY3RlZCBidW5kbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNDEwNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTI4MTM4NDI+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIFJl
bmRlclNuYXBzaG90dGVkUGx1Z0luIHRvIHJldHJpZXZlIHRoZSBzdGFydCBidXR0b24gaW1hZ2Ug
ZnJvbSB0aGUgQ2hyb21lQ2xpZW50LiBFeHBhbmQgdGhlCisgICAgICAgIGtpbmRzIG9mIGltYWdl
cyBhdmFpbGFibGUgZm9yIHVzZSBhcyB0aGUgYnV0dG9uLiBUcnkgdG8gZmluZCB0aGUgYmVzdCBz
aXplZCBidXR0b24gdG8gdXNlIGZvciB0aGUgcGx1Zy1pbiwKKyAgICAgICAgb3RoZXJ3aXNlIHVz
ZSBubyBpbWFnZSBhdCBhbGwuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4uY3BwOiBLZWVwIHRyYWNrIG9mIHRoZSBkZXNpcmVkIGJ1dHRvbiB0byB1c2UgZm9y
IHRoaXMgcmVuZGVyZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bjo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4pOiBTdGFydCBvZmYgd2l0aCBubyBidXR0b24uIER1
cmluZyBsYXlvdXQgd2Ugd2lsbAorICAgICAgICBkZXRlcm1pbmUgd2hpY2ggYnV0dG9uIHRvIHVz
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpzdGFydEJ1dHRv
bkltYWdlKTogTWFpbnRhaW4gYSBjYWNoZSBvZiB0aGUgaW1hZ2VzIGZvciByZXVzZS4gSW5kZXgg
aW50byB0aGUKKyAgICAgICAgYXJyYXkgdXNpbmcgdGhlIGVudW0uIElmIHRoZSBpbWFnZSBoYXMg
YmVlbiBsb2FkZWQsIG9yIGFuIGF0dGVtcHQgd2FzIG1hZGUsIHRoZW4gcmV0dXJuIHRoZSByZXN1
bHQuIE90aGVyd2lzZQorICAgICAgICBhc2sgdGhlIGNocm9tZSBjbGllbnQgdG8gZ2VuZXJhdGUg
dGhlIGltYWdlLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBh
aW50QnV0dG9uKTogUmVmYWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbjo6dHJ5VG9GaXRTdGFydEJ1dHRvbik6IENvbXBhcmUgdGhlIGJ1dHRvbiBzaXplIHdp
dGggdGhlIHByb3ZpZGVkIGNvbnRlbnQKKyAgICAgICAgYm94LiBSZXR1cm4gYSBMYXlvdXRSZWN0
IHJlcHJlc2VudGluZyB0aGUgYnV0dG9uJ3MgcGxhY2VtZW50LiBJZiBpdCBkb2Vzbid0IGZpdCwg
cmV0dXJuIGFuIGVtcHR5IHJlY3QuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbjo6bGF5b3V0KTogVHJ5IHRvIGZpdCB0aGUgbGFyZ2UgYnV0dG9uLCB0aGVuIHRoZSBz
bWFsbC4gSWYgYm90aCBmYWlsLCBkb24ndAorICAgICAgICBkcmF3IGEgYnV0dG9uLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oOiBBZGQgYW4gZW51bXMgcmVw
cmVzZW50aW5nIHRoZSBzaXplIHRvIHVzZS4KKworICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50
Lmg6IEFkZGVkIGdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZS4gQWxzbywgZml4IFdlYktp
dCBzdHlsZSBlcnJvcnMsIGluY2x1ZGluZyBpbmRlbnRhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudDo6Z2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlKToKKworICAgICAg
ICAqIFdlYkNvcmUuZXhwLmluOiBFeHBvc2UgR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1h
Z2UoKSBmb3IgV0tJbWFnZUNHLmNwcC4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6IFJlbW92ZSBzdGFydCBidXR0b24gYXNzZXRzLgorICAgICAgICAqIFJlc291
cmNlcy9zdGFydEJ1dHRvbi5wbmc6IFJlbW92ZWQuCisgICAgICAgICogUmVzb3VyY2VzL3N0YXJ0
QnV0dG9uQDJ4LnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBSZXNvdXJjZXMvc3RhcnRCdXR0b25Q
cmVzc2VkLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBSZXNvdXJjZXMvc3RhcnRCdXR0b25QcmVz
c2VkQDJ4LnBuZzogUmVtb3ZlZC4KKworMjAxMi0xMi0wNyAgSm9uIExlZSAgPGpvbmxlZUBhcHBs
ZS5jb20+CisKICAgICAgICAgQnVpbGQgZml4LgogCiAgICAgICAgICogcGx1Z2lucy9QbHVnSW5P
cmlnaW5IYXNoLmNwcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxZjMzODBiZGFiYTZiMWY3ZDc2M2Q3NzUzNTVj
OTNhYWUyOWQyNjI5Li4zN2VkNDA2ZGI2NDdhMjU3NTg2NDM5ZmQ1MTJjYzZhODc0YmUwMGQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMTItMDcgIEpvbiBMZWUgIDxqb25sZWVA
YXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIE1vdmUgYnV0dG9uIGltYWdlIHRvIGluamVjdGVk
IGJ1bmRsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA0MTA3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjgxMzg0Mj4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWx5IG9uIHRoZSBpbmplY3RlZCBi
dW5kbGUgdG8gY3JlYXRlIHRoZSBpbWFnZSB1c2VkIGZvciB0aGUgYnV0dG9uIGluIHNuYXBzaG90
dGVkIHBsdWctaW5zLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmdlbmVy
YXRlUGx1Z0luU3RhcnRCdXR0b25JbWFnZSk6IEZvcndhcmQgdGhlIGNhbGwgdG8gdGhlIGluamVj
dGVkIGJ1bmRsZSBVSSBjbGllbnQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaDogSW1wbGVtZW50IGdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25J
bWFnZSgpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VVSUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFn
ZVVJQ2xpZW50OjpnZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2UpOiBDb252ZXJ0IHRoZSBX
ZWJDb3JlIGVudW1zIHRvIFdLIEFQSQorICAgICAgICBlbnVtcy4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50Lmg6CisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oOiBFeHBv
c2UgYSBuZXcgY2FsbGJhY2sgdG8gZ2VuZXJhdGUgdGhlIGJ1dHRvbiBpbWFnZS4KKworICAgICAg
ICAqIFNoYXJlZC9BUEkvYy9jZy9XS0ltYWdlQ0cuY3BwOgorICAgICAgICAoV0tJbWFnZUNyZWF0
ZUZyb21DR0ltYWdlKTogUmVmYWN0b3IgdG8gdXNlIEdyYXBoaWNzQ29udGV4dCBtZXRob2RzIHNv
IHRoYXQgdGhlIGltYWdlIGlzIGZsaXBwZWQgYXBwcm9wcmlhdGVseS4KKwogMjAxMi0xMi0wNiAg
UmljayBCeWVycyAgPHJieWVyc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ1NTIGN1cnNvciBw
cm9wZXJ0eSBzaG91bGQgc3VwcG9ydCB3ZWJraXQtaW1hZ2Utc2V0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9SZXNvdXJjZXMvc3RhcnRCdXR0b24ucG5nIGIvU291cmNlL1dlYkNvcmUvUmVz
b3VyY2VzL3N0YXJ0QnV0dG9uLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjc0
OGMxOGY1ZGFjYjE1Njk1N2RkNGNkZjM5MjRlYjM1MjQxMGEyMC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2Qw
MDAwMQoKbGl0ZXJhbCAyMDE3CnpjbVY8NzJPanV8UCk8aDszS3xMazAwMGUxTkpMVHEwMDFaZTAw
MVptMV5AczZqUStUNzAwME41TmtsPFpTUDhZNgp6JnVkZyE3UlQjVkR3XjFGajVWWW9sUUF7Xmgt
aS1zamYjdEcwKXE9VExSMylQSUtyI347ekJwd3E4cVcoX3k9U3UKekNge3NyKGpjXyFNaEw/JnFQ
LVlyRihEP31sZ01QK2tQSz1QbFRgS2heWVhzTWViMWAySGElQmZvJTdFOXA2QHlECnorI20xZThD
NUVrVC1YakFJSXdCa3dyemI0NEdxMGY2bV9WLUNHN3ZEYjtXb3MmZEtIRjwhXyVvZC1uQ0NNfn4q
aAp6Nz9CZWNGelZ+O0pLZmFPXm0kYHJWXkxSNXJ1WWdTTExGWik8X1A9SC1HYCpyIWVpckZUM1g1
fSQoYzhBLVZFSG8KemV9NzF9eE4+b1ZCOFgwJElCYGtJXnstcEVFfDxeZVc1Vm5ZSmBQSHNiPnVK
NiVIP3dJLU1lP1dnQHVLfHlMYXppCnpCZ3EyOU1+QHlveT8qYHJJNWBLYzdjaENTeFpBcEFKKWFN
PzZQcDV3dVV8UWgla1IoOHt7OHptP2J4d25NQWEqNQp6LWxlI2x0U2R3IXd4eGl7anIlP25wWElQ
V2x+ZmdITW5efGBAPntsUz4wezIzOTMzPHk3WVNMcU58d2YxOGZPeyQKelYmZ0o0UmBlNnYme3RN
Z3M8dUwqUCRXMFdMTjlZSjFsSjw0RWkzVlJgfVM/dDlOJXgpdSVYSX1wPEdfa1o8SShaCnoqNTlB
UTxWMD0tSiF1RWZ1cmwwI092ODZAYVBZcXhnP1F6dTU+YkREZV9MKE5hOWd1KG5UfD9zQi1yOVBs
a1JeMQp6aikweWdWSzRTI3ZBRT5iQDZpWWA9PUo9S0dkRDhQVGpFdVc8QSlMdTlPc3tFO05XI3E8
X34zPDVPI0JpNTEyfFkKemJWa29NMlgmPn4/KzVnfnJSfG5aeno9QTxDNFFtS2VKYTgxNjlLamph
eE1MZT8jdFNlOFhUaytzY201fWJvc0FICno9OWA8RkJPV3MzJEVRfEh5KXNPUTQwVj0yJCg9Zk4+
Z21DUTJtaSl5fEZJMXBlQnFkJXBSZWUoN0U/RypKLSEwTAp6KkpATzVhZEVNNz1GRkw9K1REeDd3
QE0kQ3QmM2ZzUnhiIzREbElIO2h8IUF8RkxyOUI9az9abGRoX1BaLSlraHwKek80ZkB7WmdCLTZz
Jl8lWWNra1lSa3ttPD83I0o5TUMrRjhCVSN+ZjdmYEcqYlUrezNqMzN0Nz9fUnBeY1V8OTUpCnpu
WW5QYCFzYWxNKzFjNFF4P2QoWiYxQ1VTQD8lfncodzdzVERnO2lyIXw3cmtgeSR0emdPSHkqZDIp
KDNnNEAqOAp6KURLcyNUPEtDWlREOC1zLVcwfSE1e3dkUSNScCZhITNqNVdGLSQxYiFLTnlSMFJT
eXxeMkgtWmp7R197QnRNcmcKelV0VSZubithQGUqbCpvfG08R2FnWk43QnIoKDF9Y0t5VkFVPXAt
P1JvYWxBdUFXa352akE9cXctJFBISEpRPCZ2CnpuZHY1PTZSPm4qcD4hfUxKe3NuM0lFO2IydEUr
M3czN1gzaVR3Rm4mSFI2OTUmfWV9Nj9jMH1uO15FPXBpWl5MMAp6O3xweElWVClQOCFLcVQ8Sk4l
ZDc2aitPZXkpa3o4cTY+TGZIfG12RHopR1leRkJRMz5sWlRFd3ROVGIyZVBVdncKeiVeTkh4Wntr
ViFgQClNbms+RHF1T3wqcjsmZCR6OEN4cVFlOGswe017QWBreWF3WFQlKGVhNmFOTnVwSztrfTw2
CnpzYlB2NzJ0QlQjcyVKP2IzRj5IOzt2ZmNuIyN4JCsoQGZrK1Y5byRrOF84ZytyQj1EXzFAfXxY
ejFrbzxjSTtUWQp6Pz9WfmwoTWRBWDtzLU8lNSk2ODM2Xy1edGo3WWBJTzsxbSFQTkxjX3t6dHpy
bGp6LT08STxhPEQkJEojcjhyVzUKelJ3fkI0PVFUS1VURitKfTJKbk5eaXgpMnpzfEczQ3d7UU9z
KXBFMSQ7bE9VMkZgO0RaZitNcyFoNys7YGdJOyU9CnpWSkpwTU0mZDxlTFQjKU9KM28kR3Q1YWZD
aFB3TitsRH5jN0ZkdmNfI0w4bTFyPiRBUnY5WWxkZHo3MkxJJjlPKQp6YEheaTJoc2Ftd0U7IXJs
Vn5HI0dhRCtCfU8oPVBZWjRZSXRmXjx8ZipBUj1lYFFFKkl2IVRRRj4oPmppUGJZN2gKenhVMUlG
bitGTE5BTmUraFQ+OWdEanVAXldlZkJkaFJZNytteGowVH5iTi1EXjlvMW9KWipUd2Y+ZVpgYnZR
M004Cnole2orPjFPcFp5YEJ3S3BJQih5Ky1MNklCVCZsQEFKe3xFc1hoVC0hYnZoREo+JWRuN3NW
YTdOY2I5SjV4R35regp6KCgtcDVXYUd+alJMUDQ0b3ctVU03LTMpSFFfViFtd1FKWEFnPXIwa20t
c2EyMGJoZkBXY144JWlaQFI+IWdCTGcKemYjQ1ZgPVdSTTFlN3xTVW9+RD5WS05+bDB7Tih1WTxH
PFJ5ZC1yIVFVJW5pRl8zRzd2MHhxZHl1WjVsNXhwVV9+CnomWXdVM3trZTFKTj9gNFdST016TEpi
M1VLKXF+IyZJWDAzZXpQYWV8O2xxRWAoSUBxRWFqJC15YVBzQThgUnYpVgp6fEkoMj9eKEhYKEwq
PnhXKENuPlN3fDQzd1hlbD94TCg9ci1kYWVwP0p0ZzMkRFAtbSo4SFc3aCRCKX56dmoyVlAKeig0
cHBWP3F1TEtaeHQta0plPlJIIThlfjM4VmRQcmEjPCZtUjBTcytOflBjWkt9VnRPRV43ITNPSFB2
OVloIUtHCnokfVVVKVZiYHUqJV5haUZZTn4jOD1neXJ1b2c8NiN7Vmo+cl45a2NJfENIYyZRRXpZ
V0FONS1MdlF8WF5rcio7Owp6RUNNZHxFb2N0RT07YFRNRHdScz53TXZgOFgtPnstLVkja3JacXo+
NHNjSk5sUkpMa2FlI2ImR3QrZEYjaCFrTWMKeil+I0RkdmB+dDRkYHUkJTdzS0hUZT02WSUmWSMx
cD5kbE9na040eT9yezxMSGZjRz45TGVlWmwtNThRXldmJWRTCnprbUozUntnWnE4Tlk0MTVsRW1Q
Rjg2OSNXeDQye3ZBM2h3Q1ZVVihCRC14MjFOcnJsZVN4WE9uTGZ0K3xWaHJzZAp6SWV8JWlNQXV3
OHQqNEphcUkrMVYoKkx1TzlGNC1MSz5RZ3hwdCttPWgjbkBPPElwQ1phe0g4NnVQKGtGKjhPaD8K
emt8JSY0IW4lV295dFZZaXxGIVV3eTF0IzlvY3grJDRZNUIwNiVzdnBQbnZBazAwMDAwTmt2WFh1
MG1qZlN0YT8+CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3N0YXJ0QnV0
dG9uQDJ4LnBuZyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9zdGFydEJ1dHRvbkAyeC5wbmcK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkYTQ0MjFiZTkxMjUwNjA0YzBlMDA3MDk1
MzQ3M2E4MzhmZWUzOWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgNTMzNQp6Y21W
O3w2ZSNQN1ApPGg7M0t8TGswMDBlMU5KTFRxMDAyK2AwMDItMzFeQHM2anVHOyQwMDAhOE5rbDxa
Y21kVSYKelheZDZYbWRDNT03RlktPFZrNXtYNHd4djlqdFc3dlpBKjxxNk9EMDUkN3VBVXYoZHok
d29ePExwTjFHP2pLPXVVCno9a1I8Vm8qel5rSSE+P1NmU15nK0szaT5sRCMpWDBYeWg+I1AoJU5K
PWlkS2ktT1Z9WS1kaHlpe1dkd1opPihWNAp6e35GSFRgfE53cHQpZz5pWHNEeD0pflAxRm8obkkk
YU4kNyo5VyttO2xYTzEwdEUrM2dGekVaTVlzejcwYUJ5JnwKemEjJWt3RnRCMFF1M2NaZV9TJFBK
bHRgYSlZTjtAdCZHaDc/dlV1XzBgUXlmb3lTbDU9KW0hUFJPZFJUe1ZNOGNnCnpPUmsjTm11b35r
UEA0SD5GKlprVFR8KSlrKVpnRiN7KzJDVWUpSU8qWj9CVD9maW1tRDB4RjVsdig3cWUmY3VsbQp6
bXk4fWdkTkNsblFyU19kUk8mbyhDayk/Q09BNz4hVyRvWTs9XjZgfipZS3g7V25KaX5hTT9MQiZV
ZiRMeT9vUUEKelAwUVlVQDRhdHpvKHF5Jktta2BTeTZCPlI5Nk5VR1FXZFItIWx7VEk2Yj45MCV6
T2NNcmVfX1pHO2pVMVV9PUF2CnpeaG9RY2M9a3NESEp2KiZ0O3dOcD4oO0lKeSF6Xl56Ziprc2pL
K05tRDElWCNUeW5gal80TT55UHZKKDU4cjlMPQp6LUVIaHIlRk4/QiluO0l3JiVicyNQK2t0SUdx
fTFtU2VCIUhwaGIreEokdj9LcXE0OEJAMG5MI2RGOXRDOy0yV1kKenApeDk3Ql5GT05pfjRBYk0m
fGImRzFWenBUXk9xKTRqdyZQKEd7PWI0T1UwQGtaOFJISG5tVXZyflAkfDhxLVdhCno/ZjFaO2tQ
SWwqaDgmaGt1UmFwJTF5bn5UKF5mXmhvfmNVbFhiITN0ISMpSjNac3R2XkJhKSgySElRM29uQEhe
bwp6Tn5gTWN5I1BAK2tHRWdiUkhxcSFVT3o9LUNOaWF8amNXOEMoKStEXldRb19PQFkhZGRlZiR3
ZTlQeCZWKk9SVnkKejRrJmV5MjYmKilpTmk3QSVSSUR8KX48Y2pYRlgmKFljJSQ0KnMkUnItaEtE
b1p9OGQwNCtUJjs/NkFYQGFLbThECnpWKzdYWmJzQj5PSVBYOWljfk5zOy1CJGFiakVDMHRMWiVW
UmBZe0Y8JWB7SXglOEZ0dGxOJWUjTmFTRkVRN2clXgp6QjR0emZ5enxiUnVnPThgUmZefENeVDE7
dHo/fEVXYEtYZyhIMXhVRkhSfEctVmpLMCVvMko7VT10bz1ncmc/WiMKek1nYlgjKVFYeV5aJCsx
cUA2PmtYWUtuKEtKSSMpdmsjN2clSzxhdnIyYVd2eF9AcVlFaWtlWTdEJUstbUZRQU0qCno5SEJy
blp8QkdAJWo/Z0tOYDVyNlpgTk18byFfTjJ2ZT5LWFJDTk9IVHcyWUtfKkFwKCgwIXM7ZklYY1RU
eVIwfQp6QSVgNkRBfiVrOU1fXylgITt8alZ2NztAK2dBWUVxc3M0eXhrZVd4ZkhUc20mcF50bDRj
SWw9dTQ+XkA+KjVXa3YKencyYyZkPnFPbzxRM2xfdjhMUDs/U153WipiLU09VEs7SmFsSGpCZ2t3
JjVJfStJNEglQD5DQCZBVkxabTczcXR1Cnp0U3s9cGA9WGVaO2spbV8yT3IkNW5jJis/MUVqOGU9
ZV9zZEpFMWBzUDheJFF3V3w/SURIYi16Jn1pU05aWEtsNQp6dTNMaTEoSUUxVHJwP2M2WW5vP0sp
O0JtYiptMlpSTkExKmRsQUVUYzRieC0tN3spUXBeVkxqZFRUfUVTVXR9SyEKeiNOO2tqYVhnQX48
Tjt6SlEqX0sxXmBvPDJFd15tTmgkOV9PR2QlWWI1aj9mKSkqWXltI256cHNkMTFUcXJzJjRQCno9
aD9JPkdnZFF3JENweTxAP18yTSh0Y3k0YT9ZSk1sIU14cFp1fEB1WClJVWBxejtfdHY+bG9Ldn0w
NEkzdG8magp6KXBaezx1UXtHYlpCeVUrPFFaQlA0UCE4WDd8NHxWXlo+XmdrKyl1eXI5OV8odHNP
aktxZDh2bG5YclcpX1RfazsKellzQVkmcGNWMms0TUx4Sig8cDxGNCVgPVlFclpoQjJqIyVObTFn
fmo1JjRMbFYhQUkrS2hKbE96VTV0SlFiNWExCnolZlFofDR+RG9OTFN+MmlxS2BhMFBtOD1oJVZJ
cHteWURAM3BUfCY5Jm9RSmolVDRxODlmSyk0LTV4Y1puRDxxUwp6Rzg7dSZxKSNDbkkyaTJPZEE/
WU49ZX4mRkUpTkNgaWh0dHBmcSZtRGl9RVlWJEc5O2IkMisxVTVDO1V6bTR8OVcKenlqd3dTPEQo
QTtFaWFnP3FlLTgycGtOcnNIMV9rdnIxbX56bj81YjxqeG0rbDg+PDw8ZVdCTHtfKChNWGNrYk1v
CnpDOHROPSt3Wl5ze2BGVH1hbUJ4YT8tNE9sektVPiYwYmV3SC0qP31BPnhtYENSJUZ8Km9aNXdG
NllaS2U+TmBOQgp6YGs9cGcqfEtHU0lwS3M4RHdraD1gUnItYXJtYU5vWCRebE04Wmp7WFk1MnRW
aTZAPnxBckBqbiZJS04rTEJvPFQKekFfYV9yPnRvcFZyQXdGWW1eeVZUQG4tR2VoYWFBKD5IS0go
Y3IxUlA4cmI7MjdlNEtXU2NyKyg9cFUmSVNzI0liCnphP25nOC0+bCEkUXkqPmlKbitCK25gWHxP
blBLXmR6U1NgMSZPN2cxRTFaNmtXUEt7YXdAbmRzRVJORkAldnU1YQp6QDRELSp3Zkt3fSM2KWFi
NlpjQGxqbUBedSRsRVQ7QkpYfV4hdzhIQGsmZ3hgPyokd0FSYWFmTD1KP319dWY5LTgKejZpK18r
PFl9aiRlKT1iZlUydTUmTnFOcTVUaTdidm1YUUReNElkfCtia2VqdVRWbEtOJH04N2skNCFtY2pl
KSotCnpYeW8mLUVOaSQ2VFViT1JENyp1UXBFR0M5PldlU0Z4VG5ZI2BFOXF8YzljZk8qWFRScEdY
MT4xX3xEa3pfXnY7Rwp6e1A/ZiZrIU5RYUYlbTFiaktYJS1MO0hqSkM+Pz1URzk/SWpIP0tMRzdK
WnRjKWZkVWAlJUtXKW0pNTdQYmIlQTYKemE+VUlzRWZpNHoraUQ1ZmlqUDkmU19pUWJHamA8UVcq
bGhWZnU0MTJsTkhkKWM/d3BIZWR2NFkhc30pOEk9JCt2Cnp6cGFscDx+MyNkdUQkbCF8Tjc7WlVs
dChhNkBvWG0pPTdpMkpmJCZTSG90Nj1wPHY2JGRWSGxlQHRqelJJbjR1fAp6dktaVkt7Zztsd0dD
PFo0ZmJAM2lGV1BVRlBGP0JreTVXVyEpQHxPcmQ2NSZRYz5DTCY1U1NXS1NyTyZxRzxATisKejQ0
O15aOVNtfXo4NG51eUdNeEhHeD5XLV5eN1BhRChUeGd6QDRVfE9fVzB3RWY0eTx6Iz8kRj9xN0tx
RCRFO0xACno5ZmRSMShvbzA3N2UzMVhpMjItZSYpdFgpMUB1fTdVYUprOChxVWpRRDJMWUBGVFFN
QkYxX145YWIqc0ZSe1ArQwp6NUI/NHZybWJ3cylaNk15O3slJXVNOGhZKCVLJElDPzZQcz5mUjBD
RClLQnI5emJVJDwxJm08dVR5WXd9QFcmbEAKeit8Um5KN09zOEw4YDdSXksrfD02d3JqNlZUa0pX
RWxgJUQzXkZgRWxecVlAKF9KaHk2QDRrQ0xlVDc0Yyp0TkNFCnppY0M/T0hSbGdDcEIyeW5xJTtP
Ozl2JHpXXm82OS07cT1pKkFBUGxiYH1SZkhGdlgwS0c1VWVyR0kkNSZ7JnVQSAp6QENDMjt3dT9V
Z19+VTtzIXxDbnF0KUxya2lrdXRFKU56X3hVT0VEOzFVMnVXdH04cnIrRyhlYUUoYDlabXRNKygK
emlfXkMzTnwqSVRLYU5LYXRGcE1Ee0cma2BnfXpgZnpXOEVral5zY3RuUWJ4KG93Tk8rVjtNWkg2
eDwweDt7bktfCnpoYVMzN2NkXjI4dVI/RUl2dTRlJig0fk1SMSVfJEZ1NzxMQWlTVChJWkFpZjBw
Xj9gcWUkWFdiViMmaW9NaEBmeAp6LSstPDI3LVAmSS1uIVcqNWwmS3RYYmlaVTRmTyMlK1lub3go
bF82SF5HfWpaQWB6eCQ5JHArWjhzcWgjUW1wamMKekBnZ15Gc15nMCQtOy0qd3EkPjR1YXhyR0Mw
fTRnPkhaQzIzUipLWEcpRDZWZkphKlVsND9wfWNuLSZ6JSY5PX50Cno3bExXKz53IzdzNzlGVTRs
Pl5GPWpkczFQY1B2R3EmYypRKz43e2JrUDJMTTxVdjZYc1dKeiROdCotNTxlIzEhOAp6XlMwOVVQ
Z0FHIzJEMS0xWmRLVDM0SVNUWCV0eU57an5ZbShDcklzUE5ASk5pWkt9UXNRUU19dTRtcDg8WFA8
TykKemZ2VUkwOU9YUWIxQkdlfVAtP3F2K3FROWJXOy16UmN3fHdZPWk0JFRWU1E4Zz1UWkhkTGdg
KzB7SjhPQHhmcypGCnpwZDFYbyV5NGkocWNENiF6VVRAZ1hWX0FDRXhlNHQtM0N2b14hfjs7WGBq
eXQhVVo4MWFKNU1mNTNIPE5yU3YpUQp6WGp8bVJhJDsjallDT3xab1lCKyh8RT5jWChGZjtfKXdz
d1NEdnRycEgwODYteSp+O1FNTVh9c3teJT9YMikqY3cKemJBM2pnTEx6ejFNYjdJKG1XTi1uRFVE
VkJ2VkxAcGxRQV8rXkxlelBmTyFnMD00NWZDTz17dWohJHUkNXcpaTwrCnpFUW0yOHU2Wlk1WUkm
cncmc2U3RE1jJXJecU9QJEtDLVRqNXY5N1Y5IyU/R2U5Z0crJitSIXdQQ2FvKHghWUV2dgp6Xnt2
KyhlISprPWx0ekRnYjV7M2xLUD5GfSg0P1EkblBERTxQOXY1d3thUCt7bTlxUkR2ejQ+Q2czdn4k
UiFGSHcKeih+bSM/U1VMaEhPYDViNUVVdUxDUXxnTmFqbEFgOzg9XjM+YGF4PVp5PGZwKXZSYVZs
LUVaSC1sSTlXNSRwc3M3CnpHZSt6JDt+TiRtOCNAM0RFaT47I2ZCTmFDMkhWdCQ5Jj0/NjhNeF5i
SERlZH5FMyZpUCgrQz1RX3VLZFI9YnZBPwp6WEg5YntpWUc3TGg3c3VFY3RqOGdkfjY8cCtVSTNv
JSMzfUpAOXBoOVNgSWh4KipROCEje3M2KWVhNEEpc1Y/VmYKenlpbz5eWnh3ZEtuUDs5aytuOU5q
VCtydiFpIXEkSFhgVVVyNEtJfXQoNGErIWdWeWlTOS0rbXphMUImMjxFS29TCnpAPDtHSUleZkcl
PmZnU2dQUTxoZmhkeihLJCYpQWxreXdpSyQkP3p4SCtFNihzVGBacVheMkFGPl9oPCRlKXtSQgp6
KW8wPFVRdGUhaSlfSlR4JE9HNnxvQzVXSSNMKmA1UipiVTkoX2VkOEc8ZWZaSDxkb3hDa0p4RCM8
e19fK1VpcmQKelJSaT9BKmUra2J5bSowPS1odUBTZXgoO1V8SDI1MlpAPTJ7SDVeQGg7WndoRHt8
OTB5IXlwSFdAMT8wc0h9PzYwCnpXZCZAdkBfdylKLUZNJGoqR0lPKFheZ3slOShzc0h3MiEzaEd6
SyEjSmNhQTstPWwoYl55eWI3TkBwMGNsTFB0dAp6UlkwcnB4TXJteiY8UjUkWih8anU+LXAhT0ZN
V2tMZC1tKk8mcEdGdUh3ZXQlKylEOVU0WjR7Z3hWKjN6PXtXMUcKemJLYnlybkdMYSUxM0p6cj5j
XlpUa0ItbWxSfHI5Uk04JVola2s9SExyZE5yanF3eDBJWihsSEQjKkRZWFV+X0hmCnpvWDJMbDxE
ayM3JGgkdk1NcWFnZUxtbHxTWFQobDxWa1VPdiZMIWc2dVBKKXdPKjMxNTQ1eFg+Pms0KjFfMCZf
UAp6cWZsNDM+Kj1TVG9+XkgjZVMmajsjQig2ZiRVQn1XaUBmX3lEVntPJGZpSFp6S2FVYkt2RDQ+
Vl43Tlg/PmhGYjcKemo2dVN1TjdQfSsrcCU4VSUreGN0KHQhMWpWJSpDd3pkVWpKXnl6UGNPVHZD
Vj5MQTxran0zKGIhPW9CKGVCakhOCnpkNlphKm5MaFNAPFUodUxLUV5VRnFZenVfeihaZGYqM0wm
Q2VSUjxNKEkpYUZfVXlDSSZlYVI7LXooXnlZOz43Kwp6djUqbk5pOXNXZWomMGZSPjNwWncrMjRj
UnRhI1d5XjJqNFkjMDtrTlZ+Q31eVn1vKlYwVl91emVlfnI1biQtQEYKenkkfUVnTm9YQFZVZiln
bVcjUGh3cjU4b3xvcTd7Q1VCfHpEXjJzTkUoeXpKQlIzS2R4Z24mNUdXO3JeVmNHLWJYCnp3U21K
QUttN2cyOSghel57dl80a2Z9UHI/PVRBUVFXZERqNEUyYmw3MjYrJnFkZDwjPk1NZUNucTVNPnA3
QCMhcwp6V3BPYkRJN21uQFopUDJQPzZJciRyPW0pNERxIW92OXJ3WnVGTFpxVmBSRClxIzFsXyt1
VW9mbnVFYk81c30lPH0KengyZDUyZEV9OHRldEdNeXhBeUNNaHVOPnw8fC15YV9JJClCQHNRKD1E
I09YWVEkem9eOGh3OTFYM1V0WmE0czZhCno9M1QobGZ0QDR3cndzK3h1a1IjcChEJFJPU0hWaDZz
RVcyI1UmcnxGXzE5blQpTCtGSXFtTmh6WWktTmNHQ2tfcgp6I3Y+e0hSZ3Blam9JIW9JSnl3MVNL
YzN+ZWBzJUIlSStyWTJHRCZ7MlUrc3dCNGxCeTlFUHZLcmpsd19GMyZgYGgKentie2o/ZEBFaVg9
cSs+UyZUWHJSYHtUZE5fUkJCNzxvQXBaUVBOezYzZE04TCVJd1BlVHRMPDw8dnpTXjFhPnIyCnpy
VWtxPCV3ekFrPEJtejFHVyN4UW5aXkkhNGBMdHxWIXxzaXhfRktvOGhKKy1Xc3dqNExseTFUJih9
Z2EyakkzRgp6T0V4dXg+Z2R3ZXRGeGp0UjQ9SHNQSWF3WngkO25iKW9lMzI3Njt3N2s2e3srdXg9
T3dgbWB9cXlpKGx6Mmg8fHUKemFOK2Arbn4yXiRmNXw+QEolSFRsK0hSaHBQI3dDQzlUb2pPbihv
b3Y5aTRobEJnfj1ZWiFEajJeVVhKUnUzbykqCno3KzB3NmgleTZ3LUZWfVRvbXgrNERBXiYzIzJw
dChAOyo/OFpAME50OFl0YGVtSCFPfTA/YlpZMGt0a1BZc0E3eAp6KVc3YkV7endofmJhJlBWXzlM
Jm0/eilhc1BkIzxARXd8aiNxbypYTGtISzI7b3V7TCVSSlRUNXBTREwrTnNAZSsKelMpTl5LdkN7
WmsmRU1Gdi1fV1V+ZGk3clBNVnpwPjhpV0FOcjtoVzJGT3A/TFR9M3A4TW5iPEh2SCRzK1lweXdI
CnohaHtLPmtIZDtFUSNxZSZwTF8xUFUybmJoKT5NQnlxZDRxcyQ7JWhHU3c1ezZsKVdlZUxvY0pR
V2F5MDFSJVdIdgp6aD42XlpzVj9oOVVVTUltaE1yfTRgaigtQ0xrPjMqSkxaXlVlJTEhS09LVzdl
bypUOWBEeiNfdClgcXhXZkFlKGsKemB8clA+NHo+I2ZIbkJtPTsmVUlBKStgX0VhfGFmYD43OTRw
Uy0/aVJQdE08JEB1aUZ3dTM4Wnc0KHRlT3ojQEozCnpxZjBVekUrcTd1WkAhdVM/WUgwMy1LN0hs
dz80fm0oTUBlPSl+czJod0QwVEkqR0lETj4qfjRQOV88VkpfM34lVwp6ND9xMFN4cHdXXkxzWT1T
ZytKJn4wfD5GWmFHY1d8R3JaJTAoJikye2JNcjwwPW8yQE1udSt2ZlV6SiQyWHdnRF8KelB3b3tH
XmFCRXY0cGR7TDVUdVYqe2tUfGhOKWp7WUJ4aVo2YypEezJed2w/U0ZWTz51NzFAeHxxUHQyUiVo
UUNzCnpaYjJoSTlMTGR5TTE4U1hjZSFYREpzdlRzS05rbChiZkRObUlvdSFwcTxxQVRlNSZYM3J+
Xi1aNz1oR15ueFU1IQp6UEBNeiVQYF55SGs3O1p9Mkw8SW9aVkkwczBOTkhsWlNJUzk9enZMNFR1
NlIjaFZfXk5uYkozRWJvRmw9Uj1RUWgKek5eUWl8SFVRd0hfKSFNbVpYKyg1RFdneFZQZDY9VW1D
ZmIpLUQxX01Sb3wrSl9mUzktc2Roez4xX3Vod3opJWkhCnpPakZ4RGB6cCVicEhWMEJicSNPWHBn
SjwwOHFMIz52ZDl9UiVIV0YqWUMlbUhlYm5mU0ZUVGhZWmdBPWFsPHw8fQp6XnpUJV9YRTJCKChH
RjlKTHoqMyUmeEhSRWV2Q3dYVXtIJSVPYGY0Zmwyc0V8al9LcDkwZ2EkdnBLLTwrdFYhMm4KeiNN
RUlfKExCMCo0dnVBK0xYI2lYRXdzbENwP08tR3VaUD5qS344dGJiKVZpZXt4bSlocX1yQH1NcWRA
PyZtaXlKCnppeEZ5YDB8OFpaWFhZPlpFKjBPeUJKRC1xUEttflI5PnpZPXt2UWFeZzB2YmhkSzhU
KkU1MSlwJkZgcz15b1RiRAp6UWY+alc0dGJ3OVp7OGczJENqdmdpd1RDN2o+dD97YF9VfW12X0lQ
QkBvQj1UZVk1QCl2cSZGM2BaeT5XQk0pOWgKelQoMTQrR1MpbnU9Z3h6fDBAfUhQdUFGa3BEZjlL
Zl8zR3xYYGN0N3A5VFNWRFNlbD9RT29fb2RtUFA3NUNAdDBCCnotflErZXo1czhOWlchPERAei14
WWB8UHZmfDdRZF8mZDkxfntgfm4xd1lBX2VgWG1KflMoR1FrVWJWI2pSVyhLeApwemF6cEVzU1d5
d19Kd3ZNWlQpdWB7e3lpTipXbHJfU0dORUYwMDJvdlBESExrVjFsaGgoblNDTwoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9zdGFydEJ1dHRvblByZXNzZWQucG5nIGIvU291
cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3N0YXJ0QnV0dG9uUHJlc3NlZC5wbmcKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGQ1ODJlYWZjZjdiZDNlYTcxYTdjNzBlODM2NzkxYmIxOGJmY2Fj
ZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMjI4MAp6Y21WPEUycDlLPlApPGg7
M0t8TGswMDBlMU5KTFRxMDAxWmUwMDFabTFeQHM2alErVDcwMDBRRE5rbDxaU1A4WTUKeitpejlY
N1JKfVVecy1BXjMjbztJMCU/VXYxT2lmczdzT05oMlk0KFBnOVJSfSNeP2hvTkNhUVIyT2YtKXMx
TT9XCnorRi0qdUlTPXBgTkg5a080PHRONTB0dlE7d3Y7THFsd041fF9qZGZ8VEhvczJ5UkdgNXZ6
ZEYkSjt4Wnxffnd7bgp6JmI0K0V4bSsmclRYbDh5bDllbDA/ekgoUWxGOCkjcnB4JkhlXyVYanYy
R2dmbkpaVldiUE5tKF4hWUlvQkE3QGQKemtfYDxGZHJMfTZURmM3SERwUlJjS3NTPVV7b2d2eVgw
cmtEa0B4UTEzJnpJQTJDY1c5S1kjd1AmMVZWYjJ0c2ItCnojKkxxcm16T3RaR01TKlh3QTdKPHB5
fmNyUWlXZztvU0s/KXtxRWhua1BMPjBoZmtoNmNXeVQlKD5RRnt1d2Y3Ngp6RGs+QGglYkBFSlF9
K0hUbDh+YipsTyFhYWM5ZmNwKF5YU19sJjBvWnR5PVo2Wkw3OyVhZEVOQi1mUlFgV00wNjQKemAl
T0E2PStFciZnJmY0TlcjQCFwVG1HX2ZgKV9LXm5sLU9pUiNyWWVaezlxWUlnRHUtKGc5RkZyfD5A
NThYOGhyCnpEM2s8TkZUfSVeVHwlIz5AMWByVXE+V2lkKH5xJk9NTVh0M3dpRSFHcShGUjBhYSt5
SXVweTlAT31yWis0aHYkQAp6O2xpZkpWS1Q3Nms2azMyYTcpYG40Zn5FbCYwbXFgV3xJJm5kbGRI
Wnt+UyokYF4+ZXgqcGxWSWt1QEpYMiZTXyYKekpAKTU5a2BicXh3MntkR0Z4Tkt2IzJ9OEg3Snd2
ITZCODNiUmFJNDFMP0YmUUw8eXU7PSZ5TjZWUVchbHBQQllICnpEfVZfaTAmK3dPOTIpQFdueEQt
Y2c0bSsteUhDTyZnTjF6fHJYIzJUYSZUN09oeDd6eE9qYjA5KVl4LXpMKE1CTgp6ez4wRiFtQSZs
cjlVQz5hSTl7TyQlMFEwREAkdkQlRT5hdWp2VWEqczZmekFSeXw4SXNJP0JMbW1ENz41K0R2ZFQK
eihKN3x5QEI3OWxMejVWNGpBWnAzZn14P0krPlJZUGRlXlVDZWAjYzdCKW5SfXI7KDM2Vis7bmho
fGp1cD5uPyNZCnpJNT9PYTlVWFBwJUkqeHVYZDxyJGVJdD0lPHAhUT5lV2tUOyt0ekpNdz5gZnR5
Un5fMWp8RXQmRWNreEA3ITA8Ugp6TjA/bj5KcU89RV89d2ViR01QP1pZeH1CZ2lII0U0M0dFdkdf
XkcpSmljRnlkb1J6TyN5U0ImM0olQUpWQTBHWk4KelYrMlE0bEw5TjA7N3Z8VzJINF8qRkUoSS0z
QVFpX1dBbU1zb0p+UjZ3UV5oODtDbHooVGs1USVrQWEmNSF4bmdvCno+PFktJllZWXhIKX5FMiVK
UTdUPiR1NCV7ZmxneSZUIVRfYlFhM3A3K089IVk0bj0mZEl5KmMyX3E/XkkrRD51Pgp6cn08Qjck
WlR2SUU4Z0R3Yn5WMT4pNCopbSp+MDc5ajRiKz9GK29pdD4xNURJUENXYlhYV2lDQHV0RChWOCpo
I2YKelBfSmFPb2tERGQkRjVTVkVDXnJXQWUqMFNldDtPMTBTUXMmZTQ4MEgyciRONkQ9U3Y0PW0l
V3crZigyRWM8MFdZCnpoaXZ1a2Q4eHQlYyYtTFA0Z3g7LWYrMVY1P2RgcHZTaX5mQE5ENEN+WHdP
SWZYaiF7RFA/RXQtbj5OSztpPn45Rgp6anRSRWFmM2FZRyZLN3dtUV59eUh4WDR9YjlVVURMekow
XlNoTktSUHZNIVI/ZyNAIWsmLSM/VFdrXm07UDZRN3cKemVLN0MkTktiYzlDOUNGMUs9JFVeLWs1
LWArMWMzfU9nZmN6VGl0V0RyIXY7dFZBLS18ckVJYXROeV41WlZ0dnR6CnoxfDtjcWIjLX1RYntm
bXN2Z28jT25ae1FjMmJge3E2eEoxZnd3PmoxSlIxOzBlbl95OEA9WiZMIWFfd3NrP3k0Kwp6SzEy
fnsmYWI9QkMpOHx5YSZ6UHhXe3BmazJwZVR2R1F4N2c8YE4+dGdwYkw1ZD1IfGBUR25WJlE+LUtp
ZGF2fmsKenh7MnQrWUh0SnBiKjJmKml6JlpuZTkwUitJLTJafWhMTHc0VDh0c3RJcGdSOVRVdWQ7
QjZTJEpeVCpEK0BxYFdQCno+ZyNAMD5OUVYyYSFQcVFnX05ZT0E9d2QtdHBgSk1OV355cUchZkd7
SlMxTExXV2VAKGNseF88OE99OGJUM1Q5KQp6eGVfUjlIQ0E2I2wodHYmQFlpNF9RfGJ1b0FqdTlO
bytAQnk0b004WnJpcmhQS0wzIXwxT2FnJWZaaEJ4V0s2QjgKenNwKDwrZnB3V2NgSSUlWl4lNUlP
ZjdgSWQyVlhGUiQ5ens7Un1IYTU1P3ZsYU8oP31ren1ZcWZEN0wlcngmVjxNCnpmQWFCdF82V1I5
Q2IxUlJUb014NDskeXk1SntIKS07OWdZJk1+IWhfNE4zXz9JKDV8RS1oTGtlKWErVlZlQ1dgagp6
MGVlQlkjansjaCU0YEpEVlNfQ2A9MzZUcUZ1flNvQ3hlUEZpRVZzfTYraSR1NnFnalVgZ3NUNUoj
YkMpJGp3aH0KelVmRilFZWNaQnEoT3kyPzNvUVl1R2RnMmwwPz1WfD9BV24hZTArQGtgfWc7TyV9
eTI4dEdGT2p3WTlhYytVWUNqCno1a0AwKEQ0ZE0wOVhufjJzZFRGVShlO20zRDlIUyhgNCF1QFoo
bkZ4eCFseysra05aU3R4P08/cXktKFpmSWx4Xgp6eldrQCVafHVIZkw+e3FVZTZiKD9aQ3woYnBG
REFMRzAkZipTUXJ9e08yZ2g0aHZQVHVte2RkI0JlRG5wIy1EJW8KemQ1dWw9eDR6VUdaeGMzS3dy
cDh0b3VTX3JgZHxGPChXNktFeng/OU04cD1vOHRDQ1h2NkF3UEwpU15XVGNWO3FXCnpeWmlxVkxJ
I1laYGJlSFZiR0c4cjx4NzJ5fDd4dCVzP3E8SU1sSjUheDNCTlNpNCUpVU9HXjNTPFQze34xbDVS
Mwp6azF9fH1ZQjBEI0Z+aTxKbHtueGA9YWxJSktKJnd3Q0NAWklHdHpkbj9mVEBzPkhBT3QzTURx
ITtgOUNnemg2PzgKejNBWXRZdStAfGhhWD96VGt5eVFZXzEqO3c3Vk09UzNoJCVIQz8/TkJ4WCpN
VEVRXiElXzRQTCFuO0xXVmJAZHMwCnpHalgtbi1RN0xaXjs2Zl89fkpmQGNGKX4hZSNXUUItM2xC
RXZNK01QUjI9NVc5TitFYTJlKXRFS0FiUk93ZX15Ygp6UX0hJmEwen56b2xfOGFPckpqPXQ1SlV3
aTh8O05hS25QSDROYnIlO2AmO1lCMHBFVit7JnctPSNpcTJLbHp0PDQKeiM4ITFjZkNMa1cjc0pX
P2RXZFFEdFFiMlE1Kit6c3FwbXE7N31AJGBeeCNzaiNfSV4mOyhyMCNrTG5OWHhAcGw/Cno8QXtT
VjhUJipTKD90K196V1lRVnImZnNQVl9gIUhNZ0pyP2UmTkR9Y1RBdG5gek58KEAtLXYpeD9LVkQq
JHkmNgp6fEQmY0xiSj5YMFR6VkVxWEltfEV6Z3EybVc/T3AlYWA/bXExel8pVjMkNV45dSkyQk4k
U3R6QGF0a3YzZlJySzUKelVkRVYpdG1adGtJZnJKOyVqJlQ4cFJKekgrSlg5P3tXSjZ6LXtFJUBZ
eSpVbS1DclI5MDAwMDxNTlVNbkxTVFpFCkNRKTdQcwoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1Jlc291cmNlcy9zdGFydEJ1dHRvblByZXNzZWRAMngucG5nIGIvU291cmNlL1dlYkNvcmUv
UmVzb3VyY2VzL3N0YXJ0QnV0dG9uUHJlc3NlZEAyeC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDMxNmNkNjgzZTkxNTM5MTdmZGVmYjVhMGQ1NjUxMTE1ZGE1Yzc1ODAuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgNjIwMgp6Y21WLUE3eyV2X1ApPGg7M0t8TGswMDBl
MU5KTFRxMDAyK2AwMDItMzFeQHM2anVHOyQwMDA7UE5rbDxaY21kVSYKelheXkU9ZEI9TzM+N0l0
Xm8oKyV6JW02YHsxd0o0dUl4Xz9fRDVRY1okbWwzYUMwMj5+NUx4MFV0cU0hPmd+ZD02Cno1aC1L
ZjgkJUpjTi0+Wn5yRW0kT0IkZz45MHpuYW1wIyV8X2VlSWR2XjhEVnV6ZEtLI2UoJndlUWV9REkr
fit5Wgp6ZERqMHE/e2VSSlolX0IrPFlaU1R0LUhJc0MtaEV1LX1+UDgkNDRLMV52YllYOUlfPUxK
RjJJTHNvJjJ3RileX30KekdUIzxgYEBWaHFvXytyTD1mNDtIdDVNJVhDbHooaTI0SHxSN0ArLUdm
Y0J8QGM+fUJaZGkmO2c7YHNNZlhLWlkyCnpANDxyeXBWX2wjJmpUO01ffk5GKD1SbXQhU15+KDlK
TmV8M0ZJYyM2O2d2QG5iPHthQT94TjNgR3BDQ2s9TlJYMgp6Y0wlYX5fO0NeQ3EzPWQze256PEsk
TjF5cDw2V2JwcXR6Sk17ezgjXlhYbm5ILStidyVtbVpJQz9UKU1rRmJXdHYKentxKW5uZTlTUyZk
QDtiOCt1UGdRSEZ4Z1pFLTF4R052S2BYPHMzO1Z0RnRaViVZd0NxKCV5LUZZMEg9bmg7ZGtWCno5
WGZQS3tfdllgeklvPl9mQkRPUWpRSlY2djlCaHtNUTVGTCktNE1iRWNqQ3I5VCp0cz5nKCZQS3gz
IW4tRGVeQwp6cHN2VXZLJD89c0xweTVOcTEmKTtAfTFndTZsQTg3OzZkM08wMEBvNHhvYyEoV2JT
ZHQ5cnZhRnt7Q2ZBP15pLSsKek5BQHJjeiklPHpKYjs9dlooYW8rMDVabUB5QVNYUGgjWDImMkJq
ZmEjI3I4WVdWeDA0Y0BEbWBGWklqJCghTmR+Cnp1KFg0eDFEeTNUJDhLYXAxdmNuajZNbVhJdT9i
KkleZWtWI3tMM2hFbyhzZ1FeUFMqSGFZKG5JR1JadGY0UXcwZwp6T30+RzVSO19zYVN8a0VfQ35k
YStOfno2RG94TThfR2RCYVowLWBgLTdkeD42RiktUjE8Q2BMPD5ZVWdGQFQ4TVkKeng/c3RZQzBG
MUNASHBxZWQobldXOD5uSkJjbzk1UTwpd0F6Qnh7cUcwd2cmSXNKd1k7Kk5WMlgyU2doNGJhbytp
CnooPk4hQjF1ZEA1VTBAVmd7VW5DfWZ2Zl5CNSokM3xvT0F2PFhnfXZYM3xJeDY7RzZfNEJDaStA
WGNtQUQzOCpfWQp6ZCpzelFYd3w/OXd0LXBmP0hHb0FMczA2IVJzV0BhPjVtKSQlbHNXQEl7Oyo/
PzcpRW97YyVuTnN+PzhIMH5MVSQKem9fZ3ZoMV91V30yeXBIXjAwYjxKcCQwSVpQTXhidXVyZis3
PXJvJmJnOTA4K1RKY0Y9VFdPX1N5eVE3flkzWXgjCnp3Wkg9PSYzZDM8ZklWfHkhKGtvbWdKMmYp
ek1mRig4NSRiOzZ3MiY0ZlhtPCFLIUAtLXBvdXs8UGxRZXlOdEsteQp6WmBWdEcjO3V4aitNdVZi
JkwtREsmRElXeDtzUXBASDhBVTgyUUgxPncrYVEkZU40aEAlb3VRPkchaFUqYEYyVEYKek12V0tq
dlc8U1RKLW80O2NYNHBUb2J5ci12bUM0OTxDSTxiJmhJbzZwTDBSSyV1Z0JkSiQxMVE0PEEwPDY+
bHo5CnojcilFfnhNNG0mQ1drfjhNSDdRczFrTmx9bnF9fl9IU001KzAjQT1+T0M/akAkYD83Jlc2
Xyg3Kyk2aSZtIyorMAp6dVQhV0lOMDc4Wld8Tm1IQ213Y291IT9zcUx0eGh6aUxBXkQwKklfXmc0
d0RfWX1DUDRVajRkeGw0VHlzUEk2cGwKelBYUk92Jl8pXlooKk1ON0lNVlA1Ql9CNHljdHNoUGBw
RGBVZFVPR0Y0MGU0WFQqM3MwdHg3czYwWUVNbz5hP1R5CnpxZS0ocmNzc3l4U09ESmItQEpXSjxs
Xk9KbileNmBjVkJob1JpZztlJkVPJDNIen40XlBMYWtkQWh2NFFrISFaawp6Sm5AKU1TU3slYiE2
RjxvTDZeXzg1X2ElbkZsbjdob2BhYHpXZG80V3ZDKiEkI35TNTRRYFoyd2FUVG9JXnJLZT8KeldT
d29EJXZffUNXUyVqWUFRSztgS25BfWtfQDMlezl6cSlpSSs4TGMtKWRnX3c/ZyM9NU0hZyZFa2F2
ISFOdnw3CnpubSooITtvRXFAazNLVDVEYFd6UjREOSs7TThJVWI9RGJ2ZyorKUQzSlpKRzd6U3VN
RiMxREd2Plo4bn42RiloWgp6JSh0XjtsaTlnZXB4YjthQ24hMiZ0Z31xQjlHKVVkVFlkYmxEUzc5
NyVZMitgbUFgZGsyY0grdXhoODw2YkJ6cWIKelNsKW5qM0ZeMyZKfWExWSgwZXpVeHMoZjxXNUtf
YmAxO2dgYnhYO2NpJTZCZk4qM2MtaWQ8ZnJXIWdkVWlIPCRiCno8cFQ5bnI8Wkw/S0lfOTwxSE5o
Y1dlaX1zd1RocDBHT3c+WDhGOG5iMTY3c15nYjhMUkBhVT1JOTVPcVBmWiV5Ugp6S19VNzxfSEgh
Jk5idzB6OUR3NUszMn1YZyNlQnxKS0lmJEA+cEc3dEgpMiZna1lFT2VUNU9oT0wtYHlHOFR2R0MK
ekh8VUolMDExZmJ5Q2E7RmxFWFZ+KiUjbihmdWVFYz05WSghaikySFJZMVVJV3VXelk0eCRPP2Jz
bXxmY21nalR+CnphNkd9fiE8bCU7NVY/O1hpaGRNSHVAZVheaF40PHkkSyZ5Q1Z4c1hHNTQ1Tkgj
QzBsSEAqcUF2K1d4cmQ/R0xgcwp6UDJ4UmYyRmJZQUJTa0o+UXM7VyEkOyN1RHxMe1F2SmxAa25C
aGlDNS1FYEM4Jndsb15UaTZOZzIjVWhTVmstTl8Kej5SVXU3RzthQnUma1RLfHA8aTwjQ2I0aDRA
eTVnQ3E4d196ZzN3WFMqWnxhOD9iMz55cy1ycj9UMWNqeUk8KXxICno5Tj58NzlJcEduXi10Zkx2
dHMzbiFPdmEoeGlnUEh7YG1qbkZ5Y19vOX4lPFNCOCl2LVR5MzwyM0o1VmdiY3NwcQp6bTgoX2Br
XyRQSjgjJFQtY0cqdWdYekBaXm1RNCFKa3U/MWgpeHgrR1RkYXZeQFp5amV4JFU7dz0wKlh7VGNv
ZXcKel9WczE0YSZKJXxKQWd0MkxSIVhYSCNVQnpfezI5Y2goJTAma1BBN0g4fW9uJilnSFowQD0h
LVI+WW85aU80K0ZmCnokbnZWZWxRPXNJOGcxO0J1aVl+Ri1hbU5uKUNVU2txNzRyWjRfPHJTd2Zo
My1GJUR3QCpPdkpsbFgxSkl1OVVkPQp6IWVfKHgqbWMpbXd+dl9GND5eJXI/M3l1YiY9b31OdHg+
PCYkfiV7M2BrbkAwQ2s3ZnFQMjgyZzspKk53dFhRI1AKelVlPUxjdnU0ZEgoV150NSFfNElDVnJv
LU08Rj5XNSFJd1VYdjNtOURRfGZIVj9GKFB7IVhFVHAkaX43fj5aTTxWCnolSWY/Zm4rOU1qQ0ZL
QXtnT1lAYTFLX0d2dEtNQXkkQFNIZjlyYTZrIXs2UG9EeFJUakMyNGw4e3p8PWU8SD9DNQp6X21D
OGE1NWREWEcxfVJhQmV7fEBJWnktbjIkWnpXTjhRe3MwOUFuMmIpMDU3dDRRIzslOGxPZV9jdDZ7
N2N8UXYKej41O0hNVkE5YStGWUNfNlllIyV+IWBBXn4ld35LMjRjOHdfJmUmMGR6TSEtYCZiKUoj
UXNib3BQJGd1b2M3LX1uCnpsamdpYi0+X2xCP2doZ09qJTx3X3B9fExAMmlPMWtgbU1Xbj9fUGxx
b0BRX3JCYzNzbGNoYjxxMkZoJig0PilQfgp6e15hXmt6Q141Y2UmUCNMbGpMbXYpYExITG9xZiZ8
Sj0oTSNzRkJHclIjQmNneCkrVyhTcyVGa0ZEfmJNZi1UJEYKel99RUIqd2BKRl5UYE4kRSl2b3wt
WTAlKz54ZDk/UlkxX0FOVXI4KXR3c1MreTxQTGJBUFQmUGwtX2xtVFg2KFFeCnpnRGlzd0tuQHZK
QFp5VXYtYW5ecitDX0lwdGduOU10NTB2K3d5cFo/ZytreHlJfXJvdWh1dXRmVlRlVWNfMzlgJgp6
bFk4RVUpYG90cnh6MWkkP0dBS09Dcn48fDBVcVpLUFF2bGxaMlU4cWVXdlpYQDQ0cm0rcShJUSY4
c1lzNH0+aDMKem9rTT5vNFNSczM8Njk3a04kaHNNJCg8Vjk0QSFZbHVIUGUlSWQ+fDJUTDRrODtl
ZHV5OW1FJUh3I0RiOEVsKnNiCnpKOStoMFNDMiQtXkRLQCtJY0w+QFhUcnY7cW90MDFAUUg1I0Jv
O0JSeCV3SXxTfXBTPF9xZXMkPGBJUHwtQ0UxfAp6RTtleSZPJTVYK05LdH5mcCN5bDBEXysre2V7
I3tabl5wQ3NuO3pjdXp3eTF9R3UoWXAzV2VxKilIZ3hMb2x0RD4Kem0zX01sPDc+S1NKaU9gUXBT
U2FLO1lBaz9RWEA1YWdmU014VCkoXz9fLXo3TTdlcSVHWGs7SyhgTW1TYTg+K0tZCnpjSzFEWmNU
Kmc/N1JjQ0xCVVJyUmolVEdGe218JnUhdF9uO2FBUilWeFVzRHBZQ3hCfCpjPiMwJTQyMHhvd2Z6
Zwp6Zn1uIXc7VHp2MCsjTlRyTjRCUlA4I0p6TGR0ZCRhdElHaCU5UllYKHNDckhhLVB1fiFfZCFQ
VyN5JWN0VmMhP3UKelJ2YHY0OEl1Rkt3REw8MClQaTRZTHpsNiF0WTRYT15tLWlSTnFFNjQ9VXRU
KFBCQHxNWk5mYnA/fERBXzR8flhaCnoqaytJLU1SS1NmNHBsVmJjR199WStQRloqZ2htQH48ZjdV
UFlBd2A4LTIjVDlJTHQ2PTItQHp6KG53JlRAdENOcwp6P2RIdiEkMC1RbDBMYDczMHJjXlpKRUBH
PCR5azMtN05pPWRMejxIbXh3UHt8RXhFUkt4X0ooOG5AXisoaip9e2gKeiMmYSl9RDtlQGU9VWY0
UTspeTVyWEo7azwkfTZ3KlFqRUw4TFFCMU9HQTBpamU2PTdeMFoqdV8mSHtHI2NEPyVRCnp0NWFW
PVJrQCVgUGg4czFsV2w5Vyk8VWZzPTlwRHxieE5nN2hpK30/e0dzYDYwZ1M4ZkpPUldYZDxtay1O
WHhrRwp6I0BhfkxISUF7TmQtdnxHZUx8JG9AWCZCU2UmfSVrSCNkdihRZSRPV29nXndfcEtgRk1q
ZFF0KklIK3tlaVo1UVkKenhHakpJQHtxLU5fP2lndlI9KHElMG52fGFFc2NVWVNMVDlCXzZlVk5L
RGlffUd1VEI3N3hoPDlkMTlZVmpLJSRLCnpXNHt0ZHp2ZTUmMl4qO28jQkVNV2shUmo8TClObFRe
eTF1Q0VrZ3pteVNqdnMqKjwjeU09UzhreERCMDJaYUhZIwp6TXE2IzkjeGZXNk4qYTNJMFk7Y2p0
KHozUiUkSWhJYDM3UmdPPWxuPEg+dVVmVWFnR2RIaTk0VkhMcXllTzBeUlIKekM+XzlRai18KzQz
fW1fQ1FAPks/JHJEfDMkdV5tdnQoTDN7cFd7dEUyV25eLVQkK2AkNEVmR29JfVpuYHt+bFVRCnoj
RSVuNDtAcEYzJVo1KEA7JldxZUJSckFVODM3PHliIzZ9dHZyZXkra3hNRGQ8RlhkPUQoaUpEKXhL
S3BFWD0lMAp6blkjTDBVZjl6MW5jSThiXlBXVGFeND8wblBga2RvWnZ6fXxmSF9RQ2IjJDwrMTJE
JjZfWW9UengjU3YzLWRnYWgKems1WkBBYy1wLWpMMlklOHZnfXZDYHFkRi1qU35JWGcmKFZhJGpG
WHIqR1FUVWh5dkxUSmFtYGBLPVhsYHlFMDxCCnpuP0hXeCRFVmQ8PTJPOyE1Qio1N3NwRl5aej8+
OUNsP0BwPnc1P21XdyFKbURecFo8WWl5ZzJ0Pyp0USY+Ui1QQwp6PVBxUW9BKE8lYnB1NWpwXmFJ
NzBGJmxLfUM2YD9DaGdxbE90d24kTXB3cHpLanBKITY8MD4qcWshN0xDYVkmJX0KejNGdn5qKlBE
cWxPM35zdStpPzZgYn1LJFNsdj9ASUNscypvNCtUaTZ5VkxucmdfKlo4JCQ/eV52WVBveTRiKHpS
CnplM3BMb2hiNm9pUzw1czRYUyR5JHAlN1g7UEBRPTQkdFNCVD9NJHNIJHUtd3A2WShZe2M9KmJi
VXhKJkUyfCFKcAp6QjY3eklXMUdEQyVCQT1zMjhTKiZpQUBnOSpITFBxN1VyejJQT3BgJCR9U2Zy
dUt7RDRObUImN2ZjREA2ND5vYEgKelNxWH1sYnItQ0FlPn59VSVBKGo2QFZTKk1VTj5pSz1JWnAj
KipFfFFBRD87cmoyeURobEQ3dEclNWtoYT5uayVKCnpiSmQmWlkqPzN8UE1xXkZpYnYqNDslRChL
NGBifSYzcjYhfF9yPDNHUXkrbnYxaXN8O3w4fVQ4cnMma15mPj5pPwp6cWxhJDNgUjI5e2U5NF59
KyFXIzwpaS0mO257JUZAd2dYa1A1Rko0MjFqM2xENGtnak0/ITBUZWBnUWNvdig4KzsKel9Qbih9
Vz1IUz1JRU9Namd4eUZoY1Z3TjlSPGZLUWVod2NWWkdPVkdYNkBQXjZUNml5YSZvN0pUJDg1Pj1D
Z2s+CnpRMGBwdzFmeEpqI345RUVWan5Ed01BfTBTSnYxRDVAPCUzQk47RyFEbilyJDZlK2k8dTdz
ZT1LST52PU1uYTI7RQp6SWU4WXdrNk1YRSUjXnxtbVltNiozMk1vfUE7VUt7KlR2N1dDViZ7Vllk
RTkzM3E2Y3VTTWA0Rm1hcC01UzZhNVAKej4pQ2tFIys3a1p7a2I0PWxKYG5VTFUhaERDaDhvdG9N
KChMYn5wWnJLYGRoR3I7ZF57eGxAbmxLV240VFBUUkNFCnpTa0AoK2xoLWtVU1QkfWxrVWpxUjxC
UXxAVStvaFY2TnlgaXAtMkRpKFBpPEE/PFhuTEZKaEtnWFk+SzN0fXx5bwp6JXdyMzllbEhRPCMy
XjtCdHMxJEtHcjNiby1ocyVCUUJ3Uk4lZFBEeVdrcTw1MXJoM3MwbXlhTlVSUW10UH08fSUKemcr
MWAjMUx2K0B2LSReTkdzM1JuOTdHcExmSDg0bj5PKG9GMEJvP1Fod2FGUlNBWH5pXz9gX3NkfGRt
dCpYfH1+CnpjYnwxd29BRkFERXpMYTB3ZkVSI2tHKHYwKHNBcjI5TXc2fnV+ZiY3RGRfZHJVbXU5
YCVDN2lvKj97d1BHO0YlcAp6dHl7UDMreip9bWRefkYzNjEoVTR1PHYwZmtyOylReUFLJkw9Oygy
LVlYQ2tUdzw8c1IjeTdyaztJaGp1YHZBVnsKelZySlFgeDhBenpgYGBRaTAjdGNgTEVXQj9KZTFM
fGI0N21VTWpweyRafkhVYENtM2FDQE5gIz9EPjZ5b0BQWWR1CnpTaClPKjwkRXZ3I0tsTUZyMGUr
amB0T1FPazhKOUM7eTw0TmZickt9ZCtwVEZJfGZ+MldJSTxLUyVDTHVlQ3piWgp6dEZPTWdfcTt6
az8/WUx5OXNsU2ZrTTFNS0BJT2g7PFN1eGB2PU5KanRnSyVoWD9Ke0E/eT5wdj1ic2dpZEA1KDAK
ejQ9a1dgMFEkKEY+PFZgVnlNYVRBYVU/Y3o9VXNQQnRYI1FyK1RzfG42XiNZaHtuJXJWSkA9aHx8
SVRSYT1EOXFFCno1MS1aaD9mQ21PMlA0T1dAbDw2cktGc2dDPSVTMDNOMVQ+IyYrMX00YHxQdTBV
JWNYcj9EUVQkPDhSXnNCMFN4OQp6QT1HRWZeI2RlRjBKVCN1a0x1eiteNSskUkBmQy0mQkVqYTA7
NG5NVnAoX0l3TD49TkI1RStOQkwtRCljLWRMUXMKejFmcEA/WlRpZUomeTI8SWpLYHpzZXZUYWZw
cFh8Mj5oO3RgPntoa3NPKFRIKChUVHcwJGIkbnghalppNWN8e0U5CnpwJHZAXmNvalUoaDVmQWRC
YnklQ2hvOWVOQkx7TEpDLU5zcGNOfUIjWnE+XkFPRmdqYmppKGl0IyNUT3cpJGtuIwp6anlyMF5q
PytiVlB3Mj0wMVNHa31xMjJ3JjZIb04tK1BRMWpNXj1BaXBrdHBNMSlnMXJUeUZoYFRYKUBZI35z
NncKelB4VGNPRSpqS210JD02RWRUZl5gTTtDck1nZ05JJi12UntIVFFNZit2JFklYHVHIVUmaV8x
el57OVZEVy1aQGp9CnpsbTNESnVBYmlOK296TkZ7PiF9IUtMM31XLX1UQ2ArdXRZNzdXYntwNk57
TWwtaDF6WXNBLVojMXczfmlsJEw5JAp6OCZedWpPTSVuJm8+LW1qMF9VWFhIXihLI0NwdEQobDRT
VF5PMH5LSD0wTntjIWhya3EoQCFzMHprWXBCZUNjc1YKemVFIWgtbjk8P2VyMSZOVnY1MUtxITFB
eiNIJl5uZFRMKmxKZ0xRTDZ4JS1xcyFMQiN7Zlh1T1JRb1J1OFQkTn05CnpxMD98Jio5QE5MO3By
eWdOO2lVYXozez5kXlh8WHp7XyEwPGNrRGolJXJvYXYqdF5rcVVtTGVWeVcoYmsmTSR1UAp6aSRS
SmRmOWZHZEs1V1UhSmszMiphJj9+RTtGMENkQXh3e2x2M0c7Yyh6RE0jYEAwY24qanBKX05mMGc0
IzlUR3oKelMpRFFuXlRAc0kheE5DUGlBMjJhX2A1NFJIaGctK3p9aHV5Mlp4NC1XPFAoSk5ZRmpJ
X2pHVW07cFBMZUFTM2F8Cno1ZntaZmxnZ2YpMExrK2x4eHBpfEUmKERKPGhkU2VPcmVeKSYkPEZR
LVU7cGc9fSYqVWpAeWppI143Zlc8YX48TQp6QTtHZF45M3NuPGRHckJAQ1hnbklPbntrVkN2ZnRg
RjZpVl9QZCY5VEl5PEZqQCM0ak1ten0pcTszPW5eKHRYLSMKenJ3em4tJmR+ZyE+WDZ2OGNoQk1Z
Xjd2QCU7RjAqZHJqc3ZrZVI8eEY5WHNhN0pDYj0zaStqYU17Z1YlWGtwckVXCnokZTU9fEdrRUNI
JE99SCNaVHslZishU0NJIXsxaClvR258bj85I1h6LUAqTTY5Vll9Ym42JmNIOz43Pz0hYG4lSwp6
UEV2TjBhMUktamhOb3FKakJeZz1oWWtRU3JlfmZwenpKVGlyfVczVHU5PF9pa1IkaUheIU9hKk9J
eD5Ze256UzcKel92TSNnZWt7Jn5LWj0hRyVgVzhKS3xsPHAxZHhaOCV7bGQpdzx2LU83eyVkUjhJ
KjNLUWhYcHMtPGF9QDBZeykxCnpEXnQhSyV7bDhxQ05EKStIc18kXjBYN14jdkhOfW1YNlJQe2hR
aCg2T1BBZ3J5WUt5PkcoZ2I/KWhYbGJQPGZ7NAp6NUorMlglQSh6WSRtI2Z7KTE+aEQlQj19Vis7
YCVldWRvP1FVd310ciVwNlRCcEpQLUNIODFGM3IhRXhtZnt3KGAKekN+Z20wZVgqZVZSeDk0anwx
ZDVoeDVja2B6SmZtdldzPD5BTV5mV0NoU0piMjBtLWBmMH5GM3Q9Jn5iQWVkUEtRCno0OTNSRDZy
UFRySnBSZ040ZTAwfTllSnNDai19K3VWYXBEVEtafEBEU2dHM3RGcTlgRXpfO1c1PiZjUE8xfEF1
Qwp6Xk5GSno5RyskWFhfalQzJXYmSGY4OWFUcz5se35zO3pifFlHY0ozblRnRV5pblpER1E9OXV6
Oz1TS3pjPTxXWGEKejdRP3E9dTZieFEwbU1tNmpEKyorO35zND96SV4+QG9DdTtwR0cpRzFHTm01
bHgmaT5DMl4heG5XZTNJajtKZjtrCnpBWnJ6RGp3NEBFVl4rMilwN04zcypQTktrSm1ZbEU8SF5m
P0BrSGxfQElDRXxPMEU3N19kd2pFe1olfXl7Rl51Kgp6Ul84PHhJfWJlKnVNM0xvP0tGJC0pSGRo
UCUwQHVjQzVFeSg4KnxfczRTM00jQms/MX51Z0FVU0tiUFIpcVpZdHcKekIwaUxmMyhMOWojUU1z
KD17P2A4RGQhdXtQMyN0dll1SFJYTTlQRnNLSEZmfHM8fWcpRllWdXx8MmxuUUFnNmg4Cno8RkpL
fnRMK2NvYztrKDR7Xm1Fb2BSfndhOT03SEtaMyY9Q2sjdjlEK14mbFklIWF0SWQ/M0pFJFJTMkN7
S3g7Kgp6cEB5PiMmTjFyZktVMyRSdzdQPG95YEF+V1g/aWk5elZJRjM/VGliP1B2WUlpe2FkemRg
RUpQQ2VsPjFaMEY0KkgKenNBX1RpJU1OUX1OM00qK25WK35XM0dxPXVyeiUkWV9sRXtQbGhyP201
cl4heSptMy1HN0BIJH45PFdTcCVVTnBxClllLSMpfm5RbUtOZzglPmswNypxb002TjwkZjxmdEtv
ZDVzOwoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNWE0NWQ1ZGUwNWUyZDYxMTdlNjgzMTExZDMy
MjQ0ODNlNTU3NGFhZS4uMGUwNmVlMzc1ZWJhZGViYjYxYmY3MDUyNjc0NWJiOWNiMGI4OWI5NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE2MzcsNiArMTYzNyw3IEBAIF9fWk43V2ViQ29yZTEy
RXZlbnRIYW5kbGVyOW1vdXNlRG93bkVQN05TRXZlbnQKIF9fWk43V2ViQ29yZTEyUG9wdXBNZW51
TWFjQzFFUE5TXzE1UG9wdXBNZW51Q2xpZW50RQogX19aTjdXZWJDb3JlMTN0b0RldmljZVNwYWNl
RVJLTlNfOUZsb2F0UmVjdEVQOE5TV2luZG93CiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4
dEMxRVA5Q0dDb250ZXh0CitfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDE1ZHJhd05hdGl2
ZUltYWdlRVA3Q0dJbWFnZVJLTlNfOUZsb2F0U2l6ZUVOU18xMENvbG9yU3BhY2VFUktOU185Rmxv
YXRSZWN0RVM5X05TXzE3Q29tcG9zaXRlT3BlcmF0b3JFTlNfMTZJbWFnZU9yaWVudGF0aW9uRQog
X19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhQzFFUDZOU0ZvbnRmYmJiTlNfMTVGb250T3Jp
ZW50YXRpb25FTlNfMTZGb250V2lkdGhWYXJpYW50RQogX19aTjdXZWJDb3JlMTZGb250UGxhdGZv
cm1EYXRhQzJFUDZOU0ZvbnRmYmJiTlNfMTVGb250T3JpZW50YXRpb25FTlNfMTZGb250V2lkdGhW
YXJpYW50RQogX19aTjdXZWJDb3JlMTZjb2xvckZyb21OU0NvbG9yRVA3TlNDb2xvcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdl
NmI2NmQ1ZWYxYzQzOWU3MTEyN2VjMTM3MDI3YWUzMTRhZTU2NjUuLjBjYTY4OTE1YjA5NzNiNmQ4
MjA4NTNjMjI2NDUwZDZhNWZhNTA4OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkzMSwxMCArOTMxLDYgQEAKIAkJMzE5RTY5
QjUxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5RTY5QUYxMzI5OUJCRDAwNEFD
OTFBIC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuY3BwICovOyB9OwogCQkzMTlFNjlCNjEzMjk5QkJE
MDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5RTY5QjAxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktp
dEFuaW1hdGlvbkxpc3QuaCAqLzsgfTsKIAkJMzE5RkJENUYxNUQyRjQ2NDAwOTY0MEE2IC8qIENh
Y2hlZEltYWdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTlGQkQ1RDE1RDJGNDQ0MDA5NjQwQTYgLyogQ2FjaGVkSW1hZ2VDbGllbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkzMUE5NjNB
NTE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b24ucG5nIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUE5NjNBMTE2NTVENDI2MDAwRDQ2NDUgLyog
c3RhcnRCdXR0b24ucG5nICovOyB9OwotCQkzMUE5NjNBNjE2NTVENDI2MDAwRDQ2NDUgLyogc3Rh
cnRCdXR0b25AMngucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMUE5NjNBMjE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25AMngucG5nICov
OyB9OwotCQkzMUE5NjNBNzE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25QcmVzc2VkLnBu
ZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBOTYz
QTMxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZC5wbmcgKi87IH07Ci0JCTMx
QTk2M0E4MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvblByZXNzZWRAMngucG5nIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUE5NjNBNDE2NTVE
NDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25QcmVzc2VkQDJ4LnBuZyAqLzsgfTsKIAkJMzFDMEZG
MjEwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjFCMEU0Q0VCNkUwMDdE
NkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgKi87IH07CiAJCTMxQzBGRjIyMEU0Q0VC
NkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUMwRTRDRUI2RTAwN0Q2RkU1IC8qIFdl
YktpdEFuaW1hdGlvbkV2ZW50LmggKi87IH07CiAJCTMxQzBGRjI0MEU0Q0VCNkUwMDdENkZFNSAv
KiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUUwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5z
aXRpb25FdmVudC5jcHAgKi87IH07CkBAIC04MTI3LDEwICs4MTIzLDYgQEAKIAkJMzE5RTY5QjAx
MzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0QW5pbWF0aW9uTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzMTlFNjlCMTEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9u
TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0QW5pbWF0aW9uTGlzdC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxOUZCRDVEMTVEMkY0NDQwMDk2NDBBNiAv
KiBDYWNoZWRJbWFnZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
YWNoZWRJbWFnZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUE5NjNB
MTE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b24ucG5nICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gc3RhcnRCdXR0
b24ucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUE5NjNBMjE2NTVENDI2MDAw
RDQ2NDUgLyogc3RhcnRCdXR0b25AMngucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gInN0YXJ0QnV0dG9uQDJ4LnBu
ZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxQTk2M0EzMTY1NUQ0MjYwMDBENDY0
NSAvKiBzdGFydEJ1dHRvblByZXNzZWQucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gc3RhcnRCdXR0b25QcmVzc2Vk
LnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFBOTYzQTQxNjU1RDQyNjAwMEQ0
NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZEAyeC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAic3RhcnRCdXR0b25Q
cmVzc2VkQDJ4LnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQzBGRjFCMEU0
Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRBbmltYXRpb25FdmVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQzBGRjFDMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRB
bmltYXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRB
bmltYXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUMwRkYxRDBF
NENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbkV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE0NTM1LDEwICsxNDUyNyw2IEBACiAJCQkJODUxMzZDOTQwQUVENjY1OTAwRjkw
QTNEIC8qIHNvdXRoRWFzdFJlc2l6ZUN1cnNvci5wbmcgKi8sCiAJCQkJODUxMzZDOTUwQUVENjY1
OTAwRjkwQTNEIC8qIHNvdXRoUmVzaXplQ3Vyc29yLnBuZyAqLywKIAkJCQk4NTEzNkM5NjBBRUQ2
NjU5MDBGOTBBM0QgLyogc291dGhXZXN0UmVzaXplQ3Vyc29yLnBuZyAqLywKLQkJCQkzMUE5NjNB
MTE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b24ucG5nICovLAotCQkJCTMxQTk2M0EyMTY1
NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvbkAyeC5wbmcgKi8sCi0JCQkJMzFBOTYzQTMxNjU1
RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZC5wbmcgKi8sCi0JCQkJMzFBOTYzQTQx
NjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZEAyeC5wbmcgKi8sCiAJCQkJOTMx
NTNCREIxNDE5NTlCQjAwRkNGNUJFIC8qIHRleHRBcmVhUmVzaXplQ29ybmVyLnBuZyAqLywKIAkJ
CQk5MzcwOTE4QzE0MTZEODZCMDA0NzczMzMgLyogdGV4dEFyZWFSZXNpemVDb3JuZXJAMngucG5n
ICovLAogCQkJCTQ2RDRGMjQ4MEFGOTdFODEwMDM1Mzg1QSAvKiB2ZXJ0aWNhbFRleHRDdXJzb3Iu
cG5nICovLApAQCAtMjYwNDYsMTAgKzI2MDM0LDYgQEAKIAkJCQk4NTEzNkNBODBBRUQ2NjU5MDBG
OTBBM0QgLyogd2VzdFJlc2l6ZUN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJCTFBQjFB
RTdBMEMwNTFGREUwMDEzOUY0RiAvKiB6b29tSW5DdXJzb3IucG5nIGluIFJlc291cmNlcyAqLywK
IAkJCQkxQUIxQUU3QjBDMDUxRkRFMDAxMzlGNEYgLyogem9vbU91dEN1cnNvci5wbmcgaW4gUmVz
b3VyY2VzICovLAotCQkJCTMxQTk2M0E1MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvbi5w
bmcgaW4gUmVzb3VyY2VzICovLAotCQkJCTMxQTk2M0E2MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFy
dEJ1dHRvbkAyeC5wbmcgaW4gUmVzb3VyY2VzICovLAotCQkJCTMxQTk2M0E3MTY1NUQ0MjYwMDBE
NDY0NSAvKiBzdGFydEJ1dHRvblByZXNzZWQucG5nIGluIFJlc291cmNlcyAqLywKLQkJCQkzMUE5
NjNBODE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25QcmVzc2VkQDJ4LnBuZyBpbiBSZXNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAzNWMzMjMyOGMzNDNh
MGY1NjkzMjk2ZDcwNTcxMTc3MzA4YmFhYjI5Li5mNjUyYmE5Y2IxY2MxMzUzNjEzNGUyZjUwMGU0
ZWVjOTkxZDE3N2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlICJQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQu
aCIKICNpbmNsdWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgorI2luY2x1ZGUgIlJlbmRlclNu
YXBzaG90dGVkUGx1Z0luLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlICJT
ZWFyY2hQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJXZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaCIKQEAg
LTM3Miw2ICszNzMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmlydHVhbCBi
b29sIGlzRW1wdHlDaHJvbWVDbGllbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCisgICAg
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJbWFnZT4gZ2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbklt
YWdlKFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpCdXR0b25TaXplKSBjb25zdCB7IHJldHVybiAw
OyB9CisKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgfkNocm9tZUNsaWVudCgpIHsg
fQogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBz
aG90dGVkUGx1Z0luLmNwcAppbmRleCA5NzJiMmJmOTA0MjIzYjViNzc3NWYyNDI5ZGMxNjI4M2Ew
ZjE2ODE1Li41ZTYxNmE2ZWIwMGZmZWE3MzEyM2EwOTNkN2VlMDUyODMyYmUwYjU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5j
cHAKQEAgLTI2LDEyICsyNiwxNSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJl
bmRlclNuYXBzaG90dGVkUGx1Z0luLmgiCiAKKyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRl
ICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJDdXJzb3IuaCIKICNpbmNsdWRlICJGcmFtZUxv
YWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYWRpZW50
LmgiCiAjaW5jbHVkZSAiSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIk1vdXNl
RXZlbnQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCiAjaW5j
bHVkZSAiUGF0aC5oIgogCkBAIC00NCw2ICs0Nyw3IEBAIHN0YXRpYyBjb25zdCBpbnQgc3RhcnRC
dXR0b25QYWRkaW5nID0gMTA7CiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6UmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW4oSFRNTFBsdWdJbkltYWdlRWxlbWVudCogZWxlbWVudCkKICAgICA6IFJlbmRl
ckVtYmVkZGVkT2JqZWN0KGVsZW1lbnQpCiAgICAgLCBtX3NuYXBzaG90UmVzb3VyY2UoUmVuZGVy
SW1hZ2VSZXNvdXJjZTo6Y3JlYXRlKCkpCisgICAgLCBtX2J1dHRvblR5cGUoTm9CdXR0b24pCiAg
ICAgLCBtX2lzTW91c2VJbkJ1dHRvblJlY3QoZmFsc2UpCiB7CiAgICAgbV9zbmFwc2hvdFJlc291
cmNlLT5pbml0aWFsaXplKHRoaXMpOwpAQCAtMTIyLDMzICsxMjYsMzYgQEAgdm9pZCBSZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRSZXBsYWNlZFNuYXBzaG90KFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdAogICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgc3R5bGUoKS0+
Y29sb3JTcGFjZSgpLCBhbGlnbmVkUmVjdCwgQ29tcG9zaXRlU291cmNlT3Zlciwgc2hvdWxkUmVz
cGVjdEltYWdlT3JpZW50YXRpb24oKSwgdXNlTG93UXVhbGl0eVNjYWxpbmcpOwogfQogCi1zdGF0
aWMgSW1hZ2UqIHN0YXJ0QnV0dG9uSW1hZ2UoKQorSW1hZ2UqIFJlbmRlclNuYXBzaG90dGVkUGx1
Z0luOjpzdGFydEJ1dHRvbkltYWdlKEJ1dHRvblNpemUgc2l6ZSkgY29uc3QKIHsKLSAgICBzdGF0
aWMgSW1hZ2UqIGJ1dHRvbkltYWdlID0gSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKCJzdGFy
dEJ1dHRvbiIpLmxlYWtSZWYoKTsKLSAgICByZXR1cm4gYnV0dG9uSW1hZ2U7Ci19Ci0KLXN0YXRp
YyBJbWFnZSogc3RhcnRCdXR0b25QcmVzc2VkSW1hZ2UoKQotewotICAgIHN0YXRpYyBJbWFnZSog
YnV0dG9uSW1hZ2UgPSBJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoInN0YXJ0QnV0dG9uUHJl
c3NlZCIpLmxlYWtSZWYoKTsKLSAgICByZXR1cm4gYnV0dG9uSW1hZ2U7CisgICAgc3RhdGljIElt
YWdlKiBidXR0b25JbWFnZXNbMl0gPSB7IDAsIDAgfTsKKyAgICBzdGF0aWMgYm9vbCBpbml0aWFs
aXplZEltYWdlc1syXSA9IHsgZmFsc2UsIGZhbHNlIH07CisKKyAgICBpbnQgYXJyYXlJbmRleCA9
IHN0YXRpY19jYXN0PGludD4oc2l6ZSk7CisgICAgaWYgKGJ1dHRvbkltYWdlc1thcnJheUluZGV4
XSkKKyAgICAgICAgcmV0dXJuIGJ1dHRvbkltYWdlc1thcnJheUluZGV4XTsKKyAgICBpZiAoaW5p
dGlhbGl6ZWRJbWFnZXNbYXJyYXlJbmRleF0pCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYg
KGRvY3VtZW50KCktPnBhZ2UoKSkgeworICAgICAgICBidXR0b25JbWFnZXNbYXJyYXlJbmRleF0g
PSBkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKS0+Z2VuZXJhdGVQbHVnSW5T
dGFydEJ1dHRvbkltYWdlKHNpemUpLmxlYWtSZWYoKTsKKyAgICAgICAgaW5pdGlhbGl6ZWRJbWFn
ZXNbYXJyYXlJbmRleF0gPSB0cnVlOworICAgIH0KKyAgICByZXR1cm4gYnV0dG9uSW1hZ2VzW2Fy
cmF5SW5kZXhdOwogfQogCiB2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpwYWludEJ1dHRv
bihQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQog
ewotICAgIExheW91dFJlY3QgY29udGVudFJlY3QgPSBjb250ZW50Qm94UmVjdCgpOwotICAgIGlm
IChjb250ZW50UmVjdC5pc0VtcHR5KCkpCisgICAgaWYgKGNvbnRlbnRCb3hSZWN0KCkuaXNFbXB0
eSgpIHx8IG1fYnV0dG9uVHlwZSA9PSBOb0J1dHRvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAg
SW1hZ2UqIGJ1dHRvbkltYWdlID0gc3RhcnRCdXR0b25JbWFnZSgpOwotICAgIGlmIChwbHVnSW5J
bWFnZUVsZW1lbnQoKS0+YWN0aXZlKCkpIHsKLSAgICAgICAgaWYgKG1faXNNb3VzZUluQnV0dG9u
UmVjdCkKLSAgICAgICAgICAgIGJ1dHRvbkltYWdlID0gc3RhcnRCdXR0b25QcmVzc2VkSW1hZ2Uo
KTsKLSAgICB9IGVsc2UgaWYgKCFwbHVnSW5JbWFnZUVsZW1lbnQoKS0+aG92ZXJlZCgpKQotICAg
ICAgICByZXR1cm47CisgICAgSW1hZ2UqIGJ1dHRvbkltYWdlID0gMDsKKyAgICBpZiAocGx1Z0lu
SW1hZ2VFbGVtZW50KCktPmhvdmVyZWQoKSkKKyAgICAgICAgYnV0dG9uSW1hZ2UgPSBzdGFydEJ1
dHRvbkltYWdlKG1fYnV0dG9uVHlwZSk7CiAKLSAgICBMYXlvdXRQb2ludCBjb250ZW50TG9jYXRp
b24gPSBwYWludE9mZnNldCArIGNvbnRlbnRSZWN0Lm1heFhNYXhZQ29ybmVyKCkgLSBidXR0b25J
bWFnZS0+c2l6ZSgpIC0gTGF5b3V0U2l6ZShzdGFydEJ1dHRvblBhZGRpbmcsIHN0YXJ0QnV0dG9u
UGFkZGluZyk7Ci0gICAgcGFpbnRJbmZvLmNvbnRleHQtPmRyYXdJbWFnZShidXR0b25JbWFnZSwg
Q29sb3JTcGFjZURldmljZVJHQiwgcm91bmRlZEludFBvaW50KGNvbnRlbnRMb2NhdGlvbiksIGJ1
dHRvbkltYWdlLT5yZWN0KCkpOworICAgIGlmICghYnV0dG9uSW1hZ2UpCisgICAgICAgIHJldHVy
bjsKKyAgICBwYWludEluZm8uY29udGV4dC0+ZHJhd0ltYWdlKGJ1dHRvbkltYWdlLCBDb2xvclNw
YWNlRGV2aWNlUkdCLCByb3VuZGVkSW50UG9pbnQocGFpbnRPZmZzZXQgKyBtX2J1dHRvblJlY3Qu
bG9jYXRpb24oKSksIGJ1dHRvbkltYWdlLT5yZWN0KCkpOwogfQogCiB2b2lkIFJlbmRlclNuYXBz
aG90dGVkUGx1Z0luOjpyZXBhaW50QnV0dG9uKCkKQEAgLTE5NywxOSArMjA0LDQ1IEBAIHZvaWQg
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmhhbmRsZUV2ZW50KEV2ZW50KiBldmVudCkKICAgICB9
CiB9CiAKK0xheW91dFJlY3QgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnRyeVRvRml0U3RhcnRC
dXR0b24oQnV0dG9uU2l6ZSBzaXplLCBjb25zdCBMYXlvdXRSZWN0JiBjb250ZW50Qm94KSBjb25z
dAoreworICAgIEltYWdlKiBidXR0b25JbWFnZSA9IHN0YXJ0QnV0dG9uSW1hZ2Uoc2l6ZSk7Cisg
ICAgaWYgKCFidXR0b25JbWFnZSkKKyAgICAgICAgcmV0dXJuIExheW91dFJlY3QoKTsKKworICAg
IExheW91dFNpemUgYnV0dG9uU2l6ZSA9IGJ1dHRvbkltYWdlLT5zaXplKCk7CisgICAgTGF5b3V0
UmVjdCBjYW5kaWRhdGVSZWN0KGNvbnRlbnRCb3gubWF4WE1pbllDb3JuZXIoKSArIExheW91dFNp
emUoLXN0YXJ0QnV0dG9uUGFkZGluZywgc3RhcnRCdXR0b25QYWRkaW5nKSArIExheW91dFNpemUo
LWJ1dHRvblNpemUud2lkdGgoKSwgMCksIGJ1dHRvblNpemUpOworICAgIC8vIFRoZSBtaW5pbXVt
IGFsbG93ZWQgY29udGVudCBib3ggc2l6ZSBpcyB0aGUgYnV0dG9uIGltYWdlIHBsYWNlZCBpbiB0
aGUgY2VudGVyIG9mIHRoZSBib3gsIHN1cnJvdW5kZWQgYnkgc3RhcnRCdXR0b25QYWRkaW5nLgor
ICAgIGlmIChjYW5kaWRhdGVSZWN0LngoKSA8IHN0YXJ0QnV0dG9uUGFkZGluZyB8fCBjYW5kaWRh
dGVSZWN0Lm1heFkoKSA+IGNvbnRlbnRCb3guaGVpZ2h0KCkgLSBzdGFydEJ1dHRvblBhZGRpbmcp
CisgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CisgICAgcmV0dXJuIGNhbmRpZGF0ZVJlY3Q7
Cit9CisKIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmxheW91dCgpCiB7CiAgICAgUmVu
ZGVyRW1iZWRkZWRPYmplY3Q6OmxheW91dCgpOworCisgICAgTGF5b3V0UmVjdCByZWN0ID0gY29u
dGVudEJveFJlY3QoKTsKKyAgICBpbnQgd2lkdGggPSByZWN0LndpZHRoKCk7CisgICAgaW50IGhl
aWdodCA9IHJlY3QuaGVpZ2h0KCk7CiAgICAgaWYgKHBsdWdJbkltYWdlRWxlbWVudCgpLT5kaXNw
bGF5U3RhdGUoKSA8IEhUTUxQbHVnSW5FbGVtZW50OjpQbGF5aW5nKSB7Ci0gICAgICAgIExheW91
dFJlY3QgcmVjdCA9IGNvbnRlbnRCb3hSZWN0KCk7Ci0gICAgICAgIGludCB3aWR0aCA9IHJlY3Qu
d2lkdGgoKTsKLSAgICAgICAgaW50IGhlaWdodCA9IHJlY3QuaGVpZ2h0KCk7CiAgICAgICAgIGlm
ICghd2lkdGggfHwgIWhlaWdodCB8fCAod2lkdGggPD0gYXV0b1N0YXJ0UGx1Z0luU2l6ZVRocmVz
aG9sZFdpZHRoICYmIGhlaWdodCA8PSBhdXRvU3RhcnRQbHVnSW5TaXplVGhyZXNob2xkSGVpZ2h0
KSkKICAgICAgICAgICAgIHBsdWdJbkltYWdlRWxlbWVudCgpLT5zZXREaXNwbGF5U3RhdGUoSFRN
TFBsdWdJbkVsZW1lbnQ6OlBsYXlpbmcpOwogICAgIH0KIAotICAgIExheW91dFNpemUgYnV0dG9u
U2l6ZSA9IHN0YXJ0QnV0dG9uSW1hZ2UoKS0+c2l6ZSgpOwotICAgIG1fYnV0dG9uUmVjdCA9IExh
eW91dFJlY3QoY29udGVudEJveFJlY3QoKS5tYXhYTWF4WUNvcm5lcigpIC0gTGF5b3V0U2l6ZShz
dGFydEJ1dHRvblBhZGRpbmcsIHN0YXJ0QnV0dG9uUGFkZGluZykgLSBidXR0b25TaXplLCBidXR0
b25TaXplKTsKKyAgICBtX2J1dHRvblJlY3QgPSB0cnlUb0ZpdFN0YXJ0QnV0dG9uKEJ1dHRvblNp
emVMYXJnZSwgcmVjdCk7CisgICAgaWYgKCFtX2J1dHRvblJlY3QuaXNFbXB0eSgpKSB7CisgICAg
ICAgIG1fYnV0dG9uVHlwZSA9IEJ1dHRvblNpemVMYXJnZTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIG1fYnV0dG9uUmVjdCA9IHRyeVRvRml0U3RhcnRCdXR0b24oQnV0dG9uU2l6ZVNt
YWxsLCByZWN0KTsKKyAgICBpZiAoIW1fYnV0dG9uUmVjdC5pc0VtcHR5KCkpIHsKKyAgICAgICAg
bV9idXR0b25UeXBlID0gQnV0dG9uU2l6ZVNtYWxsOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgbV9idXR0b25UeXBlID0gTm9CdXR0b247CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1
Z0luLmgKaW5kZXggMmExZjg5NmM3NDRjMTczYTgzNzhmZDFmNDdlMTE0MmU3NjlmZmRmNy4uMDgx
YTRhN2I0YjcwYTczYjBlMTk1ZmNlZmViNjIzYjgyZTQ3M2RiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmgKQEAgLTI5LDcgKzI5
LDYgQEAKICNpbmNsdWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgogCiAjaW5jbHVkZSAiUmVu
ZGVySW1hZ2VSZXNvdXJjZS5oIgotI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtNDAsNiArMzksMTIgQEAgcHVibGljOgogICAgIFJlbmRlclNuYXBz
aG90dGVkUGx1Z0luKEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbigpOwogCisgICAgZW51bSBCdXR0b25TaXplIHsKKyAgICAgICAg
QnV0dG9uU2l6ZVNtYWxsLAorICAgICAgICBCdXR0b25TaXplTGFyZ2UsCisgICAgICAgIE5vQnV0
dG9uLAorICAgIH07CisKICAgICB2b2lkIHVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1hZ2U+
KTsKIAogICAgIHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqKTsKQEAgLTU3LDkgKzYyLDEzIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBwYWludEJ1dHRvbihQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2lu
dCYpOwogICAgIHZvaWQgcmVwYWludEJ1dHRvbigpOwogCisgICAgTGF5b3V0UmVjdCB0cnlUb0Zp
dFN0YXJ0QnV0dG9uKEJ1dHRvblNpemUsIGNvbnN0IExheW91dFJlY3QmIGNvbnRlbnRCb3gpIGNv
bnN0OworICAgIEltYWdlKiBzdGFydEJ1dHRvbkltYWdlKEJ1dHRvblNpemUpIGNvbnN0OworCiAg
ICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURFOwogCiAgICAgT3duUHRyPFJlbmRlcklt
YWdlUmVzb3VyY2U+IG1fc25hcHNob3RSZXNvdXJjZTsKKyAgICBCdXR0b25TaXplIG1fYnV0dG9u
VHlwZTsKICAgICBMYXlvdXRSZWN0IG1fYnV0dG9uUmVjdDsKICAgICBib29sIG1faXNNb3VzZUlu
QnV0dG9uUmVjdDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
Y2cvV0tJbWFnZUNHLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9jZy9XS0ltYWdl
Q0cuY3BwCmluZGV4IDkzODA0OWI3MWI5ZTA3MjgxNDA3OTIyYzc0MzEyZTI3YTAzZTkwMmQuLjEw
NzFlZjU5MmI4NjY1ZmZiODA2MmZkYmQ4ZjgyZTAyOTllMDdlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9jZy9XS0ltYWdlQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9jZy9XS0ltYWdlQ0cuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiV0tTaGFyZWRBUElDYXN0LmgiCiAj
aW5jbHVkZSAiV2ViSW1hZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OwpAQCAtNTQsNiArNTUsOCBAQCBXS0ltYWdlUmVmIFdLSW1hZ2VDcmVhdGVGcm9tQ0dJbWFn
ZShDR0ltYWdlUmVmIGltYWdlUmVmLCBXS0ltYWdlT3B0aW9ucyBvcHRpb25zKQogICAgICAgICBy
ZXR1cm4gMDsKIAogICAgIE93blB0cjxHcmFwaGljc0NvbnRleHQ+IGdyYXBoaWNzQ29udGV4dCA9
IHdlYkltYWdlLT5iaXRtYXAoKS0+Y3JlYXRlR3JhcGhpY3NDb250ZXh0KCk7Ci0gICAgQ0dDb250
ZXh0RHJhd0ltYWdlKGdyYXBoaWNzQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCksIENHUmVjdE1h
a2UoMCwgMCwgaW1hZ2VTaXplLndpZHRoKCksIGltYWdlU2l6ZS5oZWlnaHQoKSksIGltYWdlUmVm
KTsKKyAgICBGbG9hdFJlY3QgcmVjdChGbG9hdFBvaW50KDAsIDApLCBpbWFnZVNpemUpOworICAg
IGdyYXBoaWNzQ29udGV4dC0+Y2xlYXJSZWN0KHJlY3QpOworICAgIGdyYXBoaWNzQ29udGV4dC0+
ZHJhd05hdGl2ZUltYWdlKGltYWdlUmVmLCBpbWFnZVNpemUsIFdlYkNvcmU6OkNvbG9yU3BhY2VE
ZXZpY2VSR0IsIHJlY3QsIHJlY3QpOwogICAgIHJldHVybiB0b0FQSSh3ZWJJbWFnZS5yZWxlYXNl
KCkubGVha1JlZigpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCmluZGV4IGMyYjM3ODk0
YTZmMTYwYTU3ZDliMjI3NDEwNDlhMmRjNDc1MTI1NjAuLmI2MWNmN2I2MzVjNWJlZTRjNDQxZGJl
M2JkZTdiNWZmYTBjMDgyODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaApAQCAtMjI1LDcg
KzIyNSwxMyBAQCBlbnVtIHsKICAgICBXS0J1bmRsZVBhZ2VVSUVsZW1lbnRIaWRkZW4KIH07CiB0
eXBlZGVmIHVpbnQzMl90IFdLQnVuZGxlUGFnZVVJRWxlbWVudFZpc2liaWxpdHk7Ci0gICAgCisK
K2VudW0geworICAgIFdLQnVuZGxlUGFnZUJ1dHRvblNpemVTbWFsbCwKKyAgICBXS0J1bmRsZVBh
Z2VCdXR0b25TaXplTGFyZ2UsCit9OwordHlwZWRlZiB1aW50MzJfdCBXS0J1bmRsZVBhZ2VCdXR0
b25TaXplOworCiAvLyBVSSBDbGllbnQKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVdpbGxB
ZGRNZXNzYWdlVG9Db25zb2xlQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmlu
Z1JlZiBtZXNzYWdlLCB1aW50MzJfdCBsaW5lTnVtYmVyLCBjb25zdCB2b2lkICpjbGllbnRJbmZv
KTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVdpbGxTZXRTdGF0dXNiYXJUZXh0Q2FsbGJh
Y2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBzdGF0dXNiYXJUZXh0LCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKTsKQEAgLTI0Miw2ICsyNDgsNyBAQCB0eXBlZGVmIFdLQnVuZGxl
UGFnZVVJRWxlbWVudFZpc2liaWxpdHkgKCpXS0J1bmRsZVBhZ2VNZW51QmFySXNWaXNpYmxlQ2Fs
bGJhY2spKAogdHlwZWRlZiBXS0J1bmRsZVBhZ2VVSUVsZW1lbnRWaXNpYmlsaXR5ICgqV0tCdW5k
bGVQYWdlVG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBj
b25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVJlYWNo
ZWRBcHBDYWNoZU9yaWdpblF1b3RhQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1Nl
Y3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgaW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkLCBjb25zdCB2
b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdWludDY0X3QgKCpXS0J1bmRsZVBhZ2VFeGNlZWRl
ZERhdGFiYXNlUXVvdGFDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU2VjdXJpdHlP
cmlnaW5SZWYgb3JpZ2luLCBXS1N0cmluZ1JlZiBkYXRhYmFzZU5hbWUsIFdLU3RyaW5nUmVmIGRh
dGFiYXNlRGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YUJ5dGVzLCB1aW50NjRfdCBj
dXJyZW50T3JpZ2luVXNhZ2VCeXRlcywgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2VCeXRl
cywgdWludDY0X3QgZXhwZWN0ZWRVc2FnZUJ5dGVzLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsK
K3R5cGVkZWYgV0tJbWFnZVJlZiAoKldLQnVuZGxlUGFnZUdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0
b25JbWFnZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VCdXR0b25TaXplIHNpemUsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pOwogCiBzdHJ1Y3QgV0tCdW5kbGVQYWdlVUlDbGllbnQgewogICAgIGludCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmVyc2lvbjsKQEAgLTI2Niw3ICsyNzMsNyBAQCBzdHJ1Y3QgV0tCdW5kbGVQYWdlVUlD
bGllbnQgewogCiAgICAgLy8gVmVyc2lvbiAyLgogICAgIFdLQnVuZGxlUGFnZUV4Y2VlZGVkRGF0
YWJhc2VRdW90YUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkRXhjZWVkRGF0
YWJhc2VRdW90YTsKLQorICAgIFdLQnVuZGxlUGFnZUdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25J
bWFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbklt
YWdlOwogfTsKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50IFdLQnVuZGxlUGFn
ZVVJQ2xpZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3Bw
CmluZGV4IDYyYWEyYjMxODkyYzAzY2EwNmVkNzBiNjRiNzM3ZTgxMGNiMmJkNTQuLmYzNmIyNjdk
MzA3NjNiNWI3YzcxZWVkMGZkMjRjYzhhYTlhNjdiYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwCkBAIC0xNjMsNCArMTYzLDI0IEBAIHVpbnQ2NF90IElu
amVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50OjpkaWRFeGNlZWREYXRhYmFzZVF1b3RhKFdlYlBhZ2Uq
IHBhZ2UsIFdlYlNlCiAgICAgcmV0dXJuIG1fY2xpZW50LmRpZEV4Y2VlZERhdGFiYXNlUXVvdGEo
dG9BUEkocGFnZSksIHRvQVBJKG9yaWdpbiksIHRvQVBJKGRhdGFiYXNlTmFtZS5pbXBsKCkpLCB0
b0FQSShkYXRhYmFzZURpc3BsYXlOYW1lLmltcGwoKSksIGN1cnJlbnRRdW90YUJ5dGVzLCBjdXJy
ZW50T3JpZ2luVXNhZ2VCeXRlcywgY3VycmVudERhdGFiYXNlVXNhZ2VCeXRlcywgZXhwZWN0ZWRV
c2FnZUJ5dGVzLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKIH0KIAorUGFzc1JlZlB0cjxXZWJJbWFn
ZT4gSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQ6OmdlbmVyYXRlUGx1Z0luU3RhcnRCdXR0b25J
bWFnZShSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6QnV0dG9uU2l6ZSBzaXplKSBjb25zdAorewor
ICAgIGlmICghbV9jbGllbnQuZ2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlKQorICAgICAg
ICByZXR1cm4gMDsKKworICAgIFdLQnVuZGxlUGFnZUJ1dHRvblNpemUgd2tTaXplOworICAgIHN3
aXRjaCAoc2l6ZSkgeworICAgIGNhc2UgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OkJ1dHRvblNp
emVTbWFsbDoKKyAgICAgICAgd2tTaXplID0gV0tCdW5kbGVQYWdlQnV0dG9uU2l6ZVNtYWxsOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpCdXR0b25T
aXplTGFyZ2U6CisgICAgICAgIHdrU2l6ZSA9IFdLQnVuZGxlUGFnZUJ1dHRvblNpemVMYXJnZTsK
KyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQor
CisgICAgcmV0dXJuIGFkb3B0UmVmKHRvSW1wbChtX2NsaWVudC5nZW5lcmF0ZVBsdWdJblN0YXJ0
QnV0dG9uSW1hZ2Uod2tTaXplLCBtX2NsaWVudC5jbGllbnRJbmZvKSkpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaApp
bmRleCAxM2M4OWM2N2RkMmJjZTE2YTc4NGQ4NjFkNTkwYzMzOGU3OTNhOTQ0Li5mMWYyODQxMjA5
ZTBiYjhiYmYyMjcyYTdkNzc0Zjc3YmEwN2RiY2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VVSUNsaWVudC5oCkBAIC0yOSwxMiArMjksMTQgQEAKICNpbmNsdWRlICJBUElDbGll
bnQuaCIKICNpbmNsdWRlICJXS0J1bmRsZVBhZ2UuaCIKICNpbmNsdWRlICJXZWJFdmVudC5oIgor
I2luY2x1ZGUgIldlYkltYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbi5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKLSAgICBjbGFzcyBHcmFwaGljc0NvbnRleHQ7Ci0gICAgY2xhc3MgSGl0VGVzdFJlc3VsdDsK
LSAgICBjbGFzcyBJbnRSZWN0OworY2xhc3MgR3JhcGhpY3NDb250ZXh0OworY2xhc3MgSGl0VGVz
dFJlc3VsdDsKK2NsYXNzIEludFJlY3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjgs
NiArNzAsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZFJlYWNoQXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhKFdlYlBhZ2UqLCBXZWJTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxCeXRl
c05lZWRlZCk7CiAgICAgdWludDY0X3QgZGlkRXhjZWVkRGF0YWJhc2VRdW90YShXZWJQYWdlKiwg
V2ViU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3Ry
aW5nJiBkYXRhYmFzZURpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGFCeXRlcywgdWlu
dDY0X3QgY3VycmVudE9yaWdpblVzYWdlQnl0ZXMsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVz
YWdlQnl0ZXMsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2VCeXRlcyk7CisKKyAgICBQYXNzUmVmUHRy
PFdlYkltYWdlPiBnZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2UoV2ViQ29yZTo6UmVuZGVy
U25hcHNob3R0ZWRQbHVnSW46OkJ1dHRvblNpemUpIGNvbnN0OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMDk3YWJlOGNhYWQ1MWM1MzNh
ZWRiNGM5MzI4MjUwMjU1NTFjOTgxMC4uN2Q4NjQxZDg2MzRjOTlmYjUzNmVmOTc1NTdhZDcwNzk4
M2Y5NWViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2lu
Y2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVMb2FkZXJDbGllbnQuaCIKICNp
bmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlci5oIgorI2luY2x1ZGUgIldlYkltYWdlLmgiCiAj
aW5jbHVkZSAiV2ViT3BlblBhbmVsUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgpAQCAtODE4LDQgKzgxOSw5
IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYKICAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShtX3BhZ2UsIG1lc3Nh
Z2UsIGRlc2NyaXB0aW9uLCBzdWNjZXNzKTsKIH0KIAorUGFzc1JlZlB0cjxJbWFnZT4gV2ViQ2hy
b21lQ2xpZW50OjpnZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2UoUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW46OkJ1dHRvblNpemUgc2l6ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLT5p
bmplY3RlZEJ1bmRsZVVJQ2xpZW50KCkuZ2VuZXJhdGVQbHVnSW5TdGFydEJ1dHRvbkltYWdlKHNp
emUpLT5iaXRtYXAoKS0+Y3JlYXRlSW1hZ2UoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAxZTYyZjdhYmQ0Y2MyYmI4NTI5ZTUwZjc3MTBmNzJk
NjA4ZTAxYzYzLi5mODAxYTRiYzdlNTdlZmY3NjMwZGJhNmNiMGFkN2UwMTZjZjU2ZTZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNkZWZpbmUgV2ViQ2hyb21lQ2xp
ZW50X2gKIAogI2luY2x1ZGUgPFdlYkNvcmUvQ2hyb21lQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9JbWFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMjI1LDYgKzIyNiw4IEBAIHByaXZh
dGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHN1Y2Nl
c3MpIE9WRVJSSURFOwogCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkltYWdlPiBn
ZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2UoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW46OkJ1dHRvblNpemUpIGNvbnN0IE9WRVJSSURFOworCiAgICAgU3RyaW5nIG1fY2FjaGVk
VG9vbFRpcDsKICAgICBtdXRhYmxlIFJlZlB0cjxXZWJGcmFtZT4gbV9jYWNoZWRGcmFtZVNldExh
cmdlc3RGcmFtZTsKICAgICBtdXRhYmxlIGJvb2wgbV9jYWNoZWRNYWluRnJhbWVIYXNIb3Jpem9u
dGFsU2Nyb2xsYmFyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDNmNDAyYzdmMDIyOGRiN2Y4NzA1MjU3NmY1MDFjOGI1Zjc2MTdmNDQuLmJmMWFk
ODRkZTc5MTg2ODVjYmIzMGI2ODQzYjU3N2M0N2QwZGUxYTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMi0w
NyAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTW92ZSBidXR0
b24gaW1hZ2UgdG8gaW5qZWN0ZWQgYnVuZGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQxMDcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyODEz
ODQyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwOgor
ICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFnZSk6IFVw
ZGF0ZSB0aGUgYnVuZGxlIHBhZ2UgVUkgY2xpZW50LgorCiAyMDEyLTEyLTA3ICBHd2FuZyBZb29u
IEh3YW5nICA8cnl1bWllbEBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBbUXRdIEFkanVzdCBs
aWJyYXJ5IG5hbWUgaW4gbGF5b3V0X3Rlc3RzL3BvcnQvcXQucHkgYWZ0ZXIgUXQ1LXI0MApkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2UuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2UuY3BwCmluZGV4IDFkNTc5MWM5YzY0MzgzNDdjMDVkYjU2NzY0MjVkZmU5
YTVkMjkxYWUuLjBiODE5OGMzMjE2ZWJiNzcyODZmMzA4ZGZmNjZkNDllNzg1NTJjNGMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZS5jcHAKQEAgLTM3Niw2ICszNzYsNyBAQCBJbmplY3RlZEJ1bmRsZVBh
Z2U6OkluamVjdGVkQnVuZGxlUGFnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSkKICAgICAgICAgMCwg
Lyp0b29sYmFyc0FyZVZpc2libGUqLwogICAgICAgICBkaWRSZWFjaEFwcGxpY2F0aW9uQ2FjaGVP
cmlnaW5RdW90YSwKICAgICAgICAgZGlkRXhjZWVkRGF0YWJhc2VRdW90YSwKKyAgICAgICAgMCwg
LypnZW5lcmF0ZVBsdWdJblN0YXJ0QnV0dG9uSW1hZ2UqLwogICAgIH07CiAgICAgV0tCdW5kbGVQ
YWdlU2V0VUlDbGllbnQobV9wYWdlLCAmdWlDbGllbnQpOwogCg==
</data>
<flag name="review"
          id="194676"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>