<?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>98395</bug_id>
          
          <creation_ts>2012-10-04 03:32:56 -0700</creation_ts>
          <short_desc>Implement FontLoader interface</short_desc>
          <delta_ts>2014-07-29 10:59:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>111289</dependson>
    
    <dependson>111296</dependson>
          <blocked>135390</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenichi Ishibashi">bashi</reporter>
          <assigned_to name="Kunihiko Sakamoto">ksakamoto</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gregsimon</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>jdaggett</cc>
    
    <cc>jochen</cc>
    
    <cc>kenjibaheux</cc>
    
    <cc>ksakamoto</cc>
    
    <cc>kvserr</cc>
    
    <cc>lmcliste</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mitz</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rakuco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>stein</cc>
    
    <cc>syoichi</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>734564</commentid>
    <comment_count>0</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-10-04 03:32:56 -0700</bug_when>
    <thetext>The editor&apos;s draft of W3C Font Module Level 3 now has &quot;Font Load Events&quot; section (http://dev.w3.org/csswg/css3-fonts/#font-load-events) and defines FontLoader interface. The interface provides ways to detect font loading is actually occurred and when the loading finished. I think it would be worth to consider implementing it because:
- In LayoutTests, we use setTimeout() to make sure webfonts are loaded, but it doesn&apos;t always work well and it&apos;s a reason of test flakiness. The interface will fix these flakiness.
- Web application developers and page authors now use some workaround (width comparison, drawing on canvas) to check whether fonts are loaded. I think browsers should provide a better way to do it.

I think the interface will appear on the next WG draft (maybe after TPAC). After that, I&apos;d like to start implemention of the interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734567</commentid>
    <comment_count>1</comment_count>
      <attachid>167066</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-10-04 03:38:36 -0700</bug_when>
    <thetext>Created attachment 167066
proof of concept patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734788</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-04 10:15:35 -0700</bug_when>
    <thetext>Please do send an announcement to webkit-dev when ready. Sounds like a good feature to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735062</commentid>
    <comment_count>3</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-10-04 15:18:00 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Please do send an announcement to webkit-dev when ready. Sounds like a good feature to me.

Thank you for the response. Yes, I&apos;ll announce to webkit-dev before starting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820982</commentid>
    <comment_count>4</comment_count>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-01-30 19:23:23 -0800</bug_when>
    <thetext>I took over this work from Bashi.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822094</commentid>
    <comment_count>5</comment_count>
    <who name="Glenn Adams">glenn</who>
    <bug_when>2013-01-31 16:30:59 -0800</bug_when>
    <thetext>do you expect to prefix these types, events, etc until the spec gets to CR? i expect it will evolve as it goes through more WDs, LC, then CR</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822235</commentid>
    <comment_count>6</comment_count>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-01-31 19:08:31 -0800</bug_when>
    <thetext>I think we should do prefix them. So I will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825342</commentid>
    <comment_count>7</comment_count>
      <attachid>186593</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-02-05 03:18:25 -0800</bug_when>
    <thetext>Created attachment 186593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826080</commentid>
    <comment_count>8</comment_count>
      <attachid>186757</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-02-05 22:14:45 -0800</bug_when>
    <thetext>Created attachment 186757
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826107</commentid>
    <comment_count>9</comment_count>
      <attachid>186757</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-02-05 23:33:21 -0800</bug_when>
    <thetext>Comment on attachment 186757
Updated patch

mitz: Would you review this patch?
Let me know if this patch is too large to review. I&apos;m happy to break it into smaller pieces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826137</commentid>
    <comment_count>10</comment_count>
      <attachid>186757</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-06 00:01:45 -0800</bug_when>
    <thetext>Comment on attachment 186757
Updated patch

Attachment 186757 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16395062

New failing tests:
fast/frames/seamless/seamless-nested.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830717</commentid>
    <comment_count>11</comment_count>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-02-12 02:14:47 -0800</bug_when>
    <thetext>Hi mitz,
Did you have a chance to look at this?
Failure of seamless-nested.html should be unrelated to the change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831581</commentid>
    <comment_count>12</comment_count>
    <who name="John Daggett">jdaggett</who>
    <bug_when>2013-02-12 20:40:57 -0800</bug_when>
    <thetext>Just a quick note to let you know the interface defined in the spec is still in flux, so you&apos;ll probably need to review the changes later to match the eventual spec design when CSS3 Fonts goes to CR.  It would be especially helpful to post any questions you have about spec details to www-style.

Just to be clear, the methods such as loadFont/checkFont are *not* limited to loading a single font, the defined behavior is to load all fonts in the font list passed in:

For example:

  document.fontloader.loadFont({font: &quot;16px fontA, fontB, fontC&quot;,
                                onsuccess: drawStuff, 
                                onerror: handleError});

The function &apos;drawStuff&apos; will be called *after* the default face for
families fontA, fontB and fontC have all been downloaded and activated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831778</commentid>
    <comment_count>13</comment_count>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-02-13 03:24:06 -0800</bug_when>
    <thetext>Thanks for the comments, John.
Yes I understand the spec is not fixed yet. We will keep the feature prefixed until it goes to CR.

And I guess you took a look at the patch - right, it doesn&apos;t handle multiple fonts case correctly.
I will update the patch. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832619</commentid>
    <comment_count>14</comment_count>
    <who name="John Daggett">jdaggett</who>
    <bug_when>2013-02-13 18:00:09 -0800</bug_when>
    <thetext>I should also point out that the load events are more than just &quot;loading font data is done&quot;, there&apos;s an interaction with layout code that&apos;s somewhat tricky to handle.  For example, the &quot;loadingdone&quot; event should only fire after layout operations have completed and no new font loads occurred.

Consider this example:

  @font-face {
    font-family: general-serif;
    src: url(generalserif.woff) format(&quot;woff&quot;); /* contains no kanji/kana */
  }
  
  @font-face {
    font-family: japanesebodytext;
    src: url(japanesefont.woff) format(&quot;woff&quot;);
  }
  
  body { font-family: general-serif, japanesebodytext; }
  
  &lt;p&gt;納豆嫌い&lt;/p&gt;

The &quot;loadingdone&quot; event should fire after the &apos;japanesefont.woff&apos; is downloaded, not after &apos;generalserif.woff&apos; completes.  That&apos;s the reason behind the sentence in the spec &quot;when the user agent completes the final font load for document doc, after all pending layout operations that might affect font selection have completed and no font loads are pending...&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833850</commentid>
    <comment_count>15</comment_count>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-02-15 03:30:07 -0800</bug_when>
    <thetext>Thank you for pointing it out. I will update my patch accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835225</commentid>
    <comment_count>16</comment_count>
      <attachid>188820</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-02-18 01:33:45 -0800</bug_when>
    <thetext>Created attachment 188820
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835416</commentid>
    <comment_count>17</comment_count>
      <attachid>188820</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 06:11:10 -0800</bug_when>
    <thetext>Comment on attachment 188820
Updated patch

Attachment 188820 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16614175

New failing tests:
fast/css/ex-unit-with-no-x-height.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835938</commentid>
    <comment_count>18</comment_count>
      <attachid>188984</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-02-18 21:41:57 -0800</bug_when>
    <thetext>Created attachment 188984
Updated patch, fix test failure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839175</commentid>
    <comment_count>19</comment_count>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-02-21 20:27:27 -0800</bug_when>
    <thetext>I think the issues John pointed out are addressed in the current patch.
There are still some FIXMEs in the code, but I would like to ask for a review before completing details.

BTW font loader has moved to a separate spec.
http://dev.w3.org/csswg/css-font-load-events-3/
http://lists.w3.org/Archives/Public/www-style/2013Feb/0433.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843478</commentid>
    <comment_count>20</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-27 14:01:11 -0800</bug_when>
    <thetext>https://lists.webkit.org/pipermail/webkit-dev/2013-January/023541.html was the announcement, for posterity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843483</commentid>
    <comment_count>21</comment_count>
      <attachid>188984</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-27 14:06:56 -0800</bug_when>
    <thetext>Comment on attachment 188984
Updated patch, fix test failure

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

I think this is a fantastic feature.  I need to read through the patch again, and it&apos;s possible that some of the other CSS folks will want to too.  If you schedule some time on my calendar you and I could go over this via VC and I suspect we&apos;d have fewer review iterations needed.

&gt; Source/WebCore/ChangeLog:9
&gt; +        This patch adds two interfaces, WebKitFontLoader and WebKitCSSFontFaceLoadEvent, and a document attribute webkitFontloader to WebCore.
&gt; +        The webkitFontloader implements the FontLoader interface defined in CSS Fonts Module Level 3.[1]

My understanding was that the standards community was moving away from using prefixes.  If this is spec&apos;d, we should just use the real names?

&gt; Source/WebCore/bindings/js/JSDictionary.cpp:236
&gt; +void JSDictionary::convertValue(JSC::ExecState*, JSC::JSValue value, RefPtr&lt;CSSFontFaceRule&gt;&amp; result)
&gt; +{
&gt; +    result = toCSSFontFaceRule(value);
&gt; +}

I&apos;m confused as to what these do or why they&apos;re needed?  Some artifact of how JSC bindings are implemented?

&gt; Source/WebCore/bindings/v8/Dictionary.cpp:519
&gt; +    CSSFontFaceRule* source = 0;
&gt; +    if (v8Value-&gt;IsObject()) {
&gt; +        v8::Handle&lt;v8::Object&gt; wrapper = v8::Handle&lt;v8::Object&gt;::Cast(v8Value);
&gt; +        v8::Handle&lt;v8::Object&gt; fontface = wrapper-&gt;FindInstanceInPrototypeChain(V8CSSFontFaceRule::GetTemplate(m_isolate));
&gt; +        if (!fontface.IsEmpty())
&gt; +            source = V8CSSFontFaceRule::toNative(fontface);

Same question. I&apos;m confused by what this custom bindings code is doing/why it&apos;s needed?

&gt; Source/WebCore/css/WebKitFontLoader.cpp:67
&gt; +    if (!m_numLoading) {

I believe webkit style is to early return instead of makign a long block.

&gt; Source/WebCore/css/WebKitFontLoader.cpp:150
&gt; +        scheduleEvent(WebKitCSSFontFaceLoadEvent::createForFontFaceRule(eventNames().loadingEvent, rule));
&gt; +    scheduleEvent(WebKitCSSFontFaceLoadEvent::createForFontFaceRule(eventNames().loadstartEvent, rule));

Thank you for making this async!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843790</commentid>
    <comment_count>22</comment_count>
      <attachid>188984</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-02-27 23:37:07 -0800</bug_when>
    <thetext>Comment on attachment 188984
Updated patch, fix test failure

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

Thanks Eric! I&apos;ve scheduled a VC tomorrow.

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        The webkitFontloader implements the FontLoader interface defined in CSS Fonts Module Level 3.[1]
&gt; 
&gt; My understanding was that the standards community was moving away from using prefixes.  If this is spec&apos;d, we should just use the real names?

I just thought it&apos;s safer to use prefixes until the spec goes to CR because fontloader spec is still actively being developed, as jdaggett noted on this thread. I&apos;m not sure of WebKit policy about prefixing so let me know if we should use real names.

&gt;&gt; Source/WebCore/bindings/js/JSDictionary.cpp:236
&gt;&gt; +}
&gt; 
&gt; I&apos;m confused as to what these do or why they&apos;re needed?  Some artifact of how JSC bindings are implemented?

Yeah they are needed when we extract values of these types from JS dictionary. See the comment below in WebKitFontLoader.cpp.

&gt;&gt; Source/WebCore/bindings/v8/Dictionary.cpp:519
&gt;&gt; +            source = V8CSSFontFaceRule::toNative(fontface);
&gt; 
&gt; Same question. I&apos;m confused by what this custom bindings code is doing/why it&apos;s needed?

See below.

&gt;&gt; Source/WebCore/css/WebKitFontLoader.cpp:67
&gt;&gt; +    if (!m_numLoading) {
&gt; 
&gt; I believe webkit style is to early return instead of makign a long block.

Will fix, thanks.

&gt; Source/WebCore/css/WebKitFontLoader.cpp:215
&gt; +    params.get(&quot;onsuccess&quot;, onsuccess);

JSDictionary::convertValue (in JSC) and Dictionary::get (in V8) are used here, to extract VoidCallback value from a Dictionary.
Similarly, extract methods for CSSFontFaceRule and DOMError are needed by the generated code for WebKitCSSFontFaceLoadEvent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844548</commentid>
    <comment_count>23</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-28 15:33:31 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; (From update of attachment 188984 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=188984&amp;action=review
&gt; &gt;&gt; Source/WebCore/ChangeLog:9
&gt; &gt;&gt; +        The webkitFontloader implements the FontLoader interface defined in CSS Fonts Module Level 3.[1]
&gt; &gt; 
&gt; &gt; My understanding was that the standards community was moving away from using prefixes.  If this is spec&apos;d, we should just use the real names?
&gt; 
&gt; I just thought it&apos;s safer to use prefixes until the spec goes to CR because fontloader spec is still actively being developed, as jdaggett noted on this thread. I&apos;m not sure of WebKit policy about prefixing so let me know if we should use real names.

Current best-practice is to use the real names, but to guard everything behind a runtime flag.  That runtime flag will be off by default, and turning it on for stable chrome is guarded by a separate feature process which we&apos;re working on documenting. :)  We&apos;re trying to avoid further web-fragmentation from webdevs depending on prefixed features in shipping browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844551</commentid>
    <comment_count>24</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-28 15:34:36 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #22)
&gt; &gt; (From update of attachment 188984 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=188984&amp;action=review
&gt; &gt; &gt;&gt; Source/WebCore/ChangeLog:9
&gt; &gt; &gt;&gt; +        The webkitFontloader implements the FontLoader interface defined in CSS Fonts Module Level 3.[1]
&gt; &gt; &gt; 
&gt; &gt; &gt; My understanding was that the standards community was moving away from using prefixes.  If this is spec&apos;d, we should just use the real names?
&gt; &gt; 
&gt; &gt; I just thought it&apos;s safer to use prefixes until the spec goes to CR because fontloader spec is still actively being developed, as jdaggett noted on this thread. I&apos;m not sure of WebKit policy about prefixing so let me know if we should use real names.
&gt; 
&gt; Current best-practice is to use the real names, but to guard everything behind a runtime flag.  That runtime flag will be off by default, and turning it on for stable chrome is guarded by a separate feature process which we&apos;re working on documenting. :)  We&apos;re trying to avoid further web-fragmentation from webdevs depending on prefixed features in shipping browsers.

This does not match my understanding of the prefix policy. Please discuss in webkit-dev</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844565</commentid>
    <comment_count>25</comment_count>
      <attachid>188984</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-28 15:46:50 -0800</bug_when>
    <thetext>Comment on attachment 188984
Updated patch, fix test failure

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

This patch looks great.  Thank you for taking the time to speak with me this afternoon.

For non-chromium ports, this will be off by default (the #define will be false).  For Chromium, this will be enabled, but we need to guard it with a feature flag.

In order to test your feature, you will need to create a setting and expose it via internal settings, similar to what we did with the threaded HTML parser.  I recommend that you post and land the feature flag and setting first.  That will ensure that your tests require the setting to expose this to the web.

Once we believe this feature is stable and ready for release we&apos;ll change the runtime flag to default to true.  A little while later, we&apos;ll remove the flag.  Unfortunately this process is not quite as refined as we&apos;d like, so adding the setting is a bit of boiler plate code, but much less code than you&apos;ve already written for this.

Thank you again for your work here.  Many websites will be very happy to see this!

I&apos;ve marked this r- for now, as we should land this with the real names and with the runtime flag.  However I&apos;m happy to r+ any follow-up patch immediately with those fixes.

&gt; Source/WebCore/css/CSSFontFace.cpp:172
&gt; +    Document* document = (*m_segmentedFontFaces.begin())-&gt;fontSelector()-&gt;document();

I don&apos;t think the () are necessary?  They don&apos;t hurt, but I don&apos;t think c++ requires them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844590</commentid>
    <comment_count>26</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-28 16:11:01 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; (In reply to comment #23)
&gt; &gt; (In reply to comment #22)
&gt; &gt; &gt; (From update of attachment 188984 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=188984&amp;action=review
&gt; &gt; &gt; &gt;&gt; Source/WebCore/ChangeLog:9
&gt; &gt; &gt; &gt;&gt; +        The webkitFontloader implements the FontLoader interface defined in CSS Fonts Module Level 3.[1]
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; My understanding was that the standards community was moving away from using prefixes.  If this is spec&apos;d, we should just use the real names?
&gt; &gt; &gt; 
&gt; &gt; &gt; I just thought it&apos;s safer to use prefixes until the spec goes to CR because fontloader spec is still actively being developed, as jdaggett noted on this thread. I&apos;m not sure of WebKit policy about prefixing so let me know if we should use real names.
&gt; &gt; 
&gt; &gt; Current best-practice is to use the real names, but to guard everything behind a runtime flag.  That runtime flag will be off by default, and turning it on for stable chrome is guarded by a separate feature process which we&apos;re working on documenting. :)  We&apos;re trying to avoid further web-fragmentation from webdevs depending on prefixed features in shipping browsers.
&gt; 
&gt; This does not match my understanding of the prefix policy. Please discuss in webkit-dev

You&apos;re correct that the webkit project does not seem to have a coherent policy for vendor prefixes.  You&apos;re correct that the CSS WG is very clear on their policy for prefixes with Working Draft specs:
http://wiki.csswg.org/spec/vendor-prefixes

We&apos;ve been discussing this some as of late, and the current thinking is that for chromium-developed features, we would like to try and follow mozilla&apos;s lead on reducing vendor prefixing as much as possible.  Which means implementing the feature without prefixes, and guarding them with runtime flags to allow us to test interoperably with other implementations w/o prefixes, while still ensuring these features are off in stable browsers.

As I&apos;m sure you&apos;re aware, this is a hotly discussed topic (on lists that you likely read, including http://lists.w3.org/Archives/Public/www-style/2012May/0324.html).

I&apos;m less interested in trying to bring cohesion to our currently divergent feature policies, but rather take this approach for this approach for this feature.  Obviously this means that we cannot ship this feature in stable Chrome in compliance with the current CSS WG recommendations.  Hence the requirement of a runtime flag so that we can continue to ship with this feature off by default.

I think we should have another discussion about vendor prefixing at the next webkit meeting:
http://trac.webkit.org/wiki/Deprecating%20features%20and%20vendor%20prefixes
but I don&apos;t think that should stop this patch from landing before then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844594</commentid>
    <comment_count>27</comment_count>
    <who name="Glenn Adams">glenn</who>
    <bug_when>2013-02-28 16:16:52 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #22)
&gt; &gt; (From update of attachment 188984 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=188984&amp;action=review
&gt; &gt; &gt;&gt; Source/WebCore/ChangeLog:9
&gt; &gt; &gt;&gt; +        The webkitFontloader implements the FontLoader interface defined in CSS Fonts Module Level 3.[1]
&gt; &gt; &gt; 
&gt; &gt; &gt; My understanding was that the standards community was moving away from using prefixes.  If this is spec&apos;d, we should just use the real names?
&gt; &gt; 
&gt; &gt; I just thought it&apos;s safer to use prefixes until the spec goes to CR because fontloader spec is still actively being developed, as jdaggett noted on this thread. I&apos;m not sure of WebKit policy about prefixing so let me know if we should use real names.
&gt; 
&gt; Current best-practice is to use the real names, but to guard everything behind a runtime flag.  That runtime flag will be off by default, and turning it on for stable chrome is guarded by a separate feature process which we&apos;re working on documenting. :)  We&apos;re trying to avoid further web-fragmentation from webdevs depending on prefixed features in shipping browsers.

The normal policy for the CSS WG is that a prefix should be used until the spec [1] is in CR or until the WG otherwise declares it sufficiently mature to unprefix.

[1] http://drafts.csswg.org/css-font-load-events-3/

For the Font Loader and related interfaces defined by CSS3 Fonts, I would recommend that the following prefixed forms be used:

* document.webkitFontLoader
* WebKitCSSFontFaceLoadEventInit
* WebKitLoadFontParameters
* WebKitCSSFontFaceLoadEvent
* WebKitCSSFontsReadyCallback
* WebKitFontLoader

You might also need to prefix any event type strings that are newly introduced by the spec [1] that don&apos;t already have a standard use in HTML5.

See also [2] for guidance.

[2] https://trac.webkit.org/wiki/PrefixedAPIs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844595</commentid>
    <comment_count>28</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-28 16:18:26 -0800</bug_when>
    <thetext>&gt; The normal policy for the CSS WG is that a prefix should be used until the spec [1] is in CR or until the WG otherwise declares it sufficiently mature to unprefix.

That&apos;s the policy for shipping a feature, not for writing code.  The plan here is keep the code disabled until it&apos;s ready to ship.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844600</commentid>
    <comment_count>29</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-28 16:21:40 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; &gt; The normal policy for the CSS WG is that a prefix should be used until the spec [1] is in CR or until the WG otherwise declares it sufficiently mature to unprefix.
&gt; 
&gt; That&apos;s the policy for shipping a feature, not for writing code.  The plan here is keep the code disabled until it&apos;s ready to ship.

That may be your Chromium policy decision, but it&apos;s not a WebKit policy decision.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850948</commentid>
    <comment_count>30</comment_count>
      <attachid>192168</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-03-08 00:26:37 -0800</bug_when>
    <thetext>Created attachment 192168
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850952</commentid>
    <comment_count>31</comment_count>
      <attachid>188984</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-03-08 00:29:59 -0800</bug_when>
    <thetext>Comment on attachment 188984
Updated patch, fix test failure

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

Changes from previous patch:
- Removed prefixes (we can use ImplementedAs IDL attribute to expose prefixed names if necessary)
- Added guards by the runtime flag
- Enabled the runtime flag for TestShell
- Updated compiler flag name (ENABLE_FONT_LOADER -&gt; ENABLE_FONT_LOAD_EVENTS)

&gt;&gt; Source/WebCore/css/CSSFontFace.cpp:172
&gt;&gt; +    Document* document = (*m_segmentedFontFaces.begin())-&gt;fontSelector()-&gt;document();
&gt; 
&gt; I don&apos;t think the () are necessary?  They don&apos;t hurt, but I don&apos;t think c++ requires them.

It doesn&apos;t compile without the (); -&gt; is stronger than *.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850960</commentid>
    <comment_count>32</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-08 00:38:03 -0800</bug_when>
    <thetext>Apologies Kunihiko for failing to follow-up sooner.

Thank you for adding the runtime and compile flags for this feature.

Thank you also for changing from using prefixed class names, to unprefixed ones, of all the prefixing changes having the implementation classes unprefixed is most important to me.  (Prefixes on the names of CPP files just makes work for us later when we decide to remove them.)

I&apos;m not particularly interested in using this bug as a platform for arguing whether JS/CSS features should be prefixed in WebKit IDL files or not.  As you and I discussed offline, toggling the prefixing of this feature is a trivial change to our IDL files, thanks to our implementedAs IDL attribute:
http://trac.webkit.org/wiki/WebKitIDL#ImplementedAs

For Chromium prefixes are not particularly useful as we lean heavily on our runtime flags instead of prefixes to avoid shipping incomplete features to the web during development.  Other consumers of WebKit may follow different policies for their own products, and thus it may be desirable for us to now or later change these few IDL attributes/classes to have implementedAs attributes, whether gated by platform #ifdefs or not.

I will look again at the actual implementation of your patch in the morning.  Thank you again for your hard work on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851314</commentid>
    <comment_count>33</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-08 10:34:26 -0800</bug_when>
    <thetext>I asked on chromium-dev, and am told we should add a line to chromestatus.com for this feature.  I believe you should be able to do so using your @chromium account and the link to the spreadsheet.  That will help make sure we&apos;re publicly accountable, and tracking the feature so we don&apos;t ship it before other browsers or the w3c are ready, etc.

See:
https://docs.google.com/document/d/1jrSlM4Yhae7XCJ8BuasWx71CvDEMMbSKbXwx7hoh1Co/edit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851316</commentid>
    <comment_count>34</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-08 10:35:41 -0800</bug_when>
    <thetext>Also, as I mentioned last night, I&apos;ll review your patch again shortly.  Apologies for all the process goop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851711</commentid>
    <comment_count>35</comment_count>
      <attachid>192168</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-08 22:00:12 -0800</bug_when>
    <thetext>Comment on attachment 192168
Updated patch

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

I need to read this again, but hopefully these comments are helpful.  I&apos;m most concerned about possible reference-cycles, but I think I&apos;ve mostly convinced myself that we don&apos;t have any here.

Also, I want to check in my next pass to make sure that we&apos;re using all the internal &quot;Style&quot; classes instead of the &quot;CSS&quot; classes when possible.  CSS classes implement the CSS Object Model, where as the Style classes are all our internal data structures.  I suspect this patch got that all correct, but I will need to re-read to make sure.

&gt; Source/WebCore/bindings/v8/Dictionary.cpp:508
&gt; +bool Dictionary::get(const String&amp; key, RefPtr&lt;CSSFontFaceRule&gt;&amp; value) const

I&apos;ve filed bug 111911 about all this boilerplate that we sadly have to write for each change like this. :(

&gt; Source/WebCore/css/CSSFontFace.h:95
&gt; +    CSSFontFace(FontTraitsMask traitsMask, PassRefPtr&lt;CSSFontFaceRule&gt; rule, bool isLocalFallback)

I assume the ownership is such here that this does not create a cycle?  I guess the StyleResolver is the only thing which holds onto CSSFontFaces, so we should be OK?
https://code.google.com/p/chromium/codesearch#search/&amp;q=RefPtr%3CCSSFontFace%3E&amp;sq=package:chromium&amp;type=cs

&gt; Source/WebCore/css/CSSFontFaceLoadEvent.h:49
&gt; +struct CSSFontFaceLoadEventInit : public EventInit {
&gt; +    RefPtr&lt;CSSFontFaceRule&gt; fontface;
&gt; +    RefPtr&lt;DOMError&gt; error;
&gt; +};

It&apos;s kinda unfortunate that we even need this sort of thing in C++ at all.  These types of objects would be much easier to create directly in JavaScript if we had support for such. :)

&gt; Source/WebCore/css/CSSFontSelector.h:59
&gt; +    CSSSegmentedFontFace* getFontFace(const FontDescription&amp;, const AtomicString&amp;);

Might want to label that the AtomicString is the familyName.

&gt; Source/WebCore/css/FontLoader.cpp:56
&gt; +    LoadFontCallback(int numLoading, PassRefPtr&lt;VoidCallback&gt; loadCallback, PassRefPtr&lt;VoidCallback&gt; errorCallback) : m_numLoading(numLoading), m_errorOccured(false), m_loadCallback(loadCallback), m_errorCallback(errorCallback) { }

This woudl be nicer written out in many lines, IMO.

LoadFontCallback(int numLoading, PassRefPtr&lt;VoidCallback&gt; loadCallback, PassRefPtr&lt;VoidCallback&gt; errorCallback)
    : m_numLoading(numLoading)
    , m_errorOccured(false)
    , m_loadCallback(loadCallback)
   , m_errorCallback(errorCallback)
{ }

&gt; Source/WebCore/css/FontLoader.cpp:210
&gt; +    // FIXME: the text member of params is ignored.

Nit: This should start with a capital letter since it&apos;s a sentence.

&gt; Source/WebCore/css/FontLoader.cpp:214
&gt; +    RefPtr&lt;VoidCallback&gt; onsuccess;
&gt; +    RefPtr&lt;VoidCallback&gt; onerror;
&gt; +    if (!params.get(&quot;font&quot;, fontString))

It seems all this callback lookup stuff could move into the same function which does the LoadFontCallback create.  Maybe just a helper function (static inline or member function on FontLoader) which takes the params, and returns a FontLoadCallback or nullptr.

&gt; Source/WebCore/css/FontLoader.cpp:217
&gt; +    params.get(&quot;onsuccess&quot;, onsuccess);
&gt; +    params.get(&quot;onerror&quot;, onerror);

Very odd that this uses a mutable RefPtr instead of being smart enough to return a PassRefPTr.  These are things which could easily be fixed by autogeneraton when we get there..

&gt; Source/WebCore/css/FontLoader.cpp:225
&gt; +        for (const FontFamily* f = &amp;font.family(); f; f = f-&gt;next())
&gt; +            numFamilies++;

I&apos;m surprised we don&apos;t already have a method for counting how long a font fallback list is.

&gt; Source/WebCore/css/FontLoader.cpp:242
&gt; +    // FIXME: the second parameter (text) is ignored.

Same nit.

&gt; Source/WebCore/css/FontLoader.cpp:254
&gt; +bool FontLoader::resolveFontStyle(const String&amp; fontString, Font&amp; font)

This is a surprisingly long function.

&gt; Source/WebCore/css/FontLoader.cpp:263
&gt; +    if (fontValue == &quot;inherit&quot; || fontValue == &quot;initial&quot;)

I&apos;m surprised we don&apos;t have AtomicString contstants for these values.

&gt; Source/WebCore/css/FontLoader.cpp:285
&gt; +    styleResolver-&gt;applyPropertyToCurrentStyle(CSSPropertyFontStyle, parsedStyle-&gt;getPropertyCSSValue(CSSPropertyFontStyle).get());
&gt; +    styleResolver-&gt;applyPropertyToCurrentStyle(CSSPropertyFontVariant, parsedStyle-&gt;getPropertyCSSValue(CSSPropertyFontVariant).get());
&gt; +    styleResolver-&gt;applyPropertyToCurrentStyle(CSSPropertyFontWeight, parsedStyle-&gt;getPropertyCSSValue(CSSPropertyFontWeight).get());

If we don&apos;t already have a helper function, we shoudl make one.

applyPropertyToCurrentStyle(styleResolver, CSSPropertyFontStyle, parsedStyle) is much shorter.

&gt; Source/WebCore/css/FontLoader.h:77
&gt; +    Document* document() { return m_document; }

const

&gt; Source/WebCore/dom/EventNames.h:88
&gt; +    macro(loading) \
&gt; +    macro(loadingdone) \

It seems odd that CSS didn&apos;t just reuse &quot;load&quot; to mean &quot;loading done&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852181</commentid>
    <comment_count>36</comment_count>
      <attachid>192437</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-03-11 04:21:11 -0700</bug_when>
    <thetext>Created attachment 192437
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852192</commentid>
    <comment_count>37</comment_count>
      <attachid>192168</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-03-11 04:47:44 -0700</bug_when>
    <thetext>Comment on attachment 192168
Updated patch

Thanks for the comments!
I&apos;ve added a line to the chromestatus spreadsheet.


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

&gt;&gt; Source/WebCore/bindings/v8/Dictionary.cpp:508
&gt;&gt; +bool Dictionary::get(const String&amp; key, RefPtr&lt;CSSFontFaceRule&gt;&amp; value) const
&gt; 
&gt; I&apos;ve filed bug 111911 about all this boilerplate that we sadly have to write for each change like this. :(

Thanks!

&gt;&gt; Source/WebCore/css/CSSFontFace.h:95
&gt;&gt; +    CSSFontFace(FontTraitsMask traitsMask, PassRefPtr&lt;CSSFontFaceRule&gt; rule, bool isLocalFallback)
&gt; 
&gt; I assume the ownership is such here that this does not create a cycle?  I guess the StyleResolver is the only thing which holds onto CSSFontFaces, so we should be OK?
&gt; https://code.google.com/p/chromium/codesearch#search/&amp;q=RefPtr%3CCSSFontFace%3E&amp;sq=package:chromium&amp;type=cs

Yeah only StyleResolver (transitively) holds CSSFontFace, and I don&apos;t think CSSFontFaceRule holds StyleResolver.

&gt;&gt; Source/WebCore/css/CSSFontSelector.h:59
&gt;&gt; +    CSSSegmentedFontFace* getFontFace(const FontDescription&amp;, const AtomicString&amp;);
&gt; 
&gt; Might want to label that the AtomicString is the familyName.

Done.

&gt;&gt; Source/WebCore/css/FontLoader.cpp:56
&gt;&gt; +    LoadFontCallback(int numLoading, PassRefPtr&lt;VoidCallback&gt; loadCallback, PassRefPtr&lt;VoidCallback&gt; errorCallback) : m_numLoading(numLoading), m_errorOccured(false), m_loadCallback(loadCallback), m_errorCallback(errorCallback) { }
&gt; 
&gt; This woudl be nicer written out in many lines, IMO.
&gt; 
&gt; LoadFontCallback(int numLoading, PassRefPtr&lt;VoidCallback&gt; loadCallback, PassRefPtr&lt;VoidCallback&gt; errorCallback)
&gt;     : m_numLoading(numLoading)
&gt;     , m_errorOccured(false)
&gt;     , m_loadCallback(loadCallback)
&gt;    , m_errorCallback(errorCallback)
&gt; { }

Done.

&gt;&gt; Source/WebCore/css/FontLoader.cpp:210
&gt;&gt; +    // FIXME: the text member of params is ignored.
&gt; 
&gt; Nit: This should start with a capital letter since it&apos;s a sentence.

Done.

&gt;&gt; Source/WebCore/css/FontLoader.cpp:214
&gt;&gt; +    if (!params.get(&quot;font&quot;, fontString))
&gt; 
&gt; It seems all this callback lookup stuff could move into the same function which does the LoadFontCallback create.  Maybe just a helper function (static inline or member function on FontLoader) which takes the params, and returns a FontLoadCallback or nullptr.

Moved to LoadFontCallback::createFromParams().

&gt;&gt; Source/WebCore/css/FontLoader.cpp:242
&gt;&gt; +    // FIXME: the second parameter (text) is ignored.
&gt; 
&gt; Same nit.

Done.

&gt;&gt; Source/WebCore/css/FontLoader.cpp:254
&gt;&gt; +bool FontLoader::resolveFontStyle(const String&amp; fontString, Font&amp; font)
&gt; 
&gt; This is a surprisingly long function.

Most part of this function was copied from CanvasRenderingContext2D::setFont, which is longer than this...

&gt;&gt; Source/WebCore/css/FontLoader.cpp:285
&gt;&gt; +    styleResolver-&gt;applyPropertyToCurrentStyle(CSSPropertyFontWeight, parsedStyle-&gt;getPropertyCSSValue(CSSPropertyFontWeight).get());
&gt; 
&gt; If we don&apos;t already have a helper function, we shoudl make one.
&gt; 
&gt; applyPropertyToCurrentStyle(styleResolver, CSSPropertyFontStyle, parsedStyle) is much shorter.

Done.

&gt;&gt; Source/WebCore/css/FontLoader.h:77
&gt;&gt; +    Document* document() { return m_document; }
&gt; 
&gt; const

Done.

&gt;&gt; Source/WebCore/dom/EventNames.h:88
&gt;&gt; +    macro(loadingdone) \
&gt; 
&gt; It seems odd that CSS didn&apos;t just reuse &quot;load&quot; to mean &quot;loading done&quot;.

That is because the spec already uses &quot;load&quot; as per-font load event.
http://dev.w3.org/csswg/css-font-load-events-3/#events</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852196</commentid>
    <comment_count>38</comment_count>
      <attachid>192437</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-11 04:53:37 -0700</bug_when>
    <thetext>Comment on attachment 192437
Updated patch

Attachment 192437 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17111434</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852201</commentid>
    <comment_count>39</comment_count>
      <attachid>192442</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-03-11 05:05:19 -0700</bug_when>
    <thetext>Created attachment 192442
Updated patch, fix build error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852545</commentid>
    <comment_count>40</comment_count>
      <attachid>192442</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-11 12:00:58 -0700</bug_when>
    <thetext>Comment on attachment 192442
Updated patch, fix build error

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

This patch looks great.  Please reply to my comments before landing.  As I mentioned before, we may need to make a follow-up patch to use implemntedAs for some ports, if other ports want to turn this on for testing before other browsers have implemented this.

&gt; Source/WebCore/css/CSSFontFaceLoadEvent.cpp:43
&gt; +    : Event(type, false, false)

We need to fix these to not use Bools some day.  I assume that means this event doesn&apos;t bubble?

&gt; Source/WebCore/css/CSSFontSelector.cpp:232
&gt; +            // FIXME: This CSSFontFaceRule has no parent.

Could you file a bug and link it from here, or otherwise explain more about how this should be fixed?  I assume this method would need more context to construct the rule properly?

&gt; Source/WebCore/css/CSSFontSelector.cpp:503
&gt; +    String family = familyName.string();

I think this can be const String&amp;?  I&apos;m confused why it even needs to be a String and not an AtomicString.

&gt; Source/WebCore/css/CSSFontSelector.cpp:505
&gt; +    Vector&lt;RefPtr&lt;CSSFontFace&gt; &gt;* familyFontFaces = m_fontFaces.get(family);

Isn&apos;t familyName only used on this line?  Can we just get rid of the local?

&gt; Source/WebCore/css/CSSSegmentedFontFace.cpp:80
&gt; +        Vector&lt;RefPtr&lt;LoadFontCallback&gt; &gt; callbacks;
&gt; +        m_callbacks.swap(callbacks);

I assume we&apos;re doing this so that modifications to the fontLoader during a notify do not cause additional notifies to fire, correct?

&gt; Source/WebCore/css/CSSSegmentedFontFace.cpp:175
&gt; +    getFontData(fontDescription);

Why does this not return anything?  &quot;get&quot; seems like a poor name for thsi function (obviously this pre-dates your patch, and I&apos;m not asknig you to change it... just noticing).  This seems like more of an &quot;ensure&quot; function?

&gt; Source/WebCore/css/FontLoader.cpp:45
&gt; +static const int defaultFontSize = 10;
&gt; +static const char* const defaultFontFamily = &quot;sans-serif&quot;;

I assume these are dictacted by the spec and should not be shared with some other portion of our engine?  Also, I am surprised we don&apos;t already have a global AtomicString for sans-serif.  maybe it&apos;s just used as a function-local static other places.

&gt; Source/WebCore/css/FontLoader.cpp:54
&gt; +    static PassRefPtr&lt;LoadFontCallback&gt; createFromParams(const Dictionary&amp; params, const FontFamily&amp; family)

Oooh, this is nice.  Thank you.

&gt; Source/WebCore/css/FontLoader.cpp:125
&gt; +EventTargetData* FontLoader::eventTargetData()
&gt; +{
&gt; +    return &amp;m_eventTargetData;
&gt; +}
&gt; +
&gt; +EventTargetData* FontLoader::ensureEventTargetData()
&gt; +{
&gt; +    return &amp;m_eventTargetData;
&gt; +}

This feels a bit odd.  I guess no caller ever holds onto this data?  Should these return const EventTargetData*?

&gt; Source/WebCore/css/FontLoader.cpp:189
&gt; +    String errorName = (source &amp;&amp; source-&gt;isDecodeError()) ? &quot;InvalidFontDataError&quot; : &quot;NotFoundError&quot;;

I&apos;m a little surprised these strings don&apos;t already exist somewhere we should share.

&gt; Source/WebCore/css/FontLoader.cpp:237
&gt; +    RefPtr&lt;LoadFontCallback&gt; callback = LoadFontCallback::createFromParams(params, font.family());

This is much nicer, thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853232</commentid>
    <comment_count>41</comment_count>
      <attachid>192681</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-03-12 02:33:19 -0700</bug_when>
    <thetext>Created attachment 192681
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853235</commentid>
    <comment_count>42</comment_count>
      <attachid>192442</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2013-03-12 02:40:27 -0700</bug_when>
    <thetext>Comment on attachment 192442
Updated patch, fix build error

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

&gt;&gt; Source/WebCore/css/CSSFontFaceLoadEvent.cpp:43
&gt;&gt; +    : Event(type, false, false)
&gt; 
&gt; We need to fix these to not use Bools some day.  I assume that means this event doesn&apos;t bubble?

Right. It doesn&apos;t bubble, not cancelable.

&gt;&gt; Source/WebCore/css/CSSFontSelector.cpp:232
&gt;&gt; +            // FIXME: This CSSFontFaceRule has no parent.
&gt; 
&gt; Could you file a bug and link it from here, or otherwise explain more about how this should be fixed?  I assume this method would need more context to construct the rule properly?

Done.

&gt;&gt; Source/WebCore/css/CSSFontSelector.cpp:503
&gt;&gt; +    String family = familyName.string();
&gt; 
&gt; I think this can be const String&amp;?  I&apos;m confused why it even needs to be a String and not an AtomicString.

Apparently there is no need for String. Got rid of this.

&gt;&gt; Source/WebCore/css/CSSSegmentedFontFace.cpp:80
&gt;&gt; +        m_callbacks.swap(callbacks);
&gt; 
&gt; I assume we&apos;re doing this so that modifications to the fontLoader during a notify do not cause additional notifies to fire, correct?

Correct.

&gt;&gt; Source/WebCore/css/CSSSegmentedFontFace.cpp:175
&gt;&gt; +    getFontData(fontDescription);
&gt; 
&gt; Why does this not return anything?  &quot;get&quot; seems like a poor name for thsi function (obviously this pre-dates your patch, and I&apos;m not asknig you to change it... just noticing).  This seems like more of an &quot;ensure&quot; function?

Yeah this is to start the font load if not started yet. I agree this looks a little odd so I&apos;ve added a comment here.

&gt;&gt; Source/WebCore/css/FontLoader.cpp:45
&gt;&gt; +static const char* const defaultFontFamily = &quot;sans-serif&quot;;
&gt; 
&gt; I assume these are dictacted by the spec and should not be shared with some other portion of our engine?  Also, I am surprised we don&apos;t already have a global AtomicString for sans-serif.  maybe it&apos;s just used as a function-local static other places.

These are coming from the canvas spec. The font load events spec says:
&quot;These values must be parsed using the same syntax as values for the CSS ‘font’ property, the same way the font attribute of the CanvasRenderingContext2D is interpreted.&quot;
Maybe I should create a function used by FontLoader and CanvasRenderingContext2D that resolves font styles, but not sure where that function should be placed.

&gt;&gt; Source/WebCore/css/FontLoader.cpp:125
&gt;&gt; +}
&gt; 
&gt; This feels a bit odd.  I guess no caller ever holds onto this data?  Should these return const EventTargetData*?

These are kind of boilerplate code that EventTarget subclasses need. Caller modifies EventTargetData (adding/removing listeners), hence non-const.

&gt;&gt; Source/WebCore/css/FontLoader.cpp:189
&gt;&gt; +    String errorName = (source &amp;&amp; source-&gt;isDecodeError()) ? &quot;InvalidFontDataError&quot; : &quot;NotFoundError&quot;;
&gt; 
&gt; I&apos;m a little surprised these strings don&apos;t already exist somewhere we should share.

There is a table of standard DOMErrors in dom/DOMCoreException.cpp. Changed to use that.
&quot;InvalidFontDataError&quot; is specific to the font load events, so I would like to leave it as a string literal for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854966</commentid>
    <comment_count>43</comment_count>
      <attachid>192681</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-13 22:37:26 -0700</bug_when>
    <thetext>Comment on attachment 192681
Updated patch

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

Thank you for all your hard work on this.

&gt; Source/WebCore/css/CSSFontFace.cpp:140
&gt; +    if (RuntimeEnabledFeatures::fontLoadEventsEnabled() &amp;&amp; m_loadState == Loading) {

You could have saved yourself a bit of typing by putting these runtimeenabledfeatures checks into the notify* methods.  But this is fine too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854974</commentid>
    <comment_count>44</comment_count>
      <attachid>192681</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-13 23:02:17 -0700</bug_when>
    <thetext>Comment on attachment 192681
Updated patch

Clearing flags on attachment: 192681

Committed r145787: &lt;http://trac.webkit.org/changeset/145787&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854975</commentid>
    <comment_count>45</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-13 23:02:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167066</attachid>
            <date>2012-10-04 03:38:36 -0700</date>
            <delta_ts>2013-03-08 00:26:17 -0800</delta_ts>
            <desc>proof of concept patch</desc>
            <filename>bug-98395-20121004193746.patch</filename>
            <type>text/plain</type>
            <size>32304</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMGQwMWY5MTkx
NWIzNjQyMjMzOGJmYzk1NjJkOWRkZjUwMTRkOWQwZC4uNjkxYmU4MmRlOGYwMDYzZDEyODM0Nzdj
ZWM3OGFjYmQ2NWIyMzJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTAyLDYgKzEwMiw3IEBACiAg
ICAgICAgICAgICAnY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaCcsCiAgICAgICAgICAgICAnY3Nz
L0NTU1ZhbHVlLmgnLAogICAgICAgICAgICAgJ2Nzcy9DU1NWYWx1ZUxpc3QuaCcsCisgICAgICAg
ICAgICAnY3NzL0ZvbnRMb2FkZXIuaCcsCiAgICAgICAgICAgICAnY3NzL0xlbmd0aEZ1bmN0aW9u
cy5oJywKICAgICAgICAgICAgICdjc3MvUGFpci5oJywKICAgICAgICAgICAgICdjc3MvV2ViS2l0
Q1NTRmlsdGVyVmFsdWUuaCcsCkBAIC05NDcsNiArOTQ4LDcgQEAKICAgICAgICAgICAgICdNb2R1
bGVzL3dlYnNvY2tldHMvV29ya2VyQ29udGV4dFdlYlNvY2tldC5pZGwnLAogICAgICAgICAgICAg
J2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9DU1NGb250RmFjZVJ1
bGUuaWRsJywKKyAgICAgICAgICAgICdjc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsJywKICAg
ICAgICAgICAgICdjc3MvQ1NTSW1wb3J0UnVsZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9DU1NN
ZWRpYVJ1bGUuaWRsJywKICAgICAgICAgICAgICdjc3MvQ1NTUGFnZVJ1bGUuaWRsJywKQEAgLTk2
MCw2ICs5NjIsNyBAQAogICAgICAgICAgICAgJ2Nzcy9DU1NWYWx1ZS5pZGwnLAogICAgICAgICAg
ICAgJ2Nzcy9DU1NWYWx1ZUxpc3QuaWRsJywKICAgICAgICAgICAgICdjc3MvQ291bnRlci5pZGwn
LAorICAgICAgICAgICAgJ2Nzcy9Gb250TG9hZGVyLmlkbCcsCiAgICAgICAgICAgICAnY3NzL01l
ZGlhTGlzdC5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwnLAogICAg
ICAgICAgICAgJ2Nzcy9SZWN0LmlkbCcsCkBAIC0yNTI0LDYgKzI1MjcsOCBAQAogICAgICAgICAg
ICAgJ2Nzcy9DU1NGb250RmFjZVJ1bGUuaCcsCiAgICAgICAgICAgICAnY3NzL0NTU0ZvbnRGYWNl
U291cmNlLmNwcCcsCiAgICAgICAgICAgICAnY3NzL0NTU0ZvbnRGYWNlU291cmNlLmgnLAorICAg
ICAgICAgICAgJ2Nzcy9DU1NGb250RmFjZUxvYWRFdmVudC5jcHAnLAorICAgICAgICAgICAgJ2Nz
cy9DU1NGb250RmFjZUxvYWRFdmVudC5oJywKICAgICAgICAgICAgICdjc3MvQ1NTRm9udEZhY2VT
cmNWYWx1ZS5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmgnLAog
ICAgICAgICAgICAgJ2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwJywKQEAgLTI1ODcsNiArMjU5Miw3
IEBACiAgICAgICAgICAgICAnY3NzL0Rhc2hib2FyZFJlZ2lvbi5oJywKICAgICAgICAgICAgICdj
c3MvRm9udEZlYXR1cmVWYWx1ZS5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9Gb250RmVhdHVyZVZh
bHVlLmgnLAorICAgICAgICAgICAgJ2Nzcy9Gb250TG9hZGVyLmNwcCcsCiAgICAgICAgICAgICAn
Y3NzL0ZvbnRWYWx1ZS5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9Gb250VmFsdWUuaCcsCiAgICAg
ICAgICAgICAnY3NzL0xlbmd0aEZ1bmN0aW9ucy5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9EaWN0aW9uYXJ5LmNwcAppbmRleCAxODc0MDNmY2RhNDMzMTVhNTA0ZmQ3MzZkYzhlZTc2
YTY1NTRhYWVhLi5iYzIwYjgzZGU5NDNhNzNmZjFkNjJiMGQzZTYxZDIwYTZjYWM5YmNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmNwcApAQCAtNDY3LDYgKzQ2Nywx
MiBAQCBib29sIERpY3Rpb25hcnk6OmdldChjb25zdCBTdHJpbmcmIGtleSwgQXJyYXlWYWx1ZSYg
dmFsdWUpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgRGljdGlvbmFyeTo6Z2V0
KGNvbnN0IFN0cmluZyYga2V5LCBSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiYgdmFsdWUpIGNvbnN0
Cit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGJv
b2wgRGljdGlvbmFyeTo6Z2V0T3duUHJvcGVydGllc0FzU3RyaW5nSGFzaE1hcChIYXNoTWFwPFN0
cmluZywgU3RyaW5nPiYgaGFzaE1hcCkgY29uc3QKIHsKICAgICBpZiAoIWlzT2JqZWN0KCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmgKaW5kZXggMDMxNWYwMGMzNzY1OWRi
NmJhMDAwYTk1MzkzM2I3NzNkMWYxOWVkMC4uMWMxMGJhYjJjY2U1NmFkMDFlZjY4MjVjZDI1YjFj
NDE1ZmE1NGQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlv
bmFyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuaApAQCAt
MzksNiArMzksNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcnJheVZhbHVlOwor
Y2xhc3MgQ1NTRm9udEZhY2VSdWxlOwogY2xhc3MgRE9NV2luZG93OwogY2xhc3MgSURCS2V5UmFu
Z2U7CiBjbGFzcyBNZWRpYUtleUVycm9yOwpAQCAtODgsNiArODksNyBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBnZXQoY29uc3QgU3RyaW5nJiwgRGljdGlvbmFyeSYpIGNvbnN0OwogICAgIGJvb2wgZ2V0
KGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikgY29uc3Q7CiAgICAgYm9vbCBnZXQoY29u
c3QgU3RyaW5nJiwgQXJyYXlWYWx1ZSYpIGNvbnN0OworICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmlu
ZyYsIFJlZlB0cjxDU1NGb250RmFjZVJ1bGU+JikgY29uc3Q7CiAKICAgICBib29sIGdldE93blBy
b3BlcnRpZXNBc1N0cmluZ0hhc2hNYXAoSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mKSBjb25zdDsK
ICAgICBib29sIGdldE93blByb3BlcnR5TmFtZXMoVmVjdG9yPFN0cmluZz4mKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZUxvYWRFdmVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1
YjIxM2M5OWE3ZWU4MmY4MGFhYTM5OGEyYTlhYjU0MDQ5OWFjMTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwCkBAIC0wLDAgKzEs
NjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJDU1NGb250RmFjZUxvYWRFdmVu
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0NTU0ZvbnRGYWNlTG9hZEV2ZW50OjpDU1NG
b250RmFjZUxvYWRFdmVudCgpCisgICAgOiBFdmVudChldmVudE5hbWVzKCkuZXJyb3JFdmVudCwg
ZmFsc2UsIGZhbHNlKQoreworfQorCitDU1NGb250RmFjZUxvYWRFdmVudDo6Q1NTRm9udEZhY2VM
b2FkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGVycm9yKQor
ICAgIDogRXZlbnQodHlwZSwgZmFsc2UsIGZhbHNlKQorICAgICwgbV9lcnJvcihlcnJvcikKK3sK
K30KKworQ1NTRm9udEZhY2VMb2FkRXZlbnQ6OkNTU0ZvbnRGYWNlTG9hZEV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgdHlwZSwgY29uc3QgQ1NTRm9udEZhY2VMb2FkRXZlbnRJbml0JiBpbml0aWFs
aXplcikKKyAgICA6IEV2ZW50KHR5cGUsIGluaXRpYWxpemVyKQorICAgICwgbV9mb250ZmFjZShp
bml0aWFsaXplci5mb250ZmFjZSkKKyAgICAsIG1fZXJyb3IoaW5pdGlhbGl6ZXIuZXJyb3IpCit7
Cit9CisKK0NTU0ZvbnRGYWNlTG9hZEV2ZW50Ojp+Q1NTRm9udEZhY2VMb2FkRXZlbnQoKQorewor
fQorCitjb25zdCBBdG9taWNTdHJpbmcmIENTU0ZvbnRGYWNlTG9hZEV2ZW50OjppbnRlcmZhY2VO
YW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZvckNTU0Zv
bnRGYWNlTG9hZEV2ZW50OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmFjZUxvYWRFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhYjZmNjgxNmQ3MmNm
OGRiZGY5MWRkZDBmMTY5ZWJjMmY5ZTNhNWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaApAQCAtMCwwICsxLDg4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBD
U1NGb250RmFjZUxvYWRFdmVudF9oCisjZGVmaW5lIENTU0ZvbnRGYWNlTG9hZEV2ZW50X2gKKwor
I2luY2x1ZGUgIkNTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisjaW5j
bHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworc3RydWN0IENTU0ZvbnRGYWNlTG9hZEV2ZW50SW5pdCA6IHB1YmxpYyBFdmVudEluaXQg
eworICAgIENTU0ZvbnRGYWNlTG9hZEV2ZW50SW5pdCgpCisgICAgeworICAgIH07CisKKyAgICBS
ZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiBmb250ZmFjZTsKKyAgICBTdHJpbmcgZXJyb3I7Cit9Owor
CitjbGFzcyBDU1NGb250RmFjZUxvYWRFdmVudCA6IHB1YmxpYyBFdmVudCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTRm9udEZhY2VMb2FkRXZlbnQ+IGNyZWF0ZSgpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWY8Q1NTRm9udEZhY2VMb2FkRXZlbnQ+KG5ldyBDU1NG
b250RmFjZUxvYWRFdmVudCgpKTsKKyAgICB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTRm9u
dEZhY2VMb2FkRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWY8Q1NTRm9udEZhY2VMb2FkRXZlbnQ+KG5ldyBDU1NGb250
RmFjZUxvYWRFdmVudCh0eXBlKSk7CisgICAgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0Zv
bnRGYWNlTG9hZEV2ZW50PiBjcmVhdGVGb3JFcnJvcihjb25zdCBTdHJpbmcmIGVycm9yKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmPENTU0ZvbnRGYWNlTG9hZEV2ZW50PihuZXcgQ1NT
Rm9udEZhY2VMb2FkRXZlbnQoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIGVycm9yKSk7CisgICAg
fQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0ZvbnRGYWNlTG9hZEV2ZW50PiBjcmVhdGUoY29u
c3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBDU1NGb250RmFjZUxvYWRFdmVudEluaXQmIGlu
aXRpYWxpemVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmPENTU0ZvbnRGYWNlTG9h
ZEV2ZW50PihuZXcgQ1NTRm9udEZhY2VMb2FkRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIpKTsKKyAg
ICB9CisgICAgdmlydHVhbCB+Q1NTRm9udEZhY2VMb2FkRXZlbnQoKTsKKworICAgIENTU0ZvbnRG
YWNlUnVsZSogZm9udGZhY2UoKSBjb25zdCB7IHJldHVybiAwOyB9IC8vIEZJWE1FOiBJbXBsZW1l
bnQuCisgICAgU3RyaW5nIGVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvcjsgfQorCisgICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGludGVyZmFjZU5hbWUoKSBjb25zdDsKKworcHJp
dmF0ZToKKyAgICBDU1NGb250RmFjZUxvYWRFdmVudCgpOworICAgIENTU0ZvbnRGYWNlTG9hZEV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBlcnJvciA9IFN0cmlu
ZygpKTsKKyAgICBDU1NGb250RmFjZUxvYWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGNvbnN0IENTU0ZvbnRGYWNlTG9hZEV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpOworCisgICAgUmVm
UHRyPENTU0ZvbnRGYWNlUnVsZT4gbV9mb250ZmFjZTsKKyAgICBTdHJpbmcgbV9lcnJvcjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIENTU0ZvbnRGYWNlTG9hZEV2
ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZUxvYWRFdmVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmNhODEzMmE4NGE4ZWQ3N2I0NDBhMGI1OGFlZGVhYzc0NzYxNWFhZDkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsCkBA
IC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCittb2R1bGUgZXZlbnRzIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAg
IEpTTm9TdGF0aWNUYWJsZXMsCisgICAgICAgIENvbnN0cnVjdG9yVGVtcGxhdGU9RXZlbnQKKyAg
ICBdIENTU0ZvbnRGYWNlTG9hZEV2ZW50IDogRXZlbnQgeworICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSBDU1NGb250RmFjZVJ1bGUgZm9u
dGZhY2U7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29u
c3RydWN0b3JdIERPTVN0cmluZyBlcnJvcjsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRGYWNlU291cmNlLmNwcAppbmRleCA4MWEwNWExNTBiODE1NWUxZGE5YjA2NTEyMjhk
MjQxMTVmNTQ2ZDg5Li4wM2E5ZTZmM2Y2MGY5ZjllZGExNzY1ODdiNmMyMmE4NWMxODk4YWQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAKQEAgLTMzLDYgKzMzLDcg
QEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZvbnRDYWNoZS5oIgogI2luY2x1
ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIkZvbnRMb2FkZXIuaCIKICNpbmNsdWRl
ICJTaW1wbGVGb250RGF0YS5oIgogCiAjaWYgRU5BQkxFKFNWR19GT05UUykKQEAgLTUwLDYgKzUx
LDcgQEAgQ1NTRm9udEZhY2VTb3VyY2U6OkNTU0ZvbnRGYWNlU291cmNlKGNvbnN0IFN0cmluZyYg
c3RyLCBDYWNoZWRGb250KiBmb250KQogICAgIDogbV9zdHJpbmcoc3RyKQogICAgICwgbV9mb250
KGZvbnQpCiAgICAgLCBtX2ZhY2UoMCkKKyAgICAsIG1fbG9hZE5vdGlmaWVkKGZhbHNlKQogI2lm
IEVOQUJMRShTVkdfRk9OVFMpCiAgICAgLCBtX2hhc0V4dGVybmFsU1ZHRm9udChmYWxzZSkKICNl
bmRpZgpAQCAtMTA2LDcgKzEwOCwxMiBAQCBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBDU1NG
b250RmFjZVNvdXJjZTo6Z2V0Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJgogI2VuZGlm
CiAgICAgKSB7CiAgICAgICAgIC8vIFdlJ3JlIGxvY2FsLiBKdXN0IHJldHVybiBhIFNpbXBsZUZv
bnREYXRhIGZyb20gdGhlIG5vcm1hbCBjYWNoZS4KLSAgICAgICAgcmV0dXJuIGZvbnRDYWNoZSgp
LT5nZXRDYWNoZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIG1fc3RyaW5nKTsKKyAgICAgICAg
UmVmUHRyPFNpbXBsZUZvbnREYXRhPiBmb250RGF0YSA9IGZvbnRDYWNoZSgpLT5nZXRDYWNoZWRG
b250RGF0YShmb250RGVzY3JpcHRpb24sIG1fc3RyaW5nKTsKKyAgICAgICAgaWYgKCFtX2xvYWRO
b3RpZmllZCkgeworICAgICAgICAgICAgZm9udFNlbGVjdG9yLT5kb2N1bWVudCgpLT5mb250bG9h
ZGVyKCktPnVzaW5nTG9jYWxGb250KGZvbnREYXRhLmdldCgpKTsKKyAgICAgICAgICAgIG1fbG9h
ZE5vdGlmaWVkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZm9udERhdGEucmVs
ZWFzZSgpOwogICAgIH0KIAogICAgIC8vIFNlZSBpZiB3ZSBoYXZlIGEgbWFwcGluZyBpbiBvdXIg
Rm9udERhdGEgY2FjaGUuCkBAIC0xNzcsNiArMTg0LDcgQEAgUGFzc1JlZlB0cjxTaW1wbGVGb250
RGF0YT4gQ1NTRm9udEZhY2VTb3VyY2U6OmdldEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlv
biYKICAgICAgICAgLy8gS2ljayBvZmYgdGhlIGxvYWQuIERvIGl0IHNvb24gcmF0aGVyIHRoYW4g
bm93LCBiZWNhdXNlIHdlIG1heSBiZSBpbiB0aGUgbWlkZGxlIG9mIGxheW91dCwKICAgICAgICAg
Ly8gYW5kIHRoZSBsb2FkZXIgbWF5IGludm9rZSBhcmJpdHJhcnkgZGVsZWdhdGUgb3IgZXZlbnQg
aGFuZGxlciBjb2RlLgogICAgICAgICBmb250U2VsZWN0b3ItPmJlZ2luTG9hZGluZ0ZvbnRTb29u
KG1fZm9udC5nZXQoKSk7CisgICAgICAgIGZvbnRTZWxlY3Rvci0+ZG9jdW1lbnQoKS0+Zm9udGxv
YWRlcigpLT5iZWdpbkZvbnRMb2FkaW5nKCk7IC8vIEZJWE1FOiBQYXNzIGFwcHJvcHJpYXRlIG9i
amVjdC4KIAogICAgICAgICAvLyBUaGlzIHRlbXBvcmFyeSBmb250IGlzIG5vdCByZXRhaW5lZCBh
bmQgc2hvdWxkIG5vdCBiZSByZXR1cm5lZC4KICAgICAgICAgRm9udENhY2hlUHVyZ2VQcmV2ZW50
ZXIgZm9udENhY2hlUHVyZ2VQcmV2ZW50ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udEZhY2VTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNv
dXJjZS5oCmluZGV4IDA0ODhkMTBkMzI2MDBlNDdkZWRkMGY3MjhjMDAzNGNhMDRhZGYxNWMuLjY0
YzhkMTM5MmE0OThkZGI3MzgwMjA2ZmY4OTgwNGM0Nzc4ZDVkNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZVNvdXJjZS5oCkBAIC03Nyw2ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9udD4gbV9mb250OyAvLyBGb3IgcmVtb3RlIGZvbnRz
LCBhIHBvaW50ZXIgdG8gb3VyIGNhY2hlZCByZXNvdXJjZS4KICAgICBDU1NGb250RmFjZSogbV9m
YWNlOyAvLyBPdXIgb3duaW5nIGZvbnQgZmFjZS4KICAgICBIYXNoTWFwPHVuc2lnbmVkLCBSZWZQ
dHI8U2ltcGxlRm9udERhdGE+ID4gbV9mb250RGF0YVRhYmxlOyAvLyBUaGUgaGFzaCBrZXkgaXMg
Y29tcG9zZWQgb2Ygc2l6ZSBzeW50aGV0aWMgc3R5bGVzLgorICAgIGJvb2wgbV9sb2FkTm90aWZp
ZWQ7CiAKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQogICAgIFJlZlB0cjxTVkdGb250RmFjZUVsZW1l
bnQ+IG1fc3ZnRm9udEZhY2VFbGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9y
LmNwcAppbmRleCA4MjViZmEyYmQyNDUwNzE2MmNjZGE1MmFiNGVhODdmZGFhNTI4ZGUyLi4wYTRm
MzAxOWNkYmQyYzhlNzJhMmU5NTMyM2UxNjViMmFhYzM2Njk4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udFNlbGVjdG9yLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJGb250TG9hZGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgpAQCAtMjE0LDYgKzIxNSw4IEBA
IHZvaWQgQ1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1bGUoY29uc3QgU3R5bGVSdWxlRm9u
dEZhY2UqIGZvbnRGYWNlUnVsZSkKICAgICAgICAgICAgICAgICBDYWNoZWRGb250KiBjYWNoZWRG
b250ID0gaXRlbS0+Y2FjaGVkRm9udChtX2RvY3VtZW50KTsKICAgICAgICAgICAgICAgICBpZiAo
Y2FjaGVkRm9udCkgewogICAgICAgICAgICAgICAgICAgICBzb3VyY2UgPSBhZG9wdFB0cihuZXcg
Q1NTRm9udEZhY2VTb3VyY2UoaXRlbS0+cmVzb3VyY2UoKSwgY2FjaGVkRm9udCkpOworICAgICAg
ICAgICAgICAgICAgICBpZiAobV9kb2N1bWVudCkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
ZG9jdW1lbnQtPmZvbnRsb2FkZXIoKS0+YWRkU291cmNlKGNhY2hlZEZvbnQpOwogI2lmIEVOQUJM
RShTVkdfRk9OVFMpCiAgICAgICAgICAgICAgICAgICAgIGlmIChmb3VuZFNWR0ZvbnQpCiAgICAg
ICAgICAgICAgICAgICAgICAgICBzb3VyY2UtPnNldEhhc0V4dGVybmFsU1ZHRm9udCh0cnVlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjg3ZTkzNDU4ZWJkNmY5NGU5
YmE4Mzk5M2FlZWRlNmY0ZmIwZDhiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0ZvbnRMb2FkZXIuY3BwCkBAIC0wLDAgKzEsMTY5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
CisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDxzdGRpby5oPgorCisjaW5jbHVkZSAiRm9udExv
YWRlci5oIgorCisjaW5jbHVkZSAiQ2FjaGVkRm9udC5oIgorI2luY2x1ZGUgIkNTU0ZvbnRGYWNl
LmgiCisjaW5jbHVkZSAiQ1NTRm9udEZhY2VMb2FkRXZlbnQuaCIKKyNpbmNsdWRlICJDU1NGb250
RmFjZVNvdXJjZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRm9udExvYWRlcjo6T2JzZXJ2ZXIg
OiBwdWJsaWMgQ2FjaGVkRm9udENsaWVudCB7CitwdWJsaWM6CisgICAgT2JzZXJ2ZXIoRm9udExv
YWRlciogbG9hZGVyKQorICAgICAgICA6IG1fbG9hZGVyKGxvYWRlcikKKyAgICB7CisgICAgfQor
ICAgIHZpcnR1YWwgdm9pZCBmb250TG9hZGVkKENhY2hlZEZvbnQqKTsKKworcHJpdmF0ZToKKyAg
ICBGb250TG9hZGVyKiBtX2xvYWRlcjsKK307CisKK3ZvaWQgRm9udExvYWRlcjo6T2JzZXJ2ZXI6
OmZvbnRMb2FkZWQoQ2FjaGVkRm9udCogY2FjaGVkRm9udCkKK3sKKyAgICBtX2xvYWRlci0+Zm9u
dExvYWRlZChjYWNoZWRGb250KTsKK30KKworRm9udExvYWRlcjo6Rm9udExvYWRlcihEb2N1bWVu
dCogZG9jdW1lbnQpCisgICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQsIHRoaXMpCisgICAg
LCBtX2RvY3VtZW50KGRvY3VtZW50KQorICAgICwgbV9sb2FkaW5nQ291bnQoMCkKK3sKKyAgICBt
X29ic2VydmVyID0gYWRvcHRQdHIobmV3IE9ic2VydmVyKHRoaXMpKTsKKyAgICBzdXNwZW5kSWZO
ZWVkZWQoKTsKK30KKworRm9udExvYWRlcjo6fkZvbnRMb2FkZXIoKQoreworfQorCitTdHJpbmcg
Rm9udExvYWRlcjo6cmVhZHlTdGF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbG9hZGluZ0Nv
dW50ID09IDAgPyAiaWRsZSIgOiAibG9hZGluZyI7Cit9CisKK0V2ZW50VGFyZ2V0RGF0YSogRm9u
dExvYWRlcjo6ZXZlbnRUYXJnZXREYXRhKCkKK3sKKyAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXRE
YXRhOworfQorCitFdmVudFRhcmdldERhdGEqIEZvbnRMb2FkZXI6OmVuc3VyZUV2ZW50VGFyZ2V0
RGF0YSgpCit7CisgICAgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsKK30KKworY29uc3QgQXRv
bWljU3RyaW5nJiBGb250TG9hZGVyOjppbnRlcmZhY2VOYW1lKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZvckZvbnRMb2FkZXI7Cit9CisKK1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIEZvbnRMb2FkZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCB7
CisgICAgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwor
fQorCit2b2lkIEZvbnRMb2FkZXI6OmRpZExheW91dCgpCit7CisgICAgaWYgKG1fY2FsbGJhY2sg
JiYgIW1fbG9hZGluZ0NvdW50KSB7CisgICAgICAgIFJlZlB0cjxWb2lkQ2FsbGJhY2s+IGNhbGxi
YWNrID0gbV9jYWxsYmFjazsKKyAgICAgICAgbV9jYWxsYmFjay5jbGVhcigpOworICAgICAgICBj
YWxsYmFjay0+aGFuZGxlRXZlbnQoKTsKKyAgICB9Cit9CisKK3ZvaWQgRm9udExvYWRlcjo6YmVn
aW5Gb250TG9hZGluZygpCit7CisgICAgZnByaW50ZihzdGRlcnIsICJiZWdpbkZvbnRMb2FkaW5n
OiAlZFxuIiwgbV9sb2FkaW5nQ291bnQpOworICAgIGlmICghbV9sb2FkaW5nQ291bnQpCisgICAg
ICAgIGRpc3BhdGNoRXZlbnQoQ1NTRm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkubG9hZGluZ0V2ZW50KSk7CisgICAgKyttX2xvYWRpbmdDb3VudDsKKyAgICBkaXNwYXRjaEV2
ZW50KENTU0ZvbnRGYWNlTG9hZEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmxvYWRzdGFydEV2
ZW50KSk7Cit9CisKK3ZvaWQgRm9udExvYWRlcjo6YWRkU291cmNlKENhY2hlZEZvbnQqIGNhY2hl
ZEZvbnQpCit7CisgICAgZnByaW50ZihzdGRlcnIsICJhZGRTb3VyY2UoJWQpXG4iLCBjYWNoZWRG
b250LT5pc0xvYWRlZCgpKTsKKyAgICBpZiAoIWNhY2hlZEZvbnQtPmlzTG9hZGVkKCkpCisgICAg
ICAgIGNhY2hlZEZvbnQtPmFkZENsaWVudCh0aGlzLT5tX29ic2VydmVyLmdldCgpKTsKK30KKwor
dm9pZCBGb250TG9hZGVyOjpmb250TG9hZGVkKENhY2hlZEZvbnQqIGNhY2hlZEZvbnQpCit7Cisg
ICAgZnByaW50ZihzdGRlcnIsICJmb250TG9hZGVkKCVwKTogJWRcbiIsIGNhY2hlZEZvbnQsIG1f
bG9hZGluZ0NvdW50KTsKKyAgICBBU1NFUlQobV9sb2FkaW5nQ291bnQgPiAwKTsKKyAgICBpZiAo
Y2FjaGVkRm9udC0+ZW5zdXJlQ3VzdG9tRm9udERhdGEoKSkKKyAgICAgICAgZGlzcGF0Y2hFdmVu
dChDU1NGb250RmFjZUxvYWRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQpKTsK
KyAgICBlbHNlCisgICAgICAgIGRpc3BhdGNoRXZlbnQoQ1NTRm9udEZhY2VMb2FkRXZlbnQ6OmNy
ZWF0ZUZvckVycm9yKCJGYWlsZWQgdG8gbG9hZCBmb250IikpOworICAgIC0tbV9sb2FkaW5nQ291
bnQ7CisgICAgaWYgKCFtX2xvYWRpbmdDb3VudCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwg
IkFsbCBmb250cyBhcmUgbG9hZGVkLlxuIik7CisgICAgICAgIGRpc3BhdGNoRXZlbnQoQ1NTRm9u
dEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkubG9hZGluZ2RvbmVFdmVudCkpOwor
ICAgICAgICBpZiAobV9jYWxsYmFjaykgeworICAgICAgICAgICAgUmVmUHRyPFZvaWRDYWxsYmFj
az4gY2FsbGJhY2sgPSBtX2NhbGxiYWNrOworICAgICAgICAgICAgbV9jYWxsYmFjay5jbGVhcigp
OworICAgICAgICAgICAgY2FsbGJhY2stPmhhbmRsZUV2ZW50KCk7CisgICAgICAgIH0KKyAgICB9
Cit9CisKK3ZvaWQgRm9udExvYWRlcjo6dXNpbmdMb2NhbEZvbnQoYm9vbCBzdWNjZXNzKQorewor
ICAgIGZwcmludGYoc3RkZXJyLCAidXNpbmdMb2NhbEZvbnQ7ICVkXG4iLCBzdWNjZXNzKTsKKyAg
ICBpZiAoIW1fbG9hZGluZ0NvdW50KQorICAgICAgICBkaXNwYXRjaEV2ZW50KENTU0ZvbnRGYWNl
TG9hZEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmxvYWRpbmdFdmVudCkpOworICAgIGRpc3Bh
dGNoRXZlbnQoQ1NTRm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkubG9hZHN0
YXJ0RXZlbnQpKTsKKyAgICBpZiAoc3VjY2VzcykKKyAgICAgICAgZGlzcGF0Y2hFdmVudChDU1NG
b250RmFjZUxvYWRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQpKTsKKyAgICBl
bHNlCisgICAgICAgIGRpc3BhdGNoRXZlbnQoQ1NTRm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZUZv
ckVycm9yKCJGYWlsZWQgdG8gbG9hZCBmb250IikpOworICAgIC8vIFdlIGRvbid0IGludm9rZSBj
YWxsYmFjayBoZXJlIGJlY2F1c2UgdGhpcyBtZXRob2QgaXMgY2FsbGVkIGR1cmluZyBsYXlvdXQg
aXMgb25nb2luZy4KKyAgICBpZiAoIW1fbG9hZGluZ0NvdW50KQorICAgICAgICBkaXNwYXRjaEV2
ZW50KENTU0ZvbnRGYWNlTG9hZEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmxvYWRpbmdkb25l
RXZlbnQpKTsKK30KKwordm9pZCBGb250TG9hZGVyOjpub3RpZnlXaGVuRm9udHNSZWFkeShQYXNz
UmVmUHRyPFZvaWRDYWxsYmFjaz4gY2FsbGJhY2spCit7CisgICAgbV9kb2N1bWVudC0+dXBkYXRl
U3R5bGVJZk5lZWRlZCgpOworICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBtX2RvY3VtZW50LT52
aWV3KCkpIHsKKyAgICAgICAgaWYgKHZpZXctPmxheW91dFBlbmRpbmcoKSB8fCB2aWV3LT5uZWVk
c0xheW91dCgpKSB7CisgICAgICAgICAgICBtX2NhbGxiYWNrID0gY2FsbGJhY2s7CisgICAgICAg
ICAgICBmcHJpbnRmKHN0ZGVyciwgInBlbmRpbmdcbiIpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgfQorICAgIG1fY2FsbGJhY2suY2xlYXIoKTsKKyAgICBjYWxsYmFjay0+
aGFuZGxlRXZlbnQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250
TG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjkxZDdlMzI4YzM0MzQ5ZjJmM2JhZGRmOTk2NDRmYzU2Yzk3
NWNlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmgK
QEAgLTAsMCArMSw5NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiwgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUg
bWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAor
ICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGb250TG9hZGVyX2gKKyNk
ZWZpbmUgRm9udExvYWRlcl9oCisKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNs
dWRlICJFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUg
IkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCisjaW5jbHVkZSA8d3Rm
L093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgQ2FjaGVkRm9udDsKK2NsYXNzIENTU0ZvbnRGYWNlOworY2xhc3MgQ1NTRm9u
dEZhY2VTb3VyY2U7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ7CisKK2NsYXNzIEZvbnRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxGb250TG9hZGVyPiwg
cHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50VGFyZ2V0IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxGb250TG9hZGVyPiBjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmPEZvbnRMb2FkZXI+KG5ldyBGb250TG9h
ZGVyKGRvY3VtZW50KSk7CisgICAgfQorICAgIHZpcnR1YWwgfkZvbnRMb2FkZXIoKTsKKworICAg
IERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIobG9hZGluZyk7CisgICAgREVGSU5FX0FU
VFJJQlVURV9FVkVOVF9MSVNURU5FUihsb2FkaW5nZG9uZSk7CisKKyAgICBERUZJTkVfQVRUUklC
VVRFX0VWRU5UX0xJU1RFTkVSKGxvYWRzdGFydCk7CisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVO
VF9MSVNURU5FUihsb2FkKTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGVy
cm9yKTsKKworICAgIHZvaWQgbm90aWZ5V2hlbkZvbnRzUmVhZHkoUGFzc1JlZlB0cjxWb2lkQ2Fs
bGJhY2s+KTsKKworICAgIFN0cmluZyByZWFkeVN0YXRlKCkgY29uc3Q7CisKKyAgICB2aXJ0dWFs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0Owor
CisgICAgdXNpbmcgUmVmQ291bnRlZDxGb250TG9hZGVyPjo6cmVmOworICAgIHVzaW5nIFJlZkNv
dW50ZWQ8Rm9udExvYWRlcj46OmRlcmVmOworCisgICAgdm9pZCBkaWRMYXlvdXQoKTsKKyAgICB2
b2lkIGFkZFNvdXJjZShDYWNoZWRGb250Kik7CisgICAgdm9pZCBmb250TG9hZGVkKENhY2hlZEZv
bnQqKTsKKyAgICB2b2lkIGJlZ2luRm9udExvYWRpbmcoKTsKKyAgICB2b2lkIHVzaW5nTG9jYWxG
b250KGJvb2wgc3VjY2Vzcyk7CisKK3ByaXZhdGU6CisgICAgY2xhc3MgT2JzZXJ2ZXI7CisKKyAg
ICBGb250TG9hZGVyKERvY3VtZW50Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJn
ZXQoKSB7IHJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSB7IGRl
cmVmKCk7IH0KKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCk7
CisgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpOwor
CisgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CisgICAgT3duUHRyPE9ic2VydmVyPiBtX29ic2Vy
dmVyOworICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKKyAgICB1bnNpZ25l
ZCBtX2xvYWRpbmdDb3VudDsKKyAgICBSZWZQdHI8Vm9pZENhbGxiYWNrPiBtX2NhbGxiYWNrOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRm9udExvYWRlcl9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRm9udExvYWRlci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTYzMDFkMDE0ODM4ODgwNmQ2M2Vj
MGIwM2UyYmJlNTIxYWFjZDdhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9Gb250TG9hZGVyLmlkbApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGNvcmUgeworCisgICAgaW50
ZXJmYWNlIFsKKyAgICAgICAgRXZlbnRUYXJnZXQsCisgICAgXSBGb250TG9hZGVyIHsKKworICAg
ICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmxvYWRpbmc7CisgICAgICAgIGF0dHJpYnV0
ZSBFdmVudExpc3RlbmVyIG9ubG9hZGluZ2RvbmU7CisKKyAgICAgICAgYXR0cmlidXRlIEV2ZW50
TGlzdGVuZXIgb25sb2Fkc3RhcnQ7CisgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
bG9hZDsKKyAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKKworICAgICAg
ICB2b2lkIG5vdGlmeVdoZW5Gb250c1JlYWR5KGluIFtDYWxsYmFja10gVm9pZENhbGxiYWNrIGNh
bGxiYWNrKTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyByZWFkeVN0YXRl
OworCisgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2Fw
dHVyZSk7CisgICAgICAgIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlw
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlz
dGVuZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJv
b2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVu
dCBldnQpCisgICAgICAgICAgICByYWlzZXMoRXZlbnRFeGNlcHRpb24pOworICAgIH07CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGY5OWU2MzkxY2NmNzZmOTc1MjY5NmM0YWUyZjZh
OGJlMzI3MmI5YWEuLjNhM2E4MWNiMWNkMGU1M2U1NmYyNmEzMDk2YmY3MDEwMmE3NWI1ZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNzIsNiArNzIsNyBAQAogI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGUuaCIKICNpbmNsdWRlICJGbG93VGhyZWFkQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkZvY3VzQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZvbnRMb2FkZXIuaCIKICNpbmNsdWRlICJG
b3JtQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXIuaCIKQEAgLTQ5OCw2ICs0OTksNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1l
LCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAjaWYgRU5BQkxF
KFVORE9fTUFOQUdFUikKICAgICAsIG1fdW5kb01hbmFnZXIoMCkKICNlbmRpZgorICAgICwgbV9m
b250TG9hZGVyKDApCiAgICAgLCBtX3BlbmRpbmdUYXNrc1RpbWVyKHRoaXMsICZEb2N1bWVudDo6
cGVuZGluZ1Rhc2tzVGltZXJGaXJlZCkKICAgICAsIG1fc2NoZWR1bGVkVGFza3NBcmVTdXNwZW5k
ZWQoZmFsc2UpCiAgICAgLCBtX3Zpc3VhbFVwZGF0ZXNBbGxvd2VkKHRydWUpCkBAIC01ODk2LDYg
KzU4OTgsMTMgQEAgUGFzc1JlZlB0cjxVbmRvTWFuYWdlcj4gRG9jdW1lbnQ6OnVuZG9NYW5hZ2Vy
KCkKIH0KICNlbmRpZgogCitQYXNzUmVmUHRyPEZvbnRMb2FkZXI+IERvY3VtZW50Ojpmb250bG9h
ZGVyKCkKK3sKKyAgICBpZiAoIW1fZm9udExvYWRlcikKKyAgICAgICAgbV9mb250TG9hZGVyID0g
Rm9udExvYWRlcjo6Y3JlYXRlKHRoaXMpOworICAgIHJldHVybiBtX2ZvbnRMb2FkZXI7Cit9CisK
IGNsYXNzIEltbXV0YWJsZUF0dHJpYnV0ZURhdGFDYWNoZUtleSB7CiBwdWJsaWM6CiAgICAgSW1t
dXRhYmxlQXR0cmlidXRlRGF0YUNhY2hlS2V5KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IGNvbnN0IEF0dHJpYnV0ZSogYXR0cmlidXRlcywgdW5zaWduZWQgYXR0cmlidXRlQ291bnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IDIxZjIwNGNkOTBmNzQyMmEwZDk2M2JjZTFjZDBjMTY5Njg3
ODZiODcuLmE2Zjk3ZTZlZjFlMmZmOGIxYWFjNmMxNGUxZTRhZTBkMDFiNDY0NDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC05MCw2ICs5MCw3IEBAIGNsYXNzIEV2ZW50OwogY2xhc3MgRXZlbnRM
aXN0ZW5lcjsKIGNsYXNzIEZsb2F0UmVjdDsKIGNsYXNzIEZsb2F0UXVhZDsKK2NsYXNzIEZvbnRM
b2FkZXI7CiBjbGFzcyBGb3JtQ29udHJvbGxlcjsKIGNsYXNzIEZyYW1lOwogY2xhc3MgRnJhbWVW
aWV3OwpAQCAtMTEyMyw3ICsxMTI0LDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShVTkRPX01BTkFH
RVIpCiAgICAgUGFzc1JlZlB0cjxVbmRvTWFuYWdlcj4gdW5kb01hbmFnZXIoKTsKICNlbmRpZgot
ICAgIAorCisgICAgUGFzc1JlZlB0cjxGb250TG9hZGVyPiBmb250bG9hZGVyKCk7CisKICAgICBi
b29sIGlzSW5Eb2N1bWVudFdyaXRlKCkgeyByZXR1cm4gbV93cml0ZVJlY3Vyc2lvbkRlcHRoID4g
MDsgfQogCiAgICAgdm9pZCBzdXNwZW5kU2NoZWR1bGVkVGFza3MoQWN0aXZlRE9NT2JqZWN0OjpS
ZWFzb25Gb3JTdXNwZW5zaW9uKTsKQEAgLTE0NzksNiArMTQ4Miw4IEBAIHByaXZhdGU6CiAgICAg
UmVmUHRyPFVuZG9NYW5hZ2VyPiBtX3VuZG9NYW5hZ2VyOwogI2VuZGlmCiAKKyAgICBSZWZQdHI8
Rm9udExvYWRlcj4gbV9mb250TG9hZGVyOworCiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9O
X0ZSQU1FKQogICAgIFJlZlB0cjxTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI+IG1fc2NyaXB0
ZWRBbmltYXRpb25Db250cm9sbGVyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAppbmRl
eCBkYzFjYTcxZTg5NmIzMWQ3ZWZmYTAyZjI4NzY2MjMzMTY1NzA0Nzg0Li4yZTQ3OWY2MjYyNGFl
NTkzYTk3YmNiZWM2MzcyODUwYTE3NDRmZDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKQEAg
LTIyMCw2ICsyMjAsMTAgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgW0NvbmRpdGlvbmFsPVVORE9fTUFOQUdFUl0gVW5kb01hbmFnZXIgdW5kb01hbmFnZXI7CiAj
ZW5kaWYKIAorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFW
QVNDUklQVAorICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRm9udExvYWRlciBmb250bG9hZGVy
OworI2VuZGlmCisKICNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFH
RV9PQkpFQ1RJVkVfQwogICAgICAgICAvLyBET00gTGV2ZWwgMiBTdHlsZSBJbnRlcmZhY2UKICAg
ICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgT2JqQ1VzZURlZmF1bHRWaWV3XSBD
U1NTdHlsZURlY2xhcmF0aW9uIGdldENvbXB1dGVkU3R5bGUoaW4gRWxlbWVudCBlbGVtZW50LApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggNjY5YmY2NDhjNWMyMTg3MzQ3ZGU4ZWIyNDU4MDg0
YzFhMzE4OTYxZS4uYzRhMDk5YmFkZGZmMGFmMjc0Nzk4ZjliNDExOTc5MjBlNmY3MDkxZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC04NCw2ICs4NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBtYWNybyhrZXl1cCkgXAogICAgIG1hY3JvKGxldmVsY2hhbmdlKSBcCiAgICAgbWFj
cm8obG9hZCkgXAorICAgIG1hY3JvKGxvYWRpbmcpIFwKKyAgICBtYWNybyhsb2FkaW5nZG9uZSkg
XAogICAgIG1hY3JvKGxvYWRzdGFydCkgXAogICAgIG1hY3JvKG1lc3NhZ2UpIFwKICAgICBtYWNy
byhtb3VzZWRvd24pIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVz
LmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KaW5kZXggOWU5ZTBjODYzMDdh
ZDAwZWM4NjdhOGJhNjc2NDBlMGZhMDUwMGU1ZS4uZTMyOWRiMmU1NGEzMzNmYWIwOTVjYmI5NDQy
NjA0ODIxMDQ3NTU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KQEAgLTYsNiArNiw3IEBA
IEhUTUxFdmVudHMgaW50ZXJmYWNlTmFtZT1FdmVudAogQmVmb3JlTG9hZEV2ZW50CiBDbG9zZUV2
ZW50CiBDb21wb3NpdGlvbkV2ZW50CitDU1NGb250RmFjZUxvYWRFdmVudAogQ3VzdG9tRXZlbnQK
IEVycm9yRXZlbnQKIEhhc2hDaGFuZ2VFdmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdl
dEZhY3RvcnkuaW4KaW5kZXggNzkxYmQ0ZWRhNWNhMzdhZjQ1NzgzNjM0OTc3OTUxMzA3NGMyZDJm
NC4uMzAwMWZiM2FjMDQ5NDE5ZjgyNWE3ZmNlODU0ZTZlOTg1MjNmYjcxYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCkBAIC04LDYgKzgsNyBAQCBET01XaW5kb3cK
IEV2ZW50U291cmNlCiBGaWxlUmVhZGVyIGNvbmRpdGlvbmFsPUJMT0IKIEZpbGVXcml0ZXIgY29u
ZGl0aW9uYWw9RklMRV9TWVNURU0KK0ZvbnRMb2FkZXIKIElEQkRhdGFiYXNlIGNvbmRpdGlvbmFs
PUlOREVYRURfREFUQUJBU0UKIElEQk9wZW5EQlJlcXVlc3QgY29uZGl0aW9uYWw9SU5ERVhFRF9E
QVRBQkFTRQogSURCUmVxdWVzdCBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMWMxMmJhMzhiNDc5YTg3MGQ0YTE2NDM4NTgxZTIxYTNk
MDY1NWZlMC4uYjAyZDA5ZjBiOWEyZWM1ODFhZTM5YjI5ZDE4YzBmNWIxMzVjOWRlZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkZsb2F0
UmVjdC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZvbnRDYWNo
ZS5oIgorI2luY2x1ZGUgIkZvbnRMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIkZyYW1lQWN0aW9uU2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAg
LTI0NjcsNiArMjQ2OCw3IEBAIHZvaWQgRnJhbWVWaWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tz
KCkKICAgICB9CiAKICAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+ZGlkTGF5b3V0KG1pbGVzdG9uZXNB
Y2hpZXZlZCk7CisgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Zm9udGxvYWRlcigpLT5kaWRMYXlv
dXQoKTsKICAgICAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNvbnNpZGVyIGFkZGluZyBEaWRM
YXlvdXQgYXMgYSBMYXlvdXRNaWxlc3RvbmUuIFRoYXQgd291bGQgbGV0IHVzIG1lcmdlIHRoaXMK
ICAgICAvLyB3aXRoIGRpZExheW91dChMYXlvdXRNaWxlc3RvbmVzKS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186593</attachid>
            <date>2013-02-05 03:18:25 -0800</date>
            <delta_ts>2013-02-05 22:14:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98395-20130205201503.patch</filename>
            <type>text/plain</type>
            <size>119778</size>
            <attacher name="Kunihiko Sakamoto">ksakamoto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWRmZDIzN2VhZDZkNGI5
ZmJkNjI4ODM5ZmExOGVkY2RhZGViNjAwOS4uYzA4ODlhMmI2ZTAxMTBjN2M3ZjY4ZTZkZTJkZDAx
MTQ4M2YzYWUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzOCBAQAorMjAxMy0wMi0wNSAgS3Vu
aWhpa28gU2FrYW1vdG8gIDxrc2FrYW1vdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxl
bWVudCBGb250TG9hZGVyIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTgzOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdHdvIGludGVyZmFjZXMsIFdlYktpdEZv
bnRMb2FkZXIgYW5kIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LCBhbmQgYSBkb2N1bWVudCBh
dHRyaWJ1dGUgd2Via2l0Rm9udGxvYWRlciB0byBXZWJDb3JlLgorICAgICAgICBUaGUgd2Via2l0
Rm9udGxvYWRlciBpbXBsZW1lbnRzIHRoZSBGb250TG9hZGVyIGludGVyZmFjZSBkZWZpbmVkIGlu
IENTUyBGb250cyBNb2R1bGUgTGV2ZWwgMy5bMV0KKyAgICAgICAgVGhpcyBmZWF0dXJlIGlzIGJl
aGluZCB0aGUgRk9OVF9MT0FERVIgY29tcGlsZXIgZmxhZyBhbmQgY3VycmVudGx5IGVuYWJsZWQg
b25seSBmb3IgY2hyb21pdW0uCisKKyAgICAgICAgWzFdOiBodHRwOi8vZGV2LnczLm9yZy9jc3N3
Zy9jc3MzLWZvbnRzLyNmb250LWxvYWQtZXZlbnRzCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3Nz
L2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3IuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3Mv
Zm9udGxvYWRlci1ldmVudHMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MvZm9udGxvYWRl
ci1tdWx0aXBsZS1mYWNlcy1kb3dubG9hZC1lcnJvci5odG1sCisgICAgICAgICAgICAgICBmYXN0
L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
Y3NzL2ZvbnRsb2FkZXItbm90aWZ5Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvd2Vi
Zm9udC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLmh0bWwKKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OiBBZGRpbmcgV2ViS2l0Rm9udExvYWRlci9XZWJLaXRDU1NGb250RmFjZUxvYWRF
dmVudCBmaWxlcy4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6IERpdHRvLgorICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IERpdHRvLgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LnByaTogRGl0dG8uCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogRGl0dG8uCisgICAg
ICAgICogVGFyZ2V0LnByaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4K
KyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAg
ICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajogRGl0dG8uCisgICAgICAgICogV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOiBEaXR0by4KKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRGljdGlvbmFyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RpY3Rpb25hcnk6
OmNvbnZlcnRWYWx1ZSk6IEFkZCBjb252ZXJ0VmFsdWUoKSBmb3IgQ1NTRm9udEZhY2VSdWxlLCBE
T01FcnJvciwgYW5kIFZvaWRDYWxsYmFjay4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rp
b25hcnkuaDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9EaWN0aW9uYXJ5LmNwcDogQWRkIGdldCgpIGZvciBDU1NGb250RmFjZVJ1bGUsIERPTUVycm9y
LCBhbmQgVm9pZENhbGxiYWNrLgorICAgICAgICAoV2ViQ29yZTo6RGljdGlvbmFyeTo6Z2V0KToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9EaWN0aW9uYXJ5Lmg6IERpdHRvLgorICAgICAgICAoRGlj
dGlvbmFyeSk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlLmNwcDogTm90aWZpZXMgRm9udExv
YWRlciBhcyBsb2FkIHByb2dyZXNzZXMuCisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZTo6
Zm9udExvYWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZTo6Z2V0Rm9udERhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2U6Om5vdGlmeUZvbnRMb2FkZXIpOgorICAg
ICAgICAqIGNzcy9DU1NGb250RmFjZS5oOiBBZGQgdHdvIG1lbWJlciB2YXJpYWJsZXMuIG1fcnVs
ZSBzdG9yZXMgQ1NTRm9udEZhY2VSdWxlIGZvciB0aGUgZm9udGZhY2UuIG1fbG9hZFN0YXRlIGhv
bGRzIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGZvbnRmYWNlIGluIHRlcm1zIG9mIEZvbnRMb2FkZXIu
CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZTo6Y3JlYXRlKTogVGFrZXMgYWRkaXRpb25h
bCBwYXJhbWV0ZXIgb2YgdHlwZSBDU1NGb250RmFjZVJ1bGUuCisgICAgICAgIChXZWJDb3JlOjpD
U1NGb250RmFjZTo6bG9hZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpD
U1NGb250RmFjZSk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGw6IEFkZCBKU0dl
bmVyYXRlVG9KU09iamVjdCBhbmQgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0IGFzIEpTQyBiaW5k
aW5nIG5lZWRzIHRoZW0uCisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU291cmNlOjplbnN1cmVGb250RGF0YSk6IEFkZGVk
LgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNvdXJjZS5oOgorICAgICAgICAoQ1NTRm9udEZh
Y2VTb3VyY2UpOgorICAgICAgICAqIGNzcy9DU1NGb250U2VsZWN0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1bGUpOiBQYXNzIGEgQ1NTRm9u
dEZhY2VSdWxlIHRvIENTU0ZvbnRGYWNlOjpjcmVhdGUoKS4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ZvbnRTZWxlY3Rvcjo6Z2V0Rm9udERhdGEpOiBNb3ZlZCBtYWluIGxvZ2ljIHRvIGEgaGVscGVy
IGZ1bmN0aW9uIGdldEZvbnRGYWNlKCkuCisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U2VsZWN0
b3I6OmdldEZvbnRGYWNlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U2VsZWN0
b3I6OmNoZWNrRm9udCk6IEFkZGVkLiBSZXR1cm5zIHdoZXRoZXIgdGhlIGdpdmVuIGZvbnQgaXMg
YXZhaWxhYmxlLgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udFNlbGVjdG9yOjpsb2FkRm9udCk6
IEFkZGVkLiBJbml0aWF0ZXMgZm9udCBsb2FkLgorICAgICAgICAqIGNzcy9DU1NGb250U2VsZWN0
b3IuaDoKKyAgICAgICAgKENTU0ZvbnRTZWxlY3Rvcik6IERlY2xhcmVzIG5ldyBmdW5jdGlvbnMu
CisgICAgICAgICogY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1NlZ21lbnRlZEZvbnRGYWNlOjpmb250TG9hZGVkKTogRmlyZXMgY2FsbGJhY2tzIG9m
IGZvbnRsb2FkZXIubG9hZEZvbnQoKSB3aGVuIGxvYWQgaXMgY29tcGxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6Q1NTU2VnbWVudGVkRm9udEZhY2U6OmlzTG9hZGluZyk6IFJldHVybnMgdHJ1ZSBp
ZiBhbnkgZm9udHMgYXJlIHN0aWxsIGxvYWRpbmcuCisgICAgICAgIChXZWJDb3JlOjpDU1NTZWdt
ZW50ZWRGb250RmFjZTo6Y2hlY2tGb250KTogUmV0dXJucyB0cnVlIGlmIGFsbCBmb250cyBhcmUg
bG9hZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VnbWVudGVkRm9udEZhY2U6OmxvYWRGb250
KTogU3RhcnRzIGxvYWQgYnkgY2FsbGluZyBnZXRGb250RGF0YSgpLgorICAgICAgICAqIGNzcy9D
U1NTZWdtZW50ZWRGb250RmFjZS5oOgorICAgICAgICAoQ1NTU2VnbWVudGVkRm9udEZhY2UpOiBE
ZWNsYXJlcyBuZXcgZnVuY3Rpb25zIGFuZCB2ZWN0b3JzIHRvIHN0b3JlIGNhbGxiYWNrcy4KKyAg
ICAgICAgKiBjc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZl
bnQ6OldlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktp
dENTU0ZvbnRGYWNlTG9hZEV2ZW50Ojp+V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OmludGVyZmFjZU5hbWUp
OgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnRJbml0
KToKKyAgICAgICAgKFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OldlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZUZvckZvbnRGYWNlUnVsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudDo6Zm9udGZhY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OmVycm9yKToKKyAg
ICAgICAgKiBjc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBjc3MvV2ViS2l0Rm9udExvYWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVyOjpXZWJLaXRGb250TG9hZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYktpdEZvbnRMb2FkZXI6On5XZWJLaXRGb250TG9hZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYktpdEZvbnRMb2FkZXI6OmV2ZW50VGFyZ2V0RGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVyOjplbnN1cmVFdmVudFRhcmdldERhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6aW50ZXJmYWNlTmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEZvbnRMb2FkZXI6OmRpZExheW91dCk6IEZpcmVz
IHBlbmRpbmcgZXZlbnRzIGFuZCBjYWxsYmFja3MuIFRoaXMgaXMgY2FsbGVkIHdoZW4gbGF5b3V0
IGhhdmUgY29tcGxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6c2No
ZWR1bGVFdmVudCk6IERlZmVycyBldmVudCBkaXNwYXRjaGluZyB1bnRpbCBsYXlvdXQgY29tcGxl
dGVzLgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6ZmlyZVBlbmRpbmdFdmVu
dHMpOiBEaXNwYXRjaGVzIHBlbmRpbmcgZXZlbnRzLgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0
Rm9udExvYWRlcjo6YmVnaW5Gb250TG9hZGluZyk6IFNjaGVkdWxlcyBsb2FkaW5nL2xvYWRzdGFy
dCBldmVudHMuIFRoaXMgaXMgY2FsbGVkIGZyb20gQ1NTRm9udEZhY2UuCisgICAgICAgIChXZWJD
b3JlOjpXZWJLaXRGb250TG9hZGVyOjpmb250TG9hZGVkKTogU2NoZWR1bGVzIGxvYWQvbG9hZGlu
Z2RvbmUgZXZlbnRzLiBUaGlzIGlzIGNhbGxlZCBmcm9tIENTU0ZvbnRGYWNlLgorICAgICAgICAo
V2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6bG9hZEVycm9yKTogU2NoZWR1bGVzIGVycm9yL2xv
YWRpbmdkb25lIGV2ZW50cy4gVGhpcyBpcyBjYWxsZWQgZnJvbSBDU1NGb250RmFjZS4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYktpdEZvbnRMb2FkZXI6Om5vdGlmeVdoZW5Gb250c1JlYWR5KTogSW1w
bGVtZW50cyBmb250bG9hZGVyLm5vdGlmeVdoZW5Gb250c1JlYWR5KCkuCisgICAgICAgIChXZWJD
b3JlOjpXZWJLaXRGb250TG9hZGVyOjpub3RpZnlGb250c1JlYWR5KTogRmlyZXMgY2FsbGJhY2tz
IG9mIG5vdGlmeVdoZW5Gb250c1JlYWR5LgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExv
YWRlcjo6bG9hZEZvbnQpOiBJbXBsZW1lbnRzIGZvbnRsb2FkZXIubG9hZEZvbnQoKS4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYktpdEZvbnRMb2FkZXI6OmNoZWNrRm9udCk6IEltcGxlbWVudHMgZm9u
dGxvYWRlci5jaGVja0ZvbnQoKS4KKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEZvbnRMb2FkZXI6
OnJlc29sdmVGb250U3R5bGUpOiBQYXJzZXMgdGhlIGdpdmVuIGZvbnQgcGFyYW1ldGVyIHVzaW5n
IHRoZSBzeW50YXggb2YgQ1NTICdmb250JyBwcm9wZXJ0eSBhbmQgY3JlYXRlcyBGb250IG9iamVj
dC4gVGhlIGxvZ2ljIGlzIHRha2VuIGZyb20gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRG
b250KCkuCisgICAgICAgICogY3NzL1dlYktpdEZvbnRMb2FkZXIuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdEZvbnRMb2FkZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViS2l0Rm9udExvYWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEZv
bnRMb2FkZXI6OmxvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6
ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6cmVmRXZlbnRU
YXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6ZGVyZWZFdmVudFRh
cmdldCk6CisgICAgICAgICogY3NzL1dlYktpdEZvbnRMb2FkZXIuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3Vt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp3ZWJraXRGb250bG9hZGVyKTogQWRk
ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1bWVudCk6IEFkZCBt
X3dlYmtpdEZvbnRsb2FkZXIgYW5kIHdlYmtpdEZvbnRsb2FkZXIoKS4KKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuaWRsOiBBZGQgd2Via2l0Rm9udExvYWRlciBhdHRyaWJ1dGUuCisgICAgICAgICog
ZG9tL0V2ZW50TmFtZXMuaDogQWRkIGxvYWRpbmcgYW5kIGxvYWRpbmdkb25lIGV2ZW50cy4KKyAg
ICAgICAgKiBkb20vRXZlbnROYW1lcy5pbjogQWRkIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50
LgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldEZhY3RvcnkuaW46IEFkZCBXZWJLaXRGb250TG9h
ZGVyLgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lVmlldzo6cGVyZm9ybVBvc3RMYXlvdXRUYXNrcyk6IENhbGxzIFdlYktpdEZvbnRMb2FkZXI6
OmRpZExheW91dCgpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06Cisg
ICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICog
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHA6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuY3BwOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpEaWN0aW9uYXJ5OjpnZXQpOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L0RpY3Rpb25hcnkuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRGljdGlvbmFy
eSk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ZvbnRGYWNlOjpmb250TG9hZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpn
ZXRGb250RGF0YSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Zv
bnRGYWNlOjpub3RpZnlGb250TG9hZGVyKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2UuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpjcmVhdGUpOgorICAgICAgICAoQ1NTRm9u
dEZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2U6OmxvYWRTdGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NGb250RmFjZTo6Q1NTRm9udEZhY2UpOgorICAgICAgICAqIGNzcy9D
U1NGb250RmFjZVJ1bGUuaWRsOgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNvdXJjZS5jcHA6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU291cmNl
OjplbnN1cmVGb250RGF0YSk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmg6Cisg
ICAgICAgIChDU1NGb250RmFjZVNvdXJjZSk6CisgICAgICAgICogY3NzL0NTU0ZvbnRTZWxlY3Rv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U2VsZWN0b3I6OmFkZEZvbnRGYWNlUnVs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U2VsZWN0b3I6OmdldEZvbnREYXRhKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udFNlbGVjdG9yOjpnZXRG
b250RmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U2VsZWN0b3I6OmNoZWNrRm9udCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U2VsZWN0b3I6OmxvYWRGb250KToKKyAgICAgICAg
KiBjc3MvQ1NTRm9udFNlbGVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENT
U0ZvbnRTZWxlY3Rvcik6CisgICAgICAgICogY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1NlZ21lbnRlZEZvbnRGYWNlOjpmb250TG9hZGVkKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VnbWVudGVkRm9udEZhY2U6
OmlzTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWdtZW50ZWRGb250RmFjZTo6Y2hl
Y2tGb250KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlZ21lbnRlZEZvbnRGYWNlOjpsb2FkRm9u
dCk6CisgICAgICAgICogY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmg6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKENTU1NlZ21lbnRlZEZvbnRGYWNlKToKKyAgICAgICAgKiBjc3MvV2Vi
S2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OldlYktpdENTU0Zv
bnRGYWNlTG9hZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU0ZvbnRGYWNlTG9h
ZEV2ZW50Ojp+V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OmludGVyZmFjZU5hbWUpOgorICAgICAgICAqIGNz
cy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnRJbml0KToKKyAgICAgICAgKFdl
YktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU0Zv
bnRGYWNlTG9hZEV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTRm9u
dEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZUZvckZvbnRGYWNlUnVsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudDo6Zm9udGZhY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OmVycm9yKToKKyAgICAgICAgKiBjc3MvV2Vi
S2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvV2ViS2l0
Rm9udExvYWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJLaXRGb250TG9hZGVyOjpXZWJLaXRGb250TG9hZGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYktpdEZvbnRMb2FkZXI6On5XZWJLaXRGb250TG9hZGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYktpdEZvbnRMb2FkZXI6OmV2ZW50VGFyZ2V0RGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJLaXRGb250TG9hZGVyOjplbnN1cmVFdmVudFRhcmdldERhdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViS2l0Rm9udExvYWRlcjo6aW50ZXJmYWNlTmFtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJLaXRGb250TG9hZGVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OldlYktpdEZvbnRMb2FkZXI6OmRpZExheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJLaXRGb250TG9hZGVyOjpzY2hlZHVsZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktp
dEZvbnRMb2FkZXI6OmZpcmVQZW5kaW5nRXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktp
dEZvbnRMb2FkZXI6OmJlZ2luRm9udExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0
Rm9udExvYWRlcjo6Zm9udExvYWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9h
ZGVyOjpsb2FkRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6bm90
aWZ5V2hlbkZvbnRzUmVhZHkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6
bm90aWZ5Rm9udHNSZWFkeSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVyOjps
b2FkRm9udCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVyOjpjaGVja0ZvbnQp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6cmVzb2x2ZUZvbnRTdHlsZSk6
CisgICAgICAgICogY3NzL1dlYktpdEZvbnRMb2FkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYktpdEZvbnRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
S2l0Rm9udExvYWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEZvbnRMb2Fk
ZXI6OmxvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6ZG9jdW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6cmVmRXZlbnRUYXJnZXQp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6ZGVyZWZFdmVudFRhcmdldCk6
CisgICAgICAgICogY3NzL1dlYktpdEZvbnRMb2FkZXIuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtpdEZv
bnRsb2FkZXIpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChEb2N1bWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAg
ICAgKiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9t
L0V2ZW50TmFtZXMuaW46CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OnBlcmZvcm1Qb3N0TGF5b3V0VGFza3MpOgorCiAyMDEzLTAyLTAzICBLYXNzeSBDb2FuICA8a2Fz
c3ljb2FuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGRzIHVzYWdlIGluc3RydW1lbnRhdGlv
biBmb3IgaW5kZXhlZERCCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDgxNTRlZTEyOGRk
OWY1NTU1YjcyMDc1ZGQ3NTY1NDNiMWRmZmQ3NmMuLmM2MzE3MjM2ZmJlZDFjNDNkOWM0NjE1MzQ0
ZWVmMTEyNTA4ZWQzZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTMtMDItMDUgIEt1bmloaWtvIFNha2Ftb3RvICA8a3Nha2Ftb3RvQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBJbXBsZW1lbnQgRm9udExvYWRlciBpbnRlcmZhY2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4Mzk1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIEZvbnRMb2FkZXIgaW50
ZXJmYWNlIG9uIGNocm9taXVtLgorCisgICAgICAgICogZmVhdHVyZXMuZ3lwaToKKwogMjAxMy0w
Mi0wMyAgRGF2aWQgRG9yd2luICA8ZGRvcndpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2No
cm9taXVtXSBEbyBub3QgY2FsbCBtX3dpZGdldENsaWVudC0+c2hvdygpIGZvciBXZWJIZWxwZXJQ
bHVnaW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGUwMWIxNjY1MTVmMmVhODgxMDlkZDZlNGU4
ZmEzYWI0MTU5Y2NlZTEuLjI2MjJmMmJiNzg4NWFjYTE1NWUxZTY1ODdmOWFjZmY2NDA5MmNmZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0zMzMsNiArMzMzLDcgQEAgc2V0KFdlYkNvcmVfSURM
X0ZJTEVTCiAgICAgY3NzL1N0eWxlU2hlZXRMaXN0LmlkbAogICAgIGNzcy9XZWJLaXRDU1NGaWx0
ZXJSdWxlLmlkbAogICAgIGNzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5pZGwKKyAgICBjc3MvV2Vi
S2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsCiAgICAgY3NzL1dlYktpdENTU0tleWZyYW1lUnVs
ZS5pZGwKICAgICBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5pZGwKICAgICBjc3MvV2ViS2l0
Q1NTTWF0cml4LmlkbApAQCAtMzQwLDYgKzM0MSw3IEBAIHNldChXZWJDb3JlX0lETF9GSUxFUwog
ICAgIGNzcy9XZWJLaXRDU1NSZWdpb25SdWxlLmlkbAogICAgIGNzcy9XZWJLaXRDU1NUcmFuc2Zv
cm1WYWx1ZS5pZGwKICAgICBjc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmlkbAorICAgIGNzcy9X
ZWJLaXRGb250TG9hZGVyLmlkbAogCiAgICAgZG9tL0F0dHIuaWRsCiAgICAgZG9tL0JlZm9yZUxv
YWRFdmVudC5pZGwKQEAgLTExMDYsNiArMTEwOCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAg
ICBjc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcAogICAgIGNzcy9XZWJLaXRDU1NGaWx0ZXJS
dWxlLmNwcAogICAgIGNzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5jcHAKKyAgICBjc3MvV2ViS2l0
Q1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwCiAgICAgY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5j
cHAKICAgICBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAKICAgICBjc3MvV2ViS2l0Q1NT
TWF0cml4LmNwcApAQCAtMTExNCw2ICsxMTE3LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAg
IGNzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAKICAgICBjc3MvV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuY3BwCiAgICAgY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAKKyAgICBjc3MvV2Vi
S2l0Rm9udExvYWRlci5jcHAKIAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuY3BwCiAgICAgZG9t
L0FuY2VzdG9yQ2hhaW5XYWxrZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKaW5kZXgg
NjU1MWM2OGQzYjE4NjBhNDA2OTg5OTNmMjE5MzYxZTRiOTBiZTJkMS4uNjAyYmQ4Y2M2ODBiZjc1
ODRkYjRiNzg4YzllMTA2OTE4ZWUwMTMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApA
QCAtNDkwLDYgKzQ5MCw5IEBACiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogI2luY2x1ZGUgIkpT
V2ViS2l0Q1NTRmlsdGVyVmFsdWUuY3BwIgogI2VuZGlmCisjaWYgRU5BQkxFKEZPTlRfTE9BREVS
KQorI2luY2x1ZGUgIkpTV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIgorI2VuZGlmCiAj
aW5jbHVkZSAiSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0
Q1NTS2V5ZnJhbWVzUnVsZS5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZS5jcHAiCkBAIC00OTgsNiArNTAxLDkgQEAKICNpbmNsdWRlICJKU1dlYktpdENTU01peEZ1bmN0
aW9uVmFsdWUuY3BwIgogI2VuZGlmCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NSZWdpb25SdWxlLmNw
cCIKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisjaW5jbHVkZSAiSlNXZWJLaXRGb250TG9hZGVy
LmNwcCIKKyNlbmRpZgogI2luY2x1ZGUgIkpTV2ViS2l0TmFtZWRGbG93LmNwcCIKICNpbmNsdWRl
ICJKU1dlYktpdFBvaW50LmNwcCIKICNpbmNsdWRlICJKU1dlYktpdFRyYW5zaXRpb25FdmVudC5j
cHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA2MDVhMjFlZjNkZGZkZjJhODdm
ZTljYTI4YTE1ZTFhZmY5NjUwMTQzLi4xZGE5MzQwMzVlYmExOWUwYWQ1NWY2ZDRmNjI5NGQxMWFk
ZGQwMmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE5OCw2ICsxOTgsNyBA
QCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9jc3MvU3R5bGVTaGVldExpc3QuaWRs
IFwKICAgICAkKFdlYkNvcmUpL2Nzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5pZGwgXAogICAgICQo
V2ViQ29yZSkvY3NzL1dlYktpdENTU0ZpbHRlclJ1bGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2Nz
cy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL1dl
YktpdENTU0tleWZyYW1lUnVsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL1dlYktpdENTU0tl
eWZyYW1lc1J1bGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9XZWJLaXRDU1NNYXRyaXguaWRs
IFwKQEAgLTIwNSw2ICsyMDYsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9j
c3MvV2ViS2l0Q1NTUmVnaW9uUnVsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL1dlYktpdENT
U1RyYW5zZm9ybVZhbHVlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvV2ViS2l0Q1NTVmlld3Bv
cnRSdWxlLmlkbCBcCisgICAgJChXZWJDb3JlKS9jc3MvV2ViS2l0Rm9udExvYWRlci5pZGwgXAog
ICAgICQoV2ViQ29yZSkvZG9tL0F0dHIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9CZWZvcmVM
b2FkRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9DREFUQVNlY3Rpb24uaWRsIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaSBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLnByaQppbmRleCAxY2JjYzM3NjYzZTNkMDk1Yzg0MTI3OWIwYmU1
OWExNjRmMDc4YTQ2Li40YjM2NTFlNjI2YmI1NTYyNWJhNmU2ZWY1NTUxODY5NWMwYzliYzNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKKysrIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCkBAIC0yMTEsNiArMjExLDcgQEAgSURMX0JJTkRJ
TkdTICs9IFwKICAgICAkJFBXRC9jc3MvU3R5bGVTaGVldExpc3QuaWRsIFwKICAgICAkJFBXRC9j
c3MvV2ViS2l0Q1NTRmlsdGVyUnVsZS5pZGwgXAogICAgICQkUFdEL2Nzcy9XZWJLaXRDU1NGaWx0
ZXJWYWx1ZS5pZGwgXAorICAgICQkUFdEL2Nzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5p
ZGwgXAogICAgICQkUFdEL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaWRsIFwKICAgICAkJFBX
RC9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5pZGwgXAogICAgICQkUFdEL2Nzcy9XZWJLaXRD
U1NNYXRyaXguaWRsIFwKQEAgLTIxOCw2ICsyMTksNyBAQCBJRExfQklORElOR1MgKz0gXAogICAg
ICQkUFdEL2Nzcy9XZWJLaXRDU1NSZWdpb25SdWxlLmlkbCBcCiAgICAgJCRQV0QvY3NzL1dlYktp
dENTU1RyYW5zZm9ybVZhbHVlLmlkbCBcCiAgICAgJCRQV0QvY3NzL1dlYktpdENTU1ZpZXdwb3J0
UnVsZS5pZGwgXAorICAgICQkUFdEL2Nzcy9XZWJLaXRGb250TG9hZGVyLmlkbCBcCiAgICAgJCRQ
V0QvZG9tL0F0dHIuaWRsIFwKICAgICAkJFBXRC9kb20vQmVmb3JlTG9hZEV2ZW50LmlkbCBcCiAg
ICAgJCRQV0QvZG9tL0NoYXJhY3RlckRhdGEuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IGJkYjdiNzc2YTcyNmY5ZGFlYjcxZjQ0YmVjMDJkNDMyODQyZDQzZjIuLjFjMDkz
ODFkMzAxNTBiMjBlNTAyNjkxZjBiODcwYzc5M2VkNmZjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtODA1LDYgKzgwNSw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU0ZpbHRlclJ1bGUuaCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU0ZpbHRlclZhbHVlLmNwcCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU0ZpbHRlclZhbHVlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU0tleWZyYW1lUnVsZS5oIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAgXApAQCAtODE5LDYgKzgyMSw4
IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNX
ZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2Vi
S2l0Q1NTVmlld3BvcnRSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRG
b250TG9hZGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdEZvbnRMb2Fk
ZXIuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdE5hbWVkRmxvdy5jcHAgXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXROYW1lZEZsb3cuaCBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1dlYktpdFBvaW50LmNwcCBcCkBAIC0xMzQ0LDYgKzEzNDgsNyBAQCBk
b21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL2Nzcy9TdHlsZVNoZWV0TGlzdC5pZGwg
XAogCSQoV2ViQ29yZSkvY3NzL1dlYktpdENTU0ZpbHRlclJ1bGUuaWRsIFwKIAkkKFdlYkNvcmUp
L2Nzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5pZGwgXAorCSQoV2ViQ29yZSkvY3NzL1dlYktpdENT
U0ZvbnRGYWNlTG9hZEV2ZW50LmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvV2ViS2l0Q1NTS2V5ZnJh
bWVSdWxlLmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5pZGwg
XAogCSQoV2ViQ29yZSkvY3NzL1dlYktpdENTU01hdHJpeC5pZGwgXApAQCAtMTM1MSw2ICsxMzU2
LDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9jc3MvV2ViS2l0Q1NTUmVn
aW9uUnVsZS5pZGwgXAogCSQoV2ViQ29yZSkvY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmlk
bCBcCiAJJChXZWJDb3JlKS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmlkbCBcCisJJChXZWJD
b3JlKS9jc3MvV2ViS2l0Rm9udExvYWRlci5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL0F0dHIuaWRs
IFwKIAkkKFdlYkNvcmUpL2RvbS9CZWZvcmVMb2FkRXZlbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2Rv
bS9DREFUQVNlY3Rpb24uaWRsIFwKQEAgLTI2ODcsNiArMjY5Myw4IEBAIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0ZpbHRlclJ1bGUuaCBcCiAJU291
cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0ZpbHRlclZhbHVlLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvY3NzL1dlYktpdENTU0ZpbHRlclZhbHVlLmggXAorCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJL
aXRDU1NGb250RmFjZUxvYWRFdmVudC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NGb250RmFjZUxvYWRFdmVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5
ZnJhbWVSdWxlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lUnVs
ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAgXApA
QCAtMjcwMyw2ICsyNzExLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1dl
YktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NW
aWV3cG9ydFJ1bGUuaCBcCisJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdEZvbnRMb2FkZXIuY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Rm9udExvYWRlci5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2
ZURPTU9iamVjdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQW5jZXN0b3JDaGFpbldhbGtlci5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKaW5kZXggNTUxZDJmOTc3ZDc0NGIzMDM1NGJhM2FmNGZhYTAyM2E4YTY3
YThiMy4uNTkwNWE1ZWU4Nzc2ODE5NWZhOTIyMTFjMmZmMTM5ZDBmMGIzZjdkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCkBAIC0zMjksNiArMzI5LDcgQEAgU09VUkNFUyArPSBcCiAgICAgY3NzL1dlYktpdENTU0Fy
cmF5RnVuY3Rpb25WYWx1ZS5jcHAgXAogICAgIGNzcy9XZWJLaXRDU1NGaWx0ZXJSdWxlLmNwcCBc
CiAgICAgY3NzL1dlYktpdENTU0ZpbHRlclZhbHVlLmNwcCBcCisgICAgY3NzL1dlYktpdENTU0Zv
bnRGYWNlTG9hZEV2ZW50LmNwcCBcCiAgICAgY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAg
XAogICAgIGNzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcCBcCiAgICAgY3NzL1dlYktpdENT
U01hdHJpeC5jcHAgXApAQCAtMzM4LDYgKzMzOSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGNzcy9X
ZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAgXAogICAgIGNzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZS5jcHAgXAogICAgIGNzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwIFwKKyAgICBjc3MvV2Vi
S2l0Rm9udExvYWRlci5jcHAgXAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuY3BwIFwKICAgICBk
b20vQW5jZXN0b3JDaGFpbldhbGtlci5jcHAgXAogICAgIGRvbS9BdHRyLmNwcCBcCkBAIC0xNTQ3
LDYgKzE1NDksNyBAQCBIRUFERVJTICs9IFwKICAgICBjc3MvV2ViS2l0Q1NTQXJyYXlGdW5jdGlv
blZhbHVlLmggXAogICAgIGNzcy9XZWJLaXRDU1NGaWx0ZXJSdWxlLmggXAogICAgIGNzcy9XZWJL
aXRDU1NGaWx0ZXJWYWx1ZS5oIFwKKyAgICBjc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQu
aCBcCiAgICAgY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5oIFwKICAgICBjc3MvV2ViS2l0Q1NT
S2V5ZnJhbWVzUnVsZS5oIFwKICAgICBjc3MvV2ViS2l0Q1NTTWF0cml4LmggXApAQCAtMTU1Niw2
ICsxNTU5LDcgQEAgSEVBREVSUyArPSBcCiAgICAgY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmgg
XAogICAgIGNzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIFwKICAgICBjc3MvV2ViS2l0Q1NT
Vmlld3BvcnRSdWxlLmggXAorICAgIGNzcy9XZWJLaXRGb250TG9hZGVyLmggXAogICAgIGRvbS9B
Y3RpdmVET01PYmplY3QuaCBcCiAgICAgZG9tL0FuY2VzdG9yQ2hhaW5XYWxrZXIuaCBcCiAgICAg
ZG9tL0F0dHIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYzRmNzBiNDBkMGMxYWE2ZmVkMWZiOWE5
ZDc5NzVkYTI5MDczY2Y4Yy4uZGFkOWVhM2MwZmI3NTNlMmFlZDU4NDZmYzQzZDRmYTI1ZDUyNzE3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTg2LDYgKzE4Niw3IEBACiAgICAgICAgICAgICAnY3Nz
L1N0eWxlU2hlZXRMaXN0LmlkbCcsCiAgICAgICAgICAgICAnY3NzL1dlYktpdENTU0ZpbHRlclJ1
bGUuaWRsJywKICAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaWRsJywKKyAg
ICAgICAgICAgICdjc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsJywKICAgICAgICAg
ICAgICdjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmlkbCcsCiAgICAgICAgICAgICAnY3NzL1dl
YktpdENTU0tleWZyYW1lc1J1bGUuaWRsJywKICAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTTWF0
cml4LmlkbCcsCkBAIC0xOTMsNiArMTk0LDcgQEAKICAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NT
UmVnaW9uUnVsZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaWRsJywKKyAg
ICAgICAgICAgICdjc3MvV2ViS2l0Rm9udExvYWRlci5pZGwnLAogICAgICAgICAgICAgJ2RvbS9B
dHRyLmlkbCcsCiAgICAgICAgICAgICAnZG9tL0F1dG9jb21wbGV0ZUVycm9yRXZlbnQuaWRsJywK
ICAgICAgICAgICAgICdkb20vQmVmb3JlTG9hZEV2ZW50LmlkbCcsCkBAIC0xNjA2LDYgKzE2MDgs
OCBAQAogICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NBcnJheUZ1bmN0aW9uVmFsdWUuaCcsCiAg
ICAgICAgICAgICAnY3NzL1dlYktpdENTU0ZpbHRlclJ1bGUuY3BwJywKICAgICAgICAgICAgICdj
c3MvV2ViS2l0Q1NTRmlsdGVyVmFsdWUuY3BwJywKKyAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NT
Rm9udEZhY2VMb2FkRXZlbnQuY3BwJywKKyAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTRm9udEZh
Y2VMb2FkRXZlbnQuaCcsCiAgICAgICAgICAgICAnY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5j
cHAnLAogICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCcsCiAgICAgICAg
ICAgICAnY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwJywKQEAgLTE2MjMsNiArMTYyNyw4
IEBACiAgICAgICAgICAgICAnY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCcsCiAgICAg
ICAgICAgICAnY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5oJywKICAgICAgICAgICAgICdjc3Mv
V2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCcsCisgICAgICAgICAgICAnY3NzL1dlYktpdEZvbnRM
b2FkZXIuaCcsCisgICAgICAgICAgICAnY3NzL1dlYktpdEZvbnRMb2FkZXIuY3BwJywKICAgICAg
ICAgICAgICdlZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwJywKICAgICAgICAg
ICAgICdlZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuaCcsCiAgICAgICAgICAgICAn
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA3NGFhYzk1MWUwZjNiNjg2NDA2ZmUzNWU2Yjlj
ODRhOTk2MmNhMGE4Li5lMjM5NGM2M2M5Nzc5M2VjNzZiNTg5NjlhMjEyMTI5NjIxNGNmYTcwIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjMw
MzksNiArMjMwMzksNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCIKKwkJCQk+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdENT
U0ZvbnRGYWNlTG9hZEV2ZW50LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIgogCQkJCT4KIAkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTIzMzc1LDYgKzIzNDMxLDYyIEBACiAJCQkJPgogCQkJPC9G
aWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRGb250TG9hZGVyLmNw
cCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fp
cm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJE
ZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlBy
b2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU1dlYktpdEZvbnRMb2FkZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQog
CQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdE5hbWVkRmxvdy5jcHAiCiAJCQkJPgogCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgpAQCAtMzg1ODcsNiArMzg2OTksMTQgQEAKIAkJCQk+CiAJCQk8L0Zp
bGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXFdlYktpdENTU0ZvbnRGYWNl
TG9hZEV2ZW50LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cY3NzXFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmgiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xXZWJLaXRDU1NLZXlmcmFt
ZVJ1bGUuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTM4NjU4LDYgKzM4Nzc4LDE0IEBACiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmgiCiAJCQkJPgog
CQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xXZWJLaXRGb250
TG9hZGVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5cY3NzXFdlYktpdEZvbnRMb2FkZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CiAJCTwvRmls
dGVyPgogCQk8RmlsdGVyCiAJCQlOYW1lPSJyZW5kZXJpbmciCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCA3NDk3YTRlZTI2MjE3M2RkYzhj
MDVhMDhiMTlhOTRkNGFkNDIwMDhiLi40N2U1MWU0YjNhNjc5MzI0OTdiOTJlNjIzZDczZjZhNDg4
NzVlZDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oKQEAgLTE2NjcsNiArMTY2NywxMCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5jcHAiPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIj4KICAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNjkxLDYg
KzE2OTUsMTAgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0
Rm9udExvYWRlci5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNX
ZWJLaXROYW1lZEZsb3cuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CkBAIC0yOTYzLDYgKzI5NzEsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cY3NzXFZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTQXJyYXlGdW5jdGlvblZhbHVlLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5jcHAiIC8+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cY3NzXFdlYktpdENTU0tleWZyYW1l
UnVsZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTS2V5
ZnJhbWVzUnVsZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0
Q1NTTWF0cml4LmNwcCIgLz4KQEAgLTI5NzIsNiArMjk4MSw3IEBACiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIiAvPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cY3NzXFdlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAi
IC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Rm9udExvYWRlci5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcQXV0b1RhYmxlTGF5b3V0
LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpA
QCAtNjIyOCwxMCArNjIzOCwxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktp
dENTU0ZpbHRlclZhbHVlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0
Q1NTS2V5ZnJhbWVSdWxlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0
Q1NTS2V5ZnJhbWVzUnVsZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktp
dENTU0ZvbnRGYWNlTG9hZEV2ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpT
V2ViS2l0Q1NTTWF0cml4LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0
Q1NTTWl4RnVuY3Rpb25WYWx1ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dl
YktpdENTU1JlZ2lvblJ1bGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJL
aXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dl
YktpdEZvbnRMb2FkZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRO
YW1lZEZsb3cuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRQb2ludC5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdFRyYW5zaXRpb25FdmVudC5o
IiAvPgpAQCAtNzIzMCw2ICs3MjQyLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNz
c1xWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGNzc1xXZWJLaXRDU1NBcnJheUZ1bmN0aW9uVmFsdWUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIiAvPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cY3NzXFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXFdlYktpdENTU01hdHJpeC5oIiAvPgpAQCAt
NzIzOSw2ICs3MjUyLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRD
U1NTVkdEb2N1bWVudFZhbHVlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3Nc
V2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGNzc1xXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGNzc1xXZWJLaXRGb250TG9hZGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxyZW5kZXJpbmdcQXV0b1RhYmxlTGF5b3V0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxyZW5kZXJpbmdcQmlkaVJ1bi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
cmVuZGVyaW5nXGJyZWFrX2xpbmVzLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggZDE1NGEzN2MxMjlk
NGE0Y2Y2OTNiMjI4N2U5MzNmMmVmMmRkNTRiMS4uZWU3ZjhlMjg3NjNlNjAyNjlmZTk1NDhjNTAx
M2ZjNGIwODgyNjhkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMTU1MSw2ICsxNTUxLDkgQEAKICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5jcHAiPgogICAgICAg
PEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCI+Cisg
ICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCI+CiAg
ICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBA
IC0xNTY5LDYgKzE1NzIsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdENT
U1RyYW5zZm9ybVZhbHVlLmNwcCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0
ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0
Rm9udExvYWRlci5jcHAiPgorICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgor
ICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdE5hbWVk
Rmxvdy5jcHAiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgpAQCAtMzc3MSw2ICszNzc3LDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGNzc1xXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5jcHAiPgogICAgICAgPEZpbHRlcj5jc3M8L0Zp
bHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGNzc1xX
ZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5jcHAiPgorICAgICAgPEZpbHRlcj5jc3M8L0ZpbHRl
cj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGNzc1xXZWJL
aXRDU1NLZXlmcmFtZVJ1bGUuY3BwIj4KICAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CiAgICAg
PC9DbENvbXBpbGU+CkBAIC0zNzk4LDYgKzM4MDcsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cY3NzXFdlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAiPgogICAgICAgPEZpbHRlcj5jc3M8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGNz
c1xXZWJLaXRGb250TG9hZGVyLmNwcCI+CisgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgorICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXEF1dG9U
YWJsZUxheW91dC5jcHAiPgogICAgICAgPEZpbHRlcj5yZW5kZXJpbmc8L0ZpbHRlcj4KICAgICA8
L0NsQ29tcGlsZT4KQEAgLTgwNzAsNiArODA4Miw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3Vy
Y2VzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaCI+CisgICAgICA8RmlsdGVyPkRlcml2ZWRT
b3VyY2VzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291
cmNlczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtODA4OCw2ICs4MTAzLDkgQEAKICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIj4KICAg
ICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRGb250TG9hZGVyLmgiPgorICAgICAgPEZp
bHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU1dlYktpdE5hbWVkRmxvdy5oIj4KICAgICAgIDxGaWx0ZXI+RGVy
aXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNDgyLDYgKzEwNTAw
LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NGaWx0ZXJWYWx1
ZS5oIj4KICAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaCI+
CisgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cY3NzXFdlYktpdENTU0tleWZyYW1lUnVsZS5oIj4KICAgICAgIDxG
aWx0ZXI+Y3NzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDUwOSw2ICsxMDUzMCw5
IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTVmlld3BvcnRSdWxl
LmgiPgogICAgICAgPEZpbHRlcj5jc3M8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRGb250TG9hZGVyLmgiPgorICAgICAgPEZp
bHRlcj5jc3M8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHJlbmRlcmluZ1xBdXRvVGFibGVMYXlvdXQuaCI+CiAgICAgICA8RmlsdGVyPnJlbmRl
cmluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc1NGU5M2ZhMWExNzg5MDQ1MDk3
MTkzMDkxOTcyZTZjMTkwYWQ3ZTguLjA4OTA1MzZkNzFjMTk2YTgwMDBmMTJhNDk4ZDZjZmQ2ZGFj
YmU3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTEwNDMsNiArMTA0MywxNiBAQAogCQkzRkZGRjlBOTE1OUQ5QTU1MDAyMEJC
RDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzRkZGRjlBNzE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NT
Vmlld3BvcnRSdWxlLmggKi87IH07CiAJCTNGRkZGOUFEMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3
cG9ydFN0eWxlUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gM0ZGRkY5QUIxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNv
bHZlci5jcHAgKi87IH07CiAJCTNGRkZGOUFFMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0
eWxlUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDNGRkZGOUFDMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCAq
LzsgfTsKKwkJNDA5RUJEQjExNkI3RUU3MTAwQ0JBM0ZDIC8qIFdlYktpdENTU0ZvbnRGYWNlTG9h
ZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MDlFQkRBRTE2QjdFRTI4MDBDQkEzRkMgLyogV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaCAq
LzsgfTsKKwkJNDA5RUJEQjIxNkI3RUU3NDAwQ0JBM0ZDIC8qIFdlYktpdENTU0ZvbnRGYWNlTG9h
ZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQwOUVCREFDMTZCN0VFMUMwMENCQTNGQyAvKiBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5j
cHAgKi87IH07CisJCTQwOUVCREI0MTZCN0VFODcwMENCQTNGQyAvKiBXZWJLaXRGb250TG9hZGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwOUVC
REIzMTZCN0VFODcwMENCQTNGQyAvKiBXZWJLaXRGb250TG9hZGVyLmNwcCAqLzsgfTsKKwkJNDA5
RUJEQjYxNkI3RUVBMzAwQ0JBM0ZDIC8qIFdlYktpdEZvbnRMb2FkZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwOUVCREI1MTZCN0VFQTMwMENCQTNG
QyAvKiBXZWJLaXRGb250TG9hZGVyLmggKi87IH07CisJCTQwOUVCREJBMTZCN0YwNDUwMENCQTNG
QyAvKiBKU1dlYktpdEZvbnRMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDA5RUJEQjkxNkI3RjA0NTAwQ0JBM0ZDIC8qIEpTV2ViS2l0Rm9u
dExvYWRlci5jcHAgKi87IH07CisJCTQwOUVCREMwMTZCN0YzOEUwMENCQTNGQyAvKiBKU1dlYktp
dEZvbnRMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQwOUVCREJGMTZCN0YzOEUwMENCQTNGQyAvKiBKU1dlYktpdEZvbnRMb2FkZXIuaCAqLzsg
fTsKKwkJNDA5RUJEQzMxNkI3RjNBNjAwQ0JBM0ZDIC8qIEpTV2ViS2l0Q1NTRm9udEZhY2VMb2Fk
RXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQw
OUVCREMyMTZCN0YzQTYwMENCQTNGQyAvKiBKU1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50Lmgg
Ki87IH07CisJCTQwOUVCREM1MTZCN0YzQ0EwMENCQTNGQyAvKiBKU1dlYktpdENTU0ZvbnRGYWNl
TG9hZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQwOUVCREM0MTZCN0YzQ0EwMENCQTNGQyAvKiBKU1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2
ZW50LmNwcCAqLzsgfTsKKwkJNDBFQ0FFN0UxNkI4QjY3MjAwQzM2MTAzIC8qIEpTRE9NRXJyb3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwRUNBRTdE
MTZCOEI2NzIwMEMzNjEwMyAvKiBKU0RPTUVycm9yLmggKi87IH07CisJCTQwRUNBRTgxMTZCOEI2
OEEwMEMzNjEwMyAvKiBKU0RPTUVycm9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQwRUNBRTgwMTZCOEI2OEEwMEMzNjEwMyAvKiBKU0RPTUVycm9y
LmNwcCAqLzsgfTsKIAkJNDEwMDJDQ0QwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9u
Q2FsbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEw
MDJDQ0IwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5oICovOyB9OwogCQk0
MTAwMkNDRTBGNjZFREVGMDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDAyQ0NDMEY2NkVERUYw
MDlFNjYwRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuY3BwICovOyB9OwogCQk0MTBCN0U3MjEwNDVG
QUIwMDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwQjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8q
IEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCAqLzsgfTsKQEAgLTgzNTcsNiArODM2NywxOCBAQAog
CQkzRkZGRjlBNzE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdENTU1ZpZXdwb3J0UnVsZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRkZGRjlBQjE1OUQ5QjA2MDAyMEJCRDUgLyog
Vmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTNGRkZGOUFDMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlld3BvcnRTdHlsZVJlc29sdmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQwOUVCREFDMTZCN0VFMUMwMENCQTNG
QyAvKiBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQwOUVCREFFMTZCN0VFMjgwMENCQTNGQyAvKiBXZWJLaXRD
U1NGb250RmFjZUxvYWRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MDlFQkRBRjE2QjdFRTU3MDBDQkEzRkMgLyogV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQjMxNkI3RUU4NzAwQ0JBM0ZD
IC8qIFdlYktpdEZvbnRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViS2l0Rm9udExvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQwOUVCREI1MTZCN0VFQTMwMENCQTNGQyAvKiBXZWJLaXRGb250TG9hZGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdEZvbnRMb2FkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQjcxNkI3RUVCQTAwQ0JBM0ZDIC8qIFdlYktpdEZvbnRM
b2FkZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdEZvbnRMb2FkZXIuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MDlFQkRCOTE2QjdGMDQ1MDBDQkEzRkMgLyog
SlNXZWJLaXRGb250TG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTV2ViS2l0Rm9udExvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQwOUVCREJGMTZCN0YzOEUwMENCQTNGQyAvKiBKU1dlYktpdEZvbnRMb2FkZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJLaXRGb250TG9hZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQwOUVCREMyMTZCN0YzQTYwMENCQTNGQyAvKiBKU1dlYktp
dENTU0ZvbnRGYWNlTG9hZEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDA5RUJEQzQxNkI3RjNDQTAwQ0JBM0ZDIC8qIEpTV2ViS2l0Q1NTRm9udEZhY2VMb2Fk
RXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRD
U1NGb250RmFjZUxvYWRFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQw
RUNBRTdEMTZCOEI2NzIwMEMzNjEwMyAvKiBKU0RPTUVycm9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTRE9NRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDBFQ0FFODAxNkI4QjY4QTAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01FcnJvci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxMDAyQ0NCMEY2NkVERUYwMDlFNjYwRCAvKiBTY3JpcHRGdW5jdGlv
bkNhbGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0RnVuY3Rpb25D
YWxsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDAyQ0NDMEY2NkVERUYwMDlF
NjYwRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2NyaXB0RnVuY3Rpb25DYWxsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDEwQjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9t
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVzc2FnZUV2ZW50
Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1OTI0LDkgKzE1OTQ2
LDE1IEBACiAJCTY1NjU4MEVDMDlEMTJCMjAwMDBFNjFENyAvKiBEZXJpdmVkIFNvdXJjZXMgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTQwOUVCREI5MTZC
N0YwNDUwMENCQTNGQyAvKiBKU1dlYktpdEZvbnRMb2FkZXIuY3BwICovLAorCQkJCTQwRUNBRTgw
MTZCOEI2OEEwMEMzNjEwMyAvKiBKU0RPTUVycm9yLmNwcCAqLywKKwkJCQk0MEVDQUU3RDE2QjhC
NjcyMDBDMzYxMDMgLyogSlNET01FcnJvci5oICovLAogCQkJCTY1NjU4MUFDMDlEMTRFRTYwMDBF
NjFENyAvKiBDaGFyc2V0RGF0YS5jcHAgKi8sCiAJCQkJRTQwNkYzRkIxMTk4MzA3RDAwOUQ1OUQ2
IC8qIENvbG9yRGF0YS5jcHAgKi8sCiAJCQkJNjU2NTgxNDQwOUQxMzA0MzAwMEU2MUQ3IC8qIENT
U0dyYW1tYXIuY3BwICovLAorCQkJCTQwOUVCREM0MTZCN0YzQ0EwMENCQTNGQyAvKiBKU1dlYktp
dENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCAqLywKKwkJCQk0MDlFQkRDMjE2QjdGM0E2MDBDQkEz
RkMgLyogSlNXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oICovLAorCQkJCTQwOUVCREJGMTZC
N0YzOEUwMENCQTNGQyAvKiBKU1dlYktpdEZvbnRMb2FkZXIuaCAqLywKIAkJCQk2NTBGNTNEQjA5
RDE1RERBMDBDOUIwQzggLyogQ1NTR3JhbW1hci5oICovLAogCQkJCUU0MUVBMDM4MTE5ODM2REIw
MDcxMEJDNSAvKiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCAqLywKIAkJCQk2NTY1ODBFRTA5RDEyQjIw
MDAwRTYxRDcgLyogQ1NTUHJvcGVydHlOYW1lcy5ncGVyZiAqLywKQEAgLTIxNzUzLDYgKzIxNzgx
LDEyIEBACiAJCQkJRjk4RkZGNDIxMUEyNjc2MjAwRjU0OEU4IC8qIENTU09NVXRpbHMuY3BwICov
LAogCQkJCUY5OEZGRjQzMTFBMjY3NjIwMEY1NDhFOCAvKiBDU1NPTVV0aWxzLmggKi8sCiAJCQkJ
QTgwRTZDQ0IwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1BhZ2VSdWxlLmNwcCAqLywKKwkJCQk0MDlF
QkRBRjE2QjdFRTU3MDBDQkEzRkMgLyogV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsICov
LAorCQkJCTQwOUVCREFFMTZCN0VFMjgwMENCQTNGQyAvKiBXZWJLaXRDU1NGb250RmFjZUxvYWRF
dmVudC5oICovLAorCQkJCTQwOUVCREFDMTZCN0VFMUMwMENCQTNGQyAvKiBXZWJLaXRDU1NGb250
RmFjZUxvYWRFdmVudC5jcHAgKi8sCisJCQkJNDA5RUJEQjcxNkI3RUVCQTAwQ0JBM0ZDIC8qIFdl
YktpdEZvbnRMb2FkZXIuaWRsICovLAorCQkJCTQwOUVCREI1MTZCN0VFQTMwMENCQTNGQyAvKiBX
ZWJLaXRGb250TG9hZGVyLmggKi8sCisJCQkJNDA5RUJEQjMxNkI3RUU4NzAwQ0JBM0ZDIC8qIFdl
YktpdEZvbnRMb2FkZXIuY3BwICovLAogCQkJCUE4MEU2Q0Q2MEExOTg5Q0EwMDdGQjhDNSAvKiBD
U1NQYWdlUnVsZS5oICovLAogCQkJCTg1QzU2Q0E2MEFBODlENUYwMEQ5NTc1NSAvKiBDU1NQYWdl
UnVsZS5pZGwgKi8sCiAJCQkJQkM3NzJCMzcwQzRFQTkxRTAwODMyODVGIC8qIENTU1BhcnNlci5j
cHAgKi8sCkBAIC0yNjMzMyw2ICsyNjM2NywxMSBAQAogCQkJCTJFMDc3NTM0MTZCMUJENEMwMDRE
OTkzNiAvKiBNaWNyb0RhdGFBdHRyaWJ1dGVUb2tlbkxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTI5MTlBMUU5MTZCMzM3NjYwMDc4NzIxMyAvKiBDb250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5N0RDNjlFRDE2QjlGNTJDMDA4Q0ZENkYgLyogQmFja2dyb3VuZEhUTUxJbnB1dFN0
cmVhbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDA5RUJEQjExNkI3RUU3MTAwQ0JBM0ZDIC8qIFdl
YktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MDlFQkRCNjE2
QjdFRUEzMDBDQkEzRkMgLyogV2ViS2l0Rm9udExvYWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDA5RUJEQzAxNkI3RjM4RTAwQ0JBM0ZDIC8qIEpTV2ViS2l0Rm9udExvYWRlci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNDA5RUJEQzMxNkI3RjNBNjAwQ0JBM0ZDIC8qIEpTV2ViS2l0Q1NTRm9udEZh
Y2VMb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQwRUNBRTdFMTZCOEI2NzIwMEMzNjEw
MyAvKiBKU0RPTUVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI5NDkwLDYgKzI5NTI5LDExIEBA
CiAJCQkJMkUwNzc1MzExNkIxQkQxMzAwNEQ5OTM2IC8qIE1pY3JvRGF0YUF0dHJpYnV0ZVRva2Vu
TGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyOTE5QTFFQjE2QjMzNzg5MDA3ODcyMTMgLyog
Q29udGVudEZpbHRlck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTk3REM2OUVDMTZCOUY1Mjkw
MDhDRkQ2RiAvKiBCYWNrZ3JvdW5kSFRNTElucHV0U3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTQwOUVCREIyMTZCN0VFNzQwMENCQTNGQyAvKiBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVu
dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MDlFQkRCNDE2QjdFRTg3MDBDQkEzRkMgLyogV2Vi
S2l0Rm9udExvYWRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MDlFQkRCQTE2QjdGMDQ1MDBD
QkEzRkMgLyogSlNXZWJLaXRGb250TG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQwOUVC
REM1MTZCN0YzQ0EwMENCQTNGQyAvKiBKU1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTQwRUNBRTgxMTZCOEI2OEEwMEMzNjEwMyAvKiBKU0RPTUVycm9y
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNEaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlv
bmFyeS5jcHAKaW5kZXggZjk4MDRkZjZhMjFhZDVjMmU5MWVmMDExMDIxNWFmMDY0ZTdjOWI2Yi4u
OWY2MDZiMTA0MTRlYWJkZTRmMTg0ZGM1M2ZmOTQ0MWI4OTkwN2E3YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAKICNp
bmNsdWRlICJBcnJheVZhbHVlLmgiCiAjaW5jbHVkZSAiRGljdGlvbmFyeS5oIgorI2luY2x1ZGUg
IkpTQ1NTRm9udEZhY2VSdWxlLmgiCisjaW5jbHVkZSAiSlNET01FcnJvci5oIgogI2luY2x1ZGUg
IkpTRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiSlNFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkpT
TWVzc2FnZVBvcnRDdXN0b20uaCIKQEAgLTM1LDYgKzM3LDcgQEAKICNpbmNsdWRlICJKU1N0b3Jh
Z2UuaCIKICNpbmNsdWRlICJKU1RyYWNrQ3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNVaW50OEFycmF5
LmgiCisjaW5jbHVkZSAiSlNWb2lkQ2FsbGJhY2suaCIKICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5o
IgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CkBAIC0yMjYsNiArMjI5LDI2IEBAIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFs
dWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxNZWRpCiB9CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShGT05UX0xPQURFUikKK3ZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252
ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxDU1NG
b250RmFjZVJ1bGU+JiByZXN1bHQpCit7CisgICAgcmVzdWx0ID0gdG9DU1NGb250RmFjZVJ1bGUo
dmFsdWUpOworfQorCit2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8RE9NRXJyb3I+JiByZXN1bHQpCit7Cisg
ICAgcmVzdWx0ID0gdG9ET01FcnJvcih2YWx1ZSk7Cit9CisKK3ZvaWQgSlNEaWN0aW9uYXJ5Ojpj
b252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVm
UHRyPFZvaWRDYWxsYmFjaz4mIHJlc3VsdCkKK3sKKyAgICBpZiAoIXZhbHVlLmlzRnVuY3Rpb24o
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVzdWx0ID0gSlNWb2lkQ2FsbGJhY2s6OmNyZWF0
ZShhc09iamVjdCh2YWx1ZSksIGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKSkpOworfQorI2VuZGlmCisKIGJvb2wgSlNEaWN0aW9uYXJ5OjpnZXRX
aXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIFN0cmlu
ZyYgcmVzdWx0KSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbGlkKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaAppbmRleCA3MjkyNzY0YjFmMzNkMThlYTRiYWUy
YWI0YWM3ZDkyYTQwOWMxNjA5Li44NmQ0NWUwNTkyOWJmYTM3NDA3Y2E4YWQzNWNjOWY3NDA1YjM5
NmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaApAQCAtMzYs
NyArMzYsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcnJheVZhbHVlOworY2xh
c3MgQ1NTRm9udEZhY2VSdWxlOwogY2xhc3MgRGljdGlvbmFyeTsKK2NsYXNzIERPTUVycm9yOwog
Y2xhc3MgRE9NV2luZG93OwogY2xhc3MgRXZlbnRUYXJnZXQ7CiBjbGFzcyBNZWRpYUtleUVycm9y
OwpAQCAtNDYsNiArNDgsNyBAQCBjbGFzcyBTY3JpcHRWYWx1ZTsKIGNsYXNzIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTsKIGNsYXNzIFN0b3JhZ2U7CiBjbGFzcyBUcmFja0Jhc2U7CitjbGFzcyBWb2lk
Q2FsbGJhY2s7CiAKIGNsYXNzIEpTRGljdGlvbmFyeSB7CiBwdWJsaWM6CkBAIC0xMTksNiArMTIy
LDExIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBzdGF0aWMgdm9p
ZCBjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIFJlZlB0cjxNZWRp
YVN0cmVhbT4mIHJlc3VsdCk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisgICAg
c3RhdGljIHZvaWQgY29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBS
ZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiYgcmVzdWx0KTsKKyAgICBzdGF0aWMgdm9pZCBjb252ZXJ0
VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIFJlZlB0cjxET01FcnJvcj4mIHJl
c3VsdCk7CisgICAgc3RhdGljIHZvaWQgY29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU1ZhbHVlLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYgcmVzdWx0KTsKKyNlbmRpZgogCiAgICAg
SlNDOjpFeGVjU3RhdGUqIG1fZXhlYzsKICAgICBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiBt
X2luaXRpYWxpemVyT2JqZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvRGljdGlvbmFyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EaWN0aW9uYXJ5
LmNwcAppbmRleCA4YTljZjFkZjZiYjU1ZGI5MjdkM2Y0MTBmM2M2YjdjOWQwZGEzZWQyLi5kNjJj
Yjg3YzQ2NWU3ZmM4NWExOTBhODA4Y2IxN2Y1Yjc5NTMzZWUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9EaWN0aW9uYXJ5LmNwcApAQCAtNjQsNiArNjQsMTIgQEAKICNpbmNsdWRlICJW
OE1lZGlhU3RyZWFtLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShGT05UX0xPQURFUikKKyNpbmNs
dWRlICJWOENTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIlY4RE9NRXJyb3IuaCIKKyNpbmNs
dWRlICJWOFZvaWRDYWxsYmFjay5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
RGljdGlvbmFyeTo6RGljdGlvbmFyeSgpCkBAIC00OTgsNiArNTA0LDU1IEBAIGJvb2wgRGljdGlv
bmFyeTo6Z2V0KGNvbnN0IFN0cmluZyYga2V5LCBBcnJheVZhbHVlJiB2YWx1ZSkgY29uc3QKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAorI2lmIEVOQUJMRShGT05UX0xPQURFUikKK2Jvb2wgRGljdGlv
bmFyeTo6Z2V0KGNvbnN0IFN0cmluZyYga2V5LCBSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiYgdmFs
dWUpIGNvbnN0Cit7CisgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdjhWYWx1ZTsKKyAgICBpZiAo
IWdldEtleShrZXksIHY4VmFsdWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBDU1NG
b250RmFjZVJ1bGUqIHNvdXJjZSA9IDA7CisgICAgaWYgKHY4VmFsdWUtPklzT2JqZWN0KCkpIHsK
KyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gdjg6OkhhbmRsZTx2ODo6
T2JqZWN0Pjo6Q2FzdCh2OFZhbHVlKTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBm
b250ZmFjZSA9IHdyYXBwZXItPkZpbmRJbnN0YW5jZUluUHJvdG90eXBlQ2hhaW4oVjhDU1NGb250
RmFjZVJ1bGU6OkdldFRlbXBsYXRlKCkpOworICAgICAgICBpZiAoIWZvbnRmYWNlLklzRW1wdHko
KSkKKyAgICAgICAgICAgIHNvdXJjZSA9IFY4Q1NTRm9udEZhY2VSdWxlOjp0b05hdGl2ZShmb250
ZmFjZSk7CisgICAgfQorICAgIHZhbHVlID0gc291cmNlOworICAgIHJldHVybiB0cnVlOworfQor
Citib29sIERpY3Rpb25hcnk6OmdldChjb25zdCBTdHJpbmcmIGtleSwgUmVmUHRyPERPTUVycm9y
PiYgdmFsdWUpIGNvbnN0Cit7CisgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdjhWYWx1ZTsKKyAg
ICBpZiAoIWdldEtleShrZXksIHY4VmFsdWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBET01FcnJvciogZXJyb3IgPSAwOworICAgIGlmICh2OFZhbHVlLT5Jc09iamVjdCgpKSB7Cisg
ICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IHY4OjpIYW5kbGU8djg6Ok9i
amVjdD46OkNhc3QodjhWYWx1ZSk7CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gZG9t
RXJyb3IgPSB3cmFwcGVyLT5GaW5kSW5zdGFuY2VJblByb3RvdHlwZUNoYWluKFY4RE9NRXJyb3I6
OkdldFRlbXBsYXRlKCkpOworICAgICAgICBpZiAoIWRvbUVycm9yLklzRW1wdHkoKSkKKyAgICAg
ICAgICAgIGVycm9yID0gVjhET01FcnJvcjo6dG9OYXRpdmUoZG9tRXJyb3IpOworICAgIH0KKyAg
ICB2YWx1ZSA9IGVycm9yOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIERpY3Rpb25hcnk6
OmdldChjb25zdCBTdHJpbmcmIGtleSwgUmVmUHRyPFZvaWRDYWxsYmFjaz4mIHZhbHVlKSBjb25z
dAoreworICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHY4VmFsdWU7CisgICAgaWYgKCFnZXRLZXko
a2V5LCB2OFZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCF2OFZhbHVl
LT5Jc0Z1bmN0aW9uKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHZhbHVlID0gVjhW
b2lkQ2FsbGJhY2s6OmNyZWF0ZSh2OFZhbHVlLCBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
OworICAgIHJldHVybiB0cnVlOworfQorI2VuZGlmCisKIGJvb2wgRGljdGlvbmFyeTo6Z2V0T3du
UHJvcGVydGllc0FzU3RyaW5nSGFzaE1hcChIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgaGFzaE1h
cCkgY29uc3QKIHsKICAgICBpZiAoIWlzT2JqZWN0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9EaWN0aW9uYXJ5LmgKaW5kZXggNzY1MDI5NWMzMjFmYjRmZDg1NmU0NzRiYjliYWZkOTMzZDBk
NzdmNi4uMjc0YjdkOTFjOTc4ZDMxZTVkOTljMTAyZmMwMzc0MjFjZDVhMGRkYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFyeS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuaApAQCAtMzksNiArMzksOCBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcnJheVZhbHVlOworY2xhc3MgQ1NTRm9udEZhY2VSdWxl
OworY2xhc3MgRE9NRXJyb3I7CiBjbGFzcyBET01XaW5kb3c7CiBjbGFzcyBJREJLZXlSYW5nZTsK
IGNsYXNzIE1lZGlhS2V5RXJyb3I7CkBAIC00OCw2ICs1MCw3IEBAIGNsYXNzIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0OwogY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OwogY2xhc3Mg
U3RvcmFnZTsKIGNsYXNzIFRyYWNrQmFzZTsKK2NsYXNzIFZvaWRDYWxsYmFjazsKIAogY2xhc3Mg
RGljdGlvbmFyeSB7CiBwdWJsaWM6CkBAIC05Myw2ICs5NiwxMSBAQCBwdWJsaWM6CiAgICAgYm9v
bCBnZXQoY29uc3QgU3RyaW5nJiwgRGljdGlvbmFyeSYpIGNvbnN0OwogICAgIGJvb2wgZ2V0KGNv
bnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikgY29uc3Q7CiAgICAgYm9vbCBnZXQoY29uc3Qg
U3RyaW5nJiwgQXJyYXlWYWx1ZSYpIGNvbnN0OworI2lmIEVOQUJMRShGT05UX0xPQURFUikKKyAg
ICBib29sIGdldChjb25zdCBTdHJpbmcmLCBSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiYpIGNvbnN0
OworICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIFJlZlB0cjxET01FcnJvcj4mKSBjb25zdDsK
KyAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYpIGNvbnN0
OworI2VuZGlmCiAKICAgICBib29sIGdldE93blByb3BlcnRpZXNBc1N0cmluZ0hhc2hNYXAoSGFz
aE1hcDxTdHJpbmcsIFN0cmluZz4mKSBjb25zdDsKICAgICBib29sIGdldE93blByb3BlcnR5TmFt
ZXMoVmVjdG9yPFN0cmluZz4mKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCmlu
ZGV4IDI3N2ZiZDkyODlmNmQ3NzgxZjgxYWMzNDk0OWU3MmYyODY0MzA1YWQuLjJjOTFhZjQ2MjM0
NzEzOTQxNTk0MDk3NWU1YjE5MzcwZTllYTk0ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250RmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
LmNwcApAQCAtMjksOCArMjksMTAgQEAKICNpbmNsdWRlICJDU1NGb250RmFjZVNvdXJjZS5oIgog
I2luY2x1ZGUgIkNTU0ZvbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTU1NlZ21lbnRlZEZvbnRG
YWNlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24u
aCIKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgorI2luY2x1ZGUgIldlYktpdEZvbnRMb2Fk
ZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04MSw2ICs4MywxNSBAQCB2b2lkIENT
U0ZvbnRGYWNlOjpmb250TG9hZGVkKENTU0ZvbnRGYWNlU291cmNlKiBzb3VyY2UpCiAgICAgaWYg
KG1fc2VnbWVudGVkRm9udEZhY2VzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYg
RU5BQkxFKEZPTlRfTE9BREVSKQorICAgIGlmIChtX2xvYWRTdGF0ZSA9PSBMb2FkaW5nKSB7Cisg
ICAgICAgIGlmIChzb3VyY2UtPmVuc3VyZUZvbnREYXRhKCkpCisgICAgICAgICAgICBub3RpZnlG
b250TG9hZGVyKExvYWRlZCk7CisgICAgICAgIGVsc2UgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAg
ICAgICBub3RpZnlGb250TG9hZGVyKEVycm9yKTsKKyAgICB9CisjZW5kaWYKKwogICAgIEhhc2hT
ZXQ8Q1NTU2VnbWVudGVkRm9udEZhY2UqPjo6aXRlcmF0b3IgZW5kID0gbV9zZWdtZW50ZWRGb250
RmFjZXMuZW5kKCk7CiAgICAgZm9yIChIYXNoU2V0PENTU1NlZ21lbnRlZEZvbnRGYWNlKj46Oml0
ZXJhdG9yIGl0ID0gbV9zZWdtZW50ZWRGb250RmFjZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0
KQogICAgICAgICAoKml0KS0+Zm9udExvYWRlZCh0aGlzKTsKQEAgLTg5LDYgKzEwMCwxMCBAQCB2
b2lkIENTU0ZvbnRGYWNlOjpmb250TG9hZGVkKENTU0ZvbnRGYWNlU291cmNlKiBzb3VyY2UpCiAg
ICAgLy8gdGhlIHNhbWUgZm9udCBzZWxlY3Rvciwgc28gaXQncyB3YXN0ZWZ1bCB0byBzdG9yZSBp
dCBpbiB0aGUgQ1NTRm9udEZhY2UuCiAgICAgQ1NTRm9udFNlbGVjdG9yKiBmb250U2VsZWN0b3Ig
PSAoKm1fc2VnbWVudGVkRm9udEZhY2VzLmJlZ2luKCkpLT5mb250U2VsZWN0b3IoKTsKICAgICBm
b250U2VsZWN0b3ItPmZvbnRMb2FkZWQoKTsKKworI2lmIEVOQUJMRShGT05UX0xPQURFUikKKyAg
ICBmb250U2VsZWN0b3ItPmRvY3VtZW50KCktPndlYmtpdEZvbnRsb2FkZXIoKS0+bm90aWZ5Rm9u
dHNSZWFkeSgpOworI2VuZGlmCiB9CiAKIFBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IENTU0Zv
bnRGYWNlOjpnZXRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlv
biwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYykKQEAgLTEwMCwxNyAr
MTE1LDU1IEBAIFBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IENTU0ZvbnRGYWNlOjpnZXRGb250
RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnRECiAgICAgQVNTRVJUKCFtX3NlZ21lbnRl
ZEZvbnRGYWNlcy5pc0VtcHR5KCkpOwogICAgIENTU0ZvbnRTZWxlY3RvciogZm9udFNlbGVjdG9y
ID0gKCptX3NlZ21lbnRlZEZvbnRGYWNlcy5iZWdpbigpKS0+Zm9udFNlbGVjdG9yKCk7CiAKKyNp
ZiBFTkFCTEUoRk9OVF9MT0FERVIpCisgICAgaWYgKG1fbG9hZFN0YXRlID09IE5vdExvYWRlZCkK
KyAgICAgICAgbm90aWZ5Rm9udExvYWRlcihMb2FkaW5nKTsKKyNlbmRpZgorCiAgICAgc2l6ZV90
IHNpemUgPSBtX3NvdXJjZXMuc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6
ZTsgKytpKSB7CiAgICAgICAgIGlmIChSZWZQdHI8U2ltcGxlRm9udERhdGE+IHJlc3VsdCA9IG1f
c291cmNlc1tpXS0+Z2V0Rm9udERhdGEoZm9udERlc2NyaXB0aW9uLCBzeW50aGV0aWNCb2xkLCBz
eW50aGV0aWNJdGFsaWMsIGZvbnRTZWxlY3RvcikpIHsKICAgICAgICAgICAgIG1fYWN0aXZlU291
cmNlID0gbV9zb3VyY2VzW2ldLmdldCgpOworI2lmIEVOQUJMRShGT05UX0xPQURFUikKKyAgICAg
ICAgICAgIGlmIChtX2xvYWRTdGF0ZSA9PSBMb2FkaW5nICYmIG1fc291cmNlc1tpXS0+aXNMb2Fk
ZWQoKSkKKyAgICAgICAgICAgICAgICBub3RpZnlGb250TG9hZGVyKExvYWRlZCk7CisjZW5kaWYK
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOwogICAgICAgICB9CiAgICAgfQog
CisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorICAgIGlmIChtX2xvYWRTdGF0ZSA9PSBMb2FkaW5n
KQorICAgICAgICBub3RpZnlGb250TG9hZGVyKEVycm9yKTsKKyNlbmRpZgogICAgIHJldHVybiAw
OwogfQogCisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQordm9pZCBDU1NGb250RmFjZTo6bm90aWZ5
Rm9udExvYWRlcihMb2FkU3RhdGUgbmV3U3RhdGUpCit7CisgICAgbV9sb2FkU3RhdGUgPSBuZXdT
dGF0ZTsKKworICAgIERvY3VtZW50KiBkb2N1bWVudCA9ICgqbV9zZWdtZW50ZWRGb250RmFjZXMu
YmVnaW4oKSktPmZvbnRTZWxlY3RvcigpLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQp
CisgICAgICAgIHJldHVybjsKKworICAgIHN3aXRjaCAobmV3U3RhdGUpIHsKKyAgICBjYXNlIExv
YWRpbmc6CisgICAgICAgIGRvY3VtZW50LT53ZWJraXRGb250bG9hZGVyKCktPmJlZ2luRm9udExv
YWRpbmcobV9ydWxlLmdldCgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMb2FkZWQ6Cisg
ICAgICAgIGRvY3VtZW50LT53ZWJraXRGb250bG9hZGVyKCktPmZvbnRMb2FkZWQobV9ydWxlLmdl
dCgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBFcnJvcjoKKyAgICAgICAgZG9jdW1lbnQt
PndlYmtpdEZvbnRsb2FkZXIoKS0+bG9hZEVycm9yKG1fcnVsZS5nZXQoKSk7CisgICAgICAgIGJy
ZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKyNlbmRpZgorCiAj
aWYgRU5BQkxFKFNWR19GT05UUykKIGJvb2wgQ1NTRm9udEZhY2U6Omhhc1NWR0ZvbnRGYWNlU291
cmNlKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFj
ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmgKaW5kZXggZTNmNjQ4MTA3YzYx
N2U4YWYyMzU1ZDhmMTE0MTBhMWE3NzE4NzRlNy4uZmQ1OWJkOGRkNmQzNzhlOWU2NjhkOTFmOTc3
MTYzYTY5Zjc5NDgyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmgKQEAgLTI2LDYgKzI2LDgg
QEAKICNpZm5kZWYgQ1NTRm9udEZhY2VfaAogI2RlZmluZSBDU1NGb250RmFjZV9oCiAKKyNpbmNs
dWRlICJDU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NGb250RmFjZVNvdXJjZS5oIgog
I2luY2x1ZGUgIkZvbnRUcmFpdHNNYXNrLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtMzYsMTQgKzM4LDEzIEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgQ1NTRm9udEZhY2VTb3VyY2U7CiBjbGFzcyBDU1NTZWdtZW50ZWRG
b250RmFjZTsKIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKIGNsYXNzIFNpbXBsZUZvbnREYXRhOwog
CiBjbGFzcyBDU1NGb250RmFjZSA6IHB1YmxpYyBSZWZDb3VudGVkPENTU0ZvbnRGYWNlPiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTRm9udEZhY2U+IGNyZWF0ZShGb250VHJh
aXRzTWFzayB0cmFpdHNNYXNrLCBib29sIGlzTG9jYWxGYWxsYmFjayA9IGZhbHNlKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgQ1NTRm9udEZhY2UodHJhaXRzTWFzaywgaXNMb2NhbEZhbGxiYWNrKSk7
IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NGb250RmFjZT4gY3JlYXRlKEZvbnRUcmFpdHNN
YXNrIHRyYWl0c01hc2ssIFBhc3NSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiBydWxlLCBib29sIGlz
TG9jYWxGYWxsYmFjayA9IGZhbHNlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTRm9udEZhY2Uo
dHJhaXRzTWFzaywgcnVsZSwgaXNMb2NhbEZhbGxiYWNrKSk7IH0KIAogICAgIEZvbnRUcmFpdHNN
YXNrIHRyYWl0c01hc2soKSBjb25zdCB7IHJldHVybiBtX3RyYWl0c01hc2s7IH0KIApAQCAtODUs
MTIgKzg2LDIyIEBAIHB1YmxpYzoKICAgICBib29sIGhhc1NWR0ZvbnRGYWNlU291cmNlKCkgY29u
c3Q7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGT05UX0xPQURFUikKKyAgICBlbnVtIExvYWRTdGF0
ZSB7IE5vdExvYWRlZCwgTG9hZGluZywgTG9hZGVkLCBFcnJvciB9OworICAgIExvYWRTdGF0ZSBs
b2FkU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2xvYWRTdGF0ZTsgfQorI2VuZGlmCisKIHByaXZh
dGU6Ci0gICAgQ1NTRm9udEZhY2UoRm9udFRyYWl0c01hc2sgdHJhaXRzTWFzaywgYm9vbCBpc0xv
Y2FsRmFsbGJhY2spCisgICAgQ1NTRm9udEZhY2UoRm9udFRyYWl0c01hc2sgdHJhaXRzTWFzaywg
UGFzc1JlZlB0cjxDU1NGb250RmFjZVJ1bGU+IHJ1bGUsIGJvb2wgaXNMb2NhbEZhbGxiYWNrKQog
ICAgICAgICA6IG1fdHJhaXRzTWFzayh0cmFpdHNNYXNrKQogICAgICAgICAsIG1fYWN0aXZlU291
cmNlKDApCiAgICAgICAgICwgbV9pc0xvY2FsRmFsbGJhY2soaXNMb2NhbEZhbGxiYWNrKQorI2lm
IEVOQUJMRShGT05UX0xPQURFUikKKyAgICAgICAgLCBtX2xvYWRTdGF0ZShpc0xvY2FsRmFsbGJh
Y2sgPyBMb2FkZWQgOiBOb3RMb2FkZWQpCisgICAgICAgICwgbV9ydWxlKHJ1bGUpCisjZW5kaWYK
ICAgICB7CisgICAgICAgIFVOVVNFRF9QQVJBTShydWxlKTsKICAgICB9CiAKICAgICBGb250VHJh
aXRzTWFzayBtX3RyYWl0c01hc2s7CkBAIC05OSw2ICsxMTAsMTEgQEAgcHJpdmF0ZToKICAgICBW
ZWN0b3I8T3duUHRyPENTU0ZvbnRGYWNlU291cmNlPiA+IG1fc291cmNlczsKICAgICBDU1NGb250
RmFjZVNvdXJjZSogbV9hY3RpdmVTb3VyY2U7CiAgICAgYm9vbCBtX2lzTG9jYWxGYWxsYmFjazsK
KyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisgICAgTG9hZFN0YXRlIG1fbG9hZFN0YXRlOworICAg
IFJlZlB0cjxDU1NGb250RmFjZVJ1bGU+IG1fcnVsZTsKKyAgICB2b2lkIG5vdGlmeUZvbnRMb2Fk
ZXIoTG9hZFN0YXRlKTsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZh
Y2VSdWxlLmlkbAppbmRleCBmMTM0OTdjNDM3ZjZhZWUxZDY2MjcwNjNmMzA1NGNiYjZhOTIxYzBi
Li5iYTk3YTdiN2Y0ODI2MGI2YzMzMTc1MTQxMzNkM2Q2NWMxMTRmYWNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbApAQCAtMTksNyArMTksMTAgQEAKICAqLwogCiAvLyBJ
bnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotaW50ZXJmYWNlIENTU0ZvbnRGYWNlUnVsZSA6IENT
U1J1bGUgeworaW50ZXJmYWNlIFsKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKKyAgICBKU0dl
bmVyYXRlVG9OYXRpdmVPYmplY3QsCitdIENTU0ZvbnRGYWNlUnVsZSA6IENTU1J1bGUgewogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uIHN0eWxlOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAKaW5kZXggYTU5NTIxN2YzNzc0OTU2
MWQzMTYyMDMyNmVhZjU1Zjg1MjI2ZTg1OC4uNmJlZjU5MzQ0NmM0NDNhMzMxZGFmYWUxYWJmOTEx
MGI1OWRhOGExYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCkBA
IC0yMDUsNCArMjA1LDE3IEBAIGJvb2wgQ1NTRm9udEZhY2VTb3VyY2U6OmlzU1ZHRm9udEZhY2VT
b3VyY2UoKSBjb25zdAogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCitib29s
IENTU0ZvbnRGYWNlU291cmNlOjplbnN1cmVGb250RGF0YSgpCit7CisgICAgaWYgKCFtX2ZvbnQp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAgIGlmICht
X2hhc0V4dGVybmFsU1ZHRm9udCkKKyAgICAgICAgcmV0dXJuIG1fZm9udC0+ZW5zdXJlU1ZHRm9u
dERhdGEoKTsKKyNlbmRpZgorICAgIHJldHVybiBtX2ZvbnQtPmVuc3VyZUN1c3RvbUZvbnREYXRh
KCk7Cit9CisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Zv
bnRGYWNlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuaApp
bmRleCAwNDg4ZDEwZDMyNjAwZTQ3ZGVkZDBmNzI4YzAwMzRjYTA0YWRmMTVjLi45NmVhYzcxMjk4
N2IxOWVhOWYxOThiYzk4YjU3ZjEzNjU5YTE2NzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZhY2VTb3VyY2UuaApAQCAtNzAsNiArNzAsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SGFz
RXh0ZXJuYWxTVkdGb250KGJvb2wgdmFsdWUpIHsgbV9oYXNFeHRlcm5hbFNWR0ZvbnQgPSB2YWx1
ZTsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisgICAgYm9vbCBlbnN1cmVG
b250RGF0YSgpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydExvYWRpbmdUaW1l
ckZpcmVkKFRpbWVyPENTU0ZvbnRGYWNlU291cmNlPiopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250U2VsZWN0b3IuY3BwCmluZGV4IGNiMGRjOGQxNGIxOGZmNDg5YzM2YTdmMjAwNTAzYTQwOWU5
NzIzMzYuLmFmZmJhNzU1MTg5MjNiMTg0NDk2NmUwOGFjZjI4NTM3MThiNjJkMDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNs
dWRlICJDYWNoZWRGb250LmgiCiAjaW5jbHVkZSAiQ1NTRm9udEZhY2UuaCIKKyNpbmNsdWRlICJD
U1NGb250RmFjZVJ1bGUuaCIKICNpbmNsdWRlICJDU1NGb250RmFjZVNvdXJjZS5oIgogI2luY2x1
ZGUgIkNTU0ZvbnRGYWNlU3JjVmFsdWUuaCIKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5o
IgpAQCAtNDcsNiArNDgsNyBAQAogI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQuaCIKICNpbmNs
dWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCisjaW5jbHVkZSAi
Vm9pZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiV2ViS2l0Rm9udEZhbWlseU5hbWVzLmgiCiAjaW5j
bHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKQEAgLTIyNCw4ICsyMjYsMTQgQEAgdm9p
ZCBDU1NGb250U2VsZWN0b3I6OmFkZEZvbnRGYWNlUnVsZShjb25zdCBTdHlsZVJ1bGVGb250RmFj
ZSogZm9udEZhY2VSdWxlKQogICAgICAgICAgICAgc291cmNlID0gYWRvcHRQdHIobmV3IENTU0Zv
bnRGYWNlU291cmNlKGl0ZW0tPnJlc291cmNlKCkpKTsKICAgICAgICAgfQogCi0gICAgICAgIGlm
ICghZm9udEZhY2UpCi0gICAgICAgICAgICBmb250RmFjZSA9IENTU0ZvbnRGYWNlOjpjcmVhdGUo
c3RhdGljX2Nhc3Q8Rm9udFRyYWl0c01hc2s+KHRyYWl0c01hc2spKTsKKyAgICAgICAgaWYgKCFm
b250RmFjZSkgeworICAgICAgICAgICAgUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4gcnVsZTsKKyNp
ZiBFTkFCTEUoRk9OVF9MT0FERVIpCisgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBDU1NGb250
RmFjZVJ1bGUgaGFzIG5vIHBhcmVudC4KKyAgICAgICAgICAgIHJ1bGUgPSBzdGF0aWNfcG9pbnRl
cl9jYXN0PENTU0ZvbnRGYWNlUnVsZT4oZm9udEZhY2VSdWxlLT5jcmVhdGVDU1NPTVdyYXBwZXIo
KSk7CisjZW5kaWYKKyAgICAgICAgICAgIGZvbnRGYWNlID0gQ1NTRm9udEZhY2U6OmNyZWF0ZShz
dGF0aWNfY2FzdDxGb250VHJhaXRzTWFzaz4odHJhaXRzTWFzayksIHJ1bGUpOworICAgICAgICB9
CiAKICAgICAgICAgaWYgKHNvdXJjZSkgewogI2lmIEVOQUJMRShTVkdfRk9OVFMpCkBAIC0yOTcs
NyArMzA1LDcgQEAgdm9pZCBDU1NGb250U2VsZWN0b3I6OmFkZEZvbnRGYWNlUnVsZShjb25zdCBT
dHlsZVJ1bGVGb250RmFjZSogZm9udEZhY2VSdWxlKQogICAgICAgICAgICAgICAgIE93blB0cjxW
ZWN0b3I8UmVmUHRyPENTU0ZvbnRGYWNlPiA+ID4gZmFtaWx5TG9jYWxseUluc3RhbGxlZEZhY2Vz
ID0gYWRvcHRQdHIobmV3IFZlY3RvcjxSZWZQdHI8Q1NTRm9udEZhY2U+ID4pOwogCiAgICAgICAg
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bUxvY2FsbHlJbnN0YWxsZWRGYWNl
czsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgIFJlZlB0cjxDU1NGb250RmFjZT4gbG9jYWxs
eUluc3RhbGxlZEZvbnRGYWNlID0gQ1NTRm9udEZhY2U6OmNyZWF0ZShzdGF0aWNfY2FzdDxGb250
VHJhaXRzTWFzaz4obG9jYWxseUluc3RhbGxlZEZvbnRzVHJhaXRzTWFza3NbaV0pLCB0cnVlKTsK
KyAgICAgICAgICAgICAgICAgICAgUmVmUHRyPENTU0ZvbnRGYWNlPiBsb2NhbGx5SW5zdGFsbGVk
Rm9udEZhY2UgPSBDU1NGb250RmFjZTo6Y3JlYXRlKHN0YXRpY19jYXN0PEZvbnRUcmFpdHNNYXNr
Pihsb2NhbGx5SW5zdGFsbGVkRm9udHNUcmFpdHNNYXNrc1tpXSksIDAsIHRydWUpOwogICAgICAg
ICAgICAgICAgICAgICBsb2NhbGx5SW5zdGFsbGVkRm9udEZhY2UtPmFkZFNvdXJjZShhZG9wdFB0
cihuZXcgQ1NTRm9udEZhY2VTb3VyY2UoZmFtaWx5TmFtZSkpKTsKICAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUKGxvY2FsbHlJbnN0YWxsZWRGb250RmFjZS0+aXNWYWxpZCgpKTsKICAgICAgICAg
ICAgICAgICAgICAgZmFtaWx5TG9jYWxseUluc3RhbGxlZEZhY2VzLT5hcHBlbmQobG9jYWxseUlu
c3RhbGxlZEZvbnRGYWNlKTsKQEAgLTQ4Nyw2ICs0OTUsMTIgQEAgUGFzc1JlZlB0cjxGb250RGF0
YT4gQ1NTRm9udFNlbGVjdG9yOjpnZXRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZv
bnREZXMKICAgICAgICAgcmV0dXJuIGZvbnREYXRhRm9yR2VuZXJpY0ZhbWlseShtX2RvY3VtZW50
LCBmb250RGVzY3JpcHRpb24sIGZhbWlseU5hbWUpOwogICAgIH0KIAorICAgIC8vIEFzayBhIGZh
Y2UgZm9yIGEgZm9udCBkYXRhLiBJZiBpdCBjYW5ub3QgcHJvZHVjZSBvbmUsIGl0IHdpbGwgZmFp
bCwgYW5kIHRoZSBPUyB3aWxsIHRha2Ugb3Zlci4KKyAgICByZXR1cm4gZ2V0Rm9udEZhY2UoZm9u
dERlc2NyaXB0aW9uLCBmYW1pbHksIGZhbWlseUZvbnRGYWNlcyktPmdldEZvbnREYXRhKGZvbnRE
ZXNjcmlwdGlvbik7Cit9CisKK0NTU1NlZ21lbnRlZEZvbnRGYWNlKiBDU1NGb250U2VsZWN0b3I6
OmdldEZvbnRGYWNlKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBjb25z
dCBTdHJpbmcmIGZhbWlseSwgVmVjdG9yPFJlZlB0cjxDU1NGb250RmFjZT4gPiogZmFtaWx5Rm9u
dEZhY2VzKQorewogICAgIE93blB0cjxIYXNoTWFwPHVuc2lnbmVkLCBSZWZQdHI8Q1NTU2VnbWVu
dGVkRm9udEZhY2U+ID4gPiYgc2VnbWVudGVkRm9udEZhY2VDYWNoZSA9IG1fZm9udHMuYWRkKGZh
bWlseSwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwogICAgIGlmICghc2VnbWVudGVkRm9udEZh
Y2VDYWNoZSkKICAgICAgICAgc2VnbWVudGVkRm9udEZhY2VDYWNoZSA9IGFkb3B0UHRyKG5ldyBI
YXNoTWFwPHVuc2lnbmVkLCBSZWZQdHI8Q1NTU2VnbWVudGVkRm9udEZhY2U+ID4pOwpAQCAtNTM0
LDkgKzU0OCw3IEBAIFBhc3NSZWZQdHI8Rm9udERhdGE+IENTU0ZvbnRTZWxlY3Rvcjo6Z2V0Rm9u
dERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzCiAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBudW1DYW5kaWRhdGVzOyArK2kpCiAgICAgICAgICAgICBmYWNlLT5hcHBl
bmRGb250RmFjZShjYW5kaWRhdGVGb250RmFjZXNbaV0pOwogICAgIH0KLQotICAgIC8vIFdlIGhh
dmUgYSBmYWNlLiAgQXNrIGl0IGZvciBhIGZvbnQgZGF0YS4gIElmIGl0IGNhbm5vdCBwcm9kdWNl
IG9uZSwgaXQgd2lsbCBmYWlsLCBhbmQgdGhlIE9TIHdpbGwgdGFrZSBvdmVyLgotICAgIHJldHVy
biBmYWNlLT5nZXRGb250RGF0YShmb250RGVzY3JpcHRpb24pOworICAgIHJldHVybiBmYWNlLmdl
dCgpOwogfQogCiB2b2lkIENTU0ZvbnRTZWxlY3Rvcjo6Y2xlYXJEb2N1bWVudCgpCkBAIC01OTUs
NCArNjA3LDI2IEBAIHZvaWQgQ1NTRm9udFNlbGVjdG9yOjpiZWdpbkxvYWRUaW1lckZpcmVkKFRp
bWVyPFdlYkNvcmU6OkNTU0ZvbnRTZWxlY3Rvcj4qKQogICAgICAgICBtX2RvY3VtZW50LT5mcmFt
ZSgpLT5sb2FkZXIoKS0+Y2hlY2tMb2FkQ29tcGxldGUoKTsKIH0KIAorI2lmIEVOQUJMRShGT05U
X0xPQURFUikKK2Jvb2wgQ1NTRm9udFNlbGVjdG9yOjpjaGVja0ZvbnQoY29uc3QgRm9udERlc2Ny
aXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5TmFtZSkK
K3sKKyAgICBTdHJpbmcgZmFtaWx5ID0gZmFtaWx5TmFtZS5zdHJpbmcoKTsKKyAgICBWZWN0b3I8
UmVmUHRyPENTU0ZvbnRGYWNlPiA+KiBmYW1pbHlGb250RmFjZXMgPSBtX2ZvbnRGYWNlcy5nZXQo
ZmFtaWx5KTsKKyAgICBpZiAoIWZhbWlseUZvbnRGYWNlcyB8fCBmYW1pbHlGb250RmFjZXMtPmlz
RW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGdldEZvbnRGYWNl
KGZvbnREZXNjcmlwdGlvbiwgZmFtaWx5LCBmYW1pbHlGb250RmFjZXMpLT5jaGVja0ZvbnQoKTsK
K30KKwordm9pZCBDU1NGb250U2VsZWN0b3I6OmxvYWRGb250KGNvbnN0IEZvbnREZXNjcmlwdGlv
biYgZm9udERlc2NyaXB0aW9uLCBjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseU5hbWUsIFBhc3NS
ZWZQdHI8Vm9pZENhbGxiYWNrPiBsb2FkQ2FsbGJhY2ssIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNr
PiBlcnJvckNhbGxiYWNrKQoreworICAgIFN0cmluZyBmYW1pbHkgPSBmYW1pbHlOYW1lLnN0cmlu
ZygpOworICAgIFZlY3RvcjxSZWZQdHI8Q1NTRm9udEZhY2U+ID4qIGZhbWlseUZvbnRGYWNlcyA9
IG1fZm9udEZhY2VzLmdldChmYW1pbHkpOworICAgIGlmICghZmFtaWx5Rm9udEZhY2VzIHx8IGZh
bWlseUZvbnRGYWNlcy0+aXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICByZXR1cm4g
Z2V0Rm9udEZhY2UoZm9udERlc2NyaXB0aW9uLCBmYW1pbHksIGZhbWlseUZvbnRGYWNlcyktPmxv
YWRGb250KGZvbnREZXNjcmlwdGlvbiwgbG9hZENhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTsKK30K
KyNlbmRpZgorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVj
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgKaW5kZXggZDAyMTAw
YzMyNjIwZjg4NTYxNTJkOWUwMTZlYmJlOGEyYmQwODAyZi4uODRlZTZmNTU0NmM4NDg0ODA3MjRi
YWFlNTg1N2Q3MzExMDIxNGVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Zv
bnRTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuaApA
QCAtNDQsNiArNDQsNyBAQCBjbGFzcyBDYWNoZWRGb250OwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFz
cyBGb250RGVzY3JpcHRpb247CiBjbGFzcyBTdHlsZVJ1bGVGb250RmFjZTsKK2NsYXNzIFZvaWRD
YWxsYmFjazsKIAogY2xhc3MgQ1NTRm9udFNlbGVjdG9yIDogcHVibGljIEZvbnRTZWxlY3RvciB7
CiBwdWJsaWM6CkBAIC01Niw2ICs1NywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB1bnNpZ25l
ZCB2ZXJzaW9uKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV92ZXJzaW9uOyB9CiAKICAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8Rm9udERhdGE+IGdldEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlw
dGlvbiYsIGNvbnN0IEF0b21pY1N0cmluZyYpOworI2lmIEVOQUJMRShGT05UX0xPQURFUikKKyAg
ICBib29sIGNoZWNrRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBBdG9taWNTdHJp
bmcmKTsKKyAgICB2b2lkIGxvYWRGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0
b21pY1N0cmluZyYsIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBsb2FkQ2FsbGJhY2ssIFBhc3NS
ZWZQdHI8Vm9pZENhbGxiYWNrPiBlcnJvckNhbGxiYWNrKTsKKyNlbmRpZgogCiAgICAgdm9pZCBj
bGVhckRvY3VtZW50KCk7CiAKQEAgLTc5LDYgKzg0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
c3BhdGNoSW52YWxpZGF0aW9uQ2FsbGJhY2tzKCk7CiAKICAgICB2b2lkIGJlZ2luTG9hZFRpbWVy
RmlyZWQoVGltZXI8Q1NTRm9udFNlbGVjdG9yPiopOworICAgIENTU1NlZ21lbnRlZEZvbnRGYWNl
KiBnZXRGb250RmFjZShjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBTdHJpbmcmLCBWZWN0
b3I8UmVmUHRyPENTU0ZvbnRGYWNlPiA+Kik7CiAKICAgICBEb2N1bWVudCogbV9kb2N1bWVudDsK
ICAgICBIYXNoTWFwPFN0cmluZywgT3duUHRyPFZlY3RvcjxSZWZQdHI8Q1NTRm9udEZhY2U+ID4g
PiwgQ2FzZUZvbGRpbmdIYXNoPiBtX2ZvbnRGYWNlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTZWdtZW50ZWRGb250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U2VnbWVudGVkRm9udEZhY2UuY3BwCmluZGV4IDllOTA4M2YyMDUzMzRmMDE2NGE2YWUwMjUwNTNh
MmE5ZDY4NzI1MjIuLmYwNjZiZDEyMjk4ZWIxODUyNDU1MTNmOGUxZTBiZDk2NDdlMjc5YTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWdtZW50ZWRGb250RmFjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmNwcApAQCAtMzMsNiAr
MzMsNyBAQAogI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIlNlZ21lbnRl
ZEZvbnREYXRhLmgiCiAjaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIKKyNpbmNsdWRlICJWb2lk
Q2FsbGJhY2suaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03Miw2ICs3MywyMSBAQCBi
b29sIENTU1NlZ21lbnRlZEZvbnRGYWNlOjppc1ZhbGlkKCkgY29uc3QKIHZvaWQgQ1NTU2VnbWVu
dGVkRm9udEZhY2U6OmZvbnRMb2FkZWQoQ1NTRm9udEZhY2UqKQogewogICAgIHBydW5lVGFibGUo
KTsKKworI2lmIEVOQUJMRShGT05UX0xPQURFUikKKyAgICBpZiAoIWlzTG9hZGluZygpKSB7Cisg
ICAgICAgIFZlY3RvcjxSZWZQdHI8Vm9pZENhbGxiYWNrPiA+IGNhbGxiYWNrczsKKyAgICAgICAg
aWYgKGNoZWNrRm9udCgpKSB7CisgICAgICAgICAgICBtX2xvYWRDYWxsYmFja3Muc3dhcChjYWxs
YmFja3MpOworICAgICAgICAgICAgbV9lcnJvckNhbGxiYWNrcy5jbGVhcigpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgbV9lcnJvckNhbGxiYWNrcy5zd2FwKGNhbGxiYWNrcyk7Cisg
ICAgICAgICAgICBtX2xvYWRDYWxsYmFja3MuY2xlYXIoKTsKKyAgICAgICAgfQorICAgICAgICBm
b3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgY2FsbGJhY2tzLnNpemUoKTsgKytpbmRleCkK
KyAgICAgICAgICAgIGNhbGxiYWNrc1tpbmRleF0tPmhhbmRsZUV2ZW50KCk7CisgICAgfQorI2Vu
ZGlmCiB9CiAKIHZvaWQgQ1NTU2VnbWVudGVkRm9udEZhY2U6OmFwcGVuZEZvbnRGYWNlKFBhc3NS
ZWZQdHI8Q1NTRm9udEZhY2U+IGZvbnRGYWNlKQpAQCAtMTM1LDQgKzE1MSw0MiBAQCBQYXNzUmVm
UHRyPEZvbnREYXRhPiBDU1NTZWdtZW50ZWRGb250RmFjZTo6Z2V0Rm9udERhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiBmbwogICAgIHJldHVybiAwOwogfQogCisjaWYgRU5BQkxFKEZPTlRfTE9B
REVSKQorYm9vbCBDU1NTZWdtZW50ZWRGb250RmFjZTo6aXNMb2FkaW5nKCkgY29uc3QKK3sKKyAg
ICB1bnNpZ25lZCBzaXplID0gbV9mb250RmFjZXMuc2l6ZSgpOworICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgaWYgKG1fZm9udEZhY2VzW2ldLT5sb2Fk
U3RhdGUoKSA9PSBDU1NGb250RmFjZTo6TG9hZGluZykKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQ1NTU2VnbWVudGVkRm9udEZh
Y2U6OmNoZWNrRm9udCgpIGNvbnN0Cit7CisgICAgdW5zaWduZWQgc2l6ZSA9IG1fZm9udEZhY2Vz
LnNpemUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAg
ICAgIGlmIChtX2ZvbnRGYWNlc1tpXS0+bG9hZFN0YXRlKCkgIT0gQ1NTRm9udEZhY2U6OkxvYWRl
ZCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9
CisKK3ZvaWQgQ1NTU2VnbWVudGVkRm9udEZhY2U6OmxvYWRGb250KGNvbnN0IEZvbnREZXNjcmlw
dGlvbiYgZm9udERlc2NyaXB0aW9uLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gbG9hZENhbGxi
YWNrLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK3sKKyAgICBnZXRG
b250RGF0YShmb250RGVzY3JpcHRpb24pOworICAgIGlmIChpc0xvYWRpbmcoKSkgeworICAgICAg
ICBpZiAobG9hZENhbGxiYWNrKQorICAgICAgICAgICAgbV9sb2FkQ2FsbGJhY2tzLmFwcGVuZChs
b2FkQ2FsbGJhY2spOworICAgICAgICBpZiAoZXJyb3JDYWxsYmFjaykKKyAgICAgICAgICAgIG1f
ZXJyb3JDYWxsYmFja3MuYXBwZW5kKGVycm9yQ2FsbGJhY2spOworICAgIH0gZWxzZSB7CisgICAg
ICAgIGlmIChjaGVja0ZvbnQoKSkKKyAgICAgICAgICAgIGxvYWRDYWxsYmFjay0+aGFuZGxlRXZl
bnQoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZl
bnQoKTsKKyAgICB9Cit9CisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VnbWVu
dGVkRm9udEZhY2UuaAppbmRleCBmMTgzZjQ5OTVlMDgyOWVlMTY4YTM4OTJkNmY5ZWYzZmFkZWUw
OGY3Li5jY2NhNzMxYTZkMWYzYzE1ZTEwYWNjNjRhMmNiODI4NWQ3NDFhNzNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VnbWVudGVkRm9udEZhY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU2VnbWVudGVkRm9udEZhY2UuaApAQCAtMzksNiArMzksNyBAQCBjbGFz
cyBDU1NGb250U2VsZWN0b3I7CiBjbGFzcyBGb250RGF0YTsKIGNsYXNzIEZvbnREZXNjcmlwdGlv
bjsKIGNsYXNzIFNlZ21lbnRlZEZvbnREYXRhOworY2xhc3MgVm9pZENhbGxiYWNrOwogCiBjbGFz
cyBDU1NTZWdtZW50ZWRGb250RmFjZSA6IHB1YmxpYyBSZWZDb3VudGVkPENTU1NlZ21lbnRlZEZv
bnRGYWNlPiB7CiBwdWJsaWM6CkBAIC01MiwxNiArNTMsMjcgQEAgcHVibGljOgogICAgIHZvaWQg
YXBwZW5kRm9udEZhY2UoUGFzc1JlZlB0cjxDU1NGb250RmFjZT4pOwogCiAgICAgUGFzc1JlZlB0
cjxGb250RGF0YT4gZ2V0Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJik7CisjaWYgRU5B
QkxFKEZPTlRfTE9BREVSKQorICAgIGJvb2wgY2hlY2tGb250KCkgY29uc3Q7CisgICAgdm9pZCBs
b2FkRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4g
bG9hZENhbGxiYWNrLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gZXJyb3JDYWxsYmFjayk7Cisj
ZW5kaWYKIAogcHJpdmF0ZToKICAgICBDU1NTZWdtZW50ZWRGb250RmFjZShDU1NGb250U2VsZWN0
b3IqKTsKIAogICAgIHZvaWQgcHJ1bmVUYWJsZSgpOwogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0
OworI2lmIEVOQUJMRShGT05UX0xPQURFUikKKyAgICBib29sIGlzTG9hZGluZygpIGNvbnN0Owor
I2VuZGlmCiAKICAgICBDU1NGb250U2VsZWN0b3IqIG1fZm9udFNlbGVjdG9yOwogICAgIEhhc2hN
YXA8dW5zaWduZWQsIFJlZlB0cjxTZWdtZW50ZWRGb250RGF0YT4gPiBtX2ZvbnREYXRhVGFibGU7
CiAgICAgVmVjdG9yPFJlZlB0cjxDU1NGb250RmFjZT4sIDE+IG1fZm9udEZhY2VzOworI2lmIEVO
QUJMRShGT05UX0xPQURFUikKKyAgICBWZWN0b3I8UmVmUHRyPFZvaWRDYWxsYmFjaz4gPiBtX2xv
YWRDYWxsYmFja3M7CisgICAgVmVjdG9yPFJlZlB0cjxWb2lkQ2FsbGJhY2s+ID4gbV9lcnJvckNh
bGxiYWNrczsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTc0NTNhZTRkMjdiMmUzOWVjNmFjMGI3OTY1MGQ5NDZjOThiNDViZQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5jcHAK
QEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRDU1NG
b250RmFjZUxvYWRFdmVudC5oIgorCisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50OjpXZWJLaXRDU1NGb250
RmFjZUxvYWRFdmVudCgpCit7Cit9CisKK1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50OjpXZWJL
aXRDU1NGb250RmFjZUxvYWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIFBhc3NSZWZQ
dHI8Q1NTRm9udEZhY2VSdWxlPiBmb250ZmFjZSwgUGFzc1JlZlB0cjxET01FcnJvcj4gZXJyb3Ip
CisgICAgOiBFdmVudCh0eXBlLCBmYWxzZSwgZmFsc2UpCisgICAgLCBtX2ZvbnRmYWNlKGZvbnRm
YWNlKQorICAgICwgbV9lcnJvcihlcnJvcikKK3sKK30KKworV2ViS2l0Q1NTRm9udEZhY2VMb2Fk
RXZlbnQ6OldlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgY29uc3QgV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnRJbml0JiBpbml0aWFsaXplcikKKyAg
ICA6IEV2ZW50KHR5cGUsIGluaXRpYWxpemVyKQorICAgICwgbV9mb250ZmFjZShpbml0aWFsaXpl
ci5mb250ZmFjZSkKKyAgICAsIG1fZXJyb3IoaW5pdGlhbGl6ZXIuZXJyb3IpCit7Cit9CisKK1dl
YktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50Ojp+V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQoKQor
eworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50Ojpp
bnRlcmZhY2VOYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZXZlbnROYW1lcygpLmludGVyZmFj
ZUZvcldlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRk9OVF9MT0FERVIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3YmZiMDMzM2U3
OTkyNTMxMzJlNTZhMzE2MmJhNzQ3OWYxMDFkMjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaApAQCAtMCwwICsxLDg3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmIEVOQUJMRShGT05UX0xPQURFUikKKworI2lmbmRlZiBXZWJLaXRDU1NGb250RmFjZUxvYWRF
dmVudF9oCisjZGVmaW5lIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50X2gKKworI2luY2x1ZGUg
IkNTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisjaW5jbHVkZSAiRE9N
RXJyb3IuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnRJbml0
IDogcHVibGljIEV2ZW50SW5pdCB7CisgICAgUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4gZm9udGZh
Y2U7CisgICAgUmVmUHRyPERPTUVycm9yPiBlcnJvcjsKK307CisKK2NsYXNzIFdlYktpdENTU0Zv
bnRGYWNlTG9hZEV2ZW50IDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudD4gY3JlYXRlKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZjxXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudD4obmV3IFdlYktp
dENTU0ZvbnRGYWNlTG9hZEV2ZW50KCkpOworICAgIH0KKworICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBjb25zdCBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudEluaXQmIGluaXRpYWxpemVyKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmPFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50
PihuZXcgV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIpKTsKKyAg
ICB9CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudD4g
Y3JlYXRlRm9yRm9udEZhY2VSdWxlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgUGFzc1JlZlB0
cjxDU1NGb250RmFjZVJ1bGU+IHJ1bGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWY8
V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ+KG5ldyBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVu
dCh0eXBlLCBydWxlLCAwKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+V2ViS2l0Q1NTRm9udEZh
Y2VMb2FkRXZlbnQoKTsKKworICAgIENTU0ZvbnRGYWNlUnVsZSogZm9udGZhY2UoKSBjb25zdCB7
IHJldHVybiBtX2ZvbnRmYWNlLmdldCgpOyB9CisgICAgRE9NRXJyb3IqIGVycm9yKCkgY29uc3Qg
eyByZXR1cm4gbV9lcnJvci5nZXQoKTsgfQorCisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJp
bmcmIGludGVyZmFjZU5hbWUoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBXZWJLaXRDU1NGb250
RmFjZUxvYWRFdmVudCgpOworICAgIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYsIFBhc3NSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiwgUGFzc1JlZlB0cjxET01F
cnJvcj4pOworICAgIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYsIGNvbnN0IFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50SW5pdCYpOworCisgICAgUmVmUHRy
PENTU0ZvbnRGYWNlUnVsZT4gbV9mb250ZmFjZTsKKyAgICBSZWZQdHI8RE9NRXJyb3I+IG1fZXJy
b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBXZWJLaXRDU1NG
b250RmFjZUxvYWRFdmVudF9oCisjZW5kaWYgLy8gRU5BQkxFKEZPTlRfTE9BREVSKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNmVjNjc1YWEzYTc4MDYyOGY3NGQxMTNlMWFiZDIwYmY2NmVlMWMxOQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5p
ZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1GT05UX0xPQURFUiwKKyAgICBK
U05vU3RhdGljVGFibGVzLAorICAgIENvbnN0cnVjdG9yVGVtcGxhdGU9RXZlbnQKK10gaW50ZXJm
YWNlIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50IDogRXZlbnQgeworICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIENTU0ZvbnRGYWNlUnVsZSBm
b250ZmFjZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENvbnN0
cnVjdG9yXSBET01FcnJvciBlcnJvcjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvV2ViS2l0Rm9udExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Rm9udExv
YWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJmZDM2YjZiZTRhM2EwMjZiOGUxM2VmNzY4MmM1ZDVjZjIw
NTg2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRGb250TG9h
ZGVyLmNwcApAQCAtMCwwICsxLDIzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisg
KiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisg
KiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViS2l0Rm9udExvYWRlci5oIgorCisjaWYgRU5BQkxFKEZPTlRfTE9B
REVSKQorCisjaW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCisjaW5jbHVkZSAiQ1NTUGFyc2Vy
LmgiCisjaW5jbHVkZSAiRGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5j
bHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0eVNldC5oIgorI2luY2x1
ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKKyNpbmNsdWRlICJXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVu
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBjb25zdCBpbnQgZGVmYXVsdEZv
bnRTaXplID0gMTA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZGVmYXVsdEZvbnRGYW1pbHkg
PSAic2Fucy1zZXJpZiI7CisKK1dlYktpdEZvbnRMb2FkZXI6OldlYktpdEZvbnRMb2FkZXIoRG9j
dW1lbnQqIGRvY3VtZW50KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50LCB0aGlzKQor
ICAgICwgbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICAsIG1fbG9hZGluZ0NvdW50KDApCit7Cisg
ICAgc3VzcGVuZElmTmVlZGVkKCk7Cit9CisKK1dlYktpdEZvbnRMb2FkZXI6On5XZWJLaXRGb250
TG9hZGVyKCkKK3sKK30KKworRXZlbnRUYXJnZXREYXRhKiBXZWJLaXRGb250TG9hZGVyOjpldmVu
dFRhcmdldERhdGEoKQoreworICAgIHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7Cit9CisKK0V2
ZW50VGFyZ2V0RGF0YSogV2ViS2l0Rm9udExvYWRlcjo6ZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkK
K3sKKyAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOworfQorCitjb25zdCBBdG9taWNTdHJp
bmcmIFdlYktpdEZvbnRMb2FkZXI6OmludGVyZmFjZU5hbWUoKSBjb25zdAoreworICAgIHJldHVy
biBldmVudE5hbWVzKCkuaW50ZXJmYWNlRm9yV2ViS2l0Rm9udExvYWRlcjsKK30KKworU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogV2ViS2l0Rm9udExvYWRlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOworfQorCit2b2lkIFdlYktpdEZvbnRMb2FkZXI6OmRpZExheW91dCgpCit7Cisg
ICAgZmlyZVBlbmRpbmdFdmVudHMoKTsKKyAgICBub3RpZnlGb250c1JlYWR5KCk7Cit9CisKK3Zv
aWQgV2ViS2l0Rm9udExvYWRlcjo6c2NoZWR1bGVFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVu
dCkKK3sKKyAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gbV9kb2N1bWVudC0+dmlldygpKSB7Cisg
ICAgICAgIGlmICh2aWV3LT5pc0luTGF5b3V0KCkpIHsKKyAgICAgICAgICAgIG1fcGVuZGluZ0V2
ZW50cy5hcHBlbmQoZXZlbnQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAg
fQorICAgIGZpcmVQZW5kaW5nRXZlbnRzKCk7CisgICAgZGlzcGF0Y2hFdmVudChldmVudCk7Cit9
CisKK3ZvaWQgV2ViS2l0Rm9udExvYWRlcjo6ZmlyZVBlbmRpbmdFdmVudHMoKQoreworICAgIGlm
IChtX3BlbmRpbmdFdmVudHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBWZWN0
b3I8UmVmUHRyPEV2ZW50PiA+IHBlbmRpbmdFdmVudHM7CisgICAgbV9wZW5kaW5nRXZlbnRzLnN3
YXAocGVuZGluZ0V2ZW50cyk7CisgICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IHBl
bmRpbmdFdmVudHMuc2l6ZSgpOyArK2luZGV4KQorICAgICAgICBkaXNwYXRjaEV2ZW50KHBlbmRp
bmdFdmVudHNbaW5kZXhdLnJlbGVhc2UoKSk7Cit9CisKK3ZvaWQgV2ViS2l0Rm9udExvYWRlcjo6
YmVnaW5Gb250TG9hZGluZyhDU1NGb250RmFjZVJ1bGUqIHJ1bGUpCit7CisgICAgKyttX2xvYWRp
bmdDb3VudDsKKyAgICBpZiAobV9sb2FkaW5nQ291bnQgPT0gMSkKKyAgICAgICAgc2NoZWR1bGVF
dmVudChXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudDo6Y3JlYXRlRm9yRm9udEZhY2VSdWxlKGV2
ZW50TmFtZXMoKS5sb2FkaW5nRXZlbnQsIHJ1bGUpKTsKKyAgICBzY2hlZHVsZUV2ZW50KFdlYktp
dENTU0ZvbnRGYWNlTG9hZEV2ZW50OjpjcmVhdGVGb3JGb250RmFjZVJ1bGUoZXZlbnROYW1lcygp
LmxvYWRzdGFydEV2ZW50LCBydWxlKSk7Cit9CisKK3ZvaWQgV2ViS2l0Rm9udExvYWRlcjo6Zm9u
dExvYWRlZChDU1NGb250RmFjZVJ1bGUqIHJ1bGUpCit7CisgICAgQVNTRVJUKG1fbG9hZGluZ0Nv
dW50ID4gMCk7CisgICAgc2NoZWR1bGVFdmVudChXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudDo6
Y3JlYXRlRm9yRm9udEZhY2VSdWxlKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQsIHJ1bGUpKTsKKwor
ICAgIC0tbV9sb2FkaW5nQ291bnQ7CisgICAgaWYgKCFtX2xvYWRpbmdDb3VudCkKKyAgICAgICAg
c2NoZWR1bGVFdmVudChXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudDo6Y3JlYXRlRm9yRm9udEZh
Y2VSdWxlKGV2ZW50TmFtZXMoKS5sb2FkaW5nZG9uZUV2ZW50LCBydWxlKSk7Cit9CisKK3ZvaWQg
V2ViS2l0Rm9udExvYWRlcjo6bG9hZEVycm9yKENTU0ZvbnRGYWNlUnVsZSogcnVsZSkKK3sKKyAg
ICBBU1NFUlQobV9sb2FkaW5nQ291bnQgPiAwKTsKKyAgICBzY2hlZHVsZUV2ZW50KFdlYktpdENT
U0ZvbnRGYWNlTG9hZEV2ZW50OjpjcmVhdGVGb3JGb250RmFjZVJ1bGUoZXZlbnROYW1lcygpLmVy
cm9yRXZlbnQsIHJ1bGUpKTsKKyAgICAtLW1fbG9hZGluZ0NvdW50OworICAgIGlmICghbV9sb2Fk
aW5nQ291bnQpCisgICAgICAgIHNjaGVkdWxlRXZlbnQoV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZl
bnQ6OmNyZWF0ZUZvckZvbnRGYWNlUnVsZShldmVudE5hbWVzKCkubG9hZGluZ2RvbmVFdmVudCwg
cnVsZSkpOworfQorCit2b2lkIFdlYktpdEZvbnRMb2FkZXI6Om5vdGlmeVdoZW5Gb250c1JlYWR5
KFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBjYWxsYmFjaykKK3sKKyAgICBtX2NhbGxiYWNrcy5h
cHBlbmQoY2FsbGJhY2spOworICAgIGlmIChsb2FkaW5nKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fZG9jdW1lbnQtPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICBGcmFtZVZpZXcqIHZp
ZXcgPSBtX2RvY3VtZW50LT52aWV3KCk7CisgICAgaWYgKCF2aWV3IHx8ICEodmlldy0+bGF5b3V0
UGVuZGluZygpIHx8IHZpZXctPm5lZWRzTGF5b3V0KCkpKQorICAgICAgICBub3RpZnlGb250c1Jl
YWR5KCk7Cit9CisKK3ZvaWQgV2ViS2l0Rm9udExvYWRlcjo6bm90aWZ5Rm9udHNSZWFkeSgpCit7
CisgICAgaWYgKGxvYWRpbmcoKSB8fCBtX2NhbGxiYWNrcy5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybjsKKyAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gbV9kb2N1bWVudC0+dmlldygpKSB7Cisg
ICAgICAgIGlmICh2aWV3LT5pc0luTGF5b3V0KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgVmVjdG9yPFJlZlB0cjxWb2lkQ2FsbGJhY2s+ID4gY2FsbGJhY2tzOworICAgIG1f
Y2FsbGJhY2tzLnN3YXAoY2FsbGJhY2tzKTsKKyAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGlu
ZGV4IDwgY2FsbGJhY2tzLnNpemUoKTsgKytpbmRleCkKKyAgICAgICAgY2FsbGJhY2tzW2luZGV4
XS0+aGFuZGxlRXZlbnQoKTsKK30KKwordm9pZCBXZWJLaXRGb250TG9hZGVyOjpsb2FkRm9udChj
b25zdCBEaWN0aW9uYXJ5JiBwYXJhbXMpCit7CisgICAgU3RyaW5nIGZvbnRTdHJpbmc7CisgICAg
UmVmUHRyPFZvaWRDYWxsYmFjaz4gb25zdWNjZXNzOworICAgIFJlZlB0cjxWb2lkQ2FsbGJhY2s+
IG9uZXJyb3I7CisgICAgaWYgKCFwYXJhbXMuZ2V0KCJmb250IiwgZm9udFN0cmluZykpCisgICAg
ICAgIHJldHVybjsKKyAgICBwYXJhbXMuZ2V0KCJvbnN1Y2Nlc3MiLCBvbnN1Y2Nlc3MpOworICAg
IHBhcmFtcy5nZXQoIm9uZXJyb3IiLCBvbmVycm9yKTsKKyAgICBGb250IGZvbnQ7CisgICAgaWYg
KCFyZXNvbHZlRm9udFN0eWxlKGZvbnRTdHJpbmcsIGZvbnQpKQorICAgICAgICByZXR1cm47Cisg
ICAgbV9kb2N1bWVudC0+c3R5bGVSZXNvbHZlcigpLT5mb250U2VsZWN0b3IoKS0+bG9hZEZvbnQo
Zm9udC5mb250RGVzY3JpcHRpb24oKSwgZm9udC5mYW1pbHkoKS5mYW1pbHkoKSwgb25zdWNjZXNz
LCBvbmVycm9yKTsKK30KKworYm9vbCBXZWJLaXRGb250TG9hZGVyOjpjaGVja0ZvbnQoY29uc3Qg
U3RyaW5nJiBmb250U3RyaW5nLCBjb25zdCBTdHJpbmcmKQoreworICAgIEZvbnQgZm9udDsKKyAg
ICBpZiAoIXJlc29sdmVGb250U3R5bGUoZm9udFN0cmluZywgZm9udCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXR1cm4gbV9kb2N1bWVudC0+c3R5bGVSZXNvbHZlcigpLT5mb250U2Vs
ZWN0b3IoKS0+Y2hlY2tGb250KGZvbnQuZm9udERlc2NyaXB0aW9uKCksIGZvbnQuZmFtaWx5KCku
ZmFtaWx5KCkpOworfQorCitib29sIFdlYktpdEZvbnRMb2FkZXI6OnJlc29sdmVGb250U3R5bGUo
Y29uc3QgU3RyaW5nJiBmb250U3RyaW5nLCBGb250JiBmb250KQoreworICAgIC8vIEludGVycHJl
dCBmb250U3RyaW5nIGluIHRoZSBzYW1lIHdheSBhcyB0aGUgJ2ZvbnQnIGF0dHJpYnV0ZSBvZiBD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuCisgICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IHBh
cnNlZFN0eWxlID0gU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CisgICAgQ1NTUGFyc2VyOjpw
YXJzZVZhbHVlKHBhcnNlZFN0eWxlLmdldCgpLCBDU1NQcm9wZXJ0eUZvbnQsIGZvbnRTdHJpbmcs
IHRydWUsIENTU1N0cmljdE1vZGUsIDApOworICAgIGlmIChwYXJzZWRTdHlsZS0+aXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgU3RyaW5nIGZvbnRWYWx1ZSA9IHBh
cnNlZFN0eWxlLT5nZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5Rm9udCk7CisgICAgaWYgKGZv
bnRWYWx1ZSA9PSAiaW5oZXJpdCIgfHwgZm9udFZhbHVlID09ICJpbml0aWFsIikKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZSA9IFJlbmRlclN0
eWxlOjpjcmVhdGUoKTsKKworICAgIEZvbnRGYW1pbHkgZm9udEZhbWlseTsKKyAgICBmb250RmFt
aWx5LnNldEZhbWlseShkZWZhdWx0Rm9udEZhbWlseSk7CisKKyAgICBGb250RGVzY3JpcHRpb24g
ZGVmYXVsdEZvbnREZXNjcmlwdGlvbjsKKyAgICBkZWZhdWx0Rm9udERlc2NyaXB0aW9uLnNldEZh
bWlseShmb250RmFtaWx5KTsKKyAgICBkZWZhdWx0Rm9udERlc2NyaXB0aW9uLnNldFNwZWNpZmll
ZFNpemUoZGVmYXVsdEZvbnRTaXplKTsKKyAgICBkZWZhdWx0Rm9udERlc2NyaXB0aW9uLnNldENv
bXB1dGVkU2l6ZShkZWZhdWx0Rm9udFNpemUpOworCisgICAgc3R5bGUtPnNldEZvbnREZXNjcmlw
dGlvbihkZWZhdWx0Rm9udERlc2NyaXB0aW9uKTsKKworICAgIHN0eWxlLT5mb250KCkudXBkYXRl
KHN0eWxlLT5mb250KCkuZm9udFNlbGVjdG9yKCkpOworCisgICAgLy8gTm93IG1hcCB0aGUgZm9u
dCBwcm9wZXJ0eSBsb25naGFuZHMgaW50byB0aGUgc3R5bGUuCisgICAgU3R5bGVSZXNvbHZlciog
c3R5bGVSZXNvbHZlciA9IG1fZG9jdW1lbnQtPnN0eWxlUmVzb2x2ZXIoKTsKKyAgICBzdHlsZVJl
c29sdmVyLT5hcHBseVByb3BlcnR5VG9TdHlsZShDU1NQcm9wZXJ0eUZvbnRGYW1pbHksIHBhcnNl
ZFN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5Rm9udEZhbWlseSkuZ2V0KCks
IHN0eWxlLmdldCgpKTsKKyAgICBzdHlsZVJlc29sdmVyLT5hcHBseVByb3BlcnR5VG9DdXJyZW50
U3R5bGUoQ1NTUHJvcGVydHlGb250U3R5bGUsIHBhcnNlZFN0eWxlLT5nZXRQcm9wZXJ0eUNTU1Zh
bHVlKENTU1Byb3BlcnR5Rm9udFN0eWxlKS5nZXQoKSk7CisgICAgc3R5bGVSZXNvbHZlci0+YXBw
bHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKENTU1Byb3BlcnR5Rm9udFZhcmlhbnQsIHBhcnNlZFN0
eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5Rm9udFZhcmlhbnQpLmdldCgpKTsK
KyAgICBzdHlsZVJlc29sdmVyLT5hcHBseVByb3BlcnR5VG9DdXJyZW50U3R5bGUoQ1NTUHJvcGVy
dHlGb250V2VpZ2h0LCBwYXJzZWRTdHlsZS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0
eUZvbnRXZWlnaHQpLmdldCgpKTsKKworICAgIC8vIEFzIGRlc2NyaWJlZCBpbiBCVUc2NjI5MSwg
c2V0dGluZyBmb250LXNpemUgYW5kIGxpbmUtaGVpZ2h0IG9uIGEgZm9udCBtYXkgZW50YWlsIGEg
Q1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVMZW5ndGhEb3VibGUgY2FsbCwKKyAgICAvLyB3aGlj
aCBhc3N1bWVzIHRoZSBmb250TWV0cmljcyBhcmUgYXZhaWxhYmxlIGZvciB0aGUgYWZmZWN0ZWQg
Zm9udCwgb3RoZXJ3aXNlIGEgY3Jhc2ggb2NjdXJzIChzZWUgaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9jaGFuZ2VzZXQvOTYxMjIpLgorICAgIC8vIFRoZSB1cGRhdGVGb250KCkgY2FsbHMgYmVsb3cg
dXBkYXRlIHRoZSBmb250TWV0cmljcyBhbmQgZW5zdXJlIHRoZSBwcm9wZXIgc2V0dGluZyBvZiBm
b250LXNpemUgYW5kIGxpbmUtaGVpZ2h0LgorICAgIHN0eWxlUmVzb2x2ZXItPnVwZGF0ZUZvbnQo
KTsKKyAgICBzdHlsZVJlc29sdmVyLT5hcHBseVByb3BlcnR5VG9DdXJyZW50U3R5bGUoQ1NTUHJv
cGVydHlGb250U2l6ZSwgcGFyc2VkU3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVy
dHlGb250U2l6ZSkuZ2V0KCkpOworICAgIHN0eWxlUmVzb2x2ZXItPnVwZGF0ZUZvbnQoKTsKKyAg
ICBzdHlsZVJlc29sdmVyLT5hcHBseVByb3BlcnR5VG9DdXJyZW50U3R5bGUoQ1NTUHJvcGVydHlM
aW5lSGVpZ2h0LCBwYXJzZWRTdHlsZS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUxp
bmVIZWlnaHQpLmdldCgpKTsKKworICAgIGZvbnQgPSBzdHlsZS0+Zm9udCgpOworICAgIGZvbnQu
dXBkYXRlKHN0eWxlUmVzb2x2ZXItPmZvbnRTZWxlY3RvcigpKTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEZPTlRfTE9B
REVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdEZvbnRMb2FkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRGb250TG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmRhODE1
YzA2ZWI4NjgzMDE2ZTc1YzY2ZjAxMDI3Y2FlMjk1MjJiYgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRGb250TG9hZGVyLmgKQEAgLTAsMCArMSwxMDUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICisgKiBEQU1B
R0UuCisgKi8KKworI2lmIEVOQUJMRShGT05UX0xPQURFUikKKworI2lmbmRlZiBXZWJLaXRGb250
TG9hZGVyX2gKKyNkZWZpbmUgV2ViS2l0Rm9udExvYWRlcl9oCisKKyNpbmNsdWRlICJBY3RpdmVE
T01PYmplY3QuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiVm9pZENhbGxiYWNr
LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBDYWNoZWRGb250OworY2xhc3MgQ1NTRm9udEZhY2VSdWxlOworY2xhc3MgRGljdGlvbmFy
eTsKK2NsYXNzIERvY3VtZW50OworY2xhc3MgRm9udDsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ7CisKK2NsYXNzIFdlYktpdEZvbnRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJL
aXRGb250TG9hZGVyPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50VGFyZ2V0
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRGb250TG9hZGVyPiBjcmVh
dGUoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmPFdl
YktpdEZvbnRMb2FkZXI+KG5ldyBXZWJLaXRGb250TG9hZGVyKGRvY3VtZW50KSk7CisgICAgfQor
ICAgIHZpcnR1YWwgfldlYktpdEZvbnRMb2FkZXIoKTsKKworICAgIERFRklORV9BVFRSSUJVVEVf
RVZFTlRfTElTVEVORVIobG9hZGluZyk7CisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNU
RU5FUihsb2FkaW5nZG9uZSk7CisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihs
b2Fkc3RhcnQpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIobG9hZCk7Cisg
ICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihlcnJvcik7CisKKyAgICBib29sIGNo
ZWNrRm9udChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGxvYWRGb250
KGNvbnN0IERpY3Rpb25hcnkmKTsKKyAgICB2b2lkIG5vdGlmeVdoZW5Gb250c1JlYWR5KFBhc3NS
ZWZQdHI8Vm9pZENhbGxiYWNrPik7CisKKyAgICBib29sIGxvYWRpbmcoKSBjb25zdCB7IHJldHVy
biBtX2xvYWRpbmdDb3VudCA+IDA7IH0KKworICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0OworICAgIHZpcnR1YWwgY29uc3Qg
QXRvbWljU3RyaW5nJiBpbnRlcmZhY2VOYW1lKCkgY29uc3Q7CisKKyAgICB1c2luZyBSZWZDb3Vu
dGVkPFdlYktpdEZvbnRMb2FkZXI+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDxXZWJLaXRG
b250TG9hZGVyPjo6ZGVyZWY7CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQoKSB7IHJldHVybiBt
X2RvY3VtZW50OyB9CisKKyAgICB2b2lkIGRpZExheW91dCgpOworICAgIHZvaWQgYmVnaW5Gb250
TG9hZGluZyhDU1NGb250RmFjZVJ1bGUqKTsKKyAgICB2b2lkIGZvbnRMb2FkZWQoQ1NTRm9udEZh
Y2VSdWxlKik7CisgICAgdm9pZCBsb2FkRXJyb3IoQ1NTRm9udEZhY2VSdWxlKik7CisgICAgdm9p
ZCBub3RpZnlGb250c1JlYWR5KCk7CisKK3ByaXZhdGU6CisgICAgV2ViS2l0Rm9udExvYWRlcihE
b2N1bWVudCopOworCisgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgeyByZWYoKTsg
fQorICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgeyBkZXJlZigpOyB9CisgICAg
dmlydHVhbCBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YSgpOworICAgIHZpcnR1YWwg
RXZlbnRUYXJnZXREYXRhKiBlbnN1cmVFdmVudFRhcmdldERhdGEoKTsKKworICAgIHZvaWQgc2No
ZWR1bGVFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CisgICAgdm9pZCBmaXJlUGVuZGluZ0V2ZW50
cygpOworICAgIGJvb2wgcmVzb2x2ZUZvbnRTdHlsZShjb25zdCBTdHJpbmcmLCBGb250Jik7CisK
KyAgICBEb2N1bWVudCogbV9kb2N1bWVudDsKKyAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRh
cmdldERhdGE7CisgICAgdW5zaWduZWQgbV9sb2FkaW5nQ291bnQ7CisgICAgVmVjdG9yPFJlZlB0
cjxFdmVudD4gPiBtX3BlbmRpbmdFdmVudHM7CisgICAgVmVjdG9yPFJlZlB0cjxWb2lkQ2FsbGJh
Y2s+ID4gbV9jYWxsYmFja3M7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBXZWJLaXRGb250TG9hZGVyX2gKKyNlbmRpZiAvLyBFTkFCTEUoRk9OVF9MT0FERVIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Rm9udExvYWRlci5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvV2ViS2l0Rm9udExvYWRlci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGFkN2EzMzQw
ODc5MTg2Nzk4Y2M5ODlkNzlmODFmYjM4N2MxMjMzZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9XZWJLaXRGb250TG9hZGVyLmlkbApAQCAtMCwwICsxLDU3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAg
IENvbmRpdGlvbmFsPUZPTlRfTE9BREVSLAorICAgIEFjdGl2ZURPTU9iamVjdCwKKyAgICBFdmVu
dFRhcmdldCwKKyAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxEb2N1bWVudCwKK10gaW50ZXJm
YWNlIFdlYktpdEZvbnRMb2FkZXIgeworCisgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25s
b2FkaW5nOworICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZGluZ2RvbmU7CisgICAg
YXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25sb2Fkc3RhcnQ7CisgICAgYXR0cmlidXRlIEV2ZW50
TGlzdGVuZXIgb25sb2FkOworICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZXJyb3I7CisK
KyAgICBib29sZWFuIGNoZWNrRm9udChpbiBET01TdHJpbmcgZm9udCwgaW4gW09wdGlvbmFsPURl
ZmF1bHRJc051bGxTdHJpbmddIERPTVN0cmluZyB0ZXh0KTsKKyAgICB2b2lkIGxvYWRGb250KGlu
IERpY3Rpb25hcnkgcGFyYW1zKTsKKyAgICB2b2lkIG5vdGlmeVdoZW5Gb250c1JlYWR5KGluIFtD
YWxsYmFja10gVm9pZENhbGxiYWNrIGNhbGxiYWNrKTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
Ym9vbGVhbiBsb2FkaW5nOworCisgICAgdm9pZCBhZGRFdmVudExpc3RlbmVyKGluIERPTVN0cmlu
ZyB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3Rl
bmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNl
Q2FwdHVyZSk7CisgICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVy
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNl
Q2FwdHVyZSk7CisgICAgYm9vbGVhbiBkaXNwYXRjaEV2ZW50KGluIEV2ZW50IGV2dCkKKyAgICAg
ICAgcmFpc2VzKEV2ZW50RXhjZXB0aW9uKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCA4NWU4ODUyYmM3ZmEwODZhZTRjMTAxMzY3NDdmOTM4N2I2NzI5Y2U2Li4wYTlhODU2N2YyZWI3
ODI0YjEwODJkM2EzYzNjNmQxNTc5YTg4YmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAg
LTE2Miw2ICsxNjIsNyBAQAogI2luY2x1ZGUgIlVzZXJDb250ZW50VVJMUGF0dGVybi5oIgogI2lu
Y2x1ZGUgIlZpc2l0ZWRMaW5rU3RhdGUuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1
bWVudGF0aW9uLmgiCisjaW5jbHVkZSAiV2ViS2l0Rm9udExvYWRlci5oIgogI2luY2x1ZGUgIldl
YktpdE5hbWVkRmxvdy5oIgogI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVk
ZSAiWE1MSHR0cFJlcXVlc3QuaCIKQEAgLTQ3OCw2ICs0NzksOSBAQCBEb2N1bWVudDo6RG9jdW1l
bnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hU
TUwpCiAjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCiAgICAgLCBtX3RlbXBsYXRlRG9jdW1l
bnRIb3N0KDApCiAjZW5kaWYKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisgICAgLCBtX3dlYmtp
dEZvbnRsb2FkZXIoMCkKKyNlbmRpZgogewogICAgIHNldFRyZWVTY29wZSh0aGlzKTsKIApAQCAt
NjA0NCw0ICs2MDQ4LDEzIEBAIERvY3VtZW50KiBEb2N1bWVudDo6ZW5zdXJlVGVtcGxhdGVEb2N1
bWVudCgpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGT05UX0xPQURFUikKK1Bhc3NSZWZQdHI8
V2ViS2l0Rm9udExvYWRlcj4gRG9jdW1lbnQ6OndlYmtpdEZvbnRsb2FkZXIoKQoreworICAgIGlm
ICghbV93ZWJraXRGb250bG9hZGVyKQorICAgICAgICBtX3dlYmtpdEZvbnRsb2FkZXIgPSBXZWJL
aXRGb250TG9hZGVyOjpjcmVhdGUodGhpcyk7CisgICAgcmV0dXJuIG1fd2Via2l0Rm9udGxvYWRl
cjsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CmluZGV4IGUxYmI4Mzc5ZjdjMjNjNGZlMTk5YTRjMjYxYzk4YTAxZmZlNjg5OTAuLjI3OTMxMzAx
MGMzMDY4ZWQzNTIzYjczMTg0MjM3ODBhODFiMjc5ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBA
IC0xODYsNiArMTg2LDEwIEBAIGNsYXNzIFRleHRBdXRvc2l6ZXI7CiBjbGFzcyBET01TZWN1cml0
eVBvbGljeTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorY2xhc3MgV2ViS2l0
Rm9udExvYWRlcjsKKyNlbmRpZgorCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCiBlbnVt
IFBhZ2VzaG93RXZlbnRQZXJzaXN0ZW5jZSB7CkBAIC0xMjAxLDYgKzEyMDUsMTAgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKCkgY29uc3Qg
T1ZFUlJJREU7CiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisgICAgUGFzc1JlZlB0cjxXZWJL
aXRGb250TG9hZGVyPiB3ZWJraXRGb250bG9hZGVyKCk7CisjZW5kaWYKKwogcHJvdGVjdGVkOgog
ICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgS1VSTCYsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hU
TUwpOwogCkBAIC0xNTY0LDYgKzE1NzIsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RG9jdW1l
bnQ+IG1fdGVtcGxhdGVEb2N1bWVudDsKICAgICBEb2N1bWVudCogbV90ZW1wbGF0ZURvY3VtZW50
SG9zdDsgLy8gTWFudWFsbHkgbWFuYWdlZCB3ZWFrcmVmIChiYWNrcG9pbnRlciBmcm9tIG1fdGVt
cGxhdGVEb2N1bWVudCkuCiAjZW5kaWYKKworI2lmIEVOQUJMRShGT05UX0xPQURFUikKKyAgICBS
ZWZQdHI8V2ViS2l0Rm9udExvYWRlcj4gbV93ZWJraXRGb250bG9hZGVyOworI2VuZGlmCiB9Owog
CiBpbmxpbmUgdm9pZCBEb2N1bWVudDo6bm90aWZ5UmVtb3ZlUGVuZGluZ1NoZWV0SWZOZWVkZWQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKaW5kZXggNGQ0ZTlmYjQ5NTI2YTg4NTExYThjNzQyZjFi
YjY0NzQwYjczOTFhYy4uNTZhZmQwM2Q0NTVhZDc4YjgxZWExODc4ODFiNDNhYWE3NmIwN2IzZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCkBAIC0yNjIsNiArMjYyLDEwIEBACiAKICAgICBbQ29u
ZGl0aW9uYWw9Q1NTX1JFR0lPTlMsIFY4RW5hYmxlZEF0UnVudGltZT1jc3NSZWdpb25zXSBET01O
YW1lZEZsb3dDb2xsZWN0aW9uIHdlYmtpdEdldE5hbWVkRmxvd3MoKTsKIAorI2lmIGRlZmluZWQo
TEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAorICAgIFtDb25kaXRp
b25hbD1GT05UX0xPQURFUl0gcmVhZG9ubHkgYXR0cmlidXRlIFdlYktpdEZvbnRMb2FkZXIgd2Vi
a2l0Rm9udGxvYWRlcjsKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZF
X0MpIHx8ICFMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAgIC8vIEV2ZW50IGhhbmRsZXIgRE9NIGF0
dHJpYnV0ZXMKICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25h
Ym9ydDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCmluZGV4IDNmMGU3YTI3YjRmODkyZDI1ZDRkNTcx
MmVmOTU0OGEyYWIzMTgxODYuLjMwMWYwYWU5ODc2ZjRmNzhjOTZiNGY2NThiY2NiNzJjODM1MzM2
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApAQCAtODQsNiArODQsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgbWFjcm8oa2V5dXApIFwKICAgICBtYWNybyhsZXZlbGNoYW5nZSkgXAog
ICAgIG1hY3JvKGxvYWQpIFwKKyAgICBtYWNybyhsb2FkaW5nKSBcCisgICAgbWFjcm8obG9hZGlu
Z2RvbmUpIFwKICAgICBtYWNybyhsb2Fkc3RhcnQpIFwKICAgICBtYWNybyhtZXNzYWdlKSBcCiAg
ICAgbWFjcm8obW91c2Vkb3duKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCmluZGV4IGMyNjkz
ZGE5NmZhZWQ5ODdlNDM3NzMxYjVmYzc2MTEyZmY3NDNlNGQuLmY1NTlmZjkzZjNmZmNlMmEyNWI3
ODM1Yjg2ZGNkMGM4NjIyZmI2OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dE5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCkBAIC0yNSw2
ICsyNSw3IEBAIFRyYW5zaXRpb25FdmVudAogVUlFdmVudAogVUlFdmVudHMgaW50ZXJmYWNlTmFt
ZT1VSUV2ZW50CiBXZWJLaXRBbmltYXRpb25FdmVudAorV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZl
bnQgY29uZGl0aW9uYWw9Rk9OVF9MT0FERVIKIFdlYktpdFRyYW5zaXRpb25FdmVudAogV2hlZWxF
dmVudAogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
VGFyZ2V0RmFjdG9yeS5pbgppbmRleCAyNDM2ODVhNzg5MTJkYjQ3ODY5NDE1NDgxYzc4ODVhOGIy
NjA3YmY2Li5mNDE5Yjk3ZDJjYzc2NGIwYTQzMGRiZWU2NWI4ZmRhMTdjYzU0OGQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KQEAgLTM0LDYgKzM0LDcgQEAgU1ZH
RWxlbWVudEluc3RhbmNlIGNvbmRpdGlvbmFsPVNWRwogVGV4dFRyYWNrIGNvbmRpdGlvbmFsPVZJ
REVPX1RSQUNLCiBUZXh0VHJhY2tDdWUgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sKIFRleHRUcmFj
a0xpc3QgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sKK1dlYktpdEZvbnRMb2FkZXIgY29uZGl0aW9u
YWw9Rk9OVF9MT0FERVIKIFdlYktpdE5hbWVkRmxvdwogV2ViU29ja2V0IGNvbmRpdGlvbmFsPVdF
Ql9TT0NLRVRTCiBXb3JrZXIgY29uZGl0aW9uYWw9V09SS0VSUwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCmluZGV4IDdjYWJmMmQ3YjYxYzEwZDRhNGM3MzFiNzIzMDgyMDIwNTY0MDBjNWIuLjE0
MmE1NGRkMjc3OTliNjBkNTA5NTE2N2NkYTBkNDEwZDNiZjYyMmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKQEAgLTY5LDYgKzY5LDcgQEAKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgi
CiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlRleHRTdHJlYW0u
aCIKKyNpbmNsdWRlICJXZWJLaXRGb250TG9hZGVyLmgiCiAKICNpbmNsdWRlIDx3dGYvQ3VycmVu
dFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CkBAIC0yNTUwLDYgKzI1
NTEsOSBAQCB2b2lkIEZyYW1lVmlldzo6cGVyZm9ybVBvc3RMYXlvdXRUYXNrcygpCiAgICAgfQog
CiAgICAgbV9mcmFtZS0+bG9hZGVyKCktPmRpZExheW91dChtaWxlc3RvbmVzQWNoaWV2ZWQpOwor
I2lmIEVOQUJMRShGT05UX0xPQURFUikKKyAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT53ZWJraXRG
b250bG9hZGVyKCktPmRpZExheW91dCgpOworI2VuZGlmCiAgICAgCiAgICAgLy8gRklYTUU6IFdl
IHNob3VsZCBjb25zaWRlciBhZGRpbmcgRGlkTGF5b3V0IGFzIGEgTGF5b3V0TWlsZXN0b25lLiBU
aGF0IHdvdWxkIGxldCB1cyBtZXJnZSB0aGlzCiAgICAgLy8gd2l0aCBkaWRMYXlvdXQoTGF5b3V0
TWlsZXN0b25lcykuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVz
Lmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKaW5kZXggNjI5NTEw
YWRiOWVmMmZjNDIwOGY1N2IxZmE1ODQxOGIxODk0NGQzZi4uOWRmZjkwYzVkNWIyNzgzOTBhNTA4
N2M3NDFiNDhjZWIzNDdmZjAyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9m
ZWF0dXJlcy5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQpA
QCAtNjcsNiArNjcsNyBAQAogICAgICAgJ0VOQUJMRV9FTkNSWVBURURfTUVESUE9MScsCiAgICAg
ICAnRU5BQkxFX0ZJTEVfU1lTVEVNPTEnLAogICAgICAgJ0VOQUJMRV9GSUxURVJTPTEnLAorICAg
ICAgJ0VOQUJMRV9GT05UX0xPQURFUj0xJywKICAgICAgICdFTkFCTEVfRlVMTFNDUkVFTl9BUEk9
MScsCiAgICAgICAnRU5BQkxFX0dBTUVQQUQ9MScsCiAgICAgICAnRU5BQkxFX0dFT0xPQ0FUSU9O
PTEnLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDJkZWI4NjdhZmJhZGQyYzNhNTI1YWUzZTZiZGM2YWI0Y2UyNTk1Y2MuLjZl
Njk3ZjdjMGJmYzFjYzYwNWMwMTA0ZjZiMTUwMTA2NjBlYTY3MWYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MiBAQAorMjAxMy0wMi0wNSAgS3VuaWhpa28gU2FrYW1vdG8gIDxrc2FrYW1vdG9AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIEltcGxlbWVudCBGb250TG9hZGVyIGludGVyZmFjZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgzOTUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdHMgZm9yIGRvY3Vt
ZW50LndlYmtpdEZvbnRsb2FkZXIuIFNpbmNlIHRoZSBmZWF0dXJlIGlzIGN1cnJlbnRseSBlbmFi
bGVkCisgICAgICAgIG9ubHkgZm9yIGNocm9taXVtLCB0aGUgdGVzdHMgYXJlIGV4cGVjdGVkIHRv
IGZhaWwgb24gdGhlIG90aGVyIHBvcnRzLgorCisgICAgICAgICogZmFzdC9jc3MvZm9udGxvYWRl
ci1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3Nz
L2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3IuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9j
c3MvZm9udGxvYWRlci1ldmVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2Nzcy9mb250bG9hZGVyLWV2ZW50cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9m
b250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1kb3dubG9h
ZC1lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9mb250bG9hZGVyLW11bHRp
cGxlLWZhY2VzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvZm9udGxv
YWRlci1tdWx0aXBsZS1mYWNlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9mb250
bG9hZGVyLW5vdGlmeS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2Zv
bnRsb2FkZXItbm90aWZ5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZm9u
dC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJmb250L2ZvbnRsb2FkZXItbG9hZGluZy1hdHRyaWJ1dGUuaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRl
ci1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBs
ZS1mYWNlcy1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250
bG9hZGVyLW5vdGlmeS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL2h0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTMtMDItMDMgIEhhamltZSBNb3JyaXRhICA8bW9ycml0
YUBnb29nbGUuY29tPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVW5yZXZpZXdlZCByZWJhc2VsaW5p
bmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWRvd25sb2Fk
LWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZG93
bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzYTNjNTQ1MGFiM2E2OTdhOGMx
MjVlZDkwMDY2NTExZTg3YmMzOGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0
IEBACitUZXN0IGRvd25sb2FkIGVycm9yIGNhc2VzLiAibG9hZCIgb3IgImVycm9yIiBldmVudHMg
c2hvdWxkIGJlIGZpcmVkIGV4YWN0bHkgb25jZSBmb3IgZWFjaCBAZm9udC1mYWNlIHJ1bGUuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitGQUlMIGRvY3VtZW50LndlYmtpdEZvbnRs
b2FkZXIgZG9lcyBub3QgZXhpc3QKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorZm9udDEKK2ZvbnQyCitmb250MworZm9udDQKK2ZvbnQ1CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9yLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9yLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTQ1MGM5YTBmNWYzYzUwOGNmYzM3OTllYzkwZmVkMjlhYmFmYzlmMgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZG93bmxvYWQtZXJy
b3IuaHRtbApAQCAtMCwwICsxLDgwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisvKiBUZXN0
IDE6IEludmFsaWQgZm9udCBkYXRhICovCitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTog
bXlmb250MTsKKyAgICBzcmM6IHVybCgncmVzb3VyY2VzL2ludmFsaWRmb250LnBuZycpIGZvcm1h
dChvcGVudHlwZSk7Cit9CisKKy8qIFRlc3QgMjogRG93bmxvYWQgZXJyb3IgKi8KK0Bmb250LWZh
Y2UgeworICAgIGZvbnQtZmFtaWx5OiBteWZvbnQyOworICAgIHNyYzogdXJsKCdyZXNvdXJjZXMv
RG93bkxvYWRFcnJvckFoZW0ub3RmJyk7Cit9CisKKy8qIFRlc3QgMzogRW1wdHkgZGF0YSB1cmwg
Ki8KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiBteWZvbnQzOworICAgIHNyYzogdXJs
KGRhdGE6YXBwbGljYXRpb24veC10cnVldHlwZS1mb250LCkgZm9ybWF0KHRydWV0eXBlKTsKK30K
KworLyogVGVzdCA0OiBEb3dubG9hZCBlcnJvciBmb2xsb3dlZCBieSBleGlzdGluZyBsb2NhbCBm
b250ICovCitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogbXlmb250NDsKKyAgICBzcmM6
IHVybCgncmVzb3VyY2VzL0Rvd25Mb2FkRXJyb3JBaGVtLm90ZicpLCBsb2NhbCgnQ291cmllciBO
ZXcnKTsKK30KKworLyogVGVzdCA1OiBNdWx0aXBsZSBlcnJvcnMgKi8KK0Bmb250LWZhY2Ugewor
ICAgIGZvbnQtZmFtaWx5OiBteWZvbnQ1OworICAgIHNyYzogdXJsKCdyZXNvdXJjZXMvRG93bkxv
YWRFcnJvckFoZW0ub3RmJyksIHVybChkYXRhOmFwcGxpY2F0aW9uL3gtdHJ1ZXR5cGUtZm9udCwp
IGZvcm1hdCh0cnVldHlwZSk7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdU
ZXN0IGRvd25sb2FkIGVycm9yIGNhc2VzLiAibG9hZCIgb3IgImVycm9yIiBldmVudHMgc2hvdWxk
IGJlIGZpcmVkIGV4YWN0bHkgb25jZSBmb3IgZWFjaCBAZm9udC1mYWNlIHJ1bGUuJyk7CisKK3dp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV2ZW50cyA9IHt9OworCitmdW5jdGlv
biBsb2dFdmVudChlKSB7CisgICAgdmFyIGZhbWlseSA9IGUuZm9udGZhY2Uuc3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgnZm9udC1mYW1pbHknKTsKKyAgICBpZiAoIWV2ZW50c1tmYW1pbHldKQorICAg
ICAgICBldmVudHNbZmFtaWx5XSA9IFtdOworICAgIGV2ZW50c1tmYW1pbHldLnB1c2goZS50eXBl
KTsKK30KKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxv
YWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2Fkc3RhcnQnLCBsb2dFdmVudCk7CisgICAgZG9jdW1l
bnQud2Via2l0Rm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgbG9nRXZlbnQpOwor
ICAgIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBs
b2dFdmVudCk7CisKKyAgICBkb2N1bWVudC53ZWJraXRGb250bG9hZGVyLm5vdGlmeVdoZW5Gb250
c1JlYWR5KGZ1bmN0aW9uKCkgeworICAgICAgICBzaG91bGRCZSgiZXZlbnRzWydteWZvbnQxJ10i
LCAiWydsb2Fkc3RhcnQnLCAnZXJyb3InXSIpOworICAgICAgICBzaG91bGRCZSgiZXZlbnRzWydt
eWZvbnQyJ10iLCAiWydsb2Fkc3RhcnQnLCAnZXJyb3InXSIpOworICAgICAgICBzaG91bGRCZSgi
ZXZlbnRzWydteWZvbnQzJ10iLCAiWydsb2Fkc3RhcnQnLCAnZXJyb3InXSIpOworICAgICAgICBz
aG91bGRCZSgiZXZlbnRzWydteWZvbnQ0J10iLCAiWydsb2Fkc3RhcnQnLCAnbG9hZCddIik7Cisg
ICAgICAgIHNob3VsZEJlKCJldmVudHNbJ215Zm9udDUnXSIsICJbJ2xvYWRzdGFydCcsICdlcnJv
ciddIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworfQorCitpZiAoZG9jdW1l
bnQud2Via2l0Rm9udGxvYWRlcikKKyAgICBydW5UZXN0cygpOworZWxzZSB7CisgICAgdGVzdEZh
aWxlZCgnZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlciBkb2VzIG5vdCBleGlzdCcpOworICAgIGZp
bmlzaEpTVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBzdHls
ZT0iZm9udC1mYW1pbHk6IG15Zm9udDEiPmZvbnQxPC9kaXY+CisgIDxkaXYgc3R5bGU9ImZvbnQt
ZmFtaWx5OiBteWZvbnQyIj5mb250MjwvZGl2PgorICA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTog
bXlmb250MyI+Zm9udDM8L2Rpdj4KKyAgPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IG15Zm9udDQi
PmZvbnQ0PC9kaXY+CisgIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBteWZvbnQ1Ij5mb250NTwv
ZGl2PgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9mb250bG9hZGVyLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9m
b250bG9hZGVyLWV2ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVlMjY4MzFkN2NlZDY5
ZmY4ODg1MDc0NzExYjhjNWIyOThjODlmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2ZvbnRsb2FkZXItZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBA
CitUZXN0IHRoYXQgdGhlIGV2ZW50IGhhbmRsZXJzIG9mIEZvbnRMb2FkZXIgYXJlIGNhbGxlZCBp
biB0aGUgY29ycmVjdCBvcmRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ZB
SUwgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlciBkb2VzIG5vdCBleGlzdAorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitIZWxsbywgd29ybGQhCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWV2ZW50cy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1ldmVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDI0
MWEyMjA1ZDg4YWY5MGYzZmYzMGY3YzA0YzI1YzZhMDRjNmExCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1ldmVudHMuaHRtbApAQCAtMCwwICsxLDQ5
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgZm9udC1mYW1pbHk6
ICdhaGVtJzsKKyAgc3JjOiB1cmwoLi4vLi4vcmVzb3VyY2VzL0FoZW0udHRmKTsKK30KKzwvc3R5
bGU+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCB0aGUgZXZlbnQgaGFuZGxlcnMg
b2YgRm9udExvYWRlciBhcmUgY2FsbGVkIGluIHRoZSBjb3JyZWN0IG9yZGVyLicpOworCit3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBldmVudDsKK3ZhciBudW1iZXJPZkV2ZW50
cyA9IDA7CisKK2Z1bmN0aW9uIGhhbmRsZUV2ZW50KGUpIHsKKyAgICBldmVudCA9IGU7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdldmVudC50eXBlJywgWydsb2FkaW5nJywgJ2xvYWRzdGFy
dCcsICdsb2FkJywgJ2xvYWRpbmdkb25lJ11bbnVtYmVyT2ZFdmVudHNdKTsKKyAgICBudW1iZXJP
ZkV2ZW50cysrOworfQorCitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAgICBkb2N1bWVudC53ZWJr
aXRGb250bG9hZGVyLm9ubG9hZGluZyA9IGhhbmRsZUV2ZW50OworICAgIGRvY3VtZW50LndlYmtp
dEZvbnRsb2FkZXIub25sb2FkaW5nZG9uZSA9IGhhbmRsZUV2ZW50OworICAgIGRvY3VtZW50Lndl
YmtpdEZvbnRsb2FkZXIub25sb2Fkc3RhcnQgPSBoYW5kbGVFdmVudDsKKyAgICBkb2N1bWVudC53
ZWJraXRGb250bG9hZGVyLm9ubG9hZCA9IGhhbmRsZUV2ZW50OworICAgIGRvY3VtZW50LndlYmtp
dEZvbnRsb2FkZXIub25lcnJvciA9IGhhbmRsZUV2ZW50OworCisgICAgZG9jdW1lbnQud2Via2l0
Rm9udGxvYWRlci5ub3RpZnlXaGVuRm9udHNSZWFkeShmdW5jdGlvbigpIHsKKyAgICAgICAgc2hv
dWxkQmUoJ251bWJlck9mRXZlbnRzJywgJzQnKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgfSk7Cit9CisKK2lmIChkb2N1bWVudC53ZWJraXRGb250bG9hZGVyKQorICAgIHJ1blRlc3Rz
KCk7CitlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKCdkb2N1bWVudC53ZWJraXRGb250bG9hZGVyIGRv
ZXMgbm90IGV4aXN0Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorICA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogYWhlbSI+SGVsbG8sIHdvcmxk
ITwvZGl2PgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93bmxv
YWQtZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0YWIxMTMzOTViMzg0ZjAyYWJlOGMw
OTVlZWUxMGIwYjhhNWY2MzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEwIEBACitUZXN0IGxvYWQgZXZlbnRzIGZvciBhIGZvbnQgZmFtaWx5IGNvbnNp
c3RzIG9mIG11bHRpcGxlIEBmb250LWZhY2VzLCBpbmNsdWRpbmcgZG93bmxvYWQgZXJyb3IuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitGQUlMIGRvY3VtZW50LndlYmtpdEZvbnRs
b2FkZXIgZG9lcyBub3QgZXhpc3QKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9h
ZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzA3ZGQ3NzRmY2RiNTU2N2EwMjI1NTA2MjJhYjM3YTY4MTcwOWU4NQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMt
ZG93bmxvYWQtZXJyb3IuaHRtbApAQCAtMCwwICsxLDY1IEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5
bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogVGVzdEZvbnQ7CisgICAgc3JjOiB1
cmwoLi4vLi4vcmVzb3VyY2VzL0FoZW0udHRmKTsKK30KKworQGZvbnQtZmFjZSB7CisgICAgZm9u
dC1mYW1pbHk6IFRlc3RGb250OworICAgIHNyYzogdXJsKCdyZXNvdXJjZXMvRG93bkxvYWRFcnJv
ckFoZW0ub3RmJyk7CisgICAgdW5pY29kZS1yYW5nZTogdSs2MS03YTsgLyogJ2EnLSd6JyAqLwor
fQorPC9zdHlsZT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBsb2FkIGV2ZW50cyBmb3Ig
YSBmb250IGZhbWlseSBjb25zaXN0cyBvZiBtdWx0aXBsZSBAZm9udC1mYWNlcywgaW5jbHVkaW5n
IGRvd25sb2FkIGVycm9yLicpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3Zh
ciBldmVudHMgPSB7fTsKKworZnVuY3Rpb24gY291bnRFdmVudChlKSB7CisgICAgaWYgKCFldmVu
dHNbZS50eXBlXSkKKyAgICAgICAgZXZlbnRzW2UudHlwZV0gPSAwOworICAgIGV2ZW50c1tlLnR5
cGVdICs9IDE7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICAgIGRvY3VtZW50LndlYmtp
dEZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGluZycsIGNvdW50RXZlbnQpOworICAg
IGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZHN0YXJ0Jywg
Y291bnRFdmVudCk7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5hZGRFdmVudExpc3Rl
bmVyKCdsb2FkJywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5h
ZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGNvdW50RXZlbnQpOworICAgIGRvY3VtZW50LndlYmtp
dEZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGluZ2RvbmUnLCBjb3VudEV2ZW50KTsK
KworICAgIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIubG9hZEZvbnQoeyBmb250OiAnMTBweCBU
ZXN0Rm9udCcsIG9uc3VjY2Vzczogb25zdWNjZXNzLCBvbmVycm9yOiBvbmVycm9yIH0pOworfQor
CitmdW5jdGlvbiBvbnN1Y2Nlc3MoKSB7CisgICAgdGVzdEZhaWxlZCgiRXhwZWN0ZWQgZXJyb3Is
IGJ1dCBvbnN1Y2Nlc3MoKSBjYWxsZWQiKTsKKyAgICBvbmVycm9yKCk7Cit9CisKK2Z1bmN0aW9u
IG9uZXJyb3IoKSB7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZGluZyddIiwgIjEiKTsKKyAg
ICBzaG91bGRCZSgiZXZlbnRzWydsb2Fkc3RhcnQnXSIsICIyIik7CisgICAgc2hvdWxkQmUoImV2
ZW50c1snbG9hZCddIiwgIjEiKTsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydlcnJvciddIiwgIjEi
KTsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydsb2FkaW5nZG9uZSddIiwgIjEiKTsKKyAgICBzaG91
bGRCZSgiZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5jaGVja0ZvbnQoJzEwcHggVGVzdEZvbnQn
KSIsICJmYWxzZSIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitpZiAoZG9jdW1lbnQud2Vi
a2l0Rm9udGxvYWRlcikKKyAgICBydW5UZXN0cygpOworZWxzZSB7CisgICAgdGVzdEZhaWxlZCgn
ZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlciBkb2VzIG5vdCBleGlzdCcpOworICAgIGZpbmlzaEpT
VGVzdCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1m
YWNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRp
cGxlLWZhY2VzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOWZmODU4MmYzNDkwNmZhMThjODg0
YjJmMGM5M2Y1YTA2NGZhNzc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBA
QAorVGVzdCBsb2FkIGV2ZW50cyBmb3IgYSBmb250IGZhbWlseSBjb25zaXN0cyBvZiBtdWx0aXBs
ZSBAZm9udC1mYWNlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ZBSUwgZG9j
dW1lbnQud2Via2l0Rm9udGxvYWRlciBkb2VzIG5vdCBleGlzdAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MWQ0YzQz
NmJjMDBkNGQ2NWJkYzNjZDYyNTVmNDE2YmI3MGUzNGYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy5odG1sCkBAIC0wLDAg
KzEsNjUgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICBmb250LWZh
bWlseTogVGVzdEZvbnQ7CisgIHNyYzogbG9jYWwoJ0NvdXJpZXIgTmV3Jyk7Cit9CisKK0Bmb250
LWZhY2UgeworICBmb250LWZhbWlseTogVGVzdEZvbnQ7CisgIHNyYzogdXJsKC4uLy4uL3Jlc291
cmNlcy9BaGVtLnR0Zik7CisgIHVuaWNvZGUtcmFuZ2U6IHUrNjEtN2E7IC8qICdhJy0neicgKi8K
K30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgbG9hZCBldmVudHMgZm9y
IGEgZm9udCBmYW1pbHkgY29uc2lzdHMgb2YgbXVsdGlwbGUgQGZvbnQtZmFjZXMuJyk7CisKK3dp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV2ZW50cyA9IHt9OworCitmdW5jdGlv
biBjb3VudEV2ZW50KGUpIHsKKyAgICBpZiAoIWV2ZW50c1tlLnR5cGVdKQorICAgICAgICBldmVu
dHNbZS50eXBlXSA9IDA7CisgICAgZXZlbnRzW2UudHlwZV0gKz0gMTsKK30KKworZnVuY3Rpb24g
cnVuVGVzdHMoKSB7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5hZGRFdmVudExpc3Rl
bmVyKCdsb2FkaW5nJywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRl
ci5hZGRFdmVudExpc3RlbmVyKCdsb2Fkc3RhcnQnLCBjb3VudEV2ZW50KTsKKyAgICBkb2N1bWVu
dC53ZWJraXRGb250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBjb3VudEV2ZW50KTsK
KyAgICBkb2N1bWVudC53ZWJraXRGb250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywg
Y291bnRFdmVudCk7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5hZGRFdmVudExpc3Rl
bmVyKCdsb2FkaW5nZG9uZScsIGNvdW50RXZlbnQpOworCisgICAgZG9jdW1lbnQud2Via2l0Rm9u
dGxvYWRlci5sb2FkRm9udCh7IGZvbnQ6ICcxMHB4IFRlc3RGb250Jywgb25zdWNjZXNzOiBvbnN1
Y2Nlc3MsIG9uZXJyb3I6IG9uZXJyb3IgfSk7Cit9CisKK2Z1bmN0aW9uIG9uc3VjY2VzcygpIHsK
KyAgICBzaG91bGRCZSgiZXZlbnRzWydsb2FkaW5nJ10iLCAiMSIpOworICAgIHNob3VsZEJlKCJl
dmVudHNbJ2xvYWRzdGFydCddIiwgIjIiKTsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydsb2FkJ10i
LCAiMiIpOworICAgIHNob3VsZEJlKCJldmVudHNbJ2Vycm9yJ10iLCAidW5kZWZpbmVkIik7Cisg
ICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZGluZ2RvbmUnXSIsICIxIik7CisgICAgc2hvdWxkQmUo
ImRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIuY2hlY2tGb250KCcxMHB4IFRlc3RGb250JykiLCAi
dHJ1ZSIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiBvbmVycm9yKCkgewor
ICAgIHRlc3RGYWlsZWQoIkV4cGVjdGVkIHN1Y2Nlc3MsIGJ1dCBvbmVycm9yKCkgY2FsbGVkIik7
CisgICAgb25zdWNjZXNzKCk7Cit9CisKK2lmIChkb2N1bWVudC53ZWJraXRGb250bG9hZGVyKQor
ICAgIHJ1blRlc3RzKCk7CitlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKCdkb2N1bWVudC53ZWJraXRG
b250bG9hZGVyIGRvZXMgbm90IGV4aXN0Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW5vdGlmeS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW5vdGlmeS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjU5NjI4MzdhODEwNTgyMzY3MTU2YzNjZGUzYTNjOGMxY2YxNjlmNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbm90aWZ5LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACitUZXN0IHRoYXQgY2FsbGJhY2sgb2Ygbm90aWZ5V2hlbkZvbnRz
UmVhZHkgaXMgaW52b2tlZCBhZnRlciBzdHlsZSByZWNhbGN1bGF0aW9uLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworRkFJTCBkb2N1bWVudC53ZWJraXRGb250bG9hZGVyIGRvZXMg
bm90IGV4aXN0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKK2FhYQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1ub3Rp
ZnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbm90aWZ5Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzU3ZGE1MDA4NTc0ZmU3M2RiOGM4NzdlNDQxMmQ5YzZkNGE3NWM2ZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbm90aWZ5Lmh0bWwK
QEAgLTAsMCArMSw0OCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorYm9keSB7CisgIGZvbnQt
ZmFtaWx5OiBzZXJpZjsKK30KK0Bmb250LWZhY2UgeworICBmb250LWZhbWlseTogJ2FoZW0nOwor
ICBzcmM6IHVybCguLi8uLi9yZXNvdXJjZXMvQWhlbS50dGYpOworfQorI3Rlc3QgeworICBwb3Np
dGlvbjogYWJzb2x1dGUKK30KKyN0ZXN0IHNwYW4geworICBmb250LWZhbWlseTogYWhlbTsKK30K
Kzwvc3R5bGU+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCBjYWxsYmFjayBvZiBu
b3RpZnlXaGVuRm9udHNSZWFkeSBpcyBpbnZva2VkIGFmdGVyIHN0eWxlIHJlY2FsY3VsYXRpb24u
Jyk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gcnVuVGVzdHMo
KSB7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5ub3RpZnlXaGVuRm9udHNSZWFkeShm
dW5jdGlvbigpIHsKKyAgICAgICAgdGVzdERpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXN0Jyk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnd2luZG93LmdldENvbXB1dGVk
U3R5bGUodGVzdERpdiwgMCkud2lkdGgnLCAnNDhweCcpOworICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICB9KTsKK30KKworaWYgKGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIpCisgICAgcnVu
VGVzdHMoKTsKK2Vsc2UgeworICAgIHRlc3RGYWlsZWQoJ2RvY3VtZW50LndlYmtpdEZvbnRsb2Fk
ZXIgZG9lcyBub3QgZXhpc3QnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9dGVzdD4KKyAgICA8YSBocmVmPSIjIj4KKyAgICAg
IDxzcGFuPmFhYTwvc3Bhbj4KKyAgICA8L2E+CisgIDwvZGl2PgorICA8c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmZvbnQvZm9udGxvYWRlci1s
b2FkaW5nLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmZvbnQvZm9udGxvYWRlci1sb2FkaW5nLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjIyMGRmNWJmZWI0YWRjNDFkMjUzZjMyMTUxNThlYmRiYTYxMTM0MwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxvYWRpbmct
YXR0cmlidXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGZvciBGb250TG9h
ZGVyLmxvYWRpbmcgYXR0cmlidXRlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitG
QUlMIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYmZvbnQvZm9udGxvYWRlci1sb2FkaW5nLWF0dHJpYnV0ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJmb250L2ZvbnRsb2FkZXItbG9hZGluZy1h
dHRyaWJ1dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hODBmOTgxYzQzMTg5YjA2ODI1NWZlYTdlMDA3YjJm
YzAzOWVkOTYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJm
b250L2ZvbnRsb2FkZXItbG9hZGluZy1hdHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDM5IEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyAgQGZvbnQtZmFjZSB7CisgICAgZm9udC1m
YW1pbHk6ICdUZXN0Rm9udCc7CisgICAgc3JjOiB1cmwoc2xvdy1haGVtLWxvYWRpbmcuY2dpKTsK
KyAgfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBmb3IgRm9udExvYWRl
ci5sb2FkaW5nIGF0dHJpYnV0ZScpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisK
K2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICAgIHNob3VsZEJlKCJkb2N1bWVudC53ZWJraXRGb250
bG9hZGVyLmNoZWNrRm9udCgnMTBweCBUZXN0Rm9udCcpIiwgImZhbHNlIik7CisgICAgc2hvdWxk
QmUoImRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIubG9hZGluZyIsICJmYWxzZSIpOworICAgIGRv
Y3VtZW50LndlYmtpdEZvbnRsb2FkZXIubG9hZEZvbnQoeyBmb250OiAnMTBweCBUZXN0Rm9udCcs
IG9uc3VjY2Vzczogb25zdWNjZXNzIH0pOworICAgIHNob3VsZEJlKCJkb2N1bWVudC53ZWJraXRG
b250bG9hZGVyLmxvYWRpbmciLCAidHJ1ZSIpOworfQorCitmdW5jdGlvbiBvbnN1Y2Nlc3MoKSB7
CisgICAgc2hvdWxkQmUoImRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIuY2hlY2tGb250KCcxMHB4
IFRlc3RGb250JykiLCAidHJ1ZSIpOworICAgIHNob3VsZEJlKCJkb2N1bWVudC53ZWJraXRGb250
bG9hZGVyLmxvYWRpbmciLCAiZmFsc2UiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworaWYg
KGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIpCisgICAgcnVuVGVzdHMoKTsKK2Vsc2UgeworICAg
IHRlc3RGYWlsZWQoJ2RvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QnKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLWRvd25s
b2FkLWVycm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjk3YjU4MjNmMmEzMTY2N2QyOTc1
YTA1MmJiZjU1NDg5ZjYxMDYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxOCBAQAorVGVzdCBkb3dubG9hZCBlcnJvciBjYXNlcy4gImxvYWQiIG9y
ICJlcnJvciIgZXZlbnRzIHNob3VsZCBiZSBmaXJlZCBleGFjdGx5IG9uY2UgZm9yIGVhY2ggQGZv
bnQtZmFjZSBydWxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBldmVu
dHNbJ215Zm9udDEnXSBpcyBbJ2xvYWRzdGFydCcsICdlcnJvciddCitQQVNTIGV2ZW50c1snbXlm
b250MiddIGlzIFsnbG9hZHN0YXJ0JywgJ2Vycm9yJ10KK1BBU1MgZXZlbnRzWydteWZvbnQzJ10g
aXMgWydsb2Fkc3RhcnQnLCAnZXJyb3InXQorUEFTUyBldmVudHNbJ215Zm9udDQnXSBpcyBbJ2xv
YWRzdGFydCcsICdsb2FkJ10KK1BBU1MgZXZlbnRzWydteWZvbnQ1J10gaXMgWydsb2Fkc3RhcnQn
LCAnZXJyb3InXQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCitmb250MQorZm9udDIKK2ZvbnQzCitmb250NAorZm9udDUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZXZlbnRzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2Fk
ZXItZXZlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODY1ODcxMDc1OWJiYzg1OTYyMDVh
MWIyODVkMDIzNzhiYzgyOTZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTQgQEAKK1Rlc3QgdGhhdCB0aGUgZXZlbnQgaGFuZGxlcnMgb2YgRm9udExvYWRlciBh
cmUgY2FsbGVkIGluIHRoZSBjb3JyZWN0IG9yZGVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBldmVudC50eXBlIGlzICJsb2FkaW5nIgorUEFTUyBldmVudC50eXBlIGlz
ICJsb2Fkc3RhcnQiCitQQVNTIGV2ZW50LnR5cGUgaXMgImxvYWQiCitQQVNTIGV2ZW50LnR5cGUg
aXMgImxvYWRpbmdkb25lIgorUEFTUyBudW1iZXJPZkV2ZW50cyBpcyA0CitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK0hlbGxvLCB3b3JsZCEKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXIt
bXVsdGlwbGUtZmFjZXMtZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1kb3du
bG9hZC1lcnJvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTE2YzNmODc5MmQwOWRkNmFiMjgw
ZDcxYWQyMDI0ZmZiMGMyYTRjYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93bmxvYWQt
ZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3QgbG9hZCBldmVudHMgZm9y
IGEgZm9udCBmYW1pbHkgY29uc2lzdHMgb2YgbXVsdGlwbGUgQGZvbnQtZmFjZXMsIGluY2x1ZGlu
ZyBkb3dubG9hZCBlcnJvci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
ZXZlbnRzWydsb2FkaW5nJ10gaXMgMQorUEFTUyBldmVudHNbJ2xvYWRzdGFydCddIGlzIDIKK1BB
U1MgZXZlbnRzWydsb2FkJ10gaXMgMQorUEFTUyBldmVudHNbJ2Vycm9yJ10gaXMgMQorUEFTUyBl
dmVudHNbJ2xvYWRpbmdkb25lJ10gaXMgMQorUEFTUyBkb2N1bWVudC53ZWJraXRGb250bG9hZGVy
LmNoZWNrRm9udCgnMTBweCBUZXN0Rm9udCcpIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9h
ZGVyLW11bHRpcGxlLWZhY2VzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWJjN2U5MmUzYWU5
YWQ5MjA5ZDQyMDk4MTZkZjcyODhjNGE5ZjZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdCBsb2FkIGV2ZW50cyBmb3IgYSBmb250
IGZhbWlseSBjb25zaXN0cyBvZiBtdWx0aXBsZSBAZm9udC1mYWNlcy4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgZXZlbnRzWydsb2FkaW5nJ10gaXMgMQorUEFTUyBldmVu
dHNbJ2xvYWRzdGFydCddIGlzIDIKK1BBU1MgZXZlbnRzWydsb2FkJ10gaXMgMgorUEFTUyBldmVu
dHNbJ2Vycm9yJ10gaXMgdW5kZWZpbmVkCitQQVNTIGV2ZW50c1snbG9hZGluZ2RvbmUnXSBpcyAx
CitQQVNTIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIuY2hlY2tGb250KCcxMHB4IFRlc3RGb250
JykgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3Nz
L2ZvbnRsb2FkZXItbm90aWZ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbm90aWZ5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jYzY1MWFmODEwMjY5NGY4Y2I5NTBmMzFmZmFmNjgzYWU0MmFiNzgwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1u
b3RpZnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgdGhhdCBjYWxsYmFjayBv
ZiBub3RpZnlXaGVuRm9udHNSZWFkeSBpcyBpbnZva2VkIGFmdGVyIHN0eWxlIHJlY2FsY3VsYXRp
b24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKHRlc3REaXYsIDApLndpZHRoIGlzICI0OHB4IgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCithYWEKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxvYWRp
bmctYXR0cmlidXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2h0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yNTA0YjBlZjU5ZDM1MWQwY2NmOTI0OTM4YTFiMGNiMTc1MmFlZjhj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90
ZXN0cy93ZWJmb250L2ZvbnRsb2FkZXItbG9hZGluZy1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTQgQEAKK1Rlc3QgZm9yIEZvbnRMb2FkZXIubG9hZGluZyBhdHRyaWJ1dGUKKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQud2Via2l0Rm9udGxv
YWRlci5jaGVja0ZvbnQoJzEwcHggVGVzdEZvbnQnKSBpcyBmYWxzZQorUEFTUyBkb2N1bWVudC53
ZWJraXRGb250bG9hZGVyLmxvYWRpbmcgaXMgZmFsc2UKK1BBU1MgZG9jdW1lbnQud2Via2l0Rm9u
dGxvYWRlci5sb2FkaW5nIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5j
aGVja0ZvbnQoJzEwcHggVGVzdEZvbnQnKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LndlYmtpdEZv
bnRsb2FkZXIubG9hZGluZyBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186757</attachid>
            <date>2013-02-05 22:14:45 -0800</date>
            <delta_ts>2013-02-18 01:33:38 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-98395-20130206151121.patch</filename>
            <type>text/plain</type>
            <size>124376</size>
            <attacher name="Kunihiko Sakamoto">ksakamoto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxOTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTRjNGRkN2MwMTZmNDdk
NThlNzYzYTYyZThlZTcwNzdjZDI5OTQwMS4uMTI1YjJjZTMxZDA4OWJkYTIzNTFiNDY5Y2QzZGRi
YmFlZDRiNjNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzOCBAQAorMjAxMy0wMi0wNSAgS3Vu
aWhpa28gU2FrYW1vdG8gIDxrc2FrYW1vdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxl
bWVudCBGb250TG9hZGVyIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTgzOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdHdvIGludGVyZmFjZXMsIFdlYktpdEZv
bnRMb2FkZXIgYW5kIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LCBhbmQgYSBkb2N1bWVudCBh
dHRyaWJ1dGUgd2Via2l0Rm9udGxvYWRlciB0byBXZWJDb3JlLgorICAgICAgICBUaGUgd2Via2l0
Rm9udGxvYWRlciBpbXBsZW1lbnRzIHRoZSBGb250TG9hZGVyIGludGVyZmFjZSBkZWZpbmVkIGlu
IENTUyBGb250cyBNb2R1bGUgTGV2ZWwgMy5bMV0KKyAgICAgICAgVGhpcyBmZWF0dXJlIGlzIGJl
aGluZCB0aGUgRk9OVF9MT0FERVIgY29tcGlsZXIgZmxhZyBhbmQgY3VycmVudGx5IGVuYWJsZWQg
b25seSBmb3IgY2hyb21pdW0uCisKKyAgICAgICAgWzFdOiBodHRwOi8vZGV2LnczLm9yZy9jc3N3
Zy9jc3MzLWZvbnRzLyNmb250LWxvYWQtZXZlbnRzCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3Nz
L2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3IuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3Mv
Zm9udGxvYWRlci1ldmVudHMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MvZm9udGxvYWRl
ci1tdWx0aXBsZS1mYWNlcy1kb3dubG9hZC1lcnJvci5odG1sCisgICAgICAgICAgICAgICBmYXN0
L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
Y3NzL2ZvbnRsb2FkZXItbm90aWZ5Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvd2Vi
Zm9udC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLmh0bWwKKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OiBBZGRpbmcgV2ViS2l0Rm9udExvYWRlci9XZWJLaXRDU1NGb250RmFjZUxvYWRF
dmVudCBmaWxlcy4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6IERpdHRvLgorICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IERpdHRvLgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LnByaTogRGl0dG8uCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogRGl0dG8uCisgICAg
ICAgICogVGFyZ2V0LnByaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4K
KyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAg
ICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajogRGl0dG8uCisgICAgICAgICogV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOiBEaXR0by4KKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRGljdGlvbmFyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RpY3Rpb25hcnk6
OmNvbnZlcnRWYWx1ZSk6IEFkZCBjb252ZXJ0VmFsdWUoKSBmb3IgQ1NTRm9udEZhY2VSdWxlLCBE
T01FcnJvciwgYW5kIFZvaWRDYWxsYmFjay4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rp
b25hcnkuaDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9EaWN0aW9uYXJ5LmNwcDogQWRkIGdldCgpIGZvciBDU1NGb250RmFjZVJ1bGUsIERPTUVycm9y
LCBhbmQgVm9pZENhbGxiYWNrLgorICAgICAgICAoV2ViQ29yZTo6RGljdGlvbmFyeTo6Z2V0KToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9EaWN0aW9uYXJ5Lmg6IERpdHRvLgorICAgICAgICAoRGlj
dGlvbmFyeSk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlLmNwcDogTm90aWZpZXMgRm9udExv
YWRlciBhcyBsb2FkIHByb2dyZXNzZXMuCisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZTo6
Zm9udExvYWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZTo6Z2V0Rm9udERhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2U6Om5vdGlmeUZvbnRMb2FkZXIpOgorICAg
ICAgICAqIGNzcy9DU1NGb250RmFjZS5oOiBBZGQgdHdvIG1lbWJlciB2YXJpYWJsZXMuIG1fcnVs
ZSBzdG9yZXMgQ1NTRm9udEZhY2VSdWxlIGZvciB0aGUgZm9udGZhY2UuIG1fbG9hZFN0YXRlIGhv
bGRzIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGZvbnRmYWNlIGluIHRlcm1zIG9mIEZvbnRMb2FkZXIu
CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZTo6Y3JlYXRlKTogVGFrZXMgYWRkaXRpb25h
bCBwYXJhbWV0ZXIgb2YgdHlwZSBDU1NGb250RmFjZVJ1bGUuCisgICAgICAgIChXZWJDb3JlOjpD
U1NGb250RmFjZTo6bG9hZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpD
U1NGb250RmFjZSk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGw6IEFkZCBKU0dl
bmVyYXRlVG9KU09iamVjdCBhbmQgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0IGFzIEpTQyBiaW5k
aW5nIG5lZWRzIHRoZW0uCisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU291cmNlOjplbnN1cmVGb250RGF0YSk6IEFkZGVk
LgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNvdXJjZS5oOgorICAgICAgICAoQ1NTRm9udEZh
Y2VTb3VyY2UpOgorICAgICAgICAqIGNzcy9DU1NGb250U2VsZWN0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1bGUpOiBQYXNzIGEgQ1NTRm9u
dEZhY2VSdWxlIHRvIENTU0ZvbnRGYWNlOjpjcmVhdGUoKS4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ZvbnRTZWxlY3Rvcjo6Z2V0Rm9udERhdGEpOiBNb3ZlZCBtYWluIGxvZ2ljIHRvIGEgaGVscGVy
IGZ1bmN0aW9uIGdldEZvbnRGYWNlKCkuCisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U2VsZWN0
b3I6OmdldEZvbnRGYWNlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U2VsZWN0
b3I6OmNoZWNrRm9udCk6IEFkZGVkLiBSZXR1cm5zIHdoZXRoZXIgdGhlIGdpdmVuIGZvbnQgaXMg
YXZhaWxhYmxlLgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udFNlbGVjdG9yOjpsb2FkRm9udCk6
IEFkZGVkLiBJbml0aWF0ZXMgZm9udCBsb2FkLgorICAgICAgICAqIGNzcy9DU1NGb250U2VsZWN0
b3IuaDoKKyAgICAgICAgKENTU0ZvbnRTZWxlY3Rvcik6IERlY2xhcmVzIG5ldyBmdW5jdGlvbnMu
CisgICAgICAgICogY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1NlZ21lbnRlZEZvbnRGYWNlOjpmb250TG9hZGVkKTogRmlyZXMgY2FsbGJhY2tzIG9m
IGZvbnRsb2FkZXIubG9hZEZvbnQoKSB3aGVuIGxvYWQgaXMgY29tcGxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6Q1NTU2VnbWVudGVkRm9udEZhY2U6OmlzTG9hZGluZyk6IFJldHVybnMgdHJ1ZSBp
ZiBhbnkgZm9udHMgYXJlIHN0aWxsIGxvYWRpbmcuCisgICAgICAgIChXZWJDb3JlOjpDU1NTZWdt
ZW50ZWRGb250RmFjZTo6Y2hlY2tGb250KTogUmV0dXJucyB0cnVlIGlmIGFsbCBmb250cyBhcmUg
bG9hZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VnbWVudGVkRm9udEZhY2U6OmxvYWRGb250
KTogU3RhcnRzIGxvYWQgYnkgY2FsbGluZyBnZXRGb250RGF0YSgpLgorICAgICAgICAqIGNzcy9D
U1NTZWdtZW50ZWRGb250RmFjZS5oOgorICAgICAgICAoQ1NTU2VnbWVudGVkRm9udEZhY2UpOiBE
ZWNsYXJlcyBuZXcgZnVuY3Rpb25zIGFuZCB2ZWN0b3JzIHRvIHN0b3JlIGNhbGxiYWNrcy4KKyAg
ICAgICAgKiBjc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZl
bnQ6OldlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktp
dENTU0ZvbnRGYWNlTG9hZEV2ZW50Ojp+V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OmludGVyZmFjZU5hbWUp
OgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnRJbml0
KToKKyAgICAgICAgKFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OldlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZUZvckZvbnRGYWNlUnVsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudDo6Zm9udGZhY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OmVycm9yKToKKyAg
ICAgICAgKiBjc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBjc3MvV2ViS2l0Rm9udExvYWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVyOjpXZWJLaXRGb250TG9hZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYktpdEZvbnRMb2FkZXI6On5XZWJLaXRGb250TG9hZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYktpdEZvbnRMb2FkZXI6OmV2ZW50VGFyZ2V0RGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVyOjplbnN1cmVFdmVudFRhcmdldERhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6aW50ZXJmYWNlTmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEZvbnRMb2FkZXI6OmRpZExheW91dCk6IEZpcmVz
IHBlbmRpbmcgZXZlbnRzIGFuZCBjYWxsYmFja3MuIFRoaXMgaXMgY2FsbGVkIHdoZW4gbGF5b3V0
IGhhdmUgY29tcGxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6c2No
ZWR1bGVFdmVudCk6IERlZmVycyBldmVudCBkaXNwYXRjaGluZyB1bnRpbCBsYXlvdXQgY29tcGxl
dGVzLgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6ZmlyZVBlbmRpbmdFdmVu
dHMpOiBEaXNwYXRjaGVzIHBlbmRpbmcgZXZlbnRzLgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0
Rm9udExvYWRlcjo6YmVnaW5Gb250TG9hZGluZyk6IFNjaGVkdWxlcyBsb2FkaW5nL2xvYWRzdGFy
dCBldmVudHMuIFRoaXMgaXMgY2FsbGVkIGZyb20gQ1NTRm9udEZhY2UuCisgICAgICAgIChXZWJD
b3JlOjpXZWJLaXRGb250TG9hZGVyOjpmb250TG9hZGVkKTogU2NoZWR1bGVzIGxvYWQvbG9hZGlu
Z2RvbmUgZXZlbnRzLiBUaGlzIGlzIGNhbGxlZCBmcm9tIENTU0ZvbnRGYWNlLgorICAgICAgICAo
V2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6bG9hZEVycm9yKTogU2NoZWR1bGVzIGVycm9yL2xv
YWRpbmdkb25lIGV2ZW50cy4gVGhpcyBpcyBjYWxsZWQgZnJvbSBDU1NGb250RmFjZS4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYktpdEZvbnRMb2FkZXI6Om5vdGlmeVdoZW5Gb250c1JlYWR5KTogSW1w
bGVtZW50cyBmb250bG9hZGVyLm5vdGlmeVdoZW5Gb250c1JlYWR5KCkuCisgICAgICAgIChXZWJD
b3JlOjpXZWJLaXRGb250TG9hZGVyOjpub3RpZnlGb250c1JlYWR5KTogRmlyZXMgY2FsbGJhY2tz
IG9mIG5vdGlmeVdoZW5Gb250c1JlYWR5LgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExv
YWRlcjo6bG9hZEZvbnQpOiBJbXBsZW1lbnRzIGZvbnRsb2FkZXIubG9hZEZvbnQoKS4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYktpdEZvbnRMb2FkZXI6OmNoZWNrRm9udCk6IEltcGxlbWVudHMgZm9u
dGxvYWRlci5jaGVja0ZvbnQoKS4KKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEZvbnRMb2FkZXI6
OnJlc29sdmVGb250U3R5bGUpOiBQYXJzZXMgdGhlIGdpdmVuIGZvbnQgcGFyYW1ldGVyIHVzaW5n
IHRoZSBzeW50YXggb2YgQ1NTICdmb250JyBwcm9wZXJ0eSBhbmQgY3JlYXRlcyBGb250IG9iamVj
dC4gVGhlIGxvZ2ljIGlzIHRha2VuIGZyb20gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRG
b250KCkuCisgICAgICAgICogY3NzL1dlYktpdEZvbnRMb2FkZXIuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdEZvbnRMb2FkZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViS2l0Rm9udExvYWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEZv
bnRMb2FkZXI6OmxvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6
ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6cmVmRXZlbnRU
YXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6ZGVyZWZFdmVudFRh
cmdldCk6CisgICAgICAgICogY3NzL1dlYktpdEZvbnRMb2FkZXIuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3Vt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp3ZWJraXRGb250bG9hZGVyKTogQWRk
ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1bWVudCk6IEFkZCBt
X3dlYmtpdEZvbnRsb2FkZXIgYW5kIHdlYmtpdEZvbnRsb2FkZXIoKS4KKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuaWRsOiBBZGQgd2Via2l0Rm9udExvYWRlciBhdHRyaWJ1dGUuCisgICAgICAgICog
ZG9tL0V2ZW50TmFtZXMuaDogQWRkIGxvYWRpbmcgYW5kIGxvYWRpbmdkb25lIGV2ZW50cy4KKyAg
ICAgICAgKiBkb20vRXZlbnROYW1lcy5pbjogQWRkIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50
LgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldEZhY3RvcnkuaW46IEFkZCBXZWJLaXRGb250TG9h
ZGVyLgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lVmlldzo6cGVyZm9ybVBvc3RMYXlvdXRUYXNrcyk6IENhbGxzIFdlYktpdEZvbnRMb2FkZXI6
OmRpZExheW91dCgpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06Cisg
ICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICog
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHA6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuY3BwOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpEaWN0aW9uYXJ5OjpnZXQpOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L0RpY3Rpb25hcnkuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRGljdGlvbmFy
eSk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ZvbnRGYWNlOjpmb250TG9hZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpn
ZXRGb250RGF0YSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Zv
bnRGYWNlOjpub3RpZnlGb250TG9hZGVyKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2UuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpjcmVhdGUpOgorICAgICAgICAoQ1NTRm9u
dEZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2U6OmxvYWRTdGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NGb250RmFjZTo6Q1NTRm9udEZhY2UpOgorICAgICAgICAqIGNzcy9D
U1NGb250RmFjZVJ1bGUuaWRsOgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNvdXJjZS5jcHA6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU291cmNl
OjplbnN1cmVGb250RGF0YSk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmg6Cisg
ICAgICAgIChDU1NGb250RmFjZVNvdXJjZSk6CisgICAgICAgICogY3NzL0NTU0ZvbnRTZWxlY3Rv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U2VsZWN0b3I6OmFkZEZvbnRGYWNlUnVs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U2VsZWN0b3I6OmdldEZvbnREYXRhKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udFNlbGVjdG9yOjpnZXRG
b250RmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U2VsZWN0b3I6OmNoZWNrRm9udCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U2VsZWN0b3I6OmxvYWRGb250KToKKyAgICAgICAg
KiBjc3MvQ1NTRm9udFNlbGVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENT
U0ZvbnRTZWxlY3Rvcik6CisgICAgICAgICogY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1NlZ21lbnRlZEZvbnRGYWNlOjpmb250TG9hZGVkKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VnbWVudGVkRm9udEZhY2U6
OmlzTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWdtZW50ZWRGb250RmFjZTo6Y2hl
Y2tGb250KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlZ21lbnRlZEZvbnRGYWNlOjpsb2FkRm9u
dCk6CisgICAgICAgICogY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmg6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKENTU1NlZ21lbnRlZEZvbnRGYWNlKToKKyAgICAgICAgKiBjc3MvV2Vi
S2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OldlYktpdENTU0Zv
bnRGYWNlTG9hZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU0ZvbnRGYWNlTG9h
ZEV2ZW50Ojp+V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OmludGVyZmFjZU5hbWUpOgorICAgICAgICAqIGNz
cy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnRJbml0KToKKyAgICAgICAgKFdl
YktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU0Zv
bnRGYWNlTG9hZEV2ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTRm9u
dEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZUZvckZvbnRGYWNlUnVsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudDo6Zm9udGZhY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OmVycm9yKToKKyAgICAgICAgKiBjc3MvV2Vi
S2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvV2ViS2l0
Rm9udExvYWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJLaXRGb250TG9hZGVyOjpXZWJLaXRGb250TG9hZGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYktpdEZvbnRMb2FkZXI6On5XZWJLaXRGb250TG9hZGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYktpdEZvbnRMb2FkZXI6OmV2ZW50VGFyZ2V0RGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJLaXRGb250TG9hZGVyOjplbnN1cmVFdmVudFRhcmdldERhdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViS2l0Rm9udExvYWRlcjo6aW50ZXJmYWNlTmFtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJLaXRGb250TG9hZGVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OldlYktpdEZvbnRMb2FkZXI6OmRpZExheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJLaXRGb250TG9hZGVyOjpzY2hlZHVsZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktp
dEZvbnRMb2FkZXI6OmZpcmVQZW5kaW5nRXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktp
dEZvbnRMb2FkZXI6OmJlZ2luRm9udExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0
Rm9udExvYWRlcjo6Zm9udExvYWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9h
ZGVyOjpsb2FkRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6bm90
aWZ5V2hlbkZvbnRzUmVhZHkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6
bm90aWZ5Rm9udHNSZWFkeSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVyOjps
b2FkRm9udCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVyOjpjaGVja0ZvbnQp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6cmVzb2x2ZUZvbnRTdHlsZSk6
CisgICAgICAgICogY3NzL1dlYktpdEZvbnRMb2FkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYktpdEZvbnRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
S2l0Rm9udExvYWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEZvbnRMb2Fk
ZXI6OmxvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6ZG9jdW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6cmVmRXZlbnRUYXJnZXQp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6ZGVyZWZFdmVudFRhcmdldCk6
CisgICAgICAgICogY3NzL1dlYktpdEZvbnRMb2FkZXIuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtpdEZv
bnRsb2FkZXIpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChEb2N1bWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAg
ICAgKiBkb20vRXZlbnROYW1lcy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9t
L0V2ZW50TmFtZXMuaW46CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OnBlcmZvcm1Qb3N0TGF5b3V0VGFza3MpOgorCiAyMDEzLTAyLTA1ICBIYXlhdG8gSXRvICA8aGF5
YXRvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBTcGxpdCBlYWNoIFJ1bGVTZXQgYW5kIGZlYXR1
cmUgb3V0IGZyb20gU3R5bGVSZXNvbHZlciBpbnRvIGl0cyBvd24gY2xhc3MuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCmluZGV4IDBmOTVlNDcyM2YyMTM2NjQxY2ZhYjI3MTA5YTA0NGFjYTRhZjU4
MWIuLmMzNmJiNDRmNWU0ZGY1NmY3OGJhOTY0ZmZlOWMwZmY5MWEyNTFjOWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDItMDUgIEt1bmloaWtvIFNh
a2Ftb3RvICA8a3Nha2Ftb3RvQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgRm9u
dExvYWRlciBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk4Mzk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRW5hYmxlIEZvbnRMb2FkZXIgaW50ZXJmYWNlIG9uIGNocm9taXVtLgorCisgICAg
ICAgICogZmVhdHVyZXMuZ3lwaToKKwogMjAxMy0wMi0wNSAgRGF2aWQgRG9yd2luICA8ZGRvcndp
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBFeHBsaWNpdGx5IGRlc3Ryb3kg
dGhlIFdlYk1lZGlhUGxheWVyIGluIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbCdzIGRlc3RydWN0
b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggODkzMWRmMzA5YThjMWQ2MGM0YTE2MGQ1NjBiNDVl
ZWFiODY1OGY2My4uM2VhZWUyZTM3M2RmYzdhY2QyOWY4ZjdiNmZiOGJhNDk5NjU4ZTVkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTMzMiw2ICszMzIsNyBAQCBzZXQoV2ViQ29yZV9JRExfRklM
RVMKICAgICBjc3MvU3R5bGVTaGVldExpc3QuaWRsCiAgICAgY3NzL1dlYktpdENTU0ZpbHRlclJ1
bGUuaWRsCiAgICAgY3NzL1dlYktpdENTU0ZpbHRlclZhbHVlLmlkbAorICAgIGNzcy9XZWJLaXRD
U1NGb250RmFjZUxvYWRFdmVudC5pZGwKICAgICBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmlk
bAogICAgIGNzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmlkbAogICAgIGNzcy9XZWJLaXRDU1NN
YXRyaXguaWRsCkBAIC0zMzksNiArMzQwLDcgQEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAg
Y3NzL1dlYktpdENTU1JlZ2lvblJ1bGUuaWRsCiAgICAgY3NzL1dlYktpdENTU1RyYW5zZm9ybVZh
bHVlLmlkbAogICAgIGNzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaWRsCisgICAgY3NzL1dlYktp
dEZvbnRMb2FkZXIuaWRsCiAKICAgICBkb20vQXR0ci5pZGwKICAgICBkb20vQmVmb3JlTG9hZEV2
ZW50LmlkbApAQCAtMTExMCw2ICsxMTEyLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGNz
cy9WaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwCiAgICAgY3NzL1dlYktpdENTU0ZpbHRlclJ1bGUu
Y3BwCiAgICAgY3NzL1dlYktpdENTU0ZpbHRlclZhbHVlLmNwcAorICAgIGNzcy9XZWJLaXRDU1NG
b250RmFjZUxvYWRFdmVudC5jcHAKICAgICBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcAog
ICAgIGNzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcAogICAgIGNzcy9XZWJLaXRDU1NNYXRy
aXguY3BwCkBAIC0xMTE4LDYgKzExMjEsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgY3Nz
L1dlYktpdENTU1NoYWRlclZhbHVlLmNwcAogICAgIGNzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZS5jcHAKICAgICBjc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcAorICAgIGNzcy9XZWJLaXRG
b250TG9hZGVyLmNwcAogCiAgICAgZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAKICAgICBkb20vQW5j
ZXN0b3JDaGFpbldhbGtlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCA2NTUx
YzY4ZDNiMTg2MGE0MDY5ODk5M2YyMTkzNjFlNGI5MGJlMmQxLi42MDJiZDhjYzY4MGJmNzU4NGRi
NGI3ODhjOWUxMDY5MThlZTAxMzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC00
OTAsNiArNDkwLDkgQEAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAjaW5jbHVkZSAiSlNXZWJL
aXRDU1NGaWx0ZXJWYWx1ZS5jcHAiCiAjZW5kaWYKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisj
aW5jbHVkZSAiSlNXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5jcHAiCisjZW5kaWYKICNpbmNs
dWRlICJKU1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NL
ZXlmcmFtZXNSdWxlLmNwcCIKICNpbmNsdWRlICJKU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNw
cCIKQEAgLTQ5OCw2ICs1MDEsOSBAQAogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTTWl4RnVuY3Rpb25W
YWx1ZS5jcHAiCiAjZW5kaWYKICNpbmNsdWRlICJKU1dlYktpdENTU1JlZ2lvblJ1bGUuY3BwIgor
I2lmIEVOQUJMRShGT05UX0xPQURFUikKKyNpbmNsdWRlICJKU1dlYktpdEZvbnRMb2FkZXIuY3Bw
IgorI2VuZGlmCiAjaW5jbHVkZSAiSlNXZWJLaXROYW1lZEZsb3cuY3BwIgogI2luY2x1ZGUgIkpT
V2ViS2l0UG9pbnQuY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDYwNWEyMWVmM2RkZmRmMmE4N2ZlOWNh
MjhhMTVlMWFmZjk2NTAxNDMuLjFkYTkzNDAzNWViYTE5ZTBhZDU1ZjZkNGY2Mjk0ZDExYWRkZDAy
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTk4LDYgKzE5OCw3IEBAIEJJ
TkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2Nzcy9TdHlsZVNoZWV0TGlzdC5pZGwgXAog
ICAgICQoV2ViQ29yZSkvY3NzL1dlYktpdENTU0ZpbHRlclZhbHVlLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9jc3MvV2ViS2l0Q1NTRmlsdGVyUnVsZS5pZGwgXAorICAgICQoV2ViQ29yZSkvY3NzL1dl
YktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvV2ViS2l0
Q1NTS2V5ZnJhbWVSdWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvV2ViS2l0Q1NTS2V5ZnJh
bWVzUnVsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL1dlYktpdENTU01hdHJpeC5pZGwgXApA
QCAtMjA1LDYgKzIwNiw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2Nzcy9X
ZWJLaXRDU1NSZWdpb25SdWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvV2ViS2l0Q1NTVHJh
bnNmb3JtVmFsdWUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1
bGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2Nzcy9XZWJLaXRGb250TG9hZGVyLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9kb20vQXR0ci5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0JlZm9yZUxvYWRF
dmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0NEQVRBU2VjdGlvbi5pZGwgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IDFjYmNjMzc2NjNlM2QwOTVjODQxMjc5YjBiZTU5YTE2
NGYwNzhhNDYuLjRiMzY1MWU2MjZiYjU1NjI1YmE2ZTZlZjU1NTE4Njk1YzBjOWJjM2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTIxMSw2ICsyMTEsNyBAQCBJRExfQklORElOR1Mg
Kz0gXAogICAgICQkUFdEL2Nzcy9TdHlsZVNoZWV0TGlzdC5pZGwgXAogICAgICQkUFdEL2Nzcy9X
ZWJLaXRDU1NGaWx0ZXJSdWxlLmlkbCBcCiAgICAgJCRQV0QvY3NzL1dlYktpdENTU0ZpbHRlclZh
bHVlLmlkbCBcCisgICAgJCRQV0QvY3NzL1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbCBc
CiAgICAgJCRQV0QvY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5pZGwgXAogICAgICQkUFdEL2Nz
cy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmlkbCBcCiAgICAgJCRQV0QvY3NzL1dlYktpdENTU01h
dHJpeC5pZGwgXApAQCAtMjE4LDYgKzIxOSw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgJCRQ
V0QvY3NzL1dlYktpdENTU1JlZ2lvblJ1bGUuaWRsIFwKICAgICAkJFBXRC9jc3MvV2ViS2l0Q1NT
VHJhbnNmb3JtVmFsdWUuaWRsIFwKICAgICAkJFBXRC9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxl
LmlkbCBcCisgICAgJCRQV0QvY3NzL1dlYktpdEZvbnRMb2FkZXIuaWRsIFwKICAgICAkJFBXRC9k
b20vQXR0ci5pZGwgXAogICAgICQkUFdEL2RvbS9CZWZvcmVMb2FkRXZlbnQuaWRsIFwKICAgICAk
JFBXRC9kb20vQ2hhcmFjdGVyRGF0YS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
aW5kZXggNTcxNTc1YTg1ODdiYWE0N2ZhZGI5NjU3NzA5ZGZlMDRjMmZjYTg5OS4uZTlmZDVkM2I3
Y2U1MjJmNmUyOWRlMzgxNTY0Y2IzN2JmMTE4NmVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCkBAIC04MDMsNiArODAzLDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTRmlsdGVyUnVsZS5oIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTRmlsdGVyVmFsdWUuY3BwIFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmggXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcCBcCkBAIC04MTcsNiArODE5LDggQEAg
d2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2Vi
S2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktp
dENTU1ZpZXdwb3J0UnVsZS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRD
U1NWaWV3cG9ydFJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdEZvbnRM
b2FkZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Rm9udExvYWRlci5o
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0TmFtZWRGbG93LmNwcCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdE5hbWVkRmxvdy5oIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTV2ViS2l0UG9pbnQuY3BwIFwKQEAgLTEzNDEsNiArMTM0NSw3IEBAIGRvbV9i
aW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvY3NzL1N0eWxlU2hlZXRMaXN0LmlkbCBcCiAJ
JChXZWJDb3JlKS9jc3MvV2ViS2l0Q1NTRmlsdGVyUnVsZS5pZGwgXAogCSQoV2ViQ29yZSkvY3Nz
L1dlYktpdENTU0ZpbHRlclZhbHVlLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvV2ViS2l0Q1NTRm9u
dEZhY2VMb2FkRXZlbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1
bGUuaWRsIFwKIAkkKFdlYkNvcmUpL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmlkbCBcCiAJ
JChXZWJDb3JlKS9jc3MvV2ViS2l0Q1NTTWF0cml4LmlkbCBcCkBAIC0xMzQ4LDYgKzEzNTMsNyBA
QCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL2Nzcy9XZWJLaXRDU1NSZWdpb25S
dWxlLmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaWRsIFwK
IAkkKFdlYkNvcmUpL2Nzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaWRsIFwKKwkkKFdlYkNvcmUp
L2Nzcy9XZWJLaXRGb250TG9hZGVyLmlkbCBcCiAJJChXZWJDb3JlKS9kb20vQXR0ci5pZGwgXAog
CSQoV2ViQ29yZSkvZG9tL0JlZm9yZUxvYWRFdmVudC5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL0NE
QVRBU2VjdGlvbi5pZGwgXApAQCAtMjY5NSw2ICsyNzAxLDggQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTRmlsdGVyUnVsZS5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9jc3MvV2ViS2l0Q1NTRmlsdGVyVmFsdWUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9j
c3MvV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCBcCisJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENT
U0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCBcCisJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0Zv
bnRGYWNlTG9hZEV2ZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFt
ZVJ1bGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgg
XAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcCBcCkBAIC0y
NzExLDYgKzI3MTksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Nz
cy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0
Q1NTVmlld3BvcnRSdWxlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1ZpZXdw
b3J0UnVsZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Rm9udExvYWRlci5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRGb250TG9hZGVyLmggXAogCVNvdXJjZS9XZWJDb3Jl
L2RvbS9BY3RpdmVET01PYmplY3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9N
T2JqZWN0LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9BbmNlc3RvckNoYWluV2Fsa2VyLmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQppbmRleCA5NGU2ZTFiOTZlMWE3NGJhZjU5M2EyMTRkMmExODM2MzljYWY3OTQ2
Li4xMjBlOWE1NmY3NzM1OTQ4ODE2ZTBmMGYxODE5MjU2MTk5YjM2ZDJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
QEAgLTM0Myw2ICszNDMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBjc3MvV2ViS2l0Q1NTQXJyYXlG
dW5jdGlvblZhbHVlLmNwcCBcCiAgICAgY3NzL1dlYktpdENTU0ZpbHRlclJ1bGUuY3BwIFwKICAg
ICBjc3MvV2ViS2l0Q1NTRmlsdGVyVmFsdWUuY3BwIFwKKyAgICBjc3MvV2ViS2l0Q1NTRm9udEZh
Y2VMb2FkRXZlbnQuY3BwIFwKICAgICBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCBcCiAg
ICAgY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwIFwKICAgICBjc3MvV2ViS2l0Q1NTTWF0
cml4LmNwcCBcCkBAIC0zNTIsNiArMzUzLDcgQEAgU09VUkNFUyArPSBcCiAgICAgY3NzL1dlYktp
dENTU1NoYWRlclZhbHVlLmNwcCBcCiAgICAgY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNw
cCBcCiAgICAgY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgXAorICAgIGNzcy9XZWJLaXRG
b250TG9hZGVyLmNwcCBcCiAgICAgZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAgXAogICAgIGRvbS9B
bmNlc3RvckNoYWluV2Fsa2VyLmNwcCBcCiAgICAgZG9tL0F0dHIuY3BwIFwKQEAgLTE1NjYsNiAr
MTU2OCw3IEBAIEhFQURFUlMgKz0gXAogICAgIGNzcy9XZWJLaXRDU1NBcnJheUZ1bmN0aW9uVmFs
dWUuaCBcCiAgICAgY3NzL1dlYktpdENTU0ZpbHRlclJ1bGUuaCBcCiAgICAgY3NzL1dlYktpdENT
U0ZpbHRlclZhbHVlLmggXAorICAgIGNzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oIFwK
ICAgICBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggXAogICAgIGNzcy9XZWJLaXRDU1NLZXlm
cmFtZXNSdWxlLmggXAogICAgIGNzcy9XZWJLaXRDU1NNYXRyaXguaCBcCkBAIC0xNTc1LDYgKzE1
NzgsNyBAQCBIRUFERVJTICs9IFwKICAgICBjc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuaCBcCiAg
ICAgY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggXAogICAgIGNzcy9XZWJLaXRDU1NWaWV3
cG9ydFJ1bGUuaCBcCisgICAgY3NzL1dlYktpdEZvbnRMb2FkZXIuaCBcCiAgICAgZG9tL0FjdGl2
ZURPTU9iamVjdC5oIFwKICAgICBkb20vQW5jZXN0b3JDaGFpbldhbGtlci5oIFwKICAgICBkb20v
QXR0ci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBjNWFkYzAxOTQ1ZTc1MGQwOGJjZWI3NGM0N2I4
NDE2ZjhlZGJkZjYzLi4wZTk4OGI4NzY1ZDJjZmRhMjM0MDNmN2MyZjM4YmNlNTk1MzJlNDAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC0xODUsNiArMTg1LDcgQEAKICAgICAgICAgICAgICdjc3MvU3R5
bGVTaGVldExpc3QuaWRsJywKICAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTRmlsdGVyUnVsZS5p
ZGwnLAogICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5pZGwnLAorICAgICAg
ICAgICAgJ2Nzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5pZGwnLAogICAgICAgICAgICAg
J2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaWRsJywKICAgICAgICAgICAgICdjc3MvV2ViS2l0
Q1NTS2V5ZnJhbWVzUnVsZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NNYXRyaXgu
aWRsJywKQEAgLTE5Miw2ICsxOTMsNyBAQAogICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NSZWdp
b25SdWxlLmlkbCcsCiAgICAgICAgICAgICAnY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmlk
bCcsCiAgICAgICAgICAgICAnY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5pZGwnLAorICAgICAg
ICAgICAgJ2Nzcy9XZWJLaXRGb250TG9hZGVyLmlkbCcsCiAgICAgICAgICAgICAnZG9tL0F0dHIu
aWRsJywKICAgICAgICAgICAgICdkb20vQXV0b2NvbXBsZXRlRXJyb3JFdmVudC5pZGwnLAogICAg
ICAgICAgICAgJ2RvbS9CZWZvcmVMb2FkRXZlbnQuaWRsJywKQEAgLTE2MTksNiArMTYyMSw4IEBA
CiAgICAgICAgICAgICAnY3NzL1dlYktpdENTU0FycmF5RnVuY3Rpb25WYWx1ZS5oJywKICAgICAg
ICAgICAgICdjc3MvV2ViS2l0Q1NTRmlsdGVyUnVsZS5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9X
ZWJLaXRDU1NGaWx0ZXJWYWx1ZS5jcHAnLAorICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NGb250
RmFjZUxvYWRFdmVudC5jcHAnLAorICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NGb250RmFjZUxv
YWRFdmVudC5oJywKICAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCcs
CiAgICAgICAgICAgICAnY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5oJywKICAgICAgICAgICAg
ICdjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAnLApAQCAtMTYzNiw2ICsxNjQwLDggQEAK
ICAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwJywKICAgICAgICAg
ICAgICdjc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmgnLAogICAgICAgICAgICAgJ2Nzcy9XZWJL
aXRDU1NWaWV3cG9ydFJ1bGUuY3BwJywKKyAgICAgICAgICAgICdjc3MvV2ViS2l0Rm9udExvYWRl
ci5oJywKKyAgICAgICAgICAgICdjc3MvV2ViS2l0Rm9udExvYWRlci5jcHAnLAogICAgICAgICAg
ICAgJ2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAnLAogICAgICAgICAgICAg
J2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5oJywKICAgICAgICAgICAgICdlZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDA5NzM4NDU2YTFkMjIwZTExOGEyYjdhN2FmNDk5YTM1
YjIxY2VkOTQuLmY2ZjJlMDE4ZDY4YjcxY2I4OWQ2OGQyY2RhZDVmZDUzMmU3MzI0NzkgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yMzAzOSw2
ICsyMzAzOSw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIgorCQkJCT4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0Q1NTRm9u
dEZhY2VMb2FkRXZlbnQuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0
aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAiCiAJCQkJPgogCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgpAQCAtMjMzNzUsNiArMjM0MzEsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdEZvbnRMb2FkZXIuY3BwIgor
CQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19D
RkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVn
X0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJ
PFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVj
dGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJ
PFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTV2ViS2l0Rm9udExvYWRlci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJ
UmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0TmFtZWRGbG93LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVD
b25maWd1cmF0aW9uCkBAIC0zODYyMyw2ICszODczNSwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4K
IAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcV2ViS2l0Q1NTRm9udEZhY2VMb2Fk
RXZlbnQuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxjc3NcV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaCIKKwkJCQk+CisJCQk8L0ZpbGU+
CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXFdlYktpdENTU0tleWZyYW1lUnVs
ZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMzg2OTQsNiArMzg4MTQsMTQgQEAKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGNzc1xXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCIKIAkJCQk+CiAJCQk8
L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXFdlYktpdEZvbnRMb2Fk
ZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
Llxjc3NcV2ViS2l0Rm9udExvYWRlci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KIAkJPC9GaWx0ZXI+
CiAJCTxGaWx0ZXIKIAkJCU5hbWU9InJlbmRlcmluZyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IGQyZWE1Mzg4NDJjMzNlZDYxYTUwZWQ0
ODU5ZDRiNWJmOGM0Zjk0MDEuLjk2ZTRhZWRmOTZjZDZhMDVjZTVkNzU4MDk0Zjg1MGNjNWQ1YTUx
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
agpAQCAtMTY2Nyw2ICsxNjY3LDEwIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCI+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAiPgogICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE2OTEsNiArMTY5
NSwxMCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRGb250
TG9hZGVyLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktp
dE5hbWVkRmxvdy5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KQEAgLTI5NjcsNiArMjk3NSw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
Llxjc3NcVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGNzc1xXZWJLaXRDU1NBcnJheUZ1bmN0aW9uVmFsdWUuY3BwIiAvPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cY3NzXFdlYktpdENTU0ZpbHRlclZhbHVlLmNwcCIgLz4KKyAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTS2V5ZnJhbWVSdWxl
LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NLZXlmcmFt
ZXNSdWxlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NN
YXRyaXguY3BwIiAvPgpAQCAtMjk3Niw2ICsyOTg1LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGNzc1xXZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCIgLz4K
KyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRGb250TG9hZGVyLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xBdXRvVGFibGVMYXlvdXQuY3Bw
Ij4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC02
MjMyLDEwICs2MjQyLDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0Q1NT
RmlsdGVyVmFsdWUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRDU1NL
ZXlmcmFtZVJ1bGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRDU1NL
ZXlmcmFtZXNSdWxlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0Q1NT
Rm9udEZhY2VMb2FkRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJL
aXRDU1NNYXRyaXguaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRDU1NN
aXhGdW5jdGlvblZhbHVlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0
Q1NTUmVnaW9uUnVsZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdENT
U1RyYW5zZm9ybVZhbHVlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0
Rm9udExvYWRlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdE5hbWVk
Rmxvdy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdFBvaW50LmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiIC8+
CkBAIC03MjM5LDYgKzcyNTEsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXFZp
ZXdwb3J0U3R5bGVSZXNvbHZlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3Nz
XFdlYktpdENTU0FycmF5RnVuY3Rpb25WYWx1ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cY3NzXFdlYktpdENTU0ZpbHRlclZhbHVlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxjc3NcV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTTWF0cml4LmgiIC8+CkBAIC03MjQ4
LDYgKzcyNjEsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXFdlYktpdENTU1NW
R0RvY3VtZW50VmFsdWUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xXZWJL
aXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3Nz
XFdlYktpdENTU1ZpZXdwb3J0UnVsZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
Y3NzXFdlYktpdEZvbnRMb2FkZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJl
bmRlcmluZ1xBdXRvVGFibGVMYXlvdXQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJlbmRlcmluZ1xCaWRpUnVuLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5k
ZXJpbmdcYnJlYWtfbGluZXMuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCAwMjk5NjNjZjFkNTRhYjll
NWQzNWEyZGNkMTUzNzQwMTZkZWQzNDhjLi4zZTYzYmEzZDBiNWE2ZTQ3ZWY4NzM2NmMxY2Q4YTg0
ODFjMGVlNjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC0xNTUxLDYgKzE1NTEsOSBAQAogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU1dlYktpdENTU0ZpbHRlclZhbHVlLmNwcCI+CiAgICAgICA8Rmls
dGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIj4KKyAgICAg
IDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIj4KICAgICAg
IDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTE1
NjksNiArMTU3Miw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0Q1NTVHJh
bnNmb3JtVmFsdWUuY3BwIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4K
ICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRGb250
TG9hZGVyLmNwcCI+CisgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CisgICAg
PC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0TmFtZWRGbG93
LmNwcCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbENv
bXBpbGU+CkBAIC0zNzgzLDYgKzM3ODksOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
Y3NzXFdlYktpdENTU0ZpbHRlclZhbHVlLmNwcCI+CiAgICAgICA8RmlsdGVyPmNzczwvRmlsdGVy
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cY3NzXFdlYktp
dENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCI+CisgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgor
ICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cY3NzXFdlYktpdENT
U0tleWZyYW1lUnVsZS5jcHAiPgogICAgICAgPEZpbHRlcj5jc3M8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KQEAgLTM4MTAsNiArMzgxOSw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
Llxjc3NcV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCI+CiAgICAgICA8RmlsdGVyPmNzczwvRmls
dGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cY3NzXFdl
YktpdEZvbnRMb2FkZXIuY3BwIj4KKyAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CisgICAgPC9D
bENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcQXV0b1RhYmxl
TGF5b3V0LmNwcCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZzwvRmlsdGVyPgogICAgIDwvQ2xD
b21waWxlPgpAQCAtODA4Miw2ICs4MDk0LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
SlNXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNX
ZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oIj4KKyAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJj
ZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
SlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2Vz
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC04MTAwLDYgKzgxMTUsOSBAQAogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmgiPgogICAgICAg
PEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdEZvbnRMb2FkZXIuaCI+CisgICAgICA8RmlsdGVy
PkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTV2ViS2l0TmFtZWRGbG93LmgiPgogICAgICAgPEZpbHRlcj5EZXJpdmVk
U291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA1MDksNiArMTA1MjcsOSBA
QAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXFdlYktpdENTU0ZpbHRlclZhbHVlLmgi
PgogICAgICAgPEZpbHRlcj5jc3M8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oIj4KKyAg
ICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgiPgogICAgICAgPEZpbHRl
cj5jc3M8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNTM2LDYgKzEwNTU3LDkgQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCI+
CiAgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cY3NzXFdlYktpdEZvbnRMb2FkZXIuaCI+CisgICAgICA8RmlsdGVy
PmNzczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ccmVuZGVyaW5nXEF1dG9UYWJsZUxheW91dC5oIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5n
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjI3MWE3NjYyNGM1ZTEyNmI1ZTFjNTkw
NmI1ZWY4NmU2ZTAzZGY0Ny4uMDI2YjdiOTM3ODZiNmQ2ZDA0OWVhMTc5YjZhOGI2NTIzNGFiYzc2
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTA0Myw2ICsxMDQzLDE2IEBACiAJCTNGRkZGOUE5MTU5RDlBNTUwMDIwQkJENSAv
KiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDNGRkZGOUE3MTU5RDlBNTUwMDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3
cG9ydFJ1bGUuaCAqLzsgfTsKIAkJM0ZGRkY5QUQxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0
U3R5bGVSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzRkZGRjlBQjE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVy
LmNwcCAqLzsgfTsKIAkJM0ZGRkY5QUUxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVS
ZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
M0ZGRkY5QUMxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5oICovOyB9
OworCQk0MDlFQkRCMTE2QjdFRTcxMDBDQkEzRkMgLyogV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZl
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwOUVC
REFFMTZCN0VFMjgwMENCQTNGQyAvKiBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oICovOyB9
OworCQk0MDlFQkRCMjE2QjdFRTc0MDBDQkEzRkMgLyogV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5
RUJEQUMxNkI3RUUxQzAwQ0JBM0ZDIC8qIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCAq
LzsgfTsKKwkJNDA5RUJEQjQxNkI3RUU4NzAwQ0JBM0ZDIC8qIFdlYktpdEZvbnRMb2FkZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5RUJEQjMx
NkI3RUU4NzAwQ0JBM0ZDIC8qIFdlYktpdEZvbnRMb2FkZXIuY3BwICovOyB9OworCQk0MDlFQkRC
NjE2QjdFRUEzMDBDQkEzRkMgLyogV2ViS2l0Rm9udExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5RUJEQjUxNkI3RUVBMzAwQ0JBM0ZDIC8q
IFdlYktpdEZvbnRMb2FkZXIuaCAqLzsgfTsKKwkJNDA5RUJEQkExNkI3RjA0NTAwQ0JBM0ZDIC8q
IEpTV2ViS2l0Rm9udExvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MDlFQkRCOTE2QjdGMDQ1MDBDQkEzRkMgLyogSlNXZWJLaXRGb250TG9h
ZGVyLmNwcCAqLzsgfTsKKwkJNDA5RUJEQzAxNkI3RjM4RTAwQ0JBM0ZDIC8qIEpTV2ViS2l0Rm9u
dExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDA5RUJEQkYxNkI3RjM4RTAwQ0JBM0ZDIC8qIEpTV2ViS2l0Rm9udExvYWRlci5oICovOyB9Owor
CQk0MDlFQkRDMzE2QjdGM0E2MDBDQkEzRkMgLyogSlNXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5RUJE
QzIxNkI3RjNBNjAwQ0JBM0ZDIC8qIEpTV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaCAqLzsg
fTsKKwkJNDA5RUJEQzUxNkI3RjNDQTAwQ0JBM0ZDIC8qIEpTV2ViS2l0Q1NTRm9udEZhY2VMb2Fk
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDA5RUJEQzQxNkI3RjNDQTAwQ0JBM0ZDIC8qIEpTV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQu
Y3BwICovOyB9OworCQk0MEVDQUU3RTE2QjhCNjcyMDBDMzYxMDMgLyogSlNET01FcnJvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDBFQ0FFN0QxNkI4
QjY3MjAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuaCAqLzsgfTsKKwkJNDBFQ0FFODExNkI4QjY4QTAw
QzM2MTAzIC8qIEpTRE9NRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDBFQ0FFODAxNkI4QjY4QTAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuY3Bw
ICovOyB9OwogCQk0MTAwMkNDRDBGNjZFREVGMDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwMkND
QjBGNjZFREVGMDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmggKi87IH07CiAJCTQxMDAy
Q0NFMEY2NkVERUYwMDlFNjYwRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDJDQ0MwRjY2RURFRjAwOUU2
NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAgKi87IH07CiAJCTQxMEI3RTcyMTA0NUZBQjAw
MEQ4MjI0RiAvKiBKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyogSlNN
ZXNzYWdlRXZlbnRDdXN0b20uY3BwICovOyB9OwpAQCAtODM2OSw2ICs4Mzc5LDE4IEBACiAJCTNG
RkZGOUE3MTU5RDlBNTUwMDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGRkZGOUFCMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3
cG9ydFN0eWxlUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJM0ZGRkY5QUMxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQUMxNkI3RUUxQzAwQ0JBM0ZDIC8q
IFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQUUxNkI3RUUyODAwQ0JBM0ZDIC8qIFdlYktpdENTU0Zv
bnRGYWNlTG9hZEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktp
dENTU0ZvbnRGYWNlTG9hZEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQw
OUVCREFGMTZCN0VFNTcwMENCQTNGQyAvKiBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MDlFQkRCMzE2QjdFRTg3MDBDQkEzRkMgLyog
V2ViS2l0Rm9udExvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJLaXRGb250TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDA5
RUJEQjUxNkI3RUVBMzAwQ0JBM0ZDIC8qIFdlYktpdEZvbnRMb2FkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0Rm9udExvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MDlFQkRCNzE2QjdFRUJBMDBDQkEzRkMgLyogV2ViS2l0Rm9udExvYWRl
ci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0Rm9udExvYWRlci5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQwOUVCREI5MTZCN0YwNDUwMENCQTNGQyAvKiBKU1dl
YktpdEZvbnRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNXZWJLaXRGb250TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDA5
RUJEQkYxNkI3RjM4RTAwQ0JBM0ZDIC8qIEpTV2ViS2l0Rm9udExvYWRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYktpdEZvbnRMb2FkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQzIxNkI3RjNBNjAwQ0JBM0ZDIC8qIEpTV2ViS2l0Q1NT
Rm9udEZhY2VMb2FkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNX
ZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MDlFQkRDNDE2QjdGM0NBMDBDQkEzRkMgLyogSlNXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdENTU0Zv
bnRGYWNlTG9hZEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDBFQ0FF
N0QxNkI4QjY3MjAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNET01FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MEVDQUU4MDE2QjhCNjhBMDBDMzYxMDMgLyogSlNET01FcnJvci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDEwMDJDQ0IwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2Fs
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRGdW5jdGlvbkNhbGwu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwMDJDQ0MwRjY2RURFRjAwOUU2NjBE
IC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTY3JpcHRGdW5jdGlvbkNhbGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZXNzYWdlRXZlbnRDdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU5NzUsMTAgKzE1OTk3LDE2
IEBACiAJCQkJQThEMDZCMzcwQTI2NURDRDAwNUU3MjAzIC8qIEhUTUxOYW1lcy5oICovLAogCQkJ
CTUzRTI5RTVDMTY3QThBMTkwMDU4NkQzRCAvKiBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNw
cCAqLywKIAkJCQk1M0UyOUU1RDE2N0E4QTE5MDA1ODZEM0QgLyogSW50ZXJuYWxTZXR0aW5nc0dl
bmVyYXRlZC5oICovLAorCQkJCTQwRUNBRTgwMTZCOEI2OEEwMEMzNjEwMyAvKiBKU0RPTUVycm9y
LmNwcCAqLywKKwkJCQk0MEVDQUU3RDE2QjhCNjcyMDBDMzYxMDMgLyogSlNET01FcnJvci5oICov
LAogCQkJCTkzOEU2NUY2MDlGMDk4NUQwMDhBNDhFQyAvKiBKU0hUTUxFbGVtZW50V3JhcHBlckZh
Y3RvcnkuY3BwICovLAogCQkJCTkzOEU2NUYwMDlGMDk4NDAwMDhBNDhFQyAvKiBKU0hUTUxFbGVt
ZW50V3JhcHBlckZhY3RvcnkuaCAqLywKIAkJCQk4NTc0RDFGMTBBREU2MTIyMDA0Q0JBMTEgLyog
SlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwICovLAogCQkJCTg1NzREMUYyMEFERTYxMjIw
MDRDQkExMSAvKiBKU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5oICovLAorCQkJCTQwOUVCREM0
MTZCN0YzQ0EwMENCQTNGQyAvKiBKU1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCAqLywK
KwkJCQk0MDlFQkRDMjE2QjdGM0E2MDBDQkEzRkMgLyogSlNXZWJLaXRDU1NGb250RmFjZUxvYWRF
dmVudC5oICovLAorCQkJCTQwOUVCREI5MTZCN0YwNDUwMENCQTNGQyAvKiBKU1dlYktpdEZvbnRM
b2FkZXIuY3BwICovLAorCQkJCTQwOUVCREJGMTZCN0YzOEUwMENCQTNGQyAvKiBKU1dlYktpdEZv
bnRMb2FkZXIuaCAqLywKIAkJCQlGQUJFNzJGQjEwNTlDMjExMDBEOTk5REQgLyogTWF0aE1MRWxl
bWVudEZhY3RvcnkuY3BwICovLAogCQkJCTQ0QTI4QUFCMTJERkI4QUMwMEFFOTIzQiAvKiBNYXRo
TUxFbGVtZW50RmFjdG9yeS5oICovLAogCQkJCUZBQkU3MkZDMTA1OUMyMTEwMEQ5OTlERCAvKiBN
YXRoTUxOYW1lcy5jcHAgKi8sCkBAIC0yMTk0OCw2ICsyMTk3Niw5IEBACiAJCQkJMzEwNjAzNkMx
NDMyN0QyRTAwQUJGNEJBIC8qIFdlYktpdENTU0ZpbHRlclZhbHVlLmNwcCAqLywKIAkJCQkzMTA2
MDM2RDE0MzI3RDJFMDBBQkY0QkEgLyogV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCAqLywKIAkJCQkz
MTA2MDM2RTE0MzI3RDJFMDBBQkY0QkEgLyogV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaWRsICovLAor
CQkJCTQwOUVCREFDMTZCN0VFMUMwMENCQTNGQyAvKiBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVu
dC5jcHAgKi8sCisJCQkJNDA5RUJEQUUxNkI3RUUyODAwQ0JBM0ZDIC8qIFdlYktpdENTU0ZvbnRG
YWNlTG9hZEV2ZW50LmggKi8sCisJCQkJNDA5RUJEQUYxNkI3RUU1NzAwQ0JBM0ZDIC8qIFdlYktp
dENTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbCAqLywKIAkJCQkzMTI4OEU2RTBFMzAwNUQ2MDAzNjE5
QUUgLyogV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCAqLywKIAkJCQkzMTI4OEU2RjBFMzAwNUQ2
MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggKi8sCiAJCQkJMzE2RkUwOTEwRTZD
Q0Q3RjAwQkY2MDg4IC8qIFdlYktpdENTU0tleWZyYW1lUnVsZS5pZGwgKi8sCkBAIC0yMTk3Miw2
ICsyMjAwMyw5IEBACiAJCQkJM0ZGRkY5QTYxNTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1Zp
ZXdwb3J0UnVsZS5jcHAgKi8sCiAJCQkJM0ZGRkY5QTcxNTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktp
dENTU1ZpZXdwb3J0UnVsZS5oICovLAogCQkJCTNGMkIzM0UzMTY1QUJEMzUwMEUzOTg3QyAvKiBX
ZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaWRsICovLAorCQkJCTQwOUVCREIzMTZCN0VFODcwMENCQTNG
QyAvKiBXZWJLaXRGb250TG9hZGVyLmNwcCAqLywKKwkJCQk0MDlFQkRCNTE2QjdFRUEzMDBDQkEz
RkMgLyogV2ViS2l0Rm9udExvYWRlci5oICovLAorCQkJCTQwOUVCREI3MTZCN0VFQkEwMENCQTNG
QyAvKiBXZWJLaXRGb250TG9hZGVyLmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0gY3NzOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI0NjUzLDYgKzI0Njg3LDcgQEAKIAkJCQkxQUMy
MjYwRDBEQjY5RjE5MDA4OUI2NjkgLyogSlNET01BcHBsaWNhdGlvbkNhY2hlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0I3MEQ2NDA5RUIwQzdDMDA5RDg0NjggLyogSlNET01CaW5kaW5nLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzYwRDdDMTBEMjlBNDYzMDBCOTkxOEYgLyogSlNET01Db3JlRXhj
ZXB0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MEVDQUU3RTE2QjhCNjcyMDBDMzYxMDMgLyog
SlNET01FcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODk4Nzg1QTUxMjJDQTJBNzAwM0FBQkRB
IC8qIEpTRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODkzQzQ4MzcxMjQ5NTQ3
MjAwMkIzRDg2IC8qIEpTRE9NRmlsZVN5c3RlbVN5bmMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJF
MDg4OEQ1MTE0ODg0OEEwMEFGNDI2NSAvKiBKU0RPTUZvcm1EYXRhLmggaW4gSGVhZGVycyAqLywK
QEAgLTI1MDkyLDYgKzI1MTI3LDcgQEAKIAkJCQkzMUMwRkYzRTBFNENFRkFDMDA3RDZGRTUgLyog
SlNXZWJLaXRBbmltYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTJFOEFFMzgxNkE0
OTg0MDAwNkJCM0FBIC8qIEpTV2ViS2l0Q1NTRmlsdGVyUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMzEwNjAzNzUxNDMyODE5QzAwQUJGNEJBIC8qIEpTV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCBp
biBIZWFkZXJzICovLAorCQkJCTQwOUVCREMzMTZCN0YzQTYwMENCQTNGQyAvKiBKU1dlYktpdENT
U0ZvbnRGYWNlTG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA3MjBFNkNDQkVF
MDBCRjYwODggLyogSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTMxNkZFMDc0MEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1lc1J1bGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTQ5ODM5MTQwMEYxRTc2NzUwMEMyMzc4MiAvKiBKU1dlYktpdENT
U01hdHJpeC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTA5OSw2ICsyNTEzNSw3IEBACiAJCQkJOEFE
MEE1OTUxNEM4ODMzNjAwMEQ4M0M1IC8qIEpTV2ViS2l0Q1NTUmVnaW9uUnVsZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzE2MTFFNUIwRTFDNERFMDAwRjZBNTc5IC8qIEpTV2ViS2l0Q1NTVHJhbnNm
b3JtVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTNGMkIzM0VGMTY1QUYxNTYwMEUzOTg3QyAv
KiBKU1dlYktpdENTU1ZpZXdwb3J0UnVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDA5RUJEQzAx
NkI3RjM4RTAwQ0JBM0ZDIC8qIEpTV2ViS2l0Rm9udExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDk0QkQ3OUUwRjU1Qzk0QzAwNzQ3ODI4IC8qIEpTV2ViS2l0UG9pbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTMxQzBGRjQwMEU0Q0VGQUMwMDdENkZFNSAvKiBKU1dlYktpdFRyYW5zaXRpb25F
dmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNURBNUUwRkQxMDJCOTUzODAwMDg4Q0Y5IC8qIEpT
V2ViU29ja2V0LmggaW4gSGVhZGVycyAqLywKQEAgLTI2MjYxLDYgKzI2Mjk4LDcgQEAKIAkJCQkx
NTBCOTIzQTE1RjA4REM0MDBFMTA5ODYgLyogV2ViS2l0Q1NTQXJyYXlGdW5jdGlvblZhbHVlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBMkU4QUUzMTE2QTQ4RTFDMDA2QkIzQUEgLyogV2ViS2l0Q1NT
RmlsdGVyUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEwNjAzNzAxNDMyN0QyRTAwQUJGNEJB
IC8qIFdlYktpdENTU0ZpbHRlclZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MDlFQkRCMTE2
QjdFRTcxMDBDQkEzRkMgLyogV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTMxMjg4RTczMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZVJ1
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMjg4RTc1MEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJL
aXRDU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTgzOTE1OTBGMUU3NzY5
MDBDMjM3ODIgLyogV2ViS2l0Q1NTTWF0cml4LmggaW4gSGVhZGVycyAqLywKQEAgLTI2MjcwLDYg
KzI2MzA4LDcgQEAKIAkJCQkwNTYyRjk0NzE1NzNFQ0VCMDAzMUNBMTYgLyogV2ViS2l0Q1NTU1ZH
RG9jdW1lbnRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5QUREMjMwQ0M0MDMyNjAwMDk4
QzRDIC8qIFdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzRkZG
RjlBOTE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0MDlFQkRCNjE2QjdFRUEzMDBDQkEzRkMgLyogV2ViS2l0Rm9udExvYWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDk0QkQ3OTUwRjU1QzhFRTAwNzQ3ODI4IC8qIFdlYktpdFBv
aW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUMwRkYyNTBFNENFQjZFMDA3RDZGRTUgLyogV2Vi
S2l0VHJhbnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkNGMzMyRjBGMkI5QTI1
MDA0QjY3OTUgLyogV2ViTGF5ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjc5NTEsNiArMjc5OTAs
NyBAQAogCQkJCTFBQzIyNjBDMERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9uQ2Fj
aGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNzBENjMwOUVCMEM3QzAwOUQ4NDY4IC8qIEpT
RE9NQmluZGluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzYwRDdDMDBEMjlBNDYzMDBCOTkx
OEYgLyogSlNET01Db3JlRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQwRUNBRTgx
MTZCOEI2OEEwMEMzNjEwMyAvKiBKU0RPTUVycm9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5
ODc4NUE0MTIyQ0EyQTcwMDNBQUJEQSAvKiBKU0RPTUZpbGVTeXN0ZW0uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODkzQzQ4MzYxMjQ5NTQ3MjAwMkIzRDg2IC8qIEpTRE9NRmlsZVN5c3RlbVN5bmMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkUwODg4RDQxMTQ4ODQ4QTAwQUY0MjY1IC8qIEpTRE9N
Rm9ybURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODQ3MSw2ICsyODUxMSw3IEBACiAJCQkJ
MzFDMEZGM0QwRTRDRUZBQzAwN0Q2RkU1IC8qIEpTV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTJFOEFFMzcxNkE0OTg0MDAwNkJCM0FBIC8qIEpTV2ViS2l0Q1NT
RmlsdGVyUnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTA2MDM3NDE0MzI4MTlDMDBBQkY0
QkEgLyogSlNXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MDlF
QkRDNTE2QjdGM0NBMDBDQkEzRkMgLyogSlNXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkzMTZGRTA3MTBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRD
U1NLZXlmcmFtZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFBRDE0QzUxMjk3MzU0OTAw
QUNBOTg5IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTMxNkZFMDczMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1lc1J1
bGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODQ4MCw2ICsyODUyMSw3IEBACiAJCQkJOEFEMEE1
OTQxNEM4ODMzNjAwMEQ4M0M1IC8qIEpTV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkzMTYxMUU1QTBFMUM0REUwMDBGNkE1NzkgLyogSlNXZWJLaXRDU1NUcmFuc2Zv
cm1WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzRjJCMzNFRTE2NUFGMTU2MDBFMzk4N0Mg
LyogSlNXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDA5RUJE
QkExNkI3RjA0NTAwQ0JBM0ZDIC8qIEpTV2ViS2l0Rm9udExvYWRlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlENzYxM0FDNDE0NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDk0QkQ3OUQwRjU1Qzk0QzAwNzQ3ODI4IC8qIEpTV2ViS2l0
UG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyNzVCNzkxMUM1RDFDMzAwQzkyMDZDIC8q
IEpTV2ViS2l0UG9pbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTQzNSw2ICsyOTQ3
Nyw3IEBACiAJCQkJMTUwQjkyMzkxNUYwOERDNDAwRTEwOTg2IC8qIFdlYktpdENTU0FycmF5RnVu
Y3Rpb25WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMkU4QUUzMDE2QTQ4RTFDMDA2QkIz
QUEgLyogV2ViS2l0Q1NTRmlsdGVyUnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTA2MDM2
RjE0MzI3RDJFMDBBQkY0QkEgLyogV2ViS2l0Q1NTRmlsdGVyVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNDA5RUJEQjIxNkI3RUU3NDAwQ0JBM0ZDIC8qIFdlYktpdENTU0ZvbnRGYWNlTG9h
ZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxMjg4RTcyMEUzMDA1RDYwMDM2MTlBRSAv
KiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzEyODhFNzQw
RTMwMDVENjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDk4MzkxNTgwRjFFNzc2OTAwQzIzNzgyIC8qIFdlYktpdENTU01hdHJpeC5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTI5NDQ1LDYgKzI5NDg4LDcgQEAKIAkJCQlCQzlBREQ4MDBDQzQw
OTIyMDAwOThDNEMgLyogV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJM0ZGRkY5QTgxNTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTE0MTRCNTEzQTBGMDUwMDAxOTk5NkMgLyogV2ViS2l0
Rm9udEZhbWlseU5hbWVzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQwOUVCREI0MTZCN0VFODcw
MENCQTNGQyAvKiBXZWJLaXRGb250TG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQ3NjEz
QTUwMTQ3NEYxM0YwMERCODYwNiAvKiBXZWJLaXROYW1lZEZsb3cuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMzFDMEZGMjQwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkNGMzMyRTBGMkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5
ZXIubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRGljdGlvbmFyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rp
b25hcnkuY3BwCmluZGV4IGY5ODA0ZGY2YTIxYWQ1YzJlOTFlZjAxMTAyMTVhZjA2NGU3YzliNmIu
LjlmNjA2YjEwNDE0ZWFiZGU0ZjE4NGRjNTNmZjk0NDFiODk5MDdhN2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiAj
aW5jbHVkZSAiQXJyYXlWYWx1ZS5oIgogI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKKyNpbmNsdWRl
ICJKU0NTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIkpTRE9NRXJyb3IuaCIKICNpbmNsdWRl
ICJKU0RPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJK
U01lc3NhZ2VQb3J0Q3VzdG9tLmgiCkBAIC0zNSw2ICszNyw3IEBACiAjaW5jbHVkZSAiSlNTdG9y
YWdlLmgiCiAjaW5jbHVkZSAiSlNUcmFja0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTVWludDhBcnJh
eS5oIgorI2luY2x1ZGUgIkpTVm9pZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUu
aCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgpAQCAtMjI2LDYgKzIyOSwyNiBAQCB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZh
bHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8TWVkaQogfQog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCit2b2lkIEpTRGljdGlvbmFyeTo6Y29u
dmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8Q1NT
Rm9udEZhY2VSdWxlPiYgcmVzdWx0KQoreworICAgIHJlc3VsdCA9IHRvQ1NTRm9udEZhY2VSdWxl
KHZhbHVlKTsKK30KKwordm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPERPTUVycm9yPiYgcmVzdWx0KQorewor
ICAgIHJlc3VsdCA9IHRvRE9NRXJyb3IodmFsdWUpOworfQorCit2b2lkIEpTRGljdGlvbmFyeTo6
Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJl
ZlB0cjxWb2lkQ2FsbGJhY2s+JiByZXN1bHQpCit7CisgICAgaWYgKCF2YWx1ZS5pc0Z1bmN0aW9u
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIHJlc3VsdCA9IEpTVm9pZENhbGxiYWNrOjpjcmVh
dGUoYXNPYmplY3QodmFsdWUpLCBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCkpKTsKK30KKyNlbmRpZgorCiBib29sIEpTRGljdGlvbmFyeTo6Z2V0
V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBTdHJp
bmcmIHJlc3VsdCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWxpZCgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmgKaW5kZXggNzI5Mjc2NGIxZjMzZDE4ZWE0YmFl
MmFiNGFjN2Q5MmE0MDljMTYwOS4uODZkNDVlMDU5MjliZmEzNzQwN2NhOGFkMzVjYzlmNzQwNWIz
OTZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmgKQEAgLTM2
LDcgKzM2LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXJyYXlWYWx1ZTsKK2Ns
YXNzIENTU0ZvbnRGYWNlUnVsZTsKIGNsYXNzIERpY3Rpb25hcnk7CitjbGFzcyBET01FcnJvcjsK
IGNsYXNzIERPTVdpbmRvdzsKIGNsYXNzIEV2ZW50VGFyZ2V0OwogY2xhc3MgTWVkaWFLZXlFcnJv
cjsKQEAgLTQ2LDYgKzQ4LDcgQEAgY2xhc3MgU2NyaXB0VmFsdWU7CiBjbGFzcyBTZXJpYWxpemVk
U2NyaXB0VmFsdWU7CiBjbGFzcyBTdG9yYWdlOwogY2xhc3MgVHJhY2tCYXNlOworY2xhc3MgVm9p
ZENhbGxiYWNrOwogCiBjbGFzcyBKU0RpY3Rpb25hcnkgewogcHVibGljOgpAQCAtMTE5LDYgKzEy
MiwxMSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3RhdGljIHZv
aWQgY29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBSZWZQdHI8TWVk
aWFTdHJlYW0+JiByZXN1bHQpOwogI2VuZGlmCisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorICAg
IHN0YXRpYyB2b2lkIGNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwg
UmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4mIHJlc3VsdCk7CisgICAgc3RhdGljIHZvaWQgY29udmVy
dFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBSZWZQdHI8RE9NRXJyb3I+JiBy
ZXN1bHQpOworICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSwgUmVmUHRyPFZvaWRDYWxsYmFjaz4mIHJlc3VsdCk7CisjZW5kaWYKIAogICAg
IEpTQzo6RXhlY1N0YXRlKiBtX2V4ZWM7CiAgICAgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4g
bV9pbml0aWFsaXplck9iamVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L0RpY3Rpb25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFy
eS5jcHAKaW5kZXggOGE5Y2YxZGY2YmI1NWRiOTI3ZDNmNDEwZjNjNmI3YzlkMGRhM2VkMi4uZDYy
Y2I4N2M0NjVlN2ZjODVhMTkwYTgwOGNiMTdmNWI3OTUzM2VlMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvRGljdGlvbmFyeS5jcHAKQEAgLTY0LDYgKzY0LDEyIEBACiAjaW5jbHVkZSAi
VjhNZWRpYVN0cmVhbS5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisjaW5j
bHVkZSAiVjhDU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJWOERPTUVycm9yLmgiCisjaW5j
bHVkZSAiVjhWb2lkQ2FsbGJhY2suaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IERpY3Rpb25hcnk6OkRpY3Rpb25hcnkoKQpAQCAtNDk4LDYgKzUwNCw1NSBAQCBib29sIERpY3Rp
b25hcnk6OmdldChjb25zdCBTdHJpbmcmIGtleSwgQXJyYXlWYWx1ZSYgdmFsdWUpIGNvbnN0CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCitib29sIERpY3Rp
b25hcnk6OmdldChjb25zdCBTdHJpbmcmIGtleSwgUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4mIHZh
bHVlKSBjb25zdAoreworICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHY4VmFsdWU7CisgICAgaWYg
KCFnZXRLZXkoa2V5LCB2OFZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQ1NT
Rm9udEZhY2VSdWxlKiBzb3VyY2UgPSAwOworICAgIGlmICh2OFZhbHVlLT5Jc09iamVjdCgpKSB7
CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IHY4OjpIYW5kbGU8djg6
Ok9iamVjdD46OkNhc3QodjhWYWx1ZSk7CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4g
Zm9udGZhY2UgPSB3cmFwcGVyLT5GaW5kSW5zdGFuY2VJblByb3RvdHlwZUNoYWluKFY4Q1NTRm9u
dEZhY2VSdWxlOjpHZXRUZW1wbGF0ZSgpKTsKKyAgICAgICAgaWYgKCFmb250ZmFjZS5Jc0VtcHR5
KCkpCisgICAgICAgICAgICBzb3VyY2UgPSBWOENTU0ZvbnRGYWNlUnVsZTo6dG9OYXRpdmUoZm9u
dGZhY2UpOworICAgIH0KKyAgICB2YWx1ZSA9IHNvdXJjZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KworYm9vbCBEaWN0aW9uYXJ5OjpnZXQoY29uc3QgU3RyaW5nJiBrZXksIFJlZlB0cjxET01FcnJv
cj4mIHZhbHVlKSBjb25zdAoreworICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHY4VmFsdWU7Cisg
ICAgaWYgKCFnZXRLZXkoa2V5LCB2OFZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgRE9NRXJyb3IqIGVycm9yID0gMDsKKyAgICBpZiAodjhWYWx1ZS0+SXNPYmplY3QoKSkgewor
ICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSB2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+OjpDYXN0KHY4VmFsdWUpOworICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGRv
bUVycm9yID0gd3JhcHBlci0+RmluZEluc3RhbmNlSW5Qcm90b3R5cGVDaGFpbihWOERPTUVycm9y
OjpHZXRUZW1wbGF0ZSgpKTsKKyAgICAgICAgaWYgKCFkb21FcnJvci5Jc0VtcHR5KCkpCisgICAg
ICAgICAgICBlcnJvciA9IFY4RE9NRXJyb3I6OnRvTmF0aXZlKGRvbUVycm9yKTsKKyAgICB9Cisg
ICAgdmFsdWUgPSBlcnJvcjsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBEaWN0aW9uYXJ5
OjpnZXQoY29uc3QgU3RyaW5nJiBrZXksIFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiB2YWx1ZSkgY29u
c3QKK3sKKyAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiB2OFZhbHVlOworICAgIGlmICghZ2V0S2V5
KGtleSwgdjhWYWx1ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghdjhWYWx1
ZS0+SXNGdW5jdGlvbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB2YWx1ZSA9IFY4
Vm9pZENhbGxiYWNrOjpjcmVhdGUodjhWYWx1ZSwgZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKyNlbmRpZgorCiBib29sIERpY3Rpb25hcnk6OmdldE93
blByb3BlcnRpZXNBc1N0cmluZ0hhc2hNYXAoSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGhhc2hN
YXApIGNvbnN0CiB7CiAgICAgaWYgKCFpc09iamVjdCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFyeS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvRGljdGlvbmFyeS5oCmluZGV4IDc2NTAyOTVjMzIxZmI0ZmQ4NTZlNDc0YmI5YmFmZDkzM2Qw
ZDc3ZjYuLjI3NGI3ZDkxYzk3OGQzMWU1ZDk5YzEwMmZjMDM3NDIxY2Q1YTBkZGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmgKQEAgLTM5LDYgKzM5LDggQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXJyYXlWYWx1ZTsKK2NsYXNzIENTU0ZvbnRGYWNlUnVs
ZTsKK2NsYXNzIERPTUVycm9yOwogY2xhc3MgRE9NV2luZG93OwogY2xhc3MgSURCS2V5UmFuZ2U7
CiBjbGFzcyBNZWRpYUtleUVycm9yOwpAQCAtNDgsNiArNTAsNyBAQCBjbGFzcyBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdDsKIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDsKIGNsYXNz
IFN0b3JhZ2U7CiBjbGFzcyBUcmFja0Jhc2U7CitjbGFzcyBWb2lkQ2FsbGJhY2s7CiAKIGNsYXNz
IERpY3Rpb25hcnkgewogcHVibGljOgpAQCAtOTMsNiArOTYsMTEgQEAgcHVibGljOgogICAgIGJv
b2wgZ2V0KGNvbnN0IFN0cmluZyYsIERpY3Rpb25hcnkmKSBjb25zdDsKICAgICBib29sIGdldChj
b25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpIGNvbnN0OwogICAgIGJvb2wgZ2V0KGNvbnN0
IFN0cmluZyYsIEFycmF5VmFsdWUmKSBjb25zdDsKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisg
ICAgYm9vbCBnZXQoY29uc3QgU3RyaW5nJiwgUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4mKSBjb25z
dDsKKyAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBSZWZQdHI8RE9NRXJyb3I+JikgY29uc3Q7
CisgICAgYm9vbCBnZXQoY29uc3QgU3RyaW5nJiwgUmVmUHRyPFZvaWRDYWxsYmFjaz4mKSBjb25z
dDsKKyNlbmRpZgogCiAgICAgYm9vbCBnZXRPd25Qcm9wZXJ0aWVzQXNTdHJpbmdIYXNoTWFwKEhh
c2hNYXA8U3RyaW5nLCBTdHJpbmc+JikgY29uc3Q7CiAgICAgYm9vbCBnZXRPd25Qcm9wZXJ0eU5h
bWVzKFZlY3RvcjxTdHJpbmc+JikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udEZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcApp
bmRleCAyNzdmYmQ5Mjg5ZjZkNzc4MWY4MWFjMzQ5NDllNzJmMjg2NDMwNWFkLi4yYzkxYWY0NjIz
NDcxMzk0MTU5NDA5NzVlNWIxOTM3MGU5ZWE5NGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udEZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFj
ZS5jcHAKQEAgLTI5LDggKzI5LDEwIEBACiAjaW5jbHVkZSAiQ1NTRm9udEZhY2VTb3VyY2UuaCIK
ICNpbmNsdWRlICJDU1NGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJDU1NTZWdtZW50ZWRGb250
RmFjZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9u
LmgiCiAjaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIKKyNpbmNsdWRlICJXZWJLaXRGb250TG9h
ZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODEsNiArODMsMTUgQEAgdm9pZCBD
U1NGb250RmFjZTo6Zm9udExvYWRlZChDU1NGb250RmFjZVNvdXJjZSogc291cmNlKQogICAgIGlm
IChtX3NlZ21lbnRlZEZvbnRGYWNlcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAorI2lm
IEVOQUJMRShGT05UX0xPQURFUikKKyAgICBpZiAobV9sb2FkU3RhdGUgPT0gTG9hZGluZykgewor
ICAgICAgICBpZiAoc291cmNlLT5lbnN1cmVGb250RGF0YSgpKQorICAgICAgICAgICAgbm90aWZ5
Rm9udExvYWRlcihMb2FkZWQpOworICAgICAgICBlbHNlIGlmICghaXNWYWxpZCgpKQorICAgICAg
ICAgICAgbm90aWZ5Rm9udExvYWRlcihFcnJvcik7CisgICAgfQorI2VuZGlmCisKICAgICBIYXNo
U2V0PENTU1NlZ21lbnRlZEZvbnRGYWNlKj46Oml0ZXJhdG9yIGVuZCA9IG1fc2VnbWVudGVkRm9u
dEZhY2VzLmVuZCgpOwogICAgIGZvciAoSGFzaFNldDxDU1NTZWdtZW50ZWRGb250RmFjZSo+Ojpp
dGVyYXRvciBpdCA9IG1fc2VnbWVudGVkRm9udEZhY2VzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytp
dCkKICAgICAgICAgKCppdCktPmZvbnRMb2FkZWQodGhpcyk7CkBAIC04OSw2ICsxMDAsMTAgQEAg
dm9pZCBDU1NGb250RmFjZTo6Zm9udExvYWRlZChDU1NGb250RmFjZVNvdXJjZSogc291cmNlKQog
ICAgIC8vIHRoZSBzYW1lIGZvbnQgc2VsZWN0b3IsIHNvIGl0J3Mgd2FzdGVmdWwgdG8gc3RvcmUg
aXQgaW4gdGhlIENTU0ZvbnRGYWNlLgogICAgIENTU0ZvbnRTZWxlY3RvciogZm9udFNlbGVjdG9y
ID0gKCptX3NlZ21lbnRlZEZvbnRGYWNlcy5iZWdpbigpKS0+Zm9udFNlbGVjdG9yKCk7CiAgICAg
Zm9udFNlbGVjdG9yLT5mb250TG9hZGVkKCk7CisKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisg
ICAgZm9udFNlbGVjdG9yLT5kb2N1bWVudCgpLT53ZWJraXRGb250bG9hZGVyKCktPm5vdGlmeUZv
bnRzUmVhZHkoKTsKKyNlbmRpZgogfQogCiBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBDU1NG
b250RmFjZTo6Z2V0Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRp
b24sIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMpCkBAIC0xMDAsMTcg
KzExNSw1NSBAQCBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBDU1NGb250RmFjZTo6Z2V0Rm9u
dERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RAogICAgIEFTU0VSVCghbV9zZWdtZW50
ZWRGb250RmFjZXMuaXNFbXB0eSgpKTsKICAgICBDU1NGb250U2VsZWN0b3IqIGZvbnRTZWxlY3Rv
ciA9ICgqbV9zZWdtZW50ZWRGb250RmFjZXMuYmVnaW4oKSktPmZvbnRTZWxlY3RvcigpOwogCisj
aWYgRU5BQkxFKEZPTlRfTE9BREVSKQorICAgIGlmIChtX2xvYWRTdGF0ZSA9PSBOb3RMb2FkZWQp
CisgICAgICAgIG5vdGlmeUZvbnRMb2FkZXIoTG9hZGluZyk7CisjZW5kaWYKKwogICAgIHNpemVf
dCBzaXplID0gbV9zb3VyY2VzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNp
emU7ICsraSkgewogICAgICAgICBpZiAoUmVmUHRyPFNpbXBsZUZvbnREYXRhPiByZXN1bHQgPSBt
X3NvdXJjZXNbaV0tPmdldEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgc3ludGhldGljQm9sZCwg
c3ludGhldGljSXRhbGljLCBmb250U2VsZWN0b3IpKSB7CiAgICAgICAgICAgICBtX2FjdGl2ZVNv
dXJjZSA9IG1fc291cmNlc1tpXS5nZXQoKTsKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisgICAg
ICAgICAgICBpZiAobV9sb2FkU3RhdGUgPT0gTG9hZGluZyAmJiBtX3NvdXJjZXNbaV0tPmlzTG9h
ZGVkKCkpCisgICAgICAgICAgICAgICAgbm90aWZ5Rm9udExvYWRlcihMb2FkZWQpOworI2VuZGlm
CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKICAgICAgICAgfQogICAgIH0K
IAorI2lmIEVOQUJMRShGT05UX0xPQURFUikKKyAgICBpZiAobV9sb2FkU3RhdGUgPT0gTG9hZGlu
ZykKKyAgICAgICAgbm90aWZ5Rm9udExvYWRlcihFcnJvcik7CisjZW5kaWYKICAgICByZXR1cm4g
MDsKIH0KIAorI2lmIEVOQUJMRShGT05UX0xPQURFUikKK3ZvaWQgQ1NTRm9udEZhY2U6Om5vdGlm
eUZvbnRMb2FkZXIoTG9hZFN0YXRlIG5ld1N0YXRlKQoreworICAgIG1fbG9hZFN0YXRlID0gbmV3
U3RhdGU7CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSAoKm1fc2VnbWVudGVkRm9udEZhY2Vz
LmJlZ2luKCkpLT5mb250U2VsZWN0b3IoKS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50
KQorICAgICAgICByZXR1cm47CisKKyAgICBzd2l0Y2ggKG5ld1N0YXRlKSB7CisgICAgY2FzZSBM
b2FkaW5nOgorICAgICAgICBkb2N1bWVudC0+d2Via2l0Rm9udGxvYWRlcigpLT5iZWdpbkZvbnRM
b2FkaW5nKG1fcnVsZS5nZXQoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9hZGVkOgor
ICAgICAgICBkb2N1bWVudC0+d2Via2l0Rm9udGxvYWRlcigpLT5mb250TG9hZGVkKG1fcnVsZS5n
ZXQoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRXJyb3I6CisgICAgICAgIGRvY3VtZW50
LT53ZWJraXRGb250bG9hZGVyKCktPmxvYWRFcnJvcihtX3J1bGUuZ2V0KCkpOworICAgICAgICBi
cmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9Cit9CisjZW5kaWYKKwog
I2lmIEVOQUJMRShTVkdfRk9OVFMpCiBib29sIENTU0ZvbnRGYWNlOjpoYXNTVkdGb250RmFjZVNv
dXJjZSgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZh
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5oCmluZGV4IGUzZjY0ODEwN2M2
MTdlOGFmMjM1NWQ4ZjExNDEwYTFhNzcxODc0ZTcuLmZkNTliZDhkZDZkMzc4ZTllNjY4ZDkxZjk3
NzE2M2E2OWY3OTQ4MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5oCkBAIC0yNiw2ICsyNiw4
IEBACiAjaWZuZGVmIENTU0ZvbnRGYWNlX2gKICNkZWZpbmUgQ1NTRm9udEZhY2VfaAogCisjaW5j
bHVkZSAiQ1NTRm9udEZhY2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NTRm9udEZhY2VTb3VyY2UuaCIK
ICNpbmNsdWRlICJGb250VHJhaXRzTWFzay5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTM2LDE0ICszOCwxMyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIENTU0ZvbnRGYWNlU291cmNlOwogY2xhc3MgQ1NTU2VnbWVudGVk
Rm9udEZhY2U7CiBjbGFzcyBGb250RGVzY3JpcHRpb247CiBjbGFzcyBTaW1wbGVGb250RGF0YTsK
IAogY2xhc3MgQ1NTRm9udEZhY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxDU1NGb250RmFjZT4gewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0ZvbnRGYWNlPiBjcmVhdGUoRm9udFRy
YWl0c01hc2sgdHJhaXRzTWFzaywgYm9vbCBpc0xvY2FsRmFsbGJhY2sgPSBmYWxzZSkgeyByZXR1
cm4gYWRvcHRSZWYobmV3IENTU0ZvbnRGYWNlKHRyYWl0c01hc2ssIGlzTG9jYWxGYWxsYmFjaykp
OyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTRm9udEZhY2U+IGNyZWF0ZShGb250VHJhaXRz
TWFzayB0cmFpdHNNYXNrLCBQYXNzUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4gcnVsZSwgYm9vbCBp
c0xvY2FsRmFsbGJhY2sgPSBmYWxzZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENTU0ZvbnRGYWNl
KHRyYWl0c01hc2ssIHJ1bGUsIGlzTG9jYWxGYWxsYmFjaykpOyB9CiAKICAgICBGb250VHJhaXRz
TWFzayB0cmFpdHNNYXNrKCkgY29uc3QgeyByZXR1cm4gbV90cmFpdHNNYXNrOyB9CiAKQEAgLTg1
LDEyICs4NiwyMiBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNTVkdGb250RmFjZVNvdXJjZSgpIGNv
bnN0OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisgICAgZW51bSBMb2FkU3Rh
dGUgeyBOb3RMb2FkZWQsIExvYWRpbmcsIExvYWRlZCwgRXJyb3IgfTsKKyAgICBMb2FkU3RhdGUg
bG9hZFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkU3RhdGU7IH0KKyNlbmRpZgorCiBwcml2
YXRlOgotICAgIENTU0ZvbnRGYWNlKEZvbnRUcmFpdHNNYXNrIHRyYWl0c01hc2ssIGJvb2wgaXNM
b2NhbEZhbGxiYWNrKQorICAgIENTU0ZvbnRGYWNlKEZvbnRUcmFpdHNNYXNrIHRyYWl0c01hc2ss
IFBhc3NSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiBydWxlLCBib29sIGlzTG9jYWxGYWxsYmFjaykK
ICAgICAgICAgOiBtX3RyYWl0c01hc2sodHJhaXRzTWFzaykKICAgICAgICAgLCBtX2FjdGl2ZVNv
dXJjZSgwKQogICAgICAgICAsIG1faXNMb2NhbEZhbGxiYWNrKGlzTG9jYWxGYWxsYmFjaykKKyNp
ZiBFTkFCTEUoRk9OVF9MT0FERVIpCisgICAgICAgICwgbV9sb2FkU3RhdGUoaXNMb2NhbEZhbGxi
YWNrID8gTG9hZGVkIDogTm90TG9hZGVkKQorICAgICAgICAsIG1fcnVsZShydWxlKQorI2VuZGlm
CiAgICAgeworICAgICAgICBVTlVTRURfUEFSQU0ocnVsZSk7CiAgICAgfQogCiAgICAgRm9udFRy
YWl0c01hc2sgbV90cmFpdHNNYXNrOwpAQCAtOTksNiArMTEwLDExIEBAIHByaXZhdGU6CiAgICAg
VmVjdG9yPE93blB0cjxDU1NGb250RmFjZVNvdXJjZT4gPiBtX3NvdXJjZXM7CiAgICAgQ1NTRm9u
dEZhY2VTb3VyY2UqIG1fYWN0aXZlU291cmNlOwogICAgIGJvb2wgbV9pc0xvY2FsRmFsbGJhY2s7
CisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorICAgIExvYWRTdGF0ZSBtX2xvYWRTdGF0ZTsKKyAg
ICBSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiBtX3J1bGU7CisgICAgdm9pZCBub3RpZnlGb250TG9h
ZGVyKExvYWRTdGF0ZSk7CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
YWNlUnVsZS5pZGwKaW5kZXggZjEzNDk3YzQzN2Y2YWVlMWQ2NjI3MDYzZjMwNTRjYmI2YTkyMWMw
Yi4uYmE5N2E3YjdmNDgyNjBiNmMzMzE3NTE0MTMzZDNkNjVjMTE0ZmFjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwKQEAgLTE5LDcgKzE5LDEwIEBACiAgKi8KIAogLy8g
SW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLWludGVyZmFjZSBDU1NGb250RmFjZVJ1bGUgOiBD
U1NSdWxlIHsKK2ludGVyZmFjZSBbCisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCisgICAgSlNH
ZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAorXSBDU1NGb250RmFjZVJ1bGUgOiBDU1NSdWxlIHsKICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVEZWNsYXJhdGlvbiBzdHlsZTsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCmluZGV4IGE1OTUyMTdmMzc3NDk1
NjFkMzE2MjAzMjZlYWY1NWY4NTIyNmU4NTguLjZiZWY1OTM0NDZjNDQzYTMzMWRhZmFlMWFiZjkx
MTBiNTlkYThhMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcApA
QCAtMjA1LDQgKzIwNSwxNyBAQCBib29sIENTU0ZvbnRGYWNlU291cmNlOjppc1NWR0ZvbnRGYWNl
U291cmNlKCkgY29uc3QKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorYm9v
bCBDU1NGb250RmFjZVNvdXJjZTo6ZW5zdXJlRm9udERhdGEoKQoreworICAgIGlmICghbV9mb250
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisjaWYgRU5BQkxFKFNWR19GT05UUykKKyAgICBpZiAo
bV9oYXNFeHRlcm5hbFNWR0ZvbnQpCisgICAgICAgIHJldHVybiBtX2ZvbnQtPmVuc3VyZVNWR0Zv
bnREYXRhKCk7CisjZW5kaWYKKyAgICByZXR1cm4gbV9mb250LT5lbnN1cmVDdXN0b21Gb250RGF0
YSgpOworfQorI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250RmFjZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmgK
aW5kZXggMDQ4OGQxMGQzMjYwMGU0N2RlZGQwZjcyOGMwMDM0Y2EwNGFkZjE1Yy4uOTZlYWM3MTI5
ODdiMTllYTlmMTk4YmM5OGI1N2YxMzY1OWExNjcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Zv
bnRGYWNlU291cmNlLmgKQEAgLTcwLDYgKzcwLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEhh
c0V4dGVybmFsU1ZHRm9udChib29sIHZhbHVlKSB7IG1faGFzRXh0ZXJuYWxTVkdGb250ID0gdmFs
dWU7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorICAgIGJvb2wgZW5zdXJl
Rm9udERhdGEoKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRMb2FkaW5nVGlt
ZXJGaXJlZChUaW1lcjxDU1NGb250RmFjZVNvdXJjZT4qKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udFNlbGVjdG9yLmNwcAppbmRleCBjYjBkYzhkMTRiMThmZjQ4OWMzNmE3ZjIwMDUwM2E0MDll
OTcyMzM2Li5hZmZiYTc1NTE4OTIzYjE4NDQ5NjZlMDhhY2YyODUzNzE4YjYyZDA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5j
bHVkZSAiQ2FjaGVkRm9udC5oIgogI2luY2x1ZGUgIkNTU0ZvbnRGYWNlLmgiCisjaW5jbHVkZSAi
Q1NTRm9udEZhY2VSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTRm9udEZhY2VTb3VyY2UuaCIKICNpbmNs
dWRlICJDU1NGb250RmFjZVNyY1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUu
aCIKQEAgLTQ3LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJTdHlsZVByb3BlcnR5U2V0LmgiCiAjaW5j
bHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgorI2luY2x1ZGUg
IlZvaWRDYWxsYmFjay5oIgogI2luY2x1ZGUgIldlYktpdEZvbnRGYW1pbHlOYW1lcy5oIgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCkBAIC0yMjQsOCArMjI2LDE0IEBAIHZv
aWQgQ1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1bGUoY29uc3QgU3R5bGVSdWxlRm9udEZh
Y2UqIGZvbnRGYWNlUnVsZSkKICAgICAgICAgICAgIHNvdXJjZSA9IGFkb3B0UHRyKG5ldyBDU1NG
b250RmFjZVNvdXJjZShpdGVtLT5yZXNvdXJjZSgpKSk7CiAgICAgICAgIH0KIAotICAgICAgICBp
ZiAoIWZvbnRGYWNlKQotICAgICAgICAgICAgZm9udEZhY2UgPSBDU1NGb250RmFjZTo6Y3JlYXRl
KHN0YXRpY19jYXN0PEZvbnRUcmFpdHNNYXNrPih0cmFpdHNNYXNrKSk7CisgICAgICAgIGlmICgh
Zm9udEZhY2UpIHsKKyAgICAgICAgICAgIFJlZlB0cjxDU1NGb250RmFjZVJ1bGU+IHJ1bGU7Cisj
aWYgRU5BQkxFKEZPTlRfTE9BREVSKQorICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgQ1NTRm9u
dEZhY2VSdWxlIGhhcyBubyBwYXJlbnQuCisgICAgICAgICAgICBydWxlID0gc3RhdGljX3BvaW50
ZXJfY2FzdDxDU1NGb250RmFjZVJ1bGU+KGZvbnRGYWNlUnVsZS0+Y3JlYXRlQ1NTT01XcmFwcGVy
KCkpOworI2VuZGlmCisgICAgICAgICAgICBmb250RmFjZSA9IENTU0ZvbnRGYWNlOjpjcmVhdGUo
c3RhdGljX2Nhc3Q8Rm9udFRyYWl0c01hc2s+KHRyYWl0c01hc2spLCBydWxlKTsKKyAgICAgICAg
fQogCiAgICAgICAgIGlmIChzb3VyY2UpIHsKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQpAQCAtMjk3
LDcgKzMwNSw3IEBAIHZvaWQgQ1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1bGUoY29uc3Qg
U3R5bGVSdWxlRm9udEZhY2UqIGZvbnRGYWNlUnVsZSkKICAgICAgICAgICAgICAgICBPd25QdHI8
VmVjdG9yPFJlZlB0cjxDU1NGb250RmFjZT4gPiA+IGZhbWlseUxvY2FsbHlJbnN0YWxsZWRGYWNl
cyA9IGFkb3B0UHRyKG5ldyBWZWN0b3I8UmVmUHRyPENTU0ZvbnRGYWNlPiA+KTsKIAogICAgICAg
ICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1Mb2NhbGx5SW5zdGFsbGVkRmFj
ZXM7ICsraSkgewotICAgICAgICAgICAgICAgICAgICBSZWZQdHI8Q1NTRm9udEZhY2U+IGxvY2Fs
bHlJbnN0YWxsZWRGb250RmFjZSA9IENTU0ZvbnRGYWNlOjpjcmVhdGUoc3RhdGljX2Nhc3Q8Rm9u
dFRyYWl0c01hc2s+KGxvY2FsbHlJbnN0YWxsZWRGb250c1RyYWl0c01hc2tzW2ldKSwgdHJ1ZSk7
CisgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxDU1NGb250RmFjZT4gbG9jYWxseUluc3RhbGxl
ZEZvbnRGYWNlID0gQ1NTRm9udEZhY2U6OmNyZWF0ZShzdGF0aWNfY2FzdDxGb250VHJhaXRzTWFz
az4obG9jYWxseUluc3RhbGxlZEZvbnRzVHJhaXRzTWFza3NbaV0pLCAwLCB0cnVlKTsKICAgICAg
ICAgICAgICAgICAgICAgbG9jYWxseUluc3RhbGxlZEZvbnRGYWNlLT5hZGRTb3VyY2UoYWRvcHRQ
dHIobmV3IENTU0ZvbnRGYWNlU291cmNlKGZhbWlseU5hbWUpKSk7CiAgICAgICAgICAgICAgICAg
ICAgIEFTU0VSVChsb2NhbGx5SW5zdGFsbGVkRm9udEZhY2UtPmlzVmFsaWQoKSk7CiAgICAgICAg
ICAgICAgICAgICAgIGZhbWlseUxvY2FsbHlJbnN0YWxsZWRGYWNlcy0+YXBwZW5kKGxvY2FsbHlJ
bnN0YWxsZWRGb250RmFjZSk7CkBAIC00ODcsNiArNDk1LDEyIEBAIFBhc3NSZWZQdHI8Rm9udERh
dGE+IENTU0ZvbnRTZWxlY3Rvcjo6Z2V0Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBm
b250RGVzCiAgICAgICAgIHJldHVybiBmb250RGF0YUZvckdlbmVyaWNGYW1pbHkobV9kb2N1bWVu
dCwgZm9udERlc2NyaXB0aW9uLCBmYW1pbHlOYW1lKTsKICAgICB9CiAKKyAgICAvLyBBc2sgYSBm
YWNlIGZvciBhIGZvbnQgZGF0YS4gSWYgaXQgY2Fubm90IHByb2R1Y2Ugb25lLCBpdCB3aWxsIGZh
aWwsIGFuZCB0aGUgT1Mgd2lsbCB0YWtlIG92ZXIuCisgICAgcmV0dXJuIGdldEZvbnRGYWNlKGZv
bnREZXNjcmlwdGlvbiwgZmFtaWx5LCBmYW1pbHlGb250RmFjZXMpLT5nZXRGb250RGF0YShmb250
RGVzY3JpcHRpb24pOworfQorCitDU1NTZWdtZW50ZWRGb250RmFjZSogQ1NTRm9udFNlbGVjdG9y
OjpnZXRGb250RmFjZShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29u
c3QgU3RyaW5nJiBmYW1pbHksIFZlY3RvcjxSZWZQdHI8Q1NTRm9udEZhY2U+ID4qIGZhbWlseUZv
bnRGYWNlcykKK3sKICAgICBPd25QdHI8SGFzaE1hcDx1bnNpZ25lZCwgUmVmUHRyPENTU1NlZ21l
bnRlZEZvbnRGYWNlPiA+ID4mIHNlZ21lbnRlZEZvbnRGYWNlQ2FjaGUgPSBtX2ZvbnRzLmFkZChm
YW1pbHksIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKICAgICBpZiAoIXNlZ21lbnRlZEZvbnRG
YWNlQ2FjaGUpCiAgICAgICAgIHNlZ21lbnRlZEZvbnRGYWNlQ2FjaGUgPSBhZG9wdFB0cihuZXcg
SGFzaE1hcDx1bnNpZ25lZCwgUmVmUHRyPENTU1NlZ21lbnRlZEZvbnRGYWNlPiA+KTsKQEAgLTUz
NCw5ICs1NDgsNyBAQCBQYXNzUmVmUHRyPEZvbnREYXRhPiBDU1NGb250U2VsZWN0b3I6OmdldEZv
bnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlcwogICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbnVtQ2FuZGlkYXRlczsgKytpKQogICAgICAgICAgICAgZmFjZS0+YXBw
ZW5kRm9udEZhY2UoY2FuZGlkYXRlRm9udEZhY2VzW2ldKTsKICAgICB9Ci0KLSAgICAvLyBXZSBo
YXZlIGEgZmFjZS4gIEFzayBpdCBmb3IgYSBmb250IGRhdGEuICBJZiBpdCBjYW5ub3QgcHJvZHVj
ZSBvbmUsIGl0IHdpbGwgZmFpbCwgYW5kIHRoZSBPUyB3aWxsIHRha2Ugb3Zlci4KLSAgICByZXR1
cm4gZmFjZS0+Z2V0Rm9udERhdGEoZm9udERlc2NyaXB0aW9uKTsKKyAgICByZXR1cm4gZmFjZS5n
ZXQoKTsKIH0KIAogdm9pZCBDU1NGb250U2VsZWN0b3I6OmNsZWFyRG9jdW1lbnQoKQpAQCAtNTk1
LDQgKzYwNywyNiBAQCB2b2lkIENTU0ZvbnRTZWxlY3Rvcjo6YmVnaW5Mb2FkVGltZXJGaXJlZChU
aW1lcjxXZWJDb3JlOjpDU1NGb250U2VsZWN0b3I+KikKICAgICAgICAgbV9kb2N1bWVudC0+ZnJh
bWUoKS0+bG9hZGVyKCktPmNoZWNrTG9hZENvbXBsZXRlKCk7CiB9CiAKKyNpZiBFTkFCTEUoRk9O
VF9MT0FERVIpCitib29sIENTU0ZvbnRTZWxlY3Rvcjo6Y2hlY2tGb250KGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseU5hbWUp
Cit7CisgICAgU3RyaW5nIGZhbWlseSA9IGZhbWlseU5hbWUuc3RyaW5nKCk7CisgICAgVmVjdG9y
PFJlZlB0cjxDU1NGb250RmFjZT4gPiogZmFtaWx5Rm9udEZhY2VzID0gbV9mb250RmFjZXMuZ2V0
KGZhbWlseSk7CisgICAgaWYgKCFmYW1pbHlGb250RmFjZXMgfHwgZmFtaWx5Rm9udEZhY2VzLT5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBnZXRGb250RmFj
ZShmb250RGVzY3JpcHRpb24sIGZhbWlseSwgZmFtaWx5Rm9udEZhY2VzKS0+Y2hlY2tGb250KCk7
Cit9CisKK3ZvaWQgQ1NTRm9udFNlbGVjdG9yOjpsb2FkRm9udChjb25zdCBGb250RGVzY3JpcHRp
b24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHlOYW1lLCBQYXNz
UmVmUHRyPFZvaWRDYWxsYmFjaz4gbG9hZENhbGxiYWNrLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFj
az4gZXJyb3JDYWxsYmFjaykKK3sKKyAgICBTdHJpbmcgZmFtaWx5ID0gZmFtaWx5TmFtZS5zdHJp
bmcoKTsKKyAgICBWZWN0b3I8UmVmUHRyPENTU0ZvbnRGYWNlPiA+KiBmYW1pbHlGb250RmFjZXMg
PSBtX2ZvbnRGYWNlcy5nZXQoZmFtaWx5KTsKKyAgICBpZiAoIWZhbWlseUZvbnRGYWNlcyB8fCBm
YW1pbHlGb250RmFjZXMtPmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmV0dXJu
IGdldEZvbnRGYWNlKGZvbnREZXNjcmlwdGlvbiwgZmFtaWx5LCBmYW1pbHlGb250RmFjZXMpLT5s
b2FkRm9udChmb250RGVzY3JpcHRpb24sIGxvYWRDYWxsYmFjaywgZXJyb3JDYWxsYmFjayk7Cit9
CisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxl
Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5oCmluZGV4IGQwMjEw
MGMzMjYyMGY4ODU2MTUyZDllMDE2ZWJiZThhMmJkMDgwMmYuLjg0ZWU2ZjU1NDZjODQ4NDgwNzI0
YmFhZTU4NTdkNzMxMTAyMTRlZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250U2VsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgK
QEAgLTQ0LDYgKzQ0LDcgQEAgY2xhc3MgQ2FjaGVkRm9udDsKIGNsYXNzIERvY3VtZW50OwogY2xh
c3MgRm9udERlc2NyaXB0aW9uOwogY2xhc3MgU3R5bGVSdWxlRm9udEZhY2U7CitjbGFzcyBWb2lk
Q2FsbGJhY2s7CiAKIGNsYXNzIENTU0ZvbnRTZWxlY3RvciA6IHB1YmxpYyBGb250U2VsZWN0b3Ig
ewogcHVibGljOgpAQCAtNTYsNiArNTcsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdW5zaWdu
ZWQgdmVyc2lvbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fdmVyc2lvbjsgfQogCiAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPEZvbnREYXRhPiBnZXRGb250RGF0YShjb25zdCBGb250RGVzY3Jp
cHRpb24mLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisg
ICAgYm9vbCBjaGVja0ZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbWljU3Ry
aW5nJik7CisgICAgdm9pZCBsb2FkRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBB
dG9taWNTdHJpbmcmLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gbG9hZENhbGxiYWNrLCBQYXNz
UmVmUHRyPFZvaWRDYWxsYmFjaz4gZXJyb3JDYWxsYmFjayk7CisjZW5kaWYKIAogICAgIHZvaWQg
Y2xlYXJEb2N1bWVudCgpOwogCkBAIC03OSw2ICs4NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
aXNwYXRjaEludmFsaWRhdGlvbkNhbGxiYWNrcygpOwogCiAgICAgdm9pZCBiZWdpbkxvYWRUaW1l
ckZpcmVkKFRpbWVyPENTU0ZvbnRTZWxlY3Rvcj4qKTsKKyAgICBDU1NTZWdtZW50ZWRGb250RmFj
ZSogZ2V0Rm9udEZhY2UoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgU3RyaW5nJiwgVmVj
dG9yPFJlZlB0cjxDU1NGb250RmFjZT4gPiopOwogCiAgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7
CiAgICAgSGFzaE1hcDxTdHJpbmcsIE93blB0cjxWZWN0b3I8UmVmUHRyPENTU0ZvbnRGYWNlPiA+
ID4sIENhc2VGb2xkaW5nSGFzaD4gbV9mb250RmFjZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU2VnbWVudGVkRm9udEZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1NlZ21lbnRlZEZvbnRGYWNlLmNwcAppbmRleCA5ZTkwODNmMjA1MzM0ZjAxNjRhNmFlMDI1MDUz
YTJhOWQ2ODcyNTIyLi5mMDY2YmQxMjI5OGViMTg1MjQ1NTEzZjhlMWUwYmQ5NjQ3ZTI3OWE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VnbWVudGVkRm9udEZhY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWdtZW50ZWRGb250RmFjZS5jcHAKQEAgLTMzLDYg
KzMzLDcgQEAKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJTZWdtZW50
ZWRGb250RGF0YS5oIgogI2luY2x1ZGUgIlNpbXBsZUZvbnREYXRhLmgiCisjaW5jbHVkZSAiVm9p
ZENhbGxiYWNrLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzIsNiArNzMsMjEgQEAg
Ym9vbCBDU1NTZWdtZW50ZWRGb250RmFjZTo6aXNWYWxpZCgpIGNvbnN0CiB2b2lkIENTU1NlZ21l
bnRlZEZvbnRGYWNlOjpmb250TG9hZGVkKENTU0ZvbnRGYWNlKikKIHsKICAgICBwcnVuZVRhYmxl
KCk7CisKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisgICAgaWYgKCFpc0xvYWRpbmcoKSkgewor
ICAgICAgICBWZWN0b3I8UmVmUHRyPFZvaWRDYWxsYmFjaz4gPiBjYWxsYmFja3M7CisgICAgICAg
IGlmIChjaGVja0ZvbnQoKSkgeworICAgICAgICAgICAgbV9sb2FkQ2FsbGJhY2tzLnN3YXAoY2Fs
bGJhY2tzKTsKKyAgICAgICAgICAgIG1fZXJyb3JDYWxsYmFja3MuY2xlYXIoKTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIG1fZXJyb3JDYWxsYmFja3Muc3dhcChjYWxsYmFja3MpOwor
ICAgICAgICAgICAgbV9sb2FkQ2FsbGJhY2tzLmNsZWFyKCk7CisgICAgICAgIH0KKyAgICAgICAg
Zm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IGNhbGxiYWNrcy5zaXplKCk7ICsraW5kZXgp
CisgICAgICAgICAgICBjYWxsYmFja3NbaW5kZXhdLT5oYW5kbGVFdmVudCgpOworICAgIH0KKyNl
bmRpZgogfQogCiB2b2lkIENTU1NlZ21lbnRlZEZvbnRGYWNlOjphcHBlbmRGb250RmFjZShQYXNz
UmVmUHRyPENTU0ZvbnRGYWNlPiBmb250RmFjZSkKQEAgLTEzNSw0ICsxNTEsNDIgQEAgUGFzc1Jl
ZlB0cjxGb250RGF0YT4gQ1NTU2VnbWVudGVkRm9udEZhY2U6OmdldEZvbnREYXRhKGNvbnN0IEZv
bnREZXNjcmlwdGlvbiYgZm8KICAgICByZXR1cm4gMDsKIH0KIAorI2lmIEVOQUJMRShGT05UX0xP
QURFUikKK2Jvb2wgQ1NTU2VnbWVudGVkRm9udEZhY2U6OmlzTG9hZGluZygpIGNvbnN0Cit7Cisg
ICAgdW5zaWduZWQgc2l6ZSA9IG1fZm9udEZhY2VzLnNpemUoKTsKKyAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgIGlmIChtX2ZvbnRGYWNlc1tpXS0+bG9h
ZFN0YXRlKCkgPT0gQ1NTRm9udEZhY2U6OkxvYWRpbmcpCisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIENTU1NlZ21lbnRlZEZvbnRG
YWNlOjpjaGVja0ZvbnQoKSBjb25zdAoreworICAgIHVuc2lnbmVkIHNpemUgPSBtX2ZvbnRGYWNl
cy5zaXplKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7IGkrKykgeworICAg
ICAgICBpZiAobV9mb250RmFjZXNbaV0tPmxvYWRTdGF0ZSgpICE9IENTU0ZvbnRGYWNlOjpMb2Fk
ZWQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOwor
fQorCit2b2lkIENTU1NlZ21lbnRlZEZvbnRGYWNlOjpsb2FkRm9udChjb25zdCBGb250RGVzY3Jp
cHRpb24mIGZvbnREZXNjcmlwdGlvbiwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IGxvYWRDYWxs
YmFjaywgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCit7CisgICAgZ2V0
Rm9udERhdGEoZm9udERlc2NyaXB0aW9uKTsKKyAgICBpZiAoaXNMb2FkaW5nKCkpIHsKKyAgICAg
ICAgaWYgKGxvYWRDYWxsYmFjaykKKyAgICAgICAgICAgIG1fbG9hZENhbGxiYWNrcy5hcHBlbmQo
bG9hZENhbGxiYWNrKTsKKyAgICAgICAgaWYgKGVycm9yQ2FsbGJhY2spCisgICAgICAgICAgICBt
X2Vycm9yQ2FsbGJhY2tzLmFwcGVuZChlcnJvckNhbGxiYWNrKTsKKyAgICB9IGVsc2UgeworICAg
ICAgICBpZiAoY2hlY2tGb250KCkpCisgICAgICAgICAgICBsb2FkQ2FsbGJhY2stPmhhbmRsZUV2
ZW50KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2
ZW50KCk7CisgICAgfQorfQorI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTZWdtZW50ZWRGb250RmFjZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21l
bnRlZEZvbnRGYWNlLmgKaW5kZXggZjE4M2Y0OTk1ZTA4MjllZTE2OGEzODkyZDZmOWVmM2ZhZGVl
MDhmNy4uY2NjYTczMWE2ZDFmM2MxNWUxMGFjYzY0YTJjYjgyODVkNzQxYTczZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmgKQEAgLTM5LDYgKzM5LDcgQEAgY2xh
c3MgQ1NTRm9udFNlbGVjdG9yOwogY2xhc3MgRm9udERhdGE7CiBjbGFzcyBGb250RGVzY3JpcHRp
b247CiBjbGFzcyBTZWdtZW50ZWRGb250RGF0YTsKK2NsYXNzIFZvaWRDYWxsYmFjazsKIAogY2xh
c3MgQ1NTU2VnbWVudGVkRm9udEZhY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxDU1NTZWdtZW50ZWRG
b250RmFjZT4gewogcHVibGljOgpAQCAtNTIsMTYgKzUzLDI3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGFwcGVuZEZvbnRGYWNlKFBhc3NSZWZQdHI8Q1NTRm9udEZhY2U+KTsKIAogICAgIFBhc3NSZWZQ
dHI8Rm9udERhdGE+IGdldEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYpOworI2lmIEVO
QUJMRShGT05UX0xPQURFUikKKyAgICBib29sIGNoZWNrRm9udCgpIGNvbnN0OworICAgIHZvaWQg
bG9hZEZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+
IGxvYWRDYWxsYmFjaywgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spOwor
I2VuZGlmCiAKIHByaXZhdGU6CiAgICAgQ1NTU2VnbWVudGVkRm9udEZhY2UoQ1NTRm9udFNlbGVj
dG9yKik7CiAKICAgICB2b2lkIHBydW5lVGFibGUoKTsKICAgICBib29sIGlzVmFsaWQoKSBjb25z
dDsKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisgICAgYm9vbCBpc0xvYWRpbmcoKSBjb25zdDsK
KyNlbmRpZgogCiAgICAgQ1NTRm9udFNlbGVjdG9yKiBtX2ZvbnRTZWxlY3RvcjsKICAgICBIYXNo
TWFwPHVuc2lnbmVkLCBSZWZQdHI8U2VnbWVudGVkRm9udERhdGE+ID4gbV9mb250RGF0YVRhYmxl
OwogICAgIFZlY3RvcjxSZWZQdHI8Q1NTRm9udEZhY2U+LCAxPiBtX2ZvbnRGYWNlczsKKyNpZiBF
TkFCTEUoRk9OVF9MT0FERVIpCisgICAgVmVjdG9yPFJlZlB0cjxWb2lkQ2FsbGJhY2s+ID4gbV9s
b2FkQ2FsbGJhY2tzOworICAgIFZlY3RvcjxSZWZQdHI8Vm9pZENhbGxiYWNrPiA+IG1fZXJyb3JD
YWxsYmFja3M7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU3NDUzYWU0ZDI3YjJlMzllYzZhYzBiNzk2NTBkOTQ2Yzk4YjQ1YmUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuY3Bw
CkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0Q1NT
Rm9udEZhY2VMb2FkRXZlbnQuaCIKKworI2lmIEVOQUJMRShGT05UX0xPQURFUikKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudDo6V2ViS2l0Q1NTRm9u
dEZhY2VMb2FkRXZlbnQoKQoreworfQorCitXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudDo6V2Vi
S2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBQYXNzUmVm
UHRyPENTU0ZvbnRGYWNlUnVsZT4gZm9udGZhY2UsIFBhc3NSZWZQdHI8RE9NRXJyb3I+IGVycm9y
KQorICAgIDogRXZlbnQodHlwZSwgZmFsc2UsIGZhbHNlKQorICAgICwgbV9mb250ZmFjZShmb250
ZmFjZSkKKyAgICAsIG1fZXJyb3IoZXJyb3IpCit7Cit9CisKK1dlYktpdENTU0ZvbnRGYWNlTG9h
ZEV2ZW50OjpXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGNvbnN0IFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpCisg
ICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplcikKKyAgICAsIG1fZm9udGZhY2UoaW5pdGlhbGl6
ZXIuZm9udGZhY2UpCisgICAgLCBtX2Vycm9yKGluaXRpYWxpemVyLmVycm9yKQoreworfQorCitX
ZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudDo6fldlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50KCkK
K3sKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudDo6
aW50ZXJmYWNlTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5pbnRlcmZh
Y2VGb3JXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEZPTlRfTE9BREVSKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zN2JmYjAzMzNl
Nzk5MjUzMTMyZTU2YTMxNjJiYTc0NzlmMTAxZDI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmgKQEAgLTAsMCArMSw4NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisKKyNpZm5kZWYgV2ViS2l0Q1NTRm9udEZhY2VMb2Fk
RXZlbnRfaAorI2RlZmluZSBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudF9oCisKKyNpbmNsdWRl
ICJDU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIkRP
TUVycm9yLmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50SW5p
dCA6IHB1YmxpYyBFdmVudEluaXQgeworICAgIFJlZlB0cjxDU1NGb250RmFjZVJ1bGU+IGZvbnRm
YWNlOworICAgIFJlZlB0cjxET01FcnJvcj4gZXJyb3I7Cit9OworCitjbGFzcyBXZWJLaXRDU1NG
b250RmFjZUxvYWRFdmVudCA6IHB1YmxpYyBFdmVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ+IGNyZWF0ZSgpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWY8V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ+KG5ldyBXZWJL
aXRDU1NGb250RmFjZUxvYWRFdmVudCgpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgY29uc3QgV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnRJbml0JiBpbml0aWFsaXplcikK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZjxXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVu
dD4obmV3IFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50KHR5cGUsIGluaXRpYWxpemVyKSk7Cisg
ICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ+
IGNyZWF0ZUZvckZvbnRGYWNlUnVsZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIFBhc3NSZWZQ
dHI8Q1NTRm9udEZhY2VSdWxlPiBydWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
PFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50PihuZXcgV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZl
bnQodHlwZSwgcnVsZSwgMCkpOworICAgIH0KKworICAgIHZpcnR1YWwgfldlYktpdENTU0ZvbnRG
YWNlTG9hZEV2ZW50KCk7CisKKyAgICBDU1NGb250RmFjZVJ1bGUqIGZvbnRmYWNlKCkgY29uc3Qg
eyByZXR1cm4gbV9mb250ZmFjZS5nZXQoKTsgfQorICAgIERPTUVycm9yKiBlcnJvcigpIGNvbnN0
IHsgcmV0dXJuIG1fZXJyb3IuZ2V0KCk7IH0KKworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3Ry
aW5nJiBpbnRlcmZhY2VOYW1lKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgV2ViS2l0Q1NTRm9u
dEZhY2VMb2FkRXZlbnQoKTsKKyAgICBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmLCBQYXNzUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4sIFBhc3NSZWZQdHI8RE9N
RXJyb3I+KTsKKyAgICBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmLCBjb25zdCBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudEluaXQmKTsKKworICAgIFJlZlB0
cjxDU1NGb250RmFjZVJ1bGU+IG1fZm9udGZhY2U7CisgICAgUmVmUHRyPERPTUVycm9yPiBtX2Vy
cm9yOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gV2ViS2l0Q1NT
Rm9udEZhY2VMb2FkRXZlbnRfaAorI2VuZGlmIC8vIEVOQUJMRShGT05UX0xPQURFUikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjZlYzY3NWFhM2E3ODA2MjhmNzRkMTEzZTFhYmQyMGJmNjZlZTFjMTkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQu
aWRsCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9Rk9OVF9MT0FERVIsCisgICAg
SlNOb1N0YXRpY1RhYmxlcywKKyAgICBDb25zdHJ1Y3RvclRlbXBsYXRlPUV2ZW50CitdIGludGVy
ZmFjZSBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudCA6IEV2ZW50IHsKKyAgICByZWFkb25seSBh
dHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSBDU1NGb250RmFjZVJ1bGUg
Zm9udGZhY2U7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25z
dHJ1Y3Rvcl0gRE9NRXJyb3IgZXJyb3I7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL1dlYktpdEZvbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdEZvbnRM
b2FkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiZmQzNmI2YmU0YTNhMDI2YjhlMTNlZjc2ODJjNWQ1Y2Yy
MDU4NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Rm9udExv
YWRlci5jcHAKQEAgLTAsMCArMSwyMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgor
ICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQor
ICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYktpdEZvbnRMb2FkZXIuaCIKKworI2lmIEVOQUJMRShGT05UX0xP
QURFUikKKworI2luY2x1ZGUgIkNTU0ZvbnRTZWxlY3Rvci5oIgorI2luY2x1ZGUgIkNTU1BhcnNl
ci5oIgorI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQuaCIKKyNpbmNs
dWRlICJTdHlsZVJlc29sdmVyLmgiCisjaW5jbHVkZSAiV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZl
bnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29uc3QgaW50IGRlZmF1bHRG
b250U2l6ZSA9IDEwOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGRlZmF1bHRGb250RmFtaWx5
ID0gInNhbnMtc2VyaWYiOworCitXZWJLaXRGb250TG9hZGVyOjpXZWJLaXRGb250TG9hZGVyKERv
Y3VtZW50KiBkb2N1bWVudCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCwgdGhpcykK
KyAgICAsIG1fZG9jdW1lbnQoZG9jdW1lbnQpCisgICAgLCBtX2xvYWRpbmdDb3VudCgwKQorewor
ICAgIHN1c3BlbmRJZk5lZWRlZCgpOworfQorCitXZWJLaXRGb250TG9hZGVyOjp+V2ViS2l0Rm9u
dExvYWRlcigpCit7Cit9CisKK0V2ZW50VGFyZ2V0RGF0YSogV2ViS2l0Rm9udExvYWRlcjo6ZXZl
bnRUYXJnZXREYXRhKCkKK3sKKyAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOworfQorCitF
dmVudFRhcmdldERhdGEqIFdlYktpdEZvbnRMb2FkZXI6OmVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgp
Cit7CisgICAgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsKK30KKworY29uc3QgQXRvbWljU3Ry
aW5nJiBXZWJLaXRGb250TG9hZGVyOjppbnRlcmZhY2VOYW1lKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZvcldlYktpdEZvbnRMb2FkZXI7Cit9CisKK1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIFdlYktpdEZvbnRMb2FkZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSBjb25zdAoreworICAgIHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKTsKK30KKwordm9pZCBXZWJLaXRGb250TG9hZGVyOjpkaWRMYXlvdXQoKQorewor
ICAgIGZpcmVQZW5kaW5nRXZlbnRzKCk7CisgICAgbm90aWZ5Rm9udHNSZWFkeSgpOworfQorCit2
b2lkIFdlYktpdEZvbnRMb2FkZXI6OnNjaGVkdWxlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZl
bnQpCit7CisgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IG1fZG9jdW1lbnQtPnZpZXcoKSkgewor
ICAgICAgICBpZiAodmlldy0+aXNJbkxheW91dCgpKSB7CisgICAgICAgICAgICBtX3BlbmRpbmdF
dmVudHMuYXBwZW5kKGV2ZW50KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
IH0KKyAgICBmaXJlUGVuZGluZ0V2ZW50cygpOworICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQpOwor
fQorCit2b2lkIFdlYktpdEZvbnRMb2FkZXI6OmZpcmVQZW5kaW5nRXZlbnRzKCkKK3sKKyAgICBp
ZiAobV9wZW5kaW5nRXZlbnRzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgVmVj
dG9yPFJlZlB0cjxFdmVudD4gPiBwZW5kaW5nRXZlbnRzOworICAgIG1fcGVuZGluZ0V2ZW50cy5z
d2FwKHBlbmRpbmdFdmVudHMpOworICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBw
ZW5kaW5nRXZlbnRzLnNpemUoKTsgKytpbmRleCkKKyAgICAgICAgZGlzcGF0Y2hFdmVudChwZW5k
aW5nRXZlbnRzW2luZGV4XS5yZWxlYXNlKCkpOworfQorCit2b2lkIFdlYktpdEZvbnRMb2FkZXI6
OmJlZ2luRm9udExvYWRpbmcoQ1NTRm9udEZhY2VSdWxlKiBydWxlKQoreworICAgICsrbV9sb2Fk
aW5nQ291bnQ7CisgICAgaWYgKG1fbG9hZGluZ0NvdW50ID09IDEpCisgICAgICAgIHNjaGVkdWxl
RXZlbnQoV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZUZvckZvbnRGYWNlUnVsZShl
dmVudE5hbWVzKCkubG9hZGluZ0V2ZW50LCBydWxlKSk7CisgICAgc2NoZWR1bGVFdmVudChXZWJL
aXRDU1NGb250RmFjZUxvYWRFdmVudDo6Y3JlYXRlRm9yRm9udEZhY2VSdWxlKGV2ZW50TmFtZXMo
KS5sb2Fkc3RhcnRFdmVudCwgcnVsZSkpOworfQorCit2b2lkIFdlYktpdEZvbnRMb2FkZXI6OmZv
bnRMb2FkZWQoQ1NTRm9udEZhY2VSdWxlKiBydWxlKQoreworICAgIEFTU0VSVChtX2xvYWRpbmdD
b3VudCA+IDApOworICAgIHNjaGVkdWxlRXZlbnQoV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6
OmNyZWF0ZUZvckZvbnRGYWNlUnVsZShldmVudE5hbWVzKCkubG9hZEV2ZW50LCBydWxlKSk7CisK
KyAgICAtLW1fbG9hZGluZ0NvdW50OworICAgIGlmICghbV9sb2FkaW5nQ291bnQpCisgICAgICAg
IHNjaGVkdWxlRXZlbnQoV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZUZvckZvbnRG
YWNlUnVsZShldmVudE5hbWVzKCkubG9hZGluZ2RvbmVFdmVudCwgcnVsZSkpOworfQorCit2b2lk
IFdlYktpdEZvbnRMb2FkZXI6OmxvYWRFcnJvcihDU1NGb250RmFjZVJ1bGUqIHJ1bGUpCit7Cisg
ICAgQVNTRVJUKG1fbG9hZGluZ0NvdW50ID4gMCk7CisgICAgc2NoZWR1bGVFdmVudChXZWJLaXRD
U1NGb250RmFjZUxvYWRFdmVudDo6Y3JlYXRlRm9yRm9udEZhY2VSdWxlKGV2ZW50TmFtZXMoKS5l
cnJvckV2ZW50LCBydWxlKSk7CisgICAgLS1tX2xvYWRpbmdDb3VudDsKKyAgICBpZiAoIW1fbG9h
ZGluZ0NvdW50KQorICAgICAgICBzY2hlZHVsZUV2ZW50KFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2
ZW50OjpjcmVhdGVGb3JGb250RmFjZVJ1bGUoZXZlbnROYW1lcygpLmxvYWRpbmdkb25lRXZlbnQs
IHJ1bGUpKTsKK30KKwordm9pZCBXZWJLaXRGb250TG9hZGVyOjpub3RpZnlXaGVuRm9udHNSZWFk
eShQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gY2FsbGJhY2spCit7CisgICAgbV9jYWxsYmFja3Mu
YXBwZW5kKGNhbGxiYWNrKTsKKyAgICBpZiAobG9hZGluZygpKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX2RvY3VtZW50LT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisgICAgRnJhbWVWaWV3KiB2
aWV3ID0gbV9kb2N1bWVudC0+dmlldygpOworICAgIGlmICghdmlldyB8fCAhKHZpZXctPmxheW91
dFBlbmRpbmcoKSB8fCB2aWV3LT5uZWVkc0xheW91dCgpKSkKKyAgICAgICAgbm90aWZ5Rm9udHNS
ZWFkeSgpOworfQorCit2b2lkIFdlYktpdEZvbnRMb2FkZXI6Om5vdGlmeUZvbnRzUmVhZHkoKQor
eworICAgIGlmIChsb2FkaW5nKCkgfHwgbV9jYWxsYmFja3MuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm47CisgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IG1fZG9jdW1lbnQtPnZpZXcoKSkgewor
ICAgICAgICBpZiAodmlldy0+aXNJbkxheW91dCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFZlY3RvcjxSZWZQdHI8Vm9pZENhbGxiYWNrPiA+IGNhbGxiYWNrczsKKyAgICBt
X2NhbGxiYWNrcy5zd2FwKGNhbGxiYWNrcyk7CisgICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBp
bmRleCA8IGNhbGxiYWNrcy5zaXplKCk7ICsraW5kZXgpCisgICAgICAgIGNhbGxiYWNrc1tpbmRl
eF0tPmhhbmRsZUV2ZW50KCk7Cit9CisKK3ZvaWQgV2ViS2l0Rm9udExvYWRlcjo6bG9hZEZvbnQo
Y29uc3QgRGljdGlvbmFyeSYgcGFyYW1zKQoreworICAgIFN0cmluZyBmb250U3RyaW5nOworICAg
IFJlZlB0cjxWb2lkQ2FsbGJhY2s+IG9uc3VjY2VzczsKKyAgICBSZWZQdHI8Vm9pZENhbGxiYWNr
PiBvbmVycm9yOworICAgIGlmICghcGFyYW1zLmdldCgiZm9udCIsIGZvbnRTdHJpbmcpKQorICAg
ICAgICByZXR1cm47CisgICAgcGFyYW1zLmdldCgib25zdWNjZXNzIiwgb25zdWNjZXNzKTsKKyAg
ICBwYXJhbXMuZ2V0KCJvbmVycm9yIiwgb25lcnJvcik7CisgICAgRm9udCBmb250OworICAgIGlm
ICghcmVzb2x2ZUZvbnRTdHlsZShmb250U3RyaW5nLCBmb250KSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIG1fZG9jdW1lbnQtPnN0eWxlUmVzb2x2ZXIoKS0+Zm9udFNlbGVjdG9yKCktPmxvYWRGb250
KGZvbnQuZm9udERlc2NyaXB0aW9uKCksIGZvbnQuZmFtaWx5KCkuZmFtaWx5KCksIG9uc3VjY2Vz
cywgb25lcnJvcik7Cit9CisKK2Jvb2wgV2ViS2l0Rm9udExvYWRlcjo6Y2hlY2tGb250KGNvbnN0
IFN0cmluZyYgZm9udFN0cmluZywgY29uc3QgU3RyaW5nJikKK3sKKyAgICBGb250IGZvbnQ7Cisg
ICAgaWYgKCFyZXNvbHZlRm9udFN0eWxlKGZvbnRTdHJpbmcsIGZvbnQpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fZG9jdW1lbnQtPnN0eWxlUmVzb2x2ZXIoKS0+Zm9udFNl
bGVjdG9yKCktPmNoZWNrRm9udChmb250LmZvbnREZXNjcmlwdGlvbigpLCBmb250LmZhbWlseSgp
LmZhbWlseSgpKTsKK30KKworYm9vbCBXZWJLaXRGb250TG9hZGVyOjpyZXNvbHZlRm9udFN0eWxl
KGNvbnN0IFN0cmluZyYgZm9udFN0cmluZywgRm9udCYgZm9udCkKK3sKKyAgICAvLyBJbnRlcnBy
ZXQgZm9udFN0cmluZyBpbiB0aGUgc2FtZSB3YXkgYXMgdGhlICdmb250JyBhdHRyaWJ1dGUgb2Yg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELgorICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBw
YXJzZWRTdHlsZSA9IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOworICAgIENTU1BhcnNlcjo6
cGFyc2VWYWx1ZShwYXJzZWRTdHlsZS5nZXQoKSwgQ1NTUHJvcGVydHlGb250LCBmb250U3RyaW5n
LCB0cnVlLCBDU1NTdHJpY3RNb2RlLCAwKTsKKyAgICBpZiAocGFyc2VkU3R5bGUtPmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIFN0cmluZyBmb250VmFsdWUgPSBw
YXJzZWRTdHlsZS0+Z2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUZvbnQpOworICAgIGlmIChm
b250VmFsdWUgPT0gImluaGVyaXQiIHx8IGZvbnRWYWx1ZSA9PSAiaW5pdGlhbCIpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBSZW5kZXJT
dHlsZTo6Y3JlYXRlKCk7CisKKyAgICBGb250RmFtaWx5IGZvbnRGYW1pbHk7CisgICAgZm9udEZh
bWlseS5zZXRGYW1pbHkoZGVmYXVsdEZvbnRGYW1pbHkpOworCisgICAgRm9udERlc2NyaXB0aW9u
IGRlZmF1bHRGb250RGVzY3JpcHRpb247CisgICAgZGVmYXVsdEZvbnREZXNjcmlwdGlvbi5zZXRG
YW1pbHkoZm9udEZhbWlseSk7CisgICAgZGVmYXVsdEZvbnREZXNjcmlwdGlvbi5zZXRTcGVjaWZp
ZWRTaXplKGRlZmF1bHRGb250U2l6ZSk7CisgICAgZGVmYXVsdEZvbnREZXNjcmlwdGlvbi5zZXRD
b21wdXRlZFNpemUoZGVmYXVsdEZvbnRTaXplKTsKKworICAgIHN0eWxlLT5zZXRGb250RGVzY3Jp
cHRpb24oZGVmYXVsdEZvbnREZXNjcmlwdGlvbik7CisKKyAgICBzdHlsZS0+Zm9udCgpLnVwZGF0
ZShzdHlsZS0+Zm9udCgpLmZvbnRTZWxlY3RvcigpKTsKKworICAgIC8vIE5vdyBtYXAgdGhlIGZv
bnQgcHJvcGVydHkgbG9uZ2hhbmRzIGludG8gdGhlIHN0eWxlLgorICAgIFN0eWxlUmVzb2x2ZXIq
IHN0eWxlUmVzb2x2ZXIgPSBtX2RvY3VtZW50LT5zdHlsZVJlc29sdmVyKCk7CisgICAgc3R5bGVS
ZXNvbHZlci0+YXBwbHlQcm9wZXJ0eVRvU3R5bGUoQ1NTUHJvcGVydHlGb250RmFtaWx5LCBwYXJz
ZWRTdHlsZS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUZvbnRGYW1pbHkpLmdldCgp
LCBzdHlsZS5nZXQoKSk7CisgICAgc3R5bGVSZXNvbHZlci0+YXBwbHlQcm9wZXJ0eVRvQ3VycmVu
dFN0eWxlKENTU1Byb3BlcnR5Rm9udFN0eWxlLCBwYXJzZWRTdHlsZS0+Z2V0UHJvcGVydHlDU1NW
YWx1ZShDU1NQcm9wZXJ0eUZvbnRTdHlsZSkuZ2V0KCkpOworICAgIHN0eWxlUmVzb2x2ZXItPmFw
cGx5UHJvcGVydHlUb0N1cnJlbnRTdHlsZShDU1NQcm9wZXJ0eUZvbnRWYXJpYW50LCBwYXJzZWRT
dHlsZS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUZvbnRWYXJpYW50KS5nZXQoKSk7
CisgICAgc3R5bGVSZXNvbHZlci0+YXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKENTU1Byb3Bl
cnR5Rm9udFdlaWdodCwgcGFyc2VkU3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVy
dHlGb250V2VpZ2h0KS5nZXQoKSk7CisKKyAgICAvLyBBcyBkZXNjcmliZWQgaW4gQlVHNjYyOTEs
IHNldHRpbmcgZm9udC1zaXplIGFuZCBsaW5lLWhlaWdodCBvbiBhIGZvbnQgbWF5IGVudGFpbCBh
IENTU1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlTGVuZ3RoRG91YmxlIGNhbGwsCisgICAgLy8gd2hp
Y2ggYXNzdW1lcyB0aGUgZm9udE1ldHJpY3MgYXJlIGF2YWlsYWJsZSBmb3IgdGhlIGFmZmVjdGVk
IGZvbnQsIG90aGVyd2lzZSBhIGNyYXNoIG9jY3VycyAoc2VlIGh0dHA6Ly90cmFjLndlYmtpdC5v
cmcvY2hhbmdlc2V0Lzk2MTIyKS4KKyAgICAvLyBUaGUgdXBkYXRlRm9udCgpIGNhbGxzIGJlbG93
IHVwZGF0ZSB0aGUgZm9udE1ldHJpY3MgYW5kIGVuc3VyZSB0aGUgcHJvcGVyIHNldHRpbmcgb2Yg
Zm9udC1zaXplIGFuZCBsaW5lLWhlaWdodC4KKyAgICBzdHlsZVJlc29sdmVyLT51cGRhdGVGb250
KCk7CisgICAgc3R5bGVSZXNvbHZlci0+YXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKENTU1By
b3BlcnR5Rm9udFNpemUsIHBhcnNlZFN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3Bl
cnR5Rm9udFNpemUpLmdldCgpKTsKKyAgICBzdHlsZVJlc29sdmVyLT51cGRhdGVGb250KCk7Cisg
ICAgc3R5bGVSZXNvbHZlci0+YXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKENTU1Byb3BlcnR5
TGluZUhlaWdodCwgcGFyc2VkU3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlM
aW5lSGVpZ2h0KS5nZXQoKSk7CisKKyAgICBmb250ID0gc3R5bGUtPmZvbnQoKTsKKyAgICBmb250
LnVwZGF0ZShzdHlsZVJlc29sdmVyLT5mb250U2VsZWN0b3IoKSk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShGT05UX0xP
QURFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRGb250TG9hZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Rm9udExvYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkYTgx
NWMwNmViODY4MzAxNmU3NWM2NmYwMTAyN2NhZTI5NTIyYmIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Rm9udExvYWRlci5oCkBAIC0wLDAgKzEsMTA1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFN
QUdFLgorICovCisKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisKKyNpZm5kZWYgV2ViS2l0Rm9u
dExvYWRlcl9oCisjZGVmaW5lIFdlYktpdEZvbnRMb2FkZXJfaAorCisjaW5jbHVkZSAiQWN0aXZl
RE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgIkV2ZW50
TmFtZXMuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIlZvaWRDYWxsYmFj
ay5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgQ2FjaGVkRm9udDsKK2NsYXNzIENTU0ZvbnRGYWNlUnVsZTsKK2NsYXNzIERpY3Rpb25h
cnk7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEZvbnQ7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OworCitjbGFzcyBXZWJLaXRGb250TG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2Vi
S2l0Rm9udExvYWRlcj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBFdmVudFRhcmdl
dCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0Rm9udExvYWRlcj4gY3Jl
YXRlKERvY3VtZW50KiBkb2N1bWVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZjxX
ZWJLaXRGb250TG9hZGVyPihuZXcgV2ViS2l0Rm9udExvYWRlcihkb2N1bWVudCkpOworICAgIH0K
KyAgICB2aXJ0dWFsIH5XZWJLaXRGb250TG9hZGVyKCk7CisKKyAgICBERUZJTkVfQVRUUklCVVRF
X0VWRU5UX0xJU1RFTkVSKGxvYWRpbmcpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElT
VEVORVIobG9hZGluZ2RvbmUpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIo
bG9hZHN0YXJ0KTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGxvYWQpOwor
ICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZXJyb3IpOworCisgICAgYm9vbCBj
aGVja0ZvbnQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBsb2FkRm9u
dChjb25zdCBEaWN0aW9uYXJ5Jik7CisgICAgdm9pZCBub3RpZnlXaGVuRm9udHNSZWFkeShQYXNz
UmVmUHRyPFZvaWRDYWxsYmFjaz4pOworCisgICAgYm9vbCBsb2FkaW5nKCkgY29uc3QgeyByZXR1
cm4gbV9sb2FkaW5nQ291bnQgPiAwOyB9CisKKyAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0
IEF0b21pY1N0cmluZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0OworCisgICAgdXNpbmcgUmVmQ291
bnRlZDxXZWJLaXRGb250TG9hZGVyPjo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViS2l0
Rm9udExvYWRlcj46OmRlcmVmOworCisgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgeyByZXR1cm4g
bV9kb2N1bWVudDsgfQorCisgICAgdm9pZCBkaWRMYXlvdXQoKTsKKyAgICB2b2lkIGJlZ2luRm9u
dExvYWRpbmcoQ1NTRm9udEZhY2VSdWxlKik7CisgICAgdm9pZCBmb250TG9hZGVkKENTU0ZvbnRG
YWNlUnVsZSopOworICAgIHZvaWQgbG9hZEVycm9yKENTU0ZvbnRGYWNlUnVsZSopOworICAgIHZv
aWQgbm90aWZ5Rm9udHNSZWFkeSgpOworCitwcml2YXRlOgorICAgIFdlYktpdEZvbnRMb2FkZXIo
RG9jdW1lbnQqKTsKKworICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIHsgcmVmKCk7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIHsgZGVyZWYoKTsgfQorICAg
IHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKTsKKyAgICB2aXJ0dWFs
IEV2ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCk7CisKKyAgICB2b2lkIHNj
aGVkdWxlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOworICAgIHZvaWQgZmlyZVBlbmRpbmdFdmVu
dHMoKTsKKyAgICBib29sIHJlc29sdmVGb250U3R5bGUoY29uc3QgU3RyaW5nJiwgRm9udCYpOwor
CisgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CisgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRU
YXJnZXREYXRhOworICAgIHVuc2lnbmVkIG1fbG9hZGluZ0NvdW50OworICAgIFZlY3RvcjxSZWZQ
dHI8RXZlbnQ+ID4gbV9wZW5kaW5nRXZlbnRzOworICAgIFZlY3RvcjxSZWZQdHI8Vm9pZENhbGxi
YWNrPiA+IG1fY2FsbGJhY2tzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gV2ViS2l0Rm9udExvYWRlcl9oCisjZW5kaWYgLy8gRU5BQkxFKEZPTlRfTE9BREVSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdEZvbnRMb2FkZXIuaWRsIGIvU291
cmNlL1dlYkNvcmUvY3NzL1dlYktpdEZvbnRMb2FkZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhZDdhMzM0
MDg3OTE4Njc5OGNjOTg5ZDc5ZjgxZmIzODdjMTIzM2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvV2ViS2l0Rm9udExvYWRlci5pZGwKQEAgLTAsMCArMSw1NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBDb25kaXRpb25hbD1GT05UX0xPQURFUiwKKyAgICBBY3RpdmVET01PYmplY3QsCisgICAgRXZl
bnRUYXJnZXQsCisgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRG9jdW1lbnQsCitdIGludGVy
ZmFjZSBXZWJLaXRGb250TG9hZGVyIHsKKworICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
bG9hZGluZzsKKyAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmxvYWRpbmdkb25lOworICAg
IGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZHN0YXJ0OworICAgIGF0dHJpYnV0ZSBFdmVu
dExpc3RlbmVyIG9ubG9hZDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmVycm9yOwor
CisgICAgYm9vbGVhbiBjaGVja0ZvbnQoaW4gRE9NU3RyaW5nIGZvbnQsIGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNOdWxsU3RyaW5nXSBET01TdHJpbmcgdGV4dCk7CisgICAgdm9pZCBsb2FkRm9udChp
biBEaWN0aW9uYXJ5IHBhcmFtcyk7CisgICAgdm9pZCBub3RpZnlXaGVuRm9udHNSZWFkeShpbiBb
Q2FsbGJhY2tdIFZvaWRDYWxsYmFjayBjYWxsYmFjayk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gbG9hZGluZzsKKworICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJp
bmcgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0
ZW5lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVz
ZUNhcHR1cmUpOworICAgIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlw
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5l
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVz
ZUNhcHR1cmUpOworICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldnQpCisgICAg
ICAgIHJhaXNlcyhFdmVudEV4Y2VwdGlvbik7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5k
ZXggNjIxNDc1NmJjMTQzODkzMTY5OTY0ZGVhY2ZmNzJjYWZhNzIwMzZiMi4uZWU3Y2Q0ZGI2YjA0
MDM2MDlkNWNjNDg4Yjc4ODkwNTY4NTI0NjFjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC0xNjIsNiArMTYyLDcgQEAKICNpbmNsdWRlICJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCIKICNp
bmNsdWRlICJWaXNpdGVkTGlua1N0YXRlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIldlYktpdEZvbnRMb2FkZXIuaCIKICNpbmNsdWRlICJX
ZWJLaXROYW1lZEZsb3cuaCIKICNpbmNsdWRlICJYTUxEb2N1bWVudFBhcnNlci5oIgogI2luY2x1
ZGUgIlhNTEh0dHBSZXF1ZXN0LmgiCkBAIC00NzgsNiArNDc5LDkgQEAgRG9jdW1lbnQ6OkRvY3Vt
ZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGlzWEhUTUwsIGJvb2wgaXNI
VE1MKQogI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQogICAgICwgbV90ZW1wbGF0ZURvY3Vt
ZW50SG9zdCgwKQogI2VuZGlmCisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorICAgICwgbV93ZWJr
aXRGb250bG9hZGVyKDApCisjZW5kaWYKIHsKICAgICBzZXRUcmVlU2NvcGUodGhpcyk7CiAKQEAg
LTYwNDQsNCArNjA0OCwxMyBAQCBEb2N1bWVudCogRG9jdW1lbnQ6OmVuc3VyZVRlbXBsYXRlRG9j
dW1lbnQoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCitQYXNzUmVmUHRy
PFdlYktpdEZvbnRMb2FkZXI+IERvY3VtZW50Ojp3ZWJraXRGb250bG9hZGVyKCkKK3sKKyAgICBp
ZiAoIW1fd2Via2l0Rm9udGxvYWRlcikKKyAgICAgICAgbV93ZWJraXRGb250bG9hZGVyID0gV2Vi
S2l0Rm9udExvYWRlcjo6Y3JlYXRlKHRoaXMpOworICAgIHJldHVybiBtX3dlYmtpdEZvbnRsb2Fk
ZXI7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAppbmRleCA3YmQ5ZjE5MGM0NzVhNTczMmUzMzIzNTMxZTdlYjU3NDQxNjJiMTZjLi5kZGQxMTNl
ZGE0YzE3ZjY5ZmIyNGVhOTU1YTQzNTVjNjM4YWIzMmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApA
QCAtMTg3LDYgKzE4NywxMCBAQCBjbGFzcyBUZXh0QXV0b3NpemVyOwogY2xhc3MgRE9NU2VjdXJp
dHlQb2xpY3k7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGT05UX0xPQURFUikKK2NsYXNzIFdlYktp
dEZvbnRMb2FkZXI7CisjZW5kaWYKKwogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAogZW51
bSBQYWdlc2hvd0V2ZW50UGVyc2lzdGVuY2UgewpAQCAtMTIwMiw2ICsxMjA2LDEwIEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbigpIGNvbnN0
IE9WRVJSSURFOwogCisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorICAgIFBhc3NSZWZQdHI8V2Vi
S2l0Rm9udExvYWRlcj4gd2Via2l0Rm9udGxvYWRlcigpOworI2VuZGlmCisKIHByb3RlY3RlZDoK
ICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0IEtVUkwmLCBib29sIGlzWEhUTUwsIGJvb2wgaXNI
VE1MKTsKIApAQCAtMTU2NSw2ICsxNTczLDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPERvY3Vt
ZW50PiBtX3RlbXBsYXRlRG9jdW1lbnQ7CiAgICAgRG9jdW1lbnQqIG1fdGVtcGxhdGVEb2N1bWVu
dEhvc3Q7IC8vIE1hbnVhbGx5IG1hbmFnZWQgd2Vha3JlZiAoYmFja3BvaW50ZXIgZnJvbSBtX3Rl
bXBsYXRlRG9jdW1lbnQpLgogI2VuZGlmCisKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisgICAg
UmVmUHRyPFdlYktpdEZvbnRMb2FkZXI+IG1fd2Via2l0Rm9udGxvYWRlcjsKKyNlbmRpZgogfTsK
IAogaW5saW5lIHZvaWQgRG9jdW1lbnQ6Om5vdGlmeVJlbW92ZVBlbmRpbmdTaGVldElmTmVlZGVk
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IDRkNGU5ZmI0OTUyNmE4ODUxMWE4Yzc0MmYx
YmI2NDc0MGI3MzkxYWMuLjU2YWZkMDNkNDU1YWQ3OGI4MWVhMTg3ODgxYjQzYWFhNzZiMDdiM2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbApAQCAtMjYyLDYgKzI2MiwxMCBAQAogCiAgICAgW0Nv
bmRpdGlvbmFsPUNTU19SRUdJT05TLCBWOEVuYWJsZWRBdFJ1bnRpbWU9Y3NzUmVnaW9uc10gRE9N
TmFtZWRGbG93Q29sbGVjdGlvbiB3ZWJraXRHZXROYW1lZEZsb3dzKCk7CiAKKyNpZiBkZWZpbmVk
KExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKKyAgICBbQ29uZGl0
aW9uYWw9Rk9OVF9MT0FERVJdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJLaXRGb250TG9hZGVyIHdl
YmtpdEZvbnRsb2FkZXI7CisjZW5kaWYKKwogI2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElW
RV9DKSB8fCAhTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAvLyBFdmVudCBoYW5kbGVyIERPTSBh
dHRyaWJ1dGVzCiAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
YWJvcnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCAzZjBlN2EyN2I0Zjg5MmQyNWQ0ZDU3
MTJlZjk1NDhhMmFiMzE4MTg2Li4zMDFmMGFlOTg3NmY0Zjc4Yzk2YjRmNjU4YmNjYjcyYzgzNTMz
NjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTg0LDYgKzg0LDggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIG1hY3JvKGtleXVwKSBcCiAgICAgbWFjcm8obGV2ZWxjaGFuZ2UpIFwK
ICAgICBtYWNybyhsb2FkKSBcCisgICAgbWFjcm8obG9hZGluZykgXAorICAgIG1hY3JvKGxvYWRp
bmdkb25lKSBcCiAgICAgbWFjcm8obG9hZHN0YXJ0KSBcCiAgICAgbWFjcm8obWVzc2FnZSkgXAog
ICAgIG1hY3JvKG1vdXNlZG93bikgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRleCBjMjY5
M2RhOTZmYWVkOTg3ZTQzNzczMWI1ZmM3NjExMmZmNzQzZTRkLi5mNTU5ZmY5M2YzZmZjZTJhMjVi
NzgzNWI4NmRjZDBjODYyMmZiNjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpAQCAtMjUs
NiArMjUsNyBAQCBUcmFuc2l0aW9uRXZlbnQKIFVJRXZlbnQKIFVJRXZlbnRzIGludGVyZmFjZU5h
bWU9VUlFdmVudAogV2ViS2l0QW5pbWF0aW9uRXZlbnQKK1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2
ZW50IGNvbmRpdGlvbmFsPUZPTlRfTE9BREVSCiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQKIFdoZWVs
RXZlbnQKIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dFRhcmdldEZhY3RvcnkuaW4KaW5kZXggMjQzNjg1YTc4OTEyZGI0Nzg2OTQxNTQ4MWM3ODg1YThi
MjYwN2JmNi4uZjQxOWI5N2QyY2M3NjRiMGE0MzBkYmVlNjViOGZkYTE3Y2M1NDhkMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCkBAIC0zNCw2ICszNCw3IEBAIFNW
R0VsZW1lbnRJbnN0YW5jZSBjb25kaXRpb25hbD1TVkcKIFRleHRUcmFjayBjb25kaXRpb25hbD1W
SURFT19UUkFDSwogVGV4dFRyYWNrQ3VlIGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCiBUZXh0VHJh
Y2tMaXN0IGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCitXZWJLaXRGb250TG9hZGVyIGNvbmRpdGlv
bmFsPUZPTlRfTE9BREVSCiBXZWJLaXROYW1lZEZsb3cKIFdlYlNvY2tldCBjb25kaXRpb25hbD1X
RUJfU09DS0VUUwogV29ya2VyIGNvbmRpdGlvbmFsPVdPUktFUlMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcAppbmRleCA3Y2FiZjJkN2I2MWMxMGQ0YTRjNzMxYjcyMzA4MjAyMDU2NDAwYzViLi4x
NDJhNTRkZDI3Nzk5YjYwZDUwOTUxNjdjZGEwZDQxMGQzYmY2MjJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCkBAIC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5o
IgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJUZXh0U3RyZWFt
LmgiCisjaW5jbHVkZSAiV2ViS2l0Rm9udExvYWRlci5oIgogCiAjaW5jbHVkZSA8d3RmL0N1cnJl
bnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgpAQCAtMjU1MCw2ICsy
NTUxLDkgQEAgdm9pZCBGcmFtZVZpZXc6OnBlcmZvcm1Qb3N0TGF5b3V0VGFza3MoKQogICAgIH0K
IAogICAgIG1fZnJhbWUtPmxvYWRlcigpLT5kaWRMYXlvdXQobWlsZXN0b25lc0FjaGlldmVkKTsK
KyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+d2Via2l0
Rm9udGxvYWRlcigpLT5kaWRMYXlvdXQoKTsKKyNlbmRpZgogICAgIAogICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgY29uc2lkZXIgYWRkaW5nIERpZExheW91dCBhcyBhIExheW91dE1pbGVzdG9uZS4g
VGhhdCB3b3VsZCBsZXQgdXMgbWVyZ2UgdGhpcwogICAgIC8vIHdpdGggZGlkTGF5b3V0KExheW91
dE1pbGVzdG9uZXMpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJl
cy5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IDRiOGQ2
ZWQzNjdmYzVjZWI0NzkxZjlkODYzN2Q5NDljNTE2NjEzNGUuLmI1YjlhNDliODAyMjBmOGFjYzVm
N2VlNzQ4YTg4ZWY2ZjY3MmM0OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
ZmVhdHVyZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkK
QEAgLTY3LDYgKzY3LDcgQEAKICAgICAgICdFTkFCTEVfRU5DUllQVEVEX01FRElBPTEnLAogICAg
ICAgJ0VOQUJMRV9GSUxFX1NZU1RFTT0xJywKICAgICAgICdFTkFCTEVfRklMVEVSUz0xJywKKyAg
ICAgICdFTkFCTEVfRk9OVF9MT0FERVI9MScsCiAgICAgICAnRU5BQkxFX0ZVTExTQ1JFRU5fQVBJ
PTEnLAogICAgICAgJ0VOQUJMRV9HQU1FUEFEPTEnLAogICAgICAgJ0VOQUJMRV9HRU9MT0NBVElP
Tj0xJywKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAwYTRhMjc0NzZhYjY1YTAzOGYzOTFiNDcwMGQ0YzllN2Q5NDMyMTUzLi41
MzgyYmViMzUwYTk2MDRlMWVmZDkyMmIzOTUyOTQ1NjAzMDI4NDZiIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzIgQEAKKzIwMTMtMDItMDUgIEt1bmloaWtvIFNha2Ftb3RvICA8a3Nha2Ftb3RvQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgRm9udExvYWRlciBpbnRlcmZhY2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4Mzk1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3RzIGZvciBkb2N1
bWVudC53ZWJraXRGb250bG9hZGVyLiBTaW5jZSB0aGUgZmVhdHVyZSBpcyBjdXJyZW50bHkgZW5h
YmxlZAorICAgICAgICBvbmx5IGZvciBjaHJvbWl1bSwgdGhlIHRlc3RzIGFyZSBleHBlY3RlZCB0
byBmYWlsIG9uIHRoZSBvdGhlciBwb3J0cy4KKworICAgICAgICAqIGZhc3QvY3NzL2ZvbnRsb2Fk
ZXItZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nz
cy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
Y3NzL2ZvbnRsb2FkZXItZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jc3MvZm9udGxvYWRlci1ldmVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mv
Zm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93bmxv
YWQtZXJyb3IuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0
aXBsZS1mYWNlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2ZvbnRs
b2FkZXItbXVsdGlwbGUtZmFjZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvZm9u
dGxvYWRlci1ub3RpZnktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9m
b250bG9hZGVyLW5vdGlmeS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmZv
bnQvZm9udGxvYWRlci1sb2FkaW5nLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2Fk
ZXItZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlw
bGUtZmFjZXMtZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9u
dGxvYWRlci1ub3RpZnktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9odHRwL3Rlc3RzL3dlYmZvbnQvZm9udGxvYWRlci1sb2FkaW5nLWF0dHJpYnV0ZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEzLTAyLTA1ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNo
YWZmcmFpeEB3ZWJraXQub3JnPgogCiAgICAgICAgIFtDU1MgR3JpZCBMYXlvdXRdIEdyaWQgaXRl
bSdzIGxvZ2ljYWwgaGVpZ2h0IGlzIG5vdCBwcm9wZXJseSByZWNvbXB1dGVkIGFmdGVyIC13ZWJr
aXQtZ3JpZC1jb2x1bW4gLyAtd2Via2l0LWdyaWQtcm93IGNoYW5nZXMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1kb3dubG9hZC1lcnJvci1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTNhM2M1NDUwYWIzYTY5N2E4YzEyNWVkOTAwNjY1MTFlODdiYzM4
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZG93
bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3QgZG93bmxvYWQg
ZXJyb3IgY2FzZXMuICJsb2FkIiBvciAiZXJyb3IiIGV2ZW50cyBzaG91bGQgYmUgZmlyZWQgZXhh
Y3RseSBvbmNlIGZvciBlYWNoIEBmb250LWZhY2UgcnVsZS4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK0ZBSUwgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlciBkb2VzIG5vdCBleGlz
dAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitmb250
MQorZm9udDIKK2ZvbnQzCitmb250NAorZm9udDUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDUwYzlhMGY1
ZjNjNTA4Y2ZjMzc5OWVjOTBmZWQyOWFiYWZjOWYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1kb3dubG9hZC1lcnJvci5odG1sCkBAIC0wLDAgKzEs
ODAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKy8qIFRlc3QgMTogSW52YWxpZCBmb250IGRh
dGEgKi8KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiBteWZvbnQxOworICAgIHNyYzog
dXJsKCdyZXNvdXJjZXMvaW52YWxpZGZvbnQucG5nJykgZm9ybWF0KG9wZW50eXBlKTsKK30KKwor
LyogVGVzdCAyOiBEb3dubG9hZCBlcnJvciAqLworQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1p
bHk6IG15Zm9udDI7CisgICAgc3JjOiB1cmwoJ3Jlc291cmNlcy9Eb3duTG9hZEVycm9yQWhlbS5v
dGYnKTsKK30KKworLyogVGVzdCAzOiBFbXB0eSBkYXRhIHVybCAqLworQGZvbnQtZmFjZSB7Cisg
ICAgZm9udC1mYW1pbHk6IG15Zm9udDM7CisgICAgc3JjOiB1cmwoZGF0YTphcHBsaWNhdGlvbi94
LXRydWV0eXBlLWZvbnQsKSBmb3JtYXQodHJ1ZXR5cGUpOworfQorCisvKiBUZXN0IDQ6IERvd25s
b2FkIGVycm9yIGZvbGxvd2VkIGJ5IGV4aXN0aW5nIGxvY2FsIGZvbnQgKi8KK0Bmb250LWZhY2Ug
eworICAgIGZvbnQtZmFtaWx5OiBteWZvbnQ0OworICAgIHNyYzogdXJsKCdyZXNvdXJjZXMvRG93
bkxvYWRFcnJvckFoZW0ub3RmJyksIGxvY2FsKCdDb3VyaWVyIE5ldycpOworfQorCisvKiBUZXN0
IDU6IE11bHRpcGxlIGVycm9ycyAqLworQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6IG15
Zm9udDU7CisgICAgc3JjOiB1cmwoJ3Jlc291cmNlcy9Eb3duTG9hZEVycm9yQWhlbS5vdGYnKSwg
dXJsKGRhdGE6YXBwbGljYXRpb24veC10cnVldHlwZS1mb250LCkgZm9ybWF0KHRydWV0eXBlKTsK
K30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgZG93bmxvYWQgZXJyb3Ig
Y2FzZXMuICJsb2FkIiBvciAiZXJyb3IiIGV2ZW50cyBzaG91bGQgYmUgZmlyZWQgZXhhY3RseSBv
bmNlIGZvciBlYWNoIEBmb250LWZhY2UgcnVsZS4nKTsKKword2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOworCit2YXIgZXZlbnRzID0ge307CisKK2Z1bmN0aW9uIGxvZ0V2ZW50KGUpIHsKKyAg
ICB2YXIgZmFtaWx5ID0gZS5mb250ZmFjZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdmb250LWZh
bWlseScpOworICAgIGlmICghZXZlbnRzW2ZhbWlseV0pCisgICAgICAgIGV2ZW50c1tmYW1pbHld
ID0gW107CisgICAgZXZlbnRzW2ZhbWlseV0ucHVzaChlLnR5cGUpOworfQorCitmdW5jdGlvbiBy
dW5UZXN0cygpIHsKKyAgICBkb2N1bWVudC53ZWJraXRGb250bG9hZGVyLmFkZEV2ZW50TGlzdGVu
ZXIoJ2xvYWRzdGFydCcsIGxvZ0V2ZW50KTsKKyAgICBkb2N1bWVudC53ZWJraXRGb250bG9hZGVy
LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBsb2dFdmVudCk7CisgICAgZG9jdW1lbnQud2Via2l0
Rm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGxvZ0V2ZW50KTsKKworICAgIGRv
Y3VtZW50LndlYmtpdEZvbnRsb2FkZXIubm90aWZ5V2hlbkZvbnRzUmVhZHkoZnVuY3Rpb24oKSB7
CisgICAgICAgIHNob3VsZEJlKCJldmVudHNbJ215Zm9udDEnXSIsICJbJ2xvYWRzdGFydCcsICdl
cnJvciddIik7CisgICAgICAgIHNob3VsZEJlKCJldmVudHNbJ215Zm9udDInXSIsICJbJ2xvYWRz
dGFydCcsICdlcnJvciddIik7CisgICAgICAgIHNob3VsZEJlKCJldmVudHNbJ215Zm9udDMnXSIs
ICJbJ2xvYWRzdGFydCcsICdlcnJvciddIik7CisgICAgICAgIHNob3VsZEJlKCJldmVudHNbJ215
Zm9udDQnXSIsICJbJ2xvYWRzdGFydCcsICdsb2FkJ10iKTsKKyAgICAgICAgc2hvdWxkQmUoImV2
ZW50c1snbXlmb250NSddIiwgIlsnbG9hZHN0YXJ0JywgJ2Vycm9yJ10iKTsKKyAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgfSk7Cit9CisKK2lmIChkb2N1bWVudC53ZWJraXRGb250bG9hZGVy
KQorICAgIHJ1blRlc3RzKCk7CitlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKCdkb2N1bWVudC53ZWJr
aXRGb250bG9hZGVyIGRvZXMgbm90IGV4aXN0Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogbXlm
b250MSI+Zm9udDE8L2Rpdj4KKyAgPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IG15Zm9udDIiPmZv
bnQyPC9kaXY+CisgIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBteWZvbnQzIj5mb250MzwvZGl2
PgorICA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogbXlmb250NCI+Zm9udDQ8L2Rpdj4KKyAgPGRp
diBzdHlsZT0iZm9udC1mYW1pbHk6IG15Zm9udDUiPmZvbnQ1PC9kaXY+CisgIDxzY3JpcHQgc3Jj
PSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZXZlbnRz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZXZlbnRzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNWUyNjgzMWQ3Y2VkNjlmZjg4ODUwNzQ3MTFiOGM1YjI5
OGM4OWY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRl
ci1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgdGhhdCB0aGUgZXZl
bnQgaGFuZGxlcnMgb2YgRm9udExvYWRlciBhcmUgY2FsbGVkIGluIHRoZSBjb3JyZWN0IG9yZGVy
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRkFJTCBkb2N1bWVudC53ZWJraXRG
b250bG9hZGVyIGRvZXMgbm90IGV4aXN0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKK0hlbGxvLCB3b3JsZCEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2ZvbnRsb2FkZXItZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9m
b250bG9hZGVyLWV2ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0MjQxYTIyMDVkODhhZjkwZjNmZjMw
ZjdjMDRjMjVjNmEwNGM2YTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9mb250bG9hZGVyLWV2ZW50cy5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzdHlsZT4KK0Bmb250LWZhY2UgeworICBmb250LWZhbWlseTogJ2FoZW0nOworICBzcmM6IHVy
bCguLi8uLi9yZXNvdXJjZXMvQWhlbS50dGYpOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbignVGVzdCB0aGF0IHRoZSBldmVudCBoYW5kbGVycyBvZiBGb250TG9hZGVyIGFyZSBj
YWxsZWQgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuJyk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKwordmFyIGV2ZW50OwordmFyIG51bWJlck9mRXZlbnRzID0gMDsKKworZnVuY3Rpb24g
aGFuZGxlRXZlbnQoZSkgeworICAgIGV2ZW50ID0gZTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ2V2ZW50LnR5cGUnLCBbJ2xvYWRpbmcnLCAnbG9hZHN0YXJ0JywgJ2xvYWQnLCAnbG9hZGlu
Z2RvbmUnXVtudW1iZXJPZkV2ZW50c10pOworICAgIG51bWJlck9mRXZlbnRzKys7Cit9CisKK2Z1
bmN0aW9uIHJ1blRlc3RzKCkgeworICAgIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIub25sb2Fk
aW5nID0gaGFuZGxlRXZlbnQ7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5vbmxvYWRp
bmdkb25lID0gaGFuZGxlRXZlbnQ7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5vbmxv
YWRzdGFydCA9IGhhbmRsZUV2ZW50OworICAgIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIub25s
b2FkID0gaGFuZGxlRXZlbnQ7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5vbmVycm9y
ID0gaGFuZGxlRXZlbnQ7CisKKyAgICBkb2N1bWVudC53ZWJraXRGb250bG9hZGVyLm5vdGlmeVdo
ZW5Gb250c1JlYWR5KGZ1bmN0aW9uKCkgeworICAgICAgICBzaG91bGRCZSgnbnVtYmVyT2ZFdmVu
dHMnLCAnNCcpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKK30KKworaWYgKGRv
Y3VtZW50LndlYmtpdEZvbnRsb2FkZXIpCisgICAgcnVuVGVzdHMoKTsKK2Vsc2UgeworICAgIHRl
c3RGYWlsZWQoJ2RvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QnKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYg
c3R5bGU9ImZvbnQtZmFtaWx5OiBhaGVtIj5IZWxsbywgd29ybGQhPC9kaXY+CisgIDxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVs
dGlwbGUtZmFjZXMtZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjRhYjExMzM5NWIzODRmMDJhYmU4YzA5NWVlZTEwYjBiOGE1ZjYzOAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlw
bGUtZmFjZXMtZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rl
c3QgbG9hZCBldmVudHMgZm9yIGEgZm9udCBmYW1pbHkgY29uc2lzdHMgb2YgbXVsdGlwbGUgQGZv
bnQtZmFjZXMsIGluY2x1ZGluZyBkb3dubG9hZCBlcnJvci4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK0ZBSUwgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlciBkb2VzIG5vdCBleGlz
dAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMt
ZG93bmxvYWQtZXJyb3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVs
dGlwbGUtZmFjZXMtZG93bmxvYWQtZXJyb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDdkZDc3NGZjZGI1
NTY3YTAyMjU1MDYyMmFiMzdhNjgxNzA5ZTg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1kb3dubG9hZC1lcnJvci5odG1s
CkBAIC0wLDAgKzEsNjUgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK0Bmb250LWZhY2Ugewor
ICAgIGZvbnQtZmFtaWx5OiBUZXN0Rm9udDsKKyAgICBzcmM6IHVybCguLi8uLi9yZXNvdXJjZXMv
QWhlbS50dGYpOworfQorCitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogVGVzdEZvbnQ7
CisgICAgc3JjOiB1cmwoJ3Jlc291cmNlcy9Eb3duTG9hZEVycm9yQWhlbS5vdGYnKTsKKyAgICB1
bmljb2RlLXJhbmdlOiB1KzYxLTdhOyAvKiAnYSctJ3onICovCit9Cis8L3N0eWxlPgorPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGxvYWQgZXZlbnRzIGZvciBhIGZvbnQgZmFtaWx5IGNvbnNp
c3RzIG9mIG11bHRpcGxlIEBmb250LWZhY2VzLCBpbmNsdWRpbmcgZG93bmxvYWQgZXJyb3IuJyk7
CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV2ZW50cyA9IHt9OworCitm
dW5jdGlvbiBjb3VudEV2ZW50KGUpIHsKKyAgICBpZiAoIWV2ZW50c1tlLnR5cGVdKQorICAgICAg
ICBldmVudHNbZS50eXBlXSA9IDA7CisgICAgZXZlbnRzW2UudHlwZV0gKz0gMTsKK30KKworZnVu
Y3Rpb24gcnVuVGVzdHMoKSB7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5hZGRFdmVu
dExpc3RlbmVyKCdsb2FkaW5nJywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQud2Via2l0Rm9u
dGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2Fkc3RhcnQnLCBjb3VudEV2ZW50KTsKKyAgICBk
b2N1bWVudC53ZWJraXRGb250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBjb3VudEV2
ZW50KTsKKyAgICBkb2N1bWVudC53ZWJraXRGb250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vy
cm9yJywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5hZGRFdmVu
dExpc3RlbmVyKCdsb2FkaW5nZG9uZScsIGNvdW50RXZlbnQpOworCisgICAgZG9jdW1lbnQud2Vi
a2l0Rm9udGxvYWRlci5sb2FkRm9udCh7IGZvbnQ6ICcxMHB4IFRlc3RGb250Jywgb25zdWNjZXNz
OiBvbnN1Y2Nlc3MsIG9uZXJyb3I6IG9uZXJyb3IgfSk7Cit9CisKK2Z1bmN0aW9uIG9uc3VjY2Vz
cygpIHsKKyAgICB0ZXN0RmFpbGVkKCJFeHBlY3RlZCBlcnJvciwgYnV0IG9uc3VjY2VzcygpIGNh
bGxlZCIpOworICAgIG9uZXJyb3IoKTsKK30KKworZnVuY3Rpb24gb25lcnJvcigpIHsKKyAgICBz
aG91bGRCZSgiZXZlbnRzWydsb2FkaW5nJ10iLCAiMSIpOworICAgIHNob3VsZEJlKCJldmVudHNb
J2xvYWRzdGFydCddIiwgIjIiKTsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydsb2FkJ10iLCAiMSIp
OworICAgIHNob3VsZEJlKCJldmVudHNbJ2Vycm9yJ10iLCAiMSIpOworICAgIHNob3VsZEJlKCJl
dmVudHNbJ2xvYWRpbmdkb25lJ10iLCAiMSIpOworICAgIHNob3VsZEJlKCJkb2N1bWVudC53ZWJr
aXRGb250bG9hZGVyLmNoZWNrRm9udCgnMTBweCBUZXN0Rm9udCcpIiwgImZhbHNlIik7CisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9CisKK2lmIChkb2N1bWVudC53ZWJraXRGb250bG9hZGVyKQorICAg
IHJ1blRlc3RzKCk7CitlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKCdkb2N1bWVudC53ZWJraXRGb250
bG9hZGVyIGRvZXMgbm90IGV4aXN0Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE5ZmY4NTgyZjM0OTA2ZmExOGM4ODRiMmYwYzkzZjVhMDY0ZmE3NzUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRp
cGxlLWZhY2VzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGxvYWQgZXZlbnRz
IGZvciBhIGZvbnQgZmFtaWx5IGNvbnNpc3RzIG9mIG11bHRpcGxlIEBmb250LWZhY2VzLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRkFJTCBkb2N1bWVudC53ZWJraXRGb250bG9h
ZGVyIGRvZXMgbm90IGV4aXN0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRl
ci1tdWx0aXBsZS1mYWNlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1t
dWx0aXBsZS1mYWNlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxZDRjNDM2YmMwMGQ0ZDY1YmRjM2NkNjI1
NWY0MTZiYjcwZTM0ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9m
b250bG9hZGVyLW11bHRpcGxlLWZhY2VzLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgIGZvbnQtZmFtaWx5OiBUZXN0Rm9udDsKKyAg
c3JjOiBsb2NhbCgnQ291cmllciBOZXcnKTsKK30KKworQGZvbnQtZmFjZSB7CisgIGZvbnQtZmFt
aWx5OiBUZXN0Rm9udDsKKyAgc3JjOiB1cmwoLi4vLi4vcmVzb3VyY2VzL0FoZW0udHRmKTsKKyAg
dW5pY29kZS1yYW5nZTogdSs2MS03YTsgLyogJ2EnLSd6JyAqLworfQorPC9zdHlsZT4KKzxzY3Jp
cHQ+CitkZXNjcmlwdGlvbignVGVzdCBsb2FkIGV2ZW50cyBmb3IgYSBmb250IGZhbWlseSBjb25z
aXN0cyBvZiBtdWx0aXBsZSBAZm9udC1mYWNlcy4nKTsKKword2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOworCit2YXIgZXZlbnRzID0ge307CisKK2Z1bmN0aW9uIGNvdW50RXZlbnQoZSkgewor
ICAgIGlmICghZXZlbnRzW2UudHlwZV0pCisgICAgICAgIGV2ZW50c1tlLnR5cGVdID0gMDsKKyAg
ICBldmVudHNbZS50eXBlXSArPSAxOworfQorCitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAgICBk
b2N1bWVudC53ZWJraXRGb250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRpbmcnLCBjb3Vu
dEV2ZW50KTsKKyAgICBkb2N1bWVudC53ZWJraXRGb250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIo
J2xvYWRzdGFydCcsIGNvdW50RXZlbnQpOworICAgIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIu
YWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGNvdW50RXZlbnQpOworICAgIGRvY3VtZW50LndlYmtp
dEZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBjb3VudEV2ZW50KTsKKyAgICBk
b2N1bWVudC53ZWJraXRGb250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRpbmdkb25lJywg
Y291bnRFdmVudCk7CisKKyAgICBkb2N1bWVudC53ZWJraXRGb250bG9hZGVyLmxvYWRGb250KHsg
Zm9udDogJzEwcHggVGVzdEZvbnQnLCBvbnN1Y2Nlc3M6IG9uc3VjY2Vzcywgb25lcnJvcjogb25l
cnJvciB9KTsKK30KKworZnVuY3Rpb24gb25zdWNjZXNzKCkgeworICAgIHNob3VsZEJlKCJldmVu
dHNbJ2xvYWRpbmcnXSIsICIxIik7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZHN0YXJ0J10i
LCAiMiIpOworICAgIHNob3VsZEJlKCJldmVudHNbJ2xvYWQnXSIsICIyIik7CisgICAgc2hvdWxk
QmUoImV2ZW50c1snZXJyb3InXSIsICJ1bmRlZmluZWQiKTsKKyAgICBzaG91bGRCZSgiZXZlbnRz
Wydsb2FkaW5nZG9uZSddIiwgIjEiKTsKKyAgICBzaG91bGRCZSgiZG9jdW1lbnQud2Via2l0Rm9u
dGxvYWRlci5jaGVja0ZvbnQoJzEwcHggVGVzdEZvbnQnKSIsICJ0cnVlIik7CisgICAgZmluaXNo
SlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIG9uZXJyb3IoKSB7CisgICAgdGVzdEZhaWxlZCgiRXhw
ZWN0ZWQgc3VjY2VzcywgYnV0IG9uZXJyb3IoKSBjYWxsZWQiKTsKKyAgICBvbnN1Y2Nlc3MoKTsK
K30KKworaWYgKGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIpCisgICAgcnVuVGVzdHMoKTsKK2Vs
c2UgeworICAgIHRlc3RGYWlsZWQoJ2RvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIgZG9lcyBub3Qg
ZXhpc3QnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+CisgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2ZvbnRsb2FkZXItbm90aWZ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Zv
bnRsb2FkZXItbm90aWZ5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTk2MjgzN2E4MTA1ODIz
NjcxNTZjM2NkZTNhM2M4YzFjZjE2OWY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvZm9udGxvYWRlci1ub3RpZnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAK
K1Rlc3QgdGhhdCBjYWxsYmFjayBvZiBub3RpZnlXaGVuRm9udHNSZWFkeSBpcyBpbnZva2VkIGFm
dGVyIHN0eWxlIHJlY2FsY3VsYXRpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitGQUlMIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorYWFhCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW5vdGlmeS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvZm9udGxvYWRlci1ub3RpZnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNTdkYTUwMDg1
NzRmZTczZGI4Yzg3N2U0NDEyZDljNmQ0YTc1YzZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1ub3RpZnkuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c3R5bGU+Citib2R5IHsKKyAgZm9udC1mYW1pbHk6IHNlcmlmOworfQor
QGZvbnQtZmFjZSB7CisgIGZvbnQtZmFtaWx5OiAnYWhlbSc7CisgIHNyYzogdXJsKC4uLy4uL3Jl
c291cmNlcy9BaGVtLnR0Zik7Cit9CisjdGVzdCB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZQorfQor
I3Rlc3Qgc3BhbiB7CisgIGZvbnQtZmFtaWx5OiBhaGVtOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbignVGVzdCB0aGF0IGNhbGxiYWNrIG9mIG5vdGlmeVdoZW5Gb250c1JlYWR5
IGlzIGludm9rZWQgYWZ0ZXIgc3R5bGUgcmVjYWxjdWxhdGlvbi4nKTsKKword2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOworCitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAgICBkb2N1bWVudC53
ZWJraXRGb250bG9hZGVyLm5vdGlmeVdoZW5Gb250c1JlYWR5KGZ1bmN0aW9uKCkgeworICAgICAg
ICB0ZXN0RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKKyAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RGl2LCAwKS53
aWR0aCcsICc0OHB4Jyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworfQorCitp
ZiAoZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlcikKKyAgICBydW5UZXN0cygpOworZWxzZSB7Cisg
ICAgdGVzdEZhaWxlZCgnZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlciBkb2VzIG5vdCBleGlzdCcp
OworICAgIGZpbmlzaEpTVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAg
PGRpdiBpZD10ZXN0PgorICAgIDxhIGhyZWY9IiMiPgorICAgICAgPHNwYW4+YWFhPC9zcGFuPgor
ICAgIDwvYT4KKyAgPC9kaXY+CisgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxv
YWRpbmctYXR0cmlidXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjIwZGY1YmZlYjRhZGM0
MWQyNTNmMzIxNTE1OGViZGJhNjExMzQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJmb250L2ZvbnRsb2FkZXItbG9hZGluZy1hdHRyaWJ1dGUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgZm9yIEZvbnRMb2FkZXIubG9hZGluZyBhdHRyaWJ1
dGUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ZBSUwgZG9jdW1lbnQud2Via2l0
Rm9udGxvYWRlciBkb2VzIG5vdCBleGlzdAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2ViZm9udC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmZvbnQvZm9udGxvYWRlci1sb2FkaW5nLWF0dHJpYnV0ZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE4MGY5ODFjNDMxODliMDY4MjU1ZmVhN2UwMDdiMmZjMDM5ZWQ5NjIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmZvbnQvZm9udGxvYWRlci1sb2Fk
aW5nLWF0dHJpYnV0ZS5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHN0eWxlPgorICBAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogJ1Rlc3RGb250JzsK
KyAgICBzcmM6IHVybChzbG93LWFoZW0tbG9hZGluZy5jZ2kpOworICB9Cis8L3N0eWxlPgorPHNj
cmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGZvciBGb250TG9hZGVyLmxvYWRpbmcgYXR0cmlidXRl
Jyk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gcnVuVGVzdHMo
KSB7CisgICAgc2hvdWxkQmUoImRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIuY2hlY2tGb250KCcx
MHB4IFRlc3RGb250JykiLCAiZmFsc2UiKTsKKyAgICBzaG91bGRCZSgiZG9jdW1lbnQud2Via2l0
Rm9udGxvYWRlci5sb2FkaW5nIiwgImZhbHNlIik7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxv
YWRlci5sb2FkRm9udCh7IGZvbnQ6ICcxMHB4IFRlc3RGb250Jywgb25zdWNjZXNzOiBvbnN1Y2Nl
c3MgfSk7CisgICAgc2hvdWxkQmUoImRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIubG9hZGluZyIs
ICJ0cnVlIik7Cit9CisKK2Z1bmN0aW9uIG9uc3VjY2VzcygpIHsKKyAgICBzaG91bGRCZSgiZG9j
dW1lbnQud2Via2l0Rm9udGxvYWRlci5jaGVja0ZvbnQoJzEwcHggVGVzdEZvbnQnKSIsICJ0cnVl
Iik7CisgICAgc2hvdWxkQmUoImRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIubG9hZGluZyIsICJm
YWxzZSIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitpZiAoZG9jdW1lbnQud2Via2l0Rm9u
dGxvYWRlcikKKyAgICBydW5UZXN0cygpOworZWxzZSB7CisgICAgdGVzdEZhaWxlZCgnZG9jdW1l
bnQud2Via2l0Rm9udGxvYWRlciBkb2VzIG5vdCBleGlzdCcpOworICAgIGZpbmlzaEpTVGVzdCgp
OworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9m
b250bG9hZGVyLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM2OTdiNTgyM2YyYTMxNjY3ZDI5NzVhMDUyYmJmNTU0ODlmNjEwNjEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nz
cy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBA
CitUZXN0IGRvd25sb2FkIGVycm9yIGNhc2VzLiAibG9hZCIgb3IgImVycm9yIiBldmVudHMgc2hv
dWxkIGJlIGZpcmVkIGV4YWN0bHkgb25jZSBmb3IgZWFjaCBAZm9udC1mYWNlIHJ1bGUuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGV2ZW50c1snbXlmb250MSddIGlzIFsn
bG9hZHN0YXJ0JywgJ2Vycm9yJ10KK1BBU1MgZXZlbnRzWydteWZvbnQyJ10gaXMgWydsb2Fkc3Rh
cnQnLCAnZXJyb3InXQorUEFTUyBldmVudHNbJ215Zm9udDMnXSBpcyBbJ2xvYWRzdGFydCcsICdl
cnJvciddCitQQVNTIGV2ZW50c1snbXlmb250NCddIGlzIFsnbG9hZHN0YXJ0JywgJ2xvYWQnXQor
UEFTUyBldmVudHNbJ215Zm9udDUnXSBpcyBbJ2xvYWRzdGFydCcsICdlcnJvciddCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK2ZvbnQxCitmb250Mgor
Zm9udDMKK2ZvbnQ0Citmb250NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1ldmVudHMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc4NjU4NzEwNzU5YmJjODU5NjIwNWExYjI4NWQwMjM3OGJjODI5NmEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nz
cy9mb250bG9hZGVyLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCB0
aGF0IHRoZSBldmVudCBoYW5kbGVycyBvZiBGb250TG9hZGVyIGFyZSBjYWxsZWQgaW4gdGhlIGNv
cnJlY3Qgb3JkZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGV2ZW50
LnR5cGUgaXMgImxvYWRpbmciCitQQVNTIGV2ZW50LnR5cGUgaXMgImxvYWRzdGFydCIKK1BBU1Mg
ZXZlbnQudHlwZSBpcyAibG9hZCIKK1BBU1MgZXZlbnQudHlwZSBpcyAibG9hZGluZ2RvbmUiCitQ
QVNTIG51bWJlck9mRXZlbnRzIGlzIDQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorSGVsbG8sIHdvcmxkIQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1kb3du
bG9hZC1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xMTZjM2Y4NzkyZDA5ZGQ2YWIyODBkNzFhZDIwMjRmZmIwYzJhNGNh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9j
c3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNSBAQAorVGVzdCBsb2FkIGV2ZW50cyBmb3IgYSBmb250IGZhbWlseSBjb25z
aXN0cyBvZiBtdWx0aXBsZSBAZm9udC1mYWNlcywgaW5jbHVkaW5nIGRvd25sb2FkIGVycm9yLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBldmVudHNbJ2xvYWRpbmcnXSBp
cyAxCitQQVNTIGV2ZW50c1snbG9hZHN0YXJ0J10gaXMgMgorUEFTUyBldmVudHNbJ2xvYWQnXSBp
cyAxCitQQVNTIGV2ZW50c1snZXJyb3InXSBpcyAxCitQQVNTIGV2ZW50c1snbG9hZGluZ2RvbmUn
XSBpcyAxCitQQVNTIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIuY2hlY2tGb250KCcxMHB4IFRl
c3RGb250JykgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhYmM3ZTkyZTNhZTlhZDkyMDlkNDIwOTgxNmRmNzI4
OGM0YTlmNmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE1IEBACitUZXN0IGxvYWQgZXZlbnRzIGZvciBhIGZvbnQgZmFtaWx5IGNvbnNpc3RzIG9m
IG11bHRpcGxlIEBmb250LWZhY2VzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBldmVudHNbJ2xvYWRpbmcnXSBpcyAxCitQQVNTIGV2ZW50c1snbG9hZHN0YXJ0J10gaXMg
MgorUEFTUyBldmVudHNbJ2xvYWQnXSBpcyAyCitQQVNTIGV2ZW50c1snZXJyb3InXSBpcyB1bmRl
ZmluZWQKK1BBU1MgZXZlbnRzWydsb2FkaW5nZG9uZSddIGlzIDEKK1BBU1MgZG9jdW1lbnQud2Vi
a2l0Rm9udGxvYWRlci5jaGVja0ZvbnQoJzEwcHggVGVzdEZvbnQnKSBpcyB0cnVlCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1ub3RpZnkt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9u
dGxvYWRlci1ub3RpZnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjNjUxYWY4MTAyNjk0Zjhj
Yjk1MGYzMWZmYWY2ODNhZTQyYWI3ODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLW5vdGlmeS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMCBAQAorVGVzdCB0aGF0IGNhbGxiYWNrIG9mIG5vdGlmeVdoZW5Gb250c1Jl
YWR5IGlzIGludm9rZWQgYWZ0ZXIgc3R5bGUgcmVjYWxjdWxhdGlvbi4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdERpdiwg
MCkud2lkdGggaXMgIjQ4cHgiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKK2FhYQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vaHR0cC90ZXN0cy93ZWJmb250L2ZvbnRsb2FkZXItbG9hZGluZy1hdHRyaWJ1dGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy93ZWJmb250
L2ZvbnRsb2FkZXItbG9hZGluZy1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1
MDRiMGVmNTlkMzUxZDBjY2Y5MjQ5MzhhMWIwY2IxNzUyYWVmOGMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3dlYmZvbnQvZm9udGxv
YWRlci1sb2FkaW5nLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVz
dCBmb3IgRm9udExvYWRlci5sb2FkaW5nIGF0dHJpYnV0ZQorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBkb2N1bWVudC53ZWJraXRGb250bG9hZGVyLmNoZWNrRm9udCgnMTBw
eCBUZXN0Rm9udCcpIGlzIGZhbHNlCitQQVNTIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIubG9h
ZGluZyBpcyBmYWxzZQorUEFTUyBkb2N1bWVudC53ZWJraXRGb250bG9hZGVyLmxvYWRpbmcgaXMg
dHJ1ZQorUEFTUyBkb2N1bWVudC53ZWJraXRGb250bG9hZGVyLmNoZWNrRm9udCgnMTBweCBUZXN0
Rm9udCcpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5sb2FkaW5nIGlz
IGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
Kwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188820</attachid>
            <date>2013-02-18 01:33:45 -0800</date>
            <delta_ts>2013-02-18 21:41:50 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-98395-20130218183008.patch</filename>
            <type>text/plain</type>
            <size>126939</size>
            <attacher name="Kunihiko Sakamoto">ksakamoto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc1N2RjOTA3ZmIxMjFk
ZWYzYjQ3NjljOGM1ZmU0YmFiNTFkZGNjOS4uZjUyYTQ4YzViZTk2OTIyODE1MTA0Yjc2OTgwMzFm
ZWZjNmUyNmNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNiBAQAorMjAxMy0wMi0xNyAgS3Vu
aWhpa28gU2FrYW1vdG8gIDxrc2FrYW1vdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxl
bWVudCBGb250TG9hZGVyIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTgzOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdHdvIGludGVyZmFjZXMsIFdlYktpdEZv
bnRMb2FkZXIgYW5kIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LCBhbmQgYSBkb2N1bWVudCBh
dHRyaWJ1dGUgd2Via2l0Rm9udGxvYWRlciB0byBXZWJDb3JlLgorICAgICAgICBUaGUgd2Via2l0
Rm9udGxvYWRlciBpbXBsZW1lbnRzIHRoZSBGb250TG9hZGVyIGludGVyZmFjZSBkZWZpbmVkIGlu
IENTUyBGb250cyBNb2R1bGUgTGV2ZWwgMy5bMV0KKyAgICAgICAgVGhpcyBmZWF0dXJlIGlzIGJl
aGluZCB0aGUgRk9OVF9MT0FERVIgY29tcGlsZXIgZmxhZyBhbmQgY3VycmVudGx5IGVuYWJsZWQg
b25seSBmb3IgY2hyb21pdW0uCisKKyAgICAgICAgWzFdOiBodHRwOi8vZGV2LnczLm9yZy9jc3N3
Zy9jc3MzLWZvbnRzLyNmb250LWxvYWQtZXZlbnRzCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3Nz
L2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3IuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3Mv
Zm9udGxvYWRlci1ldmVudHMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MvZm9udGxvYWRl
ci1sb2FkaW5nZG9uZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9mb250bG9hZGVyLW11
bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3Nz
L2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3Mv
Zm9udGxvYWRlci1tdWx0aXBsZS1mYW1pbGllcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rl
c3RzL3dlYmZvbnQvZm9udGxvYWRlci1sb2FkaW5nLWF0dHJpYnV0ZS5odG1sCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDogQWRkaW5nIFdlYktpdEZvbnRMb2FkZXIvV2ViS2l0Q1NTRm9udEZh
Y2VMb2FkRXZlbnQgZmlsZXMuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3BwOiBEaXR0by4K
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOiBEaXR0by4KKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy5wcmk6IERpdHRvLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IERpdHRv
LgorICAgICAgICAqIFRhcmdldC5wcmk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTog
RGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IERpdHRvLgor
ICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6IERpdHRvLgorICAgICAg
ICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczogRGl0dG8uCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNEaWN0
aW9uYXJ5Ojpjb252ZXJ0VmFsdWUpOiBBZGQgY29udmVydFZhbHVlKCkgZm9yIENTU0ZvbnRGYWNl
UnVsZSwgRE9NRXJyb3IsIGFuZCBWb2lkQ2FsbGJhY2suCisgICAgICAgICogYmluZGluZ3MvanMv
SlNEaWN0aW9uYXJ5Lmg6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0RpY3Rpb25hcnku
Y3BwOiBBZGQgZ2V0KCkgZm9yIENTU0ZvbnRGYWNlUnVsZSwgRE9NRXJyb3IsIGFuZCBWb2lkQ2Fs
bGJhY2suCisgICAgICAgIChXZWJDb3JlOjpEaWN0aW9uYXJ5OjpnZXQpOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L0RpY3Rpb25hcnkuaDogRGl0dG8uCisgICAgICAgIChEaWN0aW9uYXJ5KToKKyAg
ICAgICAgKiBjc3MvQ1NTRm9udEZhY2UuY3BwOiBOb3RpZmllcyBGb250TG9hZGVyIGFzIGxvYWQg
cHJvZ3Jlc3Nlcy4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpmb250TG9hZGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpnZXRGb250RGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NGb250RmFjZTo6bm90aWZ5Rm9udExvYWRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NGb250RmFjZTo6bm90aWZ5TG9hZGluZ0RvbmUpOgorICAgICAgICAqIGNzcy9DU1NGb250
RmFjZS5oOiBBZGQgdHdvIG1lbWJlciB2YXJpYWJsZXMuIG1fcnVsZSBzdG9yZXMgQ1NTRm9udEZh
Y2VSdWxlIGZvciB0aGUgZm9udGZhY2UuIG1fbG9hZFN0YXRlIGhvbGRzIGN1cnJlbnQgc3RhdGUg
b2YgdGhlIGZvbnRmYWNlIGluIHRlcm1zIG9mIEZvbnRMb2FkZXIuCisgICAgICAgIChXZWJDb3Jl
OjpDU1NGb250RmFjZTo6Y3JlYXRlKTogVGFrZXMgYWRkaXRpb25hbCBwYXJhbWV0ZXIgb2YgdHlw
ZSBDU1NGb250RmFjZVJ1bGUuCisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZTo6bG9hZFN0
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpDU1NGb250RmFjZSk6CisgICAg
ICAgICogY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGw6IEFkZCBKU0dlbmVyYXRlVG9KU09iamVjdCBh
bmQgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0IGFzIEpTQyBiaW5kaW5nIG5lZWRzIHRoZW0uCisg
ICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ZvbnRGYWNlU291cmNlOjppc0RlY29kZUVycm9yKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpDU1NGb250RmFjZVNvdXJjZTo6ZW5zdXJlRm9udERhdGEpOiBBZGRlZC4KKyAgICAgICAgKiBj
c3MvQ1NTRm9udEZhY2VTb3VyY2UuaDoKKyAgICAgICAgKENTU0ZvbnRGYWNlU291cmNlKToKKyAg
ICAgICAgKiBjc3MvQ1NTRm9udFNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Zv
bnRTZWxlY3Rvcjo6YWRkRm9udEZhY2VSdWxlKTogUGFzcyBhIENTU0ZvbnRGYWNlUnVsZSB0byBD
U1NGb250RmFjZTo6Y3JlYXRlKCkuCisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U2VsZWN0b3I6
OmdldEZvbnREYXRhKTogTW92ZWQgbG9naWMgZm9yIGNyZWF0aW5nIGEgQ1NTU2VnbWVudGVkRm9u
dEZhY2UgdG8gYSBoZWxwZXIgZnVuY3Rpb24gZ2V0Rm9udEZhY2UoKS4KKyAgICAgICAgKFdlYkNv
cmU6OkNTU0ZvbnRTZWxlY3Rvcjo6Z2V0Rm9udEZhY2UpOiBBZGRlZC4KKyAgICAgICAgKiBjc3Mv
Q1NTRm9udFNlbGVjdG9yLmg6CisgICAgICAgICogY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlZ21lbnRlZEZvbnRGYWNlOjpmb250TG9hZGVkKTog
RmlyZXMgY2FsbGJhY2tzIHdoZW4gbG9hZCBpcyBjb21wbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpDU1NTZWdtZW50ZWRGb250RmFjZTo6aXNMb2FkaW5nKTogUmV0dXJucyB0cnVlIGlmIGFueSBm
b250cyBhcmUgc3RpbGwgbG9hZGluZy4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlZ21lbnRlZEZv
bnRGYWNlOjpjaGVja0ZvbnQpOiBSZXR1cm5zIHRydWUgaWYgYWxsIGZvbnRzIGFyZSBsb2FkZWQu
CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWdtZW50ZWRGb250RmFjZTo6bG9hZEZvbnQpOiBTdGFy
dHMgbG9hZCBieSBjYWxsaW5nIGdldEZvbnREYXRhKCkuCisgICAgICAgICogY3NzL0NTU1NlZ21l
bnRlZEZvbnRGYWNlLmg6CisgICAgICAgIChDU1NTZWdtZW50ZWRGb250RmFjZSk6IERlY2xhcmVz
IG5ldyBmdW5jdGlvbnMgYW5kIGEgdmVjdG9yIHRvIHN0b3JlIGNhbGxiYWNrcy4KKyAgICAgICAg
KExvYWRGb250Q2FsbGJhY2spOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRF
dmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTRm9udEZhY2VMb2Fk
RXZlbnQ6OldlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50Ojp+V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OmludGVyZmFjZU5h
bWUpOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50SW5pdCk6CisgICAgICAgIChXZWJL
aXRDU1NGb250RmFjZUxvYWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NGb250
RmFjZUxvYWRFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU0ZvbnRG
YWNlTG9hZEV2ZW50OjpjcmVhdGVGb3JGb250RmFjZVJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZUZvckVycm9yKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50Ojpmb250ZmFjZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudDo6ZXJyb3IpOgorICAgICAgICAqIGNz
cy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGNzcy9X
ZWJLaXRGb250TG9hZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChMb2FkRm9udENhbGxiYWNrKTog
SG9sZHMgY2FsbGJhY2sgZnVuY3Rpb25zIG9mIEZvbnRMb2FkZXIubG9hZEZvbnQoKS4KKyAgICAg
ICAgKFdlYkNvcmU6OkxvYWRGb250Q2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpMb2FkRm9udENhbGxiYWNrOjpMb2FkRm9udENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OkxvYWRGb250Q2FsbGJhY2s6Om5vdGlmeUxvYWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpMb2Fk
Rm9udENhbGxiYWNrOjpub3RpZnlFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250
TG9hZGVyOjpXZWJLaXRGb250TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEZvbnRM
b2FkZXI6On5XZWJLaXRGb250TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEZvbnRM
b2FkZXI6OmV2ZW50VGFyZ2V0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9h
ZGVyOjplbnN1cmVFdmVudFRhcmdldERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9u
dExvYWRlcjo6aW50ZXJmYWNlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9h
ZGVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEZv
bnRMb2FkZXI6OmRpZExheW91dCk6IEZpcmVzIHBlbmRpbmcgZXZlbnRzIGFuZCBjYWxsYmFja3Mu
IFRoaXMgaXMgY2FsbGVkIHdoZW4gbGF5b3V0IGhhdmUgY29tcGxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViS2l0Rm9udExvYWRlcjo6c2NoZWR1bGVFdmVudCk6IERlZmVycyBldmVudCBkaXNw
YXRjaGluZyB1bnRpbCBsYXlvdXQgY29tcGxldGVzLgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0
Rm9udExvYWRlcjo6ZmlyZVBlbmRpbmdFdmVudHMpOiBEaXNwYXRjaGVzIHBlbmRpbmcgZXZlbnRz
LgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6YmVnaW5Gb250TG9hZGluZyk6
IFNjaGVkdWxlcyBsb2FkaW5nL2xvYWRzdGFydCBldmVudHMuIFRoaXMgaXMgY2FsbGVkIGZyb20g
Q1NTRm9udEZhY2UuCisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVyOjpmb250TG9h
ZGVkKTogU2NoZWR1bGVzIGxvYWQvbG9hZGluZ2RvbmUgZXZlbnRzLiBUaGlzIGlzIGNhbGxlZCBm
cm9tIENTU0ZvbnRGYWNlLgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6bG9h
ZEVycm9yKTogU2NoZWR1bGVzIGVycm9yL2xvYWRpbmdkb25lIGV2ZW50cy4gVGhpcyBpcyBjYWxs
ZWQgZnJvbSBDU1NGb250RmFjZS4KKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEZvbnRMb2FkZXI6
Om5vdGlmeVdoZW5Gb250c1JlYWR5KTogSW1wbGVtZW50cyBmb250bG9hZGVyLm5vdGlmeVdoZW5G
b250c1JlYWR5KCkuCisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVyOjpsb2FkaW5n
RG9uZSk6IEZpcmVzIGNhbGxiYWNrcyBvZiBub3RpZnlXaGVuRm9udHNSZWFkeS4KKyAgICAgICAg
KFdlYkNvcmU6OldlYktpdEZvbnRMb2FkZXI6OmxvYWRGb250KTogSW1wbGVtZW50cyBmb250bG9h
ZGVyLmxvYWRGb250KCkuCisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVyOjpjaGVj
a0ZvbnQpOiBJbXBsZW1lbnRzIGZvbnRsb2FkZXIuY2hlY2tGb250KCkuCisgICAgICAgIChXZWJD
b3JlOjpXZWJLaXRGb250TG9hZGVyOjpyZXNvbHZlRm9udFN0eWxlKTogUGFyc2VzIHRoZSBnaXZl
biBmb250IHBhcmFtZXRlciB1c2luZyB0aGUgc3ludGF4IG9mIENTUyAnZm9udCcgcHJvcGVydHkg
YW5kIGNyZWF0ZXMgRm9udCBvYmplY3QuIFRoZSBsb2dpYyBpcyB0YWtlbiBmcm9tIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6c2V0Rm9udCgpLgorICAgICAgICAqIGNzcy9XZWJLaXRGb250TG9h
ZGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0Rm9udExvYWRlcik6CisgICAgICAgIChXZWJD
b3JlOjpXZWJLaXRGb250TG9hZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0
Rm9udExvYWRlcjo6bG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVy
Ojpkb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVyOjpyZWZFdmVu
dFRhcmdldCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVyOjpkZXJlZkV2ZW50
VGFyZ2V0KToKKyAgICAgICAgKiBjc3MvV2ViS2l0Rm9udExvYWRlci5pZGw6IEFkZGVkLgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9j
dW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtpdEZvbnRsb2FkZXIpOiBB
ZGRlZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKERvY3VtZW50KTogQWRk
IG1fd2Via2l0Rm9udGxvYWRlciBhbmQgd2Via2l0Rm9udGxvYWRlcigpLgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5pZGw6IEFkZCB3ZWJraXRGb250TG9hZGVyIGF0dHJpYnV0ZS4KKyAgICAgICAg
KiBkb20vRXZlbnROYW1lcy5oOiBBZGQgbG9hZGluZyBhbmQgbG9hZGluZ2RvbmUgZXZlbnRzLgor
ICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmluOiBBZGQgV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZl
bnQuCisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjogQWRkIFdlYktpdEZvbnRM
b2FkZXIuCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tzKTogQ2FsbHMgV2ViS2l0Rm9udExvYWRl
cjo6ZGlkTGF5b3V0KCkuCisKIDIwMTMtMDItMTcgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBTdG9wIHBhc3NpbmcgYXJvdW5kIFNlbGVjdG9yQ2hl
Y2tlciBpbiBTZWxlY3RvclF1ZXJ5LCBub3cgdGhhdCBpdCdzIHN0YWNrLWFsbG9jYXRlZC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMzQ5NGZiODNmMGExYjJlZmYwMTkzNDRiZjM0MmU3
MWEzMDM3Nzg1ZC4uODU2YzQxOGY2YmU4MDY3ZDViNGI4YTdkM2Q2YjY0YWFiMGI5Y2E1MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0wMi0xNyAgS3Vu
aWhpa28gU2FrYW1vdG8gIDxrc2FrYW1vdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxl
bWVudCBGb250TG9hZGVyIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTgzOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBFbmFibGUgRm9udExvYWRlciBpbnRlcmZhY2Ugb24gY2hyb21pdW0u
CisKKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOgorCiAyMDEzLTAyLTE1ICBBbGVjIEZsZXR0ICA8
YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbmRleGVkREI6IFN0dWIgb3V0IFNo
YXJlZEJ1ZmZlciB2ZXJzaW9uIG9mIGdldCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGRhNmQ2
ZTVmYmI0NTIxNDg3ZmEzOGZiOTllYTU0Nzc5MGQwNWRkOTYuLjRjMzgxYzMwYzc2ODczM2JlZTZi
YmI3ODBhMDc2OTU3NmRjYzg1NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0zMjgsNiArMzI4
LDcgQEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgY3NzL1N0eWxlU2hlZXRMaXN0LmlkbAog
ICAgIGNzcy9XZWJLaXRDU1NGaWx0ZXJSdWxlLmlkbAogICAgIGNzcy9XZWJLaXRDU1NGaWx0ZXJW
YWx1ZS5pZGwKKyAgICBjc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsCiAgICAgY3Nz
L1dlYktpdENTU0tleWZyYW1lUnVsZS5pZGwKICAgICBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVs
ZS5pZGwKICAgICBjc3MvV2ViS2l0Q1NTTWF0cml4LmlkbApAQCAtMzM1LDYgKzMzNiw3IEBAIHNl
dChXZWJDb3JlX0lETF9GSUxFUwogICAgIGNzcy9XZWJLaXRDU1NSZWdpb25SdWxlLmlkbAogICAg
IGNzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5pZGwKICAgICBjc3MvV2ViS2l0Q1NTVmlld3Bv
cnRSdWxlLmlkbAorICAgIGNzcy9XZWJLaXRGb250TG9hZGVyLmlkbAogCiAgICAgZG9tL0F0dHIu
aWRsCiAgICAgZG9tL0JlZm9yZUxvYWRFdmVudC5pZGwKQEAgLTExMDcsNiArMTEwOSw3IEBAIHNl
dChXZWJDb3JlX1NPVVJDRVMKICAgICBjc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcAogICAg
IGNzcy9XZWJLaXRDU1NGaWx0ZXJSdWxlLmNwcAogICAgIGNzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1
ZS5jcHAKKyAgICBjc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwCiAgICAgY3NzL1dl
YktpdENTU0tleWZyYW1lUnVsZS5jcHAKICAgICBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5j
cHAKICAgICBjc3MvV2ViS2l0Q1NTTWF0cml4LmNwcApAQCAtMTExNSw2ICsxMTE4LDcgQEAgc2V0
KFdlYkNvcmVfU09VUkNFUwogICAgIGNzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAKICAgICBj
c3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwCiAgICAgY3NzL1dlYktpdENTU1ZpZXdwb3J0
UnVsZS5jcHAKKyAgICBjc3MvV2ViS2l0Rm9udExvYWRlci5jcHAKIAogICAgIGRvbS9BY3RpdmVE
T01PYmplY3QuY3BwCiAgICAgZG9tL0FuY2VzdG9yQ2hhaW5XYWxrZXIuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5jcHAKaW5kZXggMTk1YmVhY2Q1YmZmYzMxNjJmMTE5YWE0NTJhYmU0YTNhNDc3
MzU5MS4uNWNmYTc2YWVmNzUwMjhkZWM5ZTY4NmJhOTRkYzM0NzVlMTYxMzgzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAtNDkyLDYgKzQ5Miw5IEBACiAjaWYgRU5BQkxFKENTU19G
SUxURVJTKQogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTRmlsdGVyVmFsdWUuY3BwIgogI2VuZGlmCisj
aWYgRU5BQkxFKEZPTlRfTE9BREVSKQorI2luY2x1ZGUgIkpTV2ViS2l0Q1NTRm9udEZhY2VMb2Fk
RXZlbnQuY3BwIgorI2VuZGlmCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3Bw
IgogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAiCiAjaW5jbHVkZSAiSlNX
ZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAiCkBAIC01MDAsNiArNTAzLDkgQEAKICNpbmNsdWRl
ICJKU1dlYktpdENTU01peEZ1bmN0aW9uVmFsdWUuY3BwIgogI2VuZGlmCiAjaW5jbHVkZSAiSlNX
ZWJLaXRDU1NSZWdpb25SdWxlLmNwcCIKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisjaW5jbHVk
ZSAiSlNXZWJLaXRGb250TG9hZGVyLmNwcCIKKyNlbmRpZgogI2luY2x1ZGUgIkpTV2ViS2l0TmFt
ZWRGbG93LmNwcCIKICNpbmNsdWRlICJKU1dlYktpdFBvaW50LmNwcCIKICNpbmNsdWRlICJKU1dl
YktpdFRyYW5zaXRpb25FdmVudC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCAzNzcyMjUyZTUwNDYyOWZmNzMwZDIxNjMwNjRhYjdhYzNmYzRiNjBjLi4wMTY1N2I3YWUyYzFk
NjYyNTcyYzg4OTIwZTk4YjY3M2JjNDUxOWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKQEAgLTIwNCw2ICsyMDQsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9j
c3MvU3R5bGVTaGVldExpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9XZWJLaXRDU1NGaWx0
ZXJWYWx1ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL1dlYktpdENTU0ZpbHRlclJ1bGUuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL2Nzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5pZGwgXAog
ICAgICQoV2ViQ29yZSkvY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5pZGwgXAogICAgICQoV2Vi
Q29yZSkvY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nz
cy9XZWJLaXRDU1NNYXRyaXguaWRsIFwKQEAgLTIxMSw2ICsyMTIsNyBAQCBCSU5ESU5HX0lETFMg
PSBcCiAgICAgJChXZWJDb3JlKS9jc3MvV2ViS2l0Q1NTUmVnaW9uUnVsZS5pZGwgXAogICAgICQo
V2ViQ29yZSkvY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmlkbCBcCisgICAgJChXZWJDb3JlKS9jc3MvV2Vi
S2l0Rm9udExvYWRlci5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0F0dHIuaWRsIFwKICAgICAk
KFdlYkNvcmUpL2RvbS9CZWZvcmVMb2FkRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9D
REFUQVNlY3Rpb24uaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLnByaSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQppbmRleCBkMTFiZTRk
OWRiYTUzOTdlYjljNDFjZmFjMzllZmQ3MjExNGFmZmE4Li5mMTBlOWYwZDIyMDAxZDQ2ZTM2ZWI4
MGQxNGFjMDc1ZGRmZDk0N2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCkBAIC0yMTIs
NiArMjEyLDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICAkJFBXRC9jc3MvU3R5bGVTaGVldExp
c3QuaWRsIFwKICAgICAkJFBXRC9jc3MvV2ViS2l0Q1NTRmlsdGVyUnVsZS5pZGwgXAogICAgICQk
UFdEL2Nzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5pZGwgXAorICAgICQkUFdEL2Nzcy9XZWJLaXRD
U1NGb250RmFjZUxvYWRFdmVudC5pZGwgXAogICAgICQkUFdEL2Nzcy9XZWJLaXRDU1NLZXlmcmFt
ZVJ1bGUuaWRsIFwKICAgICAkJFBXRC9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5pZGwgXAog
ICAgICQkUFdEL2Nzcy9XZWJLaXRDU1NNYXRyaXguaWRsIFwKQEAgLTIxOSw2ICsyMjAsNyBAQCBJ
RExfQklORElOR1MgKz0gXAogICAgICQkUFdEL2Nzcy9XZWJLaXRDU1NSZWdpb25SdWxlLmlkbCBc
CiAgICAgJCRQV0QvY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmlkbCBcCiAgICAgJCRQV0Qv
Y3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5pZGwgXAorICAgICQkUFdEL2Nzcy9XZWJLaXRGb250
TG9hZGVyLmlkbCBcCiAgICAgJCRQV0QvZG9tL0F0dHIuaWRsIFwKICAgICAkJFBXRC9kb20vQmVm
b3JlTG9hZEV2ZW50LmlkbCBcCiAgICAgJCRQV0QvZG9tL0NoYXJhY3RlckRhdGEuaWRsIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGQ3MGIxZDFlOGRiMjgyMDI4MzliMDcwMjkz
ZTdkNjAxNjEzOTMwYjUuLmU2MjYxOWNiNmI0OWQxMjRkMWE4OTFlMmQ4MDdmZmIzMjFjYWFjMGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtODExLDYgKzgxMSw4IEBAIHdlYmNv
cmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENT
U0ZpbHRlclJ1bGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU0ZpbHRl
clZhbHVlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU0ZpbHRlclZh
bHVlLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRDU1NGb250RmFjZUxvYWRF
dmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRDU1NGb250RmFjZUxv
YWRFdmVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTS2V5ZnJhbWVS
dWxlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU0tleWZyYW1lUnVs
ZS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5j
cHAgXApAQCAtODI1LDYgKzgyNyw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNXZWJLaXRGb250TG9hZGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1dlYktpdEZvbnRMb2FkZXIuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dl
YktpdE5hbWVkRmxvdy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXROYW1l
ZEZsb3cuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdFBvaW50LmNwcCBcCkBA
IC0xMzUyLDYgKzEzNTYsNyBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL2Nz
cy9TdHlsZVNoZWV0TGlzdC5pZGwgXAogCSQoV2ViQ29yZSkvY3NzL1dlYktpdENTU0ZpbHRlclJ1
bGUuaWRsIFwKIAkkKFdlYkNvcmUpL2Nzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5pZGwgXAorCSQo
V2ViQ29yZSkvY3NzL1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbCBcCiAJJChXZWJDb3Jl
KS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvV2ViS2l0
Q1NTS2V5ZnJhbWVzUnVsZS5pZGwgXAogCSQoV2ViQ29yZSkvY3NzL1dlYktpdENTU01hdHJpeC5p
ZGwgXApAQCAtMTM1OSw2ICsxMzY0LDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJD
b3JlKS9jc3MvV2ViS2l0Q1NTUmVnaW9uUnVsZS5pZGwgXAogCSQoV2ViQ29yZSkvY3NzL1dlYktp
dENTU1RyYW5zZm9ybVZhbHVlLmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvV2ViS2l0Q1NTVmlld3Bv
cnRSdWxlLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvV2ViS2l0Rm9udExvYWRlci5pZGwgXAogCSQo
V2ViQ29yZSkvZG9tL0F0dHIuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9CZWZvcmVMb2FkRXZlbnQu
aWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9DREFUQVNlY3Rpb24uaWRsIFwKQEAgLTI3MjMsNiArMjcy
OSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENT
U0ZpbHRlclJ1bGUuaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0ZpbHRlclZhbHVl
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0ZpbHRlclZhbHVlLmggXAorCVNv
dXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5jcHAgXAorCVNvdXJj
ZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3Nz
L1dlYktpdENTU0tleWZyYW1lUnVsZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NT
S2V5ZnJhbWVzUnVsZS5jcHAgXApAQCAtMjczOSw2ICsyNzQ3LDggQEAgd2ViY29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBcCiAJ
U291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2Nzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCBcCisJU291cmNlL1dlYkNvcmUvY3Nz
L1dlYktpdEZvbnRMb2FkZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Rm9udExv
YWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20v
QW5jZXN0b3JDaGFpbldhbGtlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggM2U3OGI0MTlhYmI3NTI4
YzZlMmJiYmY1ODQ0NTRmYTZmMDRhOTAzNy4uNTQ2NmYzMTNjMzRhYmQ4OTM2NzJjMDA3ODZkMzVk
ZWRmOTFiODg4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9T
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0zNDIsNiArMzQyLDcgQEAgU09VUkNFUyArPSBc
CiAgICAgY3NzL1dlYktpdENTU0FycmF5RnVuY3Rpb25WYWx1ZS5jcHAgXAogICAgIGNzcy9XZWJL
aXRDU1NGaWx0ZXJSdWxlLmNwcCBcCiAgICAgY3NzL1dlYktpdENTU0ZpbHRlclZhbHVlLmNwcCBc
CisgICAgY3NzL1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCBcCiAgICAgY3NzL1dlYktp
dENTU0tleWZyYW1lUnVsZS5jcHAgXAogICAgIGNzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNw
cCBcCiAgICAgY3NzL1dlYktpdENTU01hdHJpeC5jcHAgXApAQCAtMzUxLDYgKzM1Miw3IEBAIFNP
VVJDRVMgKz0gXAogICAgIGNzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAgXAogICAgIGNzcy9X
ZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgXAogICAgIGNzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1
bGUuY3BwIFwKKyAgICBjc3MvV2ViS2l0Rm9udExvYWRlci5jcHAgXAogICAgIGRvbS9BY3RpdmVE
T01PYmplY3QuY3BwIFwKICAgICBkb20vQW5jZXN0b3JDaGFpbldhbGtlci5jcHAgXAogICAgIGRv
bS9BdHRyLmNwcCBcCkBAIC0xNTc3LDYgKzE1NzksNyBAQCBIRUFERVJTICs9IFwKICAgICBjc3Mv
V2ViS2l0Q1NTQXJyYXlGdW5jdGlvblZhbHVlLmggXAogICAgIGNzcy9XZWJLaXRDU1NGaWx0ZXJS
dWxlLmggXAogICAgIGNzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIFwKKyAgICBjc3MvV2ViS2l0
Q1NTRm9udEZhY2VMb2FkRXZlbnQuaCBcCiAgICAgY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5o
IFwKICAgICBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIFwKICAgICBjc3MvV2ViS2l0Q1NT
TWF0cml4LmggXApAQCAtMTU4Niw2ICsxNTg5LDcgQEAgSEVBREVSUyArPSBcCiAgICAgY3NzL1dl
YktpdENTU1NoYWRlclZhbHVlLmggXAogICAgIGNzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5o
IFwKICAgICBjc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggXAorICAgIGNzcy9XZWJLaXRGb250
TG9hZGVyLmggXAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuaCBcCiAgICAgZG9tL0FuY2VzdG9y
Q2hhaW5XYWxrZXIuaCBcCiAgICAgZG9tL0F0dHIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNmQy
OGExYzJkYTg0M2E3OGQ0YjM1MTcyMDE5NDRmY2ViYjlmYjhiOC4uNmM3MzMwZGIxMzcxNjM1ZDc3
MmY1YWU1MTNiMmMwNjU3ZTZjNmM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTgzLDYgKzE4Myw3
IEBACiAgICAgICAgICAgICAnY3NzL1N0eWxlU2hlZXRMaXN0LmlkbCcsCiAgICAgICAgICAgICAn
Y3NzL1dlYktpdENTU0ZpbHRlclJ1bGUuaWRsJywKICAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NT
RmlsdGVyVmFsdWUuaWRsJywKKyAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2Fk
RXZlbnQuaWRsJywKICAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmlkbCcs
CiAgICAgICAgICAgICAnY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuaWRsJywKICAgICAgICAg
ICAgICdjc3MvV2ViS2l0Q1NTTWF0cml4LmlkbCcsCkBAIC0xOTAsNiArMTkxLDcgQEAKICAgICAg
ICAgICAgICdjc3MvV2ViS2l0Q1NTUmVnaW9uUnVsZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9X
ZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NW
aWV3cG9ydFJ1bGUuaWRsJywKKyAgICAgICAgICAgICdjc3MvV2ViS2l0Rm9udExvYWRlci5pZGwn
LAogICAgICAgICAgICAgJ2RvbS9BdHRyLmlkbCcsCiAgICAgICAgICAgICAnZG9tL0F1dG9jb21w
bGV0ZUVycm9yRXZlbnQuaWRsJywKICAgICAgICAgICAgICdkb20vQmVmb3JlTG9hZEV2ZW50Lmlk
bCcsCkBAIC0xNjIzLDYgKzE2MjUsOCBAQAogICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NBcnJh
eUZ1bmN0aW9uVmFsdWUuaCcsCiAgICAgICAgICAgICAnY3NzL1dlYktpdENTU0ZpbHRlclJ1bGUu
Y3BwJywKICAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTRmlsdGVyVmFsdWUuY3BwJywKKyAgICAg
ICAgICAgICdjc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwJywKKyAgICAgICAgICAg
ICdjc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaCcsCiAgICAgICAgICAgICAnY3NzL1dl
YktpdENTU0tleWZyYW1lUnVsZS5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NLZXlm
cmFtZVJ1bGUuaCcsCiAgICAgICAgICAgICAnY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3Bw
JywKQEAgLTE2NDAsNiArMTY0NCw4IEBACiAgICAgICAgICAgICAnY3NzL1dlYktpdENTU1RyYW5z
Zm9ybVZhbHVlLmNwcCcsCiAgICAgICAgICAgICAnY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5o
JywKICAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCcsCisgICAgICAg
ICAgICAnY3NzL1dlYktpdEZvbnRMb2FkZXIuaCcsCisgICAgICAgICAgICAnY3NzL1dlYktpdEZv
bnRMb2FkZXIuY3BwJywKICAgICAgICAgICAgICdlZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXIuY3BwJywKICAgICAgICAgICAgICdlZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xs
ZXIuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAwOTc3MGUx
YTljMzg3ZWY2NTQ4MWJiNmI2YzdmN2FhMjYzNDgyY2MwLi45MTJmOGU2N2JiNTY0NWIyZjRhNTg4
MTRjMzVjODdlMDM0NTZjMjA4IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtMjMwOTUsNiArMjMwOTUsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2
ZW50LmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVn
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdp
bjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19D
RkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVh
c2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmgiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRDU1NLZXlmcmFtZVJ1
bGUuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTIzNDMxLDYgKzIzNDg3
LDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
SlNXZWJLaXRGb250TG9hZGVyLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdEZvbnRMb2FkZXIuaCIKKwkJCQk+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdE5hbWVkRmxv
dy5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtMzg3ODMsNiArMzg4OTUs
MTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
Y3NzXFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJ
CQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2
ZW50LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGNzc1xXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTM4
ODU0LDYgKzM4OTc0LDE0IEBACiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcV2ViS2l0Q1NTVmll
d3BvcnRSdWxlLmgiCiAJCQkJPgogCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGNzc1xXZWJLaXRGb250TG9hZGVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXFdlYktpdEZvbnRMb2FkZXIuaCIKKwkJCQk+
CisJCQk8L0ZpbGU+CiAJCTwvRmlsdGVyPgogCQk8RmlsdGVyCiAJCQlOYW1lPSJyZW5kZXJpbmci
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRl
eCA5MTE0YmM4MDJkZjQwMDI4MTY2ZjgwZmY0OTI4MGUzMDFiYjE4NmZiLi44OGRjN2MyMDYzYWQ5
N2I1ZWJjM2Q5MTU3MjZmMTg5MzY5N2FmYWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE2NjcsNiArMTY2NywxMCBAQAogICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGls
ZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVu
dC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRDU1NL
ZXlmcmFtZVJ1bGUuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CkBAIC0xNjkxLDYgKzE2OTUsMTAgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTV2ViS2l0Rm9udExvYWRlci5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXROYW1lZEZsb3cuY3BwIj4KICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0yOTczLDYgKzI5ODEsNyBAQAog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cY3NzXFZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTQXJyYXlGdW5jdGlv
blZhbHVlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NG
aWx0ZXJWYWx1ZS5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0
Q1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
Y3NzXFdlYktpdENTU0tleWZyYW1lUnVsZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxjc3NcV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTTWF0cml4LmNwcCIgLz4KQEAgLTI5ODIsNiArMjk5MSw3
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTU1ZHRG9jdW1lbnRW
YWx1ZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTVHJh
bnNmb3JtVmFsdWUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cY3NzXFdlYktp
dENTU1ZpZXdwb3J0UnVsZS5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3Nc
V2ViS2l0Rm9udExvYWRlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5k
ZXJpbmdcQXV0b1RhYmxlTGF5b3V0LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtNjI0MiwxMCArNjI1MiwxMiBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU1dlYktpdENTU0ZpbHRlclZhbHVlLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIiAvPgorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0Q1NTTWF0cml4LmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTV2ViS2l0Q1NTTWl4RnVuY3Rpb25WYWx1ZS5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU1dlYktpdENTU1JlZ2lvblJ1bGUuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIiAvPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU1dlYktpdEZvbnRMb2FkZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXNcSlNXZWJLaXROYW1lZEZsb3cuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNXZWJLaXRQb2ludC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dl
YktpdFRyYW5zaXRpb25FdmVudC5oIiAvPgpAQCAtNzI1Niw2ICs3MjY4LDcgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NBcnJheUZ1bmN0aW9uVmFsdWUuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5o
IiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXFdlYktpdENTU0ZvbnRGYWNlTG9h
ZEV2ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTS2V5
ZnJhbWVSdWxlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NT
S2V5ZnJhbWVzUnVsZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXFdlYktp
dENTU01hdHJpeC5oIiAvPgpAQCAtNzI2NSw2ICs3Mjc4LDcgQEAKICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCIgLz4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRGb250TG9hZGVyLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcQXV0b1RhYmxlTGF5b3V0LmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcQmlkaVJ1bi5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXGJyZWFrX2xpbmVzLmgiIC8+CkBAIC04NzA0
LDQgKzg3MTgsNCBAQAogICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9z
b2Z0LkNwcC50YXJnZXRzIiAvPgogICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdl
dHMiPgogICA8L0ltcG9ydEdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCAxMWY5NTUzNGIxNGQ2ZWQyNTY3ZmJl
ODYxY2I3MjQyYzZjYWYwYzdkLi5kNDNmNzBiZmNkOWY0NzA3Yjk3NmJiYTU2Yzc2NzMzMDMxODU3
NzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCkBAIC0xNTUxLDYgKzE1NTEsOSBAQAogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU1dlYktpdENTU0ZpbHRlclZhbHVlLmNwcCI+CiAgICAgICA8RmlsdGVyPkRl
cml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEpTV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIj4KKyAgICAgIDxGaWx0
ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIj4KICAgICAgIDxGaWx0
ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTE1NjksNiAr
MTU3Miw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuY3BwIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8
L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRGb250TG9hZGVy
LmNwcCI+CisgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CisgICAgPC9DbENv
bXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0TmFtZWRGbG93LmNwcCI+
CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+
CkBAIC0zNzk1LDYgKzM4MDEsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cY3NzXFdl
YktpdENTU0ZpbHRlclZhbHVlLmNwcCI+CiAgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgogICAg
IDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cY3NzXFdlYktpdENTU0Zv
bnRGYWNlTG9hZEV2ZW50LmNwcCI+CisgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgorICAgIDwv
Q2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cY3NzXFdlYktpdENTU0tleWZy
YW1lUnVsZS5jcHAiPgogICAgICAgPEZpbHRlcj5jc3M8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGls
ZT4KQEAgLTM4MjIsNiArMzgzMSw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3Nc
V2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCI+CiAgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgog
ICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cY3NzXFdlYktpdEZv
bnRMb2FkZXIuY3BwIj4KKyAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcQXV0b1RhYmxlTGF5b3V0
LmNwcCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxl
PgpAQCAtODEwNiw2ICs4MTE4LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJL
aXRDU1NGaWx0ZXJWYWx1ZS5oIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRl
cj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRD
U1NGb250RmFjZUxvYWRFdmVudC5oIj4KKyAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0Zp
bHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJL
aXRDU1NLZXlmcmFtZVJ1bGUuaCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0
ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC04MTI0LDYgKzgxMzksOSBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmgiPgogICAgICAgPEZpbHRl
cj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU1dlYktpdEZvbnRMb2FkZXIuaCI+CisgICAgICA8RmlsdGVyPkRlcml2
ZWRTb3VyY2VzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTV2ViS2l0TmFtZWRGbG93LmgiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNl
czwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA1NTEsNiArMTA1NjksOSBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXFdlYktpdENTU0ZpbHRlclZhbHVlLmgiPgogICAg
ICAgPEZpbHRlcj5jc3M8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oIj4KKyAgICAgIDxG
aWx0ZXI+Y3NzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxjc3NcV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgiPgogICAgICAgPEZpbHRlcj5jc3M8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNTc4LDYgKzEwNTk5LDkgQEAKICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCI+CiAgICAg
ICA8RmlsdGVyPmNzczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cY3NzXFdlYktpdEZvbnRMb2FkZXIuaCI+CisgICAgICA8RmlsdGVyPmNzczwv
RmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVu
ZGVyaW5nXEF1dG9UYWJsZUxheW91dC5oIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nPC9GaWx0
ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xNTI4NSw0ICsxNTMwOSw0IEBACiAgICAgICA8Rmls
dGVyPnJlbmRlcmluZzwvRmlsdGVyPgogICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgogICA8L0l0ZW1H
cm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L1Byb2plY3Q+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggMmJiNjdiOTJlNzk2MDVmNzQxY2E0NmU1NTdhZjY5NzFjODYwYTI1My4uMDY3YTJlMjdh
ZjMxODNiMTY1ZmYyOWQ1Nzk4YmJmMDIwN2VjMjUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTA0OSw2ICsxMDQ5LDE2IEBA
CiAJCTNGRkZGOUE5MTU5RDlBNTUwMDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGRkZGOUE3MTU5
RDlBNTUwMDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCAqLzsgfTsKIAkJM0ZGRkY5
QUQxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkZGRjlBQjE1OUQ5QjA2MDAy
MEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCAqLzsgfTsKIAkJM0ZGRkY5QUUxNTlE
OUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0ZGRkY5QUMxNTlEOUIwNjAwMjBCQkQ1IC8q
IFZpZXdwb3J0U3R5bGVSZXNvbHZlci5oICovOyB9OworCQk0MDlFQkRCMTE2QjdFRTcxMDBDQkEz
RkMgLyogV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwOUVCREFFMTZCN0VFMjgwMENCQTNGQyAvKiBXZWJL
aXRDU1NGb250RmFjZUxvYWRFdmVudC5oICovOyB9OworCQk0MDlFQkRCMjE2QjdFRTc0MDBDQkEz
RkMgLyogV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5RUJEQUMxNkI3RUUxQzAwQ0JBM0ZDIC8qIFdl
YktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCAqLzsgfTsKKwkJNDA5RUJEQjQxNkI3RUU4NzAw
Q0JBM0ZDIC8qIFdlYktpdEZvbnRMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5RUJEQjMxNkI3RUU4NzAwQ0JBM0ZDIC8qIFdlYktpdEZv
bnRMb2FkZXIuY3BwICovOyB9OworCQk0MDlFQkRCNjE2QjdFRUEzMDBDQkEzRkMgLyogV2ViS2l0
Rm9udExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDA5RUJEQjUxNkI3RUVBMzAwQ0JBM0ZDIC8qIFdlYktpdEZvbnRMb2FkZXIuaCAqLzsgfTsK
KwkJNDA5RUJEQkExNkI3RjA0NTAwQ0JBM0ZDIC8qIEpTV2ViS2l0Rm9udExvYWRlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MDlFQkRCOTE2QjdG
MDQ1MDBDQkEzRkMgLyogSlNXZWJLaXRGb250TG9hZGVyLmNwcCAqLzsgfTsKKwkJNDA5RUJEQzAx
NkI3RjM4RTAwQ0JBM0ZDIC8qIEpTV2ViS2l0Rm9udExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5RUJEQkYxNkI3RjM4RTAwQ0JBM0ZDIC8q
IEpTV2ViS2l0Rm9udExvYWRlci5oICovOyB9OworCQk0MDlFQkRDMzE2QjdGM0E2MDBDQkEzRkMg
LyogSlNXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5RUJEQzIxNkI3RjNBNjAwQ0JBM0ZDIC8qIEpTV2Vi
S2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaCAqLzsgfTsKKwkJNDA5RUJEQzUxNkI3RjNDQTAwQ0JB
M0ZDIC8qIEpTV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5RUJEQzQxNkI3RjNDQTAwQ0JBM0ZDIC8q
IEpTV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwICovOyB9OworCQk0MEVDQUU3RTE2QjhC
NjcyMDBDMzYxMDMgLyogSlNET01FcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDBFQ0FFN0QxNkI4QjY3MjAwQzM2MTAzIC8qIEpTRE9NRXJyb3Iu
aCAqLzsgfTsKKwkJNDBFQ0FFODExNkI4QjY4QTAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDBFQ0FFODAxNkI4
QjY4QTAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuY3BwICovOyB9OwogCQk0MTAwMkNDRDBGNjZFREVG
MDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwMkNDQjBGNjZFREVGMDA5RTY2MEQgLyogU2NyaXB0
RnVuY3Rpb25DYWxsLmggKi87IH07CiAJCTQxMDAyQ0NFMEY2NkVERUYwMDlFNjYwRCAvKiBTY3Jp
cHRGdW5jdGlvbkNhbGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEwMDJDQ0MwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5j
cHAgKi87IH07CiAJCTQxMEI3RTcyMTA0NUZBQjAwMEQ4MjI0RiAvKiBKU01lc3NhZ2VFdmVudEN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovOyB9
OwpAQCAtODQyNCw2ICs4NDM0LDE4IEBACiAJCTNGRkZGOUE3MTU5RDlBNTUwMDIwQkJENSAvKiBX
ZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViS2l0Q1NTVmlld3BvcnRSdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNG
RkZGOUFCMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlld3BvcnRTdHlsZVJlc29sdmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0ZGRkY5QUMxNTlEOUIwNjAwMjBCQkQ1
IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDA5RUJEQUMxNkI3RUUxQzAwQ0JBM0ZDIC8qIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdENTU0ZvbnRG
YWNlTG9hZEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQUUx
NkI3RUUyODAwQ0JBM0ZDIC8qIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQwOUVCREFGMTZCN0VFNTcwMENCQTNGQyAvKiBX
ZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2Vi
S2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MDlFQkRCMzE2QjdFRTg3MDBDQkEzRkMgLyogV2ViS2l0Rm9udExvYWRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRGb250TG9hZGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQjUxNkI3RUVBMzAwQ0JBM0ZDIC8qIFdl
YktpdEZvbnRMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0
Rm9udExvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MDlFQkRCNzE2QjdF
RUJBMDBDQkEzRkMgLyogV2ViS2l0Rm9udExvYWRlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gV2ViS2l0Rm9udExvYWRlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQw
OUVCREI5MTZCN0YwNDUwMENCQTNGQyAvKiBKU1dlYktpdEZvbnRMb2FkZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRGb250TG9hZGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQkYxNkI3RjM4RTAwQ0JBM0ZDIC8qIEpT
V2ViS2l0Rm9udExvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dl
YktpdEZvbnRMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQzIx
NkI3RjNBNjAwQ0JBM0ZDIC8qIEpTV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MDlFQkRDNDE2QjdGM0NBMDBDQkEzRkMg
LyogSlNXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDBFQ0FFN0QxNkI4QjY3MjAwQzM2MTAzIC8qIEpTRE9N
RXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01FcnJvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MEVDQUU4MDE2QjhCNjhBMDBDMzYxMDMgLyog
SlNET01FcnJvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RP
TUVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwMDJDQ0IwRjY2RURF
RjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTY3JpcHRGdW5jdGlvbkNhbGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDEwMDJDQ0MwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRGdW5jdGlvbkNhbGwu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBCN0U3MTEwNDVGQUIwMDBEODIy
NEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTYxMDEsMTAgKzE2MTIzLDE2IEBACiAJCQkJQThEMDZCMzcwQTI2NURDRDAw
NUU3MjAzIC8qIEhUTUxOYW1lcy5oICovLAogCQkJCTUzRTI5RTVDMTY3QThBMTkwMDU4NkQzRCAv
KiBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNwcCAqLywKIAkJCQk1M0UyOUU1RDE2N0E4QTE5
MDA1ODZEM0QgLyogSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5oICovLAorCQkJCTQwRUNBRTgw
MTZCOEI2OEEwMEMzNjEwMyAvKiBKU0RPTUVycm9yLmNwcCAqLywKKwkJCQk0MEVDQUU3RDE2QjhC
NjcyMDBDMzYxMDMgLyogSlNET01FcnJvci5oICovLAogCQkJCTkzOEU2NUY2MDlGMDk4NUQwMDhB
NDhFQyAvKiBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwICovLAogCQkJCTkzOEU2NUYw
MDlGMDk4NDAwMDhBNDhFQyAvKiBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCAqLywKIAkJ
CQk4NTc0RDFGMTBBREU2MTIyMDA0Q0JBMTEgLyogSlNTVkdFbGVtZW50V3JhcHBlckZhY3Rvcnku
Y3BwICovLAogCQkJCTg1NzREMUYyMEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR0VsZW1lbnRXcmFw
cGVyRmFjdG9yeS5oICovLAorCQkJCTQwOUVCREM0MTZCN0YzQ0EwMENCQTNGQyAvKiBKU1dlYktp
dENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCAqLywKKwkJCQk0MDlFQkRDMjE2QjdGM0E2MDBDQkEz
RkMgLyogSlNXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oICovLAorCQkJCTQwOUVCREI5MTZC
N0YwNDUwMENCQTNGQyAvKiBKU1dlYktpdEZvbnRMb2FkZXIuY3BwICovLAorCQkJCTQwOUVCREJG
MTZCN0YzOEUwMENCQTNGQyAvKiBKU1dlYktpdEZvbnRMb2FkZXIuaCAqLywKIAkJCQlGQUJFNzJG
QjEwNTlDMjExMDBEOTk5REQgLyogTWF0aE1MRWxlbWVudEZhY3RvcnkuY3BwICovLAogCQkJCTQ0
QTI4QUFCMTJERkI4QUMwMEFFOTIzQiAvKiBNYXRoTUxFbGVtZW50RmFjdG9yeS5oICovLAogCQkJ
CUZBQkU3MkZDMTA1OUMyMTEwMEQ5OTlERCAvKiBNYXRoTUxOYW1lcy5jcHAgKi8sCkBAIC0yMjE0
NCw2ICsyMjE3Miw5IEBACiAJCQkJMzEwNjAzNkMxNDMyN0QyRTAwQUJGNEJBIC8qIFdlYktpdENT
U0ZpbHRlclZhbHVlLmNwcCAqLywKIAkJCQkzMTA2MDM2RDE0MzI3RDJFMDBBQkY0QkEgLyogV2Vi
S2l0Q1NTRmlsdGVyVmFsdWUuaCAqLywKIAkJCQkzMTA2MDM2RTE0MzI3RDJFMDBBQkY0QkEgLyog
V2ViS2l0Q1NTRmlsdGVyVmFsdWUuaWRsICovLAorCQkJCTQwOUVCREFDMTZCN0VFMUMwMENCQTNG
QyAvKiBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5jcHAgKi8sCisJCQkJNDA5RUJEQUUxNkI3
RUUyODAwQ0JBM0ZDIC8qIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmggKi8sCisJCQkJNDA5
RUJEQUYxNkI3RUU1NzAwQ0JBM0ZDIC8qIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbCAq
LywKIAkJCQkzMTI4OEU2RTBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5ZnJhbWVSdWxl
LmNwcCAqLywKIAkJCQkzMTI4OEU2RjBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5ZnJh
bWVSdWxlLmggKi8sCiAJCQkJMzE2RkUwOTEwRTZDQ0Q3RjAwQkY2MDg4IC8qIFdlYktpdENTU0tl
eWZyYW1lUnVsZS5pZGwgKi8sCkBAIC0yMjE2OCw2ICsyMjE5OSw5IEBACiAJCQkJM0ZGRkY5QTYx
NTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgKi8sCiAJCQkJM0ZG
RkY5QTcxNTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5oICovLAogCQkJ
CTNGMkIzM0UzMTY1QUJEMzUwMEUzOTg3QyAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaWRsICov
LAorCQkJCTQwOUVCREIzMTZCN0VFODcwMENCQTNGQyAvKiBXZWJLaXRGb250TG9hZGVyLmNwcCAq
LywKKwkJCQk0MDlFQkRCNTE2QjdFRUEzMDBDQkEzRkMgLyogV2ViS2l0Rm9udExvYWRlci5oICov
LAorCQkJCTQwOUVCREI3MTZCN0VFQkEwMENCQTNGQyAvKiBXZWJLaXRGb250TG9hZGVyLmlkbCAq
LywKIAkJCSk7CiAJCQlwYXRoID0gY3NzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTI0ODYxLDYgKzI0ODk1LDcgQEAKIAkJCQkxQUMyMjYwRDBEQjY5RjE5MDA4OUI2NjkgLyogSlNE
T01BcHBsaWNhdGlvbkNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0I3MEQ2NDA5RUIwQzdD
MDA5RDg0NjggLyogSlNET01CaW5kaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzYwRDdDMTBE
MjlBNDYzMDBCOTkxOEYgLyogSlNET01Db3JlRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0MEVDQUU3RTE2QjhCNjcyMDBDMzYxMDMgLyogSlNET01FcnJvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODk4Nzg1QTUxMjJDQTJBNzAwM0FBQkRBIC8qIEpTRE9NRmlsZVN5c3RlbS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODkzQzQ4MzcxMjQ5NTQ3MjAwMkIzRDg2IC8qIEpTRE9NRmlsZVN5c3Rl
bVN5bmMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFMDg4OEQ1MTE0ODg0OEEwMEFGNDI2NSAvKiBK
U0RPTUZvcm1EYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MzAzLDYgKzI1MzM4LDcgQEAKIAkJ
CQkzMUMwRkYzRTBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRBbmltYXRpb25FdmVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTJFOEFFMzgxNkE0OTg0MDAwNkJCM0FBIC8qIEpTV2ViS2l0Q1NT
RmlsdGVyUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEwNjAzNzUxNDMyODE5QzAwQUJGNEJB
IC8qIEpTV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQwOUVCREMz
MTZCN0YzQTYwMENCQTNGQyAvKiBKU1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMTZGRTA3MjBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NLZXlm
cmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDc0MEU2Q0NCRUUwMEJGNjA4OCAv
KiBKU1dlYktpdENTU0tleWZyYW1lc1J1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5ODM5MTQw
MEYxRTc2NzUwMEMyMzc4MiAvKiBKU1dlYktpdENTU01hdHJpeC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNTMxMCw2ICsyNTM0Niw3IEBACiAJCQkJOEFEMEE1OTUxNEM4ODMzNjAwMEQ4M0M1IC8qIEpT
V2ViS2l0Q1NTUmVnaW9uUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2MTFFNUIwRTFDNERF
MDAwRjZBNTc5IC8qIEpTV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTNGMkIzM0VGMTY1QUYxNTYwMEUzOTg3QyAvKiBKU1dlYktpdENTU1ZpZXdwb3J0UnVsZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDA5RUJEQzAxNkI3RjM4RTAwQ0JBM0ZDIC8qIEpTV2ViS2l0
Rm9udExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk0QkQ3OUUwRjU1Qzk0QzAwNzQ3ODI4
IC8qIEpTV2ViS2l0UG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQzBGRjQwMEU0Q0VGQUMw
MDdENkZFNSAvKiBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NURBNUUwRkQxMDJCOTUzODAwMDg4Q0Y5IC8qIEpTV2ViU29ja2V0LmggaW4gSGVhZGVycyAqLywK
QEAgLTI2NDc5LDYgKzI2NTE2LDcgQEAKIAkJCQkxNTBCOTIzQTE1RjA4REM0MDBFMTA5ODYgLyog
V2ViS2l0Q1NTQXJyYXlGdW5jdGlvblZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMkU4QUUz
MTE2QTQ4RTFDMDA2QkIzQUEgLyogV2ViS2l0Q1NTRmlsdGVyUnVsZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzEwNjAzNzAxNDMyN0QyRTAwQUJGNEJBIC8qIFdlYktpdENTU0ZpbHRlclZhbHVlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0MDlFQkRCMTE2QjdFRTcxMDBDQkEzRkMgLyogV2ViS2l0Q1NT
Rm9udEZhY2VMb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMjg4RTczMEUzMDA1RDYw
MDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMx
Mjg4RTc1MEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0OTgzOTE1OTBGMUU3NzY5MDBDMjM3ODIgLyogV2ViS2l0Q1NTTWF0cml4
LmggaW4gSGVhZGVycyAqLywKQEAgLTI2NDg4LDYgKzI2NTI2LDcgQEAKIAkJCQkwNTYyRjk0NzE1
NzNFQ0VCMDAzMUNBMTYgLyogV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM5QUREMjMwQ0M0MDMyNjAwMDk4QzRDIC8qIFdlYktpdENTU1RyYW5zZm9ybVZh
bHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzRkZGRjlBOTE1OUQ5QTU1MDAyMEJCRDUgLyogV2Vi
S2l0Q1NTVmlld3BvcnRSdWxlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MDlFQkRCNjE2QjdFRUEz
MDBDQkEzRkMgLyogV2ViS2l0Rm9udExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk0QkQ3
OTUwRjU1QzhFRTAwNzQ3ODI4IC8qIFdlYktpdFBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkz
MUMwRkYyNTBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkNGMzMyRjBGMkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5ZXIuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjgxNzksNiArMjgyMTgsNyBAQAogCQkJCTFBQzIyNjBDMERCNjlGMTkw
MDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTNCNzBENjMwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTRE9NQmluZGluZy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzYwRDdDMDBEMjlBNDYzMDBCOTkxOEYgLyogSlNET01Db3JlRXhjZXB0aW9uLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTQwRUNBRTgxMTZCOEI2OEEwMEMzNjEwMyAvKiBKU0RPTUVy
cm9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5ODc4NUE0MTIyQ0EyQTcwMDNBQUJEQSAvKiBK
U0RPTUZpbGVTeXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODkzQzQ4MzYxMjQ5NTQ3MjAw
MkIzRDg2IC8qIEpTRE9NRmlsZVN5c3RlbVN5bmMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkUw
ODg4RDQxMTQ4ODQ4QTAwQUY0MjY1IC8qIEpTRE9NRm9ybURhdGEuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yODcwNSw2ICsyODc0NSw3IEBACiAJCQkJMzFDMEZGM0QwRTRDRUZBQzAwN0Q2RkU1IC8q
IEpTV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTJFOEFFMzcx
NkE0OTg0MDAwNkJCM0FBIC8qIEpTV2ViS2l0Q1NTRmlsdGVyUnVsZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkzMTA2MDM3NDE0MzI4MTlDMDBBQkY0QkEgLyogSlNXZWJLaXRDU1NGaWx0ZXJWYWx1
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MDlFQkRDNTE2QjdGM0NBMDBDQkEzRkMgLyogSlNX
ZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTZGRTA3
MTBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRTFBRDE0QzUxMjk3MzU0OTAwQUNBOTg5IC8qIEpTV2ViS2l0Q1NTS2V5ZnJh
bWVSdWxlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNkZFMDczMEU2Q0NCRUUwMEJG
NjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
ODcxNCw2ICsyODc1NSw3IEBACiAJCQkJOEFEMEE1OTQxNEM4ODMzNjAwMEQ4M0M1IC8qIEpTV2Vi
S2l0Q1NTUmVnaW9uUnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTYxMUU1QTBFMUM0REUw
MDBGNkE1NzkgLyogSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkzRjJCMzNFRTE2NUFGMTU2MDBFMzk4N0MgLyogSlNXZWJLaXRDU1NWaWV3cG9ydFJ1bGUu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDA5RUJEQkExNkI3RjA0NTAwQ0JBM0ZDIC8qIEpTV2Vi
S2l0Rm9udExvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlENzYxM0FDNDE0NzUzRTU2MDBE
Qjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk0QkQ3
OUQwRjU1Qzk0QzAwNzQ3ODI4IC8qIEpTV2ViS2l0UG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkMyNzVCNzkxMUM1RDFDMzAwQzkyMDZDIC8qIEpTV2ViS2l0UG9pbnRDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yOTY4Myw2ICsyOTcyNSw3IEBACiAJCQkJMTUwQjkyMzkxNUYwOERD
NDAwRTEwOTg2IC8qIFdlYktpdENTU0FycmF5RnVuY3Rpb25WYWx1ZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBMkU4QUUzMDE2QTQ4RTFDMDA2QkIzQUEgLyogV2ViS2l0Q1NTRmlsdGVyUnVsZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTA2MDM2RjE0MzI3RDJFMDBBQkY0QkEgLyogV2ViS2l0
Q1NTRmlsdGVyVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDA5RUJEQjIxNkI3RUU3NDAw
Q0JBM0ZDIC8qIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTMxMjg4RTcyMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzEyODhFNzQwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktpdENT
U0tleWZyYW1lc1J1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk4MzkxNTgwRjFFNzc2OTAw
QzIzNzgyIC8qIFdlYktpdENTU01hdHJpeC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5NjkzLDYg
KzI5NzM2LDcgQEAKIAkJCQlCQzlBREQ4MDBDQzQwOTIyMDAwOThDNEMgLyogV2ViS2l0Q1NTVHJh
bnNmb3JtVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJM0ZGRkY5QTgxNTlEOUE1NTAwMjBC
QkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTE0
MTRCNTEzQTBGMDUwMDAxOTk5NkMgLyogV2ViS2l0Rm9udEZhbWlseU5hbWVzLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTQwOUVCREI0MTZCN0VFODcwMENCQTNGQyAvKiBXZWJLaXRGb250TG9hZGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQ3NjEzQTUwMTQ3NEYxM0YwMERCODYwNiAvKiBXZWJL
aXROYW1lZEZsb3cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFDMEZGMjQwRTRDRUI2RTAwN0Q2
RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkNG
MzMyRTBGMkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5ZXIubW0gaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCmluZGV4IGY5ODA0ZGY2YTIx
YWQ1YzJlOTFlZjAxMTAyMTVhZjA2NGU3YzliNmIuLjlmNjA2YjEwNDE0ZWFiZGU0ZjE4NGRjNTNm
Zjk0NDFiODk5MDdhN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RGljdGlvbmFyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9u
YXJ5LmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiAjaW5jbHVkZSAiQXJyYXlWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkRpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJKU0NTU0ZvbnRGYWNlUnVsZS5oIgorI2lu
Y2x1ZGUgIkpTRE9NRXJyb3IuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgogI2luY2x1ZGUg
IkpTRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJKU01lc3NhZ2VQb3J0Q3VzdG9tLmgiCkBAIC0z
NSw2ICszNyw3IEBACiAjaW5jbHVkZSAiSlNTdG9yYWdlLmgiCiAjaW5jbHVkZSAiSlNUcmFja0N1
c3RvbS5oIgogI2luY2x1ZGUgIkpTVWludDhBcnJheS5oIgorI2luY2x1ZGUgIkpTVm9pZENhbGxi
YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtMjI2LDYgKzIyOSwyNiBA
QCB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U1ZhbHVlIHZhbHVlLCBSZWZQdHI8TWVkaQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRk9OVF9M
T0FERVIpCit2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiYgcmVzdWx0KQorewor
ICAgIHJlc3VsdCA9IHRvQ1NTRm9udEZhY2VSdWxlKHZhbHVlKTsKK30KKwordm9pZCBKU0RpY3Rp
b25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwg
UmVmUHRyPERPTUVycm9yPiYgcmVzdWx0KQoreworICAgIHJlc3VsdCA9IHRvRE9NRXJyb3IodmFs
dWUpOworfQorCit2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRl
KiBleGVjLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiByZXN1bHQp
Cit7CisgICAgaWYgKCF2YWx1ZS5pc0Z1bmN0aW9uKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IHJlc3VsdCA9IEpTVm9pZENhbGxiYWNrOjpjcmVhdGUoYXNPYmplY3QodmFsdWUpLCBqc0Nhc3Q8
SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpKTsKK30KKyNl
bmRpZgorCiBib29sIEpTRGljdGlvbmFyeTo6Z2V0V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKGNv
bnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBTdHJpbmcmIHJlc3VsdCkgY29uc3QKIHsKICAgICBB
U1NFUlQoaXNWYWxpZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRGljdGlvbmFyeS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5
LmgKaW5kZXggNzI5Mjc2NGIxZjMzZDE4ZWE0YmFlMmFiNGFjN2Q5MmE0MDljMTYwOS4uODZkNDVl
MDU5MjliZmEzNzQwN2NhOGFkMzVjYzlmNzQwNWIzOTZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmgKQEAgLTM2LDcgKzM2LDkgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgQXJyYXlWYWx1ZTsKK2NsYXNzIENTU0ZvbnRGYWNlUnVsZTsKIGNsYXNz
IERpY3Rpb25hcnk7CitjbGFzcyBET01FcnJvcjsKIGNsYXNzIERPTVdpbmRvdzsKIGNsYXNzIEV2
ZW50VGFyZ2V0OwogY2xhc3MgTWVkaWFLZXlFcnJvcjsKQEAgLTQ2LDYgKzQ4LDcgQEAgY2xhc3Mg
U2NyaXB0VmFsdWU7CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBTdG9yYWdl
OwogY2xhc3MgVHJhY2tCYXNlOworY2xhc3MgVm9pZENhbGxiYWNrOwogCiBjbGFzcyBKU0RpY3Rp
b25hcnkgewogcHVibGljOgpAQCAtMTE5LDYgKzEyMiwxMSBAQCBwcml2YXRlOgogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAgICAgc3RhdGljIHZvaWQgY29udmVydFZhbHVlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlLCBSZWZQdHI8TWVkaWFTdHJlYW0+JiByZXN1bHQpOwogI2VuZGlm
CisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRWYWx1ZShK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4mIHJl
c3VsdCk7CisgICAgc3RhdGljIHZvaWQgY29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU1ZhbHVlLCBSZWZQdHI8RE9NRXJyb3I+JiByZXN1bHQpOworICAgIHN0YXRpYyB2b2lkIGNv
bnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgUmVmUHRyPFZvaWRDYWxs
YmFjaz4mIHJlc3VsdCk7CisjZW5kaWYKIAogICAgIEpTQzo6RXhlY1N0YXRlKiBtX2V4ZWM7CiAg
ICAgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4gbV9pbml0aWFsaXplck9iamVjdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFyeS5jcHAKaW5kZXggOGE5Y2YxZGY2YmI1NWRi
OTI3ZDNmNDEwZjNjNmI3YzlkMGRhM2VkMi4uYmEwNmI2YWY4NTQ5OGQ4YjU5YmY3NzI3MzJhNjQy
YWZiOTJlNzIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlv
bmFyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFyeS5jcHAK
QEAgLTY0LDYgKzY0LDEyIEBACiAjaW5jbHVkZSAiVjhNZWRpYVN0cmVhbS5oIgogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisjaW5jbHVkZSAiVjhDU1NGb250RmFjZVJ1bGUuaCIK
KyNpbmNsdWRlICJWOERPTUVycm9yLmgiCisjaW5jbHVkZSAiVjhWb2lkQ2FsbGJhY2suaCIKKyNl
bmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERpY3Rpb25hcnk6OkRpY3Rpb25hcnkoKQpA
QCAtNDk4LDYgKzUwNCw1NSBAQCBib29sIERpY3Rpb25hcnk6OmdldChjb25zdCBTdHJpbmcmIGtl
eSwgQXJyYXlWYWx1ZSYgdmFsdWUpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKyNpZiBF
TkFCTEUoRk9OVF9MT0FERVIpCitib29sIERpY3Rpb25hcnk6OmdldChjb25zdCBTdHJpbmcmIGtl
eSwgUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4mIHZhbHVlKSBjb25zdAoreworICAgIHY4OjpMb2Nh
bDx2ODo6VmFsdWU+IHY4VmFsdWU7CisgICAgaWYgKCFnZXRLZXkoa2V5LCB2OFZhbHVlKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQ1NTRm9udEZhY2VSdWxlKiBzb3VyY2UgPSAwOwor
ICAgIGlmICh2OFZhbHVlLT5Jc09iamVjdCgpKSB7CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gd3JhcHBlciA9IHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QodjhWYWx1ZSk7Cisg
ICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gZm9udGZhY2UgPSB3cmFwcGVyLT5GaW5kSW5z
dGFuY2VJblByb3RvdHlwZUNoYWluKFY4Q1NTRm9udEZhY2VSdWxlOjpHZXRUZW1wbGF0ZShtX2lz
b2xhdGUpKTsKKyAgICAgICAgaWYgKCFmb250ZmFjZS5Jc0VtcHR5KCkpCisgICAgICAgICAgICBz
b3VyY2UgPSBWOENTU0ZvbnRGYWNlUnVsZTo6dG9OYXRpdmUoZm9udGZhY2UpOworICAgIH0KKyAg
ICB2YWx1ZSA9IHNvdXJjZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBEaWN0aW9uYXJ5
OjpnZXQoY29uc3QgU3RyaW5nJiBrZXksIFJlZlB0cjxET01FcnJvcj4mIHZhbHVlKSBjb25zdAor
eworICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHY4VmFsdWU7CisgICAgaWYgKCFnZXRLZXkoa2V5
LCB2OFZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRE9NRXJyb3IqIGVycm9y
ID0gMDsKKyAgICBpZiAodjhWYWx1ZS0+SXNPYmplY3QoKSkgeworICAgICAgICB2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IHdyYXBwZXIgPSB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHY4VmFs
dWUpOworICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGRvbUVycm9yID0gd3JhcHBlci0+
RmluZEluc3RhbmNlSW5Qcm90b3R5cGVDaGFpbihWOERPTUVycm9yOjpHZXRUZW1wbGF0ZShtX2lz
b2xhdGUpKTsKKyAgICAgICAgaWYgKCFkb21FcnJvci5Jc0VtcHR5KCkpCisgICAgICAgICAgICBl
cnJvciA9IFY4RE9NRXJyb3I6OnRvTmF0aXZlKGRvbUVycm9yKTsKKyAgICB9CisgICAgdmFsdWUg
PSBlcnJvcjsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBEaWN0aW9uYXJ5OjpnZXQoY29u
c3QgU3RyaW5nJiBrZXksIFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiB2YWx1ZSkgY29uc3QKK3sKKyAg
ICB2ODo6TG9jYWw8djg6OlZhbHVlPiB2OFZhbHVlOworICAgIGlmICghZ2V0S2V5KGtleSwgdjhW
YWx1ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghdjhWYWx1ZS0+SXNGdW5j
dGlvbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB2YWx1ZSA9IFY4Vm9pZENhbGxi
YWNrOjpjcmVhdGUodjhWYWx1ZSwgZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKyNlbmRpZgorCiBib29sIERpY3Rpb25hcnk6OmdldE93blByb3BlcnRp
ZXNBc1N0cmluZ0hhc2hNYXAoSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGhhc2hNYXApIGNvbnN0
CiB7CiAgICAgaWYgKCFpc09iamVjdCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvRGljdGlvbmFyeS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlv
bmFyeS5oCmluZGV4IDc2NTAyOTVjMzIxZmI0ZmQ4NTZlNDc0YmI5YmFmZDkzM2QwZDc3ZjYuLjI3
NGI3ZDkxYzk3OGQzMWU1ZDk5YzEwMmZjMDM3NDIxY2Q1YTBkZGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9EaWN0aW9uYXJ5LmgKQEAgLTM5LDYgKzM5LDggQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgQXJyYXlWYWx1ZTsKK2NsYXNzIENTU0ZvbnRGYWNlUnVsZTsKK2NsYXNz
IERPTUVycm9yOwogY2xhc3MgRE9NV2luZG93OwogY2xhc3MgSURCS2V5UmFuZ2U7CiBjbGFzcyBN
ZWRpYUtleUVycm9yOwpAQCAtNDgsNiArNTAsNyBAQCBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdDsKIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdDsKIGNsYXNzIFN0b3JhZ2U7
CiBjbGFzcyBUcmFja0Jhc2U7CitjbGFzcyBWb2lkQ2FsbGJhY2s7CiAKIGNsYXNzIERpY3Rpb25h
cnkgewogcHVibGljOgpAQCAtOTMsNiArOTYsMTEgQEAgcHVibGljOgogICAgIGJvb2wgZ2V0KGNv
bnN0IFN0cmluZyYsIERpY3Rpb25hcnkmKSBjb25zdDsKICAgICBib29sIGdldChjb25zdCBTdHJp
bmcmLCBWZWN0b3I8U3RyaW5nPiYpIGNvbnN0OwogICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYs
IEFycmF5VmFsdWUmKSBjb25zdDsKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisgICAgYm9vbCBn
ZXQoY29uc3QgU3RyaW5nJiwgUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4mKSBjb25zdDsKKyAgICBi
b29sIGdldChjb25zdCBTdHJpbmcmLCBSZWZQdHI8RE9NRXJyb3I+JikgY29uc3Q7CisgICAgYm9v
bCBnZXQoY29uc3QgU3RyaW5nJiwgUmVmUHRyPFZvaWRDYWxsYmFjaz4mKSBjb25zdDsKKyNlbmRp
ZgogCiAgICAgYm9vbCBnZXRPd25Qcm9wZXJ0aWVzQXNTdHJpbmdIYXNoTWFwKEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+JikgY29uc3Q7CiAgICAgYm9vbCBnZXRPd25Qcm9wZXJ0eU5hbWVzKFZlY3Rv
cjxTdHJpbmc+JikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcAppbmRleCAyNzdm
YmQ5Mjg5ZjZkNzc4MWY4MWFjMzQ5NDllNzJmMjg2NDMwNWFkLi5jZjkwMDljNDM1ODkyZmQ2NjNk
YTkwNTM5MTg5ZGYyZWNmMTlhZjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udEZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKQEAg
LTI5LDggKzI5LDEwIEBACiAjaW5jbHVkZSAiQ1NTRm9udEZhY2VTb3VyY2UuaCIKICNpbmNsdWRl
ICJDU1NGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJDU1NTZWdtZW50ZWRGb250RmFjZS5oIgor
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5j
bHVkZSAiU2ltcGxlRm9udERhdGEuaCIKKyNpbmNsdWRlICJXZWJLaXRGb250TG9hZGVyLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODEsMTQgKzgzLDI3IEBAIHZvaWQgQ1NTRm9udEZh
Y2U6OmZvbnRMb2FkZWQoQ1NTRm9udEZhY2VTb3VyY2UqIHNvdXJjZSkKICAgICBpZiAobV9zZWdt
ZW50ZWRGb250RmFjZXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBIYXNoU2V0
PENTU1NlZ21lbnRlZEZvbnRGYWNlKj46Oml0ZXJhdG9yIGVuZCA9IG1fc2VnbWVudGVkRm9udEZh
Y2VzLmVuZCgpOwotICAgIGZvciAoSGFzaFNldDxDU1NTZWdtZW50ZWRGb250RmFjZSo+OjppdGVy
YXRvciBpdCA9IG1fc2VnbWVudGVkRm9udEZhY2VzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkK
LSAgICAgICAgKCppdCktPmZvbnRMb2FkZWQodGhpcyk7Ci0KICAgICAvLyBVc2Ugb25lIG9mIHRo
ZSBDU1NTZWdtZW50ZWRGb250RmFjZXMnIGZvbnQgc2VsZWN0b3IuIFRoZXkgYWxsIGhhdmUKICAg
ICAvLyB0aGUgc2FtZSBmb250IHNlbGVjdG9yLCBzbyBpdCdzIHdhc3RlZnVsIHRvIHN0b3JlIGl0
IGluIHRoZSBDU1NGb250RmFjZS4KICAgICBDU1NGb250U2VsZWN0b3IqIGZvbnRTZWxlY3RvciA9
ICgqbV9zZWdtZW50ZWRGb250RmFjZXMuYmVnaW4oKSktPmZvbnRTZWxlY3RvcigpOwogICAgIGZv
bnRTZWxlY3Rvci0+Zm9udExvYWRlZCgpOworCisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorICAg
IGlmIChtX2xvYWRTdGF0ZSA9PSBMb2FkaW5nKSB7CisgICAgICAgIGlmIChzb3VyY2UtPmVuc3Vy
ZUZvbnREYXRhKCkpCisgICAgICAgICAgICBub3RpZnlGb250TG9hZGVyKExvYWRlZCk7CisgICAg
ICAgIGVsc2UgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgICAgICBub3RpZnlGb250TG9hZGVyKEVy
cm9yKTsKKyAgICB9CisjZW5kaWYKKworICAgIEhhc2hTZXQ8Q1NTU2VnbWVudGVkRm9udEZhY2Uq
Pjo6aXRlcmF0b3IgZW5kID0gbV9zZWdtZW50ZWRGb250RmFjZXMuZW5kKCk7CisgICAgZm9yIChI
YXNoU2V0PENTU1NlZ21lbnRlZEZvbnRGYWNlKj46Oml0ZXJhdG9yIGl0ID0gbV9zZWdtZW50ZWRG
b250RmFjZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICAoKml0KS0+Zm9udExv
YWRlZCh0aGlzKTsKKworI2lmIEVOQUJMRShGT05UX0xPQURFUikKKyAgICBub3RpZnlMb2FkaW5n
RG9uZSgpOworI2VuZGlmCiB9CiAKIFBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IENTU0ZvbnRG
YWNlOjpnZXRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwg
Ym9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYykKQEAgLTEwMCwxNyArMTE1
LDY2IEBAIFBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IENTU0ZvbnRGYWNlOjpnZXRGb250RGF0
YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnRECiAgICAgQVNTRVJUKCFtX3NlZ21lbnRlZEZv
bnRGYWNlcy5pc0VtcHR5KCkpOwogICAgIENTU0ZvbnRTZWxlY3RvciogZm9udFNlbGVjdG9yID0g
KCptX3NlZ21lbnRlZEZvbnRGYWNlcy5iZWdpbigpKS0+Zm9udFNlbGVjdG9yKCk7CiAKKyNpZiBF
TkFCTEUoRk9OVF9MT0FERVIpCisgICAgaWYgKG1fbG9hZFN0YXRlID09IE5vdExvYWRlZCkKKyAg
ICAgICAgbm90aWZ5Rm9udExvYWRlcihMb2FkaW5nKTsKKyNlbmRpZgorCiAgICAgc2l6ZV90IHNp
emUgPSBtX3NvdXJjZXMuc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsg
KytpKSB7CiAgICAgICAgIGlmIChSZWZQdHI8U2ltcGxlRm9udERhdGE+IHJlc3VsdCA9IG1fc291
cmNlc1tpXS0+Z2V0Rm9udERhdGEoZm9udERlc2NyaXB0aW9uLCBzeW50aGV0aWNCb2xkLCBzeW50
aGV0aWNJdGFsaWMsIGZvbnRTZWxlY3RvcikpIHsKICAgICAgICAgICAgIG1fYWN0aXZlU291cmNl
ID0gbV9zb3VyY2VzW2ldLmdldCgpOworI2lmIEVOQUJMRShGT05UX0xPQURFUikKKyAgICAgICAg
ICAgIGlmIChtX2xvYWRTdGF0ZSA9PSBMb2FkaW5nICYmIG1fc291cmNlc1tpXS0+aXNMb2FkZWQo
KSkgeworICAgICAgICAgICAgICAgIG5vdGlmeUZvbnRMb2FkZXIoTG9hZGVkKTsKKyAgICAgICAg
ICAgICAgICBub3RpZnlMb2FkaW5nRG9uZSgpOworICAgICAgICAgICAgfQorI2VuZGlmCiAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKICAgICAgICAgfQogICAgIH0KIAorI2lm
IEVOQUJMRShGT05UX0xPQURFUikKKyAgICBpZiAobV9sb2FkU3RhdGUgPT0gTG9hZGluZykgewor
ICAgICAgICBub3RpZnlGb250TG9hZGVyKEVycm9yKTsKKyAgICAgICAgbm90aWZ5TG9hZGluZ0Rv
bmUoKTsKKyAgICB9CisjZW5kaWYKICAgICByZXR1cm4gMDsKIH0KIAorI2lmIEVOQUJMRShGT05U
X0xPQURFUikKK3ZvaWQgQ1NTRm9udEZhY2U6Om5vdGlmeUZvbnRMb2FkZXIoTG9hZFN0YXRlIG5l
d1N0YXRlKQoreworICAgIG1fbG9hZFN0YXRlID0gbmV3U3RhdGU7CisKKyAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSAoKm1fc2VnbWVudGVkRm9udEZhY2VzLmJlZ2luKCkpLT5mb250U2VsZWN0b3Io
KS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm47CisKKyAg
ICBzd2l0Y2ggKG5ld1N0YXRlKSB7CisgICAgY2FzZSBMb2FkaW5nOgorICAgICAgICBkb2N1bWVu
dC0+d2Via2l0Rm9udGxvYWRlcigpLT5iZWdpbkZvbnRMb2FkaW5nKG1fcnVsZS5nZXQoKSk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9hZGVkOgorICAgICAgICBkb2N1bWVudC0+d2Via2l0
Rm9udGxvYWRlcigpLT5mb250TG9hZGVkKG1fcnVsZS5nZXQoKSk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgRXJyb3I6CisgICAgICAgIGRvY3VtZW50LT53ZWJraXRGb250bG9hZGVyKCktPmxv
YWRFcnJvcihtX3J1bGUuZ2V0KCksIG1fYWN0aXZlU291cmNlKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCit2b2lkIENTU0ZvbnRGYWNl
Ojpub3RpZnlMb2FkaW5nRG9uZSgpCit7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gKCptX3Nl
Z21lbnRlZEZvbnRGYWNlcy5iZWdpbigpKS0+Zm9udFNlbGVjdG9yKCktPmRvY3VtZW50KCk7Cisg
ICAgaWYgKGRvY3VtZW50KQorICAgICAgICBkb2N1bWVudC0+d2Via2l0Rm9udGxvYWRlcigpLT5s
b2FkaW5nRG9uZSgpOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQogYm9vbCBD
U1NGb250RmFjZTo6aGFzU1ZHRm9udEZhY2VTb3VyY2UoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udEZhY2UuaAppbmRleCBlM2Y2NDgxMDdjNjE3ZThhZjIzNTVkOGYxMTQxMGExYTc3MTg3NGU3
Li4zNDcyODYyYWY2MDQzNDZmY2RhOGM5MmYxYmQyOTVkOGNiMGQ2ZGNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2UuaApAQCAtMjYsNiArMjYsOCBAQAogI2lmbmRlZiBDU1NGb250RmFjZV9oCiAj
ZGVmaW5lIENTU0ZvbnRGYWNlX2gKIAorI2luY2x1ZGUgIkNTU0ZvbnRGYWNlUnVsZS5oIgorI2lu
Y2x1ZGUgIkNTU0ZvbnRGYWNlU291cmNlLmgiCiAjaW5jbHVkZSAiRm9udFRyYWl0c01hc2suaCIK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC0z
NiwxNCArMzgsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBDU1NGb250RmFj
ZVNvdXJjZTsKIGNsYXNzIENTU1NlZ21lbnRlZEZvbnRGYWNlOwogY2xhc3MgRm9udERlc2NyaXB0
aW9uOwogY2xhc3MgU2ltcGxlRm9udERhdGE7CiAKIGNsYXNzIENTU0ZvbnRGYWNlIDogcHVibGlj
IFJlZkNvdW50ZWQ8Q1NTRm9udEZhY2U+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxDU1NGb250RmFjZT4gY3JlYXRlKEZvbnRUcmFpdHNNYXNrIHRyYWl0c01hc2ssIGJvb2wgaXNM
b2NhbEZhbGxiYWNrID0gZmFsc2UpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NGb250RmFjZSh0
cmFpdHNNYXNrLCBpc0xvY2FsRmFsbGJhY2spKTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPENT
U0ZvbnRGYWNlPiBjcmVhdGUoRm9udFRyYWl0c01hc2sgdHJhaXRzTWFzaywgUGFzc1JlZlB0cjxD
U1NGb250RmFjZVJ1bGU+IHJ1bGUsIGJvb2wgaXNMb2NhbEZhbGxiYWNrID0gZmFsc2UpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBDU1NGb250RmFjZSh0cmFpdHNNYXNrLCBydWxlLCBpc0xvY2FsRmFs
bGJhY2spKTsgfQogCiAgICAgRm9udFRyYWl0c01hc2sgdHJhaXRzTWFzaygpIGNvbnN0IHsgcmV0
dXJuIG1fdHJhaXRzTWFzazsgfQogCkBAIC04NSwxMiArODYsMjIgQEAgcHVibGljOgogICAgIGJv
b2wgaGFzU1ZHRm9udEZhY2VTb3VyY2UoKSBjb25zdDsKICNlbmRpZgogCisjaWYgRU5BQkxFKEZP
TlRfTE9BREVSKQorICAgIGVudW0gTG9hZFN0YXRlIHsgTm90TG9hZGVkLCBMb2FkaW5nLCBMb2Fk
ZWQsIEVycm9yIH07CisgICAgTG9hZFN0YXRlIGxvYWRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bG9hZFN0YXRlOyB9CisjZW5kaWYKKwogcHJpdmF0ZToKLSAgICBDU1NGb250RmFjZShGb250VHJh
aXRzTWFzayB0cmFpdHNNYXNrLCBib29sIGlzTG9jYWxGYWxsYmFjaykKKyAgICBDU1NGb250RmFj
ZShGb250VHJhaXRzTWFzayB0cmFpdHNNYXNrLCBQYXNzUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4g
cnVsZSwgYm9vbCBpc0xvY2FsRmFsbGJhY2spCiAgICAgICAgIDogbV90cmFpdHNNYXNrKHRyYWl0
c01hc2spCiAgICAgICAgICwgbV9hY3RpdmVTb3VyY2UoMCkKICAgICAgICAgLCBtX2lzTG9jYWxG
YWxsYmFjayhpc0xvY2FsRmFsbGJhY2spCisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorICAgICAg
ICAsIG1fbG9hZFN0YXRlKGlzTG9jYWxGYWxsYmFjayA/IExvYWRlZCA6IE5vdExvYWRlZCkKKyAg
ICAgICAgLCBtX3J1bGUocnVsZSkKKyNlbmRpZgogICAgIHsKKyAgICAgICAgVU5VU0VEX1BBUkFN
KHJ1bGUpOwogICAgIH0KIAogICAgIEZvbnRUcmFpdHNNYXNrIG1fdHJhaXRzTWFzazsKQEAgLTk5
LDYgKzExMCwxMiBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxPd25QdHI8Q1NTRm9udEZhY2VTb3Vy
Y2U+ID4gbV9zb3VyY2VzOwogICAgIENTU0ZvbnRGYWNlU291cmNlKiBtX2FjdGl2ZVNvdXJjZTsK
ICAgICBib29sIG1faXNMb2NhbEZhbGxiYWNrOworI2lmIEVOQUJMRShGT05UX0xPQURFUikKKyAg
ICBMb2FkU3RhdGUgbV9sb2FkU3RhdGU7CisgICAgUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4gbV9y
dWxlOworICAgIHZvaWQgbm90aWZ5Rm9udExvYWRlcihMb2FkU3RhdGUpOworICAgIHZvaWQgbm90
aWZ5TG9hZGluZ0RvbmUoKTsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZhY2VSdWxlLmlkbAppbmRleCBmMTM0OTdjNDM3ZjZhZWUxZDY2MjcwNjNmMzA1NGNiYjZhOTIx
YzBiLi5iYTk3YTdiN2Y0ODI2MGI2YzMzMTc1MTQxMzNkM2Q2NWMxMTRmYWNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbApAQCAtMTksNyArMTksMTAgQEAKICAqLwogCiAv
LyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotaW50ZXJmYWNlIENTU0ZvbnRGYWNlUnVsZSA6
IENTU1J1bGUgeworaW50ZXJmYWNlIFsKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKKyAgICBK
U0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCitdIENTU0ZvbnRGYWNlUnVsZSA6IENTU1J1bGUgewog
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uIHN0eWxlOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAKaW5kZXggYTU5NTIxN2YzNzc0
OTU2MWQzMTYyMDMyNmVhZjU1Zjg1MjI2ZTg1OC4uMTdmZTVmMzc5ZjljNWFjZWE5YzY4MTNkOTVh
MDIyZmJjNjc0ZWNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3Bw
CkBAIC0yMDUsNCArMjA1LDI0IEBAIGJvb2wgQ1NTRm9udEZhY2VTb3VyY2U6OmlzU1ZHRm9udEZh
Y2VTb3VyY2UoKSBjb25zdAogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCiti
b29sIENTU0ZvbnRGYWNlU291cmNlOjppc0RlY29kZUVycm9yKCkgY29uc3QKK3sKKyAgICBpZiAo
bV9mb250KQorICAgICAgICByZXR1cm4gbV9mb250LT5zdGF0dXMoKSA9PSBDYWNoZWRSZXNvdXJj
ZTo6RGVjb2RlRXJyb3I7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIENTU0ZvbnRGYWNl
U291cmNlOjplbnN1cmVGb250RGF0YSgpCit7CisgICAgaWYgKCFtX2ZvbnQpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAgIGlmIChtX2hhc0V4dGVybmFs
U1ZHRm9udCkKKyAgICAgICAgcmV0dXJuIG1fZm9udC0+ZW5zdXJlU1ZHRm9udERhdGEoKTsKKyNl
bmRpZgorICAgIHJldHVybiBtX2ZvbnQtPmVuc3VyZUN1c3RvbUZvbnREYXRhKCk7Cit9CisjZW5k
aWYKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuaAppbmRleCAwNDg4ZDEw
ZDMyNjAwZTQ3ZGVkZDBmNzI4YzAwMzRjYTA0YWRmMTVjLi43YjU1ZmEwYjRmMmU4MjE1YWJhN2Iy
MDkxYWIwYmJkZGY1ZDVjMzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZhY2VTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2Uu
aApAQCAtNzAsNiArNzAsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SGFzRXh0ZXJuYWxTVkdG
b250KGJvb2wgdmFsdWUpIHsgbV9oYXNFeHRlcm5hbFNWR0ZvbnQgPSB2YWx1ZTsgfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisgICAgYm9vbCBpc0RlY29kZUVycm9yKCkgY29u
c3Q7CisgICAgYm9vbCBlbnN1cmVGb250RGF0YSgpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAg
dm9pZCBzdGFydExvYWRpbmdUaW1lckZpcmVkKFRpbWVyPENTU0ZvbnRGYWNlU291cmNlPiopOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCmluZGV4IGNiMGRjOGQxNGIxOGZm
NDg5YzM2YTdmMjAwNTAzYTQwOWU5NzIzMzYuLjM0Yjc2Y2IzMjIwNjQ2NzA0OGU4ZWZlMjZkNDc0
YjkwMzg4YWVjYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCkBAIC0y
OSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRGb250LmgiCiAjaW5jbHVkZSAiQ1NTRm9u
dEZhY2UuaCIKKyNpbmNsdWRlICJDU1NGb250RmFjZVJ1bGUuaCIKICNpbmNsdWRlICJDU1NGb250
RmFjZVNvdXJjZS5oIgogI2luY2x1ZGUgIkNTU0ZvbnRGYWNlU3JjVmFsdWUuaCIKICNpbmNsdWRl
ICJDU1NQcmltaXRpdmVWYWx1ZS5oIgpAQCAtMjI0LDggKzIyNSwxNCBAQCB2b2lkIENTU0ZvbnRT
ZWxlY3Rvcjo6YWRkRm9udEZhY2VSdWxlKGNvbnN0IFN0eWxlUnVsZUZvbnRGYWNlKiBmb250RmFj
ZVJ1bGUpCiAgICAgICAgICAgICBzb3VyY2UgPSBhZG9wdFB0cihuZXcgQ1NTRm9udEZhY2VTb3Vy
Y2UoaXRlbS0+cmVzb3VyY2UoKSkpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFmb250RmFj
ZSkKLSAgICAgICAgICAgIGZvbnRGYWNlID0gQ1NTRm9udEZhY2U6OmNyZWF0ZShzdGF0aWNfY2Fz
dDxGb250VHJhaXRzTWFzaz4odHJhaXRzTWFzaykpOworICAgICAgICBpZiAoIWZvbnRGYWNlKSB7
CisgICAgICAgICAgICBSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiBydWxlOworI2lmIEVOQUJMRShG
T05UX0xPQURFUikKKyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIENTU0ZvbnRGYWNlUnVsZSBo
YXMgbm8gcGFyZW50LgorICAgICAgICAgICAgcnVsZSA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8Q1NT
Rm9udEZhY2VSdWxlPihmb250RmFjZVJ1bGUtPmNyZWF0ZUNTU09NV3JhcHBlcigpKTsKKyNlbmRp
ZgorICAgICAgICAgICAgZm9udEZhY2UgPSBDU1NGb250RmFjZTo6Y3JlYXRlKHN0YXRpY19jYXN0
PEZvbnRUcmFpdHNNYXNrPih0cmFpdHNNYXNrKSwgcnVsZSk7CisgICAgICAgIH0KIAogICAgICAg
ICBpZiAoc291cmNlKSB7CiAjaWYgRU5BQkxFKFNWR19GT05UUykKQEAgLTI5Nyw3ICszMDQsNyBA
QCB2b2lkIENTU0ZvbnRTZWxlY3Rvcjo6YWRkRm9udEZhY2VSdWxlKGNvbnN0IFN0eWxlUnVsZUZv
bnRGYWNlKiBmb250RmFjZVJ1bGUpCiAgICAgICAgICAgICAgICAgT3duUHRyPFZlY3RvcjxSZWZQ
dHI8Q1NTRm9udEZhY2U+ID4gPiBmYW1pbHlMb2NhbGx5SW5zdGFsbGVkRmFjZXMgPSBhZG9wdFB0
cihuZXcgVmVjdG9yPFJlZlB0cjxDU1NGb250RmFjZT4gPik7CiAKICAgICAgICAgICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtTG9jYWxseUluc3RhbGxlZEZhY2VzOyArK2kpIHsK
LSAgICAgICAgICAgICAgICAgICAgUmVmUHRyPENTU0ZvbnRGYWNlPiBsb2NhbGx5SW5zdGFsbGVk
Rm9udEZhY2UgPSBDU1NGb250RmFjZTo6Y3JlYXRlKHN0YXRpY19jYXN0PEZvbnRUcmFpdHNNYXNr
Pihsb2NhbGx5SW5zdGFsbGVkRm9udHNUcmFpdHNNYXNrc1tpXSksIHRydWUpOworICAgICAgICAg
ICAgICAgICAgICBSZWZQdHI8Q1NTRm9udEZhY2U+IGxvY2FsbHlJbnN0YWxsZWRGb250RmFjZSA9
IENTU0ZvbnRGYWNlOjpjcmVhdGUoc3RhdGljX2Nhc3Q8Rm9udFRyYWl0c01hc2s+KGxvY2FsbHlJ
bnN0YWxsZWRGb250c1RyYWl0c01hc2tzW2ldKSwgMCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAg
ICAgIGxvY2FsbHlJbnN0YWxsZWRGb250RmFjZS0+YWRkU291cmNlKGFkb3B0UHRyKG5ldyBDU1NG
b250RmFjZVNvdXJjZShmYW1pbHlOYW1lKSkpOwogICAgICAgICAgICAgICAgICAgICBBU1NFUlQo
bG9jYWxseUluc3RhbGxlZEZvbnRGYWNlLT5pc1ZhbGlkKCkpOwogICAgICAgICAgICAgICAgICAg
ICBmYW1pbHlMb2NhbGx5SW5zdGFsbGVkRmFjZXMtPmFwcGVuZChsb2NhbGx5SW5zdGFsbGVkRm9u
dEZhY2UpOwpAQCAtNDc1LDExICs0ODIsOSBAQCBQYXNzUmVmUHRyPEZvbnREYXRhPiBDU1NGb250
U2VsZWN0b3I6OmdldEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlcwogICAg
ICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBTdHJpbmcgZmFtaWx5ID0gZmFtaWx5TmFtZS5z
dHJpbmcoKTsKLQotICAgIFZlY3RvcjxSZWZQdHI8Q1NTRm9udEZhY2U+ID4qIGZhbWlseUZvbnRG
YWNlcyA9IG1fZm9udEZhY2VzLmdldChmYW1pbHkpOworICAgIENTU1NlZ21lbnRlZEZvbnRGYWNl
KiBmYWNlID0gZ2V0Rm9udEZhY2UoZm9udERlc2NyaXB0aW9uLCBmYW1pbHlOYW1lKTsKICAgICAv
LyBJZiBubyBmYWNlIHdhcyBmb3VuZCwgdGhlbiByZXR1cm4gMCBhbmQgbGV0IHRoZSBPUyBjb21l
IHVwIHdpdGggaXRzIGJlc3QgbWF0Y2ggZm9yIHRoZSBuYW1lLgotICAgIGlmICghZmFtaWx5Rm9u
dEZhY2VzIHx8IGZhbWlseUZvbnRGYWNlcy0+aXNFbXB0eSgpKSB7CisgICAgaWYgKCFmYWNlKSB7
CiAgICAgICAgIC8vIElmIHdlIHdlcmUgaGFuZGVkIGEgZ2VuZXJpYyBmYW1pbHksIGJ1dCB0aGVy
ZSB3YXMgbm8gbWF0Y2gsIGdvIGFoZWFkIGFuZCByZXR1cm4gdGhlIGNvcnJlY3QgZm9udCBiYXNl
ZCBvZmYgb3VyCiAgICAgICAgIC8vIHNldHRpbmdzLgogICAgICAgICBpZiAoZm9udERlc2NyaXB0
aW9uLmdlbmVyaWNGYW1pbHkoKSA9PSBGb250RGVzY3JpcHRpb246OlN0YW5kYXJkRmFtaWx5ICYm
ICFmb250RGVzY3JpcHRpb24uaXNTcGVjaWZpZWRGb250KCkpCkBAIC00ODcsNiArNDkyLDE4IEBA
IFBhc3NSZWZQdHI8Rm9udERhdGE+IENTU0ZvbnRTZWxlY3Rvcjo6Z2V0Rm9udERhdGEoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiBmb250RGVzCiAgICAgICAgIHJldHVybiBmb250RGF0YUZvckdlbmVy
aWNGYW1pbHkobV9kb2N1bWVudCwgZm9udERlc2NyaXB0aW9uLCBmYW1pbHlOYW1lKTsKICAgICB9
CiAKKyAgICAvLyBXZSBoYXZlIGEgZmFjZS4gQXNrIGl0IGZvciBhIGZvbnQgZGF0YS4gSWYgaXQg
Y2Fubm90IHByb2R1Y2Ugb25lLCBpdCB3aWxsIGZhaWwsIGFuZCB0aGUgT1Mgd2lsbCB0YWtlIG92
ZXIuCisgICAgcmV0dXJuIGZhY2UtPmdldEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbik7Cit9CisK
K0NTU1NlZ21lbnRlZEZvbnRGYWNlKiBDU1NGb250U2VsZWN0b3I6OmdldEZvbnRGYWNlKGNvbnN0
IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBjb25zdCBBdG9taWNTdHJpbmcmIGZh
bWlseU5hbWUpCit7CisgICAgU3RyaW5nIGZhbWlseSA9IGZhbWlseU5hbWUuc3RyaW5nKCk7CisK
KyAgICBWZWN0b3I8UmVmUHRyPENTU0ZvbnRGYWNlPiA+KiBmYW1pbHlGb250RmFjZXMgPSBtX2Zv
bnRGYWNlcy5nZXQoZmFtaWx5KTsKKyAgICBpZiAoIWZhbWlseUZvbnRGYWNlcyB8fCBmYW1pbHlG
b250RmFjZXMtPmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBPd25QdHI8SGFz
aE1hcDx1bnNpZ25lZCwgUmVmUHRyPENTU1NlZ21lbnRlZEZvbnRGYWNlPiA+ID4mIHNlZ21lbnRl
ZEZvbnRGYWNlQ2FjaGUgPSBtX2ZvbnRzLmFkZChmYW1pbHksIG51bGxwdHIpLml0ZXJhdG9yLT52
YWx1ZTsKICAgICBpZiAoIXNlZ21lbnRlZEZvbnRGYWNlQ2FjaGUpCiAgICAgICAgIHNlZ21lbnRl
ZEZvbnRGYWNlQ2FjaGUgPSBhZG9wdFB0cihuZXcgSGFzaE1hcDx1bnNpZ25lZCwgUmVmUHRyPENT
U1NlZ21lbnRlZEZvbnRGYWNlPiA+KTsKQEAgLTUzNCw5ICs1NTEsNyBAQCBQYXNzUmVmUHRyPEZv
bnREYXRhPiBDU1NGb250U2VsZWN0b3I6OmdldEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlv
biYgZm9udERlcwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtQ2FuZGlkYXRl
czsgKytpKQogICAgICAgICAgICAgZmFjZS0+YXBwZW5kRm9udEZhY2UoY2FuZGlkYXRlRm9udEZh
Y2VzW2ldKTsKICAgICB9Ci0KLSAgICAvLyBXZSBoYXZlIGEgZmFjZS4gIEFzayBpdCBmb3IgYSBm
b250IGRhdGEuICBJZiBpdCBjYW5ub3QgcHJvZHVjZSBvbmUsIGl0IHdpbGwgZmFpbCwgYW5kIHRo
ZSBPUyB3aWxsIHRha2Ugb3Zlci4KLSAgICByZXR1cm4gZmFjZS0+Z2V0Rm9udERhdGEoZm9udERl
c2NyaXB0aW9uKTsKKyAgICByZXR1cm4gZmFjZS5nZXQoKTsKIH0KIAogdm9pZCBDU1NGb250U2Vs
ZWN0b3I6OmNsZWFyRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5oCmlu
ZGV4IGQwMjEwMGMzMjYyMGY4ODU2MTUyZDllMDE2ZWJiZThhMmJkMDgwMmYuLmRlNTA0NGNkZWVl
ZTZiYWYwYzNiMGQ3YjJkOWQyOGY1MmM1Yjg5MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250U2VsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNl
bGVjdG9yLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdW5zaWduZWQg
dmVyc2lvbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fdmVyc2lvbjsgfQogCiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPEZvbnREYXRhPiBnZXRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRp
b24mLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICBDU1NTZWdtZW50ZWRGb250RmFjZSogZ2V0
Rm9udEZhY2UoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbWljU3RyaW5nJik7CiAK
ICAgICB2b2lkIGNsZWFyRG9jdW1lbnQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWdt
ZW50ZWRGb250RmFjZS5jcHAKaW5kZXggOWU5MDgzZjIwNTMzNGYwMTY0YTZhZTAyNTA1M2EyYTlk
Njg3MjUyMi4uYTM5MTVmOWEyMzY5NDUzZGIzYTgwYTViMzZiYTBhYmIxNGQ0MmZiNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VnbWVudGVkRm9udEZhY2UuY3BwCkBAIC03Miw2ICs3Miwx
OSBAQCBib29sIENTU1NlZ21lbnRlZEZvbnRGYWNlOjppc1ZhbGlkKCkgY29uc3QKIHZvaWQgQ1NT
U2VnbWVudGVkRm9udEZhY2U6OmZvbnRMb2FkZWQoQ1NTRm9udEZhY2UqKQogewogICAgIHBydW5l
VGFibGUoKTsKKworI2lmIEVOQUJMRShGT05UX0xPQURFUikKKyAgICBpZiAoIWlzTG9hZGluZygp
KSB7CisgICAgICAgIFZlY3RvcjxSZWZQdHI8TG9hZEZvbnRDYWxsYmFjaz4gPiBjYWxsYmFja3M7
CisgICAgICAgIG1fY2FsbGJhY2tzLnN3YXAoY2FsbGJhY2tzKTsKKyAgICAgICAgZm9yIChzaXpl
X3QgaW5kZXggPSAwOyBpbmRleCA8IGNhbGxiYWNrcy5zaXplKCk7ICsraW5kZXgpIHsKKyAgICAg
ICAgICAgIGlmIChjaGVja0ZvbnQoKSkKKyAgICAgICAgICAgICAgICBjYWxsYmFja3NbaW5kZXhd
LT5ub3RpZnlMb2FkZWQoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjYWxs
YmFja3NbaW5kZXhdLT5ub3RpZnlFcnJvcigpOworICAgICAgICB9CisgICAgfQorI2VuZGlmCiB9
CiAKIHZvaWQgQ1NTU2VnbWVudGVkRm9udEZhY2U6OmFwcGVuZEZvbnRGYWNlKFBhc3NSZWZQdHI8
Q1NTRm9udEZhY2U+IGZvbnRGYWNlKQpAQCAtMTM1LDQgKzE0OCwzOSBAQCBQYXNzUmVmUHRyPEZv
bnREYXRhPiBDU1NTZWdtZW50ZWRGb250RmFjZTo6Z2V0Rm9udERhdGEoY29uc3QgRm9udERlc2Ny
aXB0aW9uJiBmbwogICAgIHJldHVybiAwOwogfQogCisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQor
Ym9vbCBDU1NTZWdtZW50ZWRGb250RmFjZTo6aXNMb2FkaW5nKCkgY29uc3QKK3sKKyAgICB1bnNp
Z25lZCBzaXplID0gbV9mb250RmFjZXMuc2l6ZSgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgaWYgKG1fZm9udEZhY2VzW2ldLT5sb2FkU3RhdGUo
KSA9PSBDU1NGb250RmFjZTo6TG9hZGluZykKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQ1NTU2VnbWVudGVkRm9udEZhY2U6OmNo
ZWNrRm9udCgpIGNvbnN0Cit7CisgICAgdW5zaWduZWQgc2l6ZSA9IG1fZm9udEZhY2VzLnNpemUo
KTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgIGlm
IChtX2ZvbnRGYWNlc1tpXS0+bG9hZFN0YXRlKCkgIT0gQ1NTRm9udEZhY2U6OkxvYWRlZCkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3Zv
aWQgQ1NTU2VnbWVudGVkRm9udEZhY2U6OmxvYWRGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uLCBQYXNzUmVmUHRyPExvYWRGb250Q2FsbGJhY2s+IGNhbGxiYWNrKQor
eworICAgIGdldEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbik7CisgICAgaWYgKGNhbGxiYWNrKSB7
CisgICAgICAgIGlmIChpc0xvYWRpbmcoKSkKKyAgICAgICAgICAgIG1fY2FsbGJhY2tzLmFwcGVu
ZChjYWxsYmFjayk7CisgICAgICAgIGVsc2UgaWYgKGNoZWNrRm9udCgpKQorICAgICAgICAgICAg
Y2FsbGJhY2stPm5vdGlmeUxvYWRlZCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjYWxs
YmFjay0+bm90aWZ5RXJyb3IoKTsKKyAgICB9Cit9CisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU2VnbWVudGVkRm9udEZhY2UuaAppbmRleCBmMTgzZjQ5OTVlMDgyOWVlMTY4YTM4
OTJkNmY5ZWYzZmFkZWUwOGY3Li5kMjY1MWViMGY5OTRkNmJhMjMyZDQ1ZDc3MjYxNzA1MDk2M2Ey
YjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VnbWVudGVkRm9udEZhY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VnbWVudGVkRm9udEZhY2UuaApAQCAtNTMs
MTUgKzUzLDMzIEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8Rm9udERhdGE+IGdldEZvbnRE
YXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYpOwogCisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQor
ICAgIGNsYXNzIExvYWRGb250Q2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxMb2FkRm9udENh
bGxiYWNrPiB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5Mb2FkRm9udENhbGxiYWNr
KCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBub3RpZnlMb2FkZWQoKSA9IDA7CisgICAgICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlFcnJvcigpID0gMDsKKyAgICB9OworCisgICAgYm9vbCBjaGVj
a0ZvbnQoKSBjb25zdDsKKyAgICB2b2lkIGxvYWRGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYs
IFBhc3NSZWZQdHI8TG9hZEZvbnRDYWxsYmFjaz4gbG9hZENhbGxiYWNrKTsKKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIENTU1NlZ21lbnRlZEZvbnRGYWNlKENTU0ZvbnRTZWxlY3RvciopOwogCiAg
ICAgdm9pZCBwcnVuZVRhYmxlKCk7CiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisjaWYgRU5B
QkxFKEZPTlRfTE9BREVSKQorICAgIGJvb2wgaXNMb2FkaW5nKCkgY29uc3Q7CisjZW5kaWYKIAog
ICAgIENTU0ZvbnRTZWxlY3RvciogbV9mb250U2VsZWN0b3I7CiAgICAgSGFzaE1hcDx1bnNpZ25l
ZCwgUmVmUHRyPFNlZ21lbnRlZEZvbnREYXRhPiA+IG1fZm9udERhdGFUYWJsZTsKICAgICBWZWN0
b3I8UmVmUHRyPENTU0ZvbnRGYWNlPiwgMT4gbV9mb250RmFjZXM7CisjaWYgRU5BQkxFKEZPTlRf
TE9BREVSKQorICAgIFZlY3RvcjxSZWZQdHI8TG9hZEZvbnRDYWxsYmFjaz4gPiBtX2NhbGxiYWNr
czsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTc0
NTNhZTRkMjdiMmUzOWVjNmFjMGI3OTY1MGQ5NDZjOThiNDViZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5jcHAKQEAgLTAs
MCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRDU1NGb250RmFj
ZUxvYWRFdmVudC5oIgorCisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50OjpXZWJLaXRDU1NGb250RmFjZUxv
YWRFdmVudCgpCit7Cit9CisKK1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50OjpXZWJLaXRDU1NG
b250RmFjZUxvYWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIFBhc3NSZWZQdHI8Q1NT
Rm9udEZhY2VSdWxlPiBmb250ZmFjZSwgUGFzc1JlZlB0cjxET01FcnJvcj4gZXJyb3IpCisgICAg
OiBFdmVudCh0eXBlLCBmYWxzZSwgZmFsc2UpCisgICAgLCBtX2ZvbnRmYWNlKGZvbnRmYWNlKQor
ICAgICwgbV9lcnJvcihlcnJvcikKK3sKK30KKworV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6
OldlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29u
c3QgV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnRJbml0JiBpbml0aWFsaXplcikKKyAgICA6IEV2
ZW50KHR5cGUsIGluaXRpYWxpemVyKQorICAgICwgbV9mb250ZmFjZShpbml0aWFsaXplci5mb250
ZmFjZSkKKyAgICAsIG1fZXJyb3IoaW5pdGlhbGl6ZXIuZXJyb3IpCit7Cit9CisKK1dlYktpdENT
U0ZvbnRGYWNlTG9hZEV2ZW50Ojp+V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQoKQoreworfQor
Citjb25zdCBBdG9taWNTdHJpbmcmIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50OjppbnRlcmZh
Y2VOYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZvcldl
YktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoRk9OVF9MT0FERVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9X
ZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhNDM5ZTE5NzEyNGMzNzdm
NWQ2NGY4ZmE3ZWUyMWYzYjZmYjkxYmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaApAQCAtMCwwICsxLDkyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVO
QUJMRShGT05UX0xPQURFUikKKworI2lmbmRlZiBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudF9o
CisjZGVmaW5lIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50X2gKKworI2luY2x1ZGUgIkNTU0Zv
bnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisjaW5jbHVkZSAiRE9NRXJyb3Iu
aCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdHJ1Y3QgV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnRJbml0IDogcHVi
bGljIEV2ZW50SW5pdCB7CisgICAgUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4gZm9udGZhY2U7Cisg
ICAgUmVmUHRyPERPTUVycm9yPiBlcnJvcjsKK307CisKK2NsYXNzIFdlYktpdENTU0ZvbnRGYWNl
TG9hZEV2ZW50IDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudD4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZjxXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudD4obmV3IFdlYktpdENTU0Zv
bnRGYWNlTG9hZEV2ZW50KCkpOworICAgIH0KKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktp
dENTU0ZvbnRGYWNlTG9hZEV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBj
b25zdCBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudEluaXQmIGluaXRpYWxpemVyKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmPFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50PihuZXcg
V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIpKTsKKyAgICB9CisK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudD4gY3JlYXRl
Rm9yRm9udEZhY2VSdWxlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgUGFzc1JlZlB0cjxDU1NG
b250RmFjZVJ1bGU+IHJ1bGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWY8V2ViS2l0
Q1NTRm9udEZhY2VMb2FkRXZlbnQ+KG5ldyBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudCh0eXBl
LCBydWxlLCAwKSk7CisgICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0Q1NTRm9u
dEZhY2VMb2FkRXZlbnQ+IGNyZWF0ZUZvckVycm9yKFBhc3NSZWZQdHI8Q1NTRm9udEZhY2VSdWxl
PiBydWxlLCBQYXNzUmVmUHRyPERPTUVycm9yPiBlcnJvcikKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZjxXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudD4obmV3IFdlYktpdENTU0ZvbnRG
YWNlTG9hZEV2ZW50KGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBydWxlLCBlcnJvcikpOworICAg
IH0KKworICAgIHZpcnR1YWwgfldlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50KCk7CisKKyAgICBD
U1NGb250RmFjZVJ1bGUqIGZvbnRmYWNlKCkgY29uc3QgeyByZXR1cm4gbV9mb250ZmFjZS5nZXQo
KTsgfQorICAgIERPTUVycm9yKiBlcnJvcigpIGNvbnN0IHsgcmV0dXJuIG1fZXJyb3IuZ2V0KCk7
IH0KKworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZhY2VOYW1lKCkgY29u
c3Q7CisKK3ByaXZhdGU6CisgICAgV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQoKTsKKyAgICBX
ZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmLCBQYXNzUmVmUHRy
PENTU0ZvbnRGYWNlUnVsZT4sIFBhc3NSZWZQdHI8RE9NRXJyb3I+KTsKKyAgICBXZWJLaXRDU1NG
b250RmFjZUxvYWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBXZWJLaXRDU1NGb250
RmFjZUxvYWRFdmVudEluaXQmKTsKKworICAgIFJlZlB0cjxDU1NGb250RmFjZVJ1bGU+IG1fZm9u
dGZhY2U7CisgICAgUmVmUHRyPERPTUVycm9yPiBtX2Vycm9yOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnRfaAorI2Vu
ZGlmIC8vIEVOQUJMRShGT05UX0xPQURFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2Vi
S2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlYzY3NWFhM2E3ODA2Mjhm
NzRkMTEzZTFhYmQyMGJmNjZlZTFjMTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsCkBAIC0wLDAgKzEsMzggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisg
ICAgQ29uZGl0aW9uYWw9Rk9OVF9MT0FERVIsCisgICAgSlNOb1N0YXRpY1RhYmxlcywKKyAgICBD
b25zdHJ1Y3RvclRlbXBsYXRlPUV2ZW50CitdIGludGVyZmFjZSBXZWJLaXRDU1NGb250RmFjZUxv
YWRFdmVudCA6IEV2ZW50IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlF
dmVudENvbnN0cnVjdG9yXSBDU1NGb250RmFjZVJ1bGUgZm9udGZhY2U7CisgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gRE9NRXJyb3IgZXJyb3I7
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdEZvbnRMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdEZvbnRMb2FkZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4
ZjZiNjhhMGNmYzRlZjNmNjYyZDZlYmQ5MGQ1ZjU0NmE0NTdlNjUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Rm9udExvYWRlci5jcHAKQEAgLTAsMCArMSwzMDAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAq
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICisg
KiBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdEZv
bnRMb2FkZXIuaCIKKworI2lmIEVOQUJMRShGT05UX0xPQURFUikKKworI2luY2x1ZGUgIkNTU0Zv
bnRGYWNlU291cmNlLmgiCisjaW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCisjaW5jbHVkZSAi
Q1NTUGFyc2VyLmgiCisjaW5jbHVkZSAiQ1NTU2VnbWVudGVkRm9udEZhY2UuaCIKKyNpbmNsdWRl
ICJEaWN0aW9uYXJ5LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZVZp
ZXcuaCIKKyNpbmNsdWRlICJTdHlsZVByb3BlcnR5U2V0LmgiCisjaW5jbHVkZSAiU3R5bGVSZXNv
bHZlci5oIgorI2luY2x1ZGUgIldlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGNvbnN0IGludCBkZWZhdWx0Rm9udFNpemUgPSAxMDsK
K3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBkZWZhdWx0Rm9udEZhbWlseSA9ICJzYW5zLXNlcmlm
IjsKKworY2xhc3MgTG9hZEZvbnRDYWxsYmFjayA6IHB1YmxpYyBDU1NTZWdtZW50ZWRGb250RmFj
ZTo6TG9hZEZvbnRDYWxsYmFjayB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TG9h
ZEZvbnRDYWxsYmFjaz4gY3JlYXRlKGludCBudW1Mb2FkaW5nLCBQYXNzUmVmUHRyPFZvaWRDYWxs
YmFjaz4gbG9hZENhbGxiYWNrLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gZXJyb3JDYWxsYmFj
aykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZjxMb2FkRm9udENhbGxiYWNrPihuZXcg
TG9hZEZvbnRDYWxsYmFjayhudW1Mb2FkaW5nLCBsb2FkQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2sp
KTsKKyAgICB9CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUxvYWRlZCgpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlFcnJvcigpIE9WRVJSSURFOworcHJpdmF0ZToKKyAgICBMb2Fk
Rm9udENhbGxiYWNrKGludCBudW1Mb2FkaW5nLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gbG9h
ZENhbGxiYWNrLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykgOiBtX251
bUxvYWRpbmcobnVtTG9hZGluZyksIG1fZXJyb3JPY2N1cmVkKGZhbHNlKSwgbV9sb2FkQ2FsbGJh
Y2sobG9hZENhbGxiYWNrKSwgbV9lcnJvckNhbGxiYWNrKGVycm9yQ2FsbGJhY2spIHsgfQorCisg
ICAgaW50IG1fbnVtTG9hZGluZzsKKyAgICBib29sIG1fZXJyb3JPY2N1cmVkOworICAgIFJlZlB0
cjxWb2lkQ2FsbGJhY2s+IG1fbG9hZENhbGxiYWNrOworICAgIFJlZlB0cjxWb2lkQ2FsbGJhY2s+
IG1fZXJyb3JDYWxsYmFjazsKK307CisKK3ZvaWQgTG9hZEZvbnRDYWxsYmFjazo6bm90aWZ5TG9h
ZGVkKCkKK3sKKyAgICBtX251bUxvYWRpbmctLTsKKyAgICBpZiAoIW1fbnVtTG9hZGluZykgewor
ICAgICAgICBpZiAobV9lcnJvck9jY3VyZWQpIHsKKyAgICAgICAgICAgIGlmIChtX2Vycm9yQ2Fs
bGJhY2spCisgICAgICAgICAgICAgICAgbV9lcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudCgpOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKG1fbG9hZENhbGxiYWNrKQorICAgICAg
ICAgICAgICAgIG1fbG9hZENhbGxiYWNrLT5oYW5kbGVFdmVudCgpOworICAgICAgICB9CisgICAg
fQorfQorCit2b2lkIExvYWRGb250Q2FsbGJhY2s6Om5vdGlmeUVycm9yKCkgCit7CisgICAgbV9l
cnJvck9jY3VyZWQgPSB0cnVlOworICAgIG5vdGlmeUxvYWRlZCgpOworfQorCitXZWJLaXRGb250
TG9hZGVyOjpXZWJLaXRGb250TG9hZGVyKERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IEFjdGl2
ZURPTU9iamVjdChkb2N1bWVudCwgdGhpcykKKyAgICAsIG1fZG9jdW1lbnQoZG9jdW1lbnQpCisg
ICAgLCBtX2xvYWRpbmdDb3VudCgwKQoreworICAgIHN1c3BlbmRJZk5lZWRlZCgpOworfQorCitX
ZWJLaXRGb250TG9hZGVyOjp+V2ViS2l0Rm9udExvYWRlcigpCit7Cit9CisKK0V2ZW50VGFyZ2V0
RGF0YSogV2ViS2l0Rm9udExvYWRlcjo6ZXZlbnRUYXJnZXREYXRhKCkKK3sKKyAgICByZXR1cm4g
Jm1fZXZlbnRUYXJnZXREYXRhOworfQorCitFdmVudFRhcmdldERhdGEqIFdlYktpdEZvbnRMb2Fk
ZXI6OmVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpCit7CisgICAgcmV0dXJuICZtX2V2ZW50VGFyZ2V0
RGF0YTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBXZWJLaXRGb250TG9hZGVyOjppbnRlcmZh
Y2VOYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZvcldl
YktpdEZvbnRMb2FkZXI7Cit9CisKK1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIFdlYktpdEZvbnRM
b2FkZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAoreworICAgIHJldHVybiBBY3Rp
dmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKK30KKwordm9pZCBXZWJLaXRG
b250TG9hZGVyOjpkaWRMYXlvdXQoKQoreworICAgIGZpcmVQZW5kaW5nRXZlbnRzKCk7CisgICAg
bG9hZGluZ0RvbmUoKTsKK30KKwordm9pZCBXZWJLaXRGb250TG9hZGVyOjpzY2hlZHVsZUV2ZW50
KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQoreworICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBt
X2RvY3VtZW50LT52aWV3KCkpIHsKKyAgICAgICAgaWYgKHZpZXctPmlzSW5MYXlvdXQoKSkgewor
ICAgICAgICAgICAgbV9wZW5kaW5nRXZlbnRzLmFwcGVuZChldmVudCk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgZmlyZVBlbmRpbmdFdmVudHMoKTsKKyAgICBk
aXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KKwordm9pZCBXZWJLaXRGb250TG9hZGVyOjpmaXJlUGVu
ZGluZ0V2ZW50cygpCit7CisgICAgaWYgKG1fcGVuZGluZ0V2ZW50cy5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIFZlY3RvcjxSZWZQdHI8RXZlbnQ+ID4gcGVuZGluZ0V2ZW50czsK
KyAgICBtX3BlbmRpbmdFdmVudHMuc3dhcChwZW5kaW5nRXZlbnRzKTsKKyAgICBmb3IgKHNpemVf
dCBpbmRleCA9IDA7IGluZGV4IDwgcGVuZGluZ0V2ZW50cy5zaXplKCk7ICsraW5kZXgpCisgICAg
ICAgIGRpc3BhdGNoRXZlbnQocGVuZGluZ0V2ZW50c1tpbmRleF0ucmVsZWFzZSgpKTsKK30KKwor
dm9pZCBXZWJLaXRGb250TG9hZGVyOjpiZWdpbkZvbnRMb2FkaW5nKENTU0ZvbnRGYWNlUnVsZSog
cnVsZSkKK3sKKyAgICArK21fbG9hZGluZ0NvdW50OworICAgIGlmIChtX2xvYWRpbmdDb3VudCA9
PSAxICYmICFtX2xvYWRpbmdEb25lRXZlbnQpCisgICAgICAgIHNjaGVkdWxlRXZlbnQoV2ViS2l0
Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZUZvckZvbnRGYWNlUnVsZShldmVudE5hbWVzKCku
bG9hZGluZ0V2ZW50LCBydWxlKSk7CisgICAgc2NoZWR1bGVFdmVudChXZWJLaXRDU1NGb250RmFj
ZUxvYWRFdmVudDo6Y3JlYXRlRm9yRm9udEZhY2VSdWxlKGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRF
dmVudCwgcnVsZSkpOworfQorCit2b2lkIFdlYktpdEZvbnRMb2FkZXI6OmZvbnRMb2FkZWQoQ1NT
Rm9udEZhY2VSdWxlKiBydWxlKQoreworICAgIEFTU0VSVChtX2xvYWRpbmdDb3VudCA+IDApOwor
ICAgIHNjaGVkdWxlRXZlbnQoV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZUZvckZv
bnRGYWNlUnVsZShldmVudE5hbWVzKCkubG9hZEV2ZW50LCBydWxlKSk7CisKKyAgICAtLW1fbG9h
ZGluZ0NvdW50OworICAgIGlmICghbV9sb2FkaW5nQ291bnQpCisgICAgICAgIG1fbG9hZGluZ0Rv
bmVFdmVudCA9IFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50OjpjcmVhdGVGb3JGb250RmFjZVJ1
bGUoZXZlbnROYW1lcygpLmxvYWRpbmdkb25lRXZlbnQsIHJ1bGUpOworfQorCit2b2lkIFdlYktp
dEZvbnRMb2FkZXI6OmxvYWRFcnJvcihDU1NGb250RmFjZVJ1bGUqIHJ1bGUsIENTU0ZvbnRGYWNl
U291cmNlKiBzb3VyY2UpCit7CisgICAgQVNTRVJUKG1fbG9hZGluZ0NvdW50ID4gMCk7CisKKyAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlcG9ydCBOZXR3b3JrRXJyb3IgaW4gY2FzZSBvZiB0aW1l
b3V0LCBldGMuCisgICAgU3RyaW5nIGVycm9yTmFtZSA9IChzb3VyY2UgJiYgc291cmNlLT5pc0Rl
Y29kZUVycm9yKCkpID8gIkludmFsaWRGb250RGF0YUVycm9yIiA6ICJOb3RGb3VuZEVycm9yIjsK
KyAgICBzY2hlZHVsZUV2ZW50KFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50OjpjcmVhdGVGb3JF
cnJvcihydWxlLCBET01FcnJvcjo6Y3JlYXRlKGVycm9yTmFtZSkpKTsKKyAgICAtLW1fbG9hZGlu
Z0NvdW50OworICAgIGlmICghbV9sb2FkaW5nQ291bnQpCisgICAgICAgIG1fbG9hZGluZ0RvbmVF
dmVudCA9IFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50OjpjcmVhdGVGb3JGb250RmFjZVJ1bGUo
ZXZlbnROYW1lcygpLmxvYWRpbmdkb25lRXZlbnQsIHJ1bGUpOworfQorCit2b2lkIFdlYktpdEZv
bnRMb2FkZXI6Om5vdGlmeVdoZW5Gb250c1JlYWR5KFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBj
YWxsYmFjaykKK3sKKyAgICBtX2NhbGxiYWNrcy5hcHBlbmQoY2FsbGJhY2spOworICAgIGxvYWRp
bmdEb25lKCk7Cit9CisKK3ZvaWQgV2ViS2l0Rm9udExvYWRlcjo6bG9hZGluZ0RvbmUoKQorewor
ICAgIGlmIChsb2FkaW5nKCkpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIW1fbG9hZGluZ0Rv
bmVFdmVudCAmJiBtX2NhbGxiYWNrcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAg
IEZyYW1lVmlldyogdmlldyA9IG1fZG9jdW1lbnQtPnZpZXcoKTsKKyAgICBpZiAodmlldyAmJiB2
aWV3LT5pc0luTGF5b3V0KCkpCisgICAgICAgIHJldHVybjsKKyAgICBtX2RvY3VtZW50LT51cGRh
dGVTdHlsZUlmTmVlZGVkKCk7CisgICAgaWYgKHZpZXcgJiYgKHZpZXctPmxheW91dFBlbmRpbmco
KSB8fCB2aWV3LT5uZWVkc0xheW91dCgpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1f
bG9hZGluZ0RvbmVFdmVudCkKKyAgICAgICAgZGlzcGF0Y2hFdmVudChtX2xvYWRpbmdEb25lRXZl
bnQucmVsZWFzZSgpKTsKKworICAgIGlmICghbV9jYWxsYmFja3MuaXNFbXB0eSgpKSB7CisgICAg
ICAgIFZlY3RvcjxSZWZQdHI8Vm9pZENhbGxiYWNrPiA+IGNhbGxiYWNrczsKKyAgICAgICAgbV9j
YWxsYmFja3Muc3dhcChjYWxsYmFja3MpOworICAgICAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7
IGluZGV4IDwgY2FsbGJhY2tzLnNpemUoKTsgKytpbmRleCkKKyAgICAgICAgICAgIGNhbGxiYWNr
c1tpbmRleF0tPmhhbmRsZUV2ZW50KCk7CisgICAgfQorfQorCit2b2lkIFdlYktpdEZvbnRMb2Fk
ZXI6OmxvYWRGb250KGNvbnN0IERpY3Rpb25hcnkmIHBhcmFtcykKK3sKKyAgICAvLyBGSVhNRTog
dGhlIHRleHQgbWVtYmVyIG9mIHBhcmFtcyBpcyBpZ25vcmVkLgorICAgIFN0cmluZyBmb250U3Ry
aW5nOworICAgIFJlZlB0cjxWb2lkQ2FsbGJhY2s+IG9uc3VjY2VzczsKKyAgICBSZWZQdHI8Vm9p
ZENhbGxiYWNrPiBvbmVycm9yOworICAgIGlmICghcGFyYW1zLmdldCgiZm9udCIsIGZvbnRTdHJp
bmcpKQorICAgICAgICByZXR1cm47CisgICAgcGFyYW1zLmdldCgib25zdWNjZXNzIiwgb25zdWNj
ZXNzKTsKKyAgICBwYXJhbXMuZ2V0KCJvbmVycm9yIiwgb25lcnJvcik7CisgICAgRm9udCBmb250
OworICAgIGlmICghcmVzb2x2ZUZvbnRTdHlsZShmb250U3RyaW5nLCBmb250KSkKKyAgICAgICAg
cmV0dXJuOworICAgIFJlZlB0cjxMb2FkRm9udENhbGxiYWNrPiBjYWxsYmFjazsKKyAgICBpZiAo
b25zdWNjZXNzIHx8IG9uZXJyb3IpIHsKKyAgICAgICAgaW50IG51bUZhbWlsaWVzID0gMDsKKyAg
ICAgICAgZm9yIChjb25zdCBGb250RmFtaWx5KiBmID0gJmZvbnQuZmFtaWx5KCk7IGY7IGYgPSBm
LT5uZXh0KCkpCisgICAgICAgICAgICBudW1GYW1pbGllcysrOworICAgICAgICBjYWxsYmFjayA9
IExvYWRGb250Q2FsbGJhY2s6OmNyZWF0ZShudW1GYW1pbGllcywgb25zdWNjZXNzLCBvbmVycm9y
KTsKKyAgICB9CisgICAgCisgICAgZm9yIChjb25zdCBGb250RmFtaWx5KiBmID0gJmZvbnQuZmFt
aWx5KCk7IGY7IGYgPSBmLT5uZXh0KCkpIHsKKyAgICAgICAgQ1NTU2VnbWVudGVkRm9udEZhY2Uq
IGZhY2UgPSBtX2RvY3VtZW50LT5zdHlsZVJlc29sdmVyKCktPmZvbnRTZWxlY3RvcigpLT5nZXRG
b250RmFjZShmb250LmZvbnREZXNjcmlwdGlvbigpLCBmLT5mYW1pbHkoKSk7CisgICAgICAgIGlm
ICghZmFjZSkgeworICAgICAgICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAgICAgICAgIGNh
bGxiYWNrLT5ub3RpZnlFcnJvcigpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0K
KyAgICAgICAgZmFjZS0+bG9hZEZvbnQoZm9udC5mb250RGVzY3JpcHRpb24oKSwgY2FsbGJhY2sp
OworICAgIH0KK30KKworYm9vbCBXZWJLaXRGb250TG9hZGVyOjpjaGVja0ZvbnQoY29uc3QgU3Ry
aW5nJiBmb250U3RyaW5nLCBjb25zdCBTdHJpbmcmKQoreworICAgIC8vIEZJWE1FOiB0aGUgc2Vj
b25kIHBhcmFtZXRlciAodGV4dCkgaXMgaWdub3JlZC4KKyAgICBGb250IGZvbnQ7CisgICAgaWYg
KCFyZXNvbHZlRm9udFN0eWxlKGZvbnRTdHJpbmcsIGZvbnQpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgZm9yIChjb25zdCBGb250RmFtaWx5KiBmID0gJmZvbnQuZmFtaWx5KCk7IGY7IGYg
PSBmLT5uZXh0KCkpIHsKKyAgICAgICAgQ1NTU2VnbWVudGVkRm9udEZhY2UqIGZhY2UgPSBtX2Rv
Y3VtZW50LT5zdHlsZVJlc29sdmVyKCktPmZvbnRTZWxlY3RvcigpLT5nZXRGb250RmFjZShmb250
LmZvbnREZXNjcmlwdGlvbigpLCBmLT5mYW1pbHkoKSk7CisgICAgICAgIGlmICghZmFjZSB8fCAh
ZmFjZS0+Y2hlY2tGb250KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAg
IHJldHVybiB0cnVlOworfQorCitib29sIFdlYktpdEZvbnRMb2FkZXI6OnJlc29sdmVGb250U3R5
bGUoY29uc3QgU3RyaW5nJiBmb250U3RyaW5nLCBGb250JiBmb250KQoreworICAgIC8vIEludGVy
cHJldCBmb250U3RyaW5nIGluIHRoZSBzYW1lIHdheSBhcyB0aGUgJ2ZvbnQnIGF0dHJpYnV0ZSBv
ZiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuCisgICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+
IHBhcnNlZFN0eWxlID0gU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7CisgICAgQ1NTUGFyc2Vy
OjpwYXJzZVZhbHVlKHBhcnNlZFN0eWxlLmdldCgpLCBDU1NQcm9wZXJ0eUZvbnQsIGZvbnRTdHJp
bmcsIHRydWUsIENTU1N0cmljdE1vZGUsIDApOworICAgIGlmIChwYXJzZWRTdHlsZS0+aXNFbXB0
eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgU3RyaW5nIGZvbnRWYWx1ZSA9
IHBhcnNlZFN0eWxlLT5nZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5Rm9udCk7CisgICAgaWYg
KGZvbnRWYWx1ZSA9PSAiaW5oZXJpdCIgfHwgZm9udFZhbHVlID09ICJpbml0aWFsIikKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZSA9IFJlbmRl
clN0eWxlOjpjcmVhdGUoKTsKKworICAgIEZvbnRGYW1pbHkgZm9udEZhbWlseTsKKyAgICBmb250
RmFtaWx5LnNldEZhbWlseShkZWZhdWx0Rm9udEZhbWlseSk7CisKKyAgICBGb250RGVzY3JpcHRp
b24gZGVmYXVsdEZvbnREZXNjcmlwdGlvbjsKKyAgICBkZWZhdWx0Rm9udERlc2NyaXB0aW9uLnNl
dEZhbWlseShmb250RmFtaWx5KTsKKyAgICBkZWZhdWx0Rm9udERlc2NyaXB0aW9uLnNldFNwZWNp
ZmllZFNpemUoZGVmYXVsdEZvbnRTaXplKTsKKyAgICBkZWZhdWx0Rm9udERlc2NyaXB0aW9uLnNl
dENvbXB1dGVkU2l6ZShkZWZhdWx0Rm9udFNpemUpOworCisgICAgc3R5bGUtPnNldEZvbnREZXNj
cmlwdGlvbihkZWZhdWx0Rm9udERlc2NyaXB0aW9uKTsKKworICAgIHN0eWxlLT5mb250KCkudXBk
YXRlKHN0eWxlLT5mb250KCkuZm9udFNlbGVjdG9yKCkpOworCisgICAgLy8gTm93IG1hcCB0aGUg
Zm9udCBwcm9wZXJ0eSBsb25naGFuZHMgaW50byB0aGUgc3R5bGUuCisgICAgU3R5bGVSZXNvbHZl
ciogc3R5bGVSZXNvbHZlciA9IG1fZG9jdW1lbnQtPnN0eWxlUmVzb2x2ZXIoKTsKKyAgICBzdHls
ZVJlc29sdmVyLT5hcHBseVByb3BlcnR5VG9TdHlsZShDU1NQcm9wZXJ0eUZvbnRGYW1pbHksIHBh
cnNlZFN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5Rm9udEZhbWlseSkuZ2V0
KCksIHN0eWxlLmdldCgpKTsKKyAgICBzdHlsZVJlc29sdmVyLT5hcHBseVByb3BlcnR5VG9DdXJy
ZW50U3R5bGUoQ1NTUHJvcGVydHlGb250U3R5bGUsIHBhcnNlZFN0eWxlLT5nZXRQcm9wZXJ0eUNT
U1ZhbHVlKENTU1Byb3BlcnR5Rm9udFN0eWxlKS5nZXQoKSk7CisgICAgc3R5bGVSZXNvbHZlci0+
YXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKENTU1Byb3BlcnR5Rm9udFZhcmlhbnQsIHBhcnNl
ZFN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5Rm9udFZhcmlhbnQpLmdldCgp
KTsKKyAgICBzdHlsZVJlc29sdmVyLT5hcHBseVByb3BlcnR5VG9DdXJyZW50U3R5bGUoQ1NTUHJv
cGVydHlGb250V2VpZ2h0LCBwYXJzZWRTdHlsZS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9w
ZXJ0eUZvbnRXZWlnaHQpLmdldCgpKTsKKworICAgIC8vIEFzIGRlc2NyaWJlZCBpbiBCVUc2NjI5
MSwgc2V0dGluZyBmb250LXNpemUgYW5kIGxpbmUtaGVpZ2h0IG9uIGEgZm9udCBtYXkgZW50YWls
IGEgQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVMZW5ndGhEb3VibGUgY2FsbCwKKyAgICAvLyB3
aGljaCBhc3N1bWVzIHRoZSBmb250TWV0cmljcyBhcmUgYXZhaWxhYmxlIGZvciB0aGUgYWZmZWN0
ZWQgZm9udCwgb3RoZXJ3aXNlIGEgY3Jhc2ggb2NjdXJzIChzZWUgaHR0cDovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvOTYxMjIpLgorICAgIC8vIFRoZSB1cGRhdGVGb250KCkgY2FsbHMgYmVs
b3cgdXBkYXRlIHRoZSBmb250TWV0cmljcyBhbmQgZW5zdXJlIHRoZSBwcm9wZXIgc2V0dGluZyBv
ZiBmb250LXNpemUgYW5kIGxpbmUtaGVpZ2h0LgorICAgIHN0eWxlUmVzb2x2ZXItPnVwZGF0ZUZv
bnQoKTsKKyAgICBzdHlsZVJlc29sdmVyLT5hcHBseVByb3BlcnR5VG9DdXJyZW50U3R5bGUoQ1NT
UHJvcGVydHlGb250U2l6ZSwgcGFyc2VkU3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJv
cGVydHlGb250U2l6ZSkuZ2V0KCkpOworICAgIHN0eWxlUmVzb2x2ZXItPnVwZGF0ZUZvbnQoKTsK
KyAgICBzdHlsZVJlc29sdmVyLT5hcHBseVByb3BlcnR5VG9DdXJyZW50U3R5bGUoQ1NTUHJvcGVy
dHlMaW5lSGVpZ2h0LCBwYXJzZWRTdHlsZS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0
eUxpbmVIZWlnaHQpLmdldCgpKTsKKworICAgIGZvbnQgPSBzdHlsZS0+Zm9udCgpOworICAgIGZv
bnQudXBkYXRlKHN0eWxlUmVzb2x2ZXItPmZvbnRTZWxlY3RvcigpKTsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEZPTlRf
TE9BREVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdEZvbnRMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRGb250TG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDRl
MjliOTEyYWFkMjAxODlkZDM2NDJhODBiN2M4YTBiZTlhYzY1OQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRGb250TG9hZGVyLmgKQEAgLTAsMCArMSwxMDggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICisgKiBE
QU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShGT05UX0xPQURFUikKKworI2lmbmRlZiBXZWJLaXRG
b250TG9hZGVyX2gKKyNkZWZpbmUgV2ViS2l0Rm9udExvYWRlcl9oCisKKyNpbmNsdWRlICJBY3Rp
dmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiRXZl
bnROYW1lcy5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiVm9pZENhbGxi
YWNrLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBDYWNoZWRGb250OworY2xhc3MgQ1NTRm9udEZhY2VSdWxlOworY2xhc3MgQ1NTRm9u
dEZhY2VTb3VyY2U7CitjbGFzcyBEaWN0aW9uYXJ5OworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBF
dmVudDsKK2NsYXNzIEZvbnQ7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFz
cyBXZWJLaXRGb250TG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViS2l0Rm9udExvYWRlcj4s
IHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBFdmVudFRhcmdldCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0Rm9udExvYWRlcj4gY3JlYXRlKERvY3VtZW50KiBk
b2N1bWVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZjxXZWJLaXRGb250TG9hZGVy
PihuZXcgV2ViS2l0Rm9udExvYWRlcihkb2N1bWVudCkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5X
ZWJLaXRGb250TG9hZGVyKCk7CisKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVS
KGxvYWRpbmcpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIobG9hZGluZ2Rv
bmUpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIobG9hZHN0YXJ0KTsKKyAg
ICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGxvYWQpOworICAgIERFRklORV9BVFRS
SUJVVEVfRVZFTlRfTElTVEVORVIoZXJyb3IpOworCisgICAgYm9vbCBjaGVja0ZvbnQoY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBsb2FkRm9udChjb25zdCBEaWN0aW9u
YXJ5Jik7CisgICAgdm9pZCBub3RpZnlXaGVuRm9udHNSZWFkeShQYXNzUmVmUHRyPFZvaWRDYWxs
YmFjaz4pOworCisgICAgYm9vbCBsb2FkaW5nKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkaW5nQ291
bnQgPiAwOyB9CisKKyAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYg
aW50ZXJmYWNlTmFtZSgpIGNvbnN0OworCisgICAgdXNpbmcgUmVmQ291bnRlZDxXZWJLaXRGb250
TG9hZGVyPjo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViS2l0Rm9udExvYWRlcj46OmRl
cmVmOworCisgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgeyByZXR1cm4gbV9kb2N1bWVudDsgfQor
CisgICAgdm9pZCBkaWRMYXlvdXQoKTsKKyAgICB2b2lkIGJlZ2luRm9udExvYWRpbmcoQ1NTRm9u
dEZhY2VSdWxlKik7CisgICAgdm9pZCBmb250TG9hZGVkKENTU0ZvbnRGYWNlUnVsZSopOworICAg
IHZvaWQgbG9hZEVycm9yKENTU0ZvbnRGYWNlUnVsZSosIENTU0ZvbnRGYWNlU291cmNlKik7Cisg
ICAgdm9pZCBsb2FkaW5nRG9uZSgpOworCitwcml2YXRlOgorICAgIFdlYktpdEZvbnRMb2FkZXIo
RG9jdW1lbnQqKTsKKworICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIHsgcmVmKCk7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIHsgZGVyZWYoKTsgfQorICAg
IHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKTsKKyAgICB2aXJ0dWFs
IEV2ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCk7CisKKyAgICB2b2lkIHNj
aGVkdWxlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOworICAgIHZvaWQgZmlyZVBlbmRpbmdFdmVu
dHMoKTsKKyAgICBib29sIHJlc29sdmVGb250U3R5bGUoY29uc3QgU3RyaW5nJiwgRm9udCYpOwor
CisgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CisgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRU
YXJnZXREYXRhOworICAgIHVuc2lnbmVkIG1fbG9hZGluZ0NvdW50OworICAgIFZlY3RvcjxSZWZQ
dHI8RXZlbnQ+ID4gbV9wZW5kaW5nRXZlbnRzOworICAgIFZlY3RvcjxSZWZQdHI8Vm9pZENhbGxi
YWNrPiA+IG1fY2FsbGJhY2tzOworICAgIFJlZlB0cjxFdmVudD4gbV9sb2FkaW5nRG9uZUV2ZW50
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gV2ViS2l0Rm9udExv
YWRlcl9oCisjZW5kaWYgLy8gRU5BQkxFKEZPTlRfTE9BREVSKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1dlYktpdEZvbnRMb2FkZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL1dl
YktpdEZvbnRMb2FkZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhZDdhMzM0MDg3OTE4Njc5OGNjOTg5ZDc5
ZjgxZmIzODdjMTIzM2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2Vi
S2l0Rm9udExvYWRlci5pZGwKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1GT05U
X0xPQURFUiwKKyAgICBBY3RpdmVET01PYmplY3QsCisgICAgRXZlbnRUYXJnZXQsCisgICAgR2Vu
ZXJhdGVJc1JlYWNoYWJsZT1JbXBsRG9jdW1lbnQsCitdIGludGVyZmFjZSBXZWJLaXRGb250TG9h
ZGVyIHsKKworICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZGluZzsKKyAgICBhdHRy
aWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmxvYWRpbmdkb25lOworICAgIGF0dHJpYnV0ZSBFdmVudExp
c3RlbmVyIG9ubG9hZHN0YXJ0OworICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZDsK
KyAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmVycm9yOworCisgICAgYm9vbGVhbiBjaGVj
a0ZvbnQoaW4gRE9NU3RyaW5nIGZvbnQsIGluIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5n
XSBET01TdHJpbmcgdGV4dCk7CisgICAgdm9pZCBsb2FkRm9udChpbiBEaWN0aW9uYXJ5IHBhcmFt
cyk7CisgICAgdm9pZCBub3RpZnlXaGVuRm9udHNSZWFkeShpbiBbQ2FsbGJhY2tdIFZvaWRDYWxs
YmFjayBjYWxsYmFjayk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gbG9hZGluZzsK
KworICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgIHZv
aWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgIGJv
b2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldnQpCisgICAgICAgIHJhaXNlcyhFdmVudEV4
Y2VwdGlvbik7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZjYzZTVkNzM5YTA4Y2E3
MGE1NDcxNzczNmM5MGRkMTNhOWMxYzNjYS4uNjA0ZTY2NTE0ZmRkMzIyMGMyNjNjNDdlZTFiYWU2
YTM1Yjc0ODYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xNjMsNiArMTYzLDcgQEAK
ICNpbmNsdWRlICJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCIKICNpbmNsdWRlICJWaXNpdGVkTGlu
a1N0YXRlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2lu
Y2x1ZGUgIldlYktpdEZvbnRMb2FkZXIuaCIKICNpbmNsdWRlICJXZWJLaXROYW1lZEZsb3cuaCIK
ICNpbmNsdWRlICJYTUxEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0
LmgiCkBAIC00ODAsNiArNDgxLDkgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwg
Y29uc3QgS1VSTCYgdXJsLCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MKQogI2lmIEVOQUJMRShU
RU1QTEFURV9FTEVNRU5UKQogICAgICwgbV90ZW1wbGF0ZURvY3VtZW50SG9zdCgwKQogI2VuZGlm
CisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorICAgICwgbV93ZWJraXRGb250bG9hZGVyKDApCisj
ZW5kaWYKIHsKICAgICBzZXRUcmVlU2NvcGUodGhpcyk7CiAKQEAgLTYwNDgsNCArNjA1MiwxMyBA
QCBEb2N1bWVudCogRG9jdW1lbnQ6OmVuc3VyZVRlbXBsYXRlRG9jdW1lbnQoKQogfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCitQYXNzUmVmUHRyPFdlYktpdEZvbnRMb2FkZXI+
IERvY3VtZW50Ojp3ZWJraXRGb250bG9hZGVyKCkKK3sKKyAgICBpZiAoIW1fd2Via2l0Rm9udGxv
YWRlcikKKyAgICAgICAgbV93ZWJraXRGb250bG9hZGVyID0gV2ViS2l0Rm9udExvYWRlcjo6Y3Jl
YXRlKHRoaXMpOworICAgIHJldHVybiBtX3dlYmtpdEZvbnRsb2FkZXI7Cit9CisjZW5kaWYKKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAxMjY0MzhkNzBl
ZjAxNjFiYzJhZmU4ZmNlYTc2OGE0YmM4NzAzN2FiLi45NmE2MGEyMzYxODUzM2ZmYzMzYWNiNWQw
NzU0NjRkZDc0MTk3MGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTg4LDYgKzE4OCwxMCBA
QCBjbGFzcyBUZXh0QXV0b3NpemVyOwogY2xhc3MgRE9NU2VjdXJpdHlQb2xpY3k7CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShGT05UX0xPQURFUikKK2NsYXNzIFdlYktpdEZvbnRMb2FkZXI7CisjZW5k
aWYKKwogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAogZW51bSBQYWdlc2hvd0V2ZW50UGVy
c2lzdGVuY2UgewpAQCAtMTIwNiw2ICsxMjEwLDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
Y29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbigpIGNvbnN0IE9WRVJSSURFOwogCisjaWYg
RU5BQkxFKEZPTlRfTE9BREVSKQorICAgIFBhc3NSZWZQdHI8V2ViS2l0Rm9udExvYWRlcj4gd2Vi
a2l0Rm9udGxvYWRlcigpOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBEb2N1bWVudChGcmFt
ZSosIGNvbnN0IEtVUkwmLCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MKTsKIApAQCAtMTU3MCw2
ICsxNTc4LDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPERvY3VtZW50PiBtX3RlbXBsYXRlRG9j
dW1lbnQ7CiAgICAgRG9jdW1lbnQqIG1fdGVtcGxhdGVEb2N1bWVudEhvc3Q7IC8vIE1hbnVhbGx5
IG1hbmFnZWQgd2Vha3JlZiAoYmFja3BvaW50ZXIgZnJvbSBtX3RlbXBsYXRlRG9jdW1lbnQpLgog
I2VuZGlmCisKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisgICAgUmVmUHRyPFdlYktpdEZvbnRM
b2FkZXI+IG1fd2Via2l0Rm9udGxvYWRlcjsKKyNlbmRpZgogfTsKIAogaW5saW5lIHZvaWQgRG9j
dW1lbnQ6Om5vdGlmeVJlbW92ZVBlbmRpbmdTaGVldElmTmVlZGVkKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaWRsCmluZGV4IDRkNGU5ZmI0OTUyNmE4ODUxMWE4Yzc0MmYxYmI2NDc0MGI3MzkxYWMuLjU2
YWZkMDNkNDU1YWQ3OGI4MWVhMTg3ODgxYjQzYWFhNzZiMDdiM2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmlkbApAQCAtMjYyLDYgKzI2MiwxMCBAQAogCiAgICAgW0NvbmRpdGlvbmFsPUNTU19SRUdJ
T05TLCBWOEVuYWJsZWRBdFJ1bnRpbWU9Y3NzUmVnaW9uc10gRE9NTmFtZWRGbG93Q29sbGVjdGlv
biB3ZWJraXRHZXROYW1lZEZsb3dzKCk7CiAKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJ
UFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKKyAgICBbQ29uZGl0aW9uYWw9Rk9OVF9MT0FERVJd
IHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJLaXRGb250TG9hZGVyIHdlYmtpdEZvbnRsb2FkZXI7Cisj
ZW5kaWYKKwogI2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSB8fCAhTEFOR1VBR0Vf
T0JKRUNUSVZFX0MKICAgICAvLyBFdmVudCBoYW5kbGVyIERPTSBhdHRyaWJ1dGVzCiAgICAgW05v
dEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uYWJvcnQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaAppbmRleCAyMmE3YjMyYmFiNzliYzUyNjAwNzY0MWEzYjkxY2M0MGM1MWI0YzZk
Li4zYjVmMjMyMjI0ZTM5Y2JjYWQxM2EzOTc5NzQyN2I2OTA5Y2QyY2I0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudE5hbWVzLmgKQEAgLTg0LDYgKzg0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1h
Y3JvKGtleXVwKSBcCiAgICAgbWFjcm8obGV2ZWxjaGFuZ2UpIFwKICAgICBtYWNybyhsb2FkKSBc
CisgICAgbWFjcm8obG9hZGluZykgXAorICAgIG1hY3JvKGxvYWRpbmdkb25lKSBcCiAgICAgbWFj
cm8obG9hZHN0YXJ0KSBcCiAgICAgbWFjcm8obWVzc2FnZSkgXAogICAgIG1hY3JvKG1vdXNlZG93
bikgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRleCBjMDRiMDI1Y2VjNDA3MDQ3MmMzMjJl
YWUwZmE2N2E4ZWY2ZGRjNjBmLi40ZjM1YzdjN2FhMmRhZTM5YTBkOWE3ZGM3M2JjNWNiNWM5ZWFh
ZjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpAQCAtMjYsNiArMjYsNyBAQCBUcmFuc2l0
aW9uRXZlbnQKIFVJRXZlbnQKIFVJRXZlbnRzIGludGVyZmFjZU5hbWU9VUlFdmVudAogV2ViS2l0
QW5pbWF0aW9uRXZlbnQKK1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50IGNvbmRpdGlvbmFsPUZP
TlRfTE9BREVSCiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQKIFdoZWVsRXZlbnQKIFhNTEh0dHBSZXF1
ZXN0UHJvZ3Jlc3NFdmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFy
Z2V0RmFjdG9yeS5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4K
aW5kZXggY2Y1YWNmNzVjM2JlNDkwMzBkMzg3MTIzOTMwMzg0ZTE4MDA0ZjRjOC4uNDM5OTQzODJk
YmRlZTlmMDgzMTc5OThkMmU4YTVlMTIzYzBhNDRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnRUYXJnZXRGYWN0b3J5LmluCkBAIC0zNiw2ICszNiw3IEBAIFNWR0VsZW1lbnRJbnN0YW5jZSBj
b25kaXRpb25hbD1TVkcKIFRleHRUcmFjayBjb25kaXRpb25hbD1WSURFT19UUkFDSwogVGV4dFRy
YWNrQ3VlIGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCiBUZXh0VHJhY2tMaXN0IGNvbmRpdGlvbmFs
PVZJREVPX1RSQUNLCitXZWJLaXRGb250TG9hZGVyIGNvbmRpdGlvbmFsPUZPTlRfTE9BREVSCiBX
ZWJLaXROYW1lZEZsb3cKIFdlYlNvY2tldCBjb25kaXRpb25hbD1XRUJfU09DS0VUUwogV29ya2Vy
IGNvbmRpdGlvbmFsPVdPUktFUlMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBkYWNh
MDg4MTBjOTUxOGRmMzhjYmZjYmI0OGUyMjIzNDFlYjYyOTQ5Li5kZTU4ZDk0ZGMwNmEyNzY0OTk1
N2NkY2UxOTEwZmQzZjEzNDk1YzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC02
OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlRleHRS
ZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJUZXh0U3RyZWFtLmgiCisjaW5jbHVkZSAiV2Vi
S2l0Rm9udExvYWRlci5oIgogCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVk
ZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgpAQCAtMjU2OSw2ICsyNTcwLDkgQEAgdm9pZCBGcmFt
ZVZpZXc6OnBlcmZvcm1Qb3N0TGF5b3V0VGFza3MoKQogICAgIH0KIAogICAgIG1fZnJhbWUtPmxv
YWRlcigpLT5kaWRMYXlvdXQobWlsZXN0b25lc0FjaGlldmVkKTsKKyNpZiBFTkFCTEUoRk9OVF9M
T0FERVIpCisgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+d2Via2l0Rm9udGxvYWRlcigpLT5kaWRM
YXlvdXQoKTsKKyNlbmRpZgogICAgIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgY29uc2lkZXIg
YWRkaW5nIERpZExheW91dCBhcyBhIExheW91dE1pbGVzdG9uZS4gVGhhdCB3b3VsZCBsZXQgdXMg
bWVyZ2UgdGhpcwogICAgIC8vIHdpdGggZGlkTGF5b3V0KExheW91dE1pbGVzdG9uZXMpLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IGYzZjlmZDUxOTEyM2M4NGU0MmZiODE0
MDhmNGY1MTg4Y2I4ZDE3NDcuLjhjOTQ2ZTA2NWJlYTAxZjVkNjllMGJmN2E5MjA4NmNiOWU2NTIw
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTY3LDYgKzY3LDcgQEAK
ICAgICAgICdFTkFCTEVfRU5DUllQVEVEX01FRElBPTEnLAogICAgICAgJ0VOQUJMRV9GSUxFX1NZ
U1RFTT0xJywKICAgICAgICdFTkFCTEVfRklMVEVSUz0xJywKKyAgICAgICdFTkFCTEVfRk9OVF9M
T0FERVI9MScsCiAgICAgICAnRU5BQkxFX0ZVTExTQ1JFRU5fQVBJPTEnLAogICAgICAgJ0VOQUJM
RV9HQU1FUEFEPTEnLAogICAgICAgJ0VOQUJMRV9HRU9MT0NBVElPTj0xJywKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmY2Ji
MjZjNjA0NDA3MjRhOTNiOWMxMTBkYTQ5NDU1NTM4OTZhYzNmLi4xNzc3NzRmYjhkYjJiNGEwOGRj
OGJhOGI3ZTJlMWFhMTA5ZWE1NjdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTMtMDItMTcg
IEt1bmloaWtvIFNha2Ftb3RvICA8a3Nha2Ftb3RvQGNocm9taXVtLm9yZz4KKworICAgICAgICBJ
bXBsZW1lbnQgRm9udExvYWRlciBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk4Mzk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3RzIGZvciBkb2N1bWVudC53ZWJraXRGb250bG9h
ZGVyLiBTaW5jZSB0aGUgZmVhdHVyZSBpcyBjdXJyZW50bHkgZW5hYmxlZAorICAgICAgICBvbmx5
IGZvciBjaHJvbWl1bSwgdGhlIHRlc3RzIGFyZSBleHBlY3RlZCB0byBmYWlsIG9uIHRoZSBvdGhl
ciBwb3J0cy4KKworICAgICAgICAqIGZhc3QvY3NzL2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3It
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9mb250bG9hZGVyLWRvd25s
b2FkLWVycm9yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2ZvbnRsb2FkZXItZXZl
bnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvZm9udGxvYWRlci1l
dmVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvZm9udGxvYWRlci1sb2FkaW5n
ZG9uZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2ZvbnRsb2FkZXIt
bG9hZGluZ2RvbmUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvZm9udGxvYWRlci1t
dWx0aXBsZS1mYWNlcy1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93bmxvYWQtZXJyb3IuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlw
bGUtZmFjZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0
aXBsZS1mYW1pbGllcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2Zv
bnRsb2FkZXItbXVsdGlwbGUtZmFtaWxpZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy93ZWJmb250L2ZvbnRsb2FkZXItbG9hZGluZy1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmZvbnQvZm9udGxvYWRlci1sb2FkaW5nLWF0
dHJpYnV0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nz
cy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1ldmVudHMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9h
ZGVyLWxvYWRpbmdkb25lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1kb3dubG9hZC1lcnJv
ci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3Qv
Y3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhbWls
aWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9jc3MvZm9udGxvYWRlci1ub3RpZnktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3dlYmZvbnQvZm9udGxvYWRlci1sb2FkaW5nLWF0
dHJpYnV0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEzLTAyLTE3ICBWaXZlayBHYWxhdGFn
ZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEFkZCBtaXNzaW5nIGJyYWNlcyBp
biBmYXN0L3BhcnNlci9ub3NjcmlwdC13aXRoLWphdmFzY3JpcHQtZW5hYmxlZC5odG1sCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9yLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZG93bmxvYWQtZXJy
b3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzYTNjNTQ1MGFiM2E2OTdhOGMxMjVlZDkwMDY2
NTExZTg3YmMzOGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250
bG9hZGVyLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0
IGRvd25sb2FkIGVycm9yIGNhc2VzLiAibG9hZCIgb3IgImVycm9yIiBldmVudHMgc2hvdWxkIGJl
IGZpcmVkIGV4YWN0bHkgb25jZSBmb3IgZWFjaCBAZm9udC1mYWNlIHJ1bGUuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitGQUlMIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIgZG9l
cyBub3QgZXhpc3QKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorZm9udDEKK2ZvbnQyCitmb250MworZm9udDQKK2ZvbnQ1CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9yLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9yLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YTQ1MGM5YTBmNWYzYzUwOGNmYzM3OTllYzkwZmVkMjlhYmFmYzlmMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3IuaHRtbApA
QCAtMCwwICsxLDgwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisvKiBUZXN0IDE6IEludmFs
aWQgZm9udCBkYXRhICovCitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogbXlmb250MTsK
KyAgICBzcmM6IHVybCgncmVzb3VyY2VzL2ludmFsaWRmb250LnBuZycpIGZvcm1hdChvcGVudHlw
ZSk7Cit9CisKKy8qIFRlc3QgMjogRG93bmxvYWQgZXJyb3IgKi8KK0Bmb250LWZhY2UgeworICAg
IGZvbnQtZmFtaWx5OiBteWZvbnQyOworICAgIHNyYzogdXJsKCdyZXNvdXJjZXMvRG93bkxvYWRF
cnJvckFoZW0ub3RmJyk7Cit9CisKKy8qIFRlc3QgMzogRW1wdHkgZGF0YSB1cmwgKi8KK0Bmb250
LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiBteWZvbnQzOworICAgIHNyYzogdXJsKGRhdGE6YXBw
bGljYXRpb24veC10cnVldHlwZS1mb250LCkgZm9ybWF0KHRydWV0eXBlKTsKK30KKworLyogVGVz
dCA0OiBEb3dubG9hZCBlcnJvciBmb2xsb3dlZCBieSBleGlzdGluZyBsb2NhbCBmb250ICovCitA
Zm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogbXlmb250NDsKKyAgICBzcmM6IHVybCgncmVz
b3VyY2VzL0Rvd25Mb2FkRXJyb3JBaGVtLm90ZicpLCBsb2NhbCgnQ291cmllciBOZXcnKTsKK30K
KworLyogVGVzdCA1OiBNdWx0aXBsZSBlcnJvcnMgKi8KK0Bmb250LWZhY2UgeworICAgIGZvbnQt
ZmFtaWx5OiBteWZvbnQ1OworICAgIHNyYzogdXJsKCdyZXNvdXJjZXMvRG93bkxvYWRFcnJvckFo
ZW0ub3RmJyksIHVybChkYXRhOmFwcGxpY2F0aW9uL3gtdHJ1ZXR5cGUtZm9udCwpIGZvcm1hdCh0
cnVldHlwZSk7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGRvd25s
b2FkIGVycm9yIGNhc2VzLiAibG9hZCIgb3IgImVycm9yIiBldmVudHMgc2hvdWxkIGJlIGZpcmVk
IGV4YWN0bHkgb25jZSBmb3IgZWFjaCBAZm9udC1mYWNlIHJ1bGUuJyk7CisKK3dpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV2ZW50cyA9IHt9OworCitmdW5jdGlvbiBsb2dFdmVu
dChlKSB7CisgICAgdmFyIGZhbWlseSA9IGUuZm9udGZhY2Uuc3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZSgnZm9udC1mYW1pbHknKTsKKyAgICBpZiAoIWV2ZW50c1tmYW1pbHldKQorICAgICAgICBldmVu
dHNbZmFtaWx5XSA9IFtdOworICAgIGV2ZW50c1tmYW1pbHldLnB1c2goZS50eXBlKTsKK30KKwor
ZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5hZGRF
dmVudExpc3RlbmVyKCdsb2Fkc3RhcnQnLCBsb2dFdmVudCk7CisgICAgZG9jdW1lbnQud2Via2l0
Rm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgbG9nRXZlbnQpOworICAgIGRvY3Vt
ZW50LndlYmtpdEZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBsb2dFdmVudCk7
CisKKyAgICBkb2N1bWVudC53ZWJraXRGb250bG9hZGVyLm5vdGlmeVdoZW5Gb250c1JlYWR5KGZ1
bmN0aW9uKCkgeworICAgICAgICBzaG91bGRCZSgiZXZlbnRzWydteWZvbnQxJ10iLCAiWydsb2Fk
c3RhcnQnLCAnZXJyb3InXSIpOworICAgICAgICBzaG91bGRCZSgiZXZlbnRzWydteWZvbnQyJ10i
LCAiWydsb2Fkc3RhcnQnLCAnZXJyb3InXSIpOworICAgICAgICBzaG91bGRCZSgiZXZlbnRzWydt
eWZvbnQzJ10iLCAiWydsb2Fkc3RhcnQnLCAnZXJyb3InXSIpOworICAgICAgICBzaG91bGRCZSgi
ZXZlbnRzWydteWZvbnQ0J10iLCAiWydsb2Fkc3RhcnQnLCAnbG9hZCddIik7CisgICAgICAgIHNo
b3VsZEJlKCJldmVudHNbJ215Zm9udDUnXSIsICJbJ2xvYWRzdGFydCcsICdlcnJvciddIik7Cisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworfQorCitpZiAoZG9jdW1lbnQud2Via2l0
Rm9udGxvYWRlcikKKyAgICBydW5UZXN0cygpOworZWxzZSB7CisgICAgdGVzdEZhaWxlZCgnZG9j
dW1lbnQud2Via2l0Rm9udGxvYWRlciBkb2VzIG5vdCBleGlzdCcpOworICAgIGZpbmlzaEpTVGVz
dCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBzdHlsZT0iZm9udC1m
YW1pbHk6IG15Zm9udDEiPmZvbnQxPC9kaXY+CisgIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBt
eWZvbnQyIj5mb250MjwvZGl2PgorICA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogbXlmb250MyI+
Zm9udDM8L2Rpdj4KKyAgPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IG15Zm9udDQiPmZvbnQ0PC9k
aXY+CisgIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBteWZvbnQ1Ij5mb250NTwvZGl2PgorICA8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9h
ZGVyLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVy
LWV2ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVlMjY4MzFkN2NlZDY5ZmY4ODg1MDc0
NzExYjhjNWIyOThjODlmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2ZvbnRsb2FkZXItZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IHRo
YXQgdGhlIGV2ZW50IGhhbmRsZXJzIG9mIEZvbnRMb2FkZXIgYXJlIGNhbGxlZCBpbiB0aGUgY29y
cmVjdCBvcmRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ZBSUwgZG9jdW1l
bnQud2Via2l0Rm9udGxvYWRlciBkb2VzIG5vdCBleGlzdAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitIZWxsbywgd29ybGQhCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvZm9udGxvYWRlci1ldmVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDI0MWEyMjA1ZDg4
YWY5MGYzZmYzMGY3YzA0YzI1YzZhMDRjNmExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvZm9udGxvYWRlci1ldmVudHMuaHRtbApAQCAtMCwwICsxLDQ5IEBACis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgZm9udC1mYW1pbHk6ICdhaGVtJzsK
KyAgc3JjOiB1cmwoLi4vLi4vcmVzb3VyY2VzL0FoZW0udHRmKTsKK30KKzwvc3R5bGU+Cis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCB0aGUgZXZlbnQgaGFuZGxlcnMgb2YgRm9udExv
YWRlciBhcmUgY2FsbGVkIGluIHRoZSBjb3JyZWN0IG9yZGVyLicpOworCit3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7CisKK3ZhciBldmVudDsKK3ZhciBudW1iZXJPZkV2ZW50cyA9IDA7CisK
K2Z1bmN0aW9uIGhhbmRsZUV2ZW50KGUpIHsKKyAgICBldmVudCA9IGU7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdldmVudC50eXBlJywgWydsb2FkaW5nJywgJ2xvYWRzdGFydCcsICdsb2Fk
JywgJ2xvYWRpbmdkb25lJ11bbnVtYmVyT2ZFdmVudHNdKTsKKyAgICBudW1iZXJPZkV2ZW50cysr
OworfQorCitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAgICBkb2N1bWVudC53ZWJraXRGb250bG9h
ZGVyLm9ubG9hZGluZyA9IGhhbmRsZUV2ZW50OworICAgIGRvY3VtZW50LndlYmtpdEZvbnRsb2Fk
ZXIub25sb2FkaW5nZG9uZSA9IGhhbmRsZUV2ZW50OworICAgIGRvY3VtZW50LndlYmtpdEZvbnRs
b2FkZXIub25sb2Fkc3RhcnQgPSBoYW5kbGVFdmVudDsKKyAgICBkb2N1bWVudC53ZWJraXRGb250
bG9hZGVyLm9ubG9hZCA9IGhhbmRsZUV2ZW50OworICAgIGRvY3VtZW50LndlYmtpdEZvbnRsb2Fk
ZXIub25lcnJvciA9IGhhbmRsZUV2ZW50OworCisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRl
ci5ub3RpZnlXaGVuRm9udHNSZWFkeShmdW5jdGlvbigpIHsKKyAgICAgICAgc2hvdWxkQmUoJ251
bWJlck9mRXZlbnRzJywgJzQnKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7Cit9
CisKK2lmIChkb2N1bWVudC53ZWJraXRGb250bG9hZGVyKQorICAgIHJ1blRlc3RzKCk7CitlbHNl
IHsKKyAgICB0ZXN0RmFpbGVkKCdkb2N1bWVudC53ZWJraXRGb250bG9hZGVyIGRvZXMgbm90IGV4
aXN0Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorICA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogYWhlbSI+SGVsbG8sIHdvcmxkITwvZGl2Pgor
ICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250
bG9hZGVyLWxvYWRpbmdkb25lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Zv
bnRsb2FkZXItbG9hZGluZ2RvbmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlYWFmYjZhZDAz
NjRhMmRjYzhkMmM4ODBjMjVjYzRkNjE4MmI4MTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWxvYWRpbmdkb25lLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEwIEBACitUZXN0IHRoYXQgb25sb2FkaW5nZG9uZSBpcyBmaXJlZCBhZnRlciBzdHlsZSBy
ZWNhbGN1bGF0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRkFJTCBkb2N1
bWVudC53ZWJraXRGb250bG9hZGVyIGRvZXMgbm90IGV4aXN0CitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK2FhYQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvZm9udGxvYWRlci1sb2FkaW5nZG9uZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvZm9udGxvYWRlci1sb2FkaW5nZG9uZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkZWY4NDM0ODI4
MWI1YTY0MDIyOThlMjNlYmI1N2FmMTc0Yjk2YjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWxvYWRpbmdkb25lLmh0bWwKQEAgLTAsMCArMSw1NCBA
QAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorYm9keSB7CisgIGZvbnQtZmFtaWx5OiBzZXJpZjsK
K30KK0Bmb250LWZhY2UgeworICBmb250LWZhbWlseTogJ2FoZW0nOworICBzcmM6IHVybCguLi8u
Li9yZXNvdXJjZXMvQWhlbS50dGYpOworfQorI3Rlc3QgeworICBwb3NpdGlvbjogYWJzb2x1dGUK
K30KKyN0ZXN0IHNwYW4geworICBmb250LWZhbWlseTogYWhlbTsKK30KKzwvc3R5bGU+Cis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCBvbmxvYWRpbmdkb25lIGlzIGZpcmVkIGFmdGVy
IHN0eWxlIHJlY2FsY3VsYXRpb24uJyk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5v
bmxvYWRpbmdkb25lID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGRlYnVnKCdsb2FkaW5nZG9uZScp
OworICAgICAgICB0ZXN0RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0
RGl2LCAwKS53aWR0aCcsICc0OHB4Jyk7CisgICAgfTsKKworICAgIGRvY3VtZW50LndlYmtpdEZv
bnRsb2FkZXIubm90aWZ5V2hlbkZvbnRzUmVhZHkoZnVuY3Rpb24oKSB7CisgICAgICAgIGRlYnVn
KCdub3RpZnlXaGVuRm9udHNSZWFkeSgpIGNhbGxiYWNrJyk7CisgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygnd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdERpdiwgMCkud2lkdGgnLCAn
NDhweCcpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKK30KKworaWYgKGRvY3Vt
ZW50LndlYmtpdEZvbnRsb2FkZXIpCisgICAgcnVuVGVzdHMoKTsKK2Vsc2UgeworICAgIHRlc3RG
YWlsZWQoJ2RvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QnKTsKKyAgICBm
aW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9
dGVzdD4KKyAgICA8YSBocmVmPSIjIj4KKyAgICAgIDxzcGFuPmFhYTwvc3Bhbj4KKyAgICA8L2E+
CisgIDwvZGl2PgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93
bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0YWIxMTMzOTViMzg0ZjAyYWJl
OGMwOTVlZWUxMGIwYjhhNWY2MzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGxvYWQgZXZlbnRzIGZvciBhIGZvbnQgZmFtaWx5IGNv
bnNpc3RzIG9mIG11bHRpcGxlIEBmb250LWZhY2VzLCBpbmNsdWRpbmcgZG93bmxvYWQgZXJyb3Iu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitGQUlMIGRvY3VtZW50LndlYmtpdEZv
bnRsb2FkZXIgZG9lcyBub3QgZXhpc3QKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250
bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzQxYzM4OTIzNzIxOTI0YTc4YTlhMzE2YTUyNDE0YTgwZDExYWI5OAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFj
ZXMtZG93bmxvYWQtZXJyb3IuaHRtbApAQCAtMCwwICsxLDcwIEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogVGVzdEZvbnQ7CisgICAgc3Jj
OiB1cmwoLi4vLi4vcmVzb3VyY2VzL0FoZW0udHRmKTsKK30KKworQGZvbnQtZmFjZSB7CisgICAg
Zm9udC1mYW1pbHk6IFRlc3RGb250OworICAgIHNyYzogdXJsKCdyZXNvdXJjZXMvRG93bkxvYWRF
cnJvckFoZW0ub3RmJyk7CisgICAgdW5pY29kZS1yYW5nZTogdSs2MS03YTsgLyogJ2EnLSd6JyAq
LworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBsb2FkIGV2ZW50cyBm
b3IgYSBmb250IGZhbWlseSBjb25zaXN0cyBvZiBtdWx0aXBsZSBAZm9udC1mYWNlcywgaW5jbHVk
aW5nIGRvd25sb2FkIGVycm9yLicpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisK
K3ZhciBldmVudHMgPSB7fTsKKworZnVuY3Rpb24gY291bnRFdmVudChlKSB7CisgICAgaWYgKCFl
dmVudHNbZS50eXBlXSkKKyAgICAgICAgZXZlbnRzW2UudHlwZV0gPSAwOworICAgIGV2ZW50c1tl
LnR5cGVdICs9IDE7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICAgIGRvY3VtZW50Lndl
YmtpdEZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGluZycsIGNvdW50RXZlbnQpOwor
ICAgIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZHN0YXJ0
JywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5hZGRFdmVudExp
c3RlbmVyKCdsb2FkJywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRl
ci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGNvdW50RXZlbnQpOworICAgIGRvY3VtZW50Lndl
YmtpdEZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGluZ2RvbmUnLCBjb3VudEV2ZW50
KTsKKworICAgIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIubG9hZEZvbnQoeyBmb250OiAnMTBw
eCBUZXN0Rm9udCcsIG9uc3VjY2Vzczogb25zdWNjZXNzLCBvbmVycm9yOiBvbmVycm9yIH0pOwor
ICAgIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIubm90aWZ5V2hlbkZvbnRzUmVhZHkodmVyaWZ5
KTsKK30KKworZnVuY3Rpb24gb25zdWNjZXNzKCkgeworICAgIHRlc3RGYWlsZWQoIkV4cGVjdGVk
IGVycm9yLCBidXQgb25zdWNjZXNzKCkgY2FsbGVkIik7CisgICAgb25lcnJvcigpOworfQorCitm
dW5jdGlvbiBvbmVycm9yKCkgeworICAgIHNob3VsZEJlKCJldmVudHNbJ2xvYWRpbmcnXSIsICIx
Iik7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZHN0YXJ0J10iLCAiMiIpOworICAgIHNob3Vs
ZEJlKCJldmVudHNbJ2xvYWQnXSIsICIxIik7CisgICAgc2hvdWxkQmUoImV2ZW50c1snZXJyb3In
XSIsICIxIik7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZGluZ2RvbmUnXSIsICJ1bmRlZmlu
ZWQiKTsKKyAgICBzaG91bGRCZSgiZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5jaGVja0ZvbnQo
JzEwcHggVGVzdEZvbnQnKSIsICJmYWxzZSIpOworfQorCitmdW5jdGlvbiB2ZXJpZnkoKSB7Cisg
ICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZGluZ2RvbmUnXSIsICIxIik7CisgICAgZmluaXNoSlNU
ZXN0KCk7Cit9CisKK2lmIChkb2N1bWVudC53ZWJraXRGb250bG9hZGVyKQorICAgIHJ1blRlc3Rz
KCk7CitlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKCdkb2N1bWVudC53ZWJraXRGb250bG9hZGVyIGRv
ZXMgbm90IGV4aXN0Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjE5ZmY4NTgyZjM0OTA2ZmExOGM4ODRiMmYwYzkzZjVhMDY0ZmE3NzUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2Vz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGxvYWQgZXZlbnRzIGZvciBhIGZv
bnQgZmFtaWx5IGNvbnNpc3RzIG9mIG11bHRpcGxlIEBmb250LWZhY2VzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworRkFJTCBkb2N1bWVudC53ZWJraXRGb250bG9hZGVyIGRvZXMg
bm90IGV4aXN0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBs
ZS1mYWNlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1m
YWNlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzNWNmNzFjMzQ4YThlODg0Y2NmNDBjMWViNzQ2M2VkYzQy
NjM3ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVy
LW11bHRpcGxlLWZhY2VzLmh0bWwKQEAgLTAsMCArMSw3MCBAQAorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0
eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6IFRlc3RGb250OworICAgIHNyYzog
bG9jYWwoJ0NvdXJpZXIgTmV3Jyk7Cit9CisKK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5
OiBUZXN0Rm9udDsKKyAgICBzcmM6IHVybCguLi8uLi9yZXNvdXJjZXMvQWhlbS50dGYpOworICAg
IHVuaWNvZGUtcmFuZ2U6IHUrNjEtN2E7IC8qICdhJy0neicgKi8KK30KKzwvc3R5bGU+Cis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgbG9hZCBldmVudHMgZm9yIGEgZm9udCBmYW1pbHkgY29u
c2lzdHMgb2YgbXVsdGlwbGUgQGZvbnQtZmFjZXMuJyk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKwordmFyIGV2ZW50cyA9IHt9OworCitmdW5jdGlvbiBjb3VudEV2ZW50KGUpIHsK
KyAgICBpZiAoIWV2ZW50c1tlLnR5cGVdKQorICAgICAgICBldmVudHNbZS50eXBlXSA9IDA7Cisg
ICAgZXZlbnRzW2UudHlwZV0gKz0gMTsKK30KKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAg
ZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkaW5nJywgY291
bnRFdmVudCk7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVy
KCdsb2Fkc3RhcnQnLCBjb3VudEV2ZW50KTsKKyAgICBkb2N1bWVudC53ZWJraXRGb250bG9hZGVy
LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBjb3VudEV2ZW50KTsKKyAgICBkb2N1bWVudC53ZWJr
aXRGb250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgY291bnRFdmVudCk7CisgICAg
ZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkaW5nZG9uZScs
IGNvdW50RXZlbnQpOworCisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5sb2FkRm9udCh7
IGZvbnQ6ICcxMHB4IFRlc3RGb250Jywgb25zdWNjZXNzOiBvbnN1Y2Nlc3MsIG9uZXJyb3I6IG9u
ZXJyb3IgfSk7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5ub3RpZnlXaGVuRm9udHNS
ZWFkeSh2ZXJpZnkpOworfQorCitmdW5jdGlvbiBvbnN1Y2Nlc3MoKSB7CisgICAgc2hvdWxkQmUo
ImV2ZW50c1snbG9hZGluZyddIiwgIjEiKTsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydsb2Fkc3Rh
cnQnXSIsICIyIik7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZCddIiwgIjIiKTsKKyAgICBz
aG91bGRCZSgiZXZlbnRzWydlcnJvciddIiwgInVuZGVmaW5lZCIpOworICAgIHNob3VsZEJlKCJl
dmVudHNbJ2xvYWRpbmdkb25lJ10iLCAidW5kZWZpbmVkIik7CisgICAgc2hvdWxkQmUoImRvY3Vt
ZW50LndlYmtpdEZvbnRsb2FkZXIuY2hlY2tGb250KCcxMHB4IFRlc3RGb250JykiLCAidHJ1ZSIp
OworfQorCitmdW5jdGlvbiBvbmVycm9yKCkgeworICAgIHRlc3RGYWlsZWQoIkV4cGVjdGVkIHN1
Y2Nlc3MsIGJ1dCBvbmVycm9yKCkgY2FsbGVkIik7CisgICAgb25zdWNjZXNzKCk7Cit9CisKK2Z1
bmN0aW9uIHZlcmlmeSgpIHsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydsb2FkaW5nZG9uZSddIiwg
IjEiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworaWYgKGRvY3VtZW50LndlYmtpdEZvbnRs
b2FkZXIpCisgICAgcnVuVGVzdHMoKTsKK2Vsc2UgeworICAgIHRlc3RGYWlsZWQoJ2RvY3VtZW50
LndlYmtpdEZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsK
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFtaWxpZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1m
YW1pbGllcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjJjZTEzNjI2MzVhNTIyZmQxY2EwNWU3
N2YxYjdlMzZhM2FiZTZmNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFtaWxpZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAg
QEAKK1Rlc3QgbG9hZCBldmVudHMgZm9yIGZvbnRsb2FkZXIubG9hZEZvbnQoKSB3aXRoIG11bHRp
cGxlIGZvbnQgZmFtaWxpZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitGQUlM
IGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhbWlsaWVzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhbWlsaWVzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMGU3MzQ0OTgwNWE3MDFhMmM0NzcwNWY0ZjUxOGVmYTlkMTI3OWYwZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFtaWxpZXMu
aHRtbApAQCAtMCwwICsxLDY5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitAZm9udC1mYWNl
IHsKKyAgICBmb250LWZhbWlseTogVGVzdEZvbnQxOworICAgIHNyYzogbG9jYWwoJ0NvdXJpZXIg
TmV3Jyk7Cit9CisKK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiBUZXN0Rm9udDI7Cisg
ICAgc3JjOiB1cmwoLi4vLi4vcmVzb3VyY2VzL0FoZW0udHRmKTsKKyAgICB1bmljb2RlLXJhbmdl
OiB1KzYxLTdhOyAvKiAnYSctJ3onICovCit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCdUZXN0IGxvYWQgZXZlbnRzIGZvciBmb250bG9hZGVyLmxvYWRGb250KCkgd2l0aCBtdWx0
aXBsZSBmb250IGZhbWlsaWVzLicpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisK
K3ZhciBldmVudHMgPSB7fTsKKworZnVuY3Rpb24gY291bnRFdmVudChlKSB7CisgICAgaWYgKCFl
dmVudHNbZS50eXBlXSkKKyAgICAgICAgZXZlbnRzW2UudHlwZV0gPSAwOworICAgIGV2ZW50c1tl
LnR5cGVdICs9IDE7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICAgIGRvY3VtZW50Lndl
YmtpdEZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGluZycsIGNvdW50RXZlbnQpOwor
ICAgIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZHN0YXJ0
JywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5hZGRFdmVudExp
c3RlbmVyKCdsb2FkJywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRl
ci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGNvdW50RXZlbnQpOworICAgIGRvY3VtZW50Lndl
YmtpdEZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGluZ2RvbmUnLCBjb3VudEV2ZW50
KTsKKworICAgIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIubG9hZEZvbnQoeyBmb250OiAnMTBw
eCBUZXN0Rm9udDEsIFRlc3RGb250MicsIG9uc3VjY2Vzczogb25zdWNjZXNzLCBvbmVycm9yOiBv
bmVycm9yIH0pOworICAgIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIubm90aWZ5V2hlbkZvbnRz
UmVhZHkodmVyaWZ5KTsKK30KKworZnVuY3Rpb24gb25zdWNjZXNzKCkgeworICAgIHNob3VsZEJl
KCJldmVudHNbJ2xvYWRpbmcnXSIsICIxIik7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZHN0
YXJ0J10iLCAiMiIpOworICAgIHNob3VsZEJlKCJldmVudHNbJ2xvYWQnXSIsICIyIik7CisgICAg
c2hvdWxkQmUoImV2ZW50c1snZXJyb3InXSIsICJ1bmRlZmluZWQiKTsKKyAgICBzaG91bGRCZSgi
ZXZlbnRzWydsb2FkaW5nZG9uZSddIiwgInVuZGVmaW5lZCIpOworICAgIHNob3VsZEJlKCJkb2N1
bWVudC53ZWJraXRGb250bG9hZGVyLmNoZWNrRm9udCgnMTBweCBUZXN0Rm9udDEsIFRlc3RGb250
MicpIiwgInRydWUiKTsKK30KKworZnVuY3Rpb24gb25lcnJvcigpIHsKKyAgICB0ZXN0RmFpbGVk
KCJFeHBlY3RlZCBzdWNjZXNzLCBidXQgb25lcnJvcigpIGNhbGxlZCIpOworfQorCitmdW5jdGlv
biB2ZXJpZnkoKSB7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZGluZ2RvbmUnXSIsICIxIik7
CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2lmIChkb2N1bWVudC53ZWJraXRGb250bG9hZGVy
KQorICAgIHJ1blRlc3RzKCk7CitlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKCdkb2N1bWVudC53ZWJr
aXRGb250bG9hZGVyIGRvZXMgbm90IGV4aXN0Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmZvbnQvZm9udGxvYWRlci1sb2FkaW5nLWF0dHJp
YnV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmZvbnQvZm9udGxv
YWRlci1sb2FkaW5nLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjIyMGRmNWJm
ZWI0YWRjNDFkMjUzZjMyMTUxNThlYmRiYTYxMTM0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGZvciBGb250TG9hZGVyLmxvYWRpbmcg
YXR0cmlidXRlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitGQUlMIGRvY3VtZW50
LndlYmtpdEZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYmZvbnQvZm9udGxvYWRlci1sb2FkaW5nLWF0dHJpYnV0ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJmb250L2ZvbnRsb2FkZXItbG9hZGluZy1hdHRyaWJ1dGUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hODBmOTgxYzQzMTg5YjA2ODI1NWZlYTdlMDA3YjJmYzAzOWVkOTYyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJmb250L2ZvbnRsb2Fk
ZXItbG9hZGluZy1hdHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDM5IEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzdHlsZT4KKyAgQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICdUZXN0
Rm9udCc7CisgICAgc3JjOiB1cmwoc2xvdy1haGVtLWxvYWRpbmcuY2dpKTsKKyAgfQorPC9zdHls
ZT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBmb3IgRm9udExvYWRlci5sb2FkaW5nIGF0
dHJpYnV0ZScpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Z1bmN0aW9uIHJ1
blRlc3RzKCkgeworICAgIHNob3VsZEJlKCJkb2N1bWVudC53ZWJraXRGb250bG9hZGVyLmNoZWNr
Rm9udCgnMTBweCBUZXN0Rm9udCcpIiwgImZhbHNlIik7CisgICAgc2hvdWxkQmUoImRvY3VtZW50
LndlYmtpdEZvbnRsb2FkZXIubG9hZGluZyIsICJmYWxzZSIpOworICAgIGRvY3VtZW50LndlYmtp
dEZvbnRsb2FkZXIubG9hZEZvbnQoeyBmb250OiAnMTBweCBUZXN0Rm9udCcsIG9uc3VjY2Vzczog
b25zdWNjZXNzIH0pOworICAgIHNob3VsZEJlKCJkb2N1bWVudC53ZWJraXRGb250bG9hZGVyLmxv
YWRpbmciLCAidHJ1ZSIpOworfQorCitmdW5jdGlvbiBvbnN1Y2Nlc3MoKSB7CisgICAgc2hvdWxk
QmUoImRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIuY2hlY2tGb250KCcxMHB4IFRlc3RGb250Jyki
LCAidHJ1ZSIpOworICAgIHNob3VsZEJlKCJkb2N1bWVudC53ZWJraXRGb250bG9hZGVyLmxvYWRp
bmciLCAiZmFsc2UiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworaWYgKGRvY3VtZW50Lndl
YmtpdEZvbnRsb2FkZXIpCisgICAgcnVuVGVzdHMoKTsKK2Vsc2UgeworICAgIHRlc3RGYWlsZWQo
J2RvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QnKTsKKyAgICBmaW5pc2hK
U1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxzY3JpcHQgc3JjPSIu
Li8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9jc3MvZm9udGxvYWRlci1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9yLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjk3YjU4MjNmMmEzMTY2N2QyOTc1YTA1MmJiZjU1NDg5
ZjYxMDYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9jc3MvZm9udGxvYWRlci1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxOCBAQAorVGVzdCBkb3dubG9hZCBlcnJvciBjYXNlcy4gImxvYWQiIG9yICJlcnJvciIgZXZl
bnRzIHNob3VsZCBiZSBmaXJlZCBleGFjdGx5IG9uY2UgZm9yIGVhY2ggQGZvbnQtZmFjZSBydWxl
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBldmVudHNbJ215Zm9udDEn
XSBpcyBbJ2xvYWRzdGFydCcsICdlcnJvciddCitQQVNTIGV2ZW50c1snbXlmb250MiddIGlzIFsn
bG9hZHN0YXJ0JywgJ2Vycm9yJ10KK1BBU1MgZXZlbnRzWydteWZvbnQzJ10gaXMgWydsb2Fkc3Rh
cnQnLCAnZXJyb3InXQorUEFTUyBldmVudHNbJ215Zm9udDQnXSBpcyBbJ2xvYWRzdGFydCcsICds
b2FkJ10KK1BBU1MgZXZlbnRzWydteWZvbnQ1J10gaXMgWydsb2Fkc3RhcnQnLCAnZXJyb3InXQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitmb250MQor
Zm9udDIKK2ZvbnQzCitmb250NAorZm9udDUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZXZlbnRzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODY1ODcxMDc1OWJiYzg1OTYyMDVhMWIyODVkMDIzNzhi
YzgyOTZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9jc3MvZm9udGxvYWRlci1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAK
K1Rlc3QgdGhhdCB0aGUgZXZlbnQgaGFuZGxlcnMgb2YgRm9udExvYWRlciBhcmUgY2FsbGVkIGlu
IHRoZSBjb3JyZWN0IG9yZGVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBldmVudC50eXBlIGlzICJsb2FkaW5nIgorUEFTUyBldmVudC50eXBlIGlzICJsb2Fkc3RhcnQi
CitQQVNTIGV2ZW50LnR5cGUgaXMgImxvYWQiCitQQVNTIGV2ZW50LnR5cGUgaXMgImxvYWRpbmdk
b25lIgorUEFTUyBudW1iZXJPZkV2ZW50cyBpcyA0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK0hlbGxvLCB3b3JsZCEKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbG9hZGluZ2RvbmUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9u
dGxvYWRlci1sb2FkaW5nZG9uZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjY2YzU5ZWM0OTc5
NmFiODcxYTQxMDc0MmRmNzM4MzU0MjVmOWQyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbG9hZGluZ2RvbmUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3QgdGhhdCBvbmxvYWRpbmdkb25lIGlzIGZp
cmVkIGFmdGVyIHN0eWxlIHJlY2FsY3VsYXRpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitsb2FkaW5nZG9uZQorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RGl2
LCAwKS53aWR0aCBpcyAiNDhweCIKK25vdGlmeVdoZW5Gb250c1JlYWR5KCkgY2FsbGJhY2sKK1BB
U1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdERpdiwgMCkud2lkdGggaXMgIjQ4cHgiCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK2FhYQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRl
ci1tdWx0aXBsZS1mYWNlcy1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRv
d25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTZjYzU0M2EzNzRmY2JiNmY5
MTUwOWYzNmFiOWIyMTgyZmU3YWY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1kb3dubG9h
ZC1lcnJvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorVGVzdCBsb2FkIGV2ZW50cyBm
b3IgYSBmb250IGZhbWlseSBjb25zaXN0cyBvZiBtdWx0aXBsZSBAZm9udC1mYWNlcywgaW5jbHVk
aW5nIGRvd25sb2FkIGVycm9yLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBldmVudHNbJ2xvYWRpbmcnXSBpcyAxCitQQVNTIGV2ZW50c1snbG9hZHN0YXJ0J10gaXMgMgor
UEFTUyBldmVudHNbJ2xvYWQnXSBpcyAxCitQQVNTIGV2ZW50c1snZXJyb3InXSBpcyAxCitQQVNT
IGV2ZW50c1snbG9hZGluZ2RvbmUnXSBpcyB1bmRlZmluZWQKK1BBU1MgZG9jdW1lbnQud2Via2l0
Rm9udGxvYWRlci5jaGVja0ZvbnQoJzEwcHggVGVzdEZvbnQnKSBpcyBmYWxzZQorUEFTUyBldmVu
dHNbJ2xvYWRpbmdkb25lJ10gaXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1m
YWNlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODJlMDZiMzc2ZWNiOTFlYjYwYWZlMjMxYTQy
ODRhZmQ3ODY2MmY3MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTYgQEAKK1Rlc3QgbG9hZCBldmVudHMgZm9yIGEgZm9udCBmYW1pbHkgY29uc2lz
dHMgb2YgbXVsdGlwbGUgQGZvbnQtZmFjZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGV2ZW50c1snbG9hZGluZyddIGlzIDEKK1BBU1MgZXZlbnRzWydsb2Fkc3RhcnQn
XSBpcyAyCitQQVNTIGV2ZW50c1snbG9hZCddIGlzIDIKK1BBU1MgZXZlbnRzWydlcnJvciddIGlz
IHVuZGVmaW5lZAorUEFTUyBldmVudHNbJ2xvYWRpbmdkb25lJ10gaXMgdW5kZWZpbmVkCitQQVNT
IGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIuY2hlY2tGb250KCcxMHB4IFRlc3RGb250JykgaXMg
dHJ1ZQorUEFTUyBldmVudHNbJ2xvYWRpbmdkb25lJ10gaXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFtaWxpZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9u
dGxvYWRlci1tdWx0aXBsZS1mYW1pbGllcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTYxYWMy
NzEzZTZmNTFlY2E1ZmY0NTc4MjMxOTVjMTM3ODE4OGE0NAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUt
ZmFtaWxpZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1Rlc3QgbG9hZCBldmVudHMg
Zm9yIGZvbnRsb2FkZXIubG9hZEZvbnQoKSB3aXRoIG11bHRpcGxlIGZvbnQgZmFtaWxpZXMuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGV2ZW50c1snbG9hZGluZyddIGlz
IDEKK1BBU1MgZXZlbnRzWydsb2Fkc3RhcnQnXSBpcyAyCitQQVNTIGV2ZW50c1snbG9hZCddIGlz
IDIKK1BBU1MgZXZlbnRzWydlcnJvciddIGlzIHVuZGVmaW5lZAorUEFTUyBldmVudHNbJ2xvYWRp
bmdkb25lJ10gaXMgdW5kZWZpbmVkCitQQVNTIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIuY2hl
Y2tGb250KCcxMHB4IFRlc3RGb250MSwgVGVzdEZvbnQyJykgaXMgdHJ1ZQorUEFTUyBldmVudHNb
J2xvYWRpbmdkb25lJ10gaXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2h0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvd2ViZm9udC9m
b250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNTA0
YjBlZjU5ZDM1MWQwY2NmOTI0OTM4YTFiMGNiMTc1MmFlZjhjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy93ZWJmb250L2ZvbnRsb2Fk
ZXItbG9hZGluZy1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3Qg
Zm9yIEZvbnRMb2FkZXIubG9hZGluZyBhdHRyaWJ1dGUKKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5jaGVja0ZvbnQoJzEwcHgg
VGVzdEZvbnQnKSBpcyBmYWxzZQorUEFTUyBkb2N1bWVudC53ZWJraXRGb250bG9hZGVyLmxvYWRp
bmcgaXMgZmFsc2UKK1BBU1MgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5sb2FkaW5nIGlzIHRy
dWUKK1BBU1MgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5jaGVja0ZvbnQoJzEwcHggVGVzdEZv
bnQnKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIubG9hZGluZyBpcyBm
YWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188984</attachid>
            <date>2013-02-18 21:41:57 -0800</date>
            <delta_ts>2013-03-08 00:29:59 -0800</delta_ts>
            <desc>Updated patch, fix test failure</desc>
            <filename>bug-98395-20130219143818.patch</filename>
            <type>text/plain</type>
            <size>126942</size>
            <attacher name="Kunihiko Sakamoto">ksakamoto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTFiOWEzNzBjMjgzODUy
YmM2NGI2MGU5NjU1N2JkYjAwYzgyOWNlZi4uODk5NWYwYjgxZjFkZmU4NjAyYjRjZTEyZWNjMjQ1
MjE1YTkyYTlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNiBAQAorMjAxMy0wMi0xNyAgS3Vu
aWhpa28gU2FrYW1vdG8gIDxrc2FrYW1vdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxl
bWVudCBGb250TG9hZGVyIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTgzOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdHdvIGludGVyZmFjZXMsIFdlYktpdEZv
bnRMb2FkZXIgYW5kIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LCBhbmQgYSBkb2N1bWVudCBh
dHRyaWJ1dGUgd2Via2l0Rm9udGxvYWRlciB0byBXZWJDb3JlLgorICAgICAgICBUaGUgd2Via2l0
Rm9udGxvYWRlciBpbXBsZW1lbnRzIHRoZSBGb250TG9hZGVyIGludGVyZmFjZSBkZWZpbmVkIGlu
IENTUyBGb250cyBNb2R1bGUgTGV2ZWwgMy5bMV0KKyAgICAgICAgVGhpcyBmZWF0dXJlIGlzIGJl
aGluZCB0aGUgRk9OVF9MT0FERVIgY29tcGlsZXIgZmxhZyBhbmQgY3VycmVudGx5IGVuYWJsZWQg
b25seSBmb3IgY2hyb21pdW0uCisKKyAgICAgICAgWzFdOiBodHRwOi8vZGV2LnczLm9yZy9jc3N3
Zy9jc3MzLWZvbnRzLyNmb250LWxvYWQtZXZlbnRzCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3Nz
L2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3IuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3Mv
Zm9udGxvYWRlci1ldmVudHMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MvZm9udGxvYWRl
ci1sb2FkaW5nZG9uZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9mb250bG9hZGVyLW11
bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3Nz
L2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3Mv
Zm9udGxvYWRlci1tdWx0aXBsZS1mYW1pbGllcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rl
c3RzL3dlYmZvbnQvZm9udGxvYWRlci1sb2FkaW5nLWF0dHJpYnV0ZS5odG1sCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDogQWRkaW5nIFdlYktpdEZvbnRMb2FkZXIvV2ViS2l0Q1NTRm9udEZh
Y2VMb2FkRXZlbnQgZmlsZXMuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3BwOiBEaXR0by4K
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOiBEaXR0by4KKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy5wcmk6IERpdHRvLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IERpdHRv
LgorICAgICAgICAqIFRhcmdldC5wcmk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTog
RGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IERpdHRvLgor
ICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6IERpdHRvLgorICAgICAg
ICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczogRGl0dG8uCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNEaWN0
aW9uYXJ5Ojpjb252ZXJ0VmFsdWUpOiBBZGQgY29udmVydFZhbHVlKCkgZm9yIENTU0ZvbnRGYWNl
UnVsZSwgRE9NRXJyb3IsIGFuZCBWb2lkQ2FsbGJhY2suCisgICAgICAgICogYmluZGluZ3MvanMv
SlNEaWN0aW9uYXJ5Lmg6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0RpY3Rpb25hcnku
Y3BwOiBBZGQgZ2V0KCkgZm9yIENTU0ZvbnRGYWNlUnVsZSwgRE9NRXJyb3IsIGFuZCBWb2lkQ2Fs
bGJhY2suCisgICAgICAgIChXZWJDb3JlOjpEaWN0aW9uYXJ5OjpnZXQpOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L0RpY3Rpb25hcnkuaDogRGl0dG8uCisgICAgICAgIChEaWN0aW9uYXJ5KToKKyAg
ICAgICAgKiBjc3MvQ1NTRm9udEZhY2UuY3BwOiBOb3RpZmllcyBGb250TG9hZGVyIGFzIGxvYWQg
cHJvZ3Jlc3Nlcy4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpmb250TG9hZGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpnZXRGb250RGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NGb250RmFjZTo6bm90aWZ5Rm9udExvYWRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NGb250RmFjZTo6bm90aWZ5TG9hZGluZ0RvbmUpOgorICAgICAgICAqIGNzcy9DU1NGb250
RmFjZS5oOiBBZGQgdHdvIG1lbWJlciB2YXJpYWJsZXMuIG1fcnVsZSBzdG9yZXMgQ1NTRm9udEZh
Y2VSdWxlIGZvciB0aGUgZm9udGZhY2UuIG1fbG9hZFN0YXRlIGhvbGRzIGN1cnJlbnQgc3RhdGUg
b2YgdGhlIGZvbnRmYWNlIGluIHRlcm1zIG9mIEZvbnRMb2FkZXIuCisgICAgICAgIChXZWJDb3Jl
OjpDU1NGb250RmFjZTo6Y3JlYXRlKTogVGFrZXMgYWRkaXRpb25hbCBwYXJhbWV0ZXIgb2YgdHlw
ZSBDU1NGb250RmFjZVJ1bGUuCisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZTo6bG9hZFN0
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpDU1NGb250RmFjZSk6CisgICAg
ICAgICogY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGw6IEFkZCBKU0dlbmVyYXRlVG9KU09iamVjdCBh
bmQgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0IGFzIEpTQyBiaW5kaW5nIG5lZWRzIHRoZW0uCisg
ICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ZvbnRGYWNlU291cmNlOjppc0RlY29kZUVycm9yKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpDU1NGb250RmFjZVNvdXJjZTo6ZW5zdXJlRm9udERhdGEpOiBBZGRlZC4KKyAgICAgICAgKiBj
c3MvQ1NTRm9udEZhY2VTb3VyY2UuaDoKKyAgICAgICAgKENTU0ZvbnRGYWNlU291cmNlKToKKyAg
ICAgICAgKiBjc3MvQ1NTRm9udFNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Zv
bnRTZWxlY3Rvcjo6YWRkRm9udEZhY2VSdWxlKTogUGFzcyBhIENTU0ZvbnRGYWNlUnVsZSB0byBD
U1NGb250RmFjZTo6Y3JlYXRlKCkuCisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U2VsZWN0b3I6
OmdldEZvbnREYXRhKTogTW92ZWQgbG9naWMgZm9yIGNyZWF0aW5nIGEgQ1NTU2VnbWVudGVkRm9u
dEZhY2UgdG8gYSBoZWxwZXIgZnVuY3Rpb24gZ2V0Rm9udEZhY2UoKS4KKyAgICAgICAgKFdlYkNv
cmU6OkNTU0ZvbnRTZWxlY3Rvcjo6Z2V0Rm9udEZhY2UpOiBBZGRlZC4KKyAgICAgICAgKiBjc3Mv
Q1NTRm9udFNlbGVjdG9yLmg6CisgICAgICAgICogY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlZ21lbnRlZEZvbnRGYWNlOjpmb250TG9hZGVkKTog
RmlyZXMgY2FsbGJhY2tzIHdoZW4gbG9hZCBpcyBjb21wbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpDU1NTZWdtZW50ZWRGb250RmFjZTo6aXNMb2FkaW5nKTogUmV0dXJucyB0cnVlIGlmIGFueSBm
b250cyBhcmUgc3RpbGwgbG9hZGluZy4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlZ21lbnRlZEZv
bnRGYWNlOjpjaGVja0ZvbnQpOiBSZXR1cm5zIHRydWUgaWYgYWxsIGZvbnRzIGFyZSBsb2FkZWQu
CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWdtZW50ZWRGb250RmFjZTo6bG9hZEZvbnQpOiBTdGFy
dHMgbG9hZCBieSBjYWxsaW5nIGdldEZvbnREYXRhKCkuCisgICAgICAgICogY3NzL0NTU1NlZ21l
bnRlZEZvbnRGYWNlLmg6CisgICAgICAgIChDU1NTZWdtZW50ZWRGb250RmFjZSk6IERlY2xhcmVz
IG5ldyBmdW5jdGlvbnMgYW5kIGEgdmVjdG9yIHRvIHN0b3JlIGNhbGxiYWNrcy4KKyAgICAgICAg
KExvYWRGb250Q2FsbGJhY2spOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRF
dmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTRm9udEZhY2VMb2Fk
RXZlbnQ6OldlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50Ojp+V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OmludGVyZmFjZU5h
bWUpOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50SW5pdCk6CisgICAgICAgIChXZWJL
aXRDU1NGb250RmFjZUxvYWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NGb250
RmFjZUxvYWRFdmVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU0ZvbnRG
YWNlTG9hZEV2ZW50OjpjcmVhdGVGb3JGb250RmFjZVJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZUZvckVycm9yKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50Ojpmb250ZmFjZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudDo6ZXJyb3IpOgorICAgICAgICAqIGNz
cy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGNzcy9X
ZWJLaXRGb250TG9hZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChMb2FkRm9udENhbGxiYWNrKTog
SG9sZHMgY2FsbGJhY2sgZnVuY3Rpb25zIG9mIEZvbnRMb2FkZXIubG9hZEZvbnQoKS4KKyAgICAg
ICAgKFdlYkNvcmU6OkxvYWRGb250Q2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpMb2FkRm9udENhbGxiYWNrOjpMb2FkRm9udENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OkxvYWRGb250Q2FsbGJhY2s6Om5vdGlmeUxvYWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpMb2Fk
Rm9udENhbGxiYWNrOjpub3RpZnlFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250
TG9hZGVyOjpXZWJLaXRGb250TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEZvbnRM
b2FkZXI6On5XZWJLaXRGb250TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEZvbnRM
b2FkZXI6OmV2ZW50VGFyZ2V0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9h
ZGVyOjplbnN1cmVFdmVudFRhcmdldERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9u
dExvYWRlcjo6aW50ZXJmYWNlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9h
ZGVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEZv
bnRMb2FkZXI6OmRpZExheW91dCk6IEZpcmVzIHBlbmRpbmcgZXZlbnRzIGFuZCBjYWxsYmFja3Mu
IFRoaXMgaXMgY2FsbGVkIHdoZW4gbGF5b3V0IGhhdmUgY29tcGxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViS2l0Rm9udExvYWRlcjo6c2NoZWR1bGVFdmVudCk6IERlZmVycyBldmVudCBkaXNw
YXRjaGluZyB1bnRpbCBsYXlvdXQgY29tcGxldGVzLgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0
Rm9udExvYWRlcjo6ZmlyZVBlbmRpbmdFdmVudHMpOiBEaXNwYXRjaGVzIHBlbmRpbmcgZXZlbnRz
LgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6YmVnaW5Gb250TG9hZGluZyk6
IFNjaGVkdWxlcyBsb2FkaW5nL2xvYWRzdGFydCBldmVudHMuIFRoaXMgaXMgY2FsbGVkIGZyb20g
Q1NTRm9udEZhY2UuCisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVyOjpmb250TG9h
ZGVkKTogU2NoZWR1bGVzIGxvYWQvbG9hZGluZ2RvbmUgZXZlbnRzLiBUaGlzIGlzIGNhbGxlZCBm
cm9tIENTU0ZvbnRGYWNlLgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Rm9udExvYWRlcjo6bG9h
ZEVycm9yKTogU2NoZWR1bGVzIGVycm9yL2xvYWRpbmdkb25lIGV2ZW50cy4gVGhpcyBpcyBjYWxs
ZWQgZnJvbSBDU1NGb250RmFjZS4KKyAgICAgICAgKFdlYkNvcmU6OldlYktpdEZvbnRMb2FkZXI6
Om5vdGlmeVdoZW5Gb250c1JlYWR5KTogSW1wbGVtZW50cyBmb250bG9hZGVyLm5vdGlmeVdoZW5G
b250c1JlYWR5KCkuCisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVyOjpsb2FkaW5n
RG9uZSk6IEZpcmVzIGNhbGxiYWNrcyBvZiBub3RpZnlXaGVuRm9udHNSZWFkeS4KKyAgICAgICAg
KFdlYkNvcmU6OldlYktpdEZvbnRMb2FkZXI6OmxvYWRGb250KTogSW1wbGVtZW50cyBmb250bG9h
ZGVyLmxvYWRGb250KCkuCisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVyOjpjaGVj
a0ZvbnQpOiBJbXBsZW1lbnRzIGZvbnRsb2FkZXIuY2hlY2tGb250KCkuCisgICAgICAgIChXZWJD
b3JlOjpXZWJLaXRGb250TG9hZGVyOjpyZXNvbHZlRm9udFN0eWxlKTogUGFyc2VzIHRoZSBnaXZl
biBmb250IHBhcmFtZXRlciB1c2luZyB0aGUgc3ludGF4IG9mIENTUyAnZm9udCcgcHJvcGVydHkg
YW5kIGNyZWF0ZXMgRm9udCBvYmplY3QuIFRoZSBsb2dpYyBpcyB0YWtlbiBmcm9tIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6c2V0Rm9udCgpLgorICAgICAgICAqIGNzcy9XZWJLaXRGb250TG9h
ZGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0Rm9udExvYWRlcik6CisgICAgICAgIChXZWJD
b3JlOjpXZWJLaXRGb250TG9hZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0
Rm9udExvYWRlcjo6bG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVy
Ojpkb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVyOjpyZWZFdmVu
dFRhcmdldCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRGb250TG9hZGVyOjpkZXJlZkV2ZW50
VGFyZ2V0KToKKyAgICAgICAgKiBjc3MvV2ViS2l0Rm9udExvYWRlci5pZGw6IEFkZGVkLgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9j
dW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtpdEZvbnRsb2FkZXIpOiBB
ZGRlZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKERvY3VtZW50KTogQWRk
IG1fd2Via2l0Rm9udGxvYWRlciBhbmQgd2Via2l0Rm9udGxvYWRlcigpLgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5pZGw6IEFkZCB3ZWJraXRGb250TG9hZGVyIGF0dHJpYnV0ZS4KKyAgICAgICAg
KiBkb20vRXZlbnROYW1lcy5oOiBBZGQgbG9hZGluZyBhbmQgbG9hZGluZ2RvbmUgZXZlbnRzLgor
ICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmluOiBBZGQgV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZl
bnQuCisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjogQWRkIFdlYktpdEZvbnRM
b2FkZXIuCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tzKTogQ2FsbHMgV2ViS2l0Rm9udExvYWRl
cjo6ZGlkTGF5b3V0KCkuCisKIDIwMTMtMDItMTggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgTWVyZ2UgaGFuZGxlU3BlY2lhbENoaWxkIGludG8gbGF5b3V0Qmxv
Y2tDaGlsZHJlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmNDA5ZmYwOTMxOWRmMDk5
Y2Q5MzY0ZWJkOGQ3MWZjNmZkZjE2NGJmLi44ZWNhNTQyMjM1OWE3YWE5YTQ0YTA2N2I3M2EwZWUz
MDRjYjk5YjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDEzLTAyLTE3ICBLdW5paGlrbyBTYWthbW90byAgPGtzYWthbW90b0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgSW1wbGVtZW50IEZvbnRMb2FkZXIgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODM5NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuYWJsZSBGb250TG9hZGVyIGludGVyZmFj
ZSBvbiBjaHJvbWl1bS4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6CisKIDIwMTMtMDItMTgg
IFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQuICBSb2xsZWQgQ2hyb21pdW0gREVQUyB0byByMTgzMTA1LiAgUmVxdWVzdGVkIGJ5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGRhNmQ2ZTVmYmI0NTIxNDg3ZmEzOGZiOTllYTU0Nzc5
MGQwNWRkOTYuLjRjMzgxYzMwYzc2ODczM2JlZTZiYmI3ODBhMDc2OTU3NmRjYzg1NGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0zMjgsNiArMzI4LDcgQEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVT
CiAgICAgY3NzL1N0eWxlU2hlZXRMaXN0LmlkbAogICAgIGNzcy9XZWJLaXRDU1NGaWx0ZXJSdWxl
LmlkbAogICAgIGNzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5pZGwKKyAgICBjc3MvV2ViS2l0Q1NT
Rm9udEZhY2VMb2FkRXZlbnQuaWRsCiAgICAgY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5pZGwK
ICAgICBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5pZGwKICAgICBjc3MvV2ViS2l0Q1NTTWF0
cml4LmlkbApAQCAtMzM1LDYgKzMzNiw3IEBAIHNldChXZWJDb3JlX0lETF9GSUxFUwogICAgIGNz
cy9XZWJLaXRDU1NSZWdpb25SdWxlLmlkbAogICAgIGNzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZS5pZGwKICAgICBjc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmlkbAorICAgIGNzcy9XZWJLaXRG
b250TG9hZGVyLmlkbAogCiAgICAgZG9tL0F0dHIuaWRsCiAgICAgZG9tL0JlZm9yZUxvYWRFdmVu
dC5pZGwKQEAgLTExMDcsNiArMTEwOSw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBjc3Mv
Vmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcAogICAgIGNzcy9XZWJLaXRDU1NGaWx0ZXJSdWxlLmNw
cAogICAgIGNzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5jcHAKKyAgICBjc3MvV2ViS2l0Q1NTRm9u
dEZhY2VMb2FkRXZlbnQuY3BwCiAgICAgY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAKICAg
ICBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAKICAgICBjc3MvV2ViS2l0Q1NTTWF0cml4
LmNwcApAQCAtMTExNSw2ICsxMTE4LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGNzcy9X
ZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAKICAgICBjc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUu
Y3BwCiAgICAgY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAKKyAgICBjc3MvV2ViS2l0Rm9u
dExvYWRlci5jcHAKIAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuY3BwCiAgICAgZG9tL0FuY2Vz
dG9yQ2hhaW5XYWxrZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKaW5kZXggMTk1YmVh
Y2Q1YmZmYzMxNjJmMTE5YWE0NTJhYmU0YTNhNDc3MzU5MS4uNWNmYTc2YWVmNzUwMjhkZWM5ZTY4
NmJhOTRkYzM0NzVlMTYxMzgzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAtNDky
LDYgKzQ5Miw5IEBACiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogI2luY2x1ZGUgIkpTV2ViS2l0
Q1NTRmlsdGVyVmFsdWUuY3BwIgogI2VuZGlmCisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorI2lu
Y2x1ZGUgIkpTV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIgorI2VuZGlmCiAjaW5jbHVk
ZSAiSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTS2V5
ZnJhbWVzUnVsZS5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAi
CkBAIC01MDAsNiArNTAzLDkgQEAKICNpbmNsdWRlICJKU1dlYktpdENTU01peEZ1bmN0aW9uVmFs
dWUuY3BwIgogI2VuZGlmCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NSZWdpb25SdWxlLmNwcCIKKyNp
ZiBFTkFCTEUoRk9OVF9MT0FERVIpCisjaW5jbHVkZSAiSlNXZWJLaXRGb250TG9hZGVyLmNwcCIK
KyNlbmRpZgogI2luY2x1ZGUgIkpTV2ViS2l0TmFtZWRGbG93LmNwcCIKICNpbmNsdWRlICJKU1dl
YktpdFBvaW50LmNwcCIKICNpbmNsdWRlICJKU1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAzNzcyMjUyZTUwNDYyOWZmNzMwZDIxNjMw
NjRhYjdhYzNmYzRiNjBjLi4wMTY1N2I3YWUyYzFkNjYyNTcyYzg4OTIwZTk4YjY3M2JjNDUxOWRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTIwNCw2ICsyMDQsNyBAQCBCSU5E
SU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9jc3MvU3R5bGVTaGVldExpc3QuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2Nzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvY3NzL1dlYktpdENTU0ZpbHRlclJ1bGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2Nzcy9XZWJL
aXRDU1NGb250RmFjZUxvYWRFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL1dlYktpdENT
U0tleWZyYW1lUnVsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL1dlYktpdENTU0tleWZyYW1l
c1J1bGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9XZWJLaXRDU1NNYXRyaXguaWRsIFwKQEAg
LTIxMSw2ICsyMTIsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9jc3MvV2Vi
S2l0Q1NTUmVnaW9uUnVsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL1dlYktpdENTU1RyYW5z
Zm9ybVZhbHVlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxl
LmlkbCBcCisgICAgJChXZWJDb3JlKS9jc3MvV2ViS2l0Rm9udExvYWRlci5pZGwgXAogICAgICQo
V2ViQ29yZSkvZG9tL0F0dHIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9CZWZvcmVMb2FkRXZl
bnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9DREFUQVNlY3Rpb24uaWRsIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaSBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLnByaQppbmRleCBkMTFiZTRkOWRiYTUzOTdlYjljNDFjZmFjMzllZmQ3MjEx
NGFmZmE4Li5mMTBlOWYwZDIyMDAxZDQ2ZTM2ZWI4MGQxNGFjMDc1ZGRmZDk0N2Y3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKKysrIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMucHJpCkBAIC0yMTIsNiArMjEyLDcgQEAgSURMX0JJTkRJTkdTICs9
IFwKICAgICAkJFBXRC9jc3MvU3R5bGVTaGVldExpc3QuaWRsIFwKICAgICAkJFBXRC9jc3MvV2Vi
S2l0Q1NTRmlsdGVyUnVsZS5pZGwgXAogICAgICQkUFdEL2Nzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1
ZS5pZGwgXAorICAgICQkUFdEL2Nzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5pZGwgXAog
ICAgICQkUFdEL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaWRsIFwKICAgICAkJFBXRC9jc3Mv
V2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5pZGwgXAogICAgICQkUFdEL2Nzcy9XZWJLaXRDU1NNYXRy
aXguaWRsIFwKQEAgLTIxOSw2ICsyMjAsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgICQkUFdE
L2Nzcy9XZWJLaXRDU1NSZWdpb25SdWxlLmlkbCBcCiAgICAgJCRQV0QvY3NzL1dlYktpdENTU1Ry
YW5zZm9ybVZhbHVlLmlkbCBcCiAgICAgJCRQV0QvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5p
ZGwgXAorICAgICQkUFdEL2Nzcy9XZWJLaXRGb250TG9hZGVyLmlkbCBcCiAgICAgJCRQV0QvZG9t
L0F0dHIuaWRsIFwKICAgICAkJFBXRC9kb20vQmVmb3JlTG9hZEV2ZW50LmlkbCBcCiAgICAgJCRQ
V0QvZG9tL0NoYXJhY3RlckRhdGEuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmlu
ZGV4IDY3MTk2ZDQ2YWFhMDQyZTE3YmRjNGZjYzU1ZGJkZTE5MDQxODk4ODMuLjgyYTRkZjJmOTcy
MzFhZjkwNWRlMDgwZmNkZDUxMmI0OGM1N2Y3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQpAQCAtODExLDYgKzgxMSw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU0ZpbHRlclJ1bGUuaCBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU0ZpbHRlclZhbHVlLmNwcCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1dlYktpdENTU0ZpbHRlclZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1dlYktpdENTU0tleWZyYW1lUnVsZS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAgXApAQCAtODI1LDYgKzgyNyw4IEBAIHdl
YmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktp
dENTU1RyYW5zZm9ybVZhbHVlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRD
U1NWaWV3cG9ydFJ1bGUuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NT
Vmlld3BvcnRSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRGb250TG9h
ZGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdEZvbnRMb2FkZXIuaCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdE5hbWVkRmxvdy5jcHAgXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXROYW1lZEZsb3cuaCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1dlYktpdFBvaW50LmNwcCBcCkBAIC0xMzUyLDYgKzEzNTYsNyBAQCBkb21fYmlu
ZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL2Nzcy9TdHlsZVNoZWV0TGlzdC5pZGwgXAogCSQo
V2ViQ29yZSkvY3NzL1dlYktpdENTU0ZpbHRlclJ1bGUuaWRsIFwKIAkkKFdlYkNvcmUpL2Nzcy9X
ZWJLaXRDU1NGaWx0ZXJWYWx1ZS5pZGwgXAorCSQoV2ViQ29yZSkvY3NzL1dlYktpdENTU0ZvbnRG
YWNlTG9hZEV2ZW50LmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxl
LmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5pZGwgXAogCSQo
V2ViQ29yZSkvY3NzL1dlYktpdENTU01hdHJpeC5pZGwgXApAQCAtMTM1OSw2ICsxMzY0LDcgQEAg
ZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9jc3MvV2ViS2l0Q1NTUmVnaW9uUnVs
ZS5pZGwgXAogCSQoV2ViQ29yZSkvY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmlkbCBcCiAJ
JChXZWJDb3JlKS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmlkbCBcCisJJChXZWJDb3JlKS9j
c3MvV2ViS2l0Rm9udExvYWRlci5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL0F0dHIuaWRsIFwKIAkk
KFdlYkNvcmUpL2RvbS9CZWZvcmVMb2FkRXZlbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9DREFU
QVNlY3Rpb24uaWRsIFwKQEAgLTI3MjUsNiArMjczMSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0ZpbHRlclJ1bGUuaCBcCiAJU291cmNlL1dl
YkNvcmUvY3NzL1dlYktpdENTU0ZpbHRlclZhbHVlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3Nz
L1dlYktpdENTU0ZpbHRlclZhbHVlLmggXAorCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NG
b250RmFjZUxvYWRFdmVudC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGb250
RmFjZUxvYWRFdmVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVS
dWxlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAgXApAQCAtMjc0
MSw2ICsyNzQ5LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9jc3Mv
V2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENT
U1ZpZXdwb3J0UnVsZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NWaWV3cG9y
dFJ1bGUuaCBcCisJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdEZvbnRMb2FkZXIuY3BwIFwKKwlT
b3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Rm9udExvYWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9k
b20vQWN0aXZlRE9NT2JqZWN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9i
amVjdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQW5jZXN0b3JDaGFpbldhbGtlci5jcHAgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKaW5kZXggYTMzZWQzNWFjNGFkY2U1Yjk1NmI0MGY4NDgyNWRkZjExYjdiODM0MS4u
NmFkNmUwMDZiMWI1N2M4YzNkZGVhOGZhODBmY2YxZWY2YTY5NjYyZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBA
IC0zNDIsNiArMzQyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgY3NzL1dlYktpdENTU0FycmF5RnVu
Y3Rpb25WYWx1ZS5jcHAgXAogICAgIGNzcy9XZWJLaXRDU1NGaWx0ZXJSdWxlLmNwcCBcCiAgICAg
Y3NzL1dlYktpdENTU0ZpbHRlclZhbHVlLmNwcCBcCisgICAgY3NzL1dlYktpdENTU0ZvbnRGYWNl
TG9hZEV2ZW50LmNwcCBcCiAgICAgY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAgXAogICAg
IGNzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcCBcCiAgICAgY3NzL1dlYktpdENTU01hdHJp
eC5jcHAgXApAQCAtMzUxLDYgKzM1Miw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGNzcy9XZWJLaXRD
U1NTaGFkZXJWYWx1ZS5jcHAgXAogICAgIGNzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAg
XAogICAgIGNzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwIFwKKyAgICBjc3MvV2ViS2l0Rm9u
dExvYWRlci5jcHAgXAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuY3BwIFwKICAgICBkb20vQW5j
ZXN0b3JDaGFpbldhbGtlci5jcHAgXAogICAgIGRvbS9BdHRyLmNwcCBcCkBAIC0xNTc5LDYgKzE1
ODEsNyBAQCBIRUFERVJTICs9IFwKICAgICBjc3MvV2ViS2l0Q1NTQXJyYXlGdW5jdGlvblZhbHVl
LmggXAogICAgIGNzcy9XZWJLaXRDU1NGaWx0ZXJSdWxlLmggXAogICAgIGNzcy9XZWJLaXRDU1NG
aWx0ZXJWYWx1ZS5oIFwKKyAgICBjc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaCBcCiAg
ICAgY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5oIFwKICAgICBjc3MvV2ViS2l0Q1NTS2V5ZnJh
bWVzUnVsZS5oIFwKICAgICBjc3MvV2ViS2l0Q1NTTWF0cml4LmggXApAQCAtMTU4OCw2ICsxNTkx
LDcgQEAgSEVBREVSUyArPSBcCiAgICAgY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmggXAogICAg
IGNzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIFwKICAgICBjc3MvV2ViS2l0Q1NTVmlld3Bv
cnRSdWxlLmggXAorICAgIGNzcy9XZWJLaXRGb250TG9hZGVyLmggXAogICAgIGRvbS9BY3RpdmVE
T01PYmplY3QuaCBcCiAgICAgZG9tL0FuY2VzdG9yQ2hhaW5XYWxrZXIuaCBcCiAgICAgZG9tL0F0
dHIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNzg4ZmIzOGYyOTI3YmQwZDFhNGYwMzkwMjUwMGY1
YmRkMjFlYjE3NS4uZjY4MGZlM2EzMDk5MjZhZTM4YTI0NTIzNDc5OWJhZjE5NzFmNzIxMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMTgzLDYgKzE4Myw3IEBACiAgICAgICAgICAgICAnY3NzL1N0eWxl
U2hlZXRMaXN0LmlkbCcsCiAgICAgICAgICAgICAnY3NzL1dlYktpdENTU0ZpbHRlclJ1bGUuaWRs
JywKICAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaWRsJywKKyAgICAgICAg
ICAgICdjc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsJywKICAgICAgICAgICAgICdj
c3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmlkbCcsCiAgICAgICAgICAgICAnY3NzL1dlYktpdENT
U0tleWZyYW1lc1J1bGUuaWRsJywKICAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTTWF0cml4Lmlk
bCcsCkBAIC0xOTAsNiArMTkxLDcgQEAKICAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTUmVnaW9u
UnVsZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5pZGwn
LAogICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaWRsJywKKyAgICAgICAg
ICAgICdjc3MvV2ViS2l0Rm9udExvYWRlci5pZGwnLAogICAgICAgICAgICAgJ2RvbS9BdHRyLmlk
bCcsCiAgICAgICAgICAgICAnZG9tL0F1dG9jb21wbGV0ZUVycm9yRXZlbnQuaWRsJywKICAgICAg
ICAgICAgICdkb20vQmVmb3JlTG9hZEV2ZW50LmlkbCcsCkBAIC0xNjI1LDYgKzE2MjcsOCBAQAog
ICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NBcnJheUZ1bmN0aW9uVmFsdWUuaCcsCiAgICAgICAg
ICAgICAnY3NzL1dlYktpdENTU0ZpbHRlclJ1bGUuY3BwJywKICAgICAgICAgICAgICdjc3MvV2Vi
S2l0Q1NTRmlsdGVyVmFsdWUuY3BwJywKKyAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTRm9udEZh
Y2VMb2FkRXZlbnQuY3BwJywKKyAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2Fk
RXZlbnQuaCcsCiAgICAgICAgICAgICAnY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAnLAog
ICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCcsCiAgICAgICAgICAgICAn
Y3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwJywKQEAgLTE2NDIsNiArMTY0Niw4IEBACiAg
ICAgICAgICAgICAnY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCcsCiAgICAgICAgICAg
ICAnY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5oJywKICAgICAgICAgICAgICdjc3MvV2ViS2l0
Q1NTVmlld3BvcnRSdWxlLmNwcCcsCisgICAgICAgICAgICAnY3NzL1dlYktpdEZvbnRMb2FkZXIu
aCcsCisgICAgICAgICAgICAnY3NzL1dlYktpdEZvbnRMb2FkZXIuY3BwJywKICAgICAgICAgICAg
ICdlZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwJywKICAgICAgICAgICAgICdl
ZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuaCcsCiAgICAgICAgICAgICAnZWRpdGlu
Zy9BcHBlbmROb2RlQ29tbWFuZC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagppbmRleCAzNjMyNGJjYTlhOGI4YjQ0OGZjNjBhZjYzOGUxMzI0MTMw
YzgwYjk4Li5iYmI4NWM5YjRhNTZiOGU0NTc1OTFiMmJlYjcyMzE0NWMxYTE2ZTE0IDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjMwOTUsNiAr
MjMwOTUsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCIKKwkJCQk+CisJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdENTU0ZvbnRG
YWNlTG9hZEV2ZW50LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2
ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KQEAgLTIzNDMxLDYgKzIzNDg3LDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgog
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRGb250TG9hZGVyLmNwcCIKKwkJ
CQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZM
aXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19B
bGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxU
b29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rp
b258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxU
b29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xK
U1dlYktpdEZvbnRMb2FkZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJl
bGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU1dlYktpdE5hbWVkRmxvdy5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgpAQCAtMzg3OTEsNiArMzg5MDMsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJ
CQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2
ZW50LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cY3NzXFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmgiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xXZWJLaXRDU1NLZXlmcmFtZVJ1bGUu
Y3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTM4ODYyLDYgKzM4OTgyLDE0IEBACiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlxjc3NcV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmgiCiAJCQkJPgogCQkJPC9G
aWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xXZWJLaXRGb250TG9hZGVy
LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
Y3NzXFdlYktpdEZvbnRMb2FkZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CiAJCTwvRmlsdGVyPgog
CQk8RmlsdGVyCiAJCQlOYW1lPSJyZW5kZXJpbmciCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBhYzRjMDNmY2MzMzFjYjNlNjNmNzQ1NDRj
MDdkOWQ5NzJiNzFhYzVmLi4wOTMxMWQ0NDI1ZDIxOGRlZjkxNTc3NzY0YmJkNzhkYmNlNTUzNzMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oK
QEAgLTE2NjcsNiArMTY2NywxMCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIj4KICAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNjkxLDYgKzE2OTUs
MTAgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAg
ICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0Rm9udExv
YWRlci5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRO
YW1lZEZsb3cuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CkBAIC0yOTczLDYgKzI5ODEsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
Y3NzXFZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxjc3NcV2ViS2l0Q1NTQXJyYXlGdW5jdGlvblZhbHVlLmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5jcHAiIC8+CisgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cY3NzXFdlYktpdENTU0tleWZyYW1lUnVsZS5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTS2V5ZnJhbWVz
UnVsZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTTWF0
cml4LmNwcCIgLz4KQEAgLTI5ODIsNiArMjk5MSw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxjc3NcV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cY3NzXFdlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAiIC8+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Rm9udExvYWRlci5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcQXV0b1RhYmxlTGF5b3V0LmNwcCI+
CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtNjI0
MiwxMCArNjI1MiwxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdENTU0Zp
bHRlclZhbHVlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0Q1NTS2V5
ZnJhbWVSdWxlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0Q1NTS2V5
ZnJhbWVzUnVsZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdENTU0Zv
bnRGYWNlTG9hZEV2ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0
Q1NTTWF0cml4LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0Q1NTTWl4
RnVuY3Rpb25WYWx1ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdENT
U1JlZ2lvblJ1bGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRDU1NU
cmFuc2Zvcm1WYWx1ZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdEZv
bnRMb2FkZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXROYW1lZEZs
b3cuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRQb2ludC5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdFRyYW5zaXRpb25FdmVudC5oIiAvPgpA
QCAtNzI1OCw2ICs3MjcwLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xWaWV3
cG9ydFN0eWxlUmVzb2x2ZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xX
ZWJLaXRDU1NBcnJheUZ1bmN0aW9uVmFsdWUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGNzc1xXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cY3NzXFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXFdlYktpdENTU01hdHJpeC5oIiAvPgpAQCAtNzI2Nyw2
ICs3MjgwLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NTVkdE
b2N1bWVudFZhbHVlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0
Q1NTVHJhbnNmb3JtVmFsdWUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xX
ZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNz
c1xXZWJLaXRGb250TG9hZGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5k
ZXJpbmdcQXV0b1RhYmxlTGF5b3V0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxy
ZW5kZXJpbmdcQmlkaVJ1bi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVy
aW5nXGJyZWFrX2xpbmVzLmgiIC8+CkBAIC04NzA2LDQgKzg3MjAsNCBAQAogICA8SW1wb3J0IFBy
b2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgogICA8SW1w
b3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgogICA8L0ltcG9ydEdyb3VwPgotPC9Q
cm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvUHJvamVjdD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVy
cyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVy
cwppbmRleCA3NzI3NjYyNzZiNzJiMGI4ZDUzOTY0MWViOTA2NWZmOWVmZmQxNTFlLi5jZTYwZWUy
YTg5M2Y1ZTg1OTdkNWRlNmQ3YmI2OTUwYjc3OWFlMTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC0xNTUx
LDYgKzE1NTEsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdENTU0ZpbHRl
clZhbHVlLmNwcCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAg
PC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0Q1NTRm9udEZh
Y2VMb2FkRXZlbnQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4K
KyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRDU1NL
ZXlmcmFtZVJ1bGUuY3BwIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4K
ICAgICA8L0NsQ29tcGlsZT4KQEAgLTE1NjksNiArMTU3Miw5IEBACiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEpTV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIj4KICAgICAgIDxGaWx0ZXI+
RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXNcSlNXZWJLaXRGb250TG9hZGVyLmNwcCI+CisgICAgICA8RmlsdGVyPkRlcml2
ZWRTb3VyY2VzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTV2ViS2l0TmFtZWRGbG93LmNwcCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3Vy
Y2VzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0zNzk1LDYgKzM4MDEsOSBAQAogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cY3NzXFdlYktpdENTU0ZpbHRlclZhbHVlLmNwcCI+CiAg
ICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cY3NzXFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCI+CisgICAg
ICA8RmlsdGVyPmNzczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cY3NzXFdlYktpdENTU0tleWZyYW1lUnVsZS5jcHAiPgogICAgICAgPEZpbHRl
cj5jc3M8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM4MjIsNiArMzgzMSw5IEBACiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCI+
CiAgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cY3NzXFdlYktpdEZvbnRMb2FkZXIuY3BwIj4KKyAgICAgIDxGaWx0
ZXI+Y3NzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxyZW5kZXJpbmdcQXV0b1RhYmxlTGF5b3V0LmNwcCI+CiAgICAgICA8RmlsdGVyPnJlbmRl
cmluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtODEwNiw2ICs4MTE4LDkgQEAKICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIj4KICAgICAg
IDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oIj4KKyAg
ICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCI+CiAgICAg
ICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC04
MTI0LDYgKzgxMzksOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdENTU1Ry
YW5zZm9ybVZhbHVlLmgiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgog
ICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdEZvbnRM
b2FkZXIuaCI+CisgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CisgICAgPC9D
bEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0TmFtZWRGbG93Lmgi
PgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgpAQCAtMTA1NTcsNiArMTA1NzUsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3Nz
XFdlYktpdENTU0ZpbHRlclZhbHVlLmgiPgogICAgICAgPEZpbHRlcj5jc3M8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xXZWJLaXRDU1NG
b250RmFjZUxvYWRFdmVudC5oIj4KKyAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CisgICAgPC9D
bEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcV2ViS2l0Q1NTS2V5ZnJh
bWVSdWxlLmgiPgogICAgICAgPEZpbHRlcj5jc3M8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4K
QEAgLTEwNTg0LDYgKzEwNjA1LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xX
ZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCI+CiAgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXFdlYktpdEZvbnRM
b2FkZXIuaCI+CisgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXEF1dG9UYWJsZUxheW91dC5oIj4K
ICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0x
NTI5MSw0ICsxNTMxNSw0IEBACiAgICAgICA8RmlsdGVyPnJlbmRlcmluZzwvRmlsdGVyPgogICAg
IDwvQ3VzdG9tQnVpbGRTdGVwPgogICA8L0l0ZW1Hcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCis8L1Byb2plY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmM2NWQ2NDNlMmI0YzVlYzFiNTM2
MDAzYjdjZjQ0NjZjM2VmOTYwOC4uOTcxMjMwZWM0MTY4ZjgzOGQwZjljYTA5ZmNlMDYxOGYwZjA0
MjBjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTA0OSw2ICsxMDQ5LDE2IEBACiAJCTNGRkZGOUE5MTU5RDlBNTUwMDIwQkJE
NSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDNGRkZGOUE3MTU5RDlBNTUwMDIwQkJENSAvKiBXZWJLaXRDU1NW
aWV3cG9ydFJ1bGUuaCAqLzsgfTsKIAkJM0ZGRkY5QUQxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdw
b3J0U3R5bGVSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzRkZGRjlBQjE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29s
dmVyLmNwcCAqLzsgfTsKIAkJM0ZGRkY5QUUxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5
bGVSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gM0ZGRkY5QUMxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5oICov
OyB9OworCQk0MDlFQkRCMTE2QjdFRTcxMDBDQkEzRkMgLyogV2ViS2l0Q1NTRm9udEZhY2VMb2Fk
RXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQw
OUVCREFFMTZCN0VFMjgwMENCQTNGQyAvKiBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oICov
OyB9OworCQk0MDlFQkRCMjE2QjdFRTc0MDBDQkEzRkMgLyogV2ViS2l0Q1NTRm9udEZhY2VMb2Fk
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDA5RUJEQUMxNkI3RUUxQzAwQ0JBM0ZDIC8qIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNw
cCAqLzsgfTsKKwkJNDA5RUJEQjQxNkI3RUU4NzAwQ0JBM0ZDIC8qIFdlYktpdEZvbnRMb2FkZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5RUJE
QjMxNkI3RUU4NzAwQ0JBM0ZDIC8qIFdlYktpdEZvbnRMb2FkZXIuY3BwICovOyB9OworCQk0MDlF
QkRCNjE2QjdFRUEzMDBDQkEzRkMgLyogV2ViS2l0Rm9udExvYWRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5RUJEQjUxNkI3RUVBMzAwQ0JBM0ZD
IC8qIFdlYktpdEZvbnRMb2FkZXIuaCAqLzsgfTsKKwkJNDA5RUJEQkExNkI3RjA0NTAwQ0JBM0ZD
IC8qIEpTV2ViS2l0Rm9udExvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MDlFQkRCOTE2QjdGMDQ1MDBDQkEzRkMgLyogSlNXZWJLaXRGb250
TG9hZGVyLmNwcCAqLzsgfTsKKwkJNDA5RUJEQzAxNkI3RjM4RTAwQ0JBM0ZDIC8qIEpTV2ViS2l0
Rm9udExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDA5RUJEQkYxNkI3RjM4RTAwQ0JBM0ZDIC8qIEpTV2ViS2l0Rm9udExvYWRlci5oICovOyB9
OworCQk0MDlFQkRDMzE2QjdGM0E2MDBDQkEzRkMgLyogSlNXZWJLaXRDU1NGb250RmFjZUxvYWRF
dmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5
RUJEQzIxNkI3RjNBNjAwQ0JBM0ZDIC8qIEpTV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaCAq
LzsgfTsKKwkJNDA5RUJEQzUxNkI3RjNDQTAwQ0JBM0ZDIC8qIEpTV2ViS2l0Q1NTRm9udEZhY2VM
b2FkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDA5RUJEQzQxNkI3RjNDQTAwQ0JBM0ZDIC8qIEpTV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZl
bnQuY3BwICovOyB9OworCQk0MEVDQUU3RTE2QjhCNjcyMDBDMzYxMDMgLyogSlNET01FcnJvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDBFQ0FFN0Qx
NkI4QjY3MjAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuaCAqLzsgfTsKKwkJNDBFQ0FFODExNkI4QjY4
QTAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDBFQ0FFODAxNkI4QjY4QTAwQzM2MTAzIC8qIEpTRE9NRXJyb3Iu
Y3BwICovOyB9OwogCQk0MTAwMkNDRDBGNjZFREVGMDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25D
YWxsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAw
MkNDQjBGNjZFREVGMDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmggKi87IH07CiAJCTQx
MDAyQ0NFMEY2NkVERUYwMDlFNjYwRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDJDQ0MwRjY2RURFRjAw
OUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAgKi87IH07CiAJCTQxMEI3RTcyMTA0NUZB
QjAwMEQ4MjI0RiAvKiBKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyog
SlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovOyB9OwpAQCAtODQyNyw2ICs4NDM3LDE4IEBACiAJ
CTNGRkZGOUE3MTU5RDlBNTUwMDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGRkZGOUFCMTU5RDlCMDYwMDIwQkJENSAvKiBW
aWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJM0ZGRkY5QUMxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQUMxNkI3RUUxQzAwQ0JBM0ZD
IC8qIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQUUxNkI3RUUyODAwQ0JBM0ZDIC8qIFdlYktpdENT
U0ZvbnRGYWNlTG9hZEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQwOUVCREFGMTZCN0VFNTcwMENCQTNGQyAvKiBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MDlFQkRCMzE2QjdFRTg3MDBDQkEzRkMg
LyogV2ViS2l0Rm9udExvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJLaXRGb250TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDA5RUJEQjUxNkI3RUVBMzAwQ0JBM0ZDIC8qIFdlYktpdEZvbnRMb2FkZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0Rm9udExvYWRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MDlFQkRCNzE2QjdFRUJBMDBDQkEzRkMgLyogV2ViS2l0Rm9udExv
YWRlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0Rm9udExvYWRlci5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQwOUVCREI5MTZCN0YwNDUwMENCQTNGQyAvKiBK
U1dlYktpdEZvbnRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNXZWJLaXRGb250TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDA5RUJEQkYxNkI3RjM4RTAwQ0JBM0ZDIC8qIEpTV2ViS2l0Rm9udExvYWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYktpdEZvbnRMb2FkZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQzIxNkI3RjNBNjAwQ0JBM0ZDIC8qIEpTV2ViS2l0
Q1NTRm9udEZhY2VMb2FkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MDlFQkRDNDE2QjdGM0NBMDBDQkEzRkMgLyogSlNXZWJLaXRDU1NGb250RmFjZUxvYWRF
dmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdENT
U0ZvbnRGYWNlTG9hZEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDBF
Q0FFN0QxNkI4QjY3MjAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNET01FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MEVDQUU4MDE2QjhCNjhBMDBDMzYxMDMgLyogSlNET01FcnJvci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDEwMDJDQ0IwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9u
Q2FsbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRGdW5jdGlvbkNh
bGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwMDJDQ0MwRjY2RURFRjAwOUU2
NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTY3JpcHRGdW5jdGlvbkNhbGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZXNzYWdlRXZlbnRD
dXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYxMDgsMTAgKzE2MTMw
LDE2IEBACiAJCQkJQThEMDZCMzcwQTI2NURDRDAwNUU3MjAzIC8qIEhUTUxOYW1lcy5oICovLAog
CQkJCTUzRTI5RTVDMTY3QThBMTkwMDU4NkQzRCAvKiBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVk
LmNwcCAqLywKIAkJCQk1M0UyOUU1RDE2N0E4QTE5MDA1ODZEM0QgLyogSW50ZXJuYWxTZXR0aW5n
c0dlbmVyYXRlZC5oICovLAorCQkJCTQwRUNBRTgwMTZCOEI2OEEwMEMzNjEwMyAvKiBKU0RPTUVy
cm9yLmNwcCAqLywKKwkJCQk0MEVDQUU3RDE2QjhCNjcyMDBDMzYxMDMgLyogSlNET01FcnJvci5o
ICovLAogCQkJCTkzOEU2NUY2MDlGMDk4NUQwMDhBNDhFQyAvKiBKU0hUTUxFbGVtZW50V3JhcHBl
ckZhY3RvcnkuY3BwICovLAogCQkJCTkzOEU2NUYwMDlGMDk4NDAwMDhBNDhFQyAvKiBKU0hUTUxF
bGVtZW50V3JhcHBlckZhY3RvcnkuaCAqLywKIAkJCQk4NTc0RDFGMTBBREU2MTIyMDA0Q0JBMTEg
LyogSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwICovLAogCQkJCTg1NzREMUYyMEFERTYx
MjIwMDRDQkExMSAvKiBKU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5oICovLAorCQkJCTQwOUVC
REM0MTZCN0YzQ0EwMENCQTNGQyAvKiBKU1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCAq
LywKKwkJCQk0MDlFQkRDMjE2QjdGM0E2MDBDQkEzRkMgLyogSlNXZWJLaXRDU1NGb250RmFjZUxv
YWRFdmVudC5oICovLAorCQkJCTQwOUVCREI5MTZCN0YwNDUwMENCQTNGQyAvKiBKU1dlYktpdEZv
bnRMb2FkZXIuY3BwICovLAorCQkJCTQwOUVCREJGMTZCN0YzOEUwMENCQTNGQyAvKiBKU1dlYktp
dEZvbnRMb2FkZXIuaCAqLywKIAkJCQlGQUJFNzJGQjEwNTlDMjExMDBEOTk5REQgLyogTWF0aE1M
RWxlbWVudEZhY3RvcnkuY3BwICovLAogCQkJCTQ0QTI4QUFCMTJERkI4QUMwMEFFOTIzQiAvKiBN
YXRoTUxFbGVtZW50RmFjdG9yeS5oICovLAogCQkJCUZBQkU3MkZDMTA1OUMyMTEwMEQ5OTlERCAv
KiBNYXRoTUxOYW1lcy5jcHAgKi8sCkBAIC0yMjE1NSw2ICsyMjE4Myw5IEBACiAJCQkJMzEwNjAz
NkMxNDMyN0QyRTAwQUJGNEJBIC8qIFdlYktpdENTU0ZpbHRlclZhbHVlLmNwcCAqLywKIAkJCQkz
MTA2MDM2RDE0MzI3RDJFMDBBQkY0QkEgLyogV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCAqLywKIAkJ
CQkzMTA2MDM2RTE0MzI3RDJFMDBBQkY0QkEgLyogV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaWRsICov
LAorCQkJCTQwOUVCREFDMTZCN0VFMUMwMENCQTNGQyAvKiBXZWJLaXRDU1NGb250RmFjZUxvYWRF
dmVudC5jcHAgKi8sCisJCQkJNDA5RUJEQUUxNkI3RUUyODAwQ0JBM0ZDIC8qIFdlYktpdENTU0Zv
bnRGYWNlTG9hZEV2ZW50LmggKi8sCisJCQkJNDA5RUJEQUYxNkI3RUU1NzAwQ0JBM0ZDIC8qIFdl
YktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbCAqLywKIAkJCQkzMTI4OEU2RTBFMzAwNUQ2MDAz
NjE5QUUgLyogV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCAqLywKIAkJCQkzMTI4OEU2RjBFMzAw
NUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggKi8sCiAJCQkJMzE2RkUwOTEw
RTZDQ0Q3RjAwQkY2MDg4IC8qIFdlYktpdENTU0tleWZyYW1lUnVsZS5pZGwgKi8sCkBAIC0yMjE3
OSw2ICsyMjIxMCw5IEBACiAJCQkJM0ZGRkY5QTYxNTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENT
U1ZpZXdwb3J0UnVsZS5jcHAgKi8sCiAJCQkJM0ZGRkY5QTcxNTlEOUE1NTAwMjBCQkQ1IC8qIFdl
YktpdENTU1ZpZXdwb3J0UnVsZS5oICovLAogCQkJCTNGMkIzM0UzMTY1QUJEMzUwMEUzOTg3QyAv
KiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaWRsICovLAorCQkJCTQwOUVCREIzMTZCN0VFODcwMENC
QTNGQyAvKiBXZWJLaXRGb250TG9hZGVyLmNwcCAqLywKKwkJCQk0MDlFQkRCNTE2QjdFRUEzMDBD
QkEzRkMgLyogV2ViS2l0Rm9udExvYWRlci5oICovLAorCQkJCTQwOUVCREI3MTZCN0VFQkEwMENC
QTNGQyAvKiBXZWJLaXRGb250TG9hZGVyLmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0gY3NzOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI0ODczLDYgKzI0OTA3LDcgQEAKIAkJCQkx
QUMyMjYwRDBEQjY5RjE5MDA4OUI2NjkgLyogSlNET01BcHBsaWNhdGlvbkNhY2hlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5M0I3MEQ2NDA5RUIwQzdDMDA5RDg0NjggLyogSlNET01CaW5kaW5nLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzYwRDdDMTBEMjlBNDYzMDBCOTkxOEYgLyogSlNET01Db3Jl
RXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MEVDQUU3RTE2QjhCNjcyMDBDMzYxMDMg
LyogSlNET01FcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODk4Nzg1QTUxMjJDQTJBNzAwM0FB
QkRBIC8qIEpTRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODkzQzQ4MzcxMjQ5
NTQ3MjAwMkIzRDg2IC8qIEpTRE9NRmlsZVN5c3RlbVN5bmMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTJFMDg4OEQ1MTE0ODg0OEEwMEFGNDI2NSAvKiBKU0RPTUZvcm1EYXRhLmggaW4gSGVhZGVycyAq
LywKQEAgLTI1MzE1LDYgKzI1MzUwLDcgQEAKIAkJCQkzMUMwRkYzRTBFNENFRkFDMDA3RDZGRTUg
LyogSlNXZWJLaXRBbmltYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTJFOEFFMzgx
NkE0OTg0MDAwNkJCM0FBIC8qIEpTV2ViS2l0Q1NTRmlsdGVyUnVsZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzEwNjAzNzUxNDMyODE5QzAwQUJGNEJBIC8qIEpTV2ViS2l0Q1NTRmlsdGVyVmFsdWUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQwOUVCREMzMTZCN0YzQTYwMENCQTNGQyAvKiBKU1dlYktp
dENTU0ZvbnRGYWNlTG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA3MjBFNkND
QkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTMxNkZFMDc0MEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1lc1J1bGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQ5ODM5MTQwMEYxRTc2NzUwMEMyMzc4MiAvKiBKU1dlYktp
dENTU01hdHJpeC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTMyMiw2ICsyNTM1OCw3IEBACiAJCQkJ
OEFEMEE1OTUxNEM4ODMzNjAwMEQ4M0M1IC8qIEpTV2ViS2l0Q1NTUmVnaW9uUnVsZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzE2MTFFNUIwRTFDNERFMDAwRjZBNTc5IC8qIEpTV2ViS2l0Q1NTVHJh
bnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTNGMkIzM0VGMTY1QUYxNTYwMEUzOTg3
QyAvKiBKU1dlYktpdENTU1ZpZXdwb3J0UnVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDA5RUJE
QzAxNkI3RjM4RTAwQ0JBM0ZDIC8qIEpTV2ViS2l0Rm9udExvYWRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDk0QkQ3OUUwRjU1Qzk0QzAwNzQ3ODI4IC8qIEpTV2ViS2l0UG9pbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTMxQzBGRjQwMEU0Q0VGQUMwMDdENkZFNSAvKiBKU1dlYktpdFRyYW5zaXRp
b25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNURBNUUwRkQxMDJCOTUzODAwMDg4Q0Y5IC8q
IEpTV2ViU29ja2V0LmggaW4gSGVhZGVycyAqLywKQEAgLTI2NDkyLDYgKzI2NTI5LDcgQEAKIAkJ
CQkxNTBCOTIzQTE1RjA4REM0MDBFMTA5ODYgLyogV2ViS2l0Q1NTQXJyYXlGdW5jdGlvblZhbHVl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMkU4QUUzMTE2QTQ4RTFDMDA2QkIzQUEgLyogV2ViS2l0
Q1NTRmlsdGVyUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEwNjAzNzAxNDMyN0QyRTAwQUJG
NEJBIC8qIFdlYktpdENTU0ZpbHRlclZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MDlFQkRC
MTE2QjdFRTcxMDBDQkEzRkMgLyogV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTMxMjg4RTczMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFt
ZVJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMjg4RTc1MEUzMDA1RDYwMDM2MTlBRSAvKiBX
ZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTgzOTE1OTBGMUU3
NzY5MDBDMjM3ODIgLyogV2ViS2l0Q1NTTWF0cml4LmggaW4gSGVhZGVycyAqLywKQEAgLTI2NTAx
LDYgKzI2NTM5LDcgQEAKIAkJCQkwNTYyRjk0NzE1NzNFQ0VCMDAzMUNBMTYgLyogV2ViS2l0Q1NT
U1ZHRG9jdW1lbnRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5QUREMjMwQ0M0MDMyNjAw
MDk4QzRDIC8qIFdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
RkZGRjlBOTE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk0MDlFQkRCNjE2QjdFRUEzMDBDQkEzRkMgLyogV2ViS2l0Rm9udExvYWRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk0QkQ3OTUwRjU1QzhFRTAwNzQ3ODI4IC8qIFdlYktp
dFBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUMwRkYyNTBFNENFQjZFMDA3RDZGRTUgLyog
V2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkNGMzMyRjBGMkI5
QTI1MDA0QjY3OTUgLyogV2ViTGF5ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjgxOTIsNiArMjgy
MzEsNyBAQAogCQkJCTFBQzIyNjBDMERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9u
Q2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNzBENjMwOUVCMEM3QzAwOUQ4NDY4IC8q
IEpTRE9NQmluZGluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzYwRDdDMDBEMjlBNDYzMDBC
OTkxOEYgLyogSlNET01Db3JlRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQwRUNB
RTgxMTZCOEI2OEEwMEMzNjEwMyAvKiBKU0RPTUVycm9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTg5ODc4NUE0MTIyQ0EyQTcwMDNBQUJEQSAvKiBKU0RPTUZpbGVTeXN0ZW0uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODkzQzQ4MzYxMjQ5NTQ3MjAwMkIzRDg2IC8qIEpTRE9NRmlsZVN5c3RlbVN5
bmMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkUwODg4RDQxMTQ4ODQ4QTAwQUY0MjY1IC8qIEpT
RE9NRm9ybURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODcxOCw2ICsyODc1OCw3IEBACiAJ
CQkJMzFDMEZGM0QwRTRDRUZBQzAwN0Q2RkU1IC8qIEpTV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTJFOEFFMzcxNkE0OTg0MDAwNkJCM0FBIC8qIEpTV2ViS2l0
Q1NTRmlsdGVyUnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTA2MDM3NDE0MzI4MTlDMDBB
QkY0QkEgLyogSlNXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0
MDlFQkRDNTE2QjdGM0NBMDBDQkEzRkMgLyogSlNXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTZGRTA3MTBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJL
aXRDU1NLZXlmcmFtZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFBRDE0QzUxMjk3MzU0
OTAwQUNBOTg5IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ3VzdG9tLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTMxNkZFMDczMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1l
c1J1bGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODcyNyw2ICsyODc2OCw3IEBACiAJCQkJOEFE
MEE1OTQxNEM4ODMzNjAwMEQ4M0M1IC8qIEpTV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkzMTYxMUU1QTBFMUM0REUwMDBGNkE1NzkgLyogSlNXZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzRjJCMzNFRTE2NUFGMTU2MDBFMzk4
N0MgLyogSlNXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDA5
RUJEQkExNkI3RjA0NTAwQ0JBM0ZDIC8qIEpTV2ViS2l0Rm9udExvYWRlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlENzYxM0FDNDE0NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk0QkQ3OUQwRjU1Qzk0QzAwNzQ3ODI4IC8qIEpTV2Vi
S2l0UG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyNzVCNzkxMUM1RDFDMzAwQzkyMDZD
IC8qIEpTV2ViS2l0UG9pbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTY5Nyw2ICsy
OTczOSw3IEBACiAJCQkJMTUwQjkyMzkxNUYwOERDNDAwRTEwOTg2IC8qIFdlYktpdENTU0FycmF5
RnVuY3Rpb25WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMkU4QUUzMDE2QTQ4RTFDMDA2
QkIzQUEgLyogV2ViS2l0Q1NTRmlsdGVyUnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTA2
MDM2RjE0MzI3RDJFMDBBQkY0QkEgLyogV2ViS2l0Q1NTRmlsdGVyVmFsdWUuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDA5RUJEQjIxNkI3RUU3NDAwQ0JBM0ZDIC8qIFdlYktpdENTU0ZvbnRGYWNl
TG9hZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxMjg4RTcyMEUzMDA1RDYwMDM2MTlB
RSAvKiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzEyODhF
NzQwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDk4MzkxNTgwRjFFNzc2OTAwQzIzNzgyIC8qIFdlYktpdENTU01hdHJpeC5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTI5NzA3LDYgKzI5NzUwLDcgQEAKIAkJCQlCQzlBREQ4MDBD
QzQwOTIyMDAwOThDNEMgLyogV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJM0ZGRkY5QTgxNTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVs
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTE0MTRCNTEzQTBGMDUwMDAxOTk5NkMgLyogV2Vi
S2l0Rm9udEZhbWlseU5hbWVzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQwOUVCREI0MTZCN0VF
ODcwMENCQTNGQyAvKiBXZWJLaXRGb250TG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQ3
NjEzQTUwMTQ3NEYxM0YwMERCODYwNiAvKiBXZWJLaXROYW1lZEZsb3cuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMzFDMEZGMjQwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkNGMzMyRTBGMkI5QTI1MDA0QjY3OTUgLyogV2Vi
TGF5ZXIubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRGljdGlvbmFyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rp
Y3Rpb25hcnkuY3BwCmluZGV4IGY5ODA0ZGY2YTIxYWQ1YzJlOTFlZjAxMTAyMTVhZjA2NGU3Yzli
NmIuLjlmNjA2YjEwNDE0ZWFiZGU0ZjE4NGRjNTNmZjk0NDFiODk5MDdhN2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcApAQCAtMjgsNiArMjgsOCBAQAog
CiAjaW5jbHVkZSAiQXJyYXlWYWx1ZS5oIgogI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKKyNpbmNs
dWRlICJKU0NTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIkpTRE9NRXJyb3IuaCIKICNpbmNs
dWRlICJKU0RPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRl
ICJKU01lc3NhZ2VQb3J0Q3VzdG9tLmgiCkBAIC0zNSw2ICszNyw3IEBACiAjaW5jbHVkZSAiSlNT
dG9yYWdlLmgiCiAjaW5jbHVkZSAiSlNUcmFja0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTVWludDhB
cnJheS5oIgorI2luY2x1ZGUgIkpTVm9pZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFs
dWUuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgpAQCAtMjI2LDYgKzIyOSwyNiBAQCB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVy
dFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8TWVkaQog
fQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCit2b2lkIEpTRGljdGlvbmFyeTo6
Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8
Q1NTRm9udEZhY2VSdWxlPiYgcmVzdWx0KQoreworICAgIHJlc3VsdCA9IHRvQ1NTRm9udEZhY2VS
dWxlKHZhbHVlKTsKK30KKwordm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPERPTUVycm9yPiYgcmVzdWx0KQor
eworICAgIHJlc3VsdCA9IHRvRE9NRXJyb3IodmFsdWUpOworfQorCit2b2lkIEpTRGljdGlvbmFy
eTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgdmFsdWUs
IFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiByZXN1bHQpCit7CisgICAgaWYgKCF2YWx1ZS5pc0Z1bmN0
aW9uKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHJlc3VsdCA9IEpTVm9pZENhbGxiYWNrOjpj
cmVhdGUoYXNPYmplY3QodmFsdWUpLCBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCkpKTsKK30KKyNlbmRpZgorCiBib29sIEpTRGljdGlvbmFyeTo6
Z2V0V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBT
dHJpbmcmIHJlc3VsdCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWxpZCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmgKaW5kZXggNzI5Mjc2NGIxZjMzZDE4ZWE0
YmFlMmFiNGFjN2Q5MmE0MDljMTYwOS4uODZkNDVlMDU5MjliZmEzNzQwN2NhOGFkMzVjYzlmNzQw
NWIzOTZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9u
YXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmgKQEAg
LTM2LDcgKzM2LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXJyYXlWYWx1ZTsK
K2NsYXNzIENTU0ZvbnRGYWNlUnVsZTsKIGNsYXNzIERpY3Rpb25hcnk7CitjbGFzcyBET01FcnJv
cjsKIGNsYXNzIERPTVdpbmRvdzsKIGNsYXNzIEV2ZW50VGFyZ2V0OwogY2xhc3MgTWVkaWFLZXlF
cnJvcjsKQEAgLTQ2LDYgKzQ4LDcgQEAgY2xhc3MgU2NyaXB0VmFsdWU7CiBjbGFzcyBTZXJpYWxp
emVkU2NyaXB0VmFsdWU7CiBjbGFzcyBTdG9yYWdlOwogY2xhc3MgVHJhY2tCYXNlOworY2xhc3Mg
Vm9pZENhbGxiYWNrOwogCiBjbGFzcyBKU0RpY3Rpb25hcnkgewogcHVibGljOgpAQCAtMTE5LDYg
KzEyMiwxMSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3RhdGlj
IHZvaWQgY29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBSZWZQdHI8
TWVkaWFTdHJlYW0+JiByZXN1bHQpOwogI2VuZGlmCisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQor
ICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1
ZSwgUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4mIHJlc3VsdCk7CisgICAgc3RhdGljIHZvaWQgY29u
dmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBSZWZQdHI8RE9NRXJyb3I+
JiByZXN1bHQpOworICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNWYWx1ZSwgUmVmUHRyPFZvaWRDYWxsYmFjaz4mIHJlc3VsdCk7CisjZW5kaWYKIAog
ICAgIEpTQzo6RXhlY1N0YXRlKiBtX2V4ZWM7CiAgICAgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVj
dD4gbV9pbml0aWFsaXplck9iamVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L0RpY3Rpb25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlv
bmFyeS5jcHAKaW5kZXggOGE5Y2YxZGY2YmI1NWRiOTI3ZDNmNDEwZjNjNmI3YzlkMGRhM2VkMi4u
YmEwNmI2YWY4NTQ5OGQ4YjU5YmY3NzI3MzJhNjQyYWZiOTJlNzIwMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFyeS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvRGljdGlvbmFyeS5jcHAKQEAgLTY0LDYgKzY0LDEyIEBACiAjaW5jbHVk
ZSAiVjhNZWRpYVN0cmVhbS5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisj
aW5jbHVkZSAiVjhDU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJWOERPTUVycm9yLmgiCisj
aW5jbHVkZSAiVjhWb2lkQ2FsbGJhY2suaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIERpY3Rpb25hcnk6OkRpY3Rpb25hcnkoKQpAQCAtNDk4LDYgKzUwNCw1NSBAQCBib29sIERp
Y3Rpb25hcnk6OmdldChjb25zdCBTdHJpbmcmIGtleSwgQXJyYXlWYWx1ZSYgdmFsdWUpIGNvbnN0
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCitib29sIERp
Y3Rpb25hcnk6OmdldChjb25zdCBTdHJpbmcmIGtleSwgUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4m
IHZhbHVlKSBjb25zdAoreworICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHY4VmFsdWU7CisgICAg
aWYgKCFnZXRLZXkoa2V5LCB2OFZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
Q1NTRm9udEZhY2VSdWxlKiBzb3VyY2UgPSAwOworICAgIGlmICh2OFZhbHVlLT5Jc09iamVjdCgp
KSB7CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IHY4OjpIYW5kbGU8
djg6Ok9iamVjdD46OkNhc3QodjhWYWx1ZSk7CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gZm9udGZhY2UgPSB3cmFwcGVyLT5GaW5kSW5zdGFuY2VJblByb3RvdHlwZUNoYWluKFY4Q1NT
Rm9udEZhY2VSdWxlOjpHZXRUZW1wbGF0ZShtX2lzb2xhdGUpKTsKKyAgICAgICAgaWYgKCFmb250
ZmFjZS5Jc0VtcHR5KCkpCisgICAgICAgICAgICBzb3VyY2UgPSBWOENTU0ZvbnRGYWNlUnVsZTo6
dG9OYXRpdmUoZm9udGZhY2UpOworICAgIH0KKyAgICB2YWx1ZSA9IHNvdXJjZTsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKworYm9vbCBEaWN0aW9uYXJ5OjpnZXQoY29uc3QgU3RyaW5nJiBrZXksIFJl
ZlB0cjxET01FcnJvcj4mIHZhbHVlKSBjb25zdAoreworICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+
IHY4VmFsdWU7CisgICAgaWYgKCFnZXRLZXkoa2V5LCB2OFZhbHVlKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgRE9NRXJyb3IqIGVycm9yID0gMDsKKyAgICBpZiAodjhWYWx1ZS0+SXNP
YmplY3QoKSkgeworICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHY4VmFsdWUpOworICAgICAgICB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IGRvbUVycm9yID0gd3JhcHBlci0+RmluZEluc3RhbmNlSW5Qcm90b3R5cGVDaGFp
bihWOERPTUVycm9yOjpHZXRUZW1wbGF0ZShtX2lzb2xhdGUpKTsKKyAgICAgICAgaWYgKCFkb21F
cnJvci5Jc0VtcHR5KCkpCisgICAgICAgICAgICBlcnJvciA9IFY4RE9NRXJyb3I6OnRvTmF0aXZl
KGRvbUVycm9yKTsKKyAgICB9CisgICAgdmFsdWUgPSBlcnJvcjsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworYm9vbCBEaWN0aW9uYXJ5OjpnZXQoY29uc3QgU3RyaW5nJiBrZXksIFJlZlB0cjxWb2lk
Q2FsbGJhY2s+JiB2YWx1ZSkgY29uc3QKK3sKKyAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiB2OFZh
bHVlOworICAgIGlmICghZ2V0S2V5KGtleSwgdjhWYWx1ZSkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGlmICghdjhWYWx1ZS0+SXNGdW5jdGlvbigpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICB2YWx1ZSA9IFY4Vm9pZENhbGxiYWNrOjpjcmVhdGUodjhWYWx1ZSwgZ2V0U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKyNlbmRpZgorCiBi
b29sIERpY3Rpb25hcnk6OmdldE93blByb3BlcnRpZXNBc1N0cmluZ0hhc2hNYXAoSGFzaE1hcDxT
dHJpbmcsIFN0cmluZz4mIGhhc2hNYXApIGNvbnN0CiB7CiAgICAgaWYgKCFpc09iamVjdCgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFyeS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFyeS5oCmluZGV4IDc2NTAyOTVjMzIxZmI0
ZmQ4NTZlNDc0YmI5YmFmZDkzM2QwZDc3ZjYuLjI3NGI3ZDkxYzk3OGQzMWU1ZDk5YzEwMmZjMDM3
NDIxY2Q1YTBkZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rp
b25hcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmgKQEAg
LTM5LDYgKzM5LDggQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXJyYXlWYWx1ZTsK
K2NsYXNzIENTU0ZvbnRGYWNlUnVsZTsKK2NsYXNzIERPTUVycm9yOwogY2xhc3MgRE9NV2luZG93
OwogY2xhc3MgSURCS2V5UmFuZ2U7CiBjbGFzcyBNZWRpYUtleUVycm9yOwpAQCAtNDgsNiArNTAs
NyBAQCBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDsKIGNsYXNzIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdDsKIGNsYXNzIFN0b3JhZ2U7CiBjbGFzcyBUcmFja0Jhc2U7CitjbGFzcyBW
b2lkQ2FsbGJhY2s7CiAKIGNsYXNzIERpY3Rpb25hcnkgewogcHVibGljOgpAQCAtOTMsNiArOTYs
MTEgQEAgcHVibGljOgogICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIERpY3Rpb25hcnkmKSBj
b25zdDsKICAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpIGNvbnN0
OwogICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIEFycmF5VmFsdWUmKSBjb25zdDsKKyNpZiBF
TkFCTEUoRk9OVF9MT0FERVIpCisgICAgYm9vbCBnZXQoY29uc3QgU3RyaW5nJiwgUmVmUHRyPENT
U0ZvbnRGYWNlUnVsZT4mKSBjb25zdDsKKyAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBSZWZQ
dHI8RE9NRXJyb3I+JikgY29uc3Q7CisgICAgYm9vbCBnZXQoY29uc3QgU3RyaW5nJiwgUmVmUHRy
PFZvaWRDYWxsYmFjaz4mKSBjb25zdDsKKyNlbmRpZgogCiAgICAgYm9vbCBnZXRPd25Qcm9wZXJ0
aWVzQXNTdHJpbmdIYXNoTWFwKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JikgY29uc3Q7CiAgICAg
Ym9vbCBnZXRPd25Qcm9wZXJ0eU5hbWVzKFZlY3RvcjxTdHJpbmc+JikgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRGYWNlLmNwcAppbmRleCAyNzdmYmQ5Mjg5ZjZkNzc4MWY4MWFjMzQ5NDllNzJm
Mjg2NDMwNWFkLi5jZjkwMDljNDM1ODkyZmQ2NjNkYTkwNTM5MTg5ZGYyZWNmMTlhZjI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKQEAgLTI5LDggKzI5LDEwIEBACiAjaW5jbHVkZSAi
Q1NTRm9udEZhY2VTb3VyY2UuaCIKICNpbmNsdWRlICJDU1NGb250U2VsZWN0b3IuaCIKICNpbmNs
dWRlICJDU1NTZWdtZW50ZWRGb250RmFjZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIKKyNp
bmNsdWRlICJXZWJLaXRGb250TG9hZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
ODEsMTQgKzgzLDI3IEBAIHZvaWQgQ1NTRm9udEZhY2U6OmZvbnRMb2FkZWQoQ1NTRm9udEZhY2VT
b3VyY2UqIHNvdXJjZSkKICAgICBpZiAobV9zZWdtZW50ZWRGb250RmFjZXMuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBIYXNoU2V0PENTU1NlZ21lbnRlZEZvbnRGYWNlKj46Oml0
ZXJhdG9yIGVuZCA9IG1fc2VnbWVudGVkRm9udEZhY2VzLmVuZCgpOwotICAgIGZvciAoSGFzaFNl
dDxDU1NTZWdtZW50ZWRGb250RmFjZSo+OjppdGVyYXRvciBpdCA9IG1fc2VnbWVudGVkRm9udEZh
Y2VzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgKCppdCktPmZvbnRMb2FkZWQo
dGhpcyk7Ci0KICAgICAvLyBVc2Ugb25lIG9mIHRoZSBDU1NTZWdtZW50ZWRGb250RmFjZXMnIGZv
bnQgc2VsZWN0b3IuIFRoZXkgYWxsIGhhdmUKICAgICAvLyB0aGUgc2FtZSBmb250IHNlbGVjdG9y
LCBzbyBpdCdzIHdhc3RlZnVsIHRvIHN0b3JlIGl0IGluIHRoZSBDU1NGb250RmFjZS4KICAgICBD
U1NGb250U2VsZWN0b3IqIGZvbnRTZWxlY3RvciA9ICgqbV9zZWdtZW50ZWRGb250RmFjZXMuYmVn
aW4oKSktPmZvbnRTZWxlY3RvcigpOwogICAgIGZvbnRTZWxlY3Rvci0+Zm9udExvYWRlZCgpOwor
CisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorICAgIGlmIChtX2xvYWRTdGF0ZSA9PSBMb2FkaW5n
KSB7CisgICAgICAgIGlmIChzb3VyY2UtPmVuc3VyZUZvbnREYXRhKCkpCisgICAgICAgICAgICBu
b3RpZnlGb250TG9hZGVyKExvYWRlZCk7CisgICAgICAgIGVsc2UgaWYgKCFpc1ZhbGlkKCkpCisg
ICAgICAgICAgICBub3RpZnlGb250TG9hZGVyKEVycm9yKTsKKyAgICB9CisjZW5kaWYKKworICAg
IEhhc2hTZXQ8Q1NTU2VnbWVudGVkRm9udEZhY2UqPjo6aXRlcmF0b3IgZW5kID0gbV9zZWdtZW50
ZWRGb250RmFjZXMuZW5kKCk7CisgICAgZm9yIChIYXNoU2V0PENTU1NlZ21lbnRlZEZvbnRGYWNl
Kj46Oml0ZXJhdG9yIGl0ID0gbV9zZWdtZW50ZWRGb250RmFjZXMuYmVnaW4oKTsgaXQgIT0gZW5k
OyArK2l0KQorICAgICAgICAoKml0KS0+Zm9udExvYWRlZCh0aGlzKTsKKworI2lmIEVOQUJMRShG
T05UX0xPQURFUikKKyAgICBub3RpZnlMb2FkaW5nRG9uZSgpOworI2VuZGlmCiB9CiAKIFBhc3NS
ZWZQdHI8U2ltcGxlRm9udERhdGE+IENTU0ZvbnRGYWNlOjpnZXRGb250RGF0YShjb25zdCBGb250
RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5
bnRoZXRpY0l0YWxpYykKQEAgLTEwMCwxNyArMTE1LDY2IEBAIFBhc3NSZWZQdHI8U2ltcGxlRm9u
dERhdGE+IENTU0ZvbnRGYWNlOjpnZXRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZv
bnRECiAgICAgQVNTRVJUKCFtX3NlZ21lbnRlZEZvbnRGYWNlcy5pc0VtcHR5KCkpOwogICAgIENT
U0ZvbnRTZWxlY3RvciogZm9udFNlbGVjdG9yID0gKCptX3NlZ21lbnRlZEZvbnRGYWNlcy5iZWdp
bigpKS0+Zm9udFNlbGVjdG9yKCk7CiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisgICAgaWYg
KG1fbG9hZFN0YXRlID09IE5vdExvYWRlZCkKKyAgICAgICAgbm90aWZ5Rm9udExvYWRlcihMb2Fk
aW5nKTsKKyNlbmRpZgorCiAgICAgc2l6ZV90IHNpemUgPSBtX3NvdXJjZXMuc2l6ZSgpOwogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAgIGlmIChSZWZQdHI8
U2ltcGxlRm9udERhdGE+IHJlc3VsdCA9IG1fc291cmNlc1tpXS0+Z2V0Rm9udERhdGEoZm9udERl
c2NyaXB0aW9uLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIGZvbnRTZWxlY3Rvcikp
IHsKICAgICAgICAgICAgIG1fYWN0aXZlU291cmNlID0gbV9zb3VyY2VzW2ldLmdldCgpOworI2lm
IEVOQUJMRShGT05UX0xPQURFUikKKyAgICAgICAgICAgIGlmIChtX2xvYWRTdGF0ZSA9PSBMb2Fk
aW5nICYmIG1fc291cmNlc1tpXS0+aXNMb2FkZWQoKSkgeworICAgICAgICAgICAgICAgIG5vdGlm
eUZvbnRMb2FkZXIoTG9hZGVkKTsKKyAgICAgICAgICAgICAgICBub3RpZnlMb2FkaW5nRG9uZSgp
OworICAgICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVh
c2UoKTsKICAgICAgICAgfQogICAgIH0KIAorI2lmIEVOQUJMRShGT05UX0xPQURFUikKKyAgICBp
ZiAobV9sb2FkU3RhdGUgPT0gTG9hZGluZykgeworICAgICAgICBub3RpZnlGb250TG9hZGVyKEVy
cm9yKTsKKyAgICAgICAgbm90aWZ5TG9hZGluZ0RvbmUoKTsKKyAgICB9CisjZW5kaWYKICAgICBy
ZXR1cm4gMDsKIH0KIAorI2lmIEVOQUJMRShGT05UX0xPQURFUikKK3ZvaWQgQ1NTRm9udEZhY2U6
Om5vdGlmeUZvbnRMb2FkZXIoTG9hZFN0YXRlIG5ld1N0YXRlKQoreworICAgIG1fbG9hZFN0YXRl
ID0gbmV3U3RhdGU7CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSAoKm1fc2VnbWVudGVkRm9u
dEZhY2VzLmJlZ2luKCkpLT5mb250U2VsZWN0b3IoKS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRv
Y3VtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBzd2l0Y2ggKG5ld1N0YXRlKSB7CisgICAg
Y2FzZSBMb2FkaW5nOgorICAgICAgICBkb2N1bWVudC0+d2Via2l0Rm9udGxvYWRlcigpLT5iZWdp
bkZvbnRMb2FkaW5nKG1fcnVsZS5nZXQoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9h
ZGVkOgorICAgICAgICBkb2N1bWVudC0+d2Via2l0Rm9udGxvYWRlcigpLT5mb250TG9hZGVkKG1f
cnVsZS5nZXQoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRXJyb3I6CisgICAgICAgIGRv
Y3VtZW50LT53ZWJraXRGb250bG9hZGVyKCktPmxvYWRFcnJvcihtX3J1bGUuZ2V0KCksIG1fYWN0
aXZlU291cmNlKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7
CisgICAgfQorfQorCit2b2lkIENTU0ZvbnRGYWNlOjpub3RpZnlMb2FkaW5nRG9uZSgpCit7Cisg
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gKCptX3NlZ21lbnRlZEZvbnRGYWNlcy5iZWdpbigpKS0+
Zm9udFNlbGVjdG9yKCktPmRvY3VtZW50KCk7CisgICAgaWYgKGRvY3VtZW50KQorICAgICAgICBk
b2N1bWVudC0+d2Via2l0Rm9udGxvYWRlcigpLT5sb2FkaW5nRG9uZSgpOworfQorI2VuZGlmCisK
ICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQogYm9vbCBDU1NGb250RmFjZTo6aGFzU1ZHRm9udEZhY2VT
b3VyY2UoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
YWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuaAppbmRleCBlM2Y2NDgxMDdj
NjE3ZThhZjIzNTVkOGYxMTQxMGExYTc3MTg3NGU3Li4zNDcyODYyYWY2MDQzNDZmY2RhOGM5MmYx
YmQyOTVkOGNiMGQ2ZGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZh
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuaApAQCAtMjYsNiArMjYs
OCBAQAogI2lmbmRlZiBDU1NGb250RmFjZV9oCiAjZGVmaW5lIENTU0ZvbnRGYWNlX2gKIAorI2lu
Y2x1ZGUgIkNTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIkNTU0ZvbnRGYWNlU291cmNlLmgi
CiAjaW5jbHVkZSAiRm9udFRyYWl0c01hc2suaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC0zNiwxNCArMzgsMTMgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBDU1NGb250RmFjZVNvdXJjZTsKIGNsYXNzIENTU1NlZ21lbnRl
ZEZvbnRGYWNlOwogY2xhc3MgRm9udERlc2NyaXB0aW9uOwogY2xhc3MgU2ltcGxlRm9udERhdGE7
CiAKIGNsYXNzIENTU0ZvbnRGYWNlIDogcHVibGljIFJlZkNvdW50ZWQ8Q1NTRm9udEZhY2U+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NGb250RmFjZT4gY3JlYXRlKEZvbnRU
cmFpdHNNYXNrIHRyYWl0c01hc2ssIGJvb2wgaXNMb2NhbEZhbGxiYWNrID0gZmFsc2UpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBDU1NGb250RmFjZSh0cmFpdHNNYXNrLCBpc0xvY2FsRmFsbGJhY2sp
KTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0ZvbnRGYWNlPiBjcmVhdGUoRm9udFRyYWl0
c01hc2sgdHJhaXRzTWFzaywgUGFzc1JlZlB0cjxDU1NGb250RmFjZVJ1bGU+IHJ1bGUsIGJvb2wg
aXNMb2NhbEZhbGxiYWNrID0gZmFsc2UpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NGb250RmFj
ZSh0cmFpdHNNYXNrLCBydWxlLCBpc0xvY2FsRmFsbGJhY2spKTsgfQogCiAgICAgRm9udFRyYWl0
c01hc2sgdHJhaXRzTWFzaygpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaXRzTWFzazsgfQogCkBAIC04
NSwxMiArODYsMjIgQEAgcHVibGljOgogICAgIGJvb2wgaGFzU1ZHRm9udEZhY2VTb3VyY2UoKSBj
b25zdDsKICNlbmRpZgogCisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorICAgIGVudW0gTG9hZFN0
YXRlIHsgTm90TG9hZGVkLCBMb2FkaW5nLCBMb2FkZWQsIEVycm9yIH07CisgICAgTG9hZFN0YXRl
IGxvYWRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZFN0YXRlOyB9CisjZW5kaWYKKwogcHJp
dmF0ZToKLSAgICBDU1NGb250RmFjZShGb250VHJhaXRzTWFzayB0cmFpdHNNYXNrLCBib29sIGlz
TG9jYWxGYWxsYmFjaykKKyAgICBDU1NGb250RmFjZShGb250VHJhaXRzTWFzayB0cmFpdHNNYXNr
LCBQYXNzUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4gcnVsZSwgYm9vbCBpc0xvY2FsRmFsbGJhY2sp
CiAgICAgICAgIDogbV90cmFpdHNNYXNrKHRyYWl0c01hc2spCiAgICAgICAgICwgbV9hY3RpdmVT
b3VyY2UoMCkKICAgICAgICAgLCBtX2lzTG9jYWxGYWxsYmFjayhpc0xvY2FsRmFsbGJhY2spCisj
aWYgRU5BQkxFKEZPTlRfTE9BREVSKQorICAgICAgICAsIG1fbG9hZFN0YXRlKGlzTG9jYWxGYWxs
YmFjayA/IExvYWRlZCA6IE5vdExvYWRlZCkKKyAgICAgICAgLCBtX3J1bGUocnVsZSkKKyNlbmRp
ZgogICAgIHsKKyAgICAgICAgVU5VU0VEX1BBUkFNKHJ1bGUpOwogICAgIH0KIAogICAgIEZvbnRU
cmFpdHNNYXNrIG1fdHJhaXRzTWFzazsKQEAgLTk5LDYgKzExMCwxMiBAQCBwcml2YXRlOgogICAg
IFZlY3RvcjxPd25QdHI8Q1NTRm9udEZhY2VTb3VyY2U+ID4gbV9zb3VyY2VzOwogICAgIENTU0Zv
bnRGYWNlU291cmNlKiBtX2FjdGl2ZVNvdXJjZTsKICAgICBib29sIG1faXNMb2NhbEZhbGxiYWNr
OworI2lmIEVOQUJMRShGT05UX0xPQURFUikKKyAgICBMb2FkU3RhdGUgbV9sb2FkU3RhdGU7Cisg
ICAgUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4gbV9ydWxlOworICAgIHZvaWQgbm90aWZ5Rm9udExv
YWRlcihMb2FkU3RhdGUpOworICAgIHZvaWQgbm90aWZ5TG9hZGluZ0RvbmUoKTsKKyNlbmRpZgog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbAppbmRleCBmMTM0OTdj
NDM3ZjZhZWUxZDY2MjcwNjNmMzA1NGNiYjZhOTIxYzBiLi5iYTk3YTdiN2Y0ODI2MGI2YzMzMTc1
MTQxMzNkM2Q2NWMxMTRmYWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZhY2VSdWxlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlk
bApAQCAtMTksNyArMTksMTAgQEAKICAqLwogCiAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAy
OgotaW50ZXJmYWNlIENTU0ZvbnRGYWNlUnVsZSA6IENTU1J1bGUgeworaW50ZXJmYWNlIFsKKyAg
ICBKU0dlbmVyYXRlVG9KU09iamVjdCwKKyAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCitd
IENTU0ZvbnRGYWNlUnVsZSA6IENTU1J1bGUgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NT
dHlsZURlY2xhcmF0aW9uIHN0eWxlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFj
ZVNvdXJjZS5jcHAKaW5kZXggYTU5NTIxN2YzNzc0OTU2MWQzMTYyMDMyNmVhZjU1Zjg1MjI2ZTg1
OC4uMTdmZTVmMzc5ZjljNWFjZWE5YzY4MTNkOTVhMDIyZmJjNjc0ZWNiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCkBAIC0yMDUsNCArMjA1LDI0IEBAIGJvb2wg
Q1NTRm9udEZhY2VTb3VyY2U6OmlzU1ZHRm9udEZhY2VTb3VyY2UoKSBjb25zdAogfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCitib29sIENTU0ZvbnRGYWNlU291cmNlOjppc0Rl
Y29kZUVycm9yKCkgY29uc3QKK3sKKyAgICBpZiAobV9mb250KQorICAgICAgICByZXR1cm4gbV9m
b250LT5zdGF0dXMoKSA9PSBDYWNoZWRSZXNvdXJjZTo6RGVjb2RlRXJyb3I7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIENTU0ZvbnRGYWNlU291cmNlOjplbnN1cmVGb250RGF0YSgpCit7
CisgICAgaWYgKCFtX2ZvbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNpZiBFTkFCTEUoU1ZH
X0ZPTlRTKQorICAgIGlmIChtX2hhc0V4dGVybmFsU1ZHRm9udCkKKyAgICAgICAgcmV0dXJuIG1f
Zm9udC0+ZW5zdXJlU1ZHRm9udERhdGEoKTsKKyNlbmRpZgorICAgIHJldHVybiBtX2ZvbnQtPmVu
c3VyZUN1c3RvbUZvbnREYXRhKCk7Cit9CisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udEZhY2VTb3VyY2UuaAppbmRleCAwNDg4ZDEwZDMyNjAwZTQ3ZGVkZDBmNzI4YzAwMzRjYTA0
YWRmMTVjLi43YjU1ZmEwYjRmMmU4MjE1YWJhN2IyMDkxYWIwYmJkZGY1ZDVjMzQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuaApAQCAtNzAsNiArNzAsMTEgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0SGFzRXh0ZXJuYWxTVkdGb250KGJvb2wgdmFsdWUpIHsgbV9oYXNFeHRl
cm5hbFNWR0ZvbnQgPSB2YWx1ZTsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FERVIp
CisgICAgYm9vbCBpc0RlY29kZUVycm9yKCkgY29uc3Q7CisgICAgYm9vbCBlbnN1cmVGb250RGF0
YSgpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydExvYWRpbmdUaW1lckZpcmVk
KFRpbWVyPENTU0ZvbnRGYWNlU291cmNlPiopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2Vs
ZWN0b3IuY3BwCmluZGV4IGNiMGRjOGQxNGIxOGZmNDg5YzM2YTdmMjAwNTAzYTQwOWU5NzIzMzYu
LjM0Yjc2Y2IzMjIwNjQ2NzA0OGU4ZWZlMjZkNDc0YjkwMzg4YWVjYTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJD
YWNoZWRGb250LmgiCiAjaW5jbHVkZSAiQ1NTRm9udEZhY2UuaCIKKyNpbmNsdWRlICJDU1NGb250
RmFjZVJ1bGUuaCIKICNpbmNsdWRlICJDU1NGb250RmFjZVNvdXJjZS5oIgogI2luY2x1ZGUgIkNT
U0ZvbnRGYWNlU3JjVmFsdWUuaCIKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgpAQCAt
MjI0LDggKzIyNSwxNCBAQCB2b2lkIENTU0ZvbnRTZWxlY3Rvcjo6YWRkRm9udEZhY2VSdWxlKGNv
bnN0IFN0eWxlUnVsZUZvbnRGYWNlKiBmb250RmFjZVJ1bGUpCiAgICAgICAgICAgICBzb3VyY2Ug
PSBhZG9wdFB0cihuZXcgQ1NTRm9udEZhY2VTb3VyY2UoaXRlbS0+cmVzb3VyY2UoKSkpOwogICAg
ICAgICB9CiAKLSAgICAgICAgaWYgKCFmb250RmFjZSkKLSAgICAgICAgICAgIGZvbnRGYWNlID0g
Q1NTRm9udEZhY2U6OmNyZWF0ZShzdGF0aWNfY2FzdDxGb250VHJhaXRzTWFzaz4odHJhaXRzTWFz
aykpOworICAgICAgICBpZiAoIWZvbnRGYWNlKSB7CisgICAgICAgICAgICBSZWZQdHI8Q1NTRm9u
dEZhY2VSdWxlPiBydWxlOworI2lmIEVOQUJMRShGT05UX0xPQURFUikKKyAgICAgICAgICAgIC8v
IEZJWE1FOiBUaGlzIENTU0ZvbnRGYWNlUnVsZSBoYXMgbm8gcGFyZW50LgorICAgICAgICAgICAg
cnVsZSA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8Q1NTRm9udEZhY2VSdWxlPihmb250RmFjZVJ1bGUt
PmNyZWF0ZUNTU09NV3JhcHBlcigpKTsKKyNlbmRpZgorICAgICAgICAgICAgZm9udEZhY2UgPSBD
U1NGb250RmFjZTo6Y3JlYXRlKHN0YXRpY19jYXN0PEZvbnRUcmFpdHNNYXNrPih0cmFpdHNNYXNr
KSwgcnVsZSk7CisgICAgICAgIH0KIAogICAgICAgICBpZiAoc291cmNlKSB7CiAjaWYgRU5BQkxF
KFNWR19GT05UUykKQEAgLTI5Nyw3ICszMDQsNyBAQCB2b2lkIENTU0ZvbnRTZWxlY3Rvcjo6YWRk
Rm9udEZhY2VSdWxlKGNvbnN0IFN0eWxlUnVsZUZvbnRGYWNlKiBmb250RmFjZVJ1bGUpCiAgICAg
ICAgICAgICAgICAgT3duUHRyPFZlY3RvcjxSZWZQdHI8Q1NTRm9udEZhY2U+ID4gPiBmYW1pbHlM
b2NhbGx5SW5zdGFsbGVkRmFjZXMgPSBhZG9wdFB0cihuZXcgVmVjdG9yPFJlZlB0cjxDU1NGb250
RmFjZT4gPik7CiAKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVt
TG9jYWxseUluc3RhbGxlZEZhY2VzOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgUmVmUHRy
PENTU0ZvbnRGYWNlPiBsb2NhbGx5SW5zdGFsbGVkRm9udEZhY2UgPSBDU1NGb250RmFjZTo6Y3Jl
YXRlKHN0YXRpY19jYXN0PEZvbnRUcmFpdHNNYXNrPihsb2NhbGx5SW5zdGFsbGVkRm9udHNUcmFp
dHNNYXNrc1tpXSksIHRydWUpOworICAgICAgICAgICAgICAgICAgICBSZWZQdHI8Q1NTRm9udEZh
Y2U+IGxvY2FsbHlJbnN0YWxsZWRGb250RmFjZSA9IENTU0ZvbnRGYWNlOjpjcmVhdGUoc3RhdGlj
X2Nhc3Q8Rm9udFRyYWl0c01hc2s+KGxvY2FsbHlJbnN0YWxsZWRGb250c1RyYWl0c01hc2tzW2ld
KSwgMCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgIGxvY2FsbHlJbnN0YWxsZWRGb250RmFj
ZS0+YWRkU291cmNlKGFkb3B0UHRyKG5ldyBDU1NGb250RmFjZVNvdXJjZShmYW1pbHlOYW1lKSkp
OwogICAgICAgICAgICAgICAgICAgICBBU1NFUlQobG9jYWxseUluc3RhbGxlZEZvbnRGYWNlLT5p
c1ZhbGlkKCkpOwogICAgICAgICAgICAgICAgICAgICBmYW1pbHlMb2NhbGx5SW5zdGFsbGVkRmFj
ZXMtPmFwcGVuZChsb2NhbGx5SW5zdGFsbGVkRm9udEZhY2UpOwpAQCAtNDc1LDExICs0ODIsOSBA
QCBQYXNzUmVmUHRyPEZvbnREYXRhPiBDU1NGb250U2VsZWN0b3I6OmdldEZvbnREYXRhKGNvbnN0
IEZvbnREZXNjcmlwdGlvbiYgZm9udERlcwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAg
ICBTdHJpbmcgZmFtaWx5ID0gZmFtaWx5TmFtZS5zdHJpbmcoKTsKLQotICAgIFZlY3RvcjxSZWZQ
dHI8Q1NTRm9udEZhY2U+ID4qIGZhbWlseUZvbnRGYWNlcyA9IG1fZm9udEZhY2VzLmdldChmYW1p
bHkpOworICAgIENTU1NlZ21lbnRlZEZvbnRGYWNlKiBmYWNlID0gZ2V0Rm9udEZhY2UoZm9udERl
c2NyaXB0aW9uLCBmYW1pbHlOYW1lKTsKICAgICAvLyBJZiBubyBmYWNlIHdhcyBmb3VuZCwgdGhl
biByZXR1cm4gMCBhbmQgbGV0IHRoZSBPUyBjb21lIHVwIHdpdGggaXRzIGJlc3QgbWF0Y2ggZm9y
IHRoZSBuYW1lLgotICAgIGlmICghZmFtaWx5Rm9udEZhY2VzIHx8IGZhbWlseUZvbnRGYWNlcy0+
aXNFbXB0eSgpKSB7CisgICAgaWYgKCFmYWNlKSB7CiAgICAgICAgIC8vIElmIHdlIHdlcmUgaGFu
ZGVkIGEgZ2VuZXJpYyBmYW1pbHksIGJ1dCB0aGVyZSB3YXMgbm8gbWF0Y2gsIGdvIGFoZWFkIGFu
ZCByZXR1cm4gdGhlIGNvcnJlY3QgZm9udCBiYXNlZCBvZmYgb3VyCiAgICAgICAgIC8vIHNldHRp
bmdzLgogICAgICAgICBpZiAoZm9udERlc2NyaXB0aW9uLmdlbmVyaWNGYW1pbHkoKSA9PSBGb250
RGVzY3JpcHRpb246OlN0YW5kYXJkRmFtaWx5ICYmICFmb250RGVzY3JpcHRpb24uaXNTcGVjaWZp
ZWRGb250KCkpCkBAIC00ODcsNiArNDkyLDE4IEBAIFBhc3NSZWZQdHI8Rm9udERhdGE+IENTU0Zv
bnRTZWxlY3Rvcjo6Z2V0Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzCiAg
ICAgICAgIHJldHVybiBmb250RGF0YUZvckdlbmVyaWNGYW1pbHkobV9kb2N1bWVudCwgZm9udERl
c2NyaXB0aW9uLCBmYW1pbHlOYW1lKTsKICAgICB9CiAKKyAgICAvLyBXZSBoYXZlIGEgZmFjZS4g
QXNrIGl0IGZvciBhIGZvbnQgZGF0YS4gSWYgaXQgY2Fubm90IHByb2R1Y2Ugb25lLCBpdCB3aWxs
IGZhaWwsIGFuZCB0aGUgT1Mgd2lsbCB0YWtlIG92ZXIuCisgICAgcmV0dXJuIGZhY2UtPmdldEZv
bnREYXRhKGZvbnREZXNjcmlwdGlvbik7Cit9CisKK0NTU1NlZ21lbnRlZEZvbnRGYWNlKiBDU1NG
b250U2VsZWN0b3I6OmdldEZvbnRGYWNlKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2Ny
aXB0aW9uLCBjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseU5hbWUpCit7CisgICAgU3RyaW5nIGZh
bWlseSA9IGZhbWlseU5hbWUuc3RyaW5nKCk7CisKKyAgICBWZWN0b3I8UmVmUHRyPENTU0ZvbnRG
YWNlPiA+KiBmYW1pbHlGb250RmFjZXMgPSBtX2ZvbnRGYWNlcy5nZXQoZmFtaWx5KTsKKyAgICBp
ZiAoIWZhbWlseUZvbnRGYWNlcyB8fCBmYW1pbHlGb250RmFjZXMtPmlzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuIDA7CisKICAgICBPd25QdHI8SGFzaE1hcDx1bnNpZ25lZCwgUmVmUHRyPENTU1Nl
Z21lbnRlZEZvbnRGYWNlPiA+ID4mIHNlZ21lbnRlZEZvbnRGYWNlQ2FjaGUgPSBtX2ZvbnRzLmFk
ZChmYW1pbHksIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKICAgICBpZiAoIXNlZ21lbnRlZEZv
bnRGYWNlQ2FjaGUpCiAgICAgICAgIHNlZ21lbnRlZEZvbnRGYWNlQ2FjaGUgPSBhZG9wdFB0cihu
ZXcgSGFzaE1hcDx1bnNpZ25lZCwgUmVmUHRyPENTU1NlZ21lbnRlZEZvbnRGYWNlPiA+KTsKQEAg
LTUzNCw5ICs1NTEsNyBAQCBQYXNzUmVmUHRyPEZvbnREYXRhPiBDU1NGb250U2VsZWN0b3I6Omdl
dEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlcwogICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbnVtQ2FuZGlkYXRlczsgKytpKQogICAgICAgICAgICAgZmFjZS0+
YXBwZW5kRm9udEZhY2UoY2FuZGlkYXRlRm9udEZhY2VzW2ldKTsKICAgICB9Ci0KLSAgICAvLyBX
ZSBoYXZlIGEgZmFjZS4gIEFzayBpdCBmb3IgYSBmb250IGRhdGEuICBJZiBpdCBjYW5ub3QgcHJv
ZHVjZSBvbmUsIGl0IHdpbGwgZmFpbCwgYW5kIHRoZSBPUyB3aWxsIHRha2Ugb3Zlci4KLSAgICBy
ZXR1cm4gZmFjZS0+Z2V0Rm9udERhdGEoZm9udERlc2NyaXB0aW9uKTsKKyAgICByZXR1cm4gZmFj
ZS5nZXQoKTsKIH0KIAogdm9pZCBDU1NGb250U2VsZWN0b3I6OmNsZWFyRG9jdW1lbnQoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5oCmluZGV4IGQwMjEwMGMzMjYyMGY4ODU2MTUyZDll
MDE2ZWJiZThhMmJkMDgwMmYuLmRlNTA0NGNkZWVlZTZiYWYwYzNiMGQ3YjJkOWQyOGY1MmM1Yjg5
MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgKQEAgLTU2LDYgKzU2LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdW5zaWduZWQgdmVyc2lvbigpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIG1fdmVyc2lvbjsgfQogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZvbnREYXRhPiBn
ZXRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBBdG9taWNTdHJpbmcmKTsK
KyAgICBDU1NTZWdtZW50ZWRGb250RmFjZSogZ2V0Rm9udEZhY2UoY29uc3QgRm9udERlc2NyaXB0
aW9uJiwgY29uc3QgQXRvbWljU3RyaW5nJik7CiAKICAgICB2b2lkIGNsZWFyRG9jdW1lbnQoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWdtZW50ZWRGb250RmFjZS5jcHAKaW5kZXggOWU5
MDgzZjIwNTMzNGYwMTY0YTZhZTAyNTA1M2EyYTlkNjg3MjUyMi4uYTM5MTVmOWEyMzY5NDUzZGIz
YTgwYTViMzZiYTBhYmIxNGQ0MmZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1NlZ21lbnRlZEZvbnRGYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VnbWVu
dGVkRm9udEZhY2UuY3BwCkBAIC03Miw2ICs3MiwxOSBAQCBib29sIENTU1NlZ21lbnRlZEZvbnRG
YWNlOjppc1ZhbGlkKCkgY29uc3QKIHZvaWQgQ1NTU2VnbWVudGVkRm9udEZhY2U6OmZvbnRMb2Fk
ZWQoQ1NTRm9udEZhY2UqKQogewogICAgIHBydW5lVGFibGUoKTsKKworI2lmIEVOQUJMRShGT05U
X0xPQURFUikKKyAgICBpZiAoIWlzTG9hZGluZygpKSB7CisgICAgICAgIFZlY3RvcjxSZWZQdHI8
TG9hZEZvbnRDYWxsYmFjaz4gPiBjYWxsYmFja3M7CisgICAgICAgIG1fY2FsbGJhY2tzLnN3YXAo
Y2FsbGJhY2tzKTsKKyAgICAgICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IGNhbGxi
YWNrcy5zaXplKCk7ICsraW5kZXgpIHsKKyAgICAgICAgICAgIGlmIChjaGVja0ZvbnQoKSkKKyAg
ICAgICAgICAgICAgICBjYWxsYmFja3NbaW5kZXhdLT5ub3RpZnlMb2FkZWQoKTsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjYWxsYmFja3NbaW5kZXhdLT5ub3RpZnlFcnJvcigp
OworICAgICAgICB9CisgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgQ1NTU2VnbWVudGVkRm9udEZh
Y2U6OmFwcGVuZEZvbnRGYWNlKFBhc3NSZWZQdHI8Q1NTRm9udEZhY2U+IGZvbnRGYWNlKQpAQCAt
MTM1LDQgKzE0OCwzOSBAQCBQYXNzUmVmUHRyPEZvbnREYXRhPiBDU1NTZWdtZW50ZWRGb250RmFj
ZTo6Z2V0Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmbwogICAgIHJldHVybiAwOwog
fQogCisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorYm9vbCBDU1NTZWdtZW50ZWRGb250RmFjZTo6
aXNMb2FkaW5nKCkgY29uc3QKK3sKKyAgICB1bnNpZ25lZCBzaXplID0gbV9mb250RmFjZXMuc2l6
ZSgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAg
aWYgKG1fZm9udEZhY2VzW2ldLT5sb2FkU3RhdGUoKSA9PSBDU1NGb250RmFjZTo6TG9hZGluZykK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgQ1NTU2VnbWVudGVkRm9udEZhY2U6OmNoZWNrRm9udCgpIGNvbnN0Cit7CisgICAgdW5z
aWduZWQgc2l6ZSA9IG1fZm9udEZhY2VzLnNpemUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgIGlmIChtX2ZvbnRGYWNlc1tpXS0+bG9hZFN0YXRl
KCkgIT0gQ1NTRm9udEZhY2U6OkxvYWRlZCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgQ1NTU2VnbWVudGVkRm9udEZhY2U6Omxv
YWRGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBQYXNzUmVmUHRy
PExvYWRGb250Q2FsbGJhY2s+IGNhbGxiYWNrKQoreworICAgIGdldEZvbnREYXRhKGZvbnREZXNj
cmlwdGlvbik7CisgICAgaWYgKGNhbGxiYWNrKSB7CisgICAgICAgIGlmIChpc0xvYWRpbmcoKSkK
KyAgICAgICAgICAgIG1fY2FsbGJhY2tzLmFwcGVuZChjYWxsYmFjayk7CisgICAgICAgIGVsc2Ug
aWYgKGNoZWNrRm9udCgpKQorICAgICAgICAgICAgY2FsbGJhY2stPm5vdGlmeUxvYWRlZCgpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBjYWxsYmFjay0+bm90aWZ5RXJyb3IoKTsKKyAgICB9
Cit9CisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21l
bnRlZEZvbnRGYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VnbWVudGVkRm9udEZhY2Uu
aAppbmRleCBmMTgzZjQ5OTVlMDgyOWVlMTY4YTM4OTJkNmY5ZWYzZmFkZWUwOGY3Li5kMjY1MWVi
MGY5OTRkNmJhMjMyZDQ1ZDc3MjYxNzA1MDk2M2EyYjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU2VnbWVudGVkRm9udEZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU2VnbWVudGVkRm9udEZhY2UuaApAQCAtNTMsMTUgKzUzLDMzIEBAIHB1YmxpYzoKIAogICAg
IFBhc3NSZWZQdHI8Rm9udERhdGE+IGdldEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYp
OwogCisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorICAgIGNsYXNzIExvYWRGb250Q2FsbGJhY2sg
OiBwdWJsaWMgUmVmQ291bnRlZDxMb2FkRm9udENhbGxiYWNrPiB7CisgICAgcHVibGljOgorICAg
ICAgICB2aXJ0dWFsIH5Mb2FkRm9udENhbGxiYWNrKCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlMb2FkZWQoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBub3RpZnlFcnJvcigp
ID0gMDsKKyAgICB9OworCisgICAgYm9vbCBjaGVja0ZvbnQoKSBjb25zdDsKKyAgICB2b2lkIGxv
YWRGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIFBhc3NSZWZQdHI8TG9hZEZvbnRDYWxsYmFj
az4gbG9hZENhbGxiYWNrKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIENTU1NlZ21lbnRlZEZv
bnRGYWNlKENTU0ZvbnRTZWxlY3RvciopOwogCiAgICAgdm9pZCBwcnVuZVRhYmxlKCk7CiAgICAg
Ym9vbCBpc1ZhbGlkKCkgY29uc3Q7CisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorICAgIGJvb2wg
aXNMb2FkaW5nKCkgY29uc3Q7CisjZW5kaWYKIAogICAgIENTU0ZvbnRTZWxlY3RvciogbV9mb250
U2VsZWN0b3I7CiAgICAgSGFzaE1hcDx1bnNpZ25lZCwgUmVmUHRyPFNlZ21lbnRlZEZvbnREYXRh
PiA+IG1fZm9udERhdGFUYWJsZTsKICAgICBWZWN0b3I8UmVmUHRyPENTU0ZvbnRGYWNlPiwgMT4g
bV9mb250RmFjZXM7CisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorICAgIFZlY3RvcjxSZWZQdHI8
TG9hZEZvbnRDYWxsYmFjaz4gPiBtX2NhbGxiYWNrczsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0Zv
bnRGYWNlTG9hZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGb250RmFj
ZUxvYWRFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTc0NTNhZTRkMjdiMmUzOWVjNmFjMGI3OTY1MGQ5
NDZjOThiNDViZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NGb250RmFjZUxvYWRFdmVudC5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5oIgorCisjaWYgRU5BQkxF
KEZPTlRfTE9BREVSKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dlYktpdENTU0ZvbnRGYWNl
TG9hZEV2ZW50OjpXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudCgpCit7Cit9CisKK1dlYktpdENT
U0ZvbnRGYWNlTG9hZEV2ZW50OjpXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudChjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUsIFBhc3NSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiBmb250ZmFjZSwgUGFz
c1JlZlB0cjxET01FcnJvcj4gZXJyb3IpCisgICAgOiBFdmVudCh0eXBlLCBmYWxzZSwgZmFsc2Up
CisgICAgLCBtX2ZvbnRmYWNlKGZvbnRmYWNlKQorICAgICwgbV9lcnJvcihlcnJvcikKK3sKK30K
KworV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OldlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZl
bnRJbml0JiBpbml0aWFsaXplcikKKyAgICA6IEV2ZW50KHR5cGUsIGluaXRpYWxpemVyKQorICAg
ICwgbV9mb250ZmFjZShpbml0aWFsaXplci5mb250ZmFjZSkKKyAgICAsIG1fZXJyb3IoaW5pdGlh
bGl6ZXIuZXJyb3IpCit7Cit9CisKK1dlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50Ojp+V2ViS2l0
Q1NTRm9udEZhY2VMb2FkRXZlbnQoKQoreworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIFdlYktp
dENTU0ZvbnRGYWNlTG9hZEV2ZW50OjppbnRlcmZhY2VOYW1lKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZvcldlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50Owor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRk9OVF9MT0FE
RVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2Fk
RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFhNDM5ZTE5NzEyNGMzNzdmNWQ2NGY4ZmE3ZWUyMWYzYjZmYjkxYmUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2Fk
RXZlbnQuaApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShGT05UX0xPQURFUikKKworI2lmbmRl
ZiBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudF9oCisjZGVmaW5lIFdlYktpdENTU0ZvbnRGYWNl
TG9hZEV2ZW50X2gKKworI2luY2x1ZGUgIkNTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIkNT
U1ZhbHVlLmgiCisjaW5jbHVkZSAiRE9NRXJyb3IuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgV2ViS2l0
Q1NTRm9udEZhY2VMb2FkRXZlbnRJbml0IDogcHVibGljIEV2ZW50SW5pdCB7CisgICAgUmVmUHRy
PENTU0ZvbnRGYWNlUnVsZT4gZm9udGZhY2U7CisgICAgUmVmUHRyPERPTUVycm9yPiBlcnJvcjsK
K307CisKK2NsYXNzIFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50IDogcHVibGljIEV2ZW50IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVu
dD4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZjxXZWJLaXRDU1NGb250
RmFjZUxvYWRFdmVudD4obmV3IFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50KCkpOworICAgIH0K
KworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50PiBjcmVh
dGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBXZWJLaXRDU1NGb250RmFjZUxvYWRF
dmVudEluaXQmIGluaXRpYWxpemVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmPFdl
YktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50PihuZXcgV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQo
dHlwZSwgaW5pdGlhbGl6ZXIpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJL
aXRDU1NGb250RmFjZUxvYWRFdmVudD4gY3JlYXRlRm9yRm9udEZhY2VSdWxlKGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgUGFzc1JlZlB0cjxDU1NGb250RmFjZVJ1bGU+IHJ1bGUpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWY8V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ+KG5ldyBX
ZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudCh0eXBlLCBydWxlLCAwKSk7CisgICAgfQorCisgICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ+IGNyZWF0ZUZvckVy
cm9yKFBhc3NSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiBydWxlLCBQYXNzUmVmUHRyPERPTUVycm9y
PiBlcnJvcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZjxXZWJLaXRDU1NGb250RmFj
ZUxvYWRFdmVudD4obmV3IFdlYktpdENTU0ZvbnRGYWNlTG9hZEV2ZW50KGV2ZW50TmFtZXMoKS5l
cnJvckV2ZW50LCBydWxlLCBlcnJvcikpOworICAgIH0KKworICAgIHZpcnR1YWwgfldlYktpdENT
U0ZvbnRGYWNlTG9hZEV2ZW50KCk7CisKKyAgICBDU1NGb250RmFjZVJ1bGUqIGZvbnRmYWNlKCkg
Y29uc3QgeyByZXR1cm4gbV9mb250ZmFjZS5nZXQoKTsgfQorICAgIERPTUVycm9yKiBlcnJvcigp
IGNvbnN0IHsgcmV0dXJuIG1fZXJyb3IuZ2V0KCk7IH0KKworICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBpbnRlcmZhY2VOYW1lKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgV2ViS2l0
Q1NTRm9udEZhY2VMb2FkRXZlbnQoKTsKKyAgICBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudChj
b25zdCBBdG9taWNTdHJpbmcmLCBQYXNzUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4sIFBhc3NSZWZQ
dHI8RE9NRXJyb3I+KTsKKyAgICBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudChjb25zdCBBdG9t
aWNTdHJpbmcmLCBjb25zdCBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudEluaXQmKTsKKworICAg
IFJlZlB0cjxDU1NGb250RmFjZVJ1bGU+IG1fZm9udGZhY2U7CisgICAgUmVmUHRyPERPTUVycm9y
PiBtX2Vycm9yOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gV2Vi
S2l0Q1NTRm9udEZhY2VMb2FkRXZlbnRfaAorI2VuZGlmIC8vIEVOQUJMRShGT05UX0xPQURFUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGb250RmFjZUxvYWRFdmVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjZlYzY3NWFhM2E3ODA2MjhmNzRkMTEzZTFhYmQyMGJmNjZlZTFjMTkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTRm9udEZhY2VMb2Fk
RXZlbnQuaWRsCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9Rk9OVF9MT0FERVIs
CisgICAgSlNOb1N0YXRpY1RhYmxlcywKKyAgICBDb25zdHJ1Y3RvclRlbXBsYXRlPUV2ZW50Citd
IGludGVyZmFjZSBXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudCA6IEV2ZW50IHsKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSBDU1NGb250RmFj
ZVJ1bGUgZm9udGZhY2U7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZl
bnRDb25zdHJ1Y3Rvcl0gRE9NRXJyb3IgZXJyb3I7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1dlYktpdEZvbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dEZvbnRMb2FkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4MjYzZTAxNzI1MjI3YjExNmM0YmQ1YWZiY2Ex
ZjE1YmFmNTA3YjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0
Rm9udExvYWRlci5jcHAKQEAgLTAsMCArMSwzMDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICog
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdEZvbnRMb2FkZXIuaCIKKworI2lmIEVOQUJMRShG
T05UX0xPQURFUikKKworI2luY2x1ZGUgIkNTU0ZvbnRGYWNlU291cmNlLmgiCisjaW5jbHVkZSAi
Q1NTRm9udFNlbGVjdG9yLmgiCisjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCisjaW5jbHVkZSAiQ1NT
U2VnbWVudGVkRm9udEZhY2UuaCIKKyNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCisjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJTdHlsZVByb3Bl
cnR5U2V0LmgiCisjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgorI2luY2x1ZGUgIldlYktpdENT
U0ZvbnRGYWNlTG9hZEV2ZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGNv
bnN0IGludCBkZWZhdWx0Rm9udFNpemUgPSAxMDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBk
ZWZhdWx0Rm9udEZhbWlseSA9ICJzYW5zLXNlcmlmIjsKKworY2xhc3MgTG9hZEZvbnRDYWxsYmFj
ayA6IHB1YmxpYyBDU1NTZWdtZW50ZWRGb250RmFjZTo6TG9hZEZvbnRDYWxsYmFjayB7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TG9hZEZvbnRDYWxsYmFjaz4gY3JlYXRlKGludCBu
dW1Mb2FkaW5nLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gbG9hZENhbGxiYWNrLCBQYXNzUmVm
UHRyPFZvaWRDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZjxMb2FkRm9udENhbGxiYWNrPihuZXcgTG9hZEZvbnRDYWxsYmFjayhudW1Mb2FkaW5n
LCBsb2FkQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsKKyAgICB9CisgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUxvYWRlZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlFcnJvcigp
IE9WRVJSSURFOworcHJpdmF0ZToKKyAgICBMb2FkRm9udENhbGxiYWNrKGludCBudW1Mb2FkaW5n
LCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gbG9hZENhbGxiYWNrLCBQYXNzUmVmUHRyPFZvaWRD
YWxsYmFjaz4gZXJyb3JDYWxsYmFjaykgOiBtX251bUxvYWRpbmcobnVtTG9hZGluZyksIG1fZXJy
b3JPY2N1cmVkKGZhbHNlKSwgbV9sb2FkQ2FsbGJhY2sobG9hZENhbGxiYWNrKSwgbV9lcnJvckNh
bGxiYWNrKGVycm9yQ2FsbGJhY2spIHsgfQorCisgICAgaW50IG1fbnVtTG9hZGluZzsKKyAgICBi
b29sIG1fZXJyb3JPY2N1cmVkOworICAgIFJlZlB0cjxWb2lkQ2FsbGJhY2s+IG1fbG9hZENhbGxi
YWNrOworICAgIFJlZlB0cjxWb2lkQ2FsbGJhY2s+IG1fZXJyb3JDYWxsYmFjazsKK307CisKK3Zv
aWQgTG9hZEZvbnRDYWxsYmFjazo6bm90aWZ5TG9hZGVkKCkKK3sKKyAgICBtX251bUxvYWRpbmct
LTsKKyAgICBpZiAoIW1fbnVtTG9hZGluZykgeworICAgICAgICBpZiAobV9lcnJvck9jY3VyZWQp
IHsKKyAgICAgICAgICAgIGlmIChtX2Vycm9yQ2FsbGJhY2spCisgICAgICAgICAgICAgICAgbV9l
cnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgaWYgKG1fbG9hZENhbGxiYWNrKQorICAgICAgICAgICAgICAgIG1fbG9hZENhbGxiYWNrLT5o
YW5kbGVFdmVudCgpOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIExvYWRGb250Q2FsbGJh
Y2s6Om5vdGlmeUVycm9yKCkgCit7CisgICAgbV9lcnJvck9jY3VyZWQgPSB0cnVlOworICAgIG5v
dGlmeUxvYWRlZCgpOworfQorCitXZWJLaXRGb250TG9hZGVyOjpXZWJLaXRGb250TG9hZGVyKERv
Y3VtZW50KiBkb2N1bWVudCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCwgdGhpcykK
KyAgICAsIG1fZG9jdW1lbnQoZG9jdW1lbnQpCisgICAgLCBtX2xvYWRpbmdDb3VudCgwKQorewor
ICAgIHN1c3BlbmRJZk5lZWRlZCgpOworfQorCitXZWJLaXRGb250TG9hZGVyOjp+V2ViS2l0Rm9u
dExvYWRlcigpCit7Cit9CisKK0V2ZW50VGFyZ2V0RGF0YSogV2ViS2l0Rm9udExvYWRlcjo6ZXZl
bnRUYXJnZXREYXRhKCkKK3sKKyAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOworfQorCitF
dmVudFRhcmdldERhdGEqIFdlYktpdEZvbnRMb2FkZXI6OmVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgp
Cit7CisgICAgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsKK30KKworY29uc3QgQXRvbWljU3Ry
aW5nJiBXZWJLaXRGb250TG9hZGVyOjppbnRlcmZhY2VOYW1lKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZvcldlYktpdEZvbnRMb2FkZXI7Cit9CisKK1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIFdlYktpdEZvbnRMb2FkZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSBjb25zdAoreworICAgIHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKTsKK30KKwordm9pZCBXZWJLaXRGb250TG9hZGVyOjpkaWRMYXlvdXQoKQorewor
ICAgIGZpcmVQZW5kaW5nRXZlbnRzKCk7CisgICAgbG9hZGluZ0RvbmUoKTsKK30KKwordm9pZCBX
ZWJLaXRGb250TG9hZGVyOjpzY2hlZHVsZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQor
eworICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBtX2RvY3VtZW50LT52aWV3KCkpIHsKKyAgICAg
ICAgaWYgKHZpZXctPmlzSW5MYXlvdXQoKSkgeworICAgICAgICAgICAgbV9wZW5kaW5nRXZlbnRz
LmFwcGVuZChldmVudCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cisg
ICAgZmlyZVBlbmRpbmdFdmVudHMoKTsKKyAgICBkaXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KKwor
dm9pZCBXZWJLaXRGb250TG9hZGVyOjpmaXJlUGVuZGluZ0V2ZW50cygpCit7CisgICAgaWYgKG1f
cGVuZGluZ0V2ZW50cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFZlY3RvcjxS
ZWZQdHI8RXZlbnQ+ID4gcGVuZGluZ0V2ZW50czsKKyAgICBtX3BlbmRpbmdFdmVudHMuc3dhcChw
ZW5kaW5nRXZlbnRzKTsKKyAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgcGVuZGlu
Z0V2ZW50cy5zaXplKCk7ICsraW5kZXgpCisgICAgICAgIGRpc3BhdGNoRXZlbnQocGVuZGluZ0V2
ZW50c1tpbmRleF0ucmVsZWFzZSgpKTsKK30KKwordm9pZCBXZWJLaXRGb250TG9hZGVyOjpiZWdp
bkZvbnRMb2FkaW5nKENTU0ZvbnRGYWNlUnVsZSogcnVsZSkKK3sKKyAgICArK21fbG9hZGluZ0Nv
dW50OworICAgIGlmIChtX2xvYWRpbmdDb3VudCA9PSAxICYmICFtX2xvYWRpbmdEb25lRXZlbnQp
CisgICAgICAgIHNjaGVkdWxlRXZlbnQoV2ViS2l0Q1NTRm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0
ZUZvckZvbnRGYWNlUnVsZShldmVudE5hbWVzKCkubG9hZGluZ0V2ZW50LCBydWxlKSk7CisgICAg
c2NoZWR1bGVFdmVudChXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudDo6Y3JlYXRlRm9yRm9udEZh
Y2VSdWxlKGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRFdmVudCwgcnVsZSkpOworfQorCit2b2lkIFdl
YktpdEZvbnRMb2FkZXI6OmZvbnRMb2FkZWQoQ1NTRm9udEZhY2VSdWxlKiBydWxlKQoreworICAg
IEFTU0VSVChtX2xvYWRpbmdDb3VudCA+IDApOworICAgIHNjaGVkdWxlRXZlbnQoV2ViS2l0Q1NT
Rm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZUZvckZvbnRGYWNlUnVsZShldmVudE5hbWVzKCkubG9h
ZEV2ZW50LCBydWxlKSk7CisKKyAgICAtLW1fbG9hZGluZ0NvdW50OworICAgIGlmICghbV9sb2Fk
aW5nQ291bnQpCisgICAgICAgIG1fbG9hZGluZ0RvbmVFdmVudCA9IFdlYktpdENTU0ZvbnRGYWNl
TG9hZEV2ZW50OjpjcmVhdGVGb3JGb250RmFjZVJ1bGUoZXZlbnROYW1lcygpLmxvYWRpbmdkb25l
RXZlbnQsIHJ1bGUpOworfQorCit2b2lkIFdlYktpdEZvbnRMb2FkZXI6OmxvYWRFcnJvcihDU1NG
b250RmFjZVJ1bGUqIHJ1bGUsIENTU0ZvbnRGYWNlU291cmNlKiBzb3VyY2UpCit7CisgICAgQVNT
RVJUKG1fbG9hZGluZ0NvdW50ID4gMCk7CisKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlcG9y
dCBOZXR3b3JrRXJyb3IgaW4gY2FzZSBvZiB0aW1lb3V0LCBldGMuCisgICAgU3RyaW5nIGVycm9y
TmFtZSA9IChzb3VyY2UgJiYgc291cmNlLT5pc0RlY29kZUVycm9yKCkpID8gIkludmFsaWRGb250
RGF0YUVycm9yIiA6ICJOb3RGb3VuZEVycm9yIjsKKyAgICBzY2hlZHVsZUV2ZW50KFdlYktpdENT
U0ZvbnRGYWNlTG9hZEV2ZW50OjpjcmVhdGVGb3JFcnJvcihydWxlLCBET01FcnJvcjo6Y3JlYXRl
KGVycm9yTmFtZSkpKTsKKyAgICAtLW1fbG9hZGluZ0NvdW50OworICAgIGlmICghbV9sb2FkaW5n
Q291bnQpCisgICAgICAgIG1fbG9hZGluZ0RvbmVFdmVudCA9IFdlYktpdENTU0ZvbnRGYWNlTG9h
ZEV2ZW50OjpjcmVhdGVGb3JGb250RmFjZVJ1bGUoZXZlbnROYW1lcygpLmxvYWRpbmdkb25lRXZl
bnQsIHJ1bGUpOworfQorCit2b2lkIFdlYktpdEZvbnRMb2FkZXI6Om5vdGlmeVdoZW5Gb250c1Jl
YWR5KFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBjYWxsYmFjaykKK3sKKyAgICBtX2NhbGxiYWNr
cy5hcHBlbmQoY2FsbGJhY2spOworICAgIGxvYWRpbmdEb25lKCk7Cit9CisKK3ZvaWQgV2ViS2l0
Rm9udExvYWRlcjo6bG9hZGluZ0RvbmUoKQoreworICAgIGlmIChsb2FkaW5nKCkpCisgICAgICAg
IHJldHVybjsKKyAgICBpZiAoIW1fbG9hZGluZ0RvbmVFdmVudCAmJiBtX2NhbGxiYWNrcy5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBtX2Rv
Y3VtZW50LT52aWV3KCkpIHsKKyAgICAgICAgaWYgKHZpZXctPmlzSW5MYXlvdXQoKSB8fCB2aWV3
LT5uZWVkc0xheW91dCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2RvY3VtZW50
LT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisgICAgICAgIGlmICh2aWV3LT5uZWVkc0xheW91dCgp
KQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChtX2xvYWRpbmdEb25lRXZl
bnQpCisgICAgICAgIGRpc3BhdGNoRXZlbnQobV9sb2FkaW5nRG9uZUV2ZW50LnJlbGVhc2UoKSk7
CisKKyAgICBpZiAoIW1fY2FsbGJhY2tzLmlzRW1wdHkoKSkgeworICAgICAgICBWZWN0b3I8UmVm
UHRyPFZvaWRDYWxsYmFjaz4gPiBjYWxsYmFja3M7CisgICAgICAgIG1fY2FsbGJhY2tzLnN3YXAo
Y2FsbGJhY2tzKTsKKyAgICAgICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IGNhbGxi
YWNrcy5zaXplKCk7ICsraW5kZXgpCisgICAgICAgICAgICBjYWxsYmFja3NbaW5kZXhdLT5oYW5k
bGVFdmVudCgpOworICAgIH0KK30KKwordm9pZCBXZWJLaXRGb250TG9hZGVyOjpsb2FkRm9udChj
b25zdCBEaWN0aW9uYXJ5JiBwYXJhbXMpCit7CisgICAgLy8gRklYTUU6IHRoZSB0ZXh0IG1lbWJl
ciBvZiBwYXJhbXMgaXMgaWdub3JlZC4KKyAgICBTdHJpbmcgZm9udFN0cmluZzsKKyAgICBSZWZQ
dHI8Vm9pZENhbGxiYWNrPiBvbnN1Y2Nlc3M7CisgICAgUmVmUHRyPFZvaWRDYWxsYmFjaz4gb25l
cnJvcjsKKyAgICBpZiAoIXBhcmFtcy5nZXQoImZvbnQiLCBmb250U3RyaW5nKSkKKyAgICAgICAg
cmV0dXJuOworICAgIHBhcmFtcy5nZXQoIm9uc3VjY2VzcyIsIG9uc3VjY2Vzcyk7CisgICAgcGFy
YW1zLmdldCgib25lcnJvciIsIG9uZXJyb3IpOworICAgIEZvbnQgZm9udDsKKyAgICBpZiAoIXJl
c29sdmVGb250U3R5bGUoZm9udFN0cmluZywgZm9udCkpCisgICAgICAgIHJldHVybjsKKyAgICBS
ZWZQdHI8TG9hZEZvbnRDYWxsYmFjaz4gY2FsbGJhY2s7CisgICAgaWYgKG9uc3VjY2VzcyB8fCBv
bmVycm9yKSB7CisgICAgICAgIGludCBudW1GYW1pbGllcyA9IDA7CisgICAgICAgIGZvciAoY29u
c3QgRm9udEZhbWlseSogZiA9ICZmb250LmZhbWlseSgpOyBmOyBmID0gZi0+bmV4dCgpKQorICAg
ICAgICAgICAgbnVtRmFtaWxpZXMrKzsKKyAgICAgICAgY2FsbGJhY2sgPSBMb2FkRm9udENhbGxi
YWNrOjpjcmVhdGUobnVtRmFtaWxpZXMsIG9uc3VjY2Vzcywgb25lcnJvcik7CisgICAgfQorICAg
IAorICAgIGZvciAoY29uc3QgRm9udEZhbWlseSogZiA9ICZmb250LmZhbWlseSgpOyBmOyBmID0g
Zi0+bmV4dCgpKSB7CisgICAgICAgIENTU1NlZ21lbnRlZEZvbnRGYWNlKiBmYWNlID0gbV9kb2N1
bWVudC0+c3R5bGVSZXNvbHZlcigpLT5mb250U2VsZWN0b3IoKS0+Z2V0Rm9udEZhY2UoZm9udC5m
b250RGVzY3JpcHRpb24oKSwgZi0+ZmFtaWx5KCkpOworICAgICAgICBpZiAoIWZhY2UpIHsKKyAg
ICAgICAgICAgIGlmIChjYWxsYmFjaykKKyAgICAgICAgICAgICAgICBjYWxsYmFjay0+bm90aWZ5
RXJyb3IoKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGZhY2Ut
PmxvYWRGb250KGZvbnQuZm9udERlc2NyaXB0aW9uKCksIGNhbGxiYWNrKTsKKyAgICB9Cit9CisK
K2Jvb2wgV2ViS2l0Rm9udExvYWRlcjo6Y2hlY2tGb250KGNvbnN0IFN0cmluZyYgZm9udFN0cmlu
ZywgY29uc3QgU3RyaW5nJikKK3sKKyAgICAvLyBGSVhNRTogdGhlIHNlY29uZCBwYXJhbWV0ZXIg
KHRleHQpIGlzIGlnbm9yZWQuCisgICAgRm9udCBmb250OworICAgIGlmICghcmVzb2x2ZUZvbnRT
dHlsZShmb250U3RyaW5nLCBmb250KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGZvciAo
Y29uc3QgRm9udEZhbWlseSogZiA9ICZmb250LmZhbWlseSgpOyBmOyBmID0gZi0+bmV4dCgpKSB7
CisgICAgICAgIENTU1NlZ21lbnRlZEZvbnRGYWNlKiBmYWNlID0gbV9kb2N1bWVudC0+c3R5bGVS
ZXNvbHZlcigpLT5mb250U2VsZWN0b3IoKS0+Z2V0Rm9udEZhY2UoZm9udC5mb250RGVzY3JpcHRp
b24oKSwgZi0+ZmFtaWx5KCkpOworICAgICAgICBpZiAoIWZhY2UgfHwgIWZhY2UtPmNoZWNrRm9u
dCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworYm9vbCBXZWJLaXRGb250TG9hZGVyOjpyZXNvbHZlRm9udFN0eWxlKGNvbnN0IFN0cmlu
ZyYgZm9udFN0cmluZywgRm9udCYgZm9udCkKK3sKKyAgICAvLyBJbnRlcnByZXQgZm9udFN0cmlu
ZyBpbiB0aGUgc2FtZSB3YXkgYXMgdGhlICdmb250JyBhdHRyaWJ1dGUgb2YgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELgorICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBwYXJzZWRTdHlsZSA9
IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOworICAgIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShw
YXJzZWRTdHlsZS5nZXQoKSwgQ1NTUHJvcGVydHlGb250LCBmb250U3RyaW5nLCB0cnVlLCBDU1NT
dHJpY3RNb2RlLCAwKTsKKyAgICBpZiAocGFyc2VkU3R5bGUtPmlzRW1wdHkoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIAorICAgIFN0cmluZyBmb250VmFsdWUgPSBwYXJzZWRTdHlsZS0+
Z2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUZvbnQpOworICAgIGlmIChmb250VmFsdWUgPT0g
ImluaGVyaXQiIHx8IGZvbnRWYWx1ZSA9PSAiaW5pdGlhbCIpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRl
KCk7CisKKyAgICBGb250RmFtaWx5IGZvbnRGYW1pbHk7CisgICAgZm9udEZhbWlseS5zZXRGYW1p
bHkoZGVmYXVsdEZvbnRGYW1pbHkpOworCisgICAgRm9udERlc2NyaXB0aW9uIGRlZmF1bHRGb250
RGVzY3JpcHRpb247CisgICAgZGVmYXVsdEZvbnREZXNjcmlwdGlvbi5zZXRGYW1pbHkoZm9udEZh
bWlseSk7CisgICAgZGVmYXVsdEZvbnREZXNjcmlwdGlvbi5zZXRTcGVjaWZpZWRTaXplKGRlZmF1
bHRGb250U2l6ZSk7CisgICAgZGVmYXVsdEZvbnREZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUo
ZGVmYXVsdEZvbnRTaXplKTsKKworICAgIHN0eWxlLT5zZXRGb250RGVzY3JpcHRpb24oZGVmYXVs
dEZvbnREZXNjcmlwdGlvbik7CisKKyAgICBzdHlsZS0+Zm9udCgpLnVwZGF0ZShzdHlsZS0+Zm9u
dCgpLmZvbnRTZWxlY3RvcigpKTsKKworICAgIC8vIE5vdyBtYXAgdGhlIGZvbnQgcHJvcGVydHkg
bG9uZ2hhbmRzIGludG8gdGhlIHN0eWxlLgorICAgIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2
ZXIgPSBtX2RvY3VtZW50LT5zdHlsZVJlc29sdmVyKCk7CisgICAgc3R5bGVSZXNvbHZlci0+YXBw
bHlQcm9wZXJ0eVRvU3R5bGUoQ1NTUHJvcGVydHlGb250RmFtaWx5LCBwYXJzZWRTdHlsZS0+Z2V0
UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUZvbnRGYW1pbHkpLmdldCgpLCBzdHlsZS5nZXQo
KSk7CisgICAgc3R5bGVSZXNvbHZlci0+YXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKENTU1By
b3BlcnR5Rm9udFN0eWxlLCBwYXJzZWRTdHlsZS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9w
ZXJ0eUZvbnRTdHlsZSkuZ2V0KCkpOworICAgIHN0eWxlUmVzb2x2ZXItPmFwcGx5UHJvcGVydHlU
b0N1cnJlbnRTdHlsZShDU1NQcm9wZXJ0eUZvbnRWYXJpYW50LCBwYXJzZWRTdHlsZS0+Z2V0UHJv
cGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUZvbnRWYXJpYW50KS5nZXQoKSk7CisgICAgc3R5bGVS
ZXNvbHZlci0+YXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKENTU1Byb3BlcnR5Rm9udFdlaWdo
dCwgcGFyc2VkU3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlGb250V2VpZ2h0
KS5nZXQoKSk7CisKKyAgICAvLyBBcyBkZXNjcmliZWQgaW4gQlVHNjYyOTEsIHNldHRpbmcgZm9u
dC1zaXplIGFuZCBsaW5lLWhlaWdodCBvbiBhIGZvbnQgbWF5IGVudGFpbCBhIENTU1ByaW1pdGl2
ZVZhbHVlOjpjb21wdXRlTGVuZ3RoRG91YmxlIGNhbGwsCisgICAgLy8gd2hpY2ggYXNzdW1lcyB0
aGUgZm9udE1ldHJpY3MgYXJlIGF2YWlsYWJsZSBmb3IgdGhlIGFmZmVjdGVkIGZvbnQsIG90aGVy
d2lzZSBhIGNyYXNoIG9jY3VycyAoc2VlIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0
Lzk2MTIyKS4KKyAgICAvLyBUaGUgdXBkYXRlRm9udCgpIGNhbGxzIGJlbG93IHVwZGF0ZSB0aGUg
Zm9udE1ldHJpY3MgYW5kIGVuc3VyZSB0aGUgcHJvcGVyIHNldHRpbmcgb2YgZm9udC1zaXplIGFu
ZCBsaW5lLWhlaWdodC4KKyAgICBzdHlsZVJlc29sdmVyLT51cGRhdGVGb250KCk7CisgICAgc3R5
bGVSZXNvbHZlci0+YXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKENTU1Byb3BlcnR5Rm9udFNp
emUsIHBhcnNlZFN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5Rm9udFNpemUp
LmdldCgpKTsKKyAgICBzdHlsZVJlc29sdmVyLT51cGRhdGVGb250KCk7CisgICAgc3R5bGVSZXNv
bHZlci0+YXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKENTU1Byb3BlcnR5TGluZUhlaWdodCwg
cGFyc2VkU3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlMaW5lSGVpZ2h0KS5n
ZXQoKSk7CisKKyAgICBmb250ID0gc3R5bGUtPmZvbnQoKTsKKyAgICBmb250LnVwZGF0ZShzdHls
ZVJlc29sdmVyLT5mb250U2VsZWN0b3IoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShGT05UX0xPQURFUikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRGb250TG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvV2ViS2l0Rm9udExvYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0ZTI5YjkxMmFhZDIwMTg5
ZGQzNjQyYTgwYjdjOGEwYmU5YWM2NTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0Rm9udExvYWRlci5oCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFNQUdFLgorICovCisK
KyNpZiBFTkFCTEUoRk9OVF9MT0FERVIpCisKKyNpZm5kZWYgV2ViS2l0Rm9udExvYWRlcl9oCisj
ZGVmaW5lIFdlYktpdEZvbnRMb2FkZXJfaAorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0Lmgi
CisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNp
bmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgorI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ2FjaGVk
Rm9udDsKK2NsYXNzIENTU0ZvbnRGYWNlUnVsZTsKK2NsYXNzIENTU0ZvbnRGYWNlU291cmNlOwor
Y2xhc3MgRGljdGlvbmFyeTsKK2NsYXNzIERvY3VtZW50OworY2xhc3MgRXZlbnQ7CitjbGFzcyBG
b250OworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKworY2xhc3MgV2ViS2l0Rm9udExv
YWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYktpdEZvbnRMb2FkZXI+LCBwdWJsaWMgQWN0aXZl
RE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJnZXQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFdlYktpdEZvbnRMb2FkZXI+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWY8V2ViS2l0Rm9udExvYWRlcj4obmV3IFdlYktpdEZv
bnRMb2FkZXIoZG9jdW1lbnQpKTsKKyAgICB9CisgICAgdmlydHVhbCB+V2ViS2l0Rm9udExvYWRl
cigpOworCisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihsb2FkaW5nKTsKKyAg
ICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGxvYWRpbmdkb25lKTsKKyAgICBERUZJ
TkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGxvYWRzdGFydCk7CisgICAgREVGSU5FX0FUVFJJ
QlVURV9FVkVOVF9MSVNURU5FUihsb2FkKTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJ
U1RFTkVSKGVycm9yKTsKKworICAgIGJvb2wgY2hlY2tGb250KGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYpOworICAgIHZvaWQgbG9hZEZvbnQoY29uc3QgRGljdGlvbmFyeSYpOworICAgIHZv
aWQgbm90aWZ5V2hlbkZvbnRzUmVhZHkoUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+KTsKKworICAg
IGJvb2wgbG9hZGluZygpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZGluZ0NvdW50ID4gMDsgfQorCisg
ICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgY29uc3Q7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGludGVyZmFjZU5hbWUo
KSBjb25zdDsKKworICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViS2l0Rm9udExvYWRlcj46OnJlZjsK
KyAgICB1c2luZyBSZWZDb3VudGVkPFdlYktpdEZvbnRMb2FkZXI+OjpkZXJlZjsKKworICAgIERv
Y3VtZW50KiBkb2N1bWVudCgpIHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KKworICAgIHZvaWQgZGlk
TGF5b3V0KCk7CisgICAgdm9pZCBiZWdpbkZvbnRMb2FkaW5nKENTU0ZvbnRGYWNlUnVsZSopOwor
ICAgIHZvaWQgZm9udExvYWRlZChDU1NGb250RmFjZVJ1bGUqKTsKKyAgICB2b2lkIGxvYWRFcnJv
cihDU1NGb250RmFjZVJ1bGUqLCBDU1NGb250RmFjZVNvdXJjZSopOworICAgIHZvaWQgbG9hZGlu
Z0RvbmUoKTsKKworcHJpdmF0ZToKKyAgICBXZWJLaXRGb250TG9hZGVyKERvY3VtZW50Kik7CisK
KyAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSB7IHJlZigpOyB9CisgICAgdmlydHVh
bCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSB7IGRlcmVmKCk7IH0KKyAgICB2aXJ0dWFsIEV2ZW50
VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCk7CisgICAgdmlydHVhbCBFdmVudFRhcmdldERh
dGEqIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpOworCisgICAgdm9pZCBzY2hlZHVsZUV2ZW50KFBh
c3NSZWZQdHI8RXZlbnQ+KTsKKyAgICB2b2lkIGZpcmVQZW5kaW5nRXZlbnRzKCk7CisgICAgYm9v
bCByZXNvbHZlRm9udFN0eWxlKGNvbnN0IFN0cmluZyYsIEZvbnQmKTsKKworICAgIERvY3VtZW50
KiBtX2RvY3VtZW50OworICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKKyAg
ICB1bnNpZ25lZCBtX2xvYWRpbmdDb3VudDsKKyAgICBWZWN0b3I8UmVmUHRyPEV2ZW50PiA+IG1f
cGVuZGluZ0V2ZW50czsKKyAgICBWZWN0b3I8UmVmUHRyPFZvaWRDYWxsYmFjaz4gPiBtX2NhbGxi
YWNrczsKKyAgICBSZWZQdHI8RXZlbnQ+IG1fbG9hZGluZ0RvbmVFdmVudDsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFdlYktpdEZvbnRMb2FkZXJfaAorI2VuZGlm
IC8vIEVOQUJMRShGT05UX0xPQURFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9X
ZWJLaXRGb250TG9hZGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRGb250TG9hZGVy
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kYWQ3YTMzNDA4NzkxODY3OThjYzk4OWQ3OWY4MWZiMzg3YzEyMzNm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdEZvbnRMb2FkZXIu
aWRsCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9Rk9OVF9MT0FERVIsCisgICAg
QWN0aXZlRE9NT2JqZWN0LAorICAgIEV2ZW50VGFyZ2V0LAorICAgIEdlbmVyYXRlSXNSZWFjaGFi
bGU9SW1wbERvY3VtZW50LAorXSBpbnRlcmZhY2UgV2ViS2l0Rm9udExvYWRlciB7CisKKyAgICBh
dHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmxvYWRpbmc7CisgICAgYXR0cmlidXRlIEV2ZW50TGlz
dGVuZXIgb25sb2FkaW5nZG9uZTsKKyAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmxvYWRz
dGFydDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmxvYWQ7CisgICAgYXR0cmlidXRl
IEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKKworICAgIGJvb2xlYW4gY2hlY2tGb250KGluIERPTVN0
cmluZyBmb250LCBpbiBbT3B0aW9uYWw9RGVmYXVsdElzTnVsbFN0cmluZ10gRE9NU3RyaW5nIHRl
eHQpOworICAgIHZvaWQgbG9hZEZvbnQoaW4gRGljdGlvbmFyeSBwYXJhbXMpOworICAgIHZvaWQg
bm90aWZ5V2hlbkZvbnRzUmVhZHkoaW4gW0NhbGxiYWNrXSBWb2lkQ2FsbGJhY2sgY2FsbGJhY2sp
OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGxvYWRpbmc7CisKKyAgICB2b2lkIGFk
ZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICB2b2lkIHJlbW92ZUV2ZW50
TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICBib29sZWFuIGRpc3BhdGNo
RXZlbnQoaW4gRXZlbnQgZXZ0KQorICAgICAgICByYWlzZXMoRXZlbnRFeGNlcHRpb24pOworfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGY2M2U1ZDczOWEwOGNhNzBhNTQ3MTc3MzZjOTBk
ZDEzYTljMWMzY2EuLjYwNGU2NjUxNGZkZDMyMjBjMjYzYzQ3ZWUxYmFlNmEzNWI3NDg2MTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTYzLDYgKzE2Myw3IEBACiAjaW5jbHVkZSAiVXNl
ckNvbnRlbnRVUkxQYXR0ZXJuLmgiCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtTdGF0ZS5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJXZWJLaXRG
b250TG9hZGVyLmgiCiAjaW5jbHVkZSAiV2ViS2l0TmFtZWRGbG93LmgiCiAjaW5jbHVkZSAiWE1M
RG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgpAQCAtNDgwLDYg
KzQ4MSw5IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVy
bCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVO
VCkKICAgICAsIG1fdGVtcGxhdGVEb2N1bWVudEhvc3QoMCkKICNlbmRpZgorI2lmIEVOQUJMRShG
T05UX0xPQURFUikKKyAgICAsIG1fd2Via2l0Rm9udGxvYWRlcigwKQorI2VuZGlmCiB7CiAgICAg
c2V0VHJlZVNjb3BlKHRoaXMpOwogCkBAIC02MDQ4LDQgKzYwNTIsMTMgQEAgRG9jdW1lbnQqIERv
Y3VtZW50OjplbnN1cmVUZW1wbGF0ZURvY3VtZW50KCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxF
KEZPTlRfTE9BREVSKQorUGFzc1JlZlB0cjxXZWJLaXRGb250TG9hZGVyPiBEb2N1bWVudDo6d2Vi
a2l0Rm9udGxvYWRlcigpCit7CisgICAgaWYgKCFtX3dlYmtpdEZvbnRsb2FkZXIpCisgICAgICAg
IG1fd2Via2l0Rm9udGxvYWRlciA9IFdlYktpdEZvbnRMb2FkZXI6OmNyZWF0ZSh0aGlzKTsKKyAg
ICByZXR1cm4gbV93ZWJraXRGb250bG9hZGVyOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMTI2NDM4ZDcwZWYwMTYxYmMyYWZlOGZj
ZWE3NjhhNGJjODcwMzdhYi4uOTZhNjBhMjM2MTg1MzNmZmMzM2FjYjVkMDc1NDY0ZGQ3NDE5NzBl
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTE4OCw2ICsxODgsMTAgQEAgY2xhc3MgVGV4dEF1
dG9zaXplcjsKIGNsYXNzIERPTVNlY3VyaXR5UG9saWN5OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
Rk9OVF9MT0FERVIpCitjbGFzcyBXZWJLaXRGb250TG9hZGVyOworI2VuZGlmCisKIHR5cGVkZWYg
aW50IEV4Y2VwdGlvbkNvZGU7CiAKIGVudW0gUGFnZXNob3dFdmVudFBlcnNpc3RlbmNlIHsKQEAg
LTEyMDYsNiArMTIxMCwxMCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luKiB0b3BPcmlnaW4oKSBjb25zdCBPVkVSUklERTsKIAorI2lmIEVOQUJMRShGT05UX0xP
QURFUikKKyAgICBQYXNzUmVmUHRyPFdlYktpdEZvbnRMb2FkZXI+IHdlYmtpdEZvbnRsb2FkZXIo
KTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBLVVJM
JiwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCk7CiAKQEAgLTE1NzAsNiArMTU3OCwxMCBAQCBw
cml2YXRlOgogICAgIFJlZlB0cjxEb2N1bWVudD4gbV90ZW1wbGF0ZURvY3VtZW50OwogICAgIERv
Y3VtZW50KiBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0OyAvLyBNYW51YWxseSBtYW5hZ2VkIHdlYWty
ZWYgKGJhY2twb2ludGVyIGZyb20gbV90ZW1wbGF0ZURvY3VtZW50KS4KICNlbmRpZgorCisjaWYg
RU5BQkxFKEZPTlRfTE9BREVSKQorICAgIFJlZlB0cjxXZWJLaXRGb250TG9hZGVyPiBtX3dlYmtp
dEZvbnRsb2FkZXI7CisjZW5kaWYKIH07CiAKIGlubGluZSB2b2lkIERvY3VtZW50Ojpub3RpZnlS
ZW1vdmVQZW5kaW5nU2hlZXRJZk5lZWRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAppbmRleCA0
ZDRlOWZiNDk1MjZhODg1MTFhOGM3NDJmMWJiNjQ3NDBiNzM5MWFjLi41NmFmZDAzZDQ1NWFkNzhi
ODFlYTE4Nzg4MWI0M2FhYTc2YjA3YjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKQEAgLTI2
Miw2ICsyNjIsMTAgQEAKIAogICAgIFtDb25kaXRpb25hbD1DU1NfUkVHSU9OUywgVjhFbmFibGVk
QXRSdW50aW1lPWNzc1JlZ2lvbnNdIERPTU5hbWVkRmxvd0NvbGxlY3Rpb24gd2Via2l0R2V0TmFt
ZWRGbG93cygpOwogCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFH
RV9KQVZBU0NSSVBUCisgICAgW0NvbmRpdGlvbmFsPUZPTlRfTE9BREVSXSByZWFkb25seSBhdHRy
aWJ1dGUgV2ViS2l0Rm9udExvYWRlciB3ZWJraXRGb250bG9hZGVyOworI2VuZGlmCisKICNpZiAh
ZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgfHwgIUxBTkdVQUdFX09CSkVDVElWRV9DCiAg
ICAgLy8gRXZlbnQgaGFuZGxlciBET00gYXR0cmlidXRlcwogICAgIFtOb3RFbnVtZXJhYmxlXSBh
dHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmFib3J0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5k
ZXggMjJhN2IzMmJhYjc5YmM1MjYwMDc2NDFhM2I5MWNjNDBjNTFiNGM2ZC4uM2I1ZjIzMjIyNGUz
OWNiY2FkMTNhMzk3OTc0MjdiNjkwOWNkMmNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBA
IC04NCw2ICs4NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhrZXl1cCkgXAog
ICAgIG1hY3JvKGxldmVsY2hhbmdlKSBcCiAgICAgbWFjcm8obG9hZCkgXAorICAgIG1hY3JvKGxv
YWRpbmcpIFwKKyAgICBtYWNybyhsb2FkaW5nZG9uZSkgXAogICAgIG1hY3JvKGxvYWRzdGFydCkg
XAogICAgIG1hY3JvKG1lc3NhZ2UpIFwKICAgICBtYWNybyhtb3VzZWRvd24pIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50TmFtZXMuaW4KaW5kZXggYzA0YjAyNWNlYzQwNzA0NzJjMzIyZWFlMGZhNjdhOGVmNmRk
YzYwZi4uNGYzNWM3YzdhYTJkYWUzOWEwZDlhN2RjNzNiYzVjYjVjOWVhYWY2ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50TmFtZXMuaW4KQEAgLTI2LDYgKzI2LDcgQEAgVHJhbnNpdGlvbkV2ZW50CiBVSUV2
ZW50CiBVSUV2ZW50cyBpbnRlcmZhY2VOYW1lPVVJRXZlbnQKIFdlYktpdEFuaW1hdGlvbkV2ZW50
CitXZWJLaXRDU1NGb250RmFjZUxvYWRFdmVudCBjb25kaXRpb25hbD1GT05UX0xPQURFUgogV2Vi
S2l0VHJhbnNpdGlvbkV2ZW50CiBXaGVlbEV2ZW50CiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4g
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCmluZGV4IGNmNWFjZjc1
YzNiZTQ5MDMwZDM4NzEyMzkzMDM4NGUxODAwNGY0YzguLjQzOTk0MzgyZGJkZWU5ZjA4MzE3OTk4
ZDJlOGE1ZTEyM2MwYTQ0YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRh
cmdldEZhY3RvcnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9y
eS5pbgpAQCAtMzYsNiArMzYsNyBAQCBTVkdFbGVtZW50SW5zdGFuY2UgY29uZGl0aW9uYWw9U1ZH
CiBUZXh0VHJhY2sgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sKIFRleHRUcmFja0N1ZSBjb25kaXRp
b25hbD1WSURFT19UUkFDSwogVGV4dFRyYWNrTGlzdCBjb25kaXRpb25hbD1WSURFT19UUkFDSwor
V2ViS2l0Rm9udExvYWRlciBjb25kaXRpb25hbD1GT05UX0xPQURFUgogV2ViS2l0TmFtZWRGbG93
CiBXZWJTb2NrZXQgY29uZGl0aW9uYWw9V0VCX1NPQ0tFVFMKIFdvcmtlciBjb25kaXRpb25hbD1X
T1JLRVJTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggZGFjYTA4ODEwYzk1MThkZjM4
Y2JmY2JiNDhlMjIyMzQxZWI2Mjk0OS4uZGU1OGQ5NGRjMDZhMjc2NDk5NTdjZGNlMTkxMGZkM2Yx
MzQ5NWM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNjksNiArNjksNyBAQAog
I2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVy
LmgiCiAjaW5jbHVkZSAiVGV4dFN0cmVhbS5oIgorI2luY2x1ZGUgIldlYktpdEZvbnRMb2FkZXIu
aCIKIAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9UZW1wb3Jh
cnlDaGFuZ2UuaD4KQEAgLTI1NjksNiArMjU3MCw5IEBAIHZvaWQgRnJhbWVWaWV3OjpwZXJmb3Jt
UG9zdExheW91dFRhc2tzKCkKICAgICB9CiAKICAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+ZGlkTGF5
b3V0KG1pbGVzdG9uZXNBY2hpZXZlZCk7CisjaWYgRU5BQkxFKEZPTlRfTE9BREVSKQorICAgIG1f
ZnJhbWUtPmRvY3VtZW50KCktPndlYmtpdEZvbnRsb2FkZXIoKS0+ZGlkTGF5b3V0KCk7CisjZW5k
aWYKICAgICAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNvbnNpZGVyIGFkZGluZyBEaWRMYXlv
dXQgYXMgYSBMYXlvdXRNaWxlc3RvbmUuIFRoYXQgd291bGQgbGV0IHVzIG1lcmdlIHRoaXMKICAg
ICAvLyB3aXRoIGRpZExheW91dChMYXlvdXRNaWxlc3RvbmVzKS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
ZmVhdHVyZXMuZ3lwaQppbmRleCBmMmUwYTQxMjc4MjU0NGVkN2U1MmYyZWE0MDE3OTgwNjhiMTE2
ZDAyLi5iYWJiNjBjODNhOTIxMjQ2YmMxYzBlNDEyNmNlZGMzNTA1OWE5YWNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCkBAIC02Nyw2ICs2Nyw3IEBACiAgICAgICAnRU5BQkxF
X0VOQ1JZUFRFRF9NRURJQT0xJywKICAgICAgICdFTkFCTEVfRklMRV9TWVNURU09MScsCiAgICAg
ICAnRU5BQkxFX0ZJTFRFUlM9MScsCisgICAgICAnRU5BQkxFX0ZPTlRfTE9BREVSPTEnLAogICAg
ICAgJ0VOQUJMRV9GVUxMU0NSRUVOX0FQST0xJywKICAgICAgICdFTkFCTEVfR0FNRVBBRD0xJywK
ICAgICAgICdFTkFCTEVfR0VPTE9DQVRJT049MScsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWIzOTU2NGIyYzY0OTE5NTg3
MWM1Y2U3NmQ2NzljN2JmMWJiYjhlMy4uMjY4YzA3NjljNmY3MjY3MTRmMmRjNDIxMDJjZGI5ZTQ1
NjVhMTE4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEzLTAyLTE3ICBLdW5paGlrbyBTYWth
bW90byAgPGtzYWthbW90b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IEZvbnRM
b2FkZXIgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05ODM5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCB0ZXN0cyBmb3IgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci4gU2luY2UgdGhl
IGZlYXR1cmUgaXMgY3VycmVudGx5IGVuYWJsZWQKKyAgICAgICAgb25seSBmb3IgY2hyb21pdW0s
IHRoZSB0ZXN0cyBhcmUgZXhwZWN0ZWQgdG8gZmFpbCBvbiB0aGUgb3RoZXIgcG9ydHMuCisKKyAg
ICAgICAgKiBmYXN0L2Nzcy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvZm9udGxvYWRlci1kb3dubG9hZC1lcnJvci5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9mb250bG9hZGVyLWV2ZW50cy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2ZvbnRsb2FkZXItZXZlbnRzLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2ZvbnRsb2FkZXItbG9hZGluZ2RvbmUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9mb250bG9hZGVyLWxvYWRpbmdkb25lLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMt
ZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9m
b250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFtaWxpZXMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9mb250bG9hZGVyLW11bHRp
cGxlLWZhbWlsaWVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZm9udC9m
b250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy93ZWJmb250L2ZvbnRsb2FkZXItbG9hZGluZy1hdHRyaWJ1dGUuaHRtbDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1k
b3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1sb2FkaW5nZG9u
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3Qv
Y3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVy
LW11bHRpcGxlLWZhY2VzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYW1pbGllcy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2Fk
ZXItbm90aWZ5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vaHR0cC90ZXN0cy93ZWJmb250L2ZvbnRsb2FkZXItbG9hZGluZy1hdHRyaWJ1dGUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKwogMjAxMy0wMi0xOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0
Lm9yZz4KIAogICAgICAgICBBZGQgYSBmbGFreSBjcmFzaCBleHBlY3RhdGlvbiB0byB2aWRlby1j
b250cm9scy1jYXB0aW9ucy10cmFja21lbnUuaHRtbCBvbiBNYWMgcGVyIGJ1ZyAxMTAxNzMuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9y
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZG93bmxvYWQt
ZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzYTNjNTQ1MGFiM2E2OTdhOGMxMjVlZDkw
MDY2NTExZTg3YmMzOGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9m
b250bG9hZGVyLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitU
ZXN0IGRvd25sb2FkIGVycm9yIGNhc2VzLiAibG9hZCIgb3IgImVycm9yIiBldmVudHMgc2hvdWxk
IGJlIGZpcmVkIGV4YWN0bHkgb25jZSBmb3IgZWFjaCBAZm9udC1mYWNlIHJ1bGUuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitGQUlMIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIg
ZG9lcyBub3QgZXhpc3QKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorZm9udDEKK2ZvbnQyCitmb250MworZm9udDQKK2ZvbnQ1CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9yLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9yLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTQ1MGM5YTBmNWYzYzUwOGNmYzM3OTllYzkwZmVkMjlhYmFmYzlmMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3IuaHRt
bApAQCAtMCwwICsxLDgwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisvKiBUZXN0IDE6IElu
dmFsaWQgZm9udCBkYXRhICovCitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogbXlmb250
MTsKKyAgICBzcmM6IHVybCgncmVzb3VyY2VzL2ludmFsaWRmb250LnBuZycpIGZvcm1hdChvcGVu
dHlwZSk7Cit9CisKKy8qIFRlc3QgMjogRG93bmxvYWQgZXJyb3IgKi8KK0Bmb250LWZhY2Ugewor
ICAgIGZvbnQtZmFtaWx5OiBteWZvbnQyOworICAgIHNyYzogdXJsKCdyZXNvdXJjZXMvRG93bkxv
YWRFcnJvckFoZW0ub3RmJyk7Cit9CisKKy8qIFRlc3QgMzogRW1wdHkgZGF0YSB1cmwgKi8KK0Bm
b250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiBteWZvbnQzOworICAgIHNyYzogdXJsKGRhdGE6
YXBwbGljYXRpb24veC10cnVldHlwZS1mb250LCkgZm9ybWF0KHRydWV0eXBlKTsKK30KKworLyog
VGVzdCA0OiBEb3dubG9hZCBlcnJvciBmb2xsb3dlZCBieSBleGlzdGluZyBsb2NhbCBmb250ICov
CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogbXlmb250NDsKKyAgICBzcmM6IHVybCgn
cmVzb3VyY2VzL0Rvd25Mb2FkRXJyb3JBaGVtLm90ZicpLCBsb2NhbCgnQ291cmllciBOZXcnKTsK
K30KKworLyogVGVzdCA1OiBNdWx0aXBsZSBlcnJvcnMgKi8KK0Bmb250LWZhY2UgeworICAgIGZv
bnQtZmFtaWx5OiBteWZvbnQ1OworICAgIHNyYzogdXJsKCdyZXNvdXJjZXMvRG93bkxvYWRFcnJv
ckFoZW0ub3RmJyksIHVybChkYXRhOmFwcGxpY2F0aW9uL3gtdHJ1ZXR5cGUtZm9udCwpIGZvcm1h
dCh0cnVldHlwZSk7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGRv
d25sb2FkIGVycm9yIGNhc2VzLiAibG9hZCIgb3IgImVycm9yIiBldmVudHMgc2hvdWxkIGJlIGZp
cmVkIGV4YWN0bHkgb25jZSBmb3IgZWFjaCBAZm9udC1mYWNlIHJ1bGUuJyk7CisKK3dpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV2ZW50cyA9IHt9OworCitmdW5jdGlvbiBsb2dF
dmVudChlKSB7CisgICAgdmFyIGZhbWlseSA9IGUuZm9udGZhY2Uuc3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgnZm9udC1mYW1pbHknKTsKKyAgICBpZiAoIWV2ZW50c1tmYW1pbHldKQorICAgICAgICBl
dmVudHNbZmFtaWx5XSA9IFtdOworICAgIGV2ZW50c1tmYW1pbHldLnB1c2goZS50eXBlKTsKK30K
KworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5h
ZGRFdmVudExpc3RlbmVyKCdsb2Fkc3RhcnQnLCBsb2dFdmVudCk7CisgICAgZG9jdW1lbnQud2Vi
a2l0Rm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgbG9nRXZlbnQpOworICAgIGRv
Y3VtZW50LndlYmtpdEZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBsb2dFdmVu
dCk7CisKKyAgICBkb2N1bWVudC53ZWJraXRGb250bG9hZGVyLm5vdGlmeVdoZW5Gb250c1JlYWR5
KGZ1bmN0aW9uKCkgeworICAgICAgICBzaG91bGRCZSgiZXZlbnRzWydteWZvbnQxJ10iLCAiWyds
b2Fkc3RhcnQnLCAnZXJyb3InXSIpOworICAgICAgICBzaG91bGRCZSgiZXZlbnRzWydteWZvbnQy
J10iLCAiWydsb2Fkc3RhcnQnLCAnZXJyb3InXSIpOworICAgICAgICBzaG91bGRCZSgiZXZlbnRz
WydteWZvbnQzJ10iLCAiWydsb2Fkc3RhcnQnLCAnZXJyb3InXSIpOworICAgICAgICBzaG91bGRC
ZSgiZXZlbnRzWydteWZvbnQ0J10iLCAiWydsb2Fkc3RhcnQnLCAnbG9hZCddIik7CisgICAgICAg
IHNob3VsZEJlKCJldmVudHNbJ215Zm9udDUnXSIsICJbJ2xvYWRzdGFydCcsICdlcnJvciddIik7
CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworfQorCitpZiAoZG9jdW1lbnQud2Vi
a2l0Rm9udGxvYWRlcikKKyAgICBydW5UZXN0cygpOworZWxzZSB7CisgICAgdGVzdEZhaWxlZCgn
ZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlciBkb2VzIG5vdCBleGlzdCcpOworICAgIGZpbmlzaEpT
VGVzdCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBzdHlsZT0iZm9u
dC1mYW1pbHk6IG15Zm9udDEiPmZvbnQxPC9kaXY+CisgIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5
OiBteWZvbnQyIj5mb250MjwvZGl2PgorICA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogbXlmb250
MyI+Zm9udDM8L2Rpdj4KKyAgPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IG15Zm9udDQiPmZvbnQ0
PC9kaXY+CisgIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBteWZvbnQ1Ij5mb250NTwvZGl2Pgor
ICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250
bG9hZGVyLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9h
ZGVyLWV2ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVlMjY4MzFkN2NlZDY5ZmY4ODg1
MDc0NzExYjhjNWIyOThjODlmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2ZvbnRsb2FkZXItZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0
IHRoYXQgdGhlIGV2ZW50IGhhbmRsZXJzIG9mIEZvbnRMb2FkZXIgYXJlIGNhbGxlZCBpbiB0aGUg
Y29ycmVjdCBvcmRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ZBSUwgZG9j
dW1lbnQud2Via2l0Rm9udGxvYWRlciBkb2VzIG5vdCBleGlzdAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitIZWxsbywgd29ybGQhCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvZm9udGxvYWRlci1ldmVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDI0MWEyMjA1
ZDg4YWY5MGYzZmYzMGY3YzA0YzI1YzZhMDRjNmExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1ldmVudHMuaHRtbApAQCAtMCwwICsxLDQ5IEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgZm9udC1mYW1pbHk6ICdhaGVt
JzsKKyAgc3JjOiB1cmwoLi4vLi4vcmVzb3VyY2VzL0FoZW0udHRmKTsKK30KKzwvc3R5bGU+Cis8
c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCB0aGUgZXZlbnQgaGFuZGxlcnMgb2YgRm9u
dExvYWRlciBhcmUgY2FsbGVkIGluIHRoZSBjb3JyZWN0IG9yZGVyLicpOworCit3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBldmVudDsKK3ZhciBudW1iZXJPZkV2ZW50cyA9IDA7
CisKK2Z1bmN0aW9uIGhhbmRsZUV2ZW50KGUpIHsKKyAgICBldmVudCA9IGU7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdldmVudC50eXBlJywgWydsb2FkaW5nJywgJ2xvYWRzdGFydCcsICds
b2FkJywgJ2xvYWRpbmdkb25lJ11bbnVtYmVyT2ZFdmVudHNdKTsKKyAgICBudW1iZXJPZkV2ZW50
cysrOworfQorCitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAgICBkb2N1bWVudC53ZWJraXRGb250
bG9hZGVyLm9ubG9hZGluZyA9IGhhbmRsZUV2ZW50OworICAgIGRvY3VtZW50LndlYmtpdEZvbnRs
b2FkZXIub25sb2FkaW5nZG9uZSA9IGhhbmRsZUV2ZW50OworICAgIGRvY3VtZW50LndlYmtpdEZv
bnRsb2FkZXIub25sb2Fkc3RhcnQgPSBoYW5kbGVFdmVudDsKKyAgICBkb2N1bWVudC53ZWJraXRG
b250bG9hZGVyLm9ubG9hZCA9IGhhbmRsZUV2ZW50OworICAgIGRvY3VtZW50LndlYmtpdEZvbnRs
b2FkZXIub25lcnJvciA9IGhhbmRsZUV2ZW50OworCisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxv
YWRlci5ub3RpZnlXaGVuRm9udHNSZWFkeShmdW5jdGlvbigpIHsKKyAgICAgICAgc2hvdWxkQmUo
J251bWJlck9mRXZlbnRzJywgJzQnKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7
Cit9CisKK2lmIChkb2N1bWVudC53ZWJraXRGb250bG9hZGVyKQorICAgIHJ1blRlc3RzKCk7Citl
bHNlIHsKKyAgICB0ZXN0RmFpbGVkKCdkb2N1bWVudC53ZWJraXRGb250bG9hZGVyIGRvZXMgbm90
IGV4aXN0Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorICA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogYWhlbSI+SGVsbG8sIHdvcmxkITwvZGl2
PgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9m
b250bG9hZGVyLWxvYWRpbmdkb25lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2ZvbnRsb2FkZXItbG9hZGluZ2RvbmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlYWFmYjZh
ZDAzNjRhMmRjYzhkMmM4ODBjMjVjYzRkNjE4MmI4MTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWxvYWRpbmdkb25lLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEwIEBACitUZXN0IHRoYXQgb25sb2FkaW5nZG9uZSBpcyBmaXJlZCBhZnRlciBzdHls
ZSByZWNhbGN1bGF0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRkFJTCBk
b2N1bWVudC53ZWJraXRGb250bG9hZGVyIGRvZXMgbm90IGV4aXN0CitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK2FhYQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1sb2FkaW5nZG9uZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvZm9udGxvYWRlci1sb2FkaW5nZG9uZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkZWY4NDM0
ODI4MWI1YTY0MDIyOThlMjNlYmI1N2FmMTc0Yjk2YjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWxvYWRpbmdkb25lLmh0bWwKQEAgLTAsMCArMSw1
NCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorYm9keSB7CisgIGZvbnQtZmFtaWx5OiBzZXJp
ZjsKK30KK0Bmb250LWZhY2UgeworICBmb250LWZhbWlseTogJ2FoZW0nOworICBzcmM6IHVybCgu
Li8uLi9yZXNvdXJjZXMvQWhlbS50dGYpOworfQorI3Rlc3QgeworICBwb3NpdGlvbjogYWJzb2x1
dGUKK30KKyN0ZXN0IHNwYW4geworICBmb250LWZhbWlseTogYWhlbTsKK30KKzwvc3R5bGU+Cis8
c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCBvbmxvYWRpbmdkb25lIGlzIGZpcmVkIGFm
dGVyIHN0eWxlIHJlY2FsY3VsYXRpb24uJyk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRl
ci5vbmxvYWRpbmdkb25lID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGRlYnVnKCdsb2FkaW5nZG9u
ZScpOworICAgICAgICB0ZXN0RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsK
KyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0
ZXN0RGl2LCAwKS53aWR0aCcsICc0OHB4Jyk7CisgICAgfTsKKworICAgIGRvY3VtZW50LndlYmtp
dEZvbnRsb2FkZXIubm90aWZ5V2hlbkZvbnRzUmVhZHkoZnVuY3Rpb24oKSB7CisgICAgICAgIGRl
YnVnKCdub3RpZnlXaGVuRm9udHNSZWFkeSgpIGNhbGxiYWNrJyk7CisgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdERpdiwgMCkud2lkdGgn
LCAnNDhweCcpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKK30KKworaWYgKGRv
Y3VtZW50LndlYmtpdEZvbnRsb2FkZXIpCisgICAgcnVuVGVzdHMoKTsKK2Vsc2UgeworICAgIHRl
c3RGYWlsZWQoJ2RvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QnKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYg
aWQ9dGVzdD4KKyAgICA8YSBocmVmPSIjIj4KKyAgICAgIDxzcGFuPmFhYTwvc3Bhbj4KKyAgICA8
L2E+CisgIDwvZGl2PgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMt
ZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0YWIxMTMzOTViMzg0ZjAy
YWJlOGMwOTVlZWUxMGIwYjhhNWY2MzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGxvYWQgZXZlbnRzIGZvciBhIGZvbnQgZmFtaWx5
IGNvbnNpc3RzIG9mIG11bHRpcGxlIEBmb250LWZhY2VzLCBpbmNsdWRpbmcgZG93bmxvYWQgZXJy
b3IuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitGQUlMIGRvY3VtZW50LndlYmtp
dEZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9m
b250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzQxYzM4OTIzNzIxOTI0YTc4YTlhMzE2YTUyNDE0YTgwZDExYWI5OAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUt
ZmFjZXMtZG93bmxvYWQtZXJyb3IuaHRtbApAQCAtMCwwICsxLDcwIEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogVGVzdEZvbnQ7CisgICAg
c3JjOiB1cmwoLi4vLi4vcmVzb3VyY2VzL0FoZW0udHRmKTsKK30KKworQGZvbnQtZmFjZSB7Cisg
ICAgZm9udC1mYW1pbHk6IFRlc3RGb250OworICAgIHNyYzogdXJsKCdyZXNvdXJjZXMvRG93bkxv
YWRFcnJvckFoZW0ub3RmJyk7CisgICAgdW5pY29kZS1yYW5nZTogdSs2MS03YTsgLyogJ2EnLSd6
JyAqLworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBsb2FkIGV2ZW50
cyBmb3IgYSBmb250IGZhbWlseSBjb25zaXN0cyBvZiBtdWx0aXBsZSBAZm9udC1mYWNlcywgaW5j
bHVkaW5nIGRvd25sb2FkIGVycm9yLicpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
CisKK3ZhciBldmVudHMgPSB7fTsKKworZnVuY3Rpb24gY291bnRFdmVudChlKSB7CisgICAgaWYg
KCFldmVudHNbZS50eXBlXSkKKyAgICAgICAgZXZlbnRzW2UudHlwZV0gPSAwOworICAgIGV2ZW50
c1tlLnR5cGVdICs9IDE7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICAgIGRvY3VtZW50
LndlYmtpdEZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGluZycsIGNvdW50RXZlbnQp
OworICAgIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZHN0
YXJ0JywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5hZGRFdmVu
dExpc3RlbmVyKCdsb2FkJywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxv
YWRlci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGNvdW50RXZlbnQpOworICAgIGRvY3VtZW50
LndlYmtpdEZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGluZ2RvbmUnLCBjb3VudEV2
ZW50KTsKKworICAgIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIubG9hZEZvbnQoeyBmb250OiAn
MTBweCBUZXN0Rm9udCcsIG9uc3VjY2Vzczogb25zdWNjZXNzLCBvbmVycm9yOiBvbmVycm9yIH0p
OworICAgIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIubm90aWZ5V2hlbkZvbnRzUmVhZHkodmVy
aWZ5KTsKK30KKworZnVuY3Rpb24gb25zdWNjZXNzKCkgeworICAgIHRlc3RGYWlsZWQoIkV4cGVj
dGVkIGVycm9yLCBidXQgb25zdWNjZXNzKCkgY2FsbGVkIik7CisgICAgb25lcnJvcigpOworfQor
CitmdW5jdGlvbiBvbmVycm9yKCkgeworICAgIHNob3VsZEJlKCJldmVudHNbJ2xvYWRpbmcnXSIs
ICIxIik7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZHN0YXJ0J10iLCAiMiIpOworICAgIHNo
b3VsZEJlKCJldmVudHNbJ2xvYWQnXSIsICIxIik7CisgICAgc2hvdWxkQmUoImV2ZW50c1snZXJy
b3InXSIsICIxIik7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZGluZ2RvbmUnXSIsICJ1bmRl
ZmluZWQiKTsKKyAgICBzaG91bGRCZSgiZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5jaGVja0Zv
bnQoJzEwcHggVGVzdEZvbnQnKSIsICJmYWxzZSIpOworfQorCitmdW5jdGlvbiB2ZXJpZnkoKSB7
CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZGluZ2RvbmUnXSIsICIxIik7CisgICAgZmluaXNo
SlNUZXN0KCk7Cit9CisKK2lmIChkb2N1bWVudC53ZWJraXRGb250bG9hZGVyKQorICAgIHJ1blRl
c3RzKCk7CitlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKCdkb2N1bWVudC53ZWJraXRGb250bG9hZGVy
IGRvZXMgbm90IGV4aXN0Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjE5ZmY4NTgyZjM0OTA2ZmExOGM4ODRiMmYwYzkzZjVhMDY0ZmE3NzUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZh
Y2VzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGxvYWQgZXZlbnRzIGZvciBh
IGZvbnQgZmFtaWx5IGNvbnNpc3RzIG9mIG11bHRpcGxlIEBmb250LWZhY2VzLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworRkFJTCBkb2N1bWVudC53ZWJraXRGb250bG9hZGVyIGRv
ZXMgbm90IGV4aXN0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0
aXBsZS1mYWNlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBs
ZS1mYWNlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzNWNmNzFjMzQ4YThlODg0Y2NmNDBjMWViNzQ2M2Vk
YzQyNjM3ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9h
ZGVyLW11bHRpcGxlLWZhY2VzLmh0bWwKQEAgLTAsMCArMSw3MCBAQAorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6IFRlc3RGb250OworICAgIHNy
YzogbG9jYWwoJ0NvdXJpZXIgTmV3Jyk7Cit9CisKK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFt
aWx5OiBUZXN0Rm9udDsKKyAgICBzcmM6IHVybCguLi8uLi9yZXNvdXJjZXMvQWhlbS50dGYpOwor
ICAgIHVuaWNvZGUtcmFuZ2U6IHUrNjEtN2E7IC8qICdhJy0neicgKi8KK30KKzwvc3R5bGU+Cis8
c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgbG9hZCBldmVudHMgZm9yIGEgZm9udCBmYW1pbHkg
Y29uc2lzdHMgb2YgbXVsdGlwbGUgQGZvbnQtZmFjZXMuJyk7CisKK3dpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKwordmFyIGV2ZW50cyA9IHt9OworCitmdW5jdGlvbiBjb3VudEV2ZW50KGUp
IHsKKyAgICBpZiAoIWV2ZW50c1tlLnR5cGVdKQorICAgICAgICBldmVudHNbZS50eXBlXSA9IDA7
CisgICAgZXZlbnRzW2UudHlwZV0gKz0gMTsKK30KKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7Cisg
ICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkaW5nJywg
Y291bnRFdmVudCk7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5hZGRFdmVudExpc3Rl
bmVyKCdsb2Fkc3RhcnQnLCBjb3VudEV2ZW50KTsKKyAgICBkb2N1bWVudC53ZWJraXRGb250bG9h
ZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBjb3VudEV2ZW50KTsKKyAgICBkb2N1bWVudC53
ZWJraXRGb250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgY291bnRFdmVudCk7Cisg
ICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkaW5nZG9u
ZScsIGNvdW50RXZlbnQpOworCisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5sb2FkRm9u
dCh7IGZvbnQ6ICcxMHB4IFRlc3RGb250Jywgb25zdWNjZXNzOiBvbnN1Y2Nlc3MsIG9uZXJyb3I6
IG9uZXJyb3IgfSk7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5ub3RpZnlXaGVuRm9u
dHNSZWFkeSh2ZXJpZnkpOworfQorCitmdW5jdGlvbiBvbnN1Y2Nlc3MoKSB7CisgICAgc2hvdWxk
QmUoImV2ZW50c1snbG9hZGluZyddIiwgIjEiKTsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydsb2Fk
c3RhcnQnXSIsICIyIik7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZCddIiwgIjIiKTsKKyAg
ICBzaG91bGRCZSgiZXZlbnRzWydlcnJvciddIiwgInVuZGVmaW5lZCIpOworICAgIHNob3VsZEJl
KCJldmVudHNbJ2xvYWRpbmdkb25lJ10iLCAidW5kZWZpbmVkIik7CisgICAgc2hvdWxkQmUoImRv
Y3VtZW50LndlYmtpdEZvbnRsb2FkZXIuY2hlY2tGb250KCcxMHB4IFRlc3RGb250JykiLCAidHJ1
ZSIpOworfQorCitmdW5jdGlvbiBvbmVycm9yKCkgeworICAgIHRlc3RGYWlsZWQoIkV4cGVjdGVk
IHN1Y2Nlc3MsIGJ1dCBvbmVycm9yKCkgY2FsbGVkIik7CisgICAgb25zdWNjZXNzKCk7Cit9CisK
K2Z1bmN0aW9uIHZlcmlmeSgpIHsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydsb2FkaW5nZG9uZSdd
IiwgIjEiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworaWYgKGRvY3VtZW50LndlYmtpdEZv
bnRsb2FkZXIpCisgICAgcnVuVGVzdHMoKTsKK2Vsc2UgeworICAgIHRlc3RGYWlsZWQoJ2RvY3Vt
ZW50LndlYmtpdEZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QnKTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFtaWxp
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBs
ZS1mYW1pbGllcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjJjZTEzNjI2MzVhNTIyZmQxY2Ew
NWU3N2YxYjdlMzZhM2FiZTZmNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFtaWxpZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKK1Rlc3QgbG9hZCBldmVudHMgZm9yIGZvbnRsb2FkZXIubG9hZEZvbnQoKSB3aXRoIG11
bHRpcGxlIGZvbnQgZmFtaWxpZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitG
QUlMIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhbWlsaWVzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhbWlsaWVzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGU3MzQ0OTgwNWE3MDFhMmM0NzcwNWY0ZjUxOGVmYTlkMTI3OWYwZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFtaWxp
ZXMuaHRtbApAQCAtMCwwICsxLDY5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitAZm9udC1m
YWNlIHsKKyAgICBmb250LWZhbWlseTogVGVzdEZvbnQxOworICAgIHNyYzogbG9jYWwoJ0NvdXJp
ZXIgTmV3Jyk7Cit9CisKK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiBUZXN0Rm9udDI7
CisgICAgc3JjOiB1cmwoLi4vLi4vcmVzb3VyY2VzL0FoZW0udHRmKTsKKyAgICB1bmljb2RlLXJh
bmdlOiB1KzYxLTdhOyAvKiAnYSctJ3onICovCit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCdUZXN0IGxvYWQgZXZlbnRzIGZvciBmb250bG9hZGVyLmxvYWRGb250KCkgd2l0aCBt
dWx0aXBsZSBmb250IGZhbWlsaWVzLicpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
CisKK3ZhciBldmVudHMgPSB7fTsKKworZnVuY3Rpb24gY291bnRFdmVudChlKSB7CisgICAgaWYg
KCFldmVudHNbZS50eXBlXSkKKyAgICAgICAgZXZlbnRzW2UudHlwZV0gPSAwOworICAgIGV2ZW50
c1tlLnR5cGVdICs9IDE7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICAgIGRvY3VtZW50
LndlYmtpdEZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGluZycsIGNvdW50RXZlbnQp
OworICAgIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZHN0
YXJ0JywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5hZGRFdmVu
dExpc3RlbmVyKCdsb2FkJywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQud2Via2l0Rm9udGxv
YWRlci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGNvdW50RXZlbnQpOworICAgIGRvY3VtZW50
LndlYmtpdEZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGluZ2RvbmUnLCBjb3VudEV2
ZW50KTsKKworICAgIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIubG9hZEZvbnQoeyBmb250OiAn
MTBweCBUZXN0Rm9udDEsIFRlc3RGb250MicsIG9uc3VjY2Vzczogb25zdWNjZXNzLCBvbmVycm9y
OiBvbmVycm9yIH0pOworICAgIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIubm90aWZ5V2hlbkZv
bnRzUmVhZHkodmVyaWZ5KTsKK30KKworZnVuY3Rpb24gb25zdWNjZXNzKCkgeworICAgIHNob3Vs
ZEJlKCJldmVudHNbJ2xvYWRpbmcnXSIsICIxIik7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9h
ZHN0YXJ0J10iLCAiMiIpOworICAgIHNob3VsZEJlKCJldmVudHNbJ2xvYWQnXSIsICIyIik7Cisg
ICAgc2hvdWxkQmUoImV2ZW50c1snZXJyb3InXSIsICJ1bmRlZmluZWQiKTsKKyAgICBzaG91bGRC
ZSgiZXZlbnRzWydsb2FkaW5nZG9uZSddIiwgInVuZGVmaW5lZCIpOworICAgIHNob3VsZEJlKCJk
b2N1bWVudC53ZWJraXRGb250bG9hZGVyLmNoZWNrRm9udCgnMTBweCBUZXN0Rm9udDEsIFRlc3RG
b250MicpIiwgInRydWUiKTsKK30KKworZnVuY3Rpb24gb25lcnJvcigpIHsKKyAgICB0ZXN0RmFp
bGVkKCJFeHBlY3RlZCBzdWNjZXNzLCBidXQgb25lcnJvcigpIGNhbGxlZCIpOworfQorCitmdW5j
dGlvbiB2ZXJpZnkoKSB7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZGluZ2RvbmUnXSIsICIx
Iik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2lmIChkb2N1bWVudC53ZWJraXRGb250bG9h
ZGVyKQorICAgIHJ1blRlc3RzKCk7CitlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKCdkb2N1bWVudC53
ZWJraXRGb250bG9hZGVyIGRvZXMgbm90IGV4aXN0Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmZvbnQvZm9udGxvYWRlci1sb2FkaW5nLWF0
dHJpYnV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmZvbnQvZm9u
dGxvYWRlci1sb2FkaW5nLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjIyMGRm
NWJmZWI0YWRjNDFkMjUzZjMyMTUxNThlYmRiYTYxMTM0MwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGZvciBGb250TG9hZGVyLmxvYWRp
bmcgYXR0cmlidXRlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitGQUlMIGRvY3Vt
ZW50LndlYmtpdEZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmZvbnQvZm9udGxvYWRlci1sb2FkaW5nLWF0dHJpYnV0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJmb250L2ZvbnRsb2FkZXItbG9hZGluZy1hdHRyaWJ1dGUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hODBmOTgxYzQzMTg5YjA2ODI1NWZlYTdlMDA3YjJmYzAzOWVkOTYy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJmb250L2ZvbnRs
b2FkZXItbG9hZGluZy1hdHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDM5IEBACis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzdHlsZT4KKyAgQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICdU
ZXN0Rm9udCc7CisgICAgc3JjOiB1cmwoc2xvdy1haGVtLWxvYWRpbmcuY2dpKTsKKyAgfQorPC9z
dHlsZT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBmb3IgRm9udExvYWRlci5sb2FkaW5n
IGF0dHJpYnV0ZScpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Z1bmN0aW9u
IHJ1blRlc3RzKCkgeworICAgIHNob3VsZEJlKCJkb2N1bWVudC53ZWJraXRGb250bG9hZGVyLmNo
ZWNrRm9udCgnMTBweCBUZXN0Rm9udCcpIiwgImZhbHNlIik7CisgICAgc2hvdWxkQmUoImRvY3Vt
ZW50LndlYmtpdEZvbnRsb2FkZXIubG9hZGluZyIsICJmYWxzZSIpOworICAgIGRvY3VtZW50Lndl
YmtpdEZvbnRsb2FkZXIubG9hZEZvbnQoeyBmb250OiAnMTBweCBUZXN0Rm9udCcsIG9uc3VjY2Vz
czogb25zdWNjZXNzIH0pOworICAgIHNob3VsZEJlKCJkb2N1bWVudC53ZWJraXRGb250bG9hZGVy
LmxvYWRpbmciLCAidHJ1ZSIpOworfQorCitmdW5jdGlvbiBvbnN1Y2Nlc3MoKSB7CisgICAgc2hv
dWxkQmUoImRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIuY2hlY2tGb250KCcxMHB4IFRlc3RGb250
JykiLCAidHJ1ZSIpOworICAgIHNob3VsZEJlKCJkb2N1bWVudC53ZWJraXRGb250bG9hZGVyLmxv
YWRpbmciLCAiZmFsc2UiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworaWYgKGRvY3VtZW50
LndlYmtpdEZvbnRsb2FkZXIpCisgICAgcnVuVGVzdHMoKTsKK2Vsc2UgeworICAgIHRlc3RGYWls
ZWQoJ2RvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QnKTsKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9jc3MvZm9udGxvYWRlci1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9y
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjk3YjU4MjNmMmEzMTY2N2QyOTc1YTA1MmJiZjU1
NDg5ZjYxMDYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9jc3MvZm9udGxvYWRlci1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxOCBAQAorVGVzdCBkb3dubG9hZCBlcnJvciBjYXNlcy4gImxvYWQiIG9yICJlcnJvciIg
ZXZlbnRzIHNob3VsZCBiZSBmaXJlZCBleGFjdGx5IG9uY2UgZm9yIGVhY2ggQGZvbnQtZmFjZSBy
dWxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBldmVudHNbJ215Zm9u
dDEnXSBpcyBbJ2xvYWRzdGFydCcsICdlcnJvciddCitQQVNTIGV2ZW50c1snbXlmb250MiddIGlz
IFsnbG9hZHN0YXJ0JywgJ2Vycm9yJ10KK1BBU1MgZXZlbnRzWydteWZvbnQzJ10gaXMgWydsb2Fk
c3RhcnQnLCAnZXJyb3InXQorUEFTUyBldmVudHNbJ215Zm9udDQnXSBpcyBbJ2xvYWRzdGFydCcs
ICdsb2FkJ10KK1BBU1MgZXZlbnRzWydteWZvbnQ1J10gaXMgWydsb2Fkc3RhcnQnLCAnZXJyb3In
XQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitmb250
MQorZm9udDIKK2ZvbnQzCitmb250NAorZm9udDUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZXZlbnRzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZXZlbnRz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODY1ODcxMDc1OWJiYzg1OTYyMDVhMWIyODVkMDIz
NzhiYzgyOTZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9jc3MvZm9udGxvYWRlci1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQg
QEAKK1Rlc3QgdGhhdCB0aGUgZXZlbnQgaGFuZGxlcnMgb2YgRm9udExvYWRlciBhcmUgY2FsbGVk
IGluIHRoZSBjb3JyZWN0IG9yZGVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBldmVudC50eXBlIGlzICJsb2FkaW5nIgorUEFTUyBldmVudC50eXBlIGlzICJsb2Fkc3Rh
cnQiCitQQVNTIGV2ZW50LnR5cGUgaXMgImxvYWQiCitQQVNTIGV2ZW50LnR5cGUgaXMgImxvYWRp
bmdkb25lIgorUEFTUyBudW1iZXJPZkV2ZW50cyBpcyA0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK0hlbGxvLCB3b3JsZCEKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbG9hZGluZ2Rv
bmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3Mv
Zm9udGxvYWRlci1sb2FkaW5nZG9uZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjY2YzU5ZWM0
OTc5NmFiODcxYTQxMDc0MmRmNzM4MzU0MjVmOWQyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbG9hZGluZ2RvbmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3QgdGhhdCBvbmxvYWRpbmdkb25lIGlz
IGZpcmVkIGFmdGVyIHN0eWxlIHJlY2FsY3VsYXRpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitsb2FkaW5nZG9uZQorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0
RGl2LCAwKS53aWR0aCBpcyAiNDhweCIKK25vdGlmeVdoZW5Gb250c1JlYWR5KCkgY2FsbGJhY2sK
K1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdERpdiwgMCkud2lkdGggaXMgIjQ4cHgi
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK2FhYQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxv
YWRlci1tdWx0aXBsZS1mYWNlcy1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2Vz
LWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTZjYzU0M2EzNzRmY2Ji
NmY5MTUwOWYzNmFiOWIyMTgyZmU3YWY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1kb3du
bG9hZC1lcnJvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorVGVzdCBsb2FkIGV2ZW50
cyBmb3IgYSBmb250IGZhbWlseSBjb25zaXN0cyBvZiBtdWx0aXBsZSBAZm9udC1mYWNlcywgaW5j
bHVkaW5nIGRvd25sb2FkIGVycm9yLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBldmVudHNbJ2xvYWRpbmcnXSBpcyAxCitQQVNTIGV2ZW50c1snbG9hZHN0YXJ0J10gaXMg
MgorUEFTUyBldmVudHNbJ2xvYWQnXSBpcyAxCitQQVNTIGV2ZW50c1snZXJyb3InXSBpcyAxCitQ
QVNTIGV2ZW50c1snbG9hZGluZ2RvbmUnXSBpcyB1bmRlZmluZWQKK1BBU1MgZG9jdW1lbnQud2Vi
a2l0Rm9udGxvYWRlci5jaGVja0ZvbnQoJzEwcHggVGVzdEZvbnQnKSBpcyBmYWxzZQorUEFTUyBl
dmVudHNbJ2xvYWRpbmdkb25lJ10gaXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBs
ZS1mYWNlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODJlMDZiMzc2ZWNiOTFlYjYwYWZlMjMx
YTQyODRhZmQ3ODY2MmY3MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTYgQEAKK1Rlc3QgbG9hZCBldmVudHMgZm9yIGEgZm9udCBmYW1pbHkgY29u
c2lzdHMgb2YgbXVsdGlwbGUgQGZvbnQtZmFjZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIGV2ZW50c1snbG9hZGluZyddIGlzIDEKK1BBU1MgZXZlbnRzWydsb2Fkc3Rh
cnQnXSBpcyAyCitQQVNTIGV2ZW50c1snbG9hZCddIGlzIDIKK1BBU1MgZXZlbnRzWydlcnJvcidd
IGlzIHVuZGVmaW5lZAorUEFTUyBldmVudHNbJ2xvYWRpbmdkb25lJ10gaXMgdW5kZWZpbmVkCitQ
QVNTIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIuY2hlY2tGb250KCcxMHB4IFRlc3RGb250Jykg
aXMgdHJ1ZQorUEFTUyBldmVudHNbJ2xvYWRpbmdkb25lJ10gaXMgMQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFtaWxp
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3Mv
Zm9udGxvYWRlci1tdWx0aXBsZS1mYW1pbGllcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTYx
YWMyNzEzZTZmNTFlY2E1ZmY0NTc4MjMxOTVjMTM3ODE4OGE0NAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlw
bGUtZmFtaWxpZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1Rlc3QgbG9hZCBldmVu
dHMgZm9yIGZvbnRsb2FkZXIubG9hZEZvbnQoKSB3aXRoIG11bHRpcGxlIGZvbnQgZmFtaWxpZXMu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGV2ZW50c1snbG9hZGluZydd
IGlzIDEKK1BBU1MgZXZlbnRzWydsb2Fkc3RhcnQnXSBpcyAyCitQQVNTIGV2ZW50c1snbG9hZCdd
IGlzIDIKK1BBU1MgZXZlbnRzWydlcnJvciddIGlzIHVuZGVmaW5lZAorUEFTUyBldmVudHNbJ2xv
YWRpbmdkb25lJ10gaXMgdW5kZWZpbmVkCitQQVNTIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIu
Y2hlY2tGb250KCcxMHB4IFRlc3RGb250MSwgVGVzdEZvbnQyJykgaXMgdHJ1ZQorUEFTUyBldmVu
dHNbJ2xvYWRpbmdkb25lJ10gaXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2h0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvd2ViZm9u
dC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
NTA0YjBlZjU5ZDM1MWQwY2NmOTI0OTM4YTFiMGNiMTc1MmFlZjhjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy93ZWJmb250L2ZvbnRs
b2FkZXItbG9hZGluZy1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rl
c3QgZm9yIEZvbnRMb2FkZXIubG9hZGluZyBhdHRyaWJ1dGUKKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5jaGVja0ZvbnQoJzEw
cHggVGVzdEZvbnQnKSBpcyBmYWxzZQorUEFTUyBkb2N1bWVudC53ZWJraXRGb250bG9hZGVyLmxv
YWRpbmcgaXMgZmFsc2UKK1BBU1MgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5sb2FkaW5nIGlz
IHRydWUKK1BBU1MgZG9jdW1lbnQud2Via2l0Rm9udGxvYWRlci5jaGVja0ZvbnQoJzEwcHggVGVz
dEZvbnQnKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LndlYmtpdEZvbnRsb2FkZXIubG9hZGluZyBp
cyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192168</attachid>
            <date>2013-03-08 00:26:37 -0800</date>
            <delta_ts>2013-03-11 04:47:44 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-98395-20130308172240.patch</filename>
            <type>text/plain</type>
            <size>125982</size>
            <attacher name="Kunihiko Sakamoto">ksakamoto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2M4ZTM1MGVhNDg5NWE1
YzE3YzcwZGI1MDY3NjlmNTQ5MGJlYjZjZi4uZGE3MjZlYmNhZmY1NDUzYjVhN2NmMjFlYWMzYjFm
N2I2MDc4YTU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMSBAQAorMjAxMy0wMy0wNyAgS3Vu
aWhpa28gU2FrYW1vdG8gIDxrc2FrYW1vdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxl
bWVudCBGb250TG9hZGVyIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTgzOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIEZvbnRMb2FkZXIgaW50
ZXJmYWNlIGRlZmluZWQgaW4gQ1NTIEZvbnQKKyAgICAgICAgTG9hZCBFdmVudHMgTW9kdWxlIExl
dmVsIDMuWzFdIEl0IGFkZHMgZm9udGxvYWRlciBhdHRyaWJ1dGUgdG8KKyAgICAgICAgRG9jdW1l
bnQsIGFuZCBhZGRzIHR3byBpbnRlcmZhY2VzLCBGb250TG9hZGVyIGFuZAorICAgICAgICBDU1NG
b250RmFjZUxvYWRFdmVudCB0byBXZWJDb3JlLgorCisgICAgICAgIFsxXTogaHR0cDovL2Rldi53
My5vcmcvY3Nzd2cvY3NzLWZvbnQtbG9hZC1ldmVudHMtMy8KKworICAgICAgICBUaGlzIGZlYXR1
cmUgaXMgZ3VhcmRlZCBieSBGT05UX0xPQURfRVZFTlRTIGNvbXBpbGVyIGZsYWcgYW5kCisgICAg
ICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmZvbnRMb2FkRXZlbnRzRW5hYmxlZCgpIHJ1bnRp
bWUgZmxhZy4KKworICAgICAgICBUZXN0czogZmFzdC9jc3MvZm9udGxvYWRlci1kb3dubG9hZC1l
cnJvci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9mb250bG9hZGVyLWV2ZW50cy5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2Nzcy9mb250bG9hZGVyLWxvYWRpbmdkb25lLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93bmxvYWQt
ZXJyb3IuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1m
YWNlcy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZh
bWlsaWVzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVy
LWxvYWRpbmctYXR0cmlidXRlLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGRp
bmcgRm9udExvYWRlci9DU1NGb250RmFjZUxvYWRFdmVudCBmaWxlcy4KKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5jcHA6IERpdHRvLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IERp
dHRvLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLnByaTogRGl0dG8uCisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbTogRGl0dG8uCisgICAgICAgICogVGFyZ2V0LnByaTogRGl0dG8uCisg
ICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ai5maWx0ZXJzOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZSk6IEFkZCBjb252ZXJ0
VmFsdWUoKSBmb3IgQ1NTRm9udEZhY2VSdWxlLCBET01FcnJvciwgYW5kIFZvaWRDYWxsYmFjay4K
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaDogRGl0dG8uCisgICAgICAgICog
YmluZGluZ3MvdjgvRGljdGlvbmFyeS5jcHA6IEFkZCBnZXQoKSBmb3IgQ1NTRm9udEZhY2VSdWxl
LCBET01FcnJvciwgYW5kIFZvaWRDYWxsYmFjay4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25h
cnk6OmdldCk6CisgICAgICAgICogYmluZGluZ3MvdjgvRGljdGlvbmFyeS5oOiBEaXR0by4KKyAg
ICAgICAgKERpY3Rpb25hcnkpOgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZS5jcHA6IE5vdGlm
aWVzIEZvbnRMb2FkZXIgYXMgbG9hZCBwcm9ncmVzc2VzLgorICAgICAgICAoV2ViQ29yZTo6Q1NT
Rm9udEZhY2U6OmZvbnRMb2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2U6Omdl
dEZvbnREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpub3RpZnlGb250TG9h
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpub3RpZnlMb2FkaW5nRG9uZSk6
CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlLmg6IEFkZCB0d28gbWVtYmVyIHZhcmlhYmxlcy4g
bV9ydWxlIHN0b3JlcyBDU1NGb250RmFjZVJ1bGUgZm9yIHRoZSBmb250ZmFjZS4gbV9sb2FkU3Rh
dGUgaG9sZHMgY3VycmVudCBzdGF0ZSBvZiB0aGUgZm9udGZhY2UgaW4gdGVybXMgb2YgRm9udExv
YWRlci4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpjcmVhdGUpOiBUYWtlcyBhZGRp
dGlvbmFsIHBhcmFtZXRlciBvZiB0eXBlIENTU0ZvbnRGYWNlUnVsZS4KKyAgICAgICAgKFdlYkNv
cmU6OkNTU0ZvbnRGYWNlOjpsb2FkU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZh
Y2U6OkNTU0ZvbnRGYWNlKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlTG9hZEV2ZW50OjpDU1NGb250
RmFjZUxvYWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZUxvYWRFdmVudDo6
fkNTU0ZvbnRGYWNlTG9hZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlTG9h
ZEV2ZW50OjppbnRlcmZhY2VOYW1lKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VMb2FkRXZl
bnQuaDogQWRkZWQuCisgICAgICAgIChDU1NGb250RmFjZUxvYWRFdmVudEluaXQpOgorICAgICAg
ICAoQ1NTRm9udEZhY2VMb2FkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VM
b2FkRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZUxvYWRFdmVu
dDo6Y3JlYXRlRm9yRm9udEZhY2VSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNl
TG9hZEV2ZW50OjpjcmVhdGVGb3JFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFj
ZUxvYWRFdmVudDo6Zm9udGZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VMb2Fk
RXZlbnQ6OmVycm9yKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VSdWxlLmlkbDogQWRkIEpTR2VuZXJhdGVU
b0pTT2JqZWN0IGFuZCBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QgYXMgSlNDIGJpbmRpbmcgbmVl
ZHMgdGhlbS4KKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTRm9udEZhY2VTb3VyY2U6OmlzRGVjb2RlRXJyb3IpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU291cmNlOjplbnN1cmVGb250RGF0YSk6IEFkZGVkLgor
ICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNvdXJjZS5oOgorICAgICAgICAoQ1NTRm9udEZhY2VT
b3VyY2UpOgorICAgICAgICAqIGNzcy9DU1NGb250U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1bGUpOiBQYXNzIGEgQ1NTRm9udEZh
Y2VSdWxlIHRvIENTU0ZvbnRGYWNlOjpjcmVhdGUoKS4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0Zv
bnRTZWxlY3Rvcjo6Z2V0Rm9udERhdGEpOiBNb3ZlZCBsb2dpYyBmb3IgY3JlYXRpbmcgYSBDU1NT
ZWdtZW50ZWRGb250RmFjZSB0byBhIGhlbHBlciBmdW5jdGlvbiBnZXRGb250RmFjZSgpLgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTRm9udFNlbGVjdG9yOjpnZXRGb250RmFjZSk6IEFkZGVkLgorICAg
ICAgICAqIGNzcy9DU1NGb250U2VsZWN0b3IuaDoKKyAgICAgICAgKiBjc3MvQ1NTU2VnbWVudGVk
Rm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VnbWVudGVkRm9udEZhY2U6OmZv
bnRMb2FkZWQpOiBGaXJlcyBjYWxsYmFja3Mgd2hlbiBsb2FkIGlzIGNvbXBsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1NlZ21lbnRlZEZvbnRGYWNlOjppc0xvYWRpbmcpOiBSZXR1cm5zIHRy
dWUgaWYgYW55IGZvbnRzIGFyZSBzdGlsbCBsb2FkaW5nLgorICAgICAgICAoV2ViQ29yZTo6Q1NT
U2VnbWVudGVkRm9udEZhY2U6OmNoZWNrRm9udCk6IFJldHVybnMgdHJ1ZSBpZiBhbGwgZm9udHMg
YXJlIGxvYWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlZ21lbnRlZEZvbnRGYWNlOjpsb2Fk
Rm9udCk6IFN0YXJ0cyBsb2FkIGJ5IGNhbGxpbmcgZ2V0Rm9udERhdGEoKS4KKyAgICAgICAgKiBj
c3MvQ1NTU2VnbWVudGVkRm9udEZhY2UuaDoKKyAgICAgICAgKENTU1NlZ21lbnRlZEZvbnRGYWNl
KTogRGVjbGFyZXMgbmV3IGZ1bmN0aW9ucyBhbmQgYSB2ZWN0b3IgdG8gc3RvcmUgY2FsbGJhY2tz
LgorICAgICAgICAoTG9hZEZvbnRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWdt
ZW50ZWRGb250RmFjZTo6TG9hZEZvbnRDYWxsYmFjazo6fkxvYWRGb250Q2FsbGJhY2spOgorICAg
ICAgICAqIGNzcy9Gb250TG9hZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChMb2FkRm9udENhbGxi
YWNrKTogSG9sZHMgY2FsbGJhY2sgZnVuY3Rpb25zIG9mIEZvbnRMb2FkZXIubG9hZEZvbnQoKS4K
KyAgICAgICAgKFdlYkNvcmU6OkxvYWRGb250Q2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpMb2FkRm9udENhbGxiYWNrOjpMb2FkRm9udENhbGxiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkxvYWRGb250Q2FsbGJhY2s6Om5vdGlmeUxvYWRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpMb2FkRm9udENhbGxiYWNrOjpub3RpZnlFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpGb250
TG9hZGVyOjpGb250TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRMb2FkZXI6On5Gb250
TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRMb2FkZXI6OmV2ZW50VGFyZ2V0RGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpGb250TG9hZGVyOjplbnN1cmVFdmVudFRhcmdldERhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udExvYWRlcjo6aW50ZXJmYWNlTmFtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGb250TG9hZGVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRMb2FkZXI6OmRpZExheW91dCk6IEZpcmVzIHBlbmRpbmcgZXZlbnRzIGFuZCBj
YWxsYmFja3MuIFRoaXMgaXMgY2FsbGVkIHdoZW4gbGF5b3V0IGhhdmUgY29tcGxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udExvYWRlcjo6c2NoZWR1bGVFdmVudCk6IERlZmVycyBldmVudCBk
aXNwYXRjaGluZyB1bnRpbCBsYXlvdXQgY29tcGxldGVzLgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dExvYWRlcjo6ZmlyZVBlbmRpbmdFdmVudHMpOiBEaXNwYXRjaGVzIHBlbmRpbmcgZXZlbnRzLgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udExvYWRlcjo6YmVnaW5Gb250TG9hZGluZyk6IFNjaGVkdWxl
cyBsb2FkaW5nL2xvYWRzdGFydCBldmVudHMuIFRoaXMgaXMgY2FsbGVkIGZyb20gQ1NTRm9udEZh
Y2UuCisgICAgICAgIChXZWJDb3JlOjpGb250TG9hZGVyOjpmb250TG9hZGVkKTogU2NoZWR1bGVz
IGxvYWQvbG9hZGluZ2RvbmUgZXZlbnRzLiBUaGlzIGlzIGNhbGxlZCBmcm9tIENTU0ZvbnRGYWNl
LgorICAgICAgICAoV2ViQ29yZTo6Rm9udExvYWRlcjo6bG9hZEVycm9yKTogU2NoZWR1bGVzIGVy
cm9yL2xvYWRpbmdkb25lIGV2ZW50cy4gVGhpcyBpcyBjYWxsZWQgZnJvbSBDU1NGb250RmFjZS4K
KyAgICAgICAgKFdlYkNvcmU6OkZvbnRMb2FkZXI6Om5vdGlmeVdoZW5Gb250c1JlYWR5KTogSW1w
bGVtZW50cyBmb250bG9hZGVyLm5vdGlmeVdoZW5Gb250c1JlYWR5KCkuCisgICAgICAgIChXZWJD
b3JlOjpGb250TG9hZGVyOjpsb2FkaW5nRG9uZSk6IEZpcmVzIGNhbGxiYWNrcyBvZiBub3RpZnlX
aGVuRm9udHNSZWFkeS4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRMb2FkZXI6OmxvYWRGb250KTog
SW1wbGVtZW50cyBmb250bG9hZGVyLmxvYWRGb250KCkuCisgICAgICAgIChXZWJDb3JlOjpGb250
TG9hZGVyOjpjaGVja0ZvbnQpOiBJbXBsZW1lbnRzIGZvbnRsb2FkZXIuY2hlY2tGb250KCkuCisg
ICAgICAgIChXZWJDb3JlOjpGb250TG9hZGVyOjpyZXNvbHZlRm9udFN0eWxlKTogUGFyc2VzIHRo
ZSBnaXZlbiBmb250IHBhcmFtZXRlciB1c2luZyB0aGUgc3ludGF4IG9mIENTUyAnZm9udCcgcHJv
cGVydHkgYW5kIGNyZWF0ZXMgRm9udCBvYmplY3QuIFRoZSBsb2dpYyBpcyB0YWtlbiBmcm9tIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0Rm9udCgpLgorICAgICAgICAqIGNzcy9Gb250TG9h
ZGVyLmg6IEFkZGVkLgorICAgICAgICAoRm9udExvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpG
b250TG9hZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udExvYWRlcjo6bG9hZGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpGb250TG9hZGVyOjpkb2N1bWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpGb250TG9hZGVyOjpyZWZFdmVudFRhcmdldCk6CisgICAgICAgIChXZWJDb3JlOjpG
b250TG9hZGVyOjpkZXJlZkV2ZW50VGFyZ2V0KToKKyAgICAgICAgKiBjc3MvRm9udExvYWRlci5p
ZGw6IEFkZGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmZvbnRs
b2FkZXIpOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKERvY3Vt
ZW50KTogQWRkIG1fZm9udGxvYWRlciBhbmQgZm9udGxvYWRlcigpLgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5pZGw6IEFkZCBmb250bG9hZGVyIGF0dHJpYnV0ZS4KKyAgICAgICAgKiBkb20vRXZl
bnROYW1lcy5oOiBBZGQgbG9hZGluZyBhbmQgbG9hZGluZ2RvbmUgZXZlbnRzLgorICAgICAgICAq
IGRvbS9FdmVudE5hbWVzLmluOiBBZGQgQ1NTRm9udEZhY2VMb2FkRXZlbnQuCisgICAgICAgICog
ZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjogQWRkIEZvbnRMb2FkZXIuCisgICAgICAgICogcGFn
ZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpwZXJmb3JtUG9z
dExheW91dFRhc2tzKTogQ2FsbHMgRm9udExvYWRlcjo6ZGlkTGF5b3V0KCkuCisKIDIwMTMtMDMt
MDcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDUxNjYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IGRlNThhMmE2MDI3NjJjZWUyNTVhODBmNTMwZDk3MzkwYmM5MmJiMWQuLmI5YjIwYTU0MjU4ODMw
ZWYwMDk4NGVlNDFkMzA0MGYwMjhiNTVlY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0zMDQs
NiArMzA0LDcgQEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAKICAgICBjc3MvQ291bnRlci5pZGwK
ICAgICBjc3MvQ1NTQ2hhcnNldFJ1bGUuaWRsCisgICAgY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50
LmlkbAogICAgIGNzcy9DU1NGb250RmFjZVJ1bGUuaWRsCiAgICAgY3NzL0NTU0hvc3RSdWxlLmlk
bAogICAgIGNzcy9DU1NJbXBvcnRSdWxlLmlkbApAQCAtMzE5LDYgKzMyMCw3IEBAIHNldChXZWJD
b3JlX0lETF9GSUxFUwogICAgIGNzcy9DU1NWYWx1ZS5pZGwKICAgICBjc3MvQ1NTVmFsdWVMaXN0
LmlkbAogICAgIGNzcy9ET01XaW5kb3dDU1MuaWRsCisgICAgY3NzL0ZvbnRMb2FkZXIuaWRsCiAg
ICAgY3NzL01lZGlhTGlzdC5pZGwKICAgICBjc3MvTWVkaWFRdWVyeUxpc3QuaWRsCiAgICAgY3Nz
L1JHQkNvbG9yLmlkbApAQCAtMTAzMCw2ICsxMDMyLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwog
ICAgIGNzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcAogICAgIGNzcy9DU1NEZWZhdWx0U3R5bGVT
aGVldHMuY3BwCiAgICAgY3NzL0NTU0ZvbnRGYWNlLmNwcAorICAgIGNzcy9DU1NGb250RmFjZUxv
YWRFdmVudC5jcHAKICAgICBjc3MvQ1NTRm9udEZhY2VSdWxlLmNwcAogICAgIGNzcy9DU1NGb250
RmFjZVNvdXJjZS5jcHAKICAgICBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKQEAgLTEwNzEs
NiArMTA3NCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBjc3MvRE9NV2luZG93Q1NTLmNw
cAogICAgIGNzcy9Eb2N1bWVudFJ1bGVTZXRzLmNwcAogICAgIGNzcy9Gb250RmVhdHVyZVZhbHVl
LmNwcAorICAgIGNzcy9Gb250TG9hZGVyLmNwcAogICAgIGNzcy9Gb250VmFsdWUuY3BwCiAgICAg
Y3NzL0luc3BlY3RvckNTU09NV3JhcHBlcnMuY3BwCiAgICAgY3NzL0xlbmd0aEZ1bmN0aW9ucy5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCAxOTViZWFjZDViZmZjMzE2MmYxMTlh
YTQ1MmFiZTRhM2E0NzczNTkxLi45OWYwNzkxYzJhODRjYTcxNWQ2NDhiZmExNjdhMmIxMDc2MDUw
M2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC01NCw2ICs1NCw5IEBACiAjaW5j
bHVkZSAiSlNDb3VudGVyLmNwcCIKICNpbmNsdWRlICJKU0NyeXB0by5jcHAiCiAjaW5jbHVkZSAi
SlNDU1NDaGFyc2V0UnVsZS5jcHAiCisjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisjaW5j
bHVkZSAiSlNDU1NGb250RmFjZUxvYWRFdmVudC5jcHAiCisjZW5kaWYKICNpbmNsdWRlICJKU0NT
U0ZvbnRGYWNlUnVsZS5jcHAiCiAjaW5jbHVkZSAiSlNDU1NIb3N0UnVsZS5jcHAiCiAjaW5jbHVk
ZSAiSlNDU1NJbXBvcnRSdWxlLmNwcCIKQEAgLTEzOCw2ICsxNDEsOSBAQAogI2luY2x1ZGUgIkpT
RmxvYXQzMkFycmF5LmNwcCIKICNpbmNsdWRlICJKU0Zsb2F0NjRBcnJheS5jcHAiCiAjaW5jbHVk
ZSAiSlNGb2N1c0V2ZW50LmNwcCIKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKKyNpbmNs
dWRlICJKU0ZvbnRMb2FkZXIuY3BwIgorI2VuZGlmCiAjaW5jbHVkZSAiSlNHZW9sb2NhdGlvbi5j
cHAiCiAjaW5jbHVkZSAiSlNHZW9wb3NpdGlvbi5jcHAiCiAjaW5jbHVkZSAiSlNIYXNoQ2hhbmdl
RXZlbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZWYxNTNjYjg3YTlj
ZWIwZGQxMjNhYzE2OGJlYzFlNzJjMTJiMjY2Ni4uMDM5YWExNDczMGI1MTY4OGU5NjU3N2JhMmE4
OTUwMTUyM2Y3ZTg2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNzcsNiAr
MTc3LDcgQEAgQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJzb2NrZXRzL1dv
cmtlckNvbnRleHRXZWJTb2NrZXQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NDaGFyc2V0
UnVsZS5pZGwgXAorICAgICQoV2ViQ29yZSkvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbCBc
CiAgICAgJChXZWJDb3JlKS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9jc3MvQ1NTSG9zdFJ1bGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NJbXBvcnRSdWxl
LmlkbCBcCkBAIC0xOTQsNiArMTk1LDcgQEAgQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29y
ZSkvY3NzL0NTU1ZhbHVlTGlzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL0NvdW50ZXIuaWRs
IFwKICAgICAkKFdlYkNvcmUpL2Nzcy9ET01XaW5kb3dDU1MuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L2Nzcy9Gb250TG9hZGVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvTWVkaWFMaXN0LmlkbCBc
CiAgICAgJChXZWJDb3JlKS9jc3MvTWVkaWFRdWVyeUxpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5w
cmkKaW5kZXggMjc5Y2MwZTBjMDkyNzc0ZDUwOGJhYjczY2E4MWQyNDdiMWM1YjQxZS4uODY0YTFj
Y2VhZjlkNzAxMDFkNjQ3ZDJjNWY5YTY4NzZlMmMzMjljZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLnByaQpAQCAtMTg4LDYgKzE4OCw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgJCRQV0Qv
TW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlckNvbnRleHRXZWJTb2NrZXQuaWRsIFwKICAgICAkJFBX
RC9jc3MvQ291bnRlci5pZGwgXAogICAgICQkUFdEL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwgXAor
ICAgICQkUFdEL2Nzcy9DU1NGb250RmFjZUxvYWRFdmVudC5pZGwgXAogICAgICQkUFdEL2Nzcy9D
U1NGb250RmFjZVJ1bGUuaWRsIFwKICAgICAkJFBXRC9jc3MvQ1NTSG9zdFJ1bGUuaWRsIFwKICAg
ICAkJFBXRC9jc3MvQ1NTSW1wb3J0UnVsZS5pZGwgXApAQCAtMjAzLDYgKzIwNCw3IEBAIElETF9C
SU5ESU5HUyArPSBcCiAgICAgJCRQV0QvY3NzL0NTU1ZhbHVlLmlkbCBcCiAgICAgJCRQV0QvY3Nz
L0NTU1ZhbHVlTGlzdC5pZGwgXAogICAgICQkUFdEL2Nzcy9ET01XaW5kb3dDU1MuaWRsIFwKKyAg
ICAkJFBXRC9jc3MvRm9udExvYWRlci5pZGwgXAogICAgICQkUFdEL2Nzcy9NZWRpYUxpc3QuaWRs
IFwKICAgICAkJFBXRC9jc3MvTWVkaWFRdWVyeUxpc3QuaWRsIFwKICAgICAkJFBXRC9jc3MvUmVj
dC5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggOWY0NTZmZGRkZDY2ODdm
MWRjMjY4N2ZjZTE5OGQ1ZjgxMTdhMTQyNi4uZWQ5ZWJjNDlmY2Y4OGM0MDk4NTIyNmI5YTAwOWNk
YTQ5ODdhZTU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xMTMsNiArMTEz
LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTQ3J5cHRvLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NDaGFyc2V0UnVsZS5j
cHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NDaGFyc2V0UnVsZS5oIFwKKwlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTQ1NTRm9udEZhY2VMb2FkRXZlbnQuaCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0NTU0ZvbnRGYWNlUnVsZS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNDU1NGb250RmFjZVJ1bGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU0hv
c3RSdWxlLmNwcCBcCkBAIC0yOTIsNiArMjk0LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmxvYXQ2NEFycmF5LmggXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNGb2N1c0V2ZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0ZvY3VzRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZvbnRMb2FkZXIu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRm9udExvYWRlci5oIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTR2FtZXBhZC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNHYW1lcGFkLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHYW1lcGFkTGlzdC5jcHAg
XApAQCAtMTMzMiw2ICsxMzM2LDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYnNvY2tldHMvV29ya2VyQ29udGV4dFdlYlNvY2tldC5pZGwgXAogCSQoV2ViQ29yZSkvY3Nz
L0NTU0NoYXJzZXRSdWxlLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvQ1NTRm9udEZhY2VMb2FkRXZl
bnQuaWRsIFwKIAkkKFdlYkNvcmUpL2Nzcy9DU1NGb250RmFjZVJ1bGUuaWRsIFwKIAkkKFdlYkNv
cmUpL2Nzcy9DU1NIb3N0UnVsZS5pZGwgXAogCSQoV2ViQ29yZSkvY3NzL0NTU0ltcG9ydFJ1bGUu
aWRsIFwKQEAgLTEzNDgsNiArMTM1Myw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2Vi
Q29yZSkvY3NzL0NTU1ZhbHVlTGlzdC5pZGwgXAogCSQoV2ViQ29yZSkvY3NzL0NvdW50ZXIuaWRs
IFwKIAkkKFdlYkNvcmUpL2Nzcy9ET01XaW5kb3dDU1MuaWRsIFwKKwkkKFdlYkNvcmUpL2Nzcy9G
b250TG9hZGVyLmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvTWVkaWFMaXN0LmlkbCBcCiAJJChXZWJD
b3JlKS9jc3MvTWVkaWFRdWVyeUxpc3QuaWRsIFwKIAkkKFdlYkNvcmUpL2Nzcy9SR0JDb2xvci5p
ZGwgXApAQCAtMjU3Miw2ICsyNTc4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRGYWNlUnVsZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1
bGUuaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcCBcCkBAIC0y
NjYyLDYgKzI2NzAsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Nz
cy9Eb2N1bWVudFJ1bGVTZXRzLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmVhdHVyZVZh
bHVlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGZWF0dXJlVmFsdWUuaCBcCisJU291
cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9jc3MvRm9u
dExvYWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udFZhbHVlLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvY3NzL0ZvbnRWYWx1ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvSW5zcGVjdG9y
Q1NTT01XcmFwcGVycy5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggMWI2NTVmYmUwNTQwZGI0M2ZhMWJh
ODVlMjVlZWVkYjU3YzYwNzY3OC4uOWYxYWY4ZTg1M2YwNWI1MDQ2ZDc4MmEzMGI0YzNiNjZlZGM2
NTBjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCkBAIC0yNjUsNiArMjY1LDcgQEAgU09VUkNFUyArPSBcCiAgICAg
Y3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwIFwKICAgICBjc3MvQ1NTRm9udEZhY2UuY3BwIFwK
ICAgICBjc3MvQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmNwcCBcCisgICAgY3NzL0NTU0ZvbnRGYWNl
TG9hZEV2ZW50LmNwcCBcCiAgICAgY3NzL0NTU0ZvbnRGYWNlUnVsZS5jcHAgXAogICAgIGNzcy9D
U1NGb250RmFjZVNyY1ZhbHVlLmNwcCBcCiAgICAgY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAgXApA
QCAtMzA2LDYgKzMwNyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGNzcy9ET01XaW5kb3dDU1MuY3Bw
IFwKICAgICBjc3MvRG9jdW1lbnRSdWxlU2V0cy5jcHAgXAogICAgIGNzcy9Gb250RmVhdHVyZVZh
bHVlLmNwcCBcCisgICAgY3NzL0ZvbnRMb2FkZXIuY3BwIFwKICAgICBjc3MvRm9udFZhbHVlLmNw
cCBcCiAgICAgY3NzL0luc3BlY3RvckNTU09NV3JhcHBlcnMuY3BwIFwKICAgICBjc3MvTGVuZ3Ro
RnVuY3Rpb25zLmNwcCBcCkBAIC0xNTEwLDYgKzE1MTIsNyBAQCBIRUFERVJTICs9IFwKICAgICBj
c3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaCBcCiAgICAgY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuaCBc
CiAgICAgY3NzL0NTU0ZvbnRGYWNlLmggXAorICAgIGNzcy9DU1NGb250RmFjZUxvYWRFdmVudC5o
IFwKICAgICBjc3MvQ1NTRm9udEZhY2VSdWxlLmggXAogICAgIGNzcy9DU1NGb250RmFjZVNvdXJj
ZS5oIFwKICAgICBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5oIFwKQEAgLTE1NTEsNiArMTU1NCw3
IEBAIEhFQURFUlMgKz0gXAogICAgIGNzcy9DU1NWYXJpYWJsZVZhbHVlLmggXAogICAgIGNzcy9E
T01XaW5kb3dDU1MuaCBcCiAgICAgY3NzL0ZvbnRGZWF0dXJlVmFsdWUuaCBcCisgICAgY3NzL0Zv
bnRMb2FkZXIuaCBcCiAgICAgY3NzL0ZvbnRWYWx1ZS5oIFwKICAgICBjc3MvTGVuZ3RoRnVuY3Rp
b25zLmggXAogICAgIGNzcy9NZWRpYUZlYXR1cmVOYW1lcy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCBmY2MxZGJlM2JkNGEyY2ZjNmNjMmViOWU3YTc1NWYzOTQxOTk1YzNmLi5hMjlhNzIyNTAyMWQx
MWM2N2ZjNWE0Zjc0MzkzZTY4ODUwZTJmMmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yNDQsNiAr
MjQ0LDcgQEAKICAgICAgICAgICAgICdNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbCcs
CiAgICAgICAgICAgICAnTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlckNvbnRleHRXZWJTb2NrZXQu
aWRsJywKICAgICAgICAgICAgICdjc3MvQ1NTQ2hhcnNldFJ1bGUuaWRsJywKKyAgICAgICAgICAg
ICdjc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsJywKICAgICAgICAgICAgICdjc3MvQ1NTRm9u
dEZhY2VSdWxlLmlkbCcsCiAgICAgICAgICAgICAnY3NzL0NTU0hvc3RSdWxlLmlkbCcsCiAgICAg
ICAgICAgICAnY3NzL0NTU0ltcG9ydFJ1bGUuaWRsJywKQEAgLTI2MSw2ICsyNjIsNyBAQAogICAg
ICAgICAgICAgJ2Nzcy9DU1NWYWx1ZUxpc3QuaWRsJywKICAgICAgICAgICAgICdjc3MvQ291bnRl
ci5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9ET01XaW5kb3dDU1MuaWRsJywKKyAgICAgICAgICAg
ICdjc3MvRm9udExvYWRlci5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYUxpc3QuaWRsJywK
ICAgICAgICAgICAgICdjc3MvTWVkaWFRdWVyeUxpc3QuaWRsJywKICAgICAgICAgICAgICdjc3Mv
UmVjdC5pZGwnLApAQCAtMTU3Nyw2ICsxNTc5LDggQEAKICAgICAgICAgICAgICdjc3MvQ1NTRGVm
YXVsdFN0eWxlU2hlZXRzLmgnLAogICAgICAgICAgICAgJ2Nzcy9DU1NGb250RmFjZS5jcHAnLAog
ICAgICAgICAgICAgJ2Nzcy9DU1NGb250RmFjZS5oJywKKyAgICAgICAgICAgICdjc3MvQ1NTRm9u
dEZhY2VMb2FkRXZlbnQuY3BwJywKKyAgICAgICAgICAgICdjc3MvQ1NTRm9udEZhY2VMb2FkRXZl
bnQuaCcsCiAgICAgICAgICAgICAnY3NzL0NTU0ZvbnRGYWNlUnVsZS5jcHAnLAogICAgICAgICAg
ICAgJ2Nzcy9DU1NGb250RmFjZVJ1bGUuaCcsCiAgICAgICAgICAgICAnY3NzL0NTU0ZvbnRGYWNl
U291cmNlLmNwcCcsCkBAIC0xNjUzLDYgKzE2NTcsOCBAQAogICAgICAgICAgICAgJ2Nzcy9Eb2N1
bWVudFJ1bGVTZXRzLmgnLAogICAgICAgICAgICAgJ2Nzcy9Gb250RmVhdHVyZVZhbHVlLmNwcCcs
CiAgICAgICAgICAgICAnY3NzL0ZvbnRGZWF0dXJlVmFsdWUuaCcsCisgICAgICAgICAgICAnY3Nz
L0ZvbnRMb2FkZXIuaCcsCisgICAgICAgICAgICAnY3NzL0ZvbnRMb2FkZXIuY3BwJywKICAgICAg
ICAgICAgICdjc3MvRm9udFZhbHVlLmNwcCcsCiAgICAgICAgICAgICAnY3NzL0ZvbnRWYWx1ZS5o
JywKICAgICAgICAgICAgICdjc3MvSW5zcGVjdG9yQ1NTT01XcmFwcGVycy5jcHAnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlZGQwMDE1ZDRm
NTJiNzNkMWVkZWYzNGQ5MzAzOGJhNGNiNmU1MDkzLi44OTIyOWQ2YTRlZDA5ZDZlNjkyZGNmYmEz
YzkzZTVhNzMwMDA0ODY3IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagpAQCAtMTgwMyw2ICsxODAzLDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJ
PEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NGb250RmFjZUxvYWRFdmVudC5jcHAiCisJ
CQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NG
TGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJ
PFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdf
QWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0
aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
SlNDU1NGb250RmFjZUxvYWRFdmVudC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJ
CQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTQ1NTRm9udEZhY2VSdWxlLmNwcCIKIAkJCQk+CiAJCQkJPEZp
bGVDb25maWd1cmF0aW9uCkBAIC01NzAzLDYgKzU3NTksNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0ZvbnRMb2FkZXIuY3BwIgorCQkJCT4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZp
Z3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRm9u
dExvYWRlci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRo
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTR2VvbG9jYXRpb24uY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAg
LTM2MTE5LDYgKzM2MjMxLDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGNzc1xDU1NGb250RmFjZUxvYWRFdmVudC5jcHAiCisJCQkJPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xDU1NGb250RmFjZUxv
YWRFdmVudC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRo
PSIuLlxjc3NcQ1NTRm9udEZhY2VSdWxlLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0
aW9uCkBAIC0zODE1NSw2ICszODI3NSwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcRm9udExvYWRlci5jcHAiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xGb250TG9hZGVyLmgiCisJ
CQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xGb250
VmFsdWUuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IGMxZWZmM2JkYzI3MDIxMTg1ZGYxMmUyYTUz
ZGE3YmY4ZGE4YTljYWMuLjJlZjhiZDYxMmZhNGM3M2VlNWQ0OGNkYmRiZTU4ZWRhZjVhNGY1ODYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpA
QCAtMjU0LDYgKzI1NCwxMiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNDU1NGb250RmFjZVJ1bGUuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZp
eHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtNjYxLDYgKzY2NywxMiBAQAog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAg
IDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0ZvbnRMb2FkZXIuY3Bw
Ij4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0dlb2xvY2F0aW9uLmNw
cCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
QEAgLTM4NjAsNiArMzg3MiwxMiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cY3NzXENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCI+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZm
aXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGNzc1xDU1NGb250RmFjZVJ1bGUuY3BwIj4KICAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtNDA2OCw2ICs0
MDg2LDcgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGNz
c1xGb250RmVhdHVyZVZhbHVlLmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGNz
c1xGb250TG9hZGVyLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGNzc1xGb250
VmFsdWUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cY3NzXExlbmd0aEZ1bmN0
aW9ucy5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcTWVkaWFBbGxJbk9u
ZS5jcHAiPgpAQCAtODIzNiw2ICs4MjU1LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
SlNDb3VudGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQ3J5cHRvLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQ1NTQ2hhcnNldFJ1bGUuaCIgLz4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NGb250RmFjZUxvYWRFdmVudC5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU0NTU0ZvbnRGYWNlUnVsZS5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0NTU0hvc3RSdWxlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTQ1NTSW1wb3J0UnVsZS5oIiAvPgpAQCAtODMxMyw2ICs4MzMzLDcgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcSlNGaWxlV3JpdGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTRmlsZVdyaXRlckNhbGxiYWNrLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTRmlsZVdyaXRlclN5bmMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNG
b250TG9hZGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTR2VvbG9jYXRpb24u
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxv
YmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNHZW9wb3NpdGlvbi5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0hhc2hDaGFuZ2VFdmVudC5oIiAvPgpAQCAtOTYxNCw2
ICs5NjM1LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xDU1NDcm9zc2ZhZGVW
YWx1ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXENTU0N1cnNvckltYWdl
VmFsdWUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xDU1NGb250RmFjZS5o
IiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXENTU0ZvbnRGYWNlTG9hZEV2ZW50
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcQ1NTRm9udEZhY2VSdWxlLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcQ1NTRm9udEZhY2VTb3VyY2UuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xDU1NGb250RmFjZVNyY1ZhbHVlLmgi
IC8+CkBAIC05NjU5LDYgKzk2ODEsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3Nz
XENTU1ZhcmlhYmxlVmFsdWUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xE
YXNoYm9hcmRSZWdpb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xGb250
RmVhdHVyZVZhbHVlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcRm9udExv
YWRlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXEZvbnRWYWx1ZS5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXExlbmd0aEZ1bmN0aW9ucy5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXE1lZGlhRmVhdHVyZU5hbWVzLmgiIC8+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnMKaW5kZXggNmJjZjY0OWJhNDZhMmE3NjVkMWU4YjBlOTc3MmQwZTY0OTNlY2ViZC4u
YzgyYjhiY2EwMGExOGFjNjAzMDQ3MDAxYzJiMDMwNDQwZWIyNThkYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpA
QCAtMzg3LDYgKzM4Nyw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQ1NTQ2hhcnNl
dFJ1bGUuY3BwIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8
L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NGb250RmFjZUxvYWRF
dmVudC5jcHAiPgorICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgorICAgIDwv
Q2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NTU0ZvbnRGYWNlUnVsZS5j
cHAiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xDb21w
aWxlPgpAQCAtNjE4LDYgKzYyMSw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZp
Z3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRmls
ZVdyaXRlclN5bmMuY3BwIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4K
ICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNGb250TG9hZGVy
LmNwcCI+CisgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CisgICAgPC9DbENv
bXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTR2VvbG9jYXRpb24uY3BwIj4KICAg
ICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAg
LTM1NzksNiArMzU4NSw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcQ1NTRm9u
dEZhY2UuY3BwIj4KICAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+
CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3Bw
Ij4KKyAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcQ1NTRm9udEZhY2VSdWxlLmNwcCI+CiAgICAgICA8Rmls
dGVyPmNzczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMzY5Myw2ICszNzAyLDkgQEAK
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGNzc1xGb250RmVhdHVyZVZhbHVlLmNwcCI+CiAg
ICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cY3NzXEZvbnRMb2FkZXIuY3BwIj4KKyAgICAgIDxGaWx0ZXI+Y3NzPC9G
aWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3Nc
Rm9udFZhbHVlLmNwcCI+CiAgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgogICAgIDwvQ2xDb21w
aWxlPgpAQCAtNjk0Miw2ICs2OTU0LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlND
U1NDaGFyc2V0UnVsZS5oIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4K
ICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NGb250RmFj
ZUxvYWRFdmVudC5oIj4KKyAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KKyAg
ICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NGb250RmFjZVJ1
bGUuaCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbElu
Y2x1ZGU+CkBAIC03MTczLDYgKzcxODgsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xK
U0ZpbGVXcml0ZXJTeW5jLmgiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVy
PgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0ZvbnRMb2Fk
ZXIuaCI+CisgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CisgICAgPC9DbElu
Y2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTR2VvbG9jYXRpb24uaCI+CiAgICAg
ICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0x
MDMyMyw2ICsxMDM0MSw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcQ1NTRm9u
dEZhY2UuaCI+CiAgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgor
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXENTU0ZvbnRGYWNlTG9hZEV2ZW50LmgiPgor
ICAgICAgPEZpbHRlcj5jc3M8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGNzc1xDU1NGb250RmFjZVJ1bGUuaCI+CiAgICAgICA8RmlsdGVyPmNz
czwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA0NTgsNiArMTA0NzksOSBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXEZvbnRGZWF0dXJlVmFsdWUuaCI+CiAgICAgICA8
RmlsdGVyPmNzczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cY3NzXEZvbnRMb2FkZXIuaCI+CisgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgor
ICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXEZvbnRWYWx1
ZS5oIj4KICAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
OTY3OWY2MjI5NzI0NDVkNjQxMzBiNTAxZWYwYjZkYzUwNDBjNDBmYi4uMmM2MTk0MTc1ZWJhNDli
ZmMxYzQ4ZWZiYTgyNmQ5MTdlMGVhOGNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTA1MSw2ICsxMDUxLDE2IEBACiAJCTNG
RkZGOUE5MTU5RDlBNTUwMDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGRkZGOUE3MTU5RDlBNTUw
MDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCAqLzsgfTsKIAkJM0ZGRkY5QUQxNTlE
OUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkZGRjlBQjE1OUQ5QjA2MDAyMEJCRDUg
LyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCAqLzsgfTsKIAkJM0ZGRkY5QUUxNTlEOUIwNjAw
MjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0ZGRkY5QUMxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdw
b3J0U3R5bGVSZXNvbHZlci5oICovOyB9OworCQk0MDlFQkRCMTE2QjdFRTcxMDBDQkEzRkMgLyog
Q1NTRm9udEZhY2VMb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQwOUVCREFFMTZCN0VFMjgwMENCQTNGQyAvKiBDU1NGb250RmFjZUxvYWRF
dmVudC5oICovOyB9OworCQk0MDlFQkRCMjE2QjdFRTc0MDBDQkEzRkMgLyogQ1NTRm9udEZhY2VM
b2FkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDA5RUJEQUMxNkI3RUUxQzAwQ0JBM0ZDIC8qIENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCAq
LzsgfTsKKwkJNDA5RUJEQjQxNkI3RUU4NzAwQ0JBM0ZDIC8qIEZvbnRMb2FkZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5RUJEQjMxNkI3RUU4
NzAwQ0JBM0ZDIC8qIEZvbnRMb2FkZXIuY3BwICovOyB9OworCQk0MDlFQkRCNjE2QjdFRUEzMDBD
QkEzRkMgLyogRm9udExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDA5RUJEQjUxNkI3RUVBMzAwQ0JBM0ZDIC8qIEZvbnRMb2FkZXIuaCAqLzsg
fTsKKwkJNDA5RUJEQkExNkI3RjA0NTAwQ0JBM0ZDIC8qIEpTRm9udExvYWRlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MDlFQkRCOTE2QjdGMDQ1
MDBDQkEzRkMgLyogSlNGb250TG9hZGVyLmNwcCAqLzsgfTsKKwkJNDA5RUJEQzAxNkI3RjM4RTAw
Q0JBM0ZDIC8qIEpTRm9udExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDA5RUJEQkYxNkI3RjM4RTAwQ0JBM0ZDIC8qIEpTRm9udExvYWRlci5o
ICovOyB9OworCQk0MDlFQkRDMzE2QjdGM0E2MDBDQkEzRkMgLyogSlNDU1NGb250RmFjZUxvYWRF
dmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5
RUJEQzIxNkI3RjNBNjAwQ0JBM0ZDIC8qIEpTQ1NTRm9udEZhY2VMb2FkRXZlbnQuaCAqLzsgfTsK
KwkJNDA5RUJEQzUxNkI3RjNDQTAwQ0JBM0ZDIC8qIEpTQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5RUJEQzQx
NkI3RjNDQTAwQ0JBM0ZDIC8qIEpTQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwICovOyB9OworCQk0
MEVDQUU3RTE2QjhCNjcyMDBDMzYxMDMgLyogSlNET01FcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDBFQ0FFN0QxNkI4QjY3MjAwQzM2MTAzIC8q
IEpTRE9NRXJyb3IuaCAqLzsgfTsKKwkJNDBFQ0FFODExNkI4QjY4QTAwQzM2MTAzIC8qIEpTRE9N
RXJyb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDBFQ0FFODAxNkI4QjY4QTAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuY3BwICovOyB9OwogCQk0MTAw
MkNDRDBGNjZFREVGMDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwMkNDQjBGNjZFREVGMDA5RTY2
MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmggKi87IH07CiAJCTQxMDAyQ0NFMEY2NkVERUYwMDlF
NjYwRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDJDQ0MwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1
bmN0aW9uQ2FsbC5jcHAgKi87IH07CiAJCTQxMEI3RTcyMTA0NUZBQjAwMEQ4MjI0RiAvKiBKU01l
c3NhZ2VFdmVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0
b20uY3BwICovOyB9OwpAQCAtODQ1MSw2ICs4NDYxLDE4IEBACiAJCTNGRkZGOUE3MTU5RDlBNTUw
MDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTNGRkZGOUFCMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlld3BvcnRTdHls
ZVJlc29sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0ZGRkY5QUMxNTlE
OUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQUMxNkI3RUUxQzAwQ0JBM0ZDIC8qIENTU0ZvbnRGYWNlTG9h
ZEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0ZvbnRG
YWNlTG9hZEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQUUx
NkI3RUUyODAwQ0JBM0ZDIC8qIENTU0ZvbnRGYWNlTG9hZEV2ZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENTU0ZvbnRGYWNlTG9hZEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQwOUVCREFGMTZCN0VFNTcwMENCQTNGQyAvKiBDU1NGb250RmFjZUxv
YWRFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ1NTRm9udEZhY2VMb2FkRXZlbnQu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MDlFQkRCMzE2QjdFRTg3MDBDQkEz
RkMgLyogRm9udExvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBGb250TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQjUx
NkI3RUVBMzAwQ0JBM0ZDIC8qIEZvbnRMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRm9udExvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MDlF
QkRCNzE2QjdFRUJBMDBDQkEzRkMgLyogRm9udExvYWRlci5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gRm9udExvYWRlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQwOUVC
REI5MTZCN0YwNDUwMENCQTNGQyAvKiBKU0ZvbnRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNGb250TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDA5RUJEQkYxNkI3RjM4RTAwQ0JBM0ZDIC8qIEpTRm9udExvYWRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ZvbnRMb2FkZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQzIxNkI3RjNBNjAwQ0JBM0ZDIC8qIEpTQ1NTRm9u
dEZhY2VMb2FkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NG
b250RmFjZUxvYWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MDlFQkRD
NDE2QjdGM0NBMDBDQkEzRkMgLyogSlNDU1NGb250RmFjZUxvYWRFdmVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDBFQ0FFN0QxNkI4QjY3MjAwQzM2MTAzIC8q
IEpTRE9NRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01FcnJv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MEVDQUU4MDE2QjhCNjhBMDBDMzYx
MDMgLyogSlNET01FcnJvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0RPTUVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwMDJDQ0Iw
RjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTY3JpcHRGdW5jdGlvbkNhbGwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDEwMDJDQ0MwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2Fs
bC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRGdW5jdGlv
bkNhbGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBCN0U3MTEwNDVGQUIw
MDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTYxNjcsMTAgKzE2MTg5LDE2IEBACiAJCQkJQThEMDZCMzcwQTI2
NURDRDAwNUU3MjAzIC8qIEhUTUxOYW1lcy5oICovLAogCQkJCTUzRTI5RTVDMTY3QThBMTkwMDU4
NkQzRCAvKiBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNwcCAqLywKIAkJCQk1M0UyOUU1RDE2
N0E4QTE5MDA1ODZEM0QgLyogSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5oICovLAorCQkJCTQw
RUNBRTgwMTZCOEI2OEEwMEMzNjEwMyAvKiBKU0RPTUVycm9yLmNwcCAqLywKKwkJCQk0MEVDQUU3
RDE2QjhCNjcyMDBDMzYxMDMgLyogSlNET01FcnJvci5oICovLAogCQkJCTkzOEU2NUY2MDlGMDk4
NUQwMDhBNDhFQyAvKiBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwICovLAogCQkJCTkz
OEU2NUYwMDlGMDk4NDAwMDhBNDhFQyAvKiBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCAq
LywKIAkJCQk4NTc0RDFGMTBBREU2MTIyMDA0Q0JBMTEgLyogSlNTVkdFbGVtZW50V3JhcHBlckZh
Y3RvcnkuY3BwICovLAogCQkJCTg1NzREMUYyMEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR0VsZW1l
bnRXcmFwcGVyRmFjdG9yeS5oICovLAorCQkJCTQwOUVCREM0MTZCN0YzQ0EwMENCQTNGQyAvKiBK
U0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCAqLywKKwkJCQk0MDlFQkRDMjE2QjdGM0E2MDBDQkEz
RkMgLyogSlNDU1NGb250RmFjZUxvYWRFdmVudC5oICovLAorCQkJCTQwOUVCREI5MTZCN0YwNDUw
MENCQTNGQyAvKiBKU0ZvbnRMb2FkZXIuY3BwICovLAorCQkJCTQwOUVCREJGMTZCN0YzOEUwMENC
QTNGQyAvKiBKU0ZvbnRMb2FkZXIuaCAqLywKIAkJCQlGQUJFNzJGQjEwNTlDMjExMDBEOTk5REQg
LyogTWF0aE1MRWxlbWVudEZhY3RvcnkuY3BwICovLAogCQkJCTQ0QTI4QUFCMTJERkI4QUMwMEFF
OTIzQiAvKiBNYXRoTUxFbGVtZW50RmFjdG9yeS5oICovLAogCQkJCUZBQkU3MkZDMTA1OUMyMTEw
MEQ5OTlERCAvKiBNYXRoTUxOYW1lcy5jcHAgKi8sCkBAIC0yMjAxNyw2ICsyMjA0NSw5IEBACiAJ
CQkJNEE5Q0M4MTYxNkJCOUFDNjAwRUM2NDVBIC8qIENTU0RlZmF1bHRTdHlsZVNoZWV0cy5oICov
LAogCQkJCUJDNjRCNENEMENCNDI5OEEwMDVGMkI2MiAvKiBDU1NGb250RmFjZS5jcHAgKi8sCiAJ
CQkJQkM2NEI0Q0UwQ0I0Mjk4QTAwNUYyQjYyIC8qIENTU0ZvbnRGYWNlLmggKi8sCisJCQkJNDA5
RUJEQUMxNkI3RUUxQzAwQ0JBM0ZDIC8qIENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCAqLywKKwkJ
CQk0MDlFQkRBRTE2QjdFRTI4MDBDQkEzRkMgLyogQ1NTRm9udEZhY2VMb2FkRXZlbnQuaCAqLywK
KwkJCQk0MDlFQkRBRjE2QjdFRTU3MDBDQkEzRkMgLyogQ1NTRm9udEZhY2VMb2FkRXZlbnQuaWRs
ICovLAogCQkJCUE4MEU2Q0JEMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NGb250RmFjZVJ1bGUuY3Bw
ICovLAogCQkJCUE4MEU2Q0QzMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NGb250RmFjZVJ1bGUuaCAq
LywKIAkJCQk4NUM1NkNBMzBBQTg5Q0E0MDBEOTU3NTUgLyogQ1NTRm9udEZhY2VSdWxlLmlkbCAq
LywKQEAgLTIyMTI3LDYgKzIyMTU4LDkgQEAKIAkJCQlGQzlBMEY3MjE2NDA5NENGMDAzRDZCOEQg
LyogRE9NV2luZG93Q1NTLmggKi8sCiAJCQkJRkM5QTBGNzMxNjQwOTRDRjAwM0Q2QjhEIC8qIERP
TVdpbmRvd0NTUy5pZGwgKi8sCiAJCQkJNEE2RTlGQzIxM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRG
ZWF0dXJlVmFsdWUuaCAqLywKKwkJCQk0MDlFQkRCMzE2QjdFRTg3MDBDQkEzRkMgLyogRm9udExv
YWRlci5jcHAgKi8sCisJCQkJNDA5RUJEQjUxNkI3RUVBMzAwQ0JBM0ZDIC8qIEZvbnRMb2FkZXIu
aCAqLywKKwkJCQk0MDlFQkRCNzE2QjdFRUJBMDBDQkEzRkMgLyogRm9udExvYWRlci5pZGwgKi8s
CiAJCQkJQTgwRTZDQzcwQTE5ODlDQTAwN0ZCOEM1IC8qIEZvbnRWYWx1ZS5jcHAgKi8sCiAJCQkJ
QTgwRTZDQzMwQTE5ODlDQTAwN0ZCOEM1IC8qIEZvbnRWYWx1ZS5oICovLAogCQkJCUNENEUwQUZB
MTFGN0JDMjcwMDlEMzgxMSAvKiBmdWxsc2NyZWVuLmNzcyAqLywKQEAgLTIzNTYxLDYgKzIzNTk1
LDcgQEAKIAkJCQlBQTIxRUNDRDBBQkYwRkM2MDAyQjgzNEMgLyogQ1NTQ3Vyc29ySW1hZ2VWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE5Q0M4MTgxNkJCOUFDNjAwRUM2NDVBIC8qIENTU0Rl
ZmF1bHRTdHlsZVNoZWV0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2NEI0RDYwQ0I0Mjk4QTAw
NUYyQjYyIC8qIENTU0ZvbnRGYWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MDlFQkRCMTE2QjdF
RTcxMDBDQkEzRkMgLyogQ1NTRm9udEZhY2VMb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4MEU2Q0ZEMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NGb250RmFjZVJ1bGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNjRCNEQ4MENCNDI5OEEwMDVGMkI2MiAvKiBDU1NGb250RmFjZVNvdXJjZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2NEI0REEwQ0I0Mjk4QTAwNUYyQjYyIC8qIENTU0ZvbnRG
YWNlU3JjVmFsdWUuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ1MTcsNiArMjQ1NTIsNyBAQAogCQkJ
CUIyQzNEQTZBMEQwMDZDRDYwMEVGNkYyNiAvKiBGb250RmFtaWx5LmggaW4gSGVhZGVycyAqLywK
IAkJCQk0QTZFOUZDODEzQzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNEE2RTlGQzQxM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJl
VmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQwOUVCREI2MTZCN0VFQTMwMENCQTNGQyAvKiBG
b250TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODQ1NjgwODEyQjkwREE2MDA5NjBBOUYg
LyogRm9udE1ldHJpY3MuaCBpbiBIZWFkZXJzICovLAogCQkJCUY3QTAzNEM0MTI2QkY2QkUwMDdE
QzE5RSAvKiBGb250T3JpZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUI1MzIwRDZCMTIy
QTI0RTkwMDJEMTQ0MCAvKiBGb250UGxhdGZvcm1EYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTI0
OTE3LDYgKzI0OTUzLDcgQEAKIAkJCQk5MzA3MDVEQTA5RTBDOUJGMDBCMTdGRTQgLyogSlNDb3Vu
dGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzVDQTJBMjEzMDM2NzlEMDBFOTlBRDkgLyogSlND
cnlwdG8uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDZDMUZCMEMwRERDOEYwMDIwQ0ZDMyAvKiBK
U0NTU0NoYXJzZXRSdWxlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MDlFQkRDMzE2QjdGM0E2MDBD
QkEzRkMgLyogSlNDU1NGb250RmFjZUxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0
NkMxRkQwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTRm9udEZhY2VSdWxlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzQ2QzFGRjBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NJbXBvcnRSdWxlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzQ2QzIwMTBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NNZWRpYVJ1
bGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ5NTEsNiArMjQ5ODgsNyBAQAogCQkJCTFBQzIyNjBE
MERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzQjcwRDY0MDlFQjBDN0MwMDlEODQ2OCAvKiBKU0RPTUJpbmRpbmcuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDNjBEN0MxMEQyOUE0NjMwMEI5OTE4RiAvKiBKU0RPTUNvcmVFeGNlcHRp
b24uaCBpbiBIZWFkZXJzICovLAorCQkJCTQwRUNBRTdFMTZCOEI2NzIwMEMzNjEwMyAvKiBKU0RP
TUVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTg3ODVBNTEyMkNBMkE3MDAzQUFCREEgLyog
SlNET01GaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTNDNDgzNzEyNDk1NDcyMDAy
QjNEODYgLyogSlNET01GaWxlU3lzdGVtU3luYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkUwODg4
RDUxMTQ4ODQ4QTAwQUY0MjY1IC8qIEpTRE9NRm9ybURhdGEuaCBpbiBIZWFkZXJzICovLApAQCAt
MjUwMTAsNiArMjUwNDgsNyBAQAogCQkJCTQ5RUVDRjAzMTA1MDcwQzQwMDA5OUZBQiAvKiBKU0Zs
b2F0MzJBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkVCQzVFQjAxMzhCNTBGMjAwQTBDRjhB
IC8qIEpTRmxvYXQ2NEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCNkQ5RDI3QjE0RUFDMDg2
MDA5MEQ3NUUgLyogSlNGb2N1c0V2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MDlFQkRDMDE2
QjdGMzhFMDBDQkEzRkMgLyogSlNGb250TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREEx
NUVBQzEyQjAzRUUxMDAzQTU4M0EgLyogSlNHYWluTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkU4MERBNjQwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCUZFODBEQTY2MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI3MjU4LDYgKzI3Mjk3LDcgQEAKIAkJCQlBQTIxRUNDQTBBQkYwRkJBMDAy
QjgzNEMgLyogQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0QTlD
QzgxNzE2QkI5QUM2MDBFQzY0NUEgLyogQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDNjRCNEQ1MENCNDI5OEEwMDVGMkI2MiAvKiBDU1NGb250RmFjZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk0MDlFQkRCMjE2QjdFRTc0MDBDQkEzRkMgLyogQ1NTRm9udEZh
Y2VMb2FkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRTcwQTE5ODlDQTAwN0ZC
OEM1IC8qIENTU0ZvbnRGYWNlUnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzY0QjRENzBD
QjQyOThBMDA1RjJCNjIgLyogQ1NTRm9udEZhY2VTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkM2NEI0RDkwQ0I0Mjk4QTAwNUYyQjYyIC8qIENTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yNzg2Myw2ICsyNzkwMyw3IEBACiAJCQkJNzI2MjZFMDIwRUYwMjJG
RTAwQTA3RTIwIC8qIEZvbnRGYXN0UGF0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0QTZFOUZD
NzEzQzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk0QTZFOUZDMzEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk0MDlFQkRCNDE2QjdFRTg3MDBDQkEzRkMgLyogRm9udExvYWRl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkFGRkM4MDBEMDBBNUMxMDAzMDA3NEQgLyogRm9u
dE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg0QjYyNjg1MTMzMTM4RjkwMDk1QTQ4OSAvKiBG
b250UGxhdGZvcm1EYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI1MzIwRDZDMTIyQTI0RTkw
MDJEMTQ0MCAvKiBGb250UGxhdGZvcm1EYXRhQ29jb2EubW0gaW4gU291cmNlcyAqLywKQEAgLTI4
MjMwLDYgKzI4MjcxLDcgQEAKIAkJCQk5NzVDQTJBMTEzMDM2NzlEMDBFOTlBRDkgLyogSlNDcnlw
dG8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjA5QjQ1NkIxNjc5NkE3RTAwRTU0RTRFIC8qIEpT
Q3J5cHRvQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDZDMUZBMEMwRERDOEYwMDIw
Q0ZDMyAvKiBKU0NTU0NoYXJzZXRSdWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQwOUVCREM1
MTZCN0YzQ0EwMENCQTNGQyAvKiBKU0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDNDZDMUZDMEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU0ZvbnRGYWNlUnVsZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUFEMTQ5MTEyOTczMzc0MDBBQ0E5ODkgLyogSlNDU1NG
b250RmFjZVJ1bGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0NkMxRkUwQzBEREM4
RjAwMjBDRkMzIC8qIEpTQ1NTSW1wb3J0UnVsZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4Mjc5
LDYgKzI4MzIxLDcgQEAKIAkJCQkxQUMyMjYwQzBEQjY5RjE5MDA4OUI2NjkgLyogSlNET01BcHBs
aWNhdGlvbkNhY2hlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzQjcwRDYzMDlFQjBDN0MwMDlE
ODQ2OCAvKiBKU0RPTUJpbmRpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2MEQ3QzAwRDI5
QTQ2MzAwQjk5MThGIC8qIEpTRE9NQ29yZUV4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk0MEVDQUU4MTE2QjhCNjhBMDBDMzYxMDMgLyogSlNET01FcnJvci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk4OTg3ODVBNDEyMkNBMkE3MDAzQUFCREEgLyogSlNET01GaWxlU3lzdGVtLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTg5M0M0ODM2MTI0OTU0NzIwMDJCM0Q4NiAvKiBKU0RPTUZpbGVT
eXN0ZW1TeW5jLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFMDg4OEQ0MTE0ODg0OEEwMEFGNDI2
NSAvKiBKU0RPTUZvcm1EYXRhLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjgzNTUsNiArMjgzOTgs
NyBAQAogCQkJCTQ5RUVDRjAyMTA1MDcwQzQwMDA5OUZBQiAvKiBKU0Zsb2F0MzJBcnJheS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk2RUJDNUVBRjEzOEI1MEYyMDBBMENGOEEgLyogSlNGbG9hdDY0
QXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjZEOUQyN0MxNEVBQzA4NjAwOTBENzVFIC8q
IEpTRm9jdXNFdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MDlFQkRCQTE2QjdGMDQ1MDBD
QkEzRkMgLyogSlNGb250TG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEQTE1RUFCMTJC
MDNFRTEwMDNBNTgzQSAvKiBKU0dhaW5Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFODBE
QTYzMEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUZFODBEN0FCMEU5QzFFRDIwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uQ3VzdG9tLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
aWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5j
cHAKaW5kZXggZjk4MDRkZjZhMjFhZDVjMmU5MWVmMDExMDIxNWFmMDY0ZTdjOWI2Yi4uZjhlNThj
YjQ3ZWU3ZmNmYjQwMWI4YTA3YTFhODE4OWMwYTM3NmQ2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpbmNsdWRl
ICJBcnJheVZhbHVlLmgiCiAjaW5jbHVkZSAiRGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIkpTQ1NT
Rm9udEZhY2VSdWxlLmgiCisjaW5jbHVkZSAiSlNET01FcnJvci5oIgogI2luY2x1ZGUgIkpTRE9N
V2luZG93LmgiCiAjaW5jbHVkZSAiSlNFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkpTTWVzc2Fn
ZVBvcnRDdXN0b20uaCIKQEAgLTM1LDYgKzM3LDcgQEAKICNpbmNsdWRlICJKU1N0b3JhZ2UuaCIK
ICNpbmNsdWRlICJKU1RyYWNrQ3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNVaW50OEFycmF5LmgiCisj
aW5jbHVkZSAiSlNWb2lkQ2FsbGJhY2suaCIKICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgogI2lu
Y2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CkBAIC0yMjYsNiArMjI5LDI2IEBAIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxNZWRpCiB9CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQordm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZl
cnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPENTU0Zv
bnRGYWNlUnVsZT4mIHJlc3VsdCkKK3sKKyAgICByZXN1bHQgPSB0b0NTU0ZvbnRGYWNlUnVsZSh2
YWx1ZSk7Cit9CisKK3ZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxET01FcnJvcj4mIHJlc3VsdCkKK3sKKyAg
ICByZXN1bHQgPSB0b0RPTUVycm9yKHZhbHVlKTsKK30KKwordm9pZCBKU0RpY3Rpb25hcnk6OmNv
bnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQ
dHI8Vm9pZENhbGxiYWNrPiYgcmVzdWx0KQoreworICAgIGlmICghdmFsdWUuaXNGdW5jdGlvbigp
KQorICAgICAgICByZXR1cm47CisKKyAgICByZXN1bHQgPSBKU1ZvaWRDYWxsYmFjazo6Y3JlYXRl
KGFzT2JqZWN0KHZhbHVlKSwganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpKSk7Cit9CisjZW5kaWYKKwogYm9vbCBKU0RpY3Rpb25hcnk6OmdldFdp
dGhVbmRlZmluZWRPck51bGxDaGVjayhjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgU3RyaW5n
JiByZXN1bHQpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsaWQoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5oCmluZGV4IDcyOTI3NjRiMWYzM2QxOGVhNGJhZTJh
YjRhYzdkOTJhNDA5YzE2MDkuLjJiZTEwZWU3ZDAyMGM1ODk5OTY1ZWVlNWE2ZTMzNTUzZjYyMjdj
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5oCkBAIC0zNiw3
ICszNiw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFycmF5VmFsdWU7CitjbGFz
cyBDU1NGb250RmFjZVJ1bGU7CiBjbGFzcyBEaWN0aW9uYXJ5OworY2xhc3MgRE9NRXJyb3I7CiBj
bGFzcyBET01XaW5kb3c7CiBjbGFzcyBFdmVudFRhcmdldDsKIGNsYXNzIE1lZGlhS2V5RXJyb3I7
CkBAIC00Niw2ICs0OCw3IEBAIGNsYXNzIFNjcmlwdFZhbHVlOwogY2xhc3MgU2VyaWFsaXplZFNj
cmlwdFZhbHVlOwogY2xhc3MgU3RvcmFnZTsKIGNsYXNzIFRyYWNrQmFzZTsKK2NsYXNzIFZvaWRD
YWxsYmFjazsKIAogY2xhc3MgSlNEaWN0aW9uYXJ5IHsKIHB1YmxpYzoKQEAgLTExOSw2ICsxMjIs
MTEgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHN0YXRpYyB2b2lk
IGNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgUmVmUHRyPE1lZGlh
U3RyZWFtPiYgcmVzdWx0KTsKICNlbmRpZgorI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQor
ICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1
ZSwgUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4mIHJlc3VsdCk7CisgICAgc3RhdGljIHZvaWQgY29u
dmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBSZWZQdHI8RE9NRXJyb3I+
JiByZXN1bHQpOworICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNWYWx1ZSwgUmVmUHRyPFZvaWRDYWxsYmFjaz4mIHJlc3VsdCk7CisjZW5kaWYKIAog
ICAgIEpTQzo6RXhlY1N0YXRlKiBtX2V4ZWM7CiAgICAgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVj
dD4gbV9pbml0aWFsaXplck9iamVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L0RpY3Rpb25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlv
bmFyeS5jcHAKaW5kZXggYjE4NjJmYmIyMGM4NmI1NmNjYzFhY2UyOTk5NzU2NzA2MmE1MmYwYi4u
YjNiNzAyMmEwOTM1NzQwODZiOGNhZmUzYjliNDk5NWVmOWY0NDFlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFyeS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvRGljdGlvbmFyeS5jcHAKQEAgLTY0LDYgKzY0LDEyIEBACiAjaW5jbHVk
ZSAiVjhNZWRpYVN0cmVhbS5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5U
UykKKyNpbmNsdWRlICJWOENTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIlY4RE9NRXJyb3Iu
aCIKKyNpbmNsdWRlICJWOFZvaWRDYWxsYmFjay5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogRGljdGlvbmFyeTo6RGljdGlvbmFyeSgpCkBAIC00OTgsNiArNTA0LDU1IEBAIGJv
b2wgRGljdGlvbmFyeTo6Z2V0KGNvbnN0IFN0cmluZyYga2V5LCBBcnJheVZhbHVlJiB2YWx1ZSkg
Y29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRT
KQorYm9vbCBEaWN0aW9uYXJ5OjpnZXQoY29uc3QgU3RyaW5nJiBrZXksIFJlZlB0cjxDU1NGb250
RmFjZVJ1bGU+JiB2YWx1ZSkgY29uc3QKK3sKKyAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiB2OFZh
bHVlOworICAgIGlmICghZ2V0S2V5KGtleSwgdjhWYWx1ZSkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIENTU0ZvbnRGYWNlUnVsZSogc291cmNlID0gMDsKKyAgICBpZiAodjhWYWx1ZS0+
SXNPYmplY3QoKSkgeworICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHY4VmFsdWUpOworICAgICAgICB2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IGZvbnRmYWNlID0gd3JhcHBlci0+RmluZEluc3RhbmNlSW5Qcm90b3R5cGVD
aGFpbihWOENTU0ZvbnRGYWNlUnVsZTo6R2V0VGVtcGxhdGUobV9pc29sYXRlLCB3b3JsZFR5cGUo
bV9pc29sYXRlKSkpOworICAgICAgICBpZiAoIWZvbnRmYWNlLklzRW1wdHkoKSkKKyAgICAgICAg
ICAgIHNvdXJjZSA9IFY4Q1NTRm9udEZhY2VSdWxlOjp0b05hdGl2ZShmb250ZmFjZSk7CisgICAg
fQorICAgIHZhbHVlID0gc291cmNlOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIERpY3Rp
b25hcnk6OmdldChjb25zdCBTdHJpbmcmIGtleSwgUmVmUHRyPERPTUVycm9yPiYgdmFsdWUpIGNv
bnN0Cit7CisgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdjhWYWx1ZTsKKyAgICBpZiAoIWdldEtl
eShrZXksIHY4VmFsdWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBET01FcnJvciog
ZXJyb3IgPSAwOworICAgIGlmICh2OFZhbHVlLT5Jc09iamVjdCgpKSB7CisgICAgICAgIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3Qo
djhWYWx1ZSk7CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gZG9tRXJyb3IgPSB3cmFw
cGVyLT5GaW5kSW5zdGFuY2VJblByb3RvdHlwZUNoYWluKFY4RE9NRXJyb3I6OkdldFRlbXBsYXRl
KG1faXNvbGF0ZSwgd29ybGRUeXBlKG1faXNvbGF0ZSkpKTsKKyAgICAgICAgaWYgKCFkb21FcnJv
ci5Jc0VtcHR5KCkpCisgICAgICAgICAgICBlcnJvciA9IFY4RE9NRXJyb3I6OnRvTmF0aXZlKGRv
bUVycm9yKTsKKyAgICB9CisgICAgdmFsdWUgPSBlcnJvcjsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KworYm9vbCBEaWN0aW9uYXJ5OjpnZXQoY29uc3QgU3RyaW5nJiBrZXksIFJlZlB0cjxWb2lkQ2Fs
bGJhY2s+JiB2YWx1ZSkgY29uc3QKK3sKKyAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiB2OFZhbHVl
OworICAgIGlmICghZ2V0S2V5KGtleSwgdjhWYWx1ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGlmICghdjhWYWx1ZS0+SXNGdW5jdGlvbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICB2YWx1ZSA9IFY4Vm9pZENhbGxiYWNrOjpjcmVhdGUodjhWYWx1ZSwgZ2V0U2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKyNlbmRpZgorCiBib29s
IERpY3Rpb25hcnk6OmdldE93blByb3BlcnRpZXNBc1N0cmluZ0hhc2hNYXAoSGFzaE1hcDxTdHJp
bmcsIFN0cmluZz4mIGhhc2hNYXApIGNvbnN0CiB7CiAgICAgaWYgKCFpc09iamVjdCgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFyeS5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFyeS5oCmluZGV4IDc2NTAyOTVjMzIxZmI0ZmQ4
NTZlNDc0YmI5YmFmZDkzM2QwZDc3ZjYuLmQ0ZjY0NzI4MWZmNjY1ZDgyMTQ1ZDdmMWY5MDJhYWNl
YmIwZWMwMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25h
cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmgKQEAgLTM5
LDYgKzM5LDggQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXJyYXlWYWx1ZTsKK2Ns
YXNzIENTU0ZvbnRGYWNlUnVsZTsKK2NsYXNzIERPTUVycm9yOwogY2xhc3MgRE9NV2luZG93Owog
Y2xhc3MgSURCS2V5UmFuZ2U7CiBjbGFzcyBNZWRpYUtleUVycm9yOwpAQCAtNDgsNiArNTAsNyBA
QCBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDsKIGNsYXNzIFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdDsKIGNsYXNzIFN0b3JhZ2U7CiBjbGFzcyBUcmFja0Jhc2U7CitjbGFzcyBWb2lk
Q2FsbGJhY2s7CiAKIGNsYXNzIERpY3Rpb25hcnkgewogcHVibGljOgpAQCAtOTMsNiArOTYsMTEg
QEAgcHVibGljOgogICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIERpY3Rpb25hcnkmKSBjb25z
dDsKICAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpIGNvbnN0Owog
ICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIEFycmF5VmFsdWUmKSBjb25zdDsKKyNpZiBFTkFC
TEUoRk9OVF9MT0FEX0VWRU5UUykKKyAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBSZWZQdHI8
Q1NTRm9udEZhY2VSdWxlPiYpIGNvbnN0OworICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIFJl
ZlB0cjxET01FcnJvcj4mKSBjb25zdDsKKyAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBSZWZQ
dHI8Vm9pZENhbGxiYWNrPiYpIGNvbnN0OworI2VuZGlmCiAKICAgICBib29sIGdldE93blByb3Bl
cnRpZXNBc1N0cmluZ0hhc2hNYXAoSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mKSBjb25zdDsKICAg
ICBib29sIGdldE93blByb3BlcnR5TmFtZXMoVmVjdG9yPFN0cmluZz4mKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udEZhY2UuY3BwCmluZGV4IDI3N2ZiZDkyODlmNmQ3NzgxZjgxYWMzNDk0OWU3
MmYyODY0MzA1YWQuLjk5YWM0MTJlZGRkMGNlYWFmNDIwMDg1NTI0OTNjMDJhNWIwNTAzMjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcApAQCAtMjksNyArMjksMTAgQEAKICNpbmNsdWRl
ICJDU1NGb250RmFjZVNvdXJjZS5oIgogI2luY2x1ZGUgIkNTU0ZvbnRTZWxlY3Rvci5oIgogI2lu
Y2x1ZGUgIkNTU1NlZ21lbnRlZEZvbnRGYWNlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJGb250TG9hZGVyLmgiCisjaW5j
bHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNpbXBsZUZvbnREYXRh
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTgxLDE0ICs4NCwyOCBAQCB2b2lkIENTU0Zv
bnRGYWNlOjpmb250TG9hZGVkKENTU0ZvbnRGYWNlU291cmNlKiBzb3VyY2UpCiAgICAgaWYgKG1f
c2VnbWVudGVkRm9udEZhY2VzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSGFz
aFNldDxDU1NTZWdtZW50ZWRGb250RmFjZSo+OjppdGVyYXRvciBlbmQgPSBtX3NlZ21lbnRlZEZv
bnRGYWNlcy5lbmQoKTsKLSAgICBmb3IgKEhhc2hTZXQ8Q1NTU2VnbWVudGVkRm9udEZhY2UqPjo6
aXRlcmF0b3IgaXQgPSBtX3NlZ21lbnRlZEZvbnRGYWNlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsr
aXQpCi0gICAgICAgICgqaXQpLT5mb250TG9hZGVkKHRoaXMpOwotCiAgICAgLy8gVXNlIG9uZSBv
ZiB0aGUgQ1NTU2VnbWVudGVkRm9udEZhY2VzJyBmb250IHNlbGVjdG9yLiBUaGV5IGFsbCBoYXZl
CiAgICAgLy8gdGhlIHNhbWUgZm9udCBzZWxlY3Rvciwgc28gaXQncyB3YXN0ZWZ1bCB0byBzdG9y
ZSBpdCBpbiB0aGUgQ1NTRm9udEZhY2UuCiAgICAgQ1NTRm9udFNlbGVjdG9yKiBmb250U2VsZWN0
b3IgPSAoKm1fc2VnbWVudGVkRm9udEZhY2VzLmJlZ2luKCkpLT5mb250U2VsZWN0b3IoKTsKICAg
ICBmb250U2VsZWN0b3ItPmZvbnRMb2FkZWQoKTsKKworI2lmIEVOQUJMRShGT05UX0xPQURfRVZF
TlRTKQorICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpmb250TG9hZEV2ZW50c0VuYWJs
ZWQoKSAmJiBtX2xvYWRTdGF0ZSA9PSBMb2FkaW5nKSB7CisgICAgICAgIGlmIChzb3VyY2UtPmVu
c3VyZUZvbnREYXRhKCkpCisgICAgICAgICAgICBub3RpZnlGb250TG9hZGVyKExvYWRlZCk7Cisg
ICAgICAgIGVsc2UgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgICAgICBub3RpZnlGb250TG9hZGVy
KEVycm9yKTsKKyAgICB9CisjZW5kaWYKKworICAgIEhhc2hTZXQ8Q1NTU2VnbWVudGVkRm9udEZh
Y2UqPjo6aXRlcmF0b3IgZW5kID0gbV9zZWdtZW50ZWRGb250RmFjZXMuZW5kKCk7CisgICAgZm9y
IChIYXNoU2V0PENTU1NlZ21lbnRlZEZvbnRGYWNlKj46Oml0ZXJhdG9yIGl0ID0gbV9zZWdtZW50
ZWRGb250RmFjZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICAoKml0KS0+Zm9u
dExvYWRlZCh0aGlzKTsKKworI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQorICAgIGlmIChS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpmb250TG9hZEV2ZW50c0VuYWJsZWQoKSkKKyAgICAgICAg
bm90aWZ5TG9hZGluZ0RvbmUoKTsKKyNlbmRpZgogfQogCiBQYXNzUmVmUHRyPFNpbXBsZUZvbnRE
YXRhPiBDU1NGb250RmFjZTo6Z2V0Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250
RGVzY3JpcHRpb24sIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMpCkBA
IC0xMDAsMTcgKzExNyw2NiBAQCBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBDU1NGb250RmFj
ZTo6Z2V0Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RAogICAgIEFTU0VSVCgh
bV9zZWdtZW50ZWRGb250RmFjZXMuaXNFbXB0eSgpKTsKICAgICBDU1NGb250U2VsZWN0b3IqIGZv
bnRTZWxlY3RvciA9ICgqbV9zZWdtZW50ZWRGb250RmFjZXMuYmVnaW4oKSktPmZvbnRTZWxlY3Rv
cigpOwogCisjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisgICAgaWYgKFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OmZvbnRMb2FkRXZlbnRzRW5hYmxlZCgpICYmIG1fbG9hZFN0YXRlID09IE5v
dExvYWRlZCkKKyAgICAgICAgbm90aWZ5Rm9udExvYWRlcihMb2FkaW5nKTsKKyNlbmRpZgorCiAg
ICAgc2l6ZV90IHNpemUgPSBtX3NvdXJjZXMuc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAgIGlmIChSZWZQdHI8U2ltcGxlRm9udERhdGE+IHJl
c3VsdCA9IG1fc291cmNlc1tpXS0+Z2V0Rm9udERhdGEoZm9udERlc2NyaXB0aW9uLCBzeW50aGV0
aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIGZvbnRTZWxlY3RvcikpIHsKICAgICAgICAgICAgIG1f
YWN0aXZlU291cmNlID0gbV9zb3VyY2VzW2ldLmdldCgpOworI2lmIEVOQUJMRShGT05UX0xPQURf
RVZFTlRTKQorICAgICAgICAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmZvbnRMb2Fk
RXZlbnRzRW5hYmxlZCgpICYmIG1fbG9hZFN0YXRlID09IExvYWRpbmcgJiYgbV9zb3VyY2VzW2ld
LT5pc0xvYWRlZCgpKSB7CisgICAgICAgICAgICAgICAgbm90aWZ5Rm9udExvYWRlcihMb2FkZWQp
OworICAgICAgICAgICAgICAgIG5vdGlmeUxvYWRpbmdEb25lKCk7CisgICAgICAgICAgICB9Cisj
ZW5kaWYKICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOwogICAgICAgICB9CiAg
ICAgfQogCisjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisgICAgaWYgKFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OmZvbnRMb2FkRXZlbnRzRW5hYmxlZCgpICYmIG1fbG9hZFN0YXRlID09IExv
YWRpbmcpIHsKKyAgICAgICAgbm90aWZ5Rm9udExvYWRlcihFcnJvcik7CisgICAgICAgIG5vdGlm
eUxvYWRpbmdEb25lKCk7CisgICAgfQorI2VuZGlmCiAgICAgcmV0dXJuIDA7CiB9CiAKKyNpZiBF
TkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKK3ZvaWQgQ1NTRm9udEZhY2U6Om5vdGlmeUZvbnRMb2Fk
ZXIoTG9hZFN0YXRlIG5ld1N0YXRlKQoreworICAgIG1fbG9hZFN0YXRlID0gbmV3U3RhdGU7CisK
KyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSAoKm1fc2VnbWVudGVkRm9udEZhY2VzLmJlZ2luKCkp
LT5mb250U2VsZWN0b3IoKS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAg
ICByZXR1cm47CisKKyAgICBzd2l0Y2ggKG5ld1N0YXRlKSB7CisgICAgY2FzZSBMb2FkaW5nOgor
ICAgICAgICBkb2N1bWVudC0+Zm9udGxvYWRlcigpLT5iZWdpbkZvbnRMb2FkaW5nKG1fcnVsZS5n
ZXQoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9hZGVkOgorICAgICAgICBkb2N1bWVu
dC0+Zm9udGxvYWRlcigpLT5mb250TG9hZGVkKG1fcnVsZS5nZXQoKSk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgRXJyb3I6CisgICAgICAgIGRvY3VtZW50LT5mb250bG9hZGVyKCktPmxvYWRF
cnJvcihtX3J1bGUuZ2V0KCksIG1fYWN0aXZlU291cmNlKTsKKyAgICAgICAgYnJlYWs7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCit2b2lkIENTU0ZvbnRGYWNlOjpu
b3RpZnlMb2FkaW5nRG9uZSgpCit7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gKCptX3NlZ21l
bnRlZEZvbnRGYWNlcy5iZWdpbigpKS0+Zm9udFNlbGVjdG9yKCktPmRvY3VtZW50KCk7CisgICAg
aWYgKGRvY3VtZW50KQorICAgICAgICBkb2N1bWVudC0+Zm9udGxvYWRlcigpLT5sb2FkaW5nRG9u
ZSgpOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQogYm9vbCBDU1NGb250RmFj
ZTo6aGFzU1ZHRm9udEZhY2VTb3VyY2UoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2Uu
aAppbmRleCBlM2Y2NDgxMDdjNjE3ZThhZjIzNTVkOGYxMTQxMGExYTc3MTg3NGU3Li40ZWQ5NDZm
OTc5OGVjMDQ3MjgyOTVmOWEwZjgyN2VhNjMyMzI5ZTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRm9udEZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZh
Y2UuaApAQCAtMjYsNiArMjYsOCBAQAogI2lmbmRlZiBDU1NGb250RmFjZV9oCiAjZGVmaW5lIENT
U0ZvbnRGYWNlX2gKIAorI2luY2x1ZGUgIkNTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIkNT
U0ZvbnRGYWNlU291cmNlLmgiCiAjaW5jbHVkZSAiRm9udFRyYWl0c01hc2suaCIKICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC0zNiwxNCArMzgs
MTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBDU1NGb250RmFjZVNvdXJjZTsK
IGNsYXNzIENTU1NlZ21lbnRlZEZvbnRGYWNlOwogY2xhc3MgRm9udERlc2NyaXB0aW9uOwogY2xh
c3MgU2ltcGxlRm9udERhdGE7CiAKIGNsYXNzIENTU0ZvbnRGYWNlIDogcHVibGljIFJlZkNvdW50
ZWQ8Q1NTRm9udEZhY2U+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NGb250
RmFjZT4gY3JlYXRlKEZvbnRUcmFpdHNNYXNrIHRyYWl0c01hc2ssIGJvb2wgaXNMb2NhbEZhbGxi
YWNrID0gZmFsc2UpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NGb250RmFjZSh0cmFpdHNNYXNr
LCBpc0xvY2FsRmFsbGJhY2spKTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0ZvbnRGYWNl
PiBjcmVhdGUoRm9udFRyYWl0c01hc2sgdHJhaXRzTWFzaywgUGFzc1JlZlB0cjxDU1NGb250RmFj
ZVJ1bGU+IHJ1bGUsIGJvb2wgaXNMb2NhbEZhbGxiYWNrID0gZmFsc2UpIHsgcmV0dXJuIGFkb3B0
UmVmKG5ldyBDU1NGb250RmFjZSh0cmFpdHNNYXNrLCBydWxlLCBpc0xvY2FsRmFsbGJhY2spKTsg
fQogCiAgICAgRm9udFRyYWl0c01hc2sgdHJhaXRzTWFzaygpIGNvbnN0IHsgcmV0dXJuIG1fdHJh
aXRzTWFzazsgfQogCkBAIC04NSwxMiArODYsMjIgQEAgcHVibGljOgogICAgIGJvb2wgaGFzU1ZH
Rm9udEZhY2VTb3VyY2UoKSBjb25zdDsKICNlbmRpZgogCisjaWYgRU5BQkxFKEZPTlRfTE9BRF9F
VkVOVFMpCisgICAgZW51bSBMb2FkU3RhdGUgeyBOb3RMb2FkZWQsIExvYWRpbmcsIExvYWRlZCwg
RXJyb3IgfTsKKyAgICBMb2FkU3RhdGUgbG9hZFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9sb2Fk
U3RhdGU7IH0KKyNlbmRpZgorCiBwcml2YXRlOgotICAgIENTU0ZvbnRGYWNlKEZvbnRUcmFpdHNN
YXNrIHRyYWl0c01hc2ssIGJvb2wgaXNMb2NhbEZhbGxiYWNrKQorICAgIENTU0ZvbnRGYWNlKEZv
bnRUcmFpdHNNYXNrIHRyYWl0c01hc2ssIFBhc3NSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiBydWxl
LCBib29sIGlzTG9jYWxGYWxsYmFjaykKICAgICAgICAgOiBtX3RyYWl0c01hc2sodHJhaXRzTWFz
aykKICAgICAgICAgLCBtX2FjdGl2ZVNvdXJjZSgwKQogICAgICAgICAsIG1faXNMb2NhbEZhbGxi
YWNrKGlzTG9jYWxGYWxsYmFjaykKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKKyAgICAg
ICAgLCBtX2xvYWRTdGF0ZShpc0xvY2FsRmFsbGJhY2sgPyBMb2FkZWQgOiBOb3RMb2FkZWQpCisg
ICAgICAgICwgbV9ydWxlKHJ1bGUpCisjZW5kaWYKICAgICB7CisgICAgICAgIFVOVVNFRF9QQVJB
TShydWxlKTsKICAgICB9CiAKICAgICBGb250VHJhaXRzTWFzayBtX3RyYWl0c01hc2s7CkBAIC05
OSw2ICsxMTAsMTIgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8T3duUHRyPENTU0ZvbnRGYWNlU291
cmNlPiA+IG1fc291cmNlczsKICAgICBDU1NGb250RmFjZVNvdXJjZSogbV9hY3RpdmVTb3VyY2U7
CiAgICAgYm9vbCBtX2lzTG9jYWxGYWxsYmFjazsKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5U
UykKKyAgICBMb2FkU3RhdGUgbV9sb2FkU3RhdGU7CisgICAgUmVmUHRyPENTU0ZvbnRGYWNlUnVs
ZT4gbV9ydWxlOworICAgIHZvaWQgbm90aWZ5Rm9udExvYWRlcihMb2FkU3RhdGUpOworICAgIHZv
aWQgbm90aWZ5TG9hZGluZ0RvbmUoKTsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250RmFjZUxvYWRFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQxYjUzYjJlMWUyYzk5
MzFhMjdlZmViYzY0NzNmMTRlMzhmZGE5ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmFjZUxvYWRFdmVudC5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJDU1NGb250RmFjZUxvYWRFdmVudC5oIgorCisjaWYgRU5B
QkxFKEZPTlRfTE9BRF9FVkVOVFMpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ1NTRm9udEZh
Y2VMb2FkRXZlbnQ6OkNTU0ZvbnRGYWNlTG9hZEV2ZW50KCkKK3sKK30KKworQ1NTRm9udEZhY2VM
b2FkRXZlbnQ6OkNTU0ZvbnRGYWNlTG9hZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
UGFzc1JlZlB0cjxDU1NGb250RmFjZVJ1bGU+IGZvbnRmYWNlLCBQYXNzUmVmUHRyPERPTUVycm9y
PiBlcnJvcikKKyAgICA6IEV2ZW50KHR5cGUsIGZhbHNlLCBmYWxzZSkKKyAgICAsIG1fZm9udGZh
Y2UoZm9udGZhY2UpCisgICAgLCBtX2Vycm9yKGVycm9yKQoreworfQorCitDU1NGb250RmFjZUxv
YWRFdmVudDo6Q1NTRm9udEZhY2VMb2FkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBj
b25zdCBDU1NGb250RmFjZUxvYWRFdmVudEluaXQmIGluaXRpYWxpemVyKQorICAgIDogRXZlbnQo
dHlwZSwgaW5pdGlhbGl6ZXIpCisgICAgLCBtX2ZvbnRmYWNlKGluaXRpYWxpemVyLmZvbnRmYWNl
KQorICAgICwgbV9lcnJvcihpbml0aWFsaXplci5lcnJvcikKK3sKK30KKworQ1NTRm9udEZhY2VM
b2FkRXZlbnQ6On5DU1NGb250RmFjZUxvYWRFdmVudCgpCit7Cit9CisKK2NvbnN0IEF0b21pY1N0
cmluZyYgQ1NTRm9udEZhY2VMb2FkRXZlbnQ6OmludGVyZmFjZU5hbWUoKSBjb25zdAoreworICAg
IHJldHVybiBldmVudE5hbWVzKCkuaW50ZXJmYWNlRm9yQ1NTRm9udEZhY2VMb2FkRXZlbnQ7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShGT05UX0xPQURf
RVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wMDg0MjNmZmQ0N2NiODgxNDU0ZjYzMjcwMGU3YzhiODI5MmZlMmIzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmgKQEAgLTAs
MCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKKworI2lmbmRlZiBDU1NGb250
RmFjZUxvYWRFdmVudF9oCisjZGVmaW5lIENTU0ZvbnRGYWNlTG9hZEV2ZW50X2gKKworI2luY2x1
ZGUgIkNTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisjaW5jbHVkZSAi
RE9NRXJyb3IuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIK
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgQ1NTRm9udEZhY2VMb2FkRXZlbnRJbml0IDog
cHVibGljIEV2ZW50SW5pdCB7CisgICAgUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4gZm9udGZhY2U7
CisgICAgUmVmUHRyPERPTUVycm9yPiBlcnJvcjsKK307CisKK2NsYXNzIENTU0ZvbnRGYWNlTG9h
ZEV2ZW50IDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxD
U1NGb250RmFjZUxvYWRFdmVudD4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZjxDU1NGb250RmFjZUxvYWRFdmVudD4obmV3IENTU0ZvbnRGYWNlTG9hZEV2ZW50KCkpOwor
ICAgIH0KKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0ZvbnRGYWNlTG9hZEV2ZW50PiBjcmVh
dGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBDU1NGb250RmFjZUxvYWRFdmVudElu
aXQmIGluaXRpYWxpemVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmPENTU0ZvbnRG
YWNlTG9hZEV2ZW50PihuZXcgQ1NTRm9udEZhY2VMb2FkRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIp
KTsKKyAgICB9CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NGb250RmFjZUxvYWRFdmVudD4g
Y3JlYXRlRm9yRm9udEZhY2VSdWxlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgUGFzc1JlZlB0
cjxDU1NGb250RmFjZVJ1bGU+IHJ1bGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWY8
Q1NTRm9udEZhY2VMb2FkRXZlbnQ+KG5ldyBDU1NGb250RmFjZUxvYWRFdmVudCh0eXBlLCBydWxl
LCAwKSk7CisgICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTRm9udEZhY2VMb2FkRXZl
bnQ+IGNyZWF0ZUZvckVycm9yKFBhc3NSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiBydWxlLCBQYXNz
UmVmUHRyPERPTUVycm9yPiBlcnJvcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZjxD
U1NGb250RmFjZUxvYWRFdmVudD4obmV3IENTU0ZvbnRGYWNlTG9hZEV2ZW50KGV2ZW50TmFtZXMo
KS5lcnJvckV2ZW50LCBydWxlLCBlcnJvcikpOworICAgIH0KKworICAgIHZpcnR1YWwgfkNTU0Zv
bnRGYWNlTG9hZEV2ZW50KCk7CisKKyAgICBDU1NGb250RmFjZVJ1bGUqIGZvbnRmYWNlKCkgY29u
c3QgeyByZXR1cm4gbV9mb250ZmFjZS5nZXQoKTsgfQorICAgIERPTUVycm9yKiBlcnJvcigpIGNv
bnN0IHsgcmV0dXJuIG1fZXJyb3IuZ2V0KCk7IH0KKworICAgIHZpcnR1YWwgY29uc3QgQXRvbWlj
U3RyaW5nJiBpbnRlcmZhY2VOYW1lKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgQ1NTRm9udEZh
Y2VMb2FkRXZlbnQoKTsKKyAgICBDU1NGb250RmFjZUxvYWRFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmLCBQYXNzUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4sIFBhc3NSZWZQdHI8RE9NRXJyb3I+KTsK
KyAgICBDU1NGb250RmFjZUxvYWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBDU1NG
b250RmFjZUxvYWRFdmVudEluaXQmKTsKKworICAgIFJlZlB0cjxDU1NGb250RmFjZVJ1bGU+IG1f
Zm9udGZhY2U7CisgICAgUmVmUHRyPERPTUVycm9yPiBtX2Vycm9yOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ1NTRm9udEZhY2VMb2FkRXZlbnRfaAorI2VuZGlm
IC8vIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250
RmFjZUxvYWRFdmVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDJkY2VlMDhhNTAxNmMwM2Q3Nzg2YzFjZDRj
ZGQxNzViNWM4NjVkNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250RmFjZUxvYWRFdmVudC5pZGwKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1G
T05UX0xPQURfRVZFTlRTLAorICAgIFY4RW5hYmxlZEF0UnVudGltZT1mb250TG9hZEV2ZW50cywK
KyAgICBKU05vU3RhdGljVGFibGVzLAorICAgIENvbnN0cnVjdG9yVGVtcGxhdGU9RXZlbnQKK10g
aW50ZXJmYWNlIENTU0ZvbnRGYWNlTG9hZEV2ZW50IDogRXZlbnQgeworICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIENTU0ZvbnRGYWNlUnVsZSBm
b250ZmFjZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENvbnN0
cnVjdG9yXSBET01FcnJvciBlcnJvcjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1
bGUuaWRsCmluZGV4IGYxMzQ5N2M0MzdmNmFlZTFkNjYyNzA2M2YzMDU0Y2JiNmE5MjFjMGIuLmJh
OTdhN2I3ZjQ4MjYwYjZjMzMxNzUxNDEzM2QzZDY1YzExNGZhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZVJ1bGUuaWRsCkBAIC0xOSw3ICsxOSwxMCBAQAogICovCiAKIC8vIEludHJv
ZHVjZWQgaW4gRE9NIExldmVsIDI6Ci1pbnRlcmZhY2UgQ1NTRm9udEZhY2VSdWxlIDogQ1NTUnVs
ZSB7CitpbnRlcmZhY2UgWworICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorICAgIEpTR2VuZXJh
dGVUb05hdGl2ZU9iamVjdCwKK10gQ1NTRm9udEZhY2VSdWxlIDogQ1NTUnVsZSB7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIENTU1N0eWxlRGVjbGFyYXRpb24gc3R5bGU7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcAppbmRleCBhNTk1MjE3ZjM3NzQ5NTYxZDMx
NjIwMzI2ZWFmNTVmODUyMjZlODU4Li44MzM0YjE4MzY4YTZhYjIwMGE2NDQ0NzRjYjE5NGJjNmUw
YjEyZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAKQEAgLTIw
NSw0ICsyMDUsMjQgQEAgYm9vbCBDU1NGb250RmFjZVNvdXJjZTo6aXNTVkdGb250RmFjZVNvdXJj
ZSgpIGNvbnN0CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQorYm9v
bCBDU1NGb250RmFjZVNvdXJjZTo6aXNEZWNvZGVFcnJvcigpIGNvbnN0Cit7CisgICAgaWYgKG1f
Zm9udCkKKyAgICAgICAgcmV0dXJuIG1fZm9udC0+c3RhdHVzKCkgPT0gQ2FjaGVkUmVzb3VyY2U6
OkRlY29kZUVycm9yOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBDU1NGb250RmFjZVNv
dXJjZTo6ZW5zdXJlRm9udERhdGEoKQoreworICAgIGlmICghbV9mb250KQorICAgICAgICByZXR1
cm4gZmFsc2U7CisjaWYgRU5BQkxFKFNWR19GT05UUykKKyAgICBpZiAobV9oYXNFeHRlcm5hbFNW
R0ZvbnQpCisgICAgICAgIHJldHVybiBtX2ZvbnQtPmVuc3VyZVNWR0ZvbnREYXRhKCk7CisjZW5k
aWYKKyAgICByZXR1cm4gbV9mb250LT5lbnN1cmVDdXN0b21Gb250RGF0YSgpOworfQorI2VuZGlm
CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmgKaW5kZXggMDQ4OGQxMGQz
MjYwMGU0N2RlZGQwZjcyOGMwMDM0Y2EwNGFkZjE1Yy4uZjA5MDY5NWMxZDBmNjlkY2Q4NGVjZjky
Y2JkMjU1ZDgzNGFhMzlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
YWNlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmgK
QEAgLTcwLDYgKzcwLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEhhc0V4dGVybmFsU1ZHRm9u
dChib29sIHZhbHVlKSB7IG1faGFzRXh0ZXJuYWxTVkdGb250ID0gdmFsdWU7IH0KICNlbmRpZgog
CisjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisgICAgYm9vbCBpc0RlY29kZUVycm9yKCkg
Y29uc3Q7CisgICAgYm9vbCBlbnN1cmVGb250RGF0YSgpOworI2VuZGlmCisKIHByaXZhdGU6CiAg
ICAgdm9pZCBzdGFydExvYWRpbmdUaW1lckZpcmVkKFRpbWVyPENTU0ZvbnRGYWNlU291cmNlPiop
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCmluZGV4IDQ0YzYyYTdmYmM1
YzdiY2U2MGE3NmI2MmIxYjA2MzUxODhmNDA1MWUuLjRhMzAyMDkwZmMwNTc2MjM3NjZkNmMxZDU1
NmE4NmVhMjU3YmU2MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2Vs
ZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCkBA
IC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRGb250LmgiCiAjaW5jbHVkZSAiQ1NT
Rm9udEZhY2UuaCIKKyNpbmNsdWRlICJDU1NGb250RmFjZVJ1bGUuaCIKICNpbmNsdWRlICJDU1NG
b250RmFjZVNvdXJjZS5oIgogI2luY2x1ZGUgIkNTU0ZvbnRGYWNlU3JjVmFsdWUuaCIKICNpbmNs
dWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgpAQCAtMjI1LDggKzIyNiwxNSBAQCB2b2lkIENTU0Zv
bnRTZWxlY3Rvcjo6YWRkRm9udEZhY2VSdWxlKGNvbnN0IFN0eWxlUnVsZUZvbnRGYWNlKiBmb250
RmFjZVJ1bGUpCiAgICAgICAgICAgICBzb3VyY2UgPSBhZG9wdFB0cihuZXcgQ1NTRm9udEZhY2VT
b3VyY2UoaXRlbS0+cmVzb3VyY2UoKSkpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFmb250
RmFjZSkKLSAgICAgICAgICAgIGZvbnRGYWNlID0gQ1NTRm9udEZhY2U6OmNyZWF0ZShzdGF0aWNf
Y2FzdDxGb250VHJhaXRzTWFzaz4odHJhaXRzTWFzaykpOworICAgICAgICBpZiAoIWZvbnRGYWNl
KSB7CisgICAgICAgICAgICBSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiBydWxlOworI2lmIEVOQUJM
RShGT05UX0xPQURfRVZFTlRTKQorICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgQ1NTRm9udEZh
Y2VSdWxlIGhhcyBubyBwYXJlbnQuCisgICAgICAgICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6Zm9udExvYWRFdmVudHNFbmFibGVkKCkpCisgICAgICAgICAgICAgICAgcnVsZSA9IHN0
YXRpY19wb2ludGVyX2Nhc3Q8Q1NTRm9udEZhY2VSdWxlPihmb250RmFjZVJ1bGUtPmNyZWF0ZUNT
U09NV3JhcHBlcigpKTsKKyNlbmRpZgorICAgICAgICAgICAgZm9udEZhY2UgPSBDU1NGb250RmFj
ZTo6Y3JlYXRlKHN0YXRpY19jYXN0PEZvbnRUcmFpdHNNYXNrPih0cmFpdHNNYXNrKSwgcnVsZSk7
CisgICAgICAgIH0KIAogICAgICAgICBpZiAoc291cmNlKSB7CiAjaWYgRU5BQkxFKFNWR19GT05U
UykKQEAgLTI5OCw3ICszMDYsNyBAQCB2b2lkIENTU0ZvbnRTZWxlY3Rvcjo6YWRkRm9udEZhY2VS
dWxlKGNvbnN0IFN0eWxlUnVsZUZvbnRGYWNlKiBmb250RmFjZVJ1bGUpCiAgICAgICAgICAgICAg
ICAgT3duUHRyPFZlY3RvcjxSZWZQdHI8Q1NTRm9udEZhY2U+ID4gPiBmYW1pbHlMb2NhbGx5SW5z
dGFsbGVkRmFjZXMgPSBhZG9wdFB0cihuZXcgVmVjdG9yPFJlZlB0cjxDU1NGb250RmFjZT4gPik7
CiAKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtTG9jYWxseUlu
c3RhbGxlZEZhY2VzOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgUmVmUHRyPENTU0ZvbnRG
YWNlPiBsb2NhbGx5SW5zdGFsbGVkRm9udEZhY2UgPSBDU1NGb250RmFjZTo6Y3JlYXRlKHN0YXRp
Y19jYXN0PEZvbnRUcmFpdHNNYXNrPihsb2NhbGx5SW5zdGFsbGVkRm9udHNUcmFpdHNNYXNrc1tp
XSksIHRydWUpOworICAgICAgICAgICAgICAgICAgICBSZWZQdHI8Q1NTRm9udEZhY2U+IGxvY2Fs
bHlJbnN0YWxsZWRGb250RmFjZSA9IENTU0ZvbnRGYWNlOjpjcmVhdGUoc3RhdGljX2Nhc3Q8Rm9u
dFRyYWl0c01hc2s+KGxvY2FsbHlJbnN0YWxsZWRGb250c1RyYWl0c01hc2tzW2ldKSwgMCwgdHJ1
ZSk7CiAgICAgICAgICAgICAgICAgICAgIGxvY2FsbHlJbnN0YWxsZWRGb250RmFjZS0+YWRkU291
cmNlKGFkb3B0UHRyKG5ldyBDU1NGb250RmFjZVNvdXJjZShmYW1pbHlOYW1lKSkpOwogICAgICAg
ICAgICAgICAgICAgICBBU1NFUlQobG9jYWxseUluc3RhbGxlZEZvbnRGYWNlLT5pc1ZhbGlkKCkp
OwogICAgICAgICAgICAgICAgICAgICBmYW1pbHlMb2NhbGx5SW5zdGFsbGVkRmFjZXMtPmFwcGVu
ZChsb2NhbGx5SW5zdGFsbGVkRm9udEZhY2UpOwpAQCAtNDc2LDExICs0ODQsOSBAQCBQYXNzUmVm
UHRyPEZvbnREYXRhPiBDU1NGb250U2VsZWN0b3I6OmdldEZvbnREYXRhKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYgZm9udERlcwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBTdHJpbmcg
ZmFtaWx5ID0gZmFtaWx5TmFtZS5zdHJpbmcoKTsKLQotICAgIFZlY3RvcjxSZWZQdHI8Q1NTRm9u
dEZhY2U+ID4qIGZhbWlseUZvbnRGYWNlcyA9IG1fZm9udEZhY2VzLmdldChmYW1pbHkpOworICAg
IENTU1NlZ21lbnRlZEZvbnRGYWNlKiBmYWNlID0gZ2V0Rm9udEZhY2UoZm9udERlc2NyaXB0aW9u
LCBmYW1pbHlOYW1lKTsKICAgICAvLyBJZiBubyBmYWNlIHdhcyBmb3VuZCwgdGhlbiByZXR1cm4g
MCBhbmQgbGV0IHRoZSBPUyBjb21lIHVwIHdpdGggaXRzIGJlc3QgbWF0Y2ggZm9yIHRoZSBuYW1l
LgotICAgIGlmICghZmFtaWx5Rm9udEZhY2VzIHx8IGZhbWlseUZvbnRGYWNlcy0+aXNFbXB0eSgp
KSB7CisgICAgaWYgKCFmYWNlKSB7CiAgICAgICAgIC8vIElmIHdlIHdlcmUgaGFuZGVkIGEgZ2Vu
ZXJpYyBmYW1pbHksIGJ1dCB0aGVyZSB3YXMgbm8gbWF0Y2gsIGdvIGFoZWFkIGFuZCByZXR1cm4g
dGhlIGNvcnJlY3QgZm9udCBiYXNlZCBvZmYgb3VyCiAgICAgICAgIC8vIHNldHRpbmdzLgogICAg
ICAgICBpZiAoZm9udERlc2NyaXB0aW9uLmdlbmVyaWNGYW1pbHkoKSA9PSBGb250RGVzY3JpcHRp
b246OlN0YW5kYXJkRmFtaWx5ICYmICFmb250RGVzY3JpcHRpb24uaXNTcGVjaWZpZWRGb250KCkp
CkBAIC00ODgsNiArNDk0LDE4IEBAIFBhc3NSZWZQdHI8Rm9udERhdGE+IENTU0ZvbnRTZWxlY3Rv
cjo6Z2V0Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzCiAgICAgICAgIHJl
dHVybiBmb250RGF0YUZvckdlbmVyaWNGYW1pbHkobV9kb2N1bWVudCwgZm9udERlc2NyaXB0aW9u
LCBmYW1pbHlOYW1lKTsKICAgICB9CiAKKyAgICAvLyBXZSBoYXZlIGEgZmFjZS4gQXNrIGl0IGZv
ciBhIGZvbnQgZGF0YS4gSWYgaXQgY2Fubm90IHByb2R1Y2Ugb25lLCBpdCB3aWxsIGZhaWwsIGFu
ZCB0aGUgT1Mgd2lsbCB0YWtlIG92ZXIuCisgICAgcmV0dXJuIGZhY2UtPmdldEZvbnREYXRhKGZv
bnREZXNjcmlwdGlvbik7Cit9CisKK0NTU1NlZ21lbnRlZEZvbnRGYWNlKiBDU1NGb250U2VsZWN0
b3I6OmdldEZvbnRGYWNlKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBj
b25zdCBBdG9taWNTdHJpbmcmIGZhbWlseU5hbWUpCit7CisgICAgU3RyaW5nIGZhbWlseSA9IGZh
bWlseU5hbWUuc3RyaW5nKCk7CisKKyAgICBWZWN0b3I8UmVmUHRyPENTU0ZvbnRGYWNlPiA+KiBm
YW1pbHlGb250RmFjZXMgPSBtX2ZvbnRGYWNlcy5nZXQoZmFtaWx5KTsKKyAgICBpZiAoIWZhbWls
eUZvbnRGYWNlcyB8fCBmYW1pbHlGb250RmFjZXMtPmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IDA7CisKICAgICBPd25QdHI8SGFzaE1hcDx1bnNpZ25lZCwgUmVmUHRyPENTU1NlZ21lbnRlZEZv
bnRGYWNlPiA+ID4mIHNlZ21lbnRlZEZvbnRGYWNlQ2FjaGUgPSBtX2ZvbnRzLmFkZChmYW1pbHks
IG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKICAgICBpZiAoIXNlZ21lbnRlZEZvbnRGYWNlQ2Fj
aGUpCiAgICAgICAgIHNlZ21lbnRlZEZvbnRGYWNlQ2FjaGUgPSBhZG9wdFB0cihuZXcgSGFzaE1h
cDx1bnNpZ25lZCwgUmVmUHRyPENTU1NlZ21lbnRlZEZvbnRGYWNlPiA+KTsKQEAgLTUzNSw5ICs1
NTMsNyBAQCBQYXNzUmVmUHRyPEZvbnREYXRhPiBDU1NGb250U2VsZWN0b3I6OmdldEZvbnREYXRh
KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlcwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbnVtQ2FuZGlkYXRlczsgKytpKQogICAgICAgICAgICAgZmFjZS0+YXBwZW5kRm9u
dEZhY2UoY2FuZGlkYXRlRm9udEZhY2VzW2ldKTsKICAgICB9Ci0KLSAgICAvLyBXZSBoYXZlIGEg
ZmFjZS4gIEFzayBpdCBmb3IgYSBmb250IGRhdGEuICBJZiBpdCBjYW5ub3QgcHJvZHVjZSBvbmUs
IGl0IHdpbGwgZmFpbCwgYW5kIHRoZSBPUyB3aWxsIHRha2Ugb3Zlci4KLSAgICByZXR1cm4gZmFj
ZS0+Z2V0Rm9udERhdGEoZm9udERlc2NyaXB0aW9uKTsKKyAgICByZXR1cm4gZmFjZS5nZXQoKTsK
IH0KIAogdm9pZCBDU1NGb250U2VsZWN0b3I6OmNsZWFyRG9jdW1lbnQoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRTZWxlY3Rvci5oCmluZGV4IGQwMjEwMGMzMjYyMGY4ODU2MTUyZDllMDE2ZWJiZThh
MmJkMDgwMmYuLmRlNTA0NGNkZWVlZTZiYWYwYzNiMGQ3YjJkOWQyOGY1MmM1Yjg5MTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdW5zaWduZWQgdmVyc2lvbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1f
dmVyc2lvbjsgfQogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZvbnREYXRhPiBnZXRGb250RGF0
YShjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICBDU1NT
ZWdtZW50ZWRGb250RmFjZSogZ2V0Rm9udEZhY2UoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29u
c3QgQXRvbWljU3RyaW5nJik7CiAKICAgICB2b2lkIGNsZWFyRG9jdW1lbnQoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTZWdtZW50ZWRGb250RmFjZS5jcHAKaW5kZXggOWU5MDgzZjIwNTMz
NGYwMTY0YTZhZTAyNTA1M2EyYTlkNjg3MjUyMi4uNDJhMjk4NzY5OGExNWJmOWE3NTJlOGFmMWUy
Y2MxNzg3NmI4ZmYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21lbnRl
ZEZvbnRGYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VnbWVudGVkRm9udEZh
Y2UuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKKyNpbmNs
dWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2VnbWVudGVkRm9udERh
dGEuaCIKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgogCkBAIC03Miw2ICs3MywxOSBAQCBi
b29sIENTU1NlZ21lbnRlZEZvbnRGYWNlOjppc1ZhbGlkKCkgY29uc3QKIHZvaWQgQ1NTU2VnbWVu
dGVkRm9udEZhY2U6OmZvbnRMb2FkZWQoQ1NTRm9udEZhY2UqKQogewogICAgIHBydW5lVGFibGUo
KTsKKworI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQorICAgIGlmIChSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpmb250TG9hZEV2ZW50c0VuYWJsZWQoKSAmJiAhaXNMb2FkaW5nKCkpIHsKKyAg
ICAgICAgVmVjdG9yPFJlZlB0cjxMb2FkRm9udENhbGxiYWNrPiA+IGNhbGxiYWNrczsKKyAgICAg
ICAgbV9jYWxsYmFja3Muc3dhcChjYWxsYmFja3MpOworICAgICAgICBmb3IgKHNpemVfdCBpbmRl
eCA9IDA7IGluZGV4IDwgY2FsbGJhY2tzLnNpemUoKTsgKytpbmRleCkgeworICAgICAgICAgICAg
aWYgKGNoZWNrRm9udCgpKQorICAgICAgICAgICAgICAgIGNhbGxiYWNrc1tpbmRleF0tPm5vdGlm
eUxvYWRlZCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNhbGxiYWNrc1tp
bmRleF0tPm5vdGlmeUVycm9yKCk7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKIH0KIAogdm9p
ZCBDU1NTZWdtZW50ZWRGb250RmFjZTo6YXBwZW5kRm9udEZhY2UoUGFzc1JlZlB0cjxDU1NGb250
RmFjZT4gZm9udEZhY2UpCkBAIC0xMzUsNCArMTQ5LDM5IEBAIFBhc3NSZWZQdHI8Rm9udERhdGE+
IENTU1NlZ21lbnRlZEZvbnRGYWNlOjpnZXRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24m
IGZvCiAgICAgcmV0dXJuIDA7CiB9CiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKK2Jv
b2wgQ1NTU2VnbWVudGVkRm9udEZhY2U6OmlzTG9hZGluZygpIGNvbnN0Cit7CisgICAgdW5zaWdu
ZWQgc2l6ZSA9IG1fZm9udEZhY2VzLnNpemUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgc2l6ZTsgaSsrKSB7CisgICAgICAgIGlmIChtX2ZvbnRGYWNlc1tpXS0+bG9hZFN0YXRlKCkg
PT0gQ1NTRm9udEZhY2U6OkxvYWRpbmcpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIENTU1NlZ21lbnRlZEZvbnRGYWNlOjpjaGVj
a0ZvbnQoKSBjb25zdAoreworICAgIHVuc2lnbmVkIHNpemUgPSBtX2ZvbnRGYWNlcy5zaXplKCk7
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICBpZiAo
bV9mb250RmFjZXNbaV0tPmxvYWRTdGF0ZSgpICE9IENTU0ZvbnRGYWNlOjpMb2FkZWQpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCit2b2lk
IENTU1NlZ21lbnRlZEZvbnRGYWNlOjpsb2FkRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZv
bnREZXNjcmlwdGlvbiwgUGFzc1JlZlB0cjxMb2FkRm9udENhbGxiYWNrPiBjYWxsYmFjaykKK3sK
KyAgICBnZXRGb250RGF0YShmb250RGVzY3JpcHRpb24pOworICAgIGlmIChjYWxsYmFjaykgewor
ICAgICAgICBpZiAoaXNMb2FkaW5nKCkpCisgICAgICAgICAgICBtX2NhbGxiYWNrcy5hcHBlbmQo
Y2FsbGJhY2spOworICAgICAgICBlbHNlIGlmIChjaGVja0ZvbnQoKSkKKyAgICAgICAgICAgIGNh
bGxiYWNrLT5ub3RpZnlMb2FkZWQoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2FsbGJh
Y2stPm5vdGlmeUVycm9yKCk7CisgICAgfQorfQorI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWdtZW50ZWRGb250RmFjZS5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmgKaW5kZXggZjE4M2Y0OTk1ZTA4MjllZTE2OGEzODky
ZDZmOWVmM2ZhZGVlMDhmNy4uZWMzOWMxN2QxN2QyZmJjOTY2YjE5MmRhNzUzMDUyOGI4OTIyNDNj
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmgKQEAgLTUzLDE1
ICs1MywzMyBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPEZvbnREYXRhPiBnZXRGb250RGF0
YShjb25zdCBGb250RGVzY3JpcHRpb24mKTsKIAorI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRT
KQorICAgIGNsYXNzIExvYWRGb250Q2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxMb2FkRm9u
dENhbGxiYWNrPiB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5Mb2FkRm9udENhbGxi
YWNrKCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBub3RpZnlMb2FkZWQoKSA9IDA7CisgICAg
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlFcnJvcigpID0gMDsKKyAgICB9OworCisgICAgYm9vbCBj
aGVja0ZvbnQoKSBjb25zdDsKKyAgICB2b2lkIGxvYWRGb250KGNvbnN0IEZvbnREZXNjcmlwdGlv
biYsIFBhc3NSZWZQdHI8TG9hZEZvbnRDYWxsYmFjaz4gbG9hZENhbGxiYWNrKTsKKyNlbmRpZgor
CiBwcml2YXRlOgogICAgIENTU1NlZ21lbnRlZEZvbnRGYWNlKENTU0ZvbnRTZWxlY3RvciopOwog
CiAgICAgdm9pZCBwcnVuZVRhYmxlKCk7CiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisjaWYg
RU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisgICAgYm9vbCBpc0xvYWRpbmcoKSBjb25zdDsKKyNl
bmRpZgogCiAgICAgQ1NTRm9udFNlbGVjdG9yKiBtX2ZvbnRTZWxlY3RvcjsKICAgICBIYXNoTWFw
PHVuc2lnbmVkLCBSZWZQdHI8U2VnbWVudGVkRm9udERhdGE+ID4gbV9mb250RGF0YVRhYmxlOwog
ICAgIFZlY3RvcjxSZWZQdHI8Q1NTRm9udEZhY2U+LCAxPiBtX2ZvbnRGYWNlczsKKyNpZiBFTkFC
TEUoRk9OVF9MT0FEX0VWRU5UUykKKyAgICBWZWN0b3I8UmVmUHRyPExvYWRGb250Q2FsbGJhY2s+
ID4gbV9jYWxsYmFja3M7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9Gb250TG9hZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YTJhMTRkY2NlNWVmNjRmM2JjOGM0
OWU2Y2QxZWU3MjI0NDFlZmZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0ZvbnRMb2FkZXIuY3BwCkBAIC0wLDAgKzEsMzAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAq
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJGb250TG9hZGVyLmgiCisKKyNpZiBFTkFCTEUoRk9OVF9M
T0FEX0VWRU5UUykKKworI2luY2x1ZGUgIkNTU0ZvbnRGYWNlTG9hZEV2ZW50LmgiCisjaW5jbHVk
ZSAiQ1NTRm9udEZhY2VTb3VyY2UuaCIKKyNpbmNsdWRlICJDU1NGb250U2VsZWN0b3IuaCIKKyNp
bmNsdWRlICJDU1NQYXJzZXIuaCIKKyNpbmNsdWRlICJDU1NTZWdtZW50ZWRGb250RmFjZS5oIgor
I2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQuaCIKKyNpbmNsdWRlICJT
dHlsZVJlc29sdmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGNvbnN0IGlu
dCBkZWZhdWx0Rm9udFNpemUgPSAxMDsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBkZWZhdWx0
Rm9udEZhbWlseSA9ICJzYW5zLXNlcmlmIjsKKworY2xhc3MgTG9hZEZvbnRDYWxsYmFjayA6IHB1
YmxpYyBDU1NTZWdtZW50ZWRGb250RmFjZTo6TG9hZEZvbnRDYWxsYmFjayB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8TG9hZEZvbnRDYWxsYmFjaz4gY3JlYXRlKGludCBudW1Mb2Fk
aW5nLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gbG9hZENhbGxiYWNrLCBQYXNzUmVmUHRyPFZv
aWRDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZjxMb2FkRm9udENhbGxiYWNrPihuZXcgTG9hZEZvbnRDYWxsYmFjayhudW1Mb2FkaW5nLCBsb2Fk
Q2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsKKyAgICB9CisgICAgdmlydHVhbCB2b2lkIG5vdGlm
eUxvYWRlZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlFcnJvcigpIE9WRVJS
SURFOworcHJpdmF0ZToKKyAgICBMb2FkRm9udENhbGxiYWNrKGludCBudW1Mb2FkaW5nLCBQYXNz
UmVmUHRyPFZvaWRDYWxsYmFjaz4gbG9hZENhbGxiYWNrLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFj
az4gZXJyb3JDYWxsYmFjaykgOiBtX251bUxvYWRpbmcobnVtTG9hZGluZyksIG1fZXJyb3JPY2N1
cmVkKGZhbHNlKSwgbV9sb2FkQ2FsbGJhY2sobG9hZENhbGxiYWNrKSwgbV9lcnJvckNhbGxiYWNr
KGVycm9yQ2FsbGJhY2spIHsgfQorCisgICAgaW50IG1fbnVtTG9hZGluZzsKKyAgICBib29sIG1f
ZXJyb3JPY2N1cmVkOworICAgIFJlZlB0cjxWb2lkQ2FsbGJhY2s+IG1fbG9hZENhbGxiYWNrOwor
ICAgIFJlZlB0cjxWb2lkQ2FsbGJhY2s+IG1fZXJyb3JDYWxsYmFjazsKK307CisKK3ZvaWQgTG9h
ZEZvbnRDYWxsYmFjazo6bm90aWZ5TG9hZGVkKCkKK3sKKyAgICBtX251bUxvYWRpbmctLTsKKyAg
ICBpZiAobV9udW1Mb2FkaW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9lcnJvck9j
Y3VyZWQpIHsKKyAgICAgICAgaWYgKG1fZXJyb3JDYWxsYmFjaykKKyAgICAgICAgICAgIG1fZXJy
b3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobV9s
b2FkQ2FsbGJhY2spCisgICAgICAgICAgICBtX2xvYWRDYWxsYmFjay0+aGFuZGxlRXZlbnQoKTsK
KyAgICB9Cit9CisKK3ZvaWQgTG9hZEZvbnRDYWxsYmFjazo6bm90aWZ5RXJyb3IoKSAKK3sKKyAg
ICBtX2Vycm9yT2NjdXJlZCA9IHRydWU7CisgICAgbm90aWZ5TG9hZGVkKCk7Cit9CisKK0ZvbnRM
b2FkZXI6OkZvbnRMb2FkZXIoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogQWN0aXZlRE9NT2Jq
ZWN0KGRvY3VtZW50LCB0aGlzKQorICAgICwgbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICAsIG1f
bG9hZGluZ0NvdW50KDApCit7CisgICAgc3VzcGVuZElmTmVlZGVkKCk7Cit9CisKK0ZvbnRMb2Fk
ZXI6On5Gb250TG9hZGVyKCkKK3sKK30KKworRXZlbnRUYXJnZXREYXRhKiBGb250TG9hZGVyOjpl
dmVudFRhcmdldERhdGEoKQoreworICAgIHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7Cit9CisK
K0V2ZW50VGFyZ2V0RGF0YSogRm9udExvYWRlcjo6ZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkKK3sK
KyAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOworfQorCitjb25zdCBBdG9taWNTdHJpbmcm
IEZvbnRMb2FkZXI6OmludGVyZmFjZU5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBldmVudE5h
bWVzKCkuaW50ZXJmYWNlRm9yRm9udExvYWRlcjsKK30KKworU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogRm9udExvYWRlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworfQorCit2b2lk
IEZvbnRMb2FkZXI6OmRpZExheW91dCgpCit7CisgICAgZmlyZVBlbmRpbmdFdmVudHMoKTsKKyAg
ICBsb2FkaW5nRG9uZSgpOworfQorCit2b2lkIEZvbnRMb2FkZXI6OnNjaGVkdWxlRXZlbnQoUGFz
c1JlZlB0cjxFdmVudD4gZXZlbnQpCit7CisgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IG1fZG9j
dW1lbnQtPnZpZXcoKSkgeworICAgICAgICBpZiAodmlldy0+aXNJbkxheW91dCgpKSB7CisgICAg
ICAgICAgICBtX3BlbmRpbmdFdmVudHMuYXBwZW5kKGV2ZW50KTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgIH0KKyAgICBmaXJlUGVuZGluZ0V2ZW50cygpOworICAgIGRpc3Bh
dGNoRXZlbnQoZXZlbnQpOworfQorCit2b2lkIEZvbnRMb2FkZXI6OmZpcmVQZW5kaW5nRXZlbnRz
KCkKK3sKKyAgICBpZiAobV9wZW5kaW5nRXZlbnRzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgVmVjdG9yPFJlZlB0cjxFdmVudD4gPiBwZW5kaW5nRXZlbnRzOworICAgIG1fcGVu
ZGluZ0V2ZW50cy5zd2FwKHBlbmRpbmdFdmVudHMpOworICAgIGZvciAoc2l6ZV90IGluZGV4ID0g
MDsgaW5kZXggPCBwZW5kaW5nRXZlbnRzLnNpemUoKTsgKytpbmRleCkKKyAgICAgICAgZGlzcGF0
Y2hFdmVudChwZW5kaW5nRXZlbnRzW2luZGV4XS5yZWxlYXNlKCkpOworfQorCit2b2lkIEZvbnRM
b2FkZXI6OmJlZ2luRm9udExvYWRpbmcoQ1NTRm9udEZhY2VSdWxlKiBydWxlKQoreworICAgICsr
bV9sb2FkaW5nQ291bnQ7CisgICAgaWYgKG1fbG9hZGluZ0NvdW50ID09IDEgJiYgIW1fbG9hZGlu
Z0RvbmVFdmVudCkKKyAgICAgICAgc2NoZWR1bGVFdmVudChDU1NGb250RmFjZUxvYWRFdmVudDo6
Y3JlYXRlRm9yRm9udEZhY2VSdWxlKGV2ZW50TmFtZXMoKS5sb2FkaW5nRXZlbnQsIHJ1bGUpKTsK
KyAgICBzY2hlZHVsZUV2ZW50KENTU0ZvbnRGYWNlTG9hZEV2ZW50OjpjcmVhdGVGb3JGb250RmFj
ZVJ1bGUoZXZlbnROYW1lcygpLmxvYWRzdGFydEV2ZW50LCBydWxlKSk7Cit9CisKK3ZvaWQgRm9u
dExvYWRlcjo6Zm9udExvYWRlZChDU1NGb250RmFjZVJ1bGUqIHJ1bGUpCit7CisgICAgQVNTRVJU
KG1fbG9hZGluZ0NvdW50ID4gMCk7CisgICAgc2NoZWR1bGVFdmVudChDU1NGb250RmFjZUxvYWRF
dmVudDo6Y3JlYXRlRm9yRm9udEZhY2VSdWxlKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQsIHJ1bGUp
KTsKKworICAgIC0tbV9sb2FkaW5nQ291bnQ7CisgICAgaWYgKCFtX2xvYWRpbmdDb3VudCkKKyAg
ICAgICAgbV9sb2FkaW5nRG9uZUV2ZW50ID0gQ1NTRm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZUZv
ckZvbnRGYWNlUnVsZShldmVudE5hbWVzKCkubG9hZGluZ2RvbmVFdmVudCwgcnVsZSk7Cit9CisK
K3ZvaWQgRm9udExvYWRlcjo6bG9hZEVycm9yKENTU0ZvbnRGYWNlUnVsZSogcnVsZSwgQ1NTRm9u
dEZhY2VTb3VyY2UqIHNvdXJjZSkKK3sKKyAgICBBU1NFUlQobV9sb2FkaW5nQ291bnQgPiAwKTsK
KworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVwb3J0IE5ldHdvcmtFcnJvciBpbiBjYXNlIG9m
IHRpbWVvdXQsIGV0Yy4KKyAgICBTdHJpbmcgZXJyb3JOYW1lID0gKHNvdXJjZSAmJiBzb3VyY2Ut
PmlzRGVjb2RlRXJyb3IoKSkgPyAiSW52YWxpZEZvbnREYXRhRXJyb3IiIDogIk5vdEZvdW5kRXJy
b3IiOworICAgIHNjaGVkdWxlRXZlbnQoQ1NTRm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZUZvckVy
cm9yKHJ1bGUsIERPTUVycm9yOjpjcmVhdGUoZXJyb3JOYW1lKSkpOworICAgIC0tbV9sb2FkaW5n
Q291bnQ7CisgICAgaWYgKCFtX2xvYWRpbmdDb3VudCkKKyAgICAgICAgbV9sb2FkaW5nRG9uZUV2
ZW50ID0gQ1NTRm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZUZvckZvbnRGYWNlUnVsZShldmVudE5h
bWVzKCkubG9hZGluZ2RvbmVFdmVudCwgcnVsZSk7Cit9CisKK3ZvaWQgRm9udExvYWRlcjo6bm90
aWZ5V2hlbkZvbnRzUmVhZHkoUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IGNhbGxiYWNrKQorewor
ICAgIG1fY2FsbGJhY2tzLmFwcGVuZChjYWxsYmFjayk7CisgICAgbG9hZGluZ0RvbmUoKTsKK30K
Kwordm9pZCBGb250TG9hZGVyOjpsb2FkaW5nRG9uZSgpCit7CisgICAgaWYgKGxvYWRpbmcoKSkK
KyAgICAgICAgcmV0dXJuOworICAgIGlmICghbV9sb2FkaW5nRG9uZUV2ZW50ICYmIG1fY2FsbGJh
Y2tzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKEZyYW1lVmlldyogdmll
dyA9IG1fZG9jdW1lbnQtPnZpZXcoKSkgeworICAgICAgICBpZiAodmlldy0+aXNJbkxheW91dCgp
IHx8IHZpZXctPm5lZWRzTGF5b3V0KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1f
ZG9jdW1lbnQtPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICAgICAgaWYgKHZpZXctPm5lZWRz
TGF5b3V0KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fbG9hZGlu
Z0RvbmVFdmVudCkKKyAgICAgICAgZGlzcGF0Y2hFdmVudChtX2xvYWRpbmdEb25lRXZlbnQucmVs
ZWFzZSgpKTsKKworICAgIGlmICghbV9jYWxsYmFja3MuaXNFbXB0eSgpKSB7CisgICAgICAgIFZl
Y3RvcjxSZWZQdHI8Vm9pZENhbGxiYWNrPiA+IGNhbGxiYWNrczsKKyAgICAgICAgbV9jYWxsYmFj
a3Muc3dhcChjYWxsYmFja3MpOworICAgICAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4
IDwgY2FsbGJhY2tzLnNpemUoKTsgKytpbmRleCkKKyAgICAgICAgICAgIGNhbGxiYWNrc1tpbmRl
eF0tPmhhbmRsZUV2ZW50KCk7CisgICAgfQorfQorCit2b2lkIEZvbnRMb2FkZXI6OmxvYWRGb250
KGNvbnN0IERpY3Rpb25hcnkmIHBhcmFtcykKK3sKKyAgICAvLyBGSVhNRTogdGhlIHRleHQgbWVt
YmVyIG9mIHBhcmFtcyBpcyBpZ25vcmVkLgorICAgIFN0cmluZyBmb250U3RyaW5nOworICAgIFJl
ZlB0cjxWb2lkQ2FsbGJhY2s+IG9uc3VjY2VzczsKKyAgICBSZWZQdHI8Vm9pZENhbGxiYWNrPiBv
bmVycm9yOworICAgIGlmICghcGFyYW1zLmdldCgiZm9udCIsIGZvbnRTdHJpbmcpKQorICAgICAg
ICByZXR1cm47CisgICAgcGFyYW1zLmdldCgib25zdWNjZXNzIiwgb25zdWNjZXNzKTsKKyAgICBw
YXJhbXMuZ2V0KCJvbmVycm9yIiwgb25lcnJvcik7CisgICAgRm9udCBmb250OworICAgIGlmICgh
cmVzb2x2ZUZvbnRTdHlsZShmb250U3RyaW5nLCBmb250KSkKKyAgICAgICAgcmV0dXJuOworICAg
IFJlZlB0cjxMb2FkRm9udENhbGxiYWNrPiBjYWxsYmFjazsKKyAgICBpZiAob25zdWNjZXNzIHx8
IG9uZXJyb3IpIHsKKyAgICAgICAgaW50IG51bUZhbWlsaWVzID0gMDsKKyAgICAgICAgZm9yIChj
b25zdCBGb250RmFtaWx5KiBmID0gJmZvbnQuZmFtaWx5KCk7IGY7IGYgPSBmLT5uZXh0KCkpCisg
ICAgICAgICAgICBudW1GYW1pbGllcysrOworICAgICAgICBjYWxsYmFjayA9IExvYWRGb250Q2Fs
bGJhY2s6OmNyZWF0ZShudW1GYW1pbGllcywgb25zdWNjZXNzLCBvbmVycm9yKTsKKyAgICB9Cisg
ICAgCisgICAgZm9yIChjb25zdCBGb250RmFtaWx5KiBmID0gJmZvbnQuZmFtaWx5KCk7IGY7IGYg
PSBmLT5uZXh0KCkpIHsKKyAgICAgICAgQ1NTU2VnbWVudGVkRm9udEZhY2UqIGZhY2UgPSBtX2Rv
Y3VtZW50LT5zdHlsZVJlc29sdmVyKCktPmZvbnRTZWxlY3RvcigpLT5nZXRGb250RmFjZShmb250
LmZvbnREZXNjcmlwdGlvbigpLCBmLT5mYW1pbHkoKSk7CisgICAgICAgIGlmICghZmFjZSkgewor
ICAgICAgICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAgICAgICAgIGNhbGxiYWNrLT5ub3Rp
ZnlFcnJvcigpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgZmFj
ZS0+bG9hZEZvbnQoZm9udC5mb250RGVzY3JpcHRpb24oKSwgY2FsbGJhY2spOworICAgIH0KK30K
KworYm9vbCBGb250TG9hZGVyOjpjaGVja0ZvbnQoY29uc3QgU3RyaW5nJiBmb250U3RyaW5nLCBj
b25zdCBTdHJpbmcmKQoreworICAgIC8vIEZJWE1FOiB0aGUgc2Vjb25kIHBhcmFtZXRlciAodGV4
dCkgaXMgaWdub3JlZC4KKyAgICBGb250IGZvbnQ7CisgICAgaWYgKCFyZXNvbHZlRm9udFN0eWxl
KGZvbnRTdHJpbmcsIGZvbnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZm9yIChjb25z
dCBGb250RmFtaWx5KiBmID0gJmZvbnQuZmFtaWx5KCk7IGY7IGYgPSBmLT5uZXh0KCkpIHsKKyAg
ICAgICAgQ1NTU2VnbWVudGVkRm9udEZhY2UqIGZhY2UgPSBtX2RvY3VtZW50LT5zdHlsZVJlc29s
dmVyKCktPmZvbnRTZWxlY3RvcigpLT5nZXRGb250RmFjZShmb250LmZvbnREZXNjcmlwdGlvbigp
LCBmLT5mYW1pbHkoKSk7CisgICAgICAgIGlmICghZmFjZSB8fCAhZmFjZS0+Y2hlY2tGb250KCkp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQor
Citib29sIEZvbnRMb2FkZXI6OnJlc29sdmVGb250U3R5bGUoY29uc3QgU3RyaW5nJiBmb250U3Ry
aW5nLCBGb250JiBmb250KQoreworICAgIC8vIEludGVycHJldCBmb250U3RyaW5nIGluIHRoZSBz
YW1lIHdheSBhcyB0aGUgJ2ZvbnQnIGF0dHJpYnV0ZSBvZiBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuCisgICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IHBhcnNlZFN0eWxlID0gU3R5bGVQcm9w
ZXJ0eVNldDo6Y3JlYXRlKCk7CisgICAgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKHBhcnNlZFN0eWxl
LmdldCgpLCBDU1NQcm9wZXJ0eUZvbnQsIGZvbnRTdHJpbmcsIHRydWUsIENTU1N0cmljdE1vZGUs
IDApOworICAgIGlmIChwYXJzZWRTdHlsZS0+aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgCisgICAgU3RyaW5nIGZvbnRWYWx1ZSA9IHBhcnNlZFN0eWxlLT5nZXRQcm9wZXJ0
eVZhbHVlKENTU1Byb3BlcnR5Rm9udCk7CisgICAgaWYgKGZvbnRWYWx1ZSA9PSAiaW5oZXJpdCIg
fHwgZm9udFZhbHVlID09ICJpbml0aWFsIikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
UmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsKKworICAg
IEZvbnRGYW1pbHkgZm9udEZhbWlseTsKKyAgICBmb250RmFtaWx5LnNldEZhbWlseShkZWZhdWx0
Rm9udEZhbWlseSk7CisKKyAgICBGb250RGVzY3JpcHRpb24gZGVmYXVsdEZvbnREZXNjcmlwdGlv
bjsKKyAgICBkZWZhdWx0Rm9udERlc2NyaXB0aW9uLnNldEZhbWlseShmb250RmFtaWx5KTsKKyAg
ICBkZWZhdWx0Rm9udERlc2NyaXB0aW9uLnNldFNwZWNpZmllZFNpemUoZGVmYXVsdEZvbnRTaXpl
KTsKKyAgICBkZWZhdWx0Rm9udERlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZShkZWZhdWx0Rm9u
dFNpemUpOworCisgICAgc3R5bGUtPnNldEZvbnREZXNjcmlwdGlvbihkZWZhdWx0Rm9udERlc2Ny
aXB0aW9uKTsKKworICAgIHN0eWxlLT5mb250KCkudXBkYXRlKHN0eWxlLT5mb250KCkuZm9udFNl
bGVjdG9yKCkpOworCisgICAgLy8gTm93IG1hcCB0aGUgZm9udCBwcm9wZXJ0eSBsb25naGFuZHMg
aW50byB0aGUgc3R5bGUuCisgICAgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciA9IG1fZG9j
dW1lbnQtPnN0eWxlUmVzb2x2ZXIoKTsKKyAgICBzdHlsZVJlc29sdmVyLT5hcHBseVByb3BlcnR5
VG9TdHlsZShDU1NQcm9wZXJ0eUZvbnRGYW1pbHksIHBhcnNlZFN0eWxlLT5nZXRQcm9wZXJ0eUNT
U1ZhbHVlKENTU1Byb3BlcnR5Rm9udEZhbWlseSkuZ2V0KCksIHN0eWxlLmdldCgpKTsKKyAgICBz
dHlsZVJlc29sdmVyLT5hcHBseVByb3BlcnR5VG9DdXJyZW50U3R5bGUoQ1NTUHJvcGVydHlGb250
U3R5bGUsIHBhcnNlZFN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5Rm9udFN0
eWxlKS5nZXQoKSk7CisgICAgc3R5bGVSZXNvbHZlci0+YXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0
eWxlKENTU1Byb3BlcnR5Rm9udFZhcmlhbnQsIHBhcnNlZFN0eWxlLT5nZXRQcm9wZXJ0eUNTU1Zh
bHVlKENTU1Byb3BlcnR5Rm9udFZhcmlhbnQpLmdldCgpKTsKKyAgICBzdHlsZVJlc29sdmVyLT5h
cHBseVByb3BlcnR5VG9DdXJyZW50U3R5bGUoQ1NTUHJvcGVydHlGb250V2VpZ2h0LCBwYXJzZWRT
dHlsZS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUZvbnRXZWlnaHQpLmdldCgpKTsK
KworICAgIC8vIEFzIGRlc2NyaWJlZCBpbiBCVUc2NjI5MSwgc2V0dGluZyBmb250LXNpemUgYW5k
IGxpbmUtaGVpZ2h0IG9uIGEgZm9udCBtYXkgZW50YWlsIGEgQ1NTUHJpbWl0aXZlVmFsdWU6OmNv
bXB1dGVMZW5ndGhEb3VibGUgY2FsbCwKKyAgICAvLyB3aGljaCBhc3N1bWVzIHRoZSBmb250TWV0
cmljcyBhcmUgYXZhaWxhYmxlIGZvciB0aGUgYWZmZWN0ZWQgZm9udCwgb3RoZXJ3aXNlIGEgY3Jh
c2ggb2NjdXJzIChzZWUgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvOTYxMjIpLgor
ICAgIC8vIFRoZSB1cGRhdGVGb250KCkgY2FsbHMgYmVsb3cgdXBkYXRlIHRoZSBmb250TWV0cmlj
cyBhbmQgZW5zdXJlIHRoZSBwcm9wZXIgc2V0dGluZyBvZiBmb250LXNpemUgYW5kIGxpbmUtaGVp
Z2h0LgorICAgIHN0eWxlUmVzb2x2ZXItPnVwZGF0ZUZvbnQoKTsKKyAgICBzdHlsZVJlc29sdmVy
LT5hcHBseVByb3BlcnR5VG9DdXJyZW50U3R5bGUoQ1NTUHJvcGVydHlGb250U2l6ZSwgcGFyc2Vk
U3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlGb250U2l6ZSkuZ2V0KCkpOwor
ICAgIHN0eWxlUmVzb2x2ZXItPnVwZGF0ZUZvbnQoKTsKKyAgICBzdHlsZVJlc29sdmVyLT5hcHBs
eVByb3BlcnR5VG9DdXJyZW50U3R5bGUoQ1NTUHJvcGVydHlMaW5lSGVpZ2h0LCBwYXJzZWRTdHls
ZS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUxpbmVIZWlnaHQpLmdldCgpKTsKKwor
ICAgIGZvbnQgPSBzdHlsZS0+Zm9udCgpOworICAgIGZvbnQudXBkYXRlKHN0eWxlUmVzb2x2ZXIt
PmZvbnRTZWxlY3RvcigpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0Zv
bnRMb2FkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ODQ1OThkYzQ1YWIwNzc0NDgwNDUyNWM5OTVkZGVhY2Qy
YTFkZTA0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIu
aApAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
CisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEZPTlRfTE9BRF9F
VkVOVFMpCisKKyNpZm5kZWYgRm9udExvYWRlcl9oCisjZGVmaW5lIEZvbnRMb2FkZXJfaAorCisj
aW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgor
I2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1
ZGUgIlZvaWRDYWxsYmFjay5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgQ2FjaGVkRm9udDsKK2NsYXNzIENTU0ZvbnRGYWNlUnVsZTsK
K2NsYXNzIENTU0ZvbnRGYWNlU291cmNlOworY2xhc3MgRGljdGlvbmFyeTsKK2NsYXNzIERvY3Vt
ZW50OworY2xhc3MgRXZlbnQ7CitjbGFzcyBGb250OworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDsKKworY2xhc3MgRm9udExvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPEZvbnRMb2FkZXI+
LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJnZXQgeworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZvbnRMb2FkZXI+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1l
bnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWY8Rm9udExvYWRlcj4obmV3IEZvbnRM
b2FkZXIoZG9jdW1lbnQpKTsKKyAgICB9CisgICAgdmlydHVhbCB+Rm9udExvYWRlcigpOworCisg
ICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihsb2FkaW5nKTsKKyAgICBERUZJTkVf
QVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGxvYWRpbmdkb25lKTsKKyAgICBERUZJTkVfQVRUUklC
VVRFX0VWRU5UX0xJU1RFTkVSKGxvYWRzdGFydCk7CisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVO
VF9MSVNURU5FUihsb2FkKTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGVy
cm9yKTsKKworICAgIGJvb2wgY2hlY2tGb250KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
OworICAgIHZvaWQgbG9hZEZvbnQoY29uc3QgRGljdGlvbmFyeSYpOworICAgIHZvaWQgbm90aWZ5
V2hlbkZvbnRzUmVhZHkoUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+KTsKKworICAgIGJvb2wgbG9h
ZGluZygpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZGluZ0NvdW50ID4gMDsgfQorCisgICAgdmlydHVh
bCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Q7
CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGludGVyZmFjZU5hbWUoKSBjb25zdDsK
KworICAgIHVzaW5nIFJlZkNvdW50ZWQ8Rm9udExvYWRlcj46OnJlZjsKKyAgICB1c2luZyBSZWZD
b3VudGVkPEZvbnRMb2FkZXI+OjpkZXJlZjsKKworICAgIERvY3VtZW50KiBkb2N1bWVudCgpIHsg
cmV0dXJuIG1fZG9jdW1lbnQ7IH0KKworICAgIHZvaWQgZGlkTGF5b3V0KCk7CisgICAgdm9pZCBi
ZWdpbkZvbnRMb2FkaW5nKENTU0ZvbnRGYWNlUnVsZSopOworICAgIHZvaWQgZm9udExvYWRlZChD
U1NGb250RmFjZVJ1bGUqKTsKKyAgICB2b2lkIGxvYWRFcnJvcihDU1NGb250RmFjZVJ1bGUqLCBD
U1NGb250RmFjZVNvdXJjZSopOworICAgIHZvaWQgbG9hZGluZ0RvbmUoKTsKKworcHJpdmF0ZToK
KyAgICBGb250TG9hZGVyKERvY3VtZW50Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRU
YXJnZXQoKSB7IHJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSB7
IGRlcmVmKCk7IH0KKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRh
KCk7CisgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgp
OworCisgICAgdm9pZCBzY2hlZHVsZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKKyAgICB2b2lk
IGZpcmVQZW5kaW5nRXZlbnRzKCk7CisgICAgYm9vbCByZXNvbHZlRm9udFN0eWxlKGNvbnN0IFN0
cmluZyYsIEZvbnQmKTsKKworICAgIERvY3VtZW50KiBtX2RvY3VtZW50OworICAgIEV2ZW50VGFy
Z2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKKyAgICB1bnNpZ25lZCBtX2xvYWRpbmdDb3VudDsK
KyAgICBWZWN0b3I8UmVmUHRyPEV2ZW50PiA+IG1fcGVuZGluZ0V2ZW50czsKKyAgICBWZWN0b3I8
UmVmUHRyPFZvaWRDYWxsYmFjaz4gPiBtX2NhbGxiYWNrczsKKyAgICBSZWZQdHI8RXZlbnQ+IG1f
bG9hZGluZ0RvbmVFdmVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEZvbnRMb2FkZXJfaAorI2VuZGlmIC8vIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIuaWRsIGIvU291cmNlL1dlYkNv
cmUvY3NzL0ZvbnRMb2FkZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiMWY4YTI0YTY5ZDgyYTNlYzExNTc3
YjUxMTU5NzBmYTM0NGIyODEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Rm9udExvYWRlci5pZGwKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1GT05UX0xP
QURfRVZFTlRTLAorICAgIFY4RW5hYmxlZEF0UnVudGltZT1mb250TG9hZEV2ZW50cywKKyAgICBB
Y3RpdmVET01PYmplY3QsCisgICAgRXZlbnRUYXJnZXQsCisgICAgR2VuZXJhdGVJc1JlYWNoYWJs
ZT1JbXBsRG9jdW1lbnQsCitdIGludGVyZmFjZSBGb250TG9hZGVyIHsKKworICAgIGF0dHJpYnV0
ZSBFdmVudExpc3RlbmVyIG9ubG9hZGluZzsKKyAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBv
bmxvYWRpbmdkb25lOworICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZHN0YXJ0Owor
ICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZDsKKyAgICBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbmVycm9yOworCisgICAgYm9vbGVhbiBjaGVja0ZvbnQoaW4gRE9NU3RyaW5nIGZv
bnQsIGluIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nXSBET01TdHJpbmcgdGV4dCk7Cisg
ICAgdm9pZCBsb2FkRm9udChpbiBEaWN0aW9uYXJ5IHBhcmFtcyk7CisgICAgdm9pZCBub3RpZnlX
aGVuRm9udHNSZWFkeShpbiBbQ2FsbGJhY2tdIFZvaWRDYWxsYmFjayBjYWxsYmFjayk7CisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gbG9hZGluZzsKKworICAgIHZvaWQgYWRkRXZlbnRM
aXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
RXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09w
dGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5l
cihpbiBET01TdHJpbmcgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZl
bnRMaXN0ZW5lciBsaXN0ZW5lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09w
dGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChp
biBFdmVudCBldnQpCisgICAgICAgIHJhaXNlcyhFdmVudEV4Y2VwdGlvbik7Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKaW5kZXggMjZmMWNkYmRkODE4OTMyOWQ4MGI0MTNkNDllYzc5Njk2MjA3
NjQwZi4uNTgxNjAyYTYyODJlYmRmNTE1YWY5NjVkNjNjOTE5ZTBkNDVjZDk2NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC03NCw2ICs3NCw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29k
ZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVkZSAiRmxvd1RocmVhZENvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJGb250TG9hZGVyLmgiCiAjaW5jbHVk
ZSAiRm9ybUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyLmgiCkBAIC00ODcsNiArNDg4LDkgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBm
cmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MKQogI2lmIEVO
QUJMRShURU1QTEFURV9FTEVNRU5UKQogICAgICwgbV90ZW1wbGF0ZURvY3VtZW50SG9zdCgwKQog
I2VuZGlmCisjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisgICAgLCBtX2ZvbnRsb2FkZXIo
MCkKKyNlbmRpZgogewogICAgIG1fcHJpbnRpbmcgPSBmYWxzZTsKICAgICBtX3BhZ2luYXRlZEZv
clNjcmVlbiA9IGZhbHNlOwpAQCAtNjA3OCw0ICs2MDgyLDEzIEBAIERvY3VtZW50KiBEb2N1bWVu
dDo6ZW5zdXJlVGVtcGxhdGVEb2N1bWVudCgpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGT05U
X0xPQURfRVZFTlRTKQorUGFzc1JlZlB0cjxGb250TG9hZGVyPiBEb2N1bWVudDo6Zm9udGxvYWRl
cigpCit7CisgICAgaWYgKCFtX2ZvbnRsb2FkZXIpCisgICAgICAgIG1fZm9udGxvYWRlciA9IEZv
bnRMb2FkZXI6OmNyZWF0ZSh0aGlzKTsKKyAgICByZXR1cm4gbV9mb250bG9hZGVyOworfQorI2Vu
ZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMWVm
MDMzODUwMzdlODMwYjgwNWFkODA0MGJjYzY4YTMwNzlmYTBiZi4uMDY2ZTJkZWNiODNiNjI2MGJi
M2U3ZGQyOWI1MTYzMGEzNjQ3OTM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTE5MCw2ICsx
OTAsMTAgQEAgY2xhc3MgVGV4dEF1dG9zaXplcjsKIGNsYXNzIERPTVNlY3VyaXR5UG9saWN5Owog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKK2NsYXNzIEZvbnRMb2FkZXI7
CisjZW5kaWYKKwogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAogZW51bSBQYWdlc2hvd0V2
ZW50UGVyc2lzdGVuY2UgewpAQCAtMTE5Miw2ICsxMTk2LDEwIEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbigpIGNvbnN0IE9WRVJSSURFOwog
CisjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisgICAgUGFzc1JlZlB0cjxGb250TG9hZGVy
PiBmb250bG9hZGVyKCk7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIERvY3VtZW50KEZyYW1l
KiwgY29uc3QgS1VSTCYsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpOwogCkBAIC0xNTU4LDYg
KzE1NjYsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RG9jdW1lbnQ+IG1fdGVtcGxhdGVEb2N1
bWVudDsKICAgICBEb2N1bWVudCogbV90ZW1wbGF0ZURvY3VtZW50SG9zdDsgLy8gTWFudWFsbHkg
bWFuYWdlZCB3ZWFrcmVmIChiYWNrcG9pbnRlciBmcm9tIG1fdGVtcGxhdGVEb2N1bWVudCkuCiAj
ZW5kaWYKKworI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQorICAgIFJlZlB0cjxGb250TG9h
ZGVyPiBtX2ZvbnRsb2FkZXI7CisjZW5kaWYKIH07CiAKIGlubGluZSB2b2lkIERvY3VtZW50Ojpu
b3RpZnlSZW1vdmVQZW5kaW5nU2hlZXRJZk5lZWRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbApp
bmRleCAwZTA2ZmM3ZjJkODE5MTZmODUyNTUwMDhiMjc5YmNjNTVjZDNjMDhlLi5jYWE1OGNmMzAw
YmMzOWM4ZDUwMTc2MTgxNGJjNGU3MmNjYjA1Y2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwK
QEAgLTI2Miw2ICsyNjIsMTAgQEAKIAogICAgIFtDb25kaXRpb25hbD1DU1NfUkVHSU9OUywgVjhF
bmFibGVkQXRSdW50aW1lPWNzc1JlZ2lvbnNdIERPTU5hbWVkRmxvd0NvbGxlY3Rpb24gd2Via2l0
R2V0TmFtZWRGbG93cygpOwogCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBM
QU5HVUFHRV9KQVZBU0NSSVBUCisgICAgW0NvbmRpdGlvbmFsPUZPTlRfTE9BRF9FVkVOVFMsIFY4
RW5hYmxlZEF0UnVudGltZT1mb250TG9hZEV2ZW50c10gcmVhZG9ubHkgYXR0cmlidXRlIEZvbnRM
b2FkZXIgZm9udGxvYWRlcjsKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNU
SVZFX0MpIHx8ICFMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAgIC8vIEV2ZW50IGhhbmRsZXIgRE9N
IGF0dHJpYnV0ZXMKICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b25hYm9ydDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCmluZGV4IDIyYTdiMzJiYWI3OWJjNTI2MDA3
NjQxYTNiOTFjYzQwYzUxYjRjNmQuLjNiNWYyMzIyMjRlMzljYmNhZDEzYTM5Nzk3NDI3YjY5MDlj
ZDJjYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApAQCAtODQsNiArODQsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oa2V5dXApIFwKICAgICBtYWNybyhsZXZlbGNoYW5nZSkg
XAogICAgIG1hY3JvKGxvYWQpIFwKKyAgICBtYWNybyhsb2FkaW5nKSBcCisgICAgbWFjcm8obG9h
ZGluZ2RvbmUpIFwKICAgICBtYWNybyhsb2Fkc3RhcnQpIFwKICAgICBtYWNybyhtZXNzYWdlKSBc
CiAgICAgbWFjcm8obW91c2Vkb3duKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnROYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCmluZGV4IGMw
NGIwMjVjZWM0MDcwNDcyYzMyMmVhZTBmYTY3YThlZjZkZGM2MGYuLmZiNzRlZjY5ZTgxZTQ2NzJm
Mjg0MGRiNzk3ZDcwMThkYzA0NmMyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudE5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCkBAIC01
NiwzICs1Niw0IEBAIE1lZGlhS2V5TWVzc2FnZUV2ZW50IGNvbmRpdGlvbmFsPUVOQ1JZUFRFRF9N
RURJQV9WMgogTWVkaWFLZXlOZWVkZWRFdmVudCBjb25kaXRpb25hbD1FTkNSWVBURURfTUVESUFf
VjIKIFRyYWNrRXZlbnQgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sKIEF1dG9jb21wbGV0ZUVycm9y
RXZlbnQgY29uZGl0aW9uYWw9UkVRVUVTVF9BVVRPQ09NUExFVEUKK0NTU0ZvbnRGYWNlTG9hZEV2
ZW50IGNvbmRpdGlvbmFsPUZPTlRfTE9BRF9FVkVOVFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRU
YXJnZXRGYWN0b3J5LmluCmluZGV4IGNmNWFjZjc1YzNiZTQ5MDMwZDM4NzEyMzkzMDM4NGUxODAw
NGY0YzguLmEwYzAxNDQwY2NmYmY3OGE1ZTkyOWJiYWYzNmEwMzU5ZTk1MzI0MjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgpAQCAtOCw2ICs4LDcgQEAgRE9NV2lu
ZG93CiBFdmVudFNvdXJjZQogRmlsZVJlYWRlciBjb25kaXRpb25hbD1CTE9CCiBGaWxlV3JpdGVy
IGNvbmRpdGlvbmFsPUZJTEVfU1lTVEVNCitGb250TG9hZGVyIGNvbmRpdGlvbmFsPUZPTlRfTE9B
RF9FVkVOVFMKIElEQkRhdGFiYXNlIGNvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UKIElEQk9w
ZW5EQlJlcXVlc3QgY29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQogSURCUmVxdWVzdCBjb25k
aXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXgg
MWY1N2UwYzI3NGM3ZjNiOTAzYTdjNmM2NDE5ODAxZmFlNTU3NjkzYi4uZTAwNzZlMmI0MWFlNTJi
ZDQ2ZDVhZTcyN2NmYjBkOGQ2MTFiZWFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApA
QCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZvY3Vz
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZvbnRDYWNoZS5oIgorI2luY2x1ZGUgIkZvbnRMb2Fk
ZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lQWN0aW9uU2NoZWR1bGVy
LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTI2NDEsNiArMjY0MiwxMCBAQCB2b2lk
IEZyYW1lVmlldzo6cGVyZm9ybVBvc3RMYXlvdXRUYXNrcygpCiAgICAgfQogCiAgICAgbV9mcmFt
ZS0+bG9hZGVyKCktPmRpZExheW91dChtaWxlc3RvbmVzQWNoaWV2ZWQpOworI2lmIEVOQUJMRShG
T05UX0xPQURfRVZFTlRTKQorICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpmb250TG9h
ZEV2ZW50c0VuYWJsZWQoKSkKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Zm9udGxvYWRl
cigpLT5kaWRMYXlvdXQoKTsKKyNlbmRpZgogICAgIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
Y29uc2lkZXIgYWRkaW5nIERpZExheW91dCBhcyBhIExheW91dE1pbGVzdG9uZS4gVGhhdCB3b3Vs
ZCBsZXQgdXMgbWVyZ2UgdGhpcwogICAgIC8vIHdpdGggZGlkTGF5b3V0KExheW91dE1pbGVzdG9u
ZXMpLgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGYxN2VhOTI3M2QzNDZjYzg1ZGJlYmUzMmNkNGNmNGFjZGMxYjNjNzQuLmIxYmZjMGVjMTNlOTA4
ZDllYmU3OWFkZGNiMDQ0ZjFiOWU3MzIyNDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0wMy0wNyAgS3VuaWhp
a28gU2FrYW1vdG8gIDxrc2FrYW1vdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVu
dCBGb250TG9hZGVyIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTgzOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFbmFibGUgRm9udExvYWRFdmVudHMgcnVudGltZSBmbGFnIGZvciBUZXN0
U2hlbGwuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3Ny
Yy9UZXN0SW50ZXJmYWNlcy5jcHA6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0SW50ZXJm
YWNlczo6VGVzdEludGVyZmFjZXMpOgorCiAyMDEzLTAzLTA3ICBOaWxzIEJhcnRoICA8bmJhcnRo
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgTmlscyBCYXJ0aCBhbmQgS29qaSBIYXJhIHRv
IGNvbW1pdHRlcnMucHkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmNwcAppbmRleCAxMjRkNzIy
YjFiNzJiYmZlMDk3MTIwYjc0MTA2NDZiNzNiMjQ5NTI5Li40ZDhhMDBjOTZjZmM5YWNiM2QwYzcz
NmMyMzZmMTZkYTc5ZjYyM2M0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuY3BwCkBAIC02
OSw2ICs2OSw3IEBAIFRlc3RJbnRlcmZhY2VzOjpUZXN0SW50ZXJmYWNlcygpCiAgICAgV2ViUnVu
dGltZUZlYXR1cmVzOjplbmFibGVJbnB1dFR5cGVUaW1lKHRydWUpOwogICAgIFdlYlJ1bnRpbWVG
ZWF0dXJlczo6ZW5hYmxlSW5wdXRUeXBlV2Vlayh0cnVlKTsKICAgICBXZWJSdW50aW1lRmVhdHVy
ZXM6OmVuYWJsZUZpbGVTeXN0ZW0odHJ1ZSk7CisgICAgV2ViUnVudGltZUZlYXR1cmVzOjplbmFi
bGVGb250TG9hZEV2ZW50cyh0cnVlKTsKICAgICBXZWJSdW50aW1lRmVhdHVyZXM6OmVuYWJsZUph
dmFTY3JpcHRJMThOQVBJKHRydWUpOwogICAgIFdlYlJ1bnRpbWVGZWF0dXJlczo6ZW5hYmxlTWVk
aWFTb3VyY2UodHJ1ZSk7CiAgICAgV2ViUnVudGltZUZlYXR1cmVzOjplbmFibGVFbmNyeXB0ZWRN
ZWRpYSh0cnVlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCAxMzE2MjM3MTI1NDdmYjFlMjRkMTdjMGQ0ZTRhNjQ3ZTJkMjE2
YjNlLi4yYTEwNTNiYzUwMDUyYWY2ZTU3NGUyOWY5NWYxMzhiZjY2MThjZjVlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzUgQEAKKzIwMTMtMDMtMDcgIEt1bmloaWtvIFNha2Ftb3RvICA8a3Nha2Ftb3RvQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgRm9udExvYWRlciBpbnRlcmZhY2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4Mzk1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3RzIGZv
ciBkb2N1bWVudC5mb250bG9hZGVyLiBTaW5jZSB0aGUgZmVhdHVyZSBpcyBjdXJyZW50bHkgZW5h
YmxlZAorICAgICAgICBvbmx5IGZvciBjaHJvbWl1bSwgdGhlIHRlc3RzIGFyZSBleHBlY3RlZCB0
byBmYWlsIG9uIHRoZSBvdGhlciBwb3J0cy4KKworICAgICAgICAqIGZhc3QvY3NzL2ZvbnRsb2Fk
ZXItZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nz
cy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
Y3NzL2ZvbnRsb2FkZXItZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jc3MvZm9udGxvYWRlci1ldmVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mv
Zm9udGxvYWRlci1sb2FkaW5nZG9uZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvY3NzL2ZvbnRsb2FkZXItbG9hZGluZ2RvbmUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMt
ZG93bmxvYWQtZXJyb3IuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvZm9udGxvYWRl
ci1tdWx0aXBsZS1mYWNlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3Nz
L2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9j
c3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYW1pbGllcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFtaWxpZXMuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJmb250L2ZvbnRsb2FkZXItbG9hZGluZy1hdHRyaWJ1
dGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmZvbnQvZm9u
dGxvYWRlci1sb2FkaW5nLWF0dHJpYnV0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRl
ci1ldmVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2Nzcy9mb250bG9hZGVyLWxvYWRpbmdkb25lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1m
YWNlcy1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9h
ZGVyLW11bHRpcGxlLWZhbWlsaWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy93ZWJmb250L2ZvbnRsb2FkZXItbG9hZGluZy1hdHRy
aWJ1dGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMy0wMy0wNyAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgTWFjIFdlYktpdDIgdGVzdCBleHBlY3Rh
dGlvbnMgcGVyIGJ1Z3MgMTExODE0IGFuZCAxMTE4MTUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjYxNDU4MDExYzk0NjgyZjVhMTNhZWY0NjM1NjI0NWY1MTliNjg5MjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWRvd25sb2FkLWVy
cm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0IGRvd25sb2FkIGVycm9yIGNh
c2VzLiAibG9hZCIgb3IgImVycm9yIiBldmVudHMgc2hvdWxkIGJlIGZpcmVkIGV4YWN0bHkgb25j
ZSBmb3IgZWFjaCBAZm9udC1mYWNlIHJ1bGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitGQUlMIGRvY3VtZW50LmZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorZm9udDEKK2ZvbnQyCitmb250
MworZm9udDQKK2ZvbnQ1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9h
ZGVyLWRvd25sb2FkLWVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVy
LWRvd25sb2FkLWVycm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDdiYWY4MWIwZjlkMTNmNDUzYjY5MDFh
MWYzYmQ4M2E1OWEzMmViYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3IuaHRtbApAQCAtMCwwICsxLDgwIEBACis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c3R5bGU+CisvKiBUZXN0IDE6IEludmFsaWQgZm9udCBkYXRhICovCitAZm9udC1m
YWNlIHsKKyAgICBmb250LWZhbWlseTogbXlmb250MTsKKyAgICBzcmM6IHVybCgncmVzb3VyY2Vz
L2ludmFsaWRmb250LnBuZycpIGZvcm1hdChvcGVudHlwZSk7Cit9CisKKy8qIFRlc3QgMjogRG93
bmxvYWQgZXJyb3IgKi8KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiBteWZvbnQyOwor
ICAgIHNyYzogdXJsKCdyZXNvdXJjZXMvRG93bkxvYWRFcnJvckFoZW0ub3RmJyk7Cit9CisKKy8q
IFRlc3QgMzogRW1wdHkgZGF0YSB1cmwgKi8KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5
OiBteWZvbnQzOworICAgIHNyYzogdXJsKGRhdGE6YXBwbGljYXRpb24veC10cnVldHlwZS1mb250
LCkgZm9ybWF0KHRydWV0eXBlKTsKK30KKworLyogVGVzdCA0OiBEb3dubG9hZCBlcnJvciBmb2xs
b3dlZCBieSBleGlzdGluZyBsb2NhbCBmb250ICovCitAZm9udC1mYWNlIHsKKyAgICBmb250LWZh
bWlseTogbXlmb250NDsKKyAgICBzcmM6IHVybCgncmVzb3VyY2VzL0Rvd25Mb2FkRXJyb3JBaGVt
Lm90ZicpLCBsb2NhbCgnQ291cmllciBOZXcnKTsKK30KKworLyogVGVzdCA1OiBNdWx0aXBsZSBl
cnJvcnMgKi8KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiBteWZvbnQ1OworICAgIHNy
YzogdXJsKCdyZXNvdXJjZXMvRG93bkxvYWRFcnJvckFoZW0ub3RmJyksIHVybChkYXRhOmFwcGxp
Y2F0aW9uL3gtdHJ1ZXR5cGUtZm9udCwpIGZvcm1hdCh0cnVldHlwZSk7Cit9Cis8L3N0eWxlPgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGRvd25sb2FkIGVycm9yIGNhc2VzLiAibG9hZCIg
b3IgImVycm9yIiBldmVudHMgc2hvdWxkIGJlIGZpcmVkIGV4YWN0bHkgb25jZSBmb3IgZWFjaCBA
Zm9udC1mYWNlIHJ1bGUuJyk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFy
IGV2ZW50cyA9IHt9OworCitmdW5jdGlvbiBsb2dFdmVudChlKSB7CisgICAgdmFyIGZhbWlseSA9
IGUuZm9udGZhY2Uuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC1mYW1pbHknKTsKKyAgICBp
ZiAoIWV2ZW50c1tmYW1pbHldKQorICAgICAgICBldmVudHNbZmFtaWx5XSA9IFtdOworICAgIGV2
ZW50c1tmYW1pbHldLnB1c2goZS50eXBlKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7Cisg
ICAgZG9jdW1lbnQuZm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2Fkc3RhcnQnLCBsb2dF
dmVudCk7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywg
bG9nRXZlbnQpOworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignZXJy
b3InLCBsb2dFdmVudCk7CisKKyAgICBkb2N1bWVudC5mb250bG9hZGVyLm5vdGlmeVdoZW5Gb250
c1JlYWR5KGZ1bmN0aW9uKCkgeworICAgICAgICBzaG91bGRCZSgiZXZlbnRzWydteWZvbnQxJ10i
LCAiWydsb2Fkc3RhcnQnLCAnZXJyb3InXSIpOworICAgICAgICBzaG91bGRCZSgiZXZlbnRzWydt
eWZvbnQyJ10iLCAiWydsb2Fkc3RhcnQnLCAnZXJyb3InXSIpOworICAgICAgICBzaG91bGRCZSgi
ZXZlbnRzWydteWZvbnQzJ10iLCAiWydsb2Fkc3RhcnQnLCAnZXJyb3InXSIpOworICAgICAgICBz
aG91bGRCZSgiZXZlbnRzWydteWZvbnQ0J10iLCAiWydsb2Fkc3RhcnQnLCAnbG9hZCddIik7Cisg
ICAgICAgIHNob3VsZEJlKCJldmVudHNbJ215Zm9udDUnXSIsICJbJ2xvYWRzdGFydCcsICdlcnJv
ciddIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworfQorCitpZiAoZG9jdW1l
bnQuZm9udGxvYWRlcikKKyAgICBydW5UZXN0cygpOworZWxzZSB7CisgICAgdGVzdEZhaWxlZCgn
ZG9jdW1lbnQuZm9udGxvYWRlciBkb2VzIG5vdCBleGlzdCcpOworICAgIGZpbmlzaEpTVGVzdCgp
OworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBzdHlsZT0iZm9udC1mYW1p
bHk6IG15Zm9udDEiPmZvbnQxPC9kaXY+CisgIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBteWZv
bnQyIj5mb250MjwvZGl2PgorICA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogbXlmb250MyI+Zm9u
dDM8L2Rpdj4KKyAgPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IG15Zm9udDQiPmZvbnQ0PC9kaXY+
CisgIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBteWZvbnQ1Ij5mb250NTwvZGl2PgorICA8c2Ny
aXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVy
LWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWV2
ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDA3ZWViY2I1NWE0MTViNzg5NTg4ZmEwMmNk
MGY5ZGI0M2EyOTZlYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Zv
bnRsb2FkZXItZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IHRoYXQg
dGhlIGV2ZW50IGhhbmRsZXJzIG9mIEZvbnRMb2FkZXIgYXJlIGNhbGxlZCBpbiB0aGUgY29ycmVj
dCBvcmRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ZBSUwgZG9jdW1lbnQu
Zm9udGxvYWRlciBkb2VzIG5vdCBleGlzdAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCitIZWxsbywgd29ybGQhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9mb250bG9hZGVyLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Zm9udGxvYWRlci1ldmVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYzI5NTAwZDdlMmE5NjA2MTVkNzY2
MTA3MTI1MGNiMjVlOTIxZWY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvZm9udGxvYWRlci1ldmVudHMuaHRtbApAQCAtMCwwICsxLDQ5IEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgZm9udC1mYW1pbHk6ICdhaGVtJzsKKyAgc3JjOiB1
cmwoLi4vLi4vcmVzb3VyY2VzL0FoZW0udHRmKTsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oJ1Rlc3QgdGhhdCB0aGUgZXZlbnQgaGFuZGxlcnMgb2YgRm9udExvYWRlciBhcmUg
Y2FsbGVkIGluIHRoZSBjb3JyZWN0IG9yZGVyLicpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7CisKK3ZhciBldmVudDsKK3ZhciBudW1iZXJPZkV2ZW50cyA9IDA7CisKK2Z1bmN0aW9u
IGhhbmRsZUV2ZW50KGUpIHsKKyAgICBldmVudCA9IGU7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdldmVudC50eXBlJywgWydsb2FkaW5nJywgJ2xvYWRzdGFydCcsICdsb2FkJywgJ2xvYWRp
bmdkb25lJ11bbnVtYmVyT2ZFdmVudHNdKTsKKyAgICBudW1iZXJPZkV2ZW50cysrOworfQorCitm
dW5jdGlvbiBydW5UZXN0cygpIHsKKyAgICBkb2N1bWVudC5mb250bG9hZGVyLm9ubG9hZGluZyA9
IGhhbmRsZUV2ZW50OworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIub25sb2FkaW5nZG9uZSA9IGhh
bmRsZUV2ZW50OworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIub25sb2Fkc3RhcnQgPSBoYW5kbGVF
dmVudDsKKyAgICBkb2N1bWVudC5mb250bG9hZGVyLm9ubG9hZCA9IGhhbmRsZUV2ZW50OworICAg
IGRvY3VtZW50LmZvbnRsb2FkZXIub25lcnJvciA9IGhhbmRsZUV2ZW50OworCisgICAgZG9jdW1l
bnQuZm9udGxvYWRlci5ub3RpZnlXaGVuRm9udHNSZWFkeShmdW5jdGlvbigpIHsKKyAgICAgICAg
c2hvdWxkQmUoJ251bWJlck9mRXZlbnRzJywgJzQnKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgfSk7Cit9CisKK2lmIChkb2N1bWVudC5mb250bG9hZGVyKQorICAgIHJ1blRlc3RzKCk7
CitlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKCdkb2N1bWVudC5mb250bG9hZGVyIGRvZXMgbm90IGV4
aXN0Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorICA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogYWhlbSI+SGVsbG8sIHdvcmxkITwvZGl2Pgor
ICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250
bG9hZGVyLWxvYWRpbmdkb25lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Zv
bnRsb2FkZXItbG9hZGluZ2RvbmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiYTk2OGUyMDIx
Njc2ZjY2NmFmY2VkYzc1MjE5YWJkNmZjOGNiYmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWxvYWRpbmdkb25lLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEwIEBACitUZXN0IHRoYXQgb25sb2FkaW5nZG9uZSBpcyBmaXJlZCBhZnRlciBzdHlsZSBy
ZWNhbGN1bGF0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRkFJTCBkb2N1
bWVudC5mb250bG9hZGVyIGRvZXMgbm90IGV4aXN0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK2FhYQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvZm9udGxvYWRlci1sb2FkaW5nZG9uZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Zm9udGxvYWRlci1sb2FkaW5nZG9uZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzYjA2NTcxOTEzZWNlYTQw
MjI3OGY4ZWFmNzc1YzAxNzJmYWY1NWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9mb250bG9hZGVyLWxvYWRpbmdkb25lLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHN0eWxlPgorYm9keSB7CisgIGZvbnQtZmFtaWx5OiBzZXJpZjsKK30KK0Bm
b250LWZhY2UgeworICBmb250LWZhbWlseTogJ2FoZW0nOworICBzcmM6IHVybCguLi8uLi9yZXNv
dXJjZXMvQWhlbS50dGYpOworfQorI3Rlc3QgeworICBwb3NpdGlvbjogYWJzb2x1dGUKK30KKyN0
ZXN0IHNwYW4geworICBmb250LWZhbWlseTogYWhlbTsKK30KKzwvc3R5bGU+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCBvbmxvYWRpbmdkb25lIGlzIGZpcmVkIGFmdGVyIHN0eWxl
IHJlY2FsY3VsYXRpb24uJyk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVu
Y3Rpb24gcnVuVGVzdHMoKSB7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5vbmxvYWRpbmdkb25l
ID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGRlYnVnKCdsb2FkaW5nZG9uZScpOworICAgICAgICB0
ZXN0RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKKyAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RGl2LCAwKS53aWR0
aCcsICc0OHB4Jyk7CisgICAgfTsKKworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIubm90aWZ5V2hl
bkZvbnRzUmVhZHkoZnVuY3Rpb24oKSB7CisgICAgICAgIGRlYnVnKCdub3RpZnlXaGVuRm9udHNS
ZWFkeSgpIGNhbGxiYWNrJyk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnd2luZG93
LmdldENvbXB1dGVkU3R5bGUodGVzdERpdiwgMCkud2lkdGgnLCAnNDhweCcpOworICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKK30KKworaWYgKGRvY3VtZW50LmZvbnRsb2FkZXIpCisg
ICAgcnVuVGVzdHMoKTsKK2Vsc2UgeworICAgIHRlc3RGYWlsZWQoJ2RvY3VtZW50LmZvbnRsb2Fk
ZXIgZG9lcyBub3QgZXhpc3QnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9dGVzdD4KKyAgICA8YSBocmVmPSIjIj4KKyAgICAg
IDxzcGFuPmFhYTwvc3Bhbj4KKyAgICA8L2E+CisgIDwvZGl2PgorICA8c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZh
Y2VzLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Zv
bnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmEyMTczOWM2NWExMDM5MWFlMTVmNDNmYjQyNDA1MjcwMmE4ZWRjNTYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2Vz
LWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGxvYWQg
ZXZlbnRzIGZvciBhIGZvbnQgZmFtaWx5IGNvbnNpc3RzIG9mIG11bHRpcGxlIEBmb250LWZhY2Vz
LCBpbmNsdWRpbmcgZG93bmxvYWQgZXJyb3IuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitGQUlMIGRvY3VtZW50LmZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9y
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRv
d25sb2FkLWVycm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzFlNmI4ZWY2NTE4YTgzMGYzNDliYzAyZTlj
OTE2Yjk4ZDUyODQ5NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Zv
bnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93bmxvYWQtZXJyb3IuaHRtbApAQCAtMCwwICsxLDcw
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWls
eTogVGVzdEZvbnQ7CisgICAgc3JjOiB1cmwoLi4vLi4vcmVzb3VyY2VzL0FoZW0udHRmKTsKK30K
KworQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6IFRlc3RGb250OworICAgIHNyYzogdXJs
KCdyZXNvdXJjZXMvRG93bkxvYWRFcnJvckFoZW0ub3RmJyk7CisgICAgdW5pY29kZS1yYW5nZTog
dSs2MS03YTsgLyogJ2EnLSd6JyAqLworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bignVGVzdCBsb2FkIGV2ZW50cyBmb3IgYSBmb250IGZhbWlseSBjb25zaXN0cyBvZiBtdWx0aXBs
ZSBAZm9udC1mYWNlcywgaW5jbHVkaW5nIGRvd25sb2FkIGVycm9yLicpOworCit3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBldmVudHMgPSB7fTsKKworZnVuY3Rpb24gY291bnRF
dmVudChlKSB7CisgICAgaWYgKCFldmVudHNbZS50eXBlXSkKKyAgICAgICAgZXZlbnRzW2UudHlw
ZV0gPSAwOworICAgIGV2ZW50c1tlLnR5cGVdICs9IDE7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3Rz
KCkgeworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGluZycs
IGNvdW50RXZlbnQpOworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcign
bG9hZHN0YXJ0JywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5hZGRFdmVu
dExpc3RlbmVyKCdsb2FkJywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5h
ZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGNvdW50RXZlbnQpOworICAgIGRvY3VtZW50LmZvbnRs
b2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGluZ2RvbmUnLCBjb3VudEV2ZW50KTsKKworICAg
IGRvY3VtZW50LmZvbnRsb2FkZXIubG9hZEZvbnQoeyBmb250OiAnMTBweCBUZXN0Rm9udCcsIG9u
c3VjY2Vzczogb25zdWNjZXNzLCBvbmVycm9yOiBvbmVycm9yIH0pOworICAgIGRvY3VtZW50LmZv
bnRsb2FkZXIubm90aWZ5V2hlbkZvbnRzUmVhZHkodmVyaWZ5KTsKK30KKworZnVuY3Rpb24gb25z
dWNjZXNzKCkgeworICAgIHRlc3RGYWlsZWQoIkV4cGVjdGVkIGVycm9yLCBidXQgb25zdWNjZXNz
KCkgY2FsbGVkIik7CisgICAgb25lcnJvcigpOworfQorCitmdW5jdGlvbiBvbmVycm9yKCkgewor
ICAgIHNob3VsZEJlKCJldmVudHNbJ2xvYWRpbmcnXSIsICIxIik7CisgICAgc2hvdWxkQmUoImV2
ZW50c1snbG9hZHN0YXJ0J10iLCAiMiIpOworICAgIHNob3VsZEJlKCJldmVudHNbJ2xvYWQnXSIs
ICIxIik7CisgICAgc2hvdWxkQmUoImV2ZW50c1snZXJyb3InXSIsICIxIik7CisgICAgc2hvdWxk
QmUoImV2ZW50c1snbG9hZGluZ2RvbmUnXSIsICJ1bmRlZmluZWQiKTsKKyAgICBzaG91bGRCZSgi
ZG9jdW1lbnQuZm9udGxvYWRlci5jaGVja0ZvbnQoJzEwcHggVGVzdEZvbnQnKSIsICJmYWxzZSIp
OworfQorCitmdW5jdGlvbiB2ZXJpZnkoKSB7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZGlu
Z2RvbmUnXSIsICIxIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2lmIChkb2N1bWVudC5m
b250bG9hZGVyKQorICAgIHJ1blRlc3RzKCk7CitlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKCdkb2N1
bWVudC5mb250bG9hZGVyIGRvZXMgbm90IGV4aXN0Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZDdhNjIyOGJmNjgxMjI5ZGFkOWQ1MTMyMDJiYzY4
NzkxODk0ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9h
ZGVyLW11bHRpcGxlLWZhY2VzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGxv
YWQgZXZlbnRzIGZvciBhIGZvbnQgZmFtaWx5IGNvbnNpc3RzIG9mIG11bHRpcGxlIEBmb250LWZh
Y2VzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRkFJTCBkb2N1bWVudC5mb250
bG9hZGVyIGRvZXMgbm90IGV4aXN0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxv
YWRlci1tdWx0aXBsZS1mYWNlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRl
ci1tdWx0aXBsZS1mYWNlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxZmQwYmExNzU3ZmRmODU4NTk3MjI0
N2U3MjJkNzFiMDEwM2VjYjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLmh0bWwKQEAgLTAsMCArMSw3MCBAQAorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6IFRlc3RGb250
OworICAgIHNyYzogbG9jYWwoJ0NvdXJpZXIgTmV3Jyk7Cit9CisKK0Bmb250LWZhY2UgeworICAg
IGZvbnQtZmFtaWx5OiBUZXN0Rm9udDsKKyAgICBzcmM6IHVybCguLi8uLi9yZXNvdXJjZXMvQWhl
bS50dGYpOworICAgIHVuaWNvZGUtcmFuZ2U6IHUrNjEtN2E7IC8qICdhJy0neicgKi8KK30KKzwv
c3R5bGU+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgbG9hZCBldmVudHMgZm9yIGEgZm9u
dCBmYW1pbHkgY29uc2lzdHMgb2YgbXVsdGlwbGUgQGZvbnQtZmFjZXMuJyk7CisKK3dpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV2ZW50cyA9IHt9OworCitmdW5jdGlvbiBjb3Vu
dEV2ZW50KGUpIHsKKyAgICBpZiAoIWV2ZW50c1tlLnR5cGVdKQorICAgICAgICBldmVudHNbZS50
eXBlXSA9IDA7CisgICAgZXZlbnRzW2UudHlwZV0gKz0gMTsKK30KKworZnVuY3Rpb24gcnVuVGVz
dHMoKSB7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkaW5n
JywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVy
KCdsb2Fkc3RhcnQnLCBjb3VudEV2ZW50KTsKKyAgICBkb2N1bWVudC5mb250bG9hZGVyLmFkZEV2
ZW50TGlzdGVuZXIoJ2xvYWQnLCBjb3VudEV2ZW50KTsKKyAgICBkb2N1bWVudC5mb250bG9hZGVy
LmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQuZm9u
dGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkaW5nZG9uZScsIGNvdW50RXZlbnQpOworCisg
ICAgZG9jdW1lbnQuZm9udGxvYWRlci5sb2FkRm9udCh7IGZvbnQ6ICcxMHB4IFRlc3RGb250Jywg
b25zdWNjZXNzOiBvbnN1Y2Nlc3MsIG9uZXJyb3I6IG9uZXJyb3IgfSk7CisgICAgZG9jdW1lbnQu
Zm9udGxvYWRlci5ub3RpZnlXaGVuRm9udHNSZWFkeSh2ZXJpZnkpOworfQorCitmdW5jdGlvbiBv
bnN1Y2Nlc3MoKSB7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZGluZyddIiwgIjEiKTsKKyAg
ICBzaG91bGRCZSgiZXZlbnRzWydsb2Fkc3RhcnQnXSIsICIyIik7CisgICAgc2hvdWxkQmUoImV2
ZW50c1snbG9hZCddIiwgIjIiKTsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydlcnJvciddIiwgInVu
ZGVmaW5lZCIpOworICAgIHNob3VsZEJlKCJldmVudHNbJ2xvYWRpbmdkb25lJ10iLCAidW5kZWZp
bmVkIik7CisgICAgc2hvdWxkQmUoImRvY3VtZW50LmZvbnRsb2FkZXIuY2hlY2tGb250KCcxMHB4
IFRlc3RGb250JykiLCAidHJ1ZSIpOworfQorCitmdW5jdGlvbiBvbmVycm9yKCkgeworICAgIHRl
c3RGYWlsZWQoIkV4cGVjdGVkIHN1Y2Nlc3MsIGJ1dCBvbmVycm9yKCkgY2FsbGVkIik7CisgICAg
b25zdWNjZXNzKCk7Cit9CisKK2Z1bmN0aW9uIHZlcmlmeSgpIHsKKyAgICBzaG91bGRCZSgiZXZl
bnRzWydsb2FkaW5nZG9uZSddIiwgIjEiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworaWYg
KGRvY3VtZW50LmZvbnRsb2FkZXIpCisgICAgcnVuVGVzdHMoKTsKK2Vsc2UgeworICAgIHRlc3RG
YWlsZWQoJ2RvY3VtZW50LmZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QnKTsKKyAgICBmaW5pc2hK
U1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUt
ZmFtaWxpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1t
dWx0aXBsZS1mYW1pbGllcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTIwMGIwNDJkZjYwMmVh
ZGMwZGMzZWFlMmU2MjY3MmRkODUzNWJjNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFtaWxpZXMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTAgQEAKK1Rlc3QgbG9hZCBldmVudHMgZm9yIGZvbnRsb2FkZXIubG9hZEZvbnQoKSB3
aXRoIG11bHRpcGxlIGZvbnQgZmFtaWxpZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitGQUlMIGRvY3VtZW50LmZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhbWlsaWVzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhbWlsaWVzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGU1MWFiZGZkZTlmZGFmM2ExZGYyMGU2N2EwNTJmZTA2ZjA0MmE3YQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFtaWxp
ZXMuaHRtbApAQCAtMCwwICsxLDY5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitAZm9udC1m
YWNlIHsKKyAgICBmb250LWZhbWlseTogVGVzdEZvbnQxOworICAgIHNyYzogbG9jYWwoJ0NvdXJp
ZXIgTmV3Jyk7Cit9CisKK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiBUZXN0Rm9udDI7
CisgICAgc3JjOiB1cmwoLi4vLi4vcmVzb3VyY2VzL0FoZW0udHRmKTsKKyAgICB1bmljb2RlLXJh
bmdlOiB1KzYxLTdhOyAvKiAnYSctJ3onICovCit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCdUZXN0IGxvYWQgZXZlbnRzIGZvciBmb250bG9hZGVyLmxvYWRGb250KCkgd2l0aCBt
dWx0aXBsZSBmb250IGZhbWlsaWVzLicpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
CisKK3ZhciBldmVudHMgPSB7fTsKKworZnVuY3Rpb24gY291bnRFdmVudChlKSB7CisgICAgaWYg
KCFldmVudHNbZS50eXBlXSkKKyAgICAgICAgZXZlbnRzW2UudHlwZV0gPSAwOworICAgIGV2ZW50
c1tlLnR5cGVdICs9IDE7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICAgIGRvY3VtZW50
LmZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGluZycsIGNvdW50RXZlbnQpOworICAg
IGRvY3VtZW50LmZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZHN0YXJ0JywgY291bnRF
dmVudCk7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywg
Y291bnRFdmVudCk7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdl
cnJvcicsIGNvdW50RXZlbnQpOworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0
ZW5lcignbG9hZGluZ2RvbmUnLCBjb3VudEV2ZW50KTsKKworICAgIGRvY3VtZW50LmZvbnRsb2Fk
ZXIubG9hZEZvbnQoeyBmb250OiAnMTBweCBUZXN0Rm9udDEsIFRlc3RGb250MicsIG9uc3VjY2Vz
czogb25zdWNjZXNzLCBvbmVycm9yOiBvbmVycm9yIH0pOworICAgIGRvY3VtZW50LmZvbnRsb2Fk
ZXIubm90aWZ5V2hlbkZvbnRzUmVhZHkodmVyaWZ5KTsKK30KKworZnVuY3Rpb24gb25zdWNjZXNz
KCkgeworICAgIHNob3VsZEJlKCJldmVudHNbJ2xvYWRpbmcnXSIsICIxIik7CisgICAgc2hvdWxk
QmUoImV2ZW50c1snbG9hZHN0YXJ0J10iLCAiMiIpOworICAgIHNob3VsZEJlKCJldmVudHNbJ2xv
YWQnXSIsICIyIik7CisgICAgc2hvdWxkQmUoImV2ZW50c1snZXJyb3InXSIsICJ1bmRlZmluZWQi
KTsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydsb2FkaW5nZG9uZSddIiwgInVuZGVmaW5lZCIpOwor
ICAgIHNob3VsZEJlKCJkb2N1bWVudC5mb250bG9hZGVyLmNoZWNrRm9udCgnMTBweCBUZXN0Rm9u
dDEsIFRlc3RGb250MicpIiwgInRydWUiKTsKK30KKworZnVuY3Rpb24gb25lcnJvcigpIHsKKyAg
ICB0ZXN0RmFpbGVkKCJFeHBlY3RlZCBzdWNjZXNzLCBidXQgb25lcnJvcigpIGNhbGxlZCIpOwor
fQorCitmdW5jdGlvbiB2ZXJpZnkoKSB7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZGluZ2Rv
bmUnXSIsICIxIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2lmIChkb2N1bWVudC5mb250
bG9hZGVyKQorICAgIHJ1blRlc3RzKCk7CitlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKCdkb2N1bWVu
dC5mb250bG9hZGVyIGRvZXMgbm90IGV4aXN0Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmZvbnQvZm9udGxvYWRlci1sb2FkaW5nLWF0dHJp
YnV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmZvbnQvZm9udGxv
YWRlci1sb2FkaW5nLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU3MzU4OGNi
NzM5NGM2ZjcyMGI4OTQ5NzJkNjlkOGZkMmM1ZTFiOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGZvciBGb250TG9hZGVyLmxvYWRpbmcg
YXR0cmlidXRlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitGQUlMIGRvY3VtZW50
LmZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmZvbnQvZm9udGxvYWRlci1sb2FkaW5nLWF0dHJpYnV0ZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJmb250L2ZvbnRsb2FkZXItbG9hZGluZy1hdHRyaWJ1dGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41N2NhNmU4MGFiZDY0ZTA2N2FiYTJkNmI0NTI2NDE1OTAzMDYyNjI3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJmb250L2ZvbnRsb2FkZXItbG9h
ZGluZy1hdHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDM5IEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzdHlsZT4KKyAgQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6ICdUZXN0Rm9udCc7
CisgICAgc3JjOiB1cmwoc2xvdy1haGVtLWxvYWRpbmcuY2dpKTsKKyAgfQorPC9zdHlsZT4KKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBmb3IgRm9udExvYWRlci5sb2FkaW5nIGF0dHJpYnV0
ZScpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Z1bmN0aW9uIHJ1blRlc3Rz
KCkgeworICAgIHNob3VsZEJlKCJkb2N1bWVudC5mb250bG9hZGVyLmNoZWNrRm9udCgnMTBweCBU
ZXN0Rm9udCcpIiwgImZhbHNlIik7CisgICAgc2hvdWxkQmUoImRvY3VtZW50LmZvbnRsb2FkZXIu
bG9hZGluZyIsICJmYWxzZSIpOworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIubG9hZEZvbnQoeyBm
b250OiAnMTBweCBUZXN0Rm9udCcsIG9uc3VjY2Vzczogb25zdWNjZXNzIH0pOworICAgIHNob3Vs
ZEJlKCJkb2N1bWVudC5mb250bG9hZGVyLmxvYWRpbmciLCAidHJ1ZSIpOworfQorCitmdW5jdGlv
biBvbnN1Y2Nlc3MoKSB7CisgICAgc2hvdWxkQmUoImRvY3VtZW50LmZvbnRsb2FkZXIuY2hlY2tG
b250KCcxMHB4IFRlc3RGb250JykiLCAidHJ1ZSIpOworICAgIHNob3VsZEJlKCJkb2N1bWVudC5m
b250bG9hZGVyLmxvYWRpbmciLCAiZmFsc2UiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwor
aWYgKGRvY3VtZW50LmZvbnRsb2FkZXIpCisgICAgcnVuVGVzdHMoKTsKK2Vsc2UgeworICAgIHRl
c3RGYWlsZWQoJ2RvY3VtZW50LmZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QnKTsKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9jc3MvZm9udGxvYWRlci1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9y
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjk3YjU4MjNmMmEzMTY2N2QyOTc1YTA1MmJiZjU1
NDg5ZjYxMDYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9jc3MvZm9udGxvYWRlci1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxOCBAQAorVGVzdCBkb3dubG9hZCBlcnJvciBjYXNlcy4gImxvYWQiIG9yICJlcnJvciIg
ZXZlbnRzIHNob3VsZCBiZSBmaXJlZCBleGFjdGx5IG9uY2UgZm9yIGVhY2ggQGZvbnQtZmFjZSBy
dWxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBldmVudHNbJ215Zm9u
dDEnXSBpcyBbJ2xvYWRzdGFydCcsICdlcnJvciddCitQQVNTIGV2ZW50c1snbXlmb250MiddIGlz
IFsnbG9hZHN0YXJ0JywgJ2Vycm9yJ10KK1BBU1MgZXZlbnRzWydteWZvbnQzJ10gaXMgWydsb2Fk
c3RhcnQnLCAnZXJyb3InXQorUEFTUyBldmVudHNbJ215Zm9udDQnXSBpcyBbJ2xvYWRzdGFydCcs
ICdsb2FkJ10KK1BBU1MgZXZlbnRzWydteWZvbnQ1J10gaXMgWydsb2Fkc3RhcnQnLCAnZXJyb3In
XQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitmb250
MQorZm9udDIKK2ZvbnQzCitmb250NAorZm9udDUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZXZlbnRzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZXZlbnRz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODY1ODcxMDc1OWJiYzg1OTYyMDVhMWIyODVkMDIz
NzhiYzgyOTZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9jc3MvZm9udGxvYWRlci1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQg
QEAKK1Rlc3QgdGhhdCB0aGUgZXZlbnQgaGFuZGxlcnMgb2YgRm9udExvYWRlciBhcmUgY2FsbGVk
IGluIHRoZSBjb3JyZWN0IG9yZGVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBldmVudC50eXBlIGlzICJsb2FkaW5nIgorUEFTUyBldmVudC50eXBlIGlzICJsb2Fkc3Rh
cnQiCitQQVNTIGV2ZW50LnR5cGUgaXMgImxvYWQiCitQQVNTIGV2ZW50LnR5cGUgaXMgImxvYWRp
bmdkb25lIgorUEFTUyBudW1iZXJPZkV2ZW50cyBpcyA0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK0hlbGxvLCB3b3JsZCEKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbG9hZGluZ2Rv
bmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3Mv
Zm9udGxvYWRlci1sb2FkaW5nZG9uZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjY2YzU5ZWM0
OTc5NmFiODcxYTQxMDc0MmRmNzM4MzU0MjVmOWQyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbG9hZGluZ2RvbmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3QgdGhhdCBvbmxvYWRpbmdkb25lIGlz
IGZpcmVkIGFmdGVyIHN0eWxlIHJlY2FsY3VsYXRpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitsb2FkaW5nZG9uZQorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0
RGl2LCAwKS53aWR0aCBpcyAiNDhweCIKK25vdGlmeVdoZW5Gb250c1JlYWR5KCkgY2FsbGJhY2sK
K1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdERpdiwgMCkud2lkdGggaXMgIjQ4cHgi
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK2FhYQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxv
YWRlci1tdWx0aXBsZS1mYWNlcy1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2Vz
LWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDg0NDZhYTIxZmRiNmU5
Njg1YzRkNTRjNzJhNjlkYjFmYmViZjE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1kb3du
bG9hZC1lcnJvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorVGVzdCBsb2FkIGV2ZW50
cyBmb3IgYSBmb250IGZhbWlseSBjb25zaXN0cyBvZiBtdWx0aXBsZSBAZm9udC1mYWNlcywgaW5j
bHVkaW5nIGRvd25sb2FkIGVycm9yLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBldmVudHNbJ2xvYWRpbmcnXSBpcyAxCitQQVNTIGV2ZW50c1snbG9hZHN0YXJ0J10gaXMg
MgorUEFTUyBldmVudHNbJ2xvYWQnXSBpcyAxCitQQVNTIGV2ZW50c1snZXJyb3InXSBpcyAxCitQ
QVNTIGV2ZW50c1snbG9hZGluZ2RvbmUnXSBpcyB1bmRlZmluZWQKK1BBU1MgZG9jdW1lbnQuZm9u
dGxvYWRlci5jaGVja0ZvbnQoJzEwcHggVGVzdEZvbnQnKSBpcyBmYWxzZQorUEFTUyBldmVudHNb
J2xvYWRpbmdkb25lJ10gaXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNl
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGYzMDE1NzRhYTIxNTM5M2UxNWZhNzMyOWE0NzYw
NGVhODliNWNmNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTYgQEAKK1Rlc3QgbG9hZCBldmVudHMgZm9yIGEgZm9udCBmYW1pbHkgY29uc2lzdHMg
b2YgbXVsdGlwbGUgQGZvbnQtZmFjZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIGV2ZW50c1snbG9hZGluZyddIGlzIDEKK1BBU1MgZXZlbnRzWydsb2Fkc3RhcnQnXSBp
cyAyCitQQVNTIGV2ZW50c1snbG9hZCddIGlzIDIKK1BBU1MgZXZlbnRzWydlcnJvciddIGlzIHVu
ZGVmaW5lZAorUEFTUyBldmVudHNbJ2xvYWRpbmdkb25lJ10gaXMgdW5kZWZpbmVkCitQQVNTIGRv
Y3VtZW50LmZvbnRsb2FkZXIuY2hlY2tGb250KCcxMHB4IFRlc3RGb250JykgaXMgdHJ1ZQorUEFT
UyBldmVudHNbJ2xvYWRpbmdkb25lJ10gaXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFtaWxpZXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1t
dWx0aXBsZS1mYW1pbGllcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRjMTM2ZGJhOTkzYjlk
Y2ZmOGUwOTYzNmQyOTE1ZTYxMWI0Yjc2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFtaWxpZXMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1Rlc3QgbG9hZCBldmVudHMgZm9yIGZvbnRs
b2FkZXIubG9hZEZvbnQoKSB3aXRoIG11bHRpcGxlIGZvbnQgZmFtaWxpZXMuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGV2ZW50c1snbG9hZGluZyddIGlzIDEKK1BBU1Mg
ZXZlbnRzWydsb2Fkc3RhcnQnXSBpcyAyCitQQVNTIGV2ZW50c1snbG9hZCddIGlzIDIKK1BBU1Mg
ZXZlbnRzWydlcnJvciddIGlzIHVuZGVmaW5lZAorUEFTUyBldmVudHNbJ2xvYWRpbmdkb25lJ10g
aXMgdW5kZWZpbmVkCitQQVNTIGRvY3VtZW50LmZvbnRsb2FkZXIuY2hlY2tGb250KCcxMHB4IFRl
c3RGb250MSwgVGVzdEZvbnQyJykgaXMgdHJ1ZQorUEFTUyBldmVudHNbJ2xvYWRpbmdkb25lJ10g
aXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvd2Vi
Zm9udC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxvYWRp
bmctYXR0cmlidXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTQ4OTgwZWFlMGYyNzIzZjBk
NWFiMzk0NTgxY2ZiYTAwZDdiYzdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy93ZWJmb250L2ZvbnRsb2FkZXItbG9hZGluZy1hdHRy
aWJ1dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3QgZm9yIEZvbnRMb2FkZXIu
bG9hZGluZyBhdHRyaWJ1dGUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
ZG9jdW1lbnQuZm9udGxvYWRlci5jaGVja0ZvbnQoJzEwcHggVGVzdEZvbnQnKSBpcyBmYWxzZQor
UEFTUyBkb2N1bWVudC5mb250bG9hZGVyLmxvYWRpbmcgaXMgZmFsc2UKK1BBU1MgZG9jdW1lbnQu
Zm9udGxvYWRlci5sb2FkaW5nIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQuZm9udGxvYWRlci5jaGVj
a0ZvbnQoJzEwcHggVGVzdEZvbnQnKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LmZvbnRsb2FkZXIu
bG9hZGluZyBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192437</attachid>
            <date>2013-03-11 04:21:11 -0700</date>
            <delta_ts>2013-03-11 05:05:09 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-98395-20130311201710.patch</filename>
            <type>text/plain</type>
            <size>126542</size>
            <attacher name="Kunihiko Sakamoto">ksakamoto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDc1ZTUwMDYyZDc1YmEx
OGYzNmYwYzAzYzMwNTUyNzg3ZTMyYmFhNi4uMWVmNGFkNDUyNzAzNGFjZDExMzM0MmRiYWUyYjM1
OGY4ZDU3OTJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMiBAQAorMjAxMy0wMy0xMSAgS3Vu
aWhpa28gU2FrYW1vdG8gIDxrc2FrYW1vdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxl
bWVudCBGb250TG9hZGVyIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTgzOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIEZvbnRMb2FkZXIgaW50
ZXJmYWNlIGRlZmluZWQgaW4gQ1NTIEZvbnQKKyAgICAgICAgTG9hZCBFdmVudHMgTW9kdWxlIExl
dmVsIDMuWzFdIEl0IGFkZHMgZm9udGxvYWRlciBhdHRyaWJ1dGUgdG8KKyAgICAgICAgRG9jdW1l
bnQsIGFuZCBhZGRzIHR3byBpbnRlcmZhY2VzLCBGb250TG9hZGVyIGFuZAorICAgICAgICBDU1NG
b250RmFjZUxvYWRFdmVudCB0byBXZWJDb3JlLgorCisgICAgICAgIFsxXTogaHR0cDovL2Rldi53
My5vcmcvY3Nzd2cvY3NzLWZvbnQtbG9hZC1ldmVudHMtMy8KKworICAgICAgICBUaGlzIGZlYXR1
cmUgaXMgZ3VhcmRlZCBieSBGT05UX0xPQURfRVZFTlRTIGNvbXBpbGVyIGZsYWcgYW5kCisgICAg
ICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmZvbnRMb2FkRXZlbnRzRW5hYmxlZCgpIHJ1bnRp
bWUgZmxhZy4KKworICAgICAgICBUZXN0czogZmFzdC9jc3MvZm9udGxvYWRlci1kb3dubG9hZC1l
cnJvci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9mb250bG9hZGVyLWV2ZW50cy5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2Nzcy9mb250bG9hZGVyLWxvYWRpbmdkb25lLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93bmxvYWQt
ZXJyb3IuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1m
YWNlcy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZh
bWlsaWVzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVy
LWxvYWRpbmctYXR0cmlidXRlLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGRp
bmcgRm9udExvYWRlci9DU1NGb250RmFjZUxvYWRFdmVudCBmaWxlcy4KKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5jcHA6IERpdHRvLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IERp
dHRvLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLnByaTogRGl0dG8uCisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbTogRGl0dG8uCisgICAgICAgICogVGFyZ2V0LnByaTogRGl0dG8uCisg
ICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ai5maWx0ZXJzOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZSk6IEFkZCBjb252ZXJ0
VmFsdWUoKSBmb3IgQ1NTRm9udEZhY2VSdWxlLCBET01FcnJvciwgYW5kIFZvaWRDYWxsYmFjay4K
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaDogRGl0dG8uCisgICAgICAgICog
YmluZGluZ3MvdjgvRGljdGlvbmFyeS5jcHA6IEFkZCBnZXQoKSBmb3IgQ1NTRm9udEZhY2VSdWxl
LCBET01FcnJvciwgYW5kIFZvaWRDYWxsYmFjay4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25h
cnk6OmdldCk6CisgICAgICAgICogYmluZGluZ3MvdjgvRGljdGlvbmFyeS5oOiBEaXR0by4KKyAg
ICAgICAgKERpY3Rpb25hcnkpOgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZS5jcHA6IE5vdGlm
aWVzIEZvbnRMb2FkZXIgYXMgbG9hZCBwcm9ncmVzc2VzLgorICAgICAgICAoV2ViQ29yZTo6Q1NT
Rm9udEZhY2U6OmZvbnRMb2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2U6Omdl
dEZvbnREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpub3RpZnlGb250TG9h
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpub3RpZnlMb2FkaW5nRG9uZSk6
CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlLmg6IEFkZCB0d28gbWVtYmVyIHZhcmlhYmxlcy4g
bV9ydWxlIHN0b3JlcyBDU1NGb250RmFjZVJ1bGUgZm9yIHRoZSBmb250ZmFjZS4gbV9sb2FkU3Rh
dGUgaG9sZHMgY3VycmVudCBzdGF0ZSBvZiB0aGUgZm9udGZhY2UgaW4gdGVybXMgb2YgRm9udExv
YWRlci4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpjcmVhdGUpOiBUYWtlcyBhZGRp
dGlvbmFsIHBhcmFtZXRlciBvZiB0eXBlIENTU0ZvbnRGYWNlUnVsZS4KKyAgICAgICAgKFdlYkNv
cmU6OkNTU0ZvbnRGYWNlOjpsb2FkU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZh
Y2U6OkNTU0ZvbnRGYWNlKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlTG9hZEV2ZW50OjpDU1NGb250
RmFjZUxvYWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZUxvYWRFdmVudDo6
fkNTU0ZvbnRGYWNlTG9hZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlTG9h
ZEV2ZW50OjppbnRlcmZhY2VOYW1lKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VMb2FkRXZl
bnQuaDogQWRkZWQuCisgICAgICAgIChDU1NGb250RmFjZUxvYWRFdmVudEluaXQpOgorICAgICAg
ICAoQ1NTRm9udEZhY2VMb2FkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VM
b2FkRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZUxvYWRFdmVu
dDo6Y3JlYXRlRm9yRm9udEZhY2VSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNl
TG9hZEV2ZW50OjpjcmVhdGVGb3JFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFj
ZUxvYWRFdmVudDo6Zm9udGZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VMb2Fk
RXZlbnQ6OmVycm9yKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VSdWxlLmlkbDogQWRkIEpTR2VuZXJhdGVU
b0pTT2JqZWN0IGFuZCBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QgYXMgSlNDIGJpbmRpbmcgbmVl
ZHMgdGhlbS4KKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTRm9udEZhY2VTb3VyY2U6OmlzRGVjb2RlRXJyb3IpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU291cmNlOjplbnN1cmVGb250RGF0YSk6IEFkZGVkLgor
ICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNvdXJjZS5oOgorICAgICAgICAoQ1NTRm9udEZhY2VT
b3VyY2UpOgorICAgICAgICAqIGNzcy9DU1NGb250U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1bGUpOiBQYXNzIGEgQ1NTRm9udEZh
Y2VSdWxlIHRvIENTU0ZvbnRGYWNlOjpjcmVhdGUoKS4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0Zv
bnRTZWxlY3Rvcjo6Z2V0Rm9udERhdGEpOiBNb3ZlZCBsb2dpYyBmb3IgY3JlYXRpbmcgYSBDU1NT
ZWdtZW50ZWRGb250RmFjZSB0byBhIGhlbHBlciBmdW5jdGlvbiBnZXRGb250RmFjZSgpLgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTRm9udFNlbGVjdG9yOjpnZXRGb250RmFjZSk6IEFkZGVkLgorICAg
ICAgICAqIGNzcy9DU1NGb250U2VsZWN0b3IuaDoKKyAgICAgICAgKiBjc3MvQ1NTU2VnbWVudGVk
Rm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VnbWVudGVkRm9udEZhY2U6OmZv
bnRMb2FkZWQpOiBGaXJlcyBjYWxsYmFja3Mgd2hlbiBsb2FkIGlzIGNvbXBsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1NlZ21lbnRlZEZvbnRGYWNlOjppc0xvYWRpbmcpOiBSZXR1cm5zIHRy
dWUgaWYgYW55IGZvbnRzIGFyZSBzdGlsbCBsb2FkaW5nLgorICAgICAgICAoV2ViQ29yZTo6Q1NT
U2VnbWVudGVkRm9udEZhY2U6OmNoZWNrRm9udCk6IFJldHVybnMgdHJ1ZSBpZiBhbGwgZm9udHMg
YXJlIGxvYWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlZ21lbnRlZEZvbnRGYWNlOjpsb2Fk
Rm9udCk6IFN0YXJ0cyBsb2FkIGJ5IGNhbGxpbmcgZ2V0Rm9udERhdGEoKS4KKyAgICAgICAgKiBj
c3MvQ1NTU2VnbWVudGVkRm9udEZhY2UuaDoKKyAgICAgICAgKENTU1NlZ21lbnRlZEZvbnRGYWNl
KTogRGVjbGFyZXMgbmV3IGZ1bmN0aW9ucyBhbmQgYSB2ZWN0b3IgdG8gc3RvcmUgY2FsbGJhY2tz
LgorICAgICAgICAoTG9hZEZvbnRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWdt
ZW50ZWRGb250RmFjZTo6TG9hZEZvbnRDYWxsYmFjazo6fkxvYWRGb250Q2FsbGJhY2spOgorICAg
ICAgICAqIGNzcy9Gb250TG9hZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChMb2FkRm9udENhbGxi
YWNrKTogSG9sZHMgY2FsbGJhY2sgZnVuY3Rpb25zIG9mIEZvbnRMb2FkZXIubG9hZEZvbnQoKS4K
KyAgICAgICAgKFdlYkNvcmU6OkxvYWRGb250Q2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpMb2FkRm9udENhbGxiYWNrOjpjcmVhdGVGcm9tUGFyYW1zKToKKyAgICAgICAgKFdl
YkNvcmU6OkxvYWRGb250Q2FsbGJhY2s6OkxvYWRGb250Q2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6TG9hZEZvbnRDYWxsYmFjazo6bm90aWZ5TG9hZGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkxvYWRGb250Q2FsbGJhY2s6Om5vdGlmeUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRM
b2FkZXI6OkZvbnRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udExvYWRlcjo6fkZvbnRM
b2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udExvYWRlcjo6ZXZlbnRUYXJnZXREYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OkZvbnRMb2FkZXI6OmVuc3VyZUV2ZW50VGFyZ2V0RGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGb250TG9hZGVyOjppbnRlcmZhY2VOYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRMb2FkZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udExvYWRlcjo6ZGlkTGF5b3V0KTogRmlyZXMgcGVuZGluZyBldmVudHMgYW5kIGNh
bGxiYWNrcy4gVGhpcyBpcyBjYWxsZWQgd2hlbiBsYXlvdXQgaGF2ZSBjb21wbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpGb250TG9hZGVyOjpzY2hlZHVsZUV2ZW50KTogRGVmZXJzIGV2ZW50IGRp
c3BhdGNoaW5nIHVudGlsIGxheW91dCBjb21wbGV0ZXMuCisgICAgICAgIChXZWJDb3JlOjpGb250
TG9hZGVyOjpmaXJlUGVuZGluZ0V2ZW50cyk6IERpc3BhdGNoZXMgcGVuZGluZyBldmVudHMuCisg
ICAgICAgIChXZWJDb3JlOjpGb250TG9hZGVyOjpiZWdpbkZvbnRMb2FkaW5nKTogU2NoZWR1bGVz
IGxvYWRpbmcvbG9hZHN0YXJ0IGV2ZW50cy4gVGhpcyBpcyBjYWxsZWQgZnJvbSBDU1NGb250RmFj
ZS4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRMb2FkZXI6OmZvbnRMb2FkZWQpOiBTY2hlZHVsZXMg
bG9hZC9sb2FkaW5nZG9uZSBldmVudHMuIFRoaXMgaXMgY2FsbGVkIGZyb20gQ1NTRm9udEZhY2Uu
CisgICAgICAgIChXZWJDb3JlOjpGb250TG9hZGVyOjpsb2FkRXJyb3IpOiBTY2hlZHVsZXMgZXJy
b3IvbG9hZGluZ2RvbmUgZXZlbnRzLiBUaGlzIGlzIGNhbGxlZCBmcm9tIENTU0ZvbnRGYWNlLgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udExvYWRlcjo6bm90aWZ5V2hlbkZvbnRzUmVhZHkpOiBJbXBs
ZW1lbnRzIGZvbnRsb2FkZXIubm90aWZ5V2hlbkZvbnRzUmVhZHkoKS4KKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRMb2FkZXI6OmxvYWRpbmdEb25lKTogRmlyZXMgY2FsbGJhY2tzIG9mIG5vdGlmeVdo
ZW5Gb250c1JlYWR5LgorICAgICAgICAoV2ViQ29yZTo6Rm9udExvYWRlcjo6bG9hZEZvbnQpOiBJ
bXBsZW1lbnRzIGZvbnRsb2FkZXIubG9hZEZvbnQoKS4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRM
b2FkZXI6OmNoZWNrRm9udCk6IEltcGxlbWVudHMgZm9udGxvYWRlci5jaGVja0ZvbnQoKS4KKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnRMb2FkZXI6OnJlc29sdmVGb250U3R5bGUpOiBQYXJzZXMgdGhl
IGdpdmVuIGZvbnQgcGFyYW1ldGVyIHVzaW5nIHRoZSBzeW50YXggb2YgQ1NTICdmb250JyBwcm9w
ZXJ0eSBhbmQgY3JlYXRlcyBGb250IG9iamVjdC4gVGhlIGxvZ2ljIGlzIHRha2VuIGZyb20gQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRGb250KCkuCisgICAgICAgICogY3NzL0ZvbnRMb2Fk
ZXIuaDogQWRkZWQuCisgICAgICAgIChGb250TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250TG9hZGVyOjpsb2FkaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRMb2FkZXI6OmRvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRMb2FkZXI6OnJlZkV2ZW50VGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRMb2FkZXI6OmRlcmVmRXZlbnRUYXJnZXQpOgorICAgICAgICAqIGNzcy9Gb250TG9hZGVyLmlk
bDogQWRkZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Zm9udGxv
YWRlcik6IEFkZGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1l
bnQpOiBBZGQgbV9mb250bG9hZGVyIGFuZCBmb250bG9hZGVyKCkuCisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmlkbDogQWRkIGZvbnRsb2FkZXIgYXR0cmlidXRlLgorICAgICAgICAqIGRvbS9FdmVu
dE5hbWVzLmg6IEFkZCBsb2FkaW5nIGFuZCBsb2FkaW5nZG9uZSBldmVudHMuCisgICAgICAgICog
ZG9tL0V2ZW50TmFtZXMuaW46IEFkZCBDU1NGb250RmFjZUxvYWRFdmVudC4KKyAgICAgICAgKiBk
b20vRXZlbnRUYXJnZXRGYWN0b3J5LmluOiBBZGQgRm9udExvYWRlci4KKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnBlcmZvcm1Qb3N0
TGF5b3V0VGFza3MpOiBDYWxscyBGb250TG9hZGVyOjpkaWRMYXlvdXQoKS4KKwogMjAxMy0wMy0x
MSAgTWFyamEgSMO2bHR0w6QgIDxtYXJqYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBG
aXggVjhJbmplY3RlZFNjcmlwdE1hbmFnZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNDVhNjI1
ODI5OGFlOTBjMTgyOTEzZWE3MGQ3YjZmM2VmNTFkZTU5MC4uZTQwYTRmNDJiMjhlOTllZTk0NDYw
MGFkNjkyOTkwZTYxMGJiNDhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTMwMyw2ICszMDMs
NyBAQCBzZXQoV2ViQ29yZV9JRExfRklMRVMKIAogICAgIGNzcy9Db3VudGVyLmlkbAogICAgIGNz
cy9DU1NDaGFyc2V0UnVsZS5pZGwKKyAgICBjc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsCiAg
ICAgY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwKICAgICBjc3MvQ1NTSG9zdFJ1bGUuaWRsCiAgICAg
Y3NzL0NTU0ltcG9ydFJ1bGUuaWRsCkBAIC0zMTgsNiArMzE5LDcgQEAgc2V0KFdlYkNvcmVfSURM
X0ZJTEVTCiAgICAgY3NzL0NTU1ZhbHVlLmlkbAogICAgIGNzcy9DU1NWYWx1ZUxpc3QuaWRsCiAg
ICAgY3NzL0RPTVdpbmRvd0NTUy5pZGwKKyAgICBjc3MvRm9udExvYWRlci5pZGwKICAgICBjc3Mv
TWVkaWFMaXN0LmlkbAogICAgIGNzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwKICAgICBjc3MvUkdCQ29s
b3IuaWRsCkBAIC0xMDI4LDYgKzEwMzAsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgY3Nz
L0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCiAgICAgY3NzL0NTU0RlZmF1bHRTdHlsZVNoZWV0cy5j
cHAKICAgICBjc3MvQ1NTRm9udEZhY2UuY3BwCisgICAgY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50
LmNwcAogICAgIGNzcy9DU1NGb250RmFjZVJ1bGUuY3BwCiAgICAgY3NzL0NTU0ZvbnRGYWNlU291
cmNlLmNwcAogICAgIGNzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcApAQCAtMTA3MCw2ICsxMDcz
LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGNzcy9Eb2N1bWVudFJ1bGVTZXRzLmNwcAog
ICAgIGNzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKICAgICBjc3MvRm9udEZlYXR1cmVWYWx1
ZS5jcHAKKyAgICBjc3MvRm9udExvYWRlci5jcHAKICAgICBjc3MvRm9udFZhbHVlLmNwcAogICAg
IGNzcy9JbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmNwcAogICAgIGNzcy9MZW5ndGhGdW5jdGlvbnMu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKaW5kZXggMTk1YmVhY2Q1YmZmYzMxNjJmMTE5
YWE0NTJhYmU0YTNhNDc3MzU5MS4uOTlmMDc5MWMyYTg0Y2E3MTVkNjQ4YmZhMTY3YTJiMTA3NjA1
MDNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAtNTQsNiArNTQsOSBAQAogI2lu
Y2x1ZGUgIkpTQ291bnRlci5jcHAiCiAjaW5jbHVkZSAiSlNDcnlwdG8uY3BwIgogI2luY2x1ZGUg
IkpTQ1NTQ2hhcnNldFJ1bGUuY3BwIgorI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQorI2lu
Y2x1ZGUgIkpTQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIgorI2VuZGlmCiAjaW5jbHVkZSAiSlND
U1NGb250RmFjZVJ1bGUuY3BwIgogI2luY2x1ZGUgIkpTQ1NTSG9zdFJ1bGUuY3BwIgogI2luY2x1
ZGUgIkpTQ1NTSW1wb3J0UnVsZS5jcHAiCkBAIC0xMzgsNiArMTQxLDkgQEAKICNpbmNsdWRlICJK
U0Zsb2F0MzJBcnJheS5jcHAiCiAjaW5jbHVkZSAiSlNGbG9hdDY0QXJyYXkuY3BwIgogI2luY2x1
ZGUgIkpTRm9jdXNFdmVudC5jcHAiCisjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisjaW5j
bHVkZSAiSlNGb250TG9hZGVyLmNwcCIKKyNlbmRpZgogI2luY2x1ZGUgIkpTR2VvbG9jYXRpb24u
Y3BwIgogI2luY2x1ZGUgIkpTR2VvcG9zaXRpb24uY3BwIgogI2luY2x1ZGUgIkpTSGFzaENoYW5n
ZUV2ZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGVmMTUzY2I4N2E5
Y2ViMGRkMTIzYWMxNjhiZWMxZTcyYzEyYjI2NjYuLjAzOWFhMTQ3MzBiNTE2ODhlOTY1NzdiYTJh
ODk1MDE1MjNmN2U4NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTc3LDYg
KzE3Nyw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9X
b3JrZXJDb250ZXh0V2ViU29ja2V0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NTQ2hhcnNl
dFJ1bGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2Nzcy9DU1NGb250RmFjZUxvYWRFdmVudC5pZGwg
XAogICAgICQoV2ViQ29yZSkvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvY3NzL0NTU0hvc3RSdWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NTSW1wb3J0UnVs
ZS5pZGwgXApAQCAtMTk0LDYgKzE5NSw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNv
cmUpL2Nzcy9DU1NWYWx1ZUxpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9Db3VudGVyLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9jc3MvRE9NV2luZG93Q1NTLmlkbCBcCisgICAgJChXZWJDb3Jl
KS9jc3MvRm9udExvYWRlci5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL01lZGlhTGlzdC5pZGwg
XAogICAgICQoV2ViQ29yZSkvY3NzL01lZGlhUXVlcnlMaXN0LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
cHJpCmluZGV4IDI3OWNjMGUwYzA5Mjc3NGQ1MDhiYWI3M2NhODFkMjQ3YjFjNWI0MWUuLjg2NGEx
Y2NlYWY5ZDcwMTAxZDY0N2QyYzVmOWE2ODc2ZTJjMzI5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5wcmkKQEAgLTE4OCw2ICsxODgsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgICQkUFdE
L01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJDb250ZXh0V2ViU29ja2V0LmlkbCBcCiAgICAgJCRQ
V0QvY3NzL0NvdW50ZXIuaWRsIFwKICAgICAkJFBXRC9jc3MvQ1NTQ2hhcnNldFJ1bGUuaWRsIFwK
KyAgICAkJFBXRC9jc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsIFwKICAgICAkJFBXRC9jc3Mv
Q1NTRm9udEZhY2VSdWxlLmlkbCBcCiAgICAgJCRQV0QvY3NzL0NTU0hvc3RSdWxlLmlkbCBcCiAg
ICAgJCRQV0QvY3NzL0NTU0ltcG9ydFJ1bGUuaWRsIFwKQEAgLTIwMyw2ICsyMDQsNyBAQCBJRExf
QklORElOR1MgKz0gXAogICAgICQkUFdEL2Nzcy9DU1NWYWx1ZS5pZGwgXAogICAgICQkUFdEL2Nz
cy9DU1NWYWx1ZUxpc3QuaWRsIFwKICAgICAkJFBXRC9jc3MvRE9NV2luZG93Q1NTLmlkbCBcCisg
ICAgJCRQV0QvY3NzL0ZvbnRMb2FkZXIuaWRsIFwKICAgICAkJFBXRC9jc3MvTWVkaWFMaXN0Lmlk
bCBcCiAgICAgJCRQV0QvY3NzL01lZGlhUXVlcnlMaXN0LmlkbCBcCiAgICAgJCRQV0QvY3NzL1Jl
Y3QuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDA3NjA3NGIxNDMzZTA3
MTlhNzU3M2I0MGMzYmI4NTg4ZWZjZWQ3MDUuLjA0NmY0ZGRjOTBlYzFmODAzODUwOGRjNTUwZjg4
ZmM1NzVjNGRkZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTEzLDYgKzEx
Myw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0NyeXB0by5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTQ2hhcnNldFJ1bGUu
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTQ2hhcnNldFJ1bGUuaCBcCisJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmggXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNDU1NGb250RmFjZVJ1bGUuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTQ1NTRm9udEZhY2VSdWxlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NI
b3N0UnVsZS5jcHAgXApAQCAtMjkyLDYgKzI5NCw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyAr
PSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Zsb2F0NjRBcnJheS5oIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTRm9jdXNFdmVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNGb2N1c0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGb250TG9hZGVy
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZvbnRMb2FkZXIuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0dhbWVwYWQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTR2FtZXBhZC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2FtZXBhZExpc3QuY3Bw
IFwKQEAgLTEzMjksNiArMTMzMyw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29y
ZSkvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJzb2NrZXRzL1dvcmtlckNvbnRleHRXZWJTb2NrZXQuaWRsIFwKIAkkKFdlYkNvcmUpL2Nz
cy9DU1NDaGFyc2V0UnVsZS5pZGwgXAorCSQoV2ViQ29yZSkvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2
ZW50LmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBcCiAJJChXZWJD
b3JlKS9jc3MvQ1NTSG9zdFJ1bGUuaWRsIFwKIAkkKFdlYkNvcmUpL2Nzcy9DU1NJbXBvcnRSdWxl
LmlkbCBcCkBAIC0xMzQ1LDYgKzEzNTAsNyBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdl
YkNvcmUpL2Nzcy9DU1NWYWx1ZUxpc3QuaWRsIFwKIAkkKFdlYkNvcmUpL2Nzcy9Db3VudGVyLmlk
bCBcCiAJJChXZWJDb3JlKS9jc3MvRE9NV2luZG93Q1NTLmlkbCBcCisJJChXZWJDb3JlKS9jc3Mv
Rm9udExvYWRlci5pZGwgXAogCSQoV2ViQ29yZSkvY3NzL01lZGlhTGlzdC5pZGwgXAogCSQoV2Vi
Q29yZSkvY3NzL01lZGlhUXVlcnlMaXN0LmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvUkdCQ29sb3Iu
aWRsIFwKQEAgLTI1NjcsNiArMjU3Myw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvY3NzL0NTU0RlZmF1bHRTdHlsZVNoZWV0cy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udEZhY2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuaCBc
CisJU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCBcCisJU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZVJ1bGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VS
dWxlLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAgXApAQCAt
MjY1OSw2ICsyNjY3LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9j
c3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGZWF0
dXJlVmFsdWUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZlYXR1cmVWYWx1ZS5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2Nz
cy9Gb250TG9hZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250VmFsdWUuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9jc3MvRm9udFZhbHVlLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9JbnNw
ZWN0b3JDU1NPTVdyYXBwZXJzLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAyMjkzNDE3YzU2NzAxMWYx
MzhkZjZhM2Y0NDBhZWI3OGIyMTNlYjRjLi5kMTMzOWE1OTEzYTcxM2UyMTM3NTUyOTQyYTdhYWRm
YTdhMGUxNDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTI2NSw2ICsyNjUsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBjc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAgXAogICAgIGNzcy9DU1NGb250RmFjZS5j
cHAgXAogICAgIGNzcy9DU1NEZWZhdWx0U3R5bGVTaGVldHMuY3BwIFwKKyAgICBjc3MvQ1NTRm9u
dEZhY2VMb2FkRXZlbnQuY3BwIFwKICAgICBjc3MvQ1NTRm9udEZhY2VSdWxlLmNwcCBcCiAgICAg
Y3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwIFwKICAgICBjc3MvQ1NTRm9udFNlbGVjdG9yLmNw
cCBcCkBAIC0zMDcsNiArMzA4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgY3NzL0RvY3VtZW50UnVs
ZVNldHMuY3BwIFwKICAgICBjc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIFwKICAgICBjc3Mv
Rm9udEZlYXR1cmVWYWx1ZS5jcHAgXAorICAgIGNzcy9Gb250TG9hZGVyLmNwcCBcCiAgICAgY3Nz
L0ZvbnRWYWx1ZS5jcHAgXAogICAgIGNzcy9JbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmNwcCBcCiAg
ICAgY3NzL0xlbmd0aEZ1bmN0aW9ucy5jcHAgXApAQCAtMTUxMyw2ICsxNTE1LDcgQEAgSEVBREVS
UyArPSBcCiAgICAgY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmggXAogICAgIGNzcy9DU1NDdXJzb3JJ
bWFnZVZhbHVlLmggXAogICAgIGNzcy9DU1NGb250RmFjZS5oIFwKKyAgICBjc3MvQ1NTRm9udEZh
Y2VMb2FkRXZlbnQuaCBcCiAgICAgY3NzL0NTU0ZvbnRGYWNlUnVsZS5oIFwKICAgICBjc3MvQ1NT
Rm9udEZhY2VTb3VyY2UuaCBcCiAgICAgY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuaCBcCkBAIC0x
NTU0LDYgKzE1NTcsNyBAQCBIRUFERVJTICs9IFwKICAgICBjc3MvQ1NTVmFyaWFibGVWYWx1ZS5o
IFwKICAgICBjc3MvRE9NV2luZG93Q1NTLmggXAogICAgIGNzcy9Gb250RmVhdHVyZVZhbHVlLmgg
XAorICAgIGNzcy9Gb250TG9hZGVyLmggXAogICAgIGNzcy9Gb250VmFsdWUuaCBcCiAgICAgY3Nz
L0xlbmd0aEZ1bmN0aW9ucy5oIFwKICAgICBjc3MvTWVkaWFGZWF0dXJlTmFtZXMuaCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKaW5kZXggZmRkMTJkNTcyYjFhYzI5NDNhZjZlOTRmZTY4NWY2MDZiYjNjMTg2Ni4u
MWZhYzQ1OGVlZmE4OTEzZWJkMjQzNzI2ZWVkY2EyZWI2ZmUxOWQ4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQpAQCAtMjQzLDYgKzI0Myw3IEBACiAgICAgICAgICAgICAnTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJDb250
ZXh0V2ViU29ja2V0LmlkbCcsCiAgICAgICAgICAgICAnY3NzL0NTU0NoYXJzZXRSdWxlLmlkbCcs
CisgICAgICAgICAgICAnY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbCcsCiAgICAgICAgICAg
ICAnY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9DU1NIb3N0UnVs
ZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9DU1NJbXBvcnRSdWxlLmlkbCcsCkBAIC0yNjAsNiAr
MjYxLDcgQEAKICAgICAgICAgICAgICdjc3MvQ1NTVmFsdWVMaXN0LmlkbCcsCiAgICAgICAgICAg
ICAnY3NzL0NvdW50ZXIuaWRsJywKICAgICAgICAgICAgICdjc3MvRE9NV2luZG93Q1NTLmlkbCcs
CisgICAgICAgICAgICAnY3NzL0ZvbnRMb2FkZXIuaWRsJywKICAgICAgICAgICAgICdjc3MvTWVk
aWFMaXN0LmlkbCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlMaXN0LmlkbCcsCiAgICAg
ICAgICAgICAnY3NzL1JlY3QuaWRsJywKQEAgLTE1NzQsNiArMTU3Niw4IEBACiAgICAgICAgICAg
ICAnY3NzL0NTU0RlZmF1bHRTdHlsZVNoZWV0cy5oJywKICAgICAgICAgICAgICdjc3MvQ1NTRm9u
dEZhY2UuY3BwJywKICAgICAgICAgICAgICdjc3MvQ1NTRm9udEZhY2UuaCcsCisgICAgICAgICAg
ICAnY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCcsCisgICAgICAgICAgICAnY3NzL0NTU0Zv
bnRGYWNlTG9hZEV2ZW50LmgnLAogICAgICAgICAgICAgJ2Nzcy9DU1NGb250RmFjZVJ1bGUuY3Bw
JywKICAgICAgICAgICAgICdjc3MvQ1NTRm9udEZhY2VSdWxlLmgnLAogICAgICAgICAgICAgJ2Nz
cy9DU1NGb250RmFjZVNvdXJjZS5jcHAnLApAQCAtMTY1Miw2ICsxNjU2LDggQEAKICAgICAgICAg
ICAgICdjc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaCcsCiAgICAgICAgICAgICAnY3NzL0ZvbnRG
ZWF0dXJlVmFsdWUuY3BwJywKICAgICAgICAgICAgICdjc3MvRm9udEZlYXR1cmVWYWx1ZS5oJywK
KyAgICAgICAgICAgICdjc3MvRm9udExvYWRlci5oJywKKyAgICAgICAgICAgICdjc3MvRm9udExv
YWRlci5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9Gb250VmFsdWUuY3BwJywKICAgICAgICAgICAg
ICdjc3MvRm9udFZhbHVlLmgnLAogICAgICAgICAgICAgJ2Nzcy9JbnNwZWN0b3JDU1NPTVdyYXBw
ZXJzLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CmluZGV4IGM2NGJlYTk2NjIwODk3YWJlNTE3MmZmM2U2ZjNiM2NmNjJhMTA3OGQuLjA5NDYyN2Yz
NGI0MDAwMmZkODVlYzAxMmQ1OTRmNjAzOWI2YTg2MmMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0xODAzLDYgKzE4MDMsNjIgQEAKIAkJCQk+
CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NTU0ZvbnRGYWNl
TG9hZEV2ZW50LmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9
IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJ
CQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxl
YXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19D
YWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+
CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9
IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJ
CVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmgiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NGb250RmFjZVJ1bGUuY3Bw
IgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTU3MDMsNiArNTc1OSw2MiBAQAog
CQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRm9udExv
YWRlci5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1
Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9f
Q0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJ
CQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxl
YXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJ
CQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxh
dGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXNcSlNGb250TG9hZGVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
IAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNHZW9sb2NhdGlvbi5jcHAiCiAJCQkJPgogCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgpAQCAtMzYxMTksNiArMzYyMzEsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXENTU0ZvbnRGYWNlTG9hZEV2ZW50
LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
Y3NzXENTU0ZvbnRGYWNlTG9hZEV2ZW50LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xDU1NGb250RmFjZVJ1bGUuY3BwIgogCQkJCT4KIAkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTM4MTU1LDYgKzM4Mjc1LDE0IEBACiAJCQkJPgogCQkJ
PC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xGb250TG9hZGVyLmNw
cCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3Nz
XEZvbnRMb2FkZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZl
UGF0aD0iLi5cY3NzXEZvbnRWYWx1ZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggZWM0ODIxNzkz
YTM1MmQzZTk2MzJhMjFkODM2M2YzYzNiODEzN2QxOC4uM2RmZjU2ZjZmYTJlYjkwZWY4MDY1OTM4
ZThhYzcxNDE2YmRkZmQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qCkBAIC0yNTQsNiArMjU0LDEyIEBACiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIj4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21w
aWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NTU0ZvbnRGYWNlUnVsZS5jcHAiPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC02
NjEsNiArNjY3LDEyIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTRm9udExvYWRlci5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTR2VvbG9jYXRpb24uY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMzg2MCw2ICszODcyLDEyIEBACiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIj4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwv
Q2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cY3NzXENTU0ZvbnRGYWNlUnVs
ZS5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CkBAIC00MDY4LDYgKzQwODYsNyBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cY3NzXEZvbnRGZWF0dXJlVmFsdWUuY3BwIiAvPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cY3NzXEZvbnRMb2FkZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cY3NzXEZvbnRWYWx1ZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
Llxjc3NcTGVuZ3RoRnVuY3Rpb25zLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGNzc1xNZWRpYUFsbEluT25lLmNwcCI+CkBAIC04MjM3LDYgKzgyNTYsNyBAQAogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU0NvdW50ZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNDcnlwdG8uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NDaGFyc2V0
UnVsZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NTU0ZvbnRGYWNlTG9hZEV2
ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQ1NTRm9udEZhY2VSdWxlLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2Jq
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQ1NTSG9zdFJ1bGUuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NJbXBvcnRSdWxlLmgiIC8+CkBAIC04MzE0LDYgKzgz
MzQsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0ZpbGVXcml0ZXIuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNGaWxlV3JpdGVyQ2FsbGJhY2suaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNGaWxlV3JpdGVyU3luYy5oIiAvPgorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0ZvbnRMb2FkZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNHZW9sb2NhdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0dlb3Bv
c2l0aW9uLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSGFzaENoYW5nZUV2ZW50
LmgiIC8+CkBAIC05NjE1LDYgKzk2MzYsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
Y3NzXENTU0Nyb3NzZmFkZVZhbHVlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxj
c3NcQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
Y3NzXENTU0ZvbnRGYWNlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcQ1NT
Rm9udEZhY2VMb2FkRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xD
U1NGb250RmFjZVJ1bGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xDU1NG
b250RmFjZVNvdXJjZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXENTU0Zv
bnRGYWNlU3JjVmFsdWUuaCIgLz4KQEAgLTk2NjAsNiArOTY4Miw3IEBACiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxjc3NcQ1NTVmFyaWFibGVWYWx1ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cY3NzXERhc2hib2FyZFJlZ2lvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cY3NzXEZvbnRGZWF0dXJlVmFsdWUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGNzc1xGb250TG9hZGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxj
c3NcRm9udFZhbHVlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcTGVuZ3Ro
RnVuY3Rpb25zLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcTWVkaWFGZWF0
dXJlTmFtZXMuaCIgLz4KQEAgLTExMTQxLDQgKzExMTY0LDQgQEAKICAgPEltcG9ydCBQcm9qZWN0
PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KICAgPEltcG9ydEdy
b3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KICAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVj
dD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5k
ZXggNmJjZjY0OWJhNDZhMmE3NjVkMWU4YjBlOTc3MmQwZTY0OTNlY2ViZC4uYzgyYjhiY2EwMGEx
OGFjNjAzMDQ3MDAxYzJiMDMwNDQwZWIyNThkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMzg3LDYgKzM4
Nyw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQ1NTQ2hhcnNldFJ1bGUuY3BwIj4K
ICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4K
KyAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NGb250RmFjZUxvYWRFdmVudC5jcHAiPgor
ICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NTU0ZvbnRGYWNlUnVsZS5jcHAiPgogICAgICAg
PEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtNjE4
LDYgKzYyMSw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRmlsZVdyaXRlclN5bmMu
Y3BwIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29t
cGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxv
YmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNGb250TG9hZGVyLmNwcCI+CisgICAg
ICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTR2VvbG9jYXRpb24uY3BwIj4KICAgICAgIDxGaWx0ZXI+
RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM1NzksNiArMzU4
NSw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcQ1NTRm9udEZhY2UuY3BwIj4K
ICAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxjc3NcQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIj4KKyAgICAgIDxG
aWx0ZXI+Y3NzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxjc3NcQ1NTRm9udEZhY2VSdWxlLmNwcCI+CiAgICAgICA8RmlsdGVyPmNzczwvRmls
dGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMzY5Myw2ICszNzAyLDkgQEAKICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGNzc1xGb250RmVhdHVyZVZhbHVlLmNwcCI+CiAgICAgICA8RmlsdGVy
PmNzczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cY3NzXEZvbnRMb2FkZXIuY3BwIj4KKyAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CisgICAg
PC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcRm9udFZhbHVlLmNw
cCI+CiAgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtNjk0
Miw2ICs2OTU0LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NDaGFyc2V0UnVs
ZS5oIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5j
bHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxv
YmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NGb250RmFjZUxvYWRFdmVudC5o
Ij4KKyAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVk
ZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NGb250RmFjZVJ1bGUuaCI+CiAgICAg
ICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC03
MTczLDYgKzcxODgsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0ZpbGVXcml0ZXJT
eW5jLmgiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xJ
bmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0ZvbnRMb2FkZXIuaCI+CisgICAg
ICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTR2VvbG9jYXRpb24uaCI+CiAgICAgICA8RmlsdGVyPkRl
cml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDMyMyw2ICsxMDM0
MSw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcQ1NTRm9udEZhY2UuaCI+CiAg
ICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cY3NzXENTU0ZvbnRGYWNlTG9hZEV2ZW50LmgiPgorICAgICAgPEZpbHRl
cj5jc3M8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGNzc1xDU1NGb250RmFjZVJ1bGUuaCI+CiAgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgog
ICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA0NTgsNiArMTA0NzksOSBAQAogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cY3NzXEZvbnRGZWF0dXJlVmFsdWUuaCI+CiAgICAgICA8RmlsdGVyPmNzczwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3Nz
XEZvbnRMb2FkZXIuaCI+CisgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgorICAgIDwvQ2xJbmNs
dWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXEZvbnRWYWx1ZS5oIj4KICAgICAg
IDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzY3MGU2MDZkM2E0
ZmI0M2JjNWFiY2Q3NTY1ZjNhNWIzMWE1ZDdlYi4uNjBjYTRjNGJjMGU3Y2RkY2UyNmE2NTBmMDc4
ZmI4NTU2MDVmNzk1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTA1MSw2ICsxMDUxLDE2IEBACiAJCTNGRkZGOUE5MTU5RDlB
NTUwMDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGRkZGOUE3MTU5RDlBNTUwMDIwQkJENSAvKiBX
ZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCAqLzsgfTsKIAkJM0ZGRkY5QUQxNTlEOUIwNjAwMjBCQkQ1
IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzRkZGRjlBQjE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRT
dHlsZVJlc29sdmVyLmNwcCAqLzsgfTsKIAkJM0ZGRkY5QUUxNTlEOUIwNjAwMjBCQkQ1IC8qIFZp
ZXdwb3J0U3R5bGVSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gM0ZGRkY5QUMxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNv
bHZlci5oICovOyB9OworCQk0MDlFQkRCMTE2QjdFRTcxMDBDQkEzRkMgLyogQ1NTRm9udEZhY2VM
b2FkRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQwOUVCREFFMTZCN0VFMjgwMENCQTNGQyAvKiBDU1NGb250RmFjZUxvYWRFdmVudC5oICovOyB9
OworCQk0MDlFQkRCMjE2QjdFRTc0MDBDQkEzRkMgLyogQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5RUJEQUMx
NkI3RUUxQzAwQ0JBM0ZDIC8qIENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCAqLzsgfTsKKwkJNDA5
RUJEQjQxNkI3RUU4NzAwQ0JBM0ZDIC8qIEZvbnRMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5RUJEQjMxNkI3RUU4NzAwQ0JBM0ZDIC8q
IEZvbnRMb2FkZXIuY3BwICovOyB9OworCQk0MDlFQkRCNjE2QjdFRUEzMDBDQkEzRkMgLyogRm9u
dExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDA5RUJEQjUxNkI3RUVBMzAwQ0JBM0ZDIC8qIEZvbnRMb2FkZXIuaCAqLzsgfTsKKwkJNDA5RUJE
QkExNkI3RjA0NTAwQ0JBM0ZDIC8qIEpTRm9udExvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MDlFQkRCOTE2QjdGMDQ1MDBDQkEzRkMgLyog
SlNGb250TG9hZGVyLmNwcCAqLzsgfTsKKwkJNDA5RUJEQzAxNkI3RjM4RTAwQ0JBM0ZDIC8qIEpT
Rm9udExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDA5RUJEQkYxNkI3RjM4RTAwQ0JBM0ZDIC8qIEpTRm9udExvYWRlci5oICovOyB9OworCQk0
MDlFQkRDMzE2QjdGM0E2MDBDQkEzRkMgLyogSlNDU1NGb250RmFjZUxvYWRFdmVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5RUJEQzIxNkI3RjNB
NjAwQ0JBM0ZDIC8qIEpTQ1NTRm9udEZhY2VMb2FkRXZlbnQuaCAqLzsgfTsKKwkJNDA5RUJEQzUx
NkI3RjNDQTAwQ0JBM0ZDIC8qIEpTQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5RUJEQzQxNkI3RjNDQTAwQ0JB
M0ZDIC8qIEpTQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwICovOyB9OworCQk0MEVDQUU3RTE2QjhC
NjcyMDBDMzYxMDMgLyogSlNET01FcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDBFQ0FFN0QxNkI4QjY3MjAwQzM2MTAzIC8qIEpTRE9NRXJyb3Iu
aCAqLzsgfTsKKwkJNDBFQ0FFODExNkI4QjY4QTAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDBFQ0FFODAxNkI4
QjY4QTAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuY3BwICovOyB9OwogCQk0MTAwMkNDRDBGNjZFREVG
MDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwMkNDQjBGNjZFREVGMDA5RTY2MEQgLyogU2NyaXB0
RnVuY3Rpb25DYWxsLmggKi87IH07CiAJCTQxMDAyQ0NFMEY2NkVERUYwMDlFNjYwRCAvKiBTY3Jp
cHRGdW5jdGlvbkNhbGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEwMDJDQ0MwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5j
cHAgKi87IH07CiAJCTQxMEI3RTcyMTA0NUZBQjAwMEQ4MjI0RiAvKiBKU01lc3NhZ2VFdmVudEN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovOyB9
OwpAQCAtODQ1OSw2ICs4NDY5LDE4IEBACiAJCTNGRkZGOUE3MTU5RDlBNTUwMDIwQkJENSAvKiBX
ZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViS2l0Q1NTVmlld3BvcnRSdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNG
RkZGOUFCMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlld3BvcnRTdHlsZVJlc29sdmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0ZGRkY5QUMxNTlEOUIwNjAwMjBCQkQ1
IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDA5RUJEQUMxNkI3RUUxQzAwQ0JBM0ZDIC8qIENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0ZvbnRGYWNlTG9hZEV2ZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQUUxNkI3RUUyODAwQ0JB
M0ZDIC8qIENTU0ZvbnRGYWNlTG9hZEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENTU0ZvbnRGYWNlTG9hZEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQwOUVCREFGMTZCN0VFNTcwMENCQTNGQyAvKiBDU1NGb250RmFjZUxvYWRFdmVudC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MDlFQkRCMzE2QjdFRTg3MDBDQkEzRkMgLyogRm9udExv
YWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb250TG9hZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQjUxNkI3RUVBMzAwQ0JB
M0ZDIC8qIEZvbnRMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9u
dExvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MDlFQkRCNzE2QjdFRUJB
MDBDQkEzRkMgLyogRm9udExvYWRlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRm9udExv
YWRlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQwOUVCREI5MTZCN0YwNDUw
MENCQTNGQyAvKiBKU0ZvbnRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNGb250TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDA5RUJEQkYxNkI3RjM4RTAwQ0JBM0ZDIC8qIEpTRm9udExvYWRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0ZvbnRMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNDA5RUJEQzIxNkI3RjNBNjAwQ0JBM0ZDIC8qIEpTQ1NTRm9udEZhY2VMb2FkRXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NGb250RmFjZUxvYWRF
dmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MDlFQkRDNDE2QjdGM0NBMDBD
QkEzRkMgLyogSlNDU1NGb250RmFjZUxvYWRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDBFQ0FFN0QxNkI4QjY3MjAwQzM2MTAzIC8qIEpTRE9NRXJyb3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01FcnJvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MEVDQUU4MDE2QjhCNjhBMDBDMzYxMDMgLyogSlNET01F
cnJvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUVycm9y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwMDJDQ0IwRjY2RURFRjAwOUU2
NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTY3JpcHRGdW5jdGlvbkNhbGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDEwMDJDQ0MwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRGdW5jdGlvbkNhbGwuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyog
SlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTYxODEsMTAgKzE2MjAzLDE2IEBACiAJCQkJQThEMDZCMzcwQTI2NURDRDAwNUU3MjAz
IC8qIEhUTUxOYW1lcy5oICovLAogCQkJCTUzRTI5RTVDMTY3QThBMTkwMDU4NkQzRCAvKiBJbnRl
cm5hbFNldHRpbmdzR2VuZXJhdGVkLmNwcCAqLywKIAkJCQk1M0UyOUU1RDE2N0E4QTE5MDA1ODZE
M0QgLyogSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5oICovLAorCQkJCTQwRUNBRTgwMTZCOEI2
OEEwMEMzNjEwMyAvKiBKU0RPTUVycm9yLmNwcCAqLywKKwkJCQk0MEVDQUU3RDE2QjhCNjcyMDBD
MzYxMDMgLyogSlNET01FcnJvci5oICovLAogCQkJCTkzOEU2NUY2MDlGMDk4NUQwMDhBNDhFQyAv
KiBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwICovLAogCQkJCTkzOEU2NUYwMDlGMDk4
NDAwMDhBNDhFQyAvKiBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCAqLywKIAkJCQk4NTc0
RDFGMTBBREU2MTIyMDA0Q0JBMTEgLyogSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwICov
LAogCQkJCTg1NzREMUYyMEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR0VsZW1lbnRXcmFwcGVyRmFj
dG9yeS5oICovLAorCQkJCTQwOUVCREM0MTZCN0YzQ0EwMENCQTNGQyAvKiBKU0NTU0ZvbnRGYWNl
TG9hZEV2ZW50LmNwcCAqLywKKwkJCQk0MDlFQkRDMjE2QjdGM0E2MDBDQkEzRkMgLyogSlNDU1NG
b250RmFjZUxvYWRFdmVudC5oICovLAorCQkJCTQwOUVCREI5MTZCN0YwNDUwMENCQTNGQyAvKiBK
U0ZvbnRMb2FkZXIuY3BwICovLAorCQkJCTQwOUVCREJGMTZCN0YzOEUwMENCQTNGQyAvKiBKU0Zv
bnRMb2FkZXIuaCAqLywKIAkJCQlGQUJFNzJGQjEwNTlDMjExMDBEOTk5REQgLyogTWF0aE1MRWxl
bWVudEZhY3RvcnkuY3BwICovLAogCQkJCTQ0QTI4QUFCMTJERkI4QUMwMEFFOTIzQiAvKiBNYXRo
TUxFbGVtZW50RmFjdG9yeS5oICovLAogCQkJCUZBQkU3MkZDMTA1OUMyMTEwMEQ5OTlERCAvKiBN
YXRoTUxOYW1lcy5jcHAgKi8sCkBAIC0yMjAzNSw2ICsyMjA2Myw5IEBACiAJCQkJNEE5Q0M4MTYx
NkJCOUFDNjAwRUM2NDVBIC8qIENTU0RlZmF1bHRTdHlsZVNoZWV0cy5oICovLAogCQkJCUJDNjRC
NENEMENCNDI5OEEwMDVGMkI2MiAvKiBDU1NGb250RmFjZS5jcHAgKi8sCiAJCQkJQkM2NEI0Q0Uw
Q0I0Mjk4QTAwNUYyQjYyIC8qIENTU0ZvbnRGYWNlLmggKi8sCisJCQkJNDA5RUJEQUMxNkI3RUUx
QzAwQ0JBM0ZDIC8qIENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCAqLywKKwkJCQk0MDlFQkRBRTE2
QjdFRTI4MDBDQkEzRkMgLyogQ1NTRm9udEZhY2VMb2FkRXZlbnQuaCAqLywKKwkJCQk0MDlFQkRB
RjE2QjdFRTU3MDBDQkEzRkMgLyogQ1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsICovLAogCQkJCUE4
MEU2Q0JEMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NGb250RmFjZVJ1bGUuY3BwICovLAogCQkJCUE4
MEU2Q0QzMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NGb250RmFjZVJ1bGUuaCAqLywKIAkJCQk4NUM1
NkNBMzBBQTg5Q0E0MDBEOTU3NTUgLyogQ1NTRm9udEZhY2VSdWxlLmlkbCAqLywKQEAgLTIyMTQ3
LDYgKzIyMTc4LDkgQEAKIAkJCQlGQkRCNjE5RTE2RDYwMzY1MDBCQjMzOTQgLyogRWxlbWVudFJ1
bGVDb2xsZWN0b3IuaCAqLywKIAkJCQlGQkRCNjE5QTE2RDYwMzJBMDBCQjMzOTQgLyogRWxlbWVu
dFJ1bGVDb2xsZWN0b3IuY3BwICovLAogCQkJCTRBNkU5RkMyMTNDMTdEMUQwMDQ2QTdGOCAvKiBG
b250RmVhdHVyZVZhbHVlLmggKi8sCisJCQkJNDA5RUJEQjMxNkI3RUU4NzAwQ0JBM0ZDIC8qIEZv
bnRMb2FkZXIuY3BwICovLAorCQkJCTQwOUVCREI1MTZCN0VFQTMwMENCQTNGQyAvKiBGb250TG9h
ZGVyLmggKi8sCisJCQkJNDA5RUJEQjcxNkI3RUVCQTAwQ0JBM0ZDIC8qIEZvbnRMb2FkZXIuaWRs
ICovLAogCQkJCUE4MEU2Q0M3MEExOTg5Q0EwMDdGQjhDNSAvKiBGb250VmFsdWUuY3BwICovLAog
CQkJCUE4MEU2Q0MzMEExOTg5Q0EwMDdGQjhDNSAvKiBGb250VmFsdWUuaCAqLywKIAkJCQlDRDRF
MEFGQTExRjdCQzI3MDA5RDM4MTEgLyogZnVsbHNjcmVlbi5jc3MgKi8sCkBAIC0yMzU4Myw2ICsy
MzYxNyw3IEBACiAJCQkJQUEyMUVDQ0QwQUJGMEZDNjAwMkI4MzRDIC8qIENTU0N1cnNvckltYWdl
VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBOUNDODE4MTZCQjlBQzYwMEVDNjQ1QSAvKiBD
U1NEZWZhdWx0U3R5bGVTaGVldHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjRCNEQ2MENCNDI5
OEEwMDVGMkI2MiAvKiBDU1NGb250RmFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDA5RUJEQjEx
NkI3RUU3MTAwQ0JBM0ZDIC8qIENTU0ZvbnRGYWNlTG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBODBFNkNGRDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTRm9udEZhY2VSdWxlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzY0QjREODBDQjQyOThBMDA1RjJCNjIgLyogQ1NTRm9udEZhY2VTb3Vy
Y2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjRCNERBMENCNDI5OEEwMDVGMkI2MiAvKiBDU1NG
b250RmFjZVNyY1ZhbHVlLmggaW4gSGVhZGVycyAqLywKQEAgLTI0NTM5LDYgKzI0NTc0LDcgQEAK
IAkJCQlCMkMzREE2QTBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udEZhbWlseS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNEE2RTlGQzgxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3Mu
aCBpbiBIZWFkZXJzICovLAogCQkJCTRBNkU5RkM0MTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVh
dHVyZVZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MDlFQkRCNjE2QjdFRUEzMDBDQkEzRkMg
LyogRm9udExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg0NTY4MDgxMkI5MERBNjAwOTYw
QTlGIC8qIEZvbnRNZXRyaWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGN0EwMzRDNDEyNkJGNkJF
MDA3REMxOUUgLyogRm9udE9yaWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNTMyMEQ2
QjEyMkEyNEU5MDAyRDE0NDAgLyogRm9udFBsYXRmb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNDkzOSw2ICsyNDk3NSw3IEBACiAJCQkJOTMwNzA1REEwOUUwQzlCRjAwQjE3RkU0IC8qIEpT
Q291bnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc1Q0EyQTIxMzAzNjc5RDAwRTk5QUQ5IC8q
IEpTQ3J5cHRvLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQ2QzFGQjBDMEREQzhGMDAyMENGQzMg
LyogSlNDU1NDaGFyc2V0UnVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDA5RUJEQzMxNkI3RjNB
NjAwQ0JBM0ZDIC8qIEpTQ1NTRm9udEZhY2VMb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDNDZDMUZEMEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU0ZvbnRGYWNlUnVsZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM0NkMxRkYwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTSW1wb3J0UnVsZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0NkMyMDEwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTTWVk
aWFSdWxlLmggaW4gSGVhZGVycyAqLywKQEAgLTI0OTczLDYgKzI1MDEwLDcgQEAKIAkJCQkxQUMy
MjYwRDBEQjY5RjE5MDA4OUI2NjkgLyogSlNET01BcHBsaWNhdGlvbkNhY2hlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0I3MEQ2NDA5RUIwQzdDMDA5RDg0NjggLyogSlNET01CaW5kaW5nLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzYwRDdDMTBEMjlBNDYzMDBCOTkxOEYgLyogSlNET01Db3JlRXhj
ZXB0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MEVDQUU3RTE2QjhCNjcyMDBDMzYxMDMgLyog
SlNET01FcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODk4Nzg1QTUxMjJDQTJBNzAwM0FBQkRB
IC8qIEpTRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODkzQzQ4MzcxMjQ5NTQ3
MjAwMkIzRDg2IC8qIEpTRE9NRmlsZVN5c3RlbVN5bmMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJF
MDg4OEQ1MTE0ODg0OEEwMEFGNDI2NSAvKiBKU0RPTUZvcm1EYXRhLmggaW4gSGVhZGVycyAqLywK
QEAgLTI1MDMyLDYgKzI1MDcwLDcgQEAKIAkJCQk0OUVFQ0YwMzEwNTA3MEM0MDAwOTlGQUIgLyog
SlNGbG9hdDMyQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTZFQkM1RUIwMTM4QjUwRjIwMEEw
Q0Y4QSAvKiBKU0Zsb2F0NjRBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjZEOUQyN0IxNEVB
QzA4NjAwOTBENzVFIC8qIEpTRm9jdXNFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDA5RUJE
QzAxNkI3RjM4RTAwQ0JBM0ZDIC8qIEpTRm9udExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkRBMTVFQUMxMkIwM0VFMTAwM0E1ODNBIC8qIEpTR2Fpbk5vZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZFODBEQTY0MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGRTgwREE2NjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNzI4Myw2ICsyNzMyMiw3IEBACiAJCQkJQUEyMUVDQ0EwQUJGMEZC
QTAwMkI4MzRDIC8qIENTU0N1cnNvckltYWdlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NEE5Q0M4MTcxNkJCOUFDNjAwRUM2NDVBIC8qIENTU0RlZmF1bHRTdHlsZVNoZWV0cy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzY0QjRENTBDQjQyOThBMDA1RjJCNjIgLyogQ1NTRm9udEZhY2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDA5RUJEQjIxNkI3RUU3NDAwQ0JBM0ZDIC8qIENTU0Zv
bnRGYWNlTG9hZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU2Q0U3MEExOTg5Q0Ew
MDdGQjhDNSAvKiBDU1NGb250RmFjZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2NEI0
RDcwQ0I0Mjk4QTAwNUYyQjYyIC8qIENTU0ZvbnRGYWNlU291cmNlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDNjRCNEQ5MENCNDI5OEEwMDVGMkI2MiAvKiBDU1NGb250RmFjZVNyY1ZhbHVlLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjc4ODgsNiArMjc5MjgsNyBAQAogCQkJCTcyNjI2RTAyMEVG
MDIyRkUwMEEwN0UyMCAvKiBGb250RmFzdFBhdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEE2
RTlGQzcxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNEE2RTlGQzMxM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDA5RUJEQjQxNkI3RUU4NzAwQ0JBM0ZDIC8qIEZvbnRM
b2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBRkZDODAwRDAwQTVDMTAwMzAwNzREIC8q
IEZvbnRNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NEI2MjY4NTEzMzEzOEY5MDA5NUE0ODkg
LyogRm9udFBsYXRmb3JtRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNTMyMEQ2QzEyMkEy
NEU5MDAyRDE0NDAgLyogRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCkBA
IC0yODI1NSw2ICsyODI5Niw3IEBACiAJCQkJOTc1Q0EyQTExMzAzNjc5RDAwRTk5QUQ5IC8qIEpT
Q3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTIwOUI0NTZCMTY3OTZBN0UwMEU1NEU0RSAv
KiBKU0NyeXB0b0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQ2QzFGQTBDMEREQzhG
MDAyMENGQzMgLyogSlNDU1NDaGFyc2V0UnVsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MDlF
QkRDNTE2QjdGM0NBMDBDQkEzRkMgLyogSlNDU1NGb250RmFjZUxvYWRFdmVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQzQ2QzFGQzBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NGb250RmFjZVJ1
bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFBRDE0OTExMjk3MzM3NDAwQUNBOTg5IC8qIEpT
Q1NTRm9udEZhY2VSdWxlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDZDMUZFMEMw
RERDOEYwMDIwQ0ZDMyAvKiBKU0NTU0ltcG9ydFJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
ODMwNCw2ICsyODM0Niw3IEBACiAJCQkJMUFDMjI2MEMwREI2OUYxOTAwODlCNjY5IC8qIEpTRE9N
QXBwbGljYXRpb25DYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0I3MEQ2MzA5RUIwQzdD
MDA5RDg0NjggLyogSlNET01CaW5kaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNjBEN0Mw
MEQyOUE0NjMwMEI5OTE4RiAvKiBKU0RPTUNvcmVFeGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJNDBFQ0FFODExNkI4QjY4QTAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODk4Nzg1QTQxMjJDQTJBNzAwM0FBQkRBIC8qIEpTRE9NRmlsZVN5c3RlbS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTNDNDgzNjEyNDk1NDcyMDAyQjNEODYgLyogSlNET01G
aWxlU3lzdGVtU3luYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRTA4ODhENDExNDg4NDhBMDBB
RjQyNjUgLyogSlNET01Gb3JtRGF0YS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4MzgwLDYgKzI4
NDIzLDcgQEAKIAkJCQk0OUVFQ0YwMjEwNTA3MEM0MDAwOTlGQUIgLyogSlNGbG9hdDMyQXJyYXku
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkVCQzVFQUYxMzhCNTBGMjAwQTBDRjhBIC8qIEpTRmxv
YXQ2NEFycmF5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI2RDlEMjdDMTRFQUMwODYwMDkwRDc1
RSAvKiBKU0ZvY3VzRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDA5RUJEQkExNkI3RjA0
NTAwQ0JBM0ZDIC8qIEpTRm9udExvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREExNUVB
QjEyQjAzRUUxMDAzQTU4M0EgLyogSlNHYWluTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
RTgwREE2MzBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlGRTgwRDdBQjBFOUMxRUQyMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbkN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRGljdGlvbmFyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25h
cnkuY3BwCmluZGV4IGY5ODA0ZGY2YTIxYWQ1YzJlOTFlZjAxMTAyMTVhZjA2NGU3YzliNmIuLmY4
ZTU4Y2I0N2VlN2ZjZmI0MDFiOGEwN2ExYTgxODljMGEzNzZkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiAjaW5j
bHVkZSAiQXJyYXlWYWx1ZS5oIgogI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJK
U0NTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIkpTRE9NRXJyb3IuaCIKICNpbmNsdWRlICJK
U0RPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJKU01l
c3NhZ2VQb3J0Q3VzdG9tLmgiCkBAIC0zNSw2ICszNyw3IEBACiAjaW5jbHVkZSAiSlNTdG9yYWdl
LmgiCiAjaW5jbHVkZSAiSlNUcmFja0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTVWludDhBcnJheS5o
IgorI2luY2x1ZGUgIkpTVm9pZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIK
ICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgpAQCAtMjI2LDYgKzIyOSwyNiBAQCB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVl
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8TWVkaQogfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKK3ZvaWQgSlNEaWN0aW9uYXJ5Ojpj
b252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxD
U1NGb250RmFjZVJ1bGU+JiByZXN1bHQpCit7CisgICAgcmVzdWx0ID0gdG9DU1NGb250RmFjZVJ1
bGUodmFsdWUpOworfQorCit2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8RE9NRXJyb3I+JiByZXN1bHQpCit7
CisgICAgcmVzdWx0ID0gdG9ET01FcnJvcih2YWx1ZSk7Cit9CisKK3ZvaWQgSlNEaWN0aW9uYXJ5
Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSB2YWx1ZSwg
UmVmUHRyPFZvaWRDYWxsYmFjaz4mIHJlc3VsdCkKK3sKKyAgICBpZiAoIXZhbHVlLmlzRnVuY3Rp
b24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVzdWx0ID0gSlNWb2lkQ2FsbGJhY2s6OmNy
ZWF0ZShhc09iamVjdCh2YWx1ZSksIGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKSkpOworfQorI2VuZGlmCisKIGJvb2wgSlNEaWN0aW9uYXJ5Ojpn
ZXRXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIFN0
cmluZyYgcmVzdWx0KSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbGlkKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaAppbmRleCA3MjkyNzY0YjFmMzNkMThlYTRi
YWUyYWI0YWM3ZDkyYTQwOWMxNjA5Li4yYmUxMGVlN2QwMjBjNTg5OTk2NWVlZTVhNmUzMzU1M2Y2
MjI3YzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25h
cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaApAQCAt
MzYsNyArMzYsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcnJheVZhbHVlOwor
Y2xhc3MgQ1NTRm9udEZhY2VSdWxlOwogY2xhc3MgRGljdGlvbmFyeTsKK2NsYXNzIERPTUVycm9y
OwogY2xhc3MgRE9NV2luZG93OwogY2xhc3MgRXZlbnRUYXJnZXQ7CiBjbGFzcyBNZWRpYUtleUVy
cm9yOwpAQCAtNDYsNiArNDgsNyBAQCBjbGFzcyBTY3JpcHRWYWx1ZTsKIGNsYXNzIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFN0b3JhZ2U7CiBjbGFzcyBUcmFja0Jhc2U7CitjbGFzcyBW
b2lkQ2FsbGJhY2s7CiAKIGNsYXNzIEpTRGljdGlvbmFyeSB7CiBwdWJsaWM6CkBAIC0xMTksNiAr
MTIyLDExIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBzdGF0aWMg
dm9pZCBjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIFJlZlB0cjxN
ZWRpYVN0cmVhbT4mIHJlc3VsdCk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5U
UykKKyAgICBzdGF0aWMgdm9pZCBjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
VmFsdWUsIFJlZlB0cjxDU1NGb250RmFjZVJ1bGU+JiByZXN1bHQpOworICAgIHN0YXRpYyB2b2lk
IGNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgUmVmUHRyPERPTUVy
cm9yPiYgcmVzdWx0KTsKKyAgICBzdGF0aWMgdm9pZCBjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTVmFsdWUsIFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiByZXN1bHQpOworI2VuZGlm
CiAKICAgICBKU0M6OkV4ZWNTdGF0ZSogbV9leGVjOwogICAgIEpTQzo6U3Ryb25nPEpTQzo6SlNP
YmplY3Q+IG1faW5pdGlhbGl6ZXJPYmplY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9EaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0Rp
Y3Rpb25hcnkuY3BwCmluZGV4IGIxODYyZmJiMjBjODZiNTZjY2MxYWNlMjk5OTc1NjcwNjJhNTJm
MGIuLmIzYjcwMjJhMDkzNTc0MDg2YjhjYWZlM2I5YjQ5OTVlZjlmNDQxZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuY3BwCkBAIC02NCw2ICs2NCwxMiBAQAogI2lu
Y2x1ZGUgIlY4TWVkaWFTdHJlYW0uaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKEZPTlRfTE9BRF9F
VkVOVFMpCisjaW5jbHVkZSAiVjhDU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJWOERPTUVy
cm9yLmgiCisjaW5jbHVkZSAiVjhWb2lkQ2FsbGJhY2suaCIKKyNlbmRpZgorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIERpY3Rpb25hcnk6OkRpY3Rpb25hcnkoKQpAQCAtNDk4LDYgKzUwNCw1NSBA
QCBib29sIERpY3Rpb25hcnk6OmdldChjb25zdCBTdHJpbmcmIGtleSwgQXJyYXlWYWx1ZSYgdmFs
dWUpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VW
RU5UUykKK2Jvb2wgRGljdGlvbmFyeTo6Z2V0KGNvbnN0IFN0cmluZyYga2V5LCBSZWZQdHI8Q1NT
Rm9udEZhY2VSdWxlPiYgdmFsdWUpIGNvbnN0Cit7CisgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4g
djhWYWx1ZTsKKyAgICBpZiAoIWdldEtleShrZXksIHY4VmFsdWUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBDU1NGb250RmFjZVJ1bGUqIHNvdXJjZSA9IDA7CisgICAgaWYgKHY4VmFs
dWUtPklzT2JqZWN0KCkpIHsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVy
ID0gdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2OFZhbHVlKTsKKyAgICAgICAgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiBmb250ZmFjZSA9IHdyYXBwZXItPkZpbmRJbnN0YW5jZUluUHJvdG90
eXBlQ2hhaW4oVjhDU1NGb250RmFjZVJ1bGU6OkdldFRlbXBsYXRlKG1faXNvbGF0ZSwgd29ybGRU
eXBlKG1faXNvbGF0ZSkpKTsKKyAgICAgICAgaWYgKCFmb250ZmFjZS5Jc0VtcHR5KCkpCisgICAg
ICAgICAgICBzb3VyY2UgPSBWOENTU0ZvbnRGYWNlUnVsZTo6dG9OYXRpdmUoZm9udGZhY2UpOwor
ICAgIH0KKyAgICB2YWx1ZSA9IHNvdXJjZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBE
aWN0aW9uYXJ5OjpnZXQoY29uc3QgU3RyaW5nJiBrZXksIFJlZlB0cjxET01FcnJvcj4mIHZhbHVl
KSBjb25zdAoreworICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHY4VmFsdWU7CisgICAgaWYgKCFn
ZXRLZXkoa2V5LCB2OFZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRE9NRXJy
b3IqIGVycm9yID0gMDsKKyAgICBpZiAodjhWYWx1ZS0+SXNPYmplY3QoKSkgeworICAgICAgICB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpD
YXN0KHY4VmFsdWUpOworICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGRvbUVycm9yID0g
d3JhcHBlci0+RmluZEluc3RhbmNlSW5Qcm90b3R5cGVDaGFpbihWOERPTUVycm9yOjpHZXRUZW1w
bGF0ZShtX2lzb2xhdGUsIHdvcmxkVHlwZShtX2lzb2xhdGUpKSk7CisgICAgICAgIGlmICghZG9t
RXJyb3IuSXNFbXB0eSgpKQorICAgICAgICAgICAgZXJyb3IgPSBWOERPTUVycm9yOjp0b05hdGl2
ZShkb21FcnJvcik7CisgICAgfQorICAgIHZhbHVlID0gZXJyb3I7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK2Jvb2wgRGljdGlvbmFyeTo6Z2V0KGNvbnN0IFN0cmluZyYga2V5LCBSZWZQdHI8Vm9p
ZENhbGxiYWNrPiYgdmFsdWUpIGNvbnN0Cit7CisgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdjhW
YWx1ZTsKKyAgICBpZiAoIWdldEtleShrZXksIHY4VmFsdWUpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBpZiAoIXY4VmFsdWUtPklzRnVuY3Rpb24oKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgdmFsdWUgPSBWOFZvaWRDYWxsYmFjazo6Y3JlYXRlKHY4VmFsdWUsIGdldFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYKKwog
Ym9vbCBEaWN0aW9uYXJ5OjpnZXRPd25Qcm9wZXJ0aWVzQXNTdHJpbmdIYXNoTWFwKEhhc2hNYXA8
U3RyaW5nLCBTdHJpbmc+JiBoYXNoTWFwKSBjb25zdAogewogICAgIGlmICghaXNPYmplY3QoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuaAppbmRleCA3NjUwMjk1YzMyMWZi
NGZkODU2ZTQ3NGJiOWJhZmQ5MzNkMGQ3N2Y2Li5kNGY2NDcyODFmZjY2NWQ4MjE0NWQ3ZjFmOTAy
YWFjZWJiMGVjMDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EaWN0
aW9uYXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFyeS5oCkBA
IC0zOSw2ICszOSw4IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFycmF5VmFsdWU7
CitjbGFzcyBDU1NGb250RmFjZVJ1bGU7CitjbGFzcyBET01FcnJvcjsKIGNsYXNzIERPTVdpbmRv
dzsKIGNsYXNzIElEQktleVJhbmdlOwogY2xhc3MgTWVkaWFLZXlFcnJvcjsKQEAgLTQ4LDYgKzUw
LDcgQEAgY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ7CiBjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3Q7CiBjbGFzcyBTdG9yYWdlOwogY2xhc3MgVHJhY2tCYXNlOworY2xhc3Mg
Vm9pZENhbGxiYWNrOwogCiBjbGFzcyBEaWN0aW9uYXJ5IHsKIHB1YmxpYzoKQEAgLTkzLDYgKzk2
LDExIEBAIHB1YmxpYzoKICAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBEaWN0aW9uYXJ5Jikg
Y29uc3Q7CiAgICAgYm9vbCBnZXQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKSBjb25z
dDsKICAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBBcnJheVZhbHVlJikgY29uc3Q7CisjaWYg
RU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisgICAgYm9vbCBnZXQoY29uc3QgU3RyaW5nJiwgUmVm
UHRyPENTU0ZvbnRGYWNlUnVsZT4mKSBjb25zdDsKKyAgICBib29sIGdldChjb25zdCBTdHJpbmcm
LCBSZWZQdHI8RE9NRXJyb3I+JikgY29uc3Q7CisgICAgYm9vbCBnZXQoY29uc3QgU3RyaW5nJiwg
UmVmUHRyPFZvaWRDYWxsYmFjaz4mKSBjb25zdDsKKyNlbmRpZgogCiAgICAgYm9vbCBnZXRPd25Q
cm9wZXJ0aWVzQXNTdHJpbmdIYXNoTWFwKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JikgY29uc3Q7
CiAgICAgYm9vbCBnZXRPd25Qcm9wZXJ0eU5hbWVzKFZlY3RvcjxTdHJpbmc+JikgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcAppbmRleCAyNzdmYmQ5Mjg5ZjZkNzc4MWY4MWFjMzQ5
NDllNzJmMjg2NDMwNWFkLi45OWFjNDEyZWRkZDBjZWFhZjQyMDA4NTUyNDkzYzAyYTViMDUwMzI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKQEAgLTI5LDcgKzI5LDEwIEBACiAjaW5j
bHVkZSAiQ1NTRm9udEZhY2VTb3VyY2UuaCIKICNpbmNsdWRlICJDU1NGb250U2VsZWN0b3IuaCIK
ICNpbmNsdWRlICJDU1NTZWdtZW50ZWRGb250RmFjZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiRm9udExvYWRlci5oIgor
I2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTaW1wbGVGb250
RGF0YS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04MSwxNCArODQsMjggQEAgdm9pZCBD
U1NGb250RmFjZTo6Zm9udExvYWRlZChDU1NGb250RmFjZVNvdXJjZSogc291cmNlKQogICAgIGlm
IChtX3NlZ21lbnRlZEZvbnRGYWNlcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IEhhc2hTZXQ8Q1NTU2VnbWVudGVkRm9udEZhY2UqPjo6aXRlcmF0b3IgZW5kID0gbV9zZWdtZW50
ZWRGb250RmFjZXMuZW5kKCk7Ci0gICAgZm9yIChIYXNoU2V0PENTU1NlZ21lbnRlZEZvbnRGYWNl
Kj46Oml0ZXJhdG9yIGl0ID0gbV9zZWdtZW50ZWRGb250RmFjZXMuYmVnaW4oKTsgaXQgIT0gZW5k
OyArK2l0KQotICAgICAgICAoKml0KS0+Zm9udExvYWRlZCh0aGlzKTsKLQogICAgIC8vIFVzZSBv
bmUgb2YgdGhlIENTU1NlZ21lbnRlZEZvbnRGYWNlcycgZm9udCBzZWxlY3Rvci4gVGhleSBhbGwg
aGF2ZQogICAgIC8vIHRoZSBzYW1lIGZvbnQgc2VsZWN0b3IsIHNvIGl0J3Mgd2FzdGVmdWwgdG8g
c3RvcmUgaXQgaW4gdGhlIENTU0ZvbnRGYWNlLgogICAgIENTU0ZvbnRTZWxlY3RvciogZm9udFNl
bGVjdG9yID0gKCptX3NlZ21lbnRlZEZvbnRGYWNlcy5iZWdpbigpKS0+Zm9udFNlbGVjdG9yKCk7
CiAgICAgZm9udFNlbGVjdG9yLT5mb250TG9hZGVkKCk7CisKKyNpZiBFTkFCTEUoRk9OVF9MT0FE
X0VWRU5UUykKKyAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6Zm9udExvYWRFdmVudHNF
bmFibGVkKCkgJiYgbV9sb2FkU3RhdGUgPT0gTG9hZGluZykgeworICAgICAgICBpZiAoc291cmNl
LT5lbnN1cmVGb250RGF0YSgpKQorICAgICAgICAgICAgbm90aWZ5Rm9udExvYWRlcihMb2FkZWQp
OworICAgICAgICBlbHNlIGlmICghaXNWYWxpZCgpKQorICAgICAgICAgICAgbm90aWZ5Rm9udExv
YWRlcihFcnJvcik7CisgICAgfQorI2VuZGlmCisKKyAgICBIYXNoU2V0PENTU1NlZ21lbnRlZEZv
bnRGYWNlKj46Oml0ZXJhdG9yIGVuZCA9IG1fc2VnbWVudGVkRm9udEZhY2VzLmVuZCgpOworICAg
IGZvciAoSGFzaFNldDxDU1NTZWdtZW50ZWRGb250RmFjZSo+OjppdGVyYXRvciBpdCA9IG1fc2Vn
bWVudGVkRm9udEZhY2VzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgKCppdCkt
PmZvbnRMb2FkZWQodGhpcyk7CisKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKKyAgICBp
ZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6Zm9udExvYWRFdmVudHNFbmFibGVkKCkpCisgICAg
ICAgIG5vdGlmeUxvYWRpbmdEb25lKCk7CisjZW5kaWYKIH0KIAogUGFzc1JlZlB0cjxTaW1wbGVG
b250RGF0YT4gQ1NTRm9udEZhY2U6OmdldEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGlj
KQpAQCAtMTAwLDE3ICsxMTcsNjYgQEAgUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gQ1NTRm9u
dEZhY2U6OmdldEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udEQKICAgICBBU1NF
UlQoIW1fc2VnbWVudGVkRm9udEZhY2VzLmlzRW1wdHkoKSk7CiAgICAgQ1NTRm9udFNlbGVjdG9y
KiBmb250U2VsZWN0b3IgPSAoKm1fc2VnbWVudGVkRm9udEZhY2VzLmJlZ2luKCkpLT5mb250U2Vs
ZWN0b3IoKTsKIAorI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQorICAgIGlmIChSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpmb250TG9hZEV2ZW50c0VuYWJsZWQoKSAmJiBtX2xvYWRTdGF0ZSA9
PSBOb3RMb2FkZWQpCisgICAgICAgIG5vdGlmeUZvbnRMb2FkZXIoTG9hZGluZyk7CisjZW5kaWYK
KwogICAgIHNpemVfdCBzaXplID0gbV9zb3VyY2VzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICBpZiAoUmVmUHRyPFNpbXBsZUZvbnREYXRh
PiByZXN1bHQgPSBtX3NvdXJjZXNbaV0tPmdldEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgc3lu
dGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250U2VsZWN0b3IpKSB7CiAgICAgICAgICAg
ICBtX2FjdGl2ZVNvdXJjZSA9IG1fc291cmNlc1tpXS5nZXQoKTsKKyNpZiBFTkFCTEUoRk9OVF9M
T0FEX0VWRU5UUykKKyAgICAgICAgICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpmb250
TG9hZEV2ZW50c0VuYWJsZWQoKSAmJiBtX2xvYWRTdGF0ZSA9PSBMb2FkaW5nICYmIG1fc291cmNl
c1tpXS0+aXNMb2FkZWQoKSkgeworICAgICAgICAgICAgICAgIG5vdGlmeUZvbnRMb2FkZXIoTG9h
ZGVkKTsKKyAgICAgICAgICAgICAgICBub3RpZnlMb2FkaW5nRG9uZSgpOworICAgICAgICAgICAg
fQorI2VuZGlmCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKICAgICAgICAg
fQogICAgIH0KIAorI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQorICAgIGlmIChSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpmb250TG9hZEV2ZW50c0VuYWJsZWQoKSAmJiBtX2xvYWRTdGF0ZSA9
PSBMb2FkaW5nKSB7CisgICAgICAgIG5vdGlmeUZvbnRMb2FkZXIoRXJyb3IpOworICAgICAgICBu
b3RpZnlMb2FkaW5nRG9uZSgpOworICAgIH0KKyNlbmRpZgogICAgIHJldHVybiAwOwogfQogCisj
aWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCit2b2lkIENTU0ZvbnRGYWNlOjpub3RpZnlGb250
TG9hZGVyKExvYWRTdGF0ZSBuZXdTdGF0ZSkKK3sKKyAgICBtX2xvYWRTdGF0ZSA9IG5ld1N0YXRl
OworCisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gKCptX3NlZ21lbnRlZEZvbnRGYWNlcy5iZWdp
bigpKS0+Zm9udFNlbGVjdG9yKCktPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgc3dpdGNoIChuZXdTdGF0ZSkgeworICAgIGNhc2UgTG9hZGlu
ZzoKKyAgICAgICAgZG9jdW1lbnQtPmZvbnRsb2FkZXIoKS0+YmVnaW5Gb250TG9hZGluZyhtX3J1
bGUuZ2V0KCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWRlZDoKKyAgICAgICAgZG9j
dW1lbnQtPmZvbnRsb2FkZXIoKS0+Zm9udExvYWRlZChtX3J1bGUuZ2V0KCkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEVycm9yOgorICAgICAgICBkb2N1bWVudC0+Zm9udGxvYWRlcigpLT5s
b2FkRXJyb3IobV9ydWxlLmdldCgpLCBtX2FjdGl2ZVNvdXJjZSk7CisgICAgICAgIGJyZWFrOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordm9pZCBDU1NGb250RmFj
ZTo6bm90aWZ5TG9hZGluZ0RvbmUoKQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9ICgqbV9z
ZWdtZW50ZWRGb250RmFjZXMuYmVnaW4oKSktPmZvbnRTZWxlY3RvcigpLT5kb2N1bWVudCgpOwor
ICAgIGlmIChkb2N1bWVudCkKKyAgICAgICAgZG9jdW1lbnQtPmZvbnRsb2FkZXIoKS0+bG9hZGlu
Z0RvbmUoKTsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKFNWR19GT05UUykKIGJvb2wgQ1NTRm9u
dEZhY2U6Omhhc1NWR0ZvbnRGYWNlU291cmNlKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
YWNlLmgKaW5kZXggZTNmNjQ4MTA3YzYxN2U4YWYyMzU1ZDhmMTE0MTBhMWE3NzE4NzRlNy4uNGVk
OTQ2Zjk3OThlYzA0NzI4Mjk1ZjlhMGY4MjdlYTYzMjMyOWU2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Zv
bnRGYWNlLmgKQEAgLTI2LDYgKzI2LDggQEAKICNpZm5kZWYgQ1NTRm9udEZhY2VfaAogI2RlZmlu
ZSBDU1NGb250RmFjZV9oCiAKKyNpbmNsdWRlICJDU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRl
ICJDU1NGb250RmFjZVNvdXJjZS5oIgogI2luY2x1ZGUgIkZvbnRUcmFpdHNNYXNrLmgiCiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtMzYsMTQg
KzM4LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ1NTRm9udEZhY2VTb3Vy
Y2U7CiBjbGFzcyBDU1NTZWdtZW50ZWRGb250RmFjZTsKIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsK
IGNsYXNzIFNpbXBsZUZvbnREYXRhOwogCiBjbGFzcyBDU1NGb250RmFjZSA6IHB1YmxpYyBSZWZD
b3VudGVkPENTU0ZvbnRGYWNlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NT
Rm9udEZhY2U+IGNyZWF0ZShGb250VHJhaXRzTWFzayB0cmFpdHNNYXNrLCBib29sIGlzTG9jYWxG
YWxsYmFjayA9IGZhbHNlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTRm9udEZhY2UodHJhaXRz
TWFzaywgaXNMb2NhbEZhbGxiYWNrKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NGb250
RmFjZT4gY3JlYXRlKEZvbnRUcmFpdHNNYXNrIHRyYWl0c01hc2ssIFBhc3NSZWZQdHI8Q1NTRm9u
dEZhY2VSdWxlPiBydWxlLCBib29sIGlzTG9jYWxGYWxsYmFjayA9IGZhbHNlKSB7IHJldHVybiBh
ZG9wdFJlZihuZXcgQ1NTRm9udEZhY2UodHJhaXRzTWFzaywgcnVsZSwgaXNMb2NhbEZhbGxiYWNr
KSk7IH0KIAogICAgIEZvbnRUcmFpdHNNYXNrIHRyYWl0c01hc2soKSBjb25zdCB7IHJldHVybiBt
X3RyYWl0c01hc2s7IH0KIApAQCAtODUsMTIgKzg2LDIyIEBAIHB1YmxpYzoKICAgICBib29sIGhh
c1NWR0ZvbnRGYWNlU291cmNlKCkgY29uc3Q7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGT05UX0xP
QURfRVZFTlRTKQorICAgIGVudW0gTG9hZFN0YXRlIHsgTm90TG9hZGVkLCBMb2FkaW5nLCBMb2Fk
ZWQsIEVycm9yIH07CisgICAgTG9hZFN0YXRlIGxvYWRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bG9hZFN0YXRlOyB9CisjZW5kaWYKKwogcHJpdmF0ZToKLSAgICBDU1NGb250RmFjZShGb250VHJh
aXRzTWFzayB0cmFpdHNNYXNrLCBib29sIGlzTG9jYWxGYWxsYmFjaykKKyAgICBDU1NGb250RmFj
ZShGb250VHJhaXRzTWFzayB0cmFpdHNNYXNrLCBQYXNzUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4g
cnVsZSwgYm9vbCBpc0xvY2FsRmFsbGJhY2spCiAgICAgICAgIDogbV90cmFpdHNNYXNrKHRyYWl0
c01hc2spCiAgICAgICAgICwgbV9hY3RpdmVTb3VyY2UoMCkKICAgICAgICAgLCBtX2lzTG9jYWxG
YWxsYmFjayhpc0xvY2FsRmFsbGJhY2spCisjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisg
ICAgICAgICwgbV9sb2FkU3RhdGUoaXNMb2NhbEZhbGxiYWNrID8gTG9hZGVkIDogTm90TG9hZGVk
KQorICAgICAgICAsIG1fcnVsZShydWxlKQorI2VuZGlmCiAgICAgeworICAgICAgICBVTlVTRURf
UEFSQU0ocnVsZSk7CiAgICAgfQogCiAgICAgRm9udFRyYWl0c01hc2sgbV90cmFpdHNNYXNrOwpA
QCAtOTksNiArMTEwLDEyIEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPE93blB0cjxDU1NGb250RmFj
ZVNvdXJjZT4gPiBtX3NvdXJjZXM7CiAgICAgQ1NTRm9udEZhY2VTb3VyY2UqIG1fYWN0aXZlU291
cmNlOwogICAgIGJvb2wgbV9pc0xvY2FsRmFsbGJhY2s7CisjaWYgRU5BQkxFKEZPTlRfTE9BRF9F
VkVOVFMpCisgICAgTG9hZFN0YXRlIG1fbG9hZFN0YXRlOworICAgIFJlZlB0cjxDU1NGb250RmFj
ZVJ1bGU+IG1fcnVsZTsKKyAgICB2b2lkIG5vdGlmeUZvbnRMb2FkZXIoTG9hZFN0YXRlKTsKKyAg
ICB2b2lkIG5vdGlmeUxvYWRpbmdEb25lKCk7CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZUxvYWRFdmVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkMWI1M2IyZTFl
MmM5OTMxYTI3ZWZlYmM2NDczZjE0ZTM4ZmRhOWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ1NTRm9udEZhY2VMb2FkRXZlbnQuaCIKKworI2lm
IEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0NTU0Zv
bnRGYWNlTG9hZEV2ZW50OjpDU1NGb250RmFjZUxvYWRFdmVudCgpCit7Cit9CisKK0NTU0ZvbnRG
YWNlTG9hZEV2ZW50OjpDU1NGb250RmFjZUxvYWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIFBhc3NSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiBmb250ZmFjZSwgUGFzc1JlZlB0cjxET01F
cnJvcj4gZXJyb3IpCisgICAgOiBFdmVudCh0eXBlLCBmYWxzZSwgZmFsc2UpCisgICAgLCBtX2Zv
bnRmYWNlKGZvbnRmYWNlKQorICAgICwgbV9lcnJvcihlcnJvcikKK3sKK30KKworQ1NTRm9udEZh
Y2VMb2FkRXZlbnQ6OkNTU0ZvbnRGYWNlTG9hZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgY29uc3QgQ1NTRm9udEZhY2VMb2FkRXZlbnRJbml0JiBpbml0aWFsaXplcikKKyAgICA6IEV2
ZW50KHR5cGUsIGluaXRpYWxpemVyKQorICAgICwgbV9mb250ZmFjZShpbml0aWFsaXplci5mb250
ZmFjZSkKKyAgICAsIG1fZXJyb3IoaW5pdGlhbGl6ZXIuZXJyb3IpCit7Cit9CisKK0NTU0ZvbnRG
YWNlTG9hZEV2ZW50Ojp+Q1NTRm9udEZhY2VMb2FkRXZlbnQoKQoreworfQorCitjb25zdCBBdG9t
aWNTdHJpbmcmIENTU0ZvbnRGYWNlTG9hZEV2ZW50OjppbnRlcmZhY2VOYW1lKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZvckNTU0ZvbnRGYWNlTG9hZEV2ZW50
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRk9OVF9M
T0FEX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZUxv
YWRFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDA4NDIzZmZkNDdjYjg4MTQ1NGY2MzI3MDBlN2M4YjgyOTJmZTJiMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZUxvYWRFdmVudC5oCkBA
IC0wLDAgKzEsOTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisKKyNpZm5kZWYgQ1NT
Rm9udEZhY2VMb2FkRXZlbnRfaAorI2RlZmluZSBDU1NGb250RmFjZUxvYWRFdmVudF9oCisKKyNp
bmNsdWRlICJDU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgorI2luY2x1
ZGUgIkRPTUVycm9yLmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IENTU0ZvbnRGYWNlTG9hZEV2ZW50SW5p
dCA6IHB1YmxpYyBFdmVudEluaXQgeworICAgIFJlZlB0cjxDU1NGb250RmFjZVJ1bGU+IGZvbnRm
YWNlOworICAgIFJlZlB0cjxET01FcnJvcj4gZXJyb3I7Cit9OworCitjbGFzcyBDU1NGb250RmFj
ZUxvYWRFdmVudCA6IHB1YmxpYyBFdmVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8Q1NTRm9udEZhY2VMb2FkRXZlbnQ+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWY8Q1NTRm9udEZhY2VMb2FkRXZlbnQ+KG5ldyBDU1NGb250RmFjZUxvYWRFdmVudCgp
KTsKKyAgICB9CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NGb250RmFjZUxvYWRFdmVudD4g
Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgQ1NTRm9udEZhY2VMb2FkRXZl
bnRJbml0JiBpbml0aWFsaXplcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZjxDU1NG
b250RmFjZUxvYWRFdmVudD4obmV3IENTU0ZvbnRGYWNlTG9hZEV2ZW50KHR5cGUsIGluaXRpYWxp
emVyKSk7CisgICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTRm9udEZhY2VMb2FkRXZl
bnQ+IGNyZWF0ZUZvckZvbnRGYWNlUnVsZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIFBhc3NS
ZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiBydWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmPENTU0ZvbnRGYWNlTG9hZEV2ZW50PihuZXcgQ1NTRm9udEZhY2VMb2FkRXZlbnQodHlwZSwg
cnVsZSwgMCkpOworICAgIH0KKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0ZvbnRGYWNlTG9h
ZEV2ZW50PiBjcmVhdGVGb3JFcnJvcihQYXNzUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4gcnVsZSwg
UGFzc1JlZlB0cjxET01FcnJvcj4gZXJyb3IpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWY8Q1NTRm9udEZhY2VMb2FkRXZlbnQ+KG5ldyBDU1NGb250RmFjZUxvYWRFdmVudChldmVudE5h
bWVzKCkuZXJyb3JFdmVudCwgcnVsZSwgZXJyb3IpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5D
U1NGb250RmFjZUxvYWRFdmVudCgpOworCisgICAgQ1NTRm9udEZhY2VSdWxlKiBmb250ZmFjZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZm9udGZhY2UuZ2V0KCk7IH0KKyAgICBET01FcnJvciogZXJyb3Io
KSBjb25zdCB7IHJldHVybiBtX2Vycm9yLmdldCgpOyB9CisKKyAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0OworCitwcml2YXRlOgorICAgIENTU0Zv
bnRGYWNlTG9hZEV2ZW50KCk7CisgICAgQ1NTRm9udEZhY2VMb2FkRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiwgUGFzc1JlZlB0cjxDU1NGb250RmFjZVJ1bGU+LCBQYXNzUmVmUHRyPERPTUVycm9y
Pik7CisgICAgQ1NTRm9udEZhY2VMb2FkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3Qg
Q1NTRm9udEZhY2VMb2FkRXZlbnRJbml0Jik7CisKKyAgICBSZWZQdHI8Q1NTRm9udEZhY2VSdWxl
PiBtX2ZvbnRmYWNlOworICAgIFJlZlB0cjxET01FcnJvcj4gbV9lcnJvcjsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIENTU0ZvbnRGYWNlTG9hZEV2ZW50X2gKKyNl
bmRpZiAvLyBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmFjZUxvYWRFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udEZhY2VMb2FkRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyZGNlZTA4YTUwMTZjMDNkNzc4NmMx
Y2Q0Y2RkMTc1YjVjODY1ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9u
YWw9Rk9OVF9MT0FEX0VWRU5UUywKKyAgICBWOEVuYWJsZWRBdFJ1bnRpbWU9Zm9udExvYWRFdmVu
dHMsCisgICAgSlNOb1N0YXRpY1RhYmxlcywKKyAgICBDb25zdHJ1Y3RvclRlbXBsYXRlPUV2ZW50
CitdIGludGVyZmFjZSBDU1NGb250RmFjZUxvYWRFdmVudCA6IEV2ZW50IHsKKyAgICByZWFkb25s
eSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSBDU1NGb250RmFjZVJ1
bGUgZm9udGZhY2U7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRD
b25zdHJ1Y3Rvcl0gRE9NRXJyb3IgZXJyb3I7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZh
Y2VSdWxlLmlkbAppbmRleCBmMTM0OTdjNDM3ZjZhZWUxZDY2MjcwNjNmMzA1NGNiYjZhOTIxYzBi
Li5iYTk3YTdiN2Y0ODI2MGI2YzMzMTc1MTQxMzNkM2Q2NWMxMTRmYWNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbApAQCAtMTksNyArMTksMTAgQEAKICAqLwogCiAvLyBJ
bnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotaW50ZXJmYWNlIENTU0ZvbnRGYWNlUnVsZSA6IENT
U1J1bGUgeworaW50ZXJmYWNlIFsKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKKyAgICBKU0dl
bmVyYXRlVG9OYXRpdmVPYmplY3QsCitdIENTU0ZvbnRGYWNlUnVsZSA6IENTU1J1bGUgewogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uIHN0eWxlOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAKaW5kZXggYTU5NTIxN2YzNzc0OTU2
MWQzMTYyMDMyNmVhZjU1Zjg1MjI2ZTg1OC4uODMzNGIxODM2OGE2YWIyMDBhNjQ0NDc0Y2IxOTRi
YzZlMGIxMmYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCkBA
IC0yMDUsNCArMjA1LDI0IEBAIGJvb2wgQ1NTRm9udEZhY2VTb3VyY2U6OmlzU1ZHRm9udEZhY2VT
b3VyY2UoKSBjb25zdAogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykK
K2Jvb2wgQ1NTRm9udEZhY2VTb3VyY2U6OmlzRGVjb2RlRXJyb3IoKSBjb25zdAoreworICAgIGlm
IChtX2ZvbnQpCisgICAgICAgIHJldHVybiBtX2ZvbnQtPnN0YXR1cygpID09IENhY2hlZFJlc291
cmNlOjpEZWNvZGVFcnJvcjsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQ1NTRm9udEZh
Y2VTb3VyY2U6OmVuc3VyZUZvbnREYXRhKCkKK3sKKyAgICBpZiAoIW1fZm9udCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworI2lmIEVOQUJMRShTVkdfRk9OVFMpCisgICAgaWYgKG1faGFzRXh0ZXJu
YWxTVkdGb250KQorICAgICAgICByZXR1cm4gbV9mb250LT5lbnN1cmVTVkdGb250RGF0YSgpOwor
I2VuZGlmCisgICAgcmV0dXJuIG1fZm9udC0+ZW5zdXJlQ3VzdG9tRm9udERhdGEoKTsKK30KKyNl
bmRpZgorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3Vy
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5oCmluZGV4IDA0ODhk
MTBkMzI2MDBlNDdkZWRkMGY3MjhjMDAzNGNhMDRhZGYxNWMuLmYwOTA2OTVjMWQwZjY5ZGNkODRl
Y2Y5MmNiZDI1NWQ4MzRhYTM5ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250RmFjZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJj
ZS5oCkBAIC03MCw2ICs3MCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRIYXNFeHRlcm5hbFNW
R0ZvbnQoYm9vbCB2YWx1ZSkgeyBtX2hhc0V4dGVybmFsU1ZHRm9udCA9IHZhbHVlOyB9CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQorICAgIGJvb2wgaXNEZWNvZGVFcnJv
cigpIGNvbnN0OworICAgIGJvb2wgZW5zdXJlRm9udERhdGEoKTsKKyNlbmRpZgorCiBwcml2YXRl
OgogICAgIHZvaWQgc3RhcnRMb2FkaW5nVGltZXJGaXJlZChUaW1lcjxDU1NGb250RmFjZVNvdXJj
ZT4qKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcAppbmRleCA0NGM2MmE3
ZmJjNWM3YmNlNjBhNzZiNjJiMWIwNjM1MTg4ZjQwNTFlLi40YTMwMjA5MGZjMDU3NjIzNzY2ZDZj
MWQ1NTZhODZlYTI1N2JlNjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dFNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNw
cApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkRm9udC5oIgogI2luY2x1ZGUg
IkNTU0ZvbnRGYWNlLmgiCisjaW5jbHVkZSAiQ1NTRm9udEZhY2VSdWxlLmgiCiAjaW5jbHVkZSAi
Q1NTRm9udEZhY2VTb3VyY2UuaCIKICNpbmNsdWRlICJDU1NGb250RmFjZVNyY1ZhbHVlLmgiCiAj
aW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKQEAgLTIyNSw4ICsyMjYsMTUgQEAgdm9pZCBD
U1NGb250U2VsZWN0b3I6OmFkZEZvbnRGYWNlUnVsZShjb25zdCBTdHlsZVJ1bGVGb250RmFjZSog
Zm9udEZhY2VSdWxlKQogICAgICAgICAgICAgc291cmNlID0gYWRvcHRQdHIobmV3IENTU0ZvbnRG
YWNlU291cmNlKGl0ZW0tPnJlc291cmNlKCkpKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmICgh
Zm9udEZhY2UpCi0gICAgICAgICAgICBmb250RmFjZSA9IENTU0ZvbnRGYWNlOjpjcmVhdGUoc3Rh
dGljX2Nhc3Q8Rm9udFRyYWl0c01hc2s+KHRyYWl0c01hc2spKTsKKyAgICAgICAgaWYgKCFmb250
RmFjZSkgeworICAgICAgICAgICAgUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4gcnVsZTsKKyNpZiBF
TkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKKyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIENTU0Zv
bnRGYWNlUnVsZSBoYXMgbm8gcGFyZW50LgorICAgICAgICAgICAgaWYgKFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OmZvbnRMb2FkRXZlbnRzRW5hYmxlZCgpKQorICAgICAgICAgICAgICAgIHJ1bGUg
PSBzdGF0aWNfcG9pbnRlcl9jYXN0PENTU0ZvbnRGYWNlUnVsZT4oZm9udEZhY2VSdWxlLT5jcmVh
dGVDU1NPTVdyYXBwZXIoKSk7CisjZW5kaWYKKyAgICAgICAgICAgIGZvbnRGYWNlID0gQ1NTRm9u
dEZhY2U6OmNyZWF0ZShzdGF0aWNfY2FzdDxGb250VHJhaXRzTWFzaz4odHJhaXRzTWFzayksIHJ1
bGUpOworICAgICAgICB9CiAKICAgICAgICAgaWYgKHNvdXJjZSkgewogI2lmIEVOQUJMRShTVkdf
Rk9OVFMpCkBAIC0yOTgsNyArMzA2LDcgQEAgdm9pZCBDU1NGb250U2VsZWN0b3I6OmFkZEZvbnRG
YWNlUnVsZShjb25zdCBTdHlsZVJ1bGVGb250RmFjZSogZm9udEZhY2VSdWxlKQogICAgICAgICAg
ICAgICAgIE93blB0cjxWZWN0b3I8UmVmUHRyPENTU0ZvbnRGYWNlPiA+ID4gZmFtaWx5TG9jYWxs
eUluc3RhbGxlZEZhY2VzID0gYWRvcHRQdHIobmV3IFZlY3RvcjxSZWZQdHI8Q1NTRm9udEZhY2U+
ID4pOwogCiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bUxvY2Fs
bHlJbnN0YWxsZWRGYWNlczsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgIFJlZlB0cjxDU1NG
b250RmFjZT4gbG9jYWxseUluc3RhbGxlZEZvbnRGYWNlID0gQ1NTRm9udEZhY2U6OmNyZWF0ZShz
dGF0aWNfY2FzdDxGb250VHJhaXRzTWFzaz4obG9jYWxseUluc3RhbGxlZEZvbnRzVHJhaXRzTWFz
a3NbaV0pLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgUmVmUHRyPENTU0ZvbnRGYWNlPiBs
b2NhbGx5SW5zdGFsbGVkRm9udEZhY2UgPSBDU1NGb250RmFjZTo6Y3JlYXRlKHN0YXRpY19jYXN0
PEZvbnRUcmFpdHNNYXNrPihsb2NhbGx5SW5zdGFsbGVkRm9udHNUcmFpdHNNYXNrc1tpXSksIDAs
IHRydWUpOwogICAgICAgICAgICAgICAgICAgICBsb2NhbGx5SW5zdGFsbGVkRm9udEZhY2UtPmFk
ZFNvdXJjZShhZG9wdFB0cihuZXcgQ1NTRm9udEZhY2VTb3VyY2UoZmFtaWx5TmFtZSkpKTsKICAg
ICAgICAgICAgICAgICAgICAgQVNTRVJUKGxvY2FsbHlJbnN0YWxsZWRGb250RmFjZS0+aXNWYWxp
ZCgpKTsKICAgICAgICAgICAgICAgICAgICAgZmFtaWx5TG9jYWxseUluc3RhbGxlZEZhY2VzLT5h
cHBlbmQobG9jYWxseUluc3RhbGxlZEZvbnRGYWNlKTsKQEAgLTQ3NiwxMSArNDg0LDkgQEAgUGFz
c1JlZlB0cjxGb250RGF0YT4gQ1NTRm9udFNlbGVjdG9yOjpnZXRGb250RGF0YShjb25zdCBGb250
RGVzY3JpcHRpb24mIGZvbnREZXMKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgU3Ry
aW5nIGZhbWlseSA9IGZhbWlseU5hbWUuc3RyaW5nKCk7Ci0KLSAgICBWZWN0b3I8UmVmUHRyPENT
U0ZvbnRGYWNlPiA+KiBmYW1pbHlGb250RmFjZXMgPSBtX2ZvbnRGYWNlcy5nZXQoZmFtaWx5KTsK
KyAgICBDU1NTZWdtZW50ZWRGb250RmFjZSogZmFjZSA9IGdldEZvbnRGYWNlKGZvbnREZXNjcmlw
dGlvbiwgZmFtaWx5TmFtZSk7CiAgICAgLy8gSWYgbm8gZmFjZSB3YXMgZm91bmQsIHRoZW4gcmV0
dXJuIDAgYW5kIGxldCB0aGUgT1MgY29tZSB1cCB3aXRoIGl0cyBiZXN0IG1hdGNoIGZvciB0aGUg
bmFtZS4KLSAgICBpZiAoIWZhbWlseUZvbnRGYWNlcyB8fCBmYW1pbHlGb250RmFjZXMtPmlzRW1w
dHkoKSkgeworICAgIGlmICghZmFjZSkgewogICAgICAgICAvLyBJZiB3ZSB3ZXJlIGhhbmRlZCBh
IGdlbmVyaWMgZmFtaWx5LCBidXQgdGhlcmUgd2FzIG5vIG1hdGNoLCBnbyBhaGVhZCBhbmQgcmV0
dXJuIHRoZSBjb3JyZWN0IGZvbnQgYmFzZWQgb2ZmIG91cgogICAgICAgICAvLyBzZXR0aW5ncy4K
ICAgICAgICAgaWYgKGZvbnREZXNjcmlwdGlvbi5nZW5lcmljRmFtaWx5KCkgPT0gRm9udERlc2Ny
aXB0aW9uOjpTdGFuZGFyZEZhbWlseSAmJiAhZm9udERlc2NyaXB0aW9uLmlzU3BlY2lmaWVkRm9u
dCgpKQpAQCAtNDg4LDYgKzQ5NCwxOCBAQCBQYXNzUmVmUHRyPEZvbnREYXRhPiBDU1NGb250U2Vs
ZWN0b3I6OmdldEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlcwogICAgICAg
ICByZXR1cm4gZm9udERhdGFGb3JHZW5lcmljRmFtaWx5KG1fZG9jdW1lbnQsIGZvbnREZXNjcmlw
dGlvbiwgZmFtaWx5TmFtZSk7CiAgICAgfQogCisgICAgLy8gV2UgaGF2ZSBhIGZhY2UuIEFzayBp
dCBmb3IgYSBmb250IGRhdGEuIElmIGl0IGNhbm5vdCBwcm9kdWNlIG9uZSwgaXQgd2lsbCBmYWls
LCBhbmQgdGhlIE9TIHdpbGwgdGFrZSBvdmVyLgorICAgIHJldHVybiBmYWNlLT5nZXRGb250RGF0
YShmb250RGVzY3JpcHRpb24pOworfQorCitDU1NTZWdtZW50ZWRGb250RmFjZSogQ1NTRm9udFNl
bGVjdG9yOjpnZXRGb250RmFjZShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlv
biwgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHlOYW1lKQoreworICAgIFN0cmluZyBmYW1pbHkg
PSBmYW1pbHlOYW1lLnN0cmluZygpOworCisgICAgVmVjdG9yPFJlZlB0cjxDU1NGb250RmFjZT4g
PiogZmFtaWx5Rm9udEZhY2VzID0gbV9mb250RmFjZXMuZ2V0KGZhbWlseSk7CisgICAgaWYgKCFm
YW1pbHlGb250RmFjZXMgfHwgZmFtaWx5Rm9udEZhY2VzLT5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybiAwOworCiAgICAgT3duUHRyPEhhc2hNYXA8dW5zaWduZWQsIFJlZlB0cjxDU1NTZWdtZW50
ZWRGb250RmFjZT4gPiA+JiBzZWdtZW50ZWRGb250RmFjZUNhY2hlID0gbV9mb250cy5hZGQoZmFt
aWx5LCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CiAgICAgaWYgKCFzZWdtZW50ZWRGb250RmFj
ZUNhY2hlKQogICAgICAgICBzZWdtZW50ZWRGb250RmFjZUNhY2hlID0gYWRvcHRQdHIobmV3IEhh
c2hNYXA8dW5zaWduZWQsIFJlZlB0cjxDU1NTZWdtZW50ZWRGb250RmFjZT4gPik7CkBAIC01MzUs
OSArNTUzLDcgQEAgUGFzc1JlZlB0cjxGb250RGF0YT4gQ1NTRm9udFNlbGVjdG9yOjpnZXRGb250
RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXMKICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG51bUNhbmRpZGF0ZXM7ICsraSkKICAgICAgICAgICAgIGZhY2UtPmFwcGVu
ZEZvbnRGYWNlKGNhbmRpZGF0ZUZvbnRGYWNlc1tpXSk7CiAgICAgfQotCi0gICAgLy8gV2UgaGF2
ZSBhIGZhY2UuICBBc2sgaXQgZm9yIGEgZm9udCBkYXRhLiAgSWYgaXQgY2Fubm90IHByb2R1Y2Ug
b25lLCBpdCB3aWxsIGZhaWwsIGFuZCB0aGUgT1Mgd2lsbCB0YWtlIG92ZXIuCi0gICAgcmV0dXJu
IGZhY2UtPmdldEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbik7CisgICAgcmV0dXJuIGZhY2UuZ2V0
KCk7CiB9CiAKIHZvaWQgQ1NTRm9udFNlbGVjdG9yOjpjbGVhckRvY3VtZW50KCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250U2VsZWN0b3IuaAppbmRleCBkMDIxMDBjMzI2MjBmODg1NjE1MmQ5ZTAxNmVi
YmU4YTJiZDA4MDJmLi44ZmNlNGM0NGRjOTgwYjdjMzA4N2ZhM2Q5MzY0YTJjZGVlNThjMmFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5oCkBAIC01Niw2ICs1Niw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHVuc2lnbmVkIHZlcnNpb24oKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biBtX3ZlcnNpb247IH0KIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGb250RGF0YT4gZ2V0Rm9u
dERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbWljU3RyaW5nJik7CisgICAg
Q1NTU2VnbWVudGVkRm9udEZhY2UqIGdldEZvbnRGYWNlKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYs
IGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5TmFtZSk7CiAKICAgICB2b2lkIGNsZWFyRG9jdW1l
bnQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21lbnRlZEZvbnRG
YWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWdtZW50ZWRGb250RmFjZS5jcHAKaW5k
ZXggOWU5MDgzZjIwNTMzNGYwMTY0YTZhZTAyNTA1M2EyYTlkNjg3MjUyMi4uNDJhMjk4NzY5OGEx
NWJmOWE3NTJlOGFmMWUyY2MxNzg3NmI4ZmYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U2VnbWVudGVkRm9udEZhY2UuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ1NTRm9u
dFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGb250RGVzY3Jp
cHRpb24uaCIKKyNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAi
U2VnbWVudGVkRm9udERhdGEuaCIKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgogCkBAIC03
Miw2ICs3MywxOSBAQCBib29sIENTU1NlZ21lbnRlZEZvbnRGYWNlOjppc1ZhbGlkKCkgY29uc3QK
IHZvaWQgQ1NTU2VnbWVudGVkRm9udEZhY2U6OmZvbnRMb2FkZWQoQ1NTRm9udEZhY2UqKQogewog
ICAgIHBydW5lVGFibGUoKTsKKworI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQorICAgIGlm
IChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpmb250TG9hZEV2ZW50c0VuYWJsZWQoKSAmJiAhaXNM
b2FkaW5nKCkpIHsKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxMb2FkRm9udENhbGxiYWNrPiA+IGNh
bGxiYWNrczsKKyAgICAgICAgbV9jYWxsYmFja3Muc3dhcChjYWxsYmFja3MpOworICAgICAgICBm
b3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgY2FsbGJhY2tzLnNpemUoKTsgKytpbmRleCkg
eworICAgICAgICAgICAgaWYgKGNoZWNrRm9udCgpKQorICAgICAgICAgICAgICAgIGNhbGxiYWNr
c1tpbmRleF0tPm5vdGlmeUxvYWRlZCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIGNhbGxiYWNrc1tpbmRleF0tPm5vdGlmeUVycm9yKCk7CisgICAgICAgIH0KKyAgICB9Cisj
ZW5kaWYKIH0KIAogdm9pZCBDU1NTZWdtZW50ZWRGb250RmFjZTo6YXBwZW5kRm9udEZhY2UoUGFz
c1JlZlB0cjxDU1NGb250RmFjZT4gZm9udEZhY2UpCkBAIC0xMzUsNCArMTQ5LDM5IEBAIFBhc3NS
ZWZQdHI8Rm9udERhdGE+IENTU1NlZ21lbnRlZEZvbnRGYWNlOjpnZXRGb250RGF0YShjb25zdCBG
b250RGVzY3JpcHRpb24mIGZvCiAgICAgcmV0dXJuIDA7CiB9CiAKKyNpZiBFTkFCTEUoRk9OVF9M
T0FEX0VWRU5UUykKK2Jvb2wgQ1NTU2VnbWVudGVkRm9udEZhY2U6OmlzTG9hZGluZygpIGNvbnN0
Cit7CisgICAgdW5zaWduZWQgc2l6ZSA9IG1fZm9udEZhY2VzLnNpemUoKTsKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgIGlmIChtX2ZvbnRGYWNlc1tp
XS0+bG9hZFN0YXRlKCkgPT0gQ1NTRm9udEZhY2U6OkxvYWRpbmcpCisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIENTU1NlZ21lbnRl
ZEZvbnRGYWNlOjpjaGVja0ZvbnQoKSBjb25zdAoreworICAgIHVuc2lnbmVkIHNpemUgPSBtX2Zv
bnRGYWNlcy5zaXplKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7IGkrKykg
eworICAgICAgICBpZiAobV9mb250RmFjZXNbaV0tPmxvYWRTdGF0ZSgpICE9IENTU0ZvbnRGYWNl
OjpMb2FkZWQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0
cnVlOworfQorCit2b2lkIENTU1NlZ21lbnRlZEZvbnRGYWNlOjpsb2FkRm9udChjb25zdCBGb250
RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgUGFzc1JlZlB0cjxMb2FkRm9udENhbGxiYWNr
PiBjYWxsYmFjaykKK3sKKyAgICBnZXRGb250RGF0YShmb250RGVzY3JpcHRpb24pOworICAgIGlm
IChjYWxsYmFjaykgeworICAgICAgICBpZiAoaXNMb2FkaW5nKCkpCisgICAgICAgICAgICBtX2Nh
bGxiYWNrcy5hcHBlbmQoY2FsbGJhY2spOworICAgICAgICBlbHNlIGlmIChjaGVja0ZvbnQoKSkK
KyAgICAgICAgICAgIGNhbGxiYWNrLT5ub3RpZnlMb2FkZWQoKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgY2FsbGJhY2stPm5vdGlmeUVycm9yKCk7CisgICAgfQorfQorI2VuZGlmCisKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWdtZW50ZWRGb250RmFjZS5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmgKaW5kZXggZjE4M2Y0OTk1
ZTA4MjllZTE2OGEzODkyZDZmOWVmM2ZhZGVlMDhmNy4uZWMzOWMxN2QxN2QyZmJjOTY2YjE5MmRh
NzUzMDUyOGI4OTIyNDNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21l
bnRlZEZvbnRGYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21lbnRlZEZvbnRG
YWNlLmgKQEAgLTUzLDE1ICs1MywzMyBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPEZvbnRE
YXRhPiBnZXRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mKTsKIAorI2lmIEVOQUJMRShG
T05UX0xPQURfRVZFTlRTKQorICAgIGNsYXNzIExvYWRGb250Q2FsbGJhY2sgOiBwdWJsaWMgUmVm
Q291bnRlZDxMb2FkRm9udENhbGxiYWNrPiB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFs
IH5Mb2FkRm9udENhbGxiYWNrKCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBub3RpZnlMb2Fk
ZWQoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBub3RpZnlFcnJvcigpID0gMDsKKyAgICB9
OworCisgICAgYm9vbCBjaGVja0ZvbnQoKSBjb25zdDsKKyAgICB2b2lkIGxvYWRGb250KGNvbnN0
IEZvbnREZXNjcmlwdGlvbiYsIFBhc3NSZWZQdHI8TG9hZEZvbnRDYWxsYmFjaz4gbG9hZENhbGxi
YWNrKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIENTU1NlZ21lbnRlZEZvbnRGYWNlKENTU0Zv
bnRTZWxlY3RvciopOwogCiAgICAgdm9pZCBwcnVuZVRhYmxlKCk7CiAgICAgYm9vbCBpc1ZhbGlk
KCkgY29uc3Q7CisjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisgICAgYm9vbCBpc0xvYWRp
bmcoKSBjb25zdDsKKyNlbmRpZgogCiAgICAgQ1NTRm9udFNlbGVjdG9yKiBtX2ZvbnRTZWxlY3Rv
cjsKICAgICBIYXNoTWFwPHVuc2lnbmVkLCBSZWZQdHI8U2VnbWVudGVkRm9udERhdGE+ID4gbV9m
b250RGF0YVRhYmxlOwogICAgIFZlY3RvcjxSZWZQdHI8Q1NTRm9udEZhY2U+LCAxPiBtX2ZvbnRG
YWNlczsKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKKyAgICBWZWN0b3I8UmVmUHRyPExv
YWRGb250Q2FsbGJhY2s+ID4gbV9jYWxsYmFja3M7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmFjN2Ji
ZDQ2MTg0NDYyOTk3Yjg2ODhmZmM5ODUwM2ZmNDNjM2YwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIuY3BwCkBAIC0wLDAgKzEsMzE3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAor
ICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QK
KyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGb250TG9hZGVyLmgiCisKKyNp
ZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKKworI2luY2x1ZGUgIkNTU0ZvbnRGYWNlTG9hZEV2
ZW50LmgiCisjaW5jbHVkZSAiQ1NTRm9udEZhY2VTb3VyY2UuaCIKKyNpbmNsdWRlICJDU1NGb250
U2VsZWN0b3IuaCIKKyNpbmNsdWRlICJDU1NQYXJzZXIuaCIKKyNpbmNsdWRlICJDU1NTZWdtZW50
ZWRGb250RmFjZS5oIgorI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQu
aCIKKyNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
c3RhdGljIGNvbnN0IGludCBkZWZhdWx0Rm9udFNpemUgPSAxMDsKK3N0YXRpYyBjb25zdCBjaGFy
KiBjb25zdCBkZWZhdWx0Rm9udEZhbWlseSA9ICJzYW5zLXNlcmlmIjsKKworY2xhc3MgTG9hZEZv
bnRDYWxsYmFjayA6IHB1YmxpYyBDU1NTZWdtZW50ZWRGb250RmFjZTo6TG9hZEZvbnRDYWxsYmFj
ayB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TG9hZEZvbnRDYWxsYmFjaz4gY3Jl
YXRlKGludCBudW1Mb2FkaW5nLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gbG9hZENhbGxiYWNr
LCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZjxMb2FkRm9udENhbGxiYWNrPihuZXcgTG9hZEZvbnRDYWxsYmFjayhu
dW1Mb2FkaW5nLCBsb2FkQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsKKyAgICB9CisKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxMb2FkRm9udENhbGxiYWNrPiBjcmVhdGVGcm9tUGFyYW1zKGNvbnN0
IERpY3Rpb25hcnkmIHBhcmFtcykKKyAgICB7CisgICAgICAgIFJlZlB0cjxWb2lkQ2FsbGJhY2s+
IG9uc3VjY2VzczsKKyAgICAgICAgUmVmUHRyPFZvaWRDYWxsYmFjaz4gb25lcnJvcjsKKyAgICAg
ICAgcGFyYW1zLmdldCgib25zdWNjZXNzIiwgb25zdWNjZXNzKTsKKyAgICAgICAgcGFyYW1zLmdl
dCgib25lcnJvciIsIG9uZXJyb3IpOworICAgICAgICBpZiAoIW9uc3VjY2VzcyAmJiAhb25lcnJv
cikKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBpbnQgbnVtRmFtaWxpZXMg
PSAwOworICAgICAgICBmb3IgKGNvbnN0IEZvbnRGYW1pbHkqIGYgPSAmZm9udC5mYW1pbHkoKTsg
ZjsgZiA9IGYtPm5leHQoKSkKKyAgICAgICAgICAgIG51bUZhbWlsaWVzKys7CisgICAgICAgIHJl
dHVybiBMb2FkRm9udENhbGxiYWNrOjpjcmVhdGUobnVtRmFtaWxpZXMsIG9uc3VjY2Vzcywgb25l
cnJvcik7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUxvYWRlZCgpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlFcnJvcigpIE9WRVJSSURFOworcHJpdmF0ZToKKyAg
ICBMb2FkRm9udENhbGxiYWNrKGludCBudW1Mb2FkaW5nLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFj
az4gbG9hZENhbGxiYWNrLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykK
KyAgICAgICAgOiBtX251bUxvYWRpbmcobnVtTG9hZGluZykKKyAgICAgICAgLCBtX2Vycm9yT2Nj
dXJlZChmYWxzZSkKKyAgICAgICAgLCBtX2xvYWRDYWxsYmFjayhsb2FkQ2FsbGJhY2spCisgICAg
ICAgICwgbV9lcnJvckNhbGxiYWNrKGVycm9yQ2FsbGJhY2spCisgICAgeyB9CisKKyAgICBpbnQg
bV9udW1Mb2FkaW5nOworICAgIGJvb2wgbV9lcnJvck9jY3VyZWQ7CisgICAgUmVmUHRyPFZvaWRD
YWxsYmFjaz4gbV9sb2FkQ2FsbGJhY2s7CisgICAgUmVmUHRyPFZvaWRDYWxsYmFjaz4gbV9lcnJv
ckNhbGxiYWNrOworfTsKKwordm9pZCBMb2FkRm9udENhbGxiYWNrOjpub3RpZnlMb2FkZWQoKQor
eworICAgIG1fbnVtTG9hZGluZy0tOworICAgIGlmIChtX251bUxvYWRpbmcpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmIChtX2Vycm9yT2NjdXJlZCkgeworICAgICAgICBpZiAobV9lcnJvckNh
bGxiYWNrKQorICAgICAgICAgICAgbV9lcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudCgpOworICAg
IH0gZWxzZSB7CisgICAgICAgIGlmIChtX2xvYWRDYWxsYmFjaykKKyAgICAgICAgICAgIG1fbG9h
ZENhbGxiYWNrLT5oYW5kbGVFdmVudCgpOworICAgIH0KK30KKwordm9pZCBMb2FkRm9udENhbGxi
YWNrOjpub3RpZnlFcnJvcigpIAoreworICAgIG1fZXJyb3JPY2N1cmVkID0gdHJ1ZTsKKyAgICBu
b3RpZnlMb2FkZWQoKTsKK30KKworRm9udExvYWRlcjo6Rm9udExvYWRlcihEb2N1bWVudCogZG9j
dW1lbnQpCisgICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQsIHRoaXMpCisgICAgLCBtX2Rv
Y3VtZW50KGRvY3VtZW50KQorICAgICwgbV9sb2FkaW5nQ291bnQoMCkKK3sKKyAgICBzdXNwZW5k
SWZOZWVkZWQoKTsKK30KKworRm9udExvYWRlcjo6fkZvbnRMb2FkZXIoKQoreworfQorCitFdmVu
dFRhcmdldERhdGEqIEZvbnRMb2FkZXI6OmV2ZW50VGFyZ2V0RGF0YSgpCit7CisgICAgcmV0dXJu
ICZtX2V2ZW50VGFyZ2V0RGF0YTsKK30KKworRXZlbnRUYXJnZXREYXRhKiBGb250TG9hZGVyOjpl
bnN1cmVFdmVudFRhcmdldERhdGEoKQoreworICAgIHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7
Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgRm9udExvYWRlcjo6aW50ZXJmYWNlTmFtZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5pbnRlcmZhY2VGb3JGb250TG9hZGVyOwor
fQorCitTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBGb250TG9hZGVyOjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCk7Cit9CisKK3ZvaWQgRm9udExvYWRlcjo6ZGlkTGF5b3V0KCkKK3sKKyAg
ICBmaXJlUGVuZGluZ0V2ZW50cygpOworICAgIGxvYWRpbmdEb25lKCk7Cit9CisKK3ZvaWQgRm9u
dExvYWRlcjo6c2NoZWR1bGVFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKK3sKKyAgICBp
ZiAoRnJhbWVWaWV3KiB2aWV3ID0gbV9kb2N1bWVudC0+dmlldygpKSB7CisgICAgICAgIGlmICh2
aWV3LT5pc0luTGF5b3V0KCkpIHsKKyAgICAgICAgICAgIG1fcGVuZGluZ0V2ZW50cy5hcHBlbmQo
ZXZlbnQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIGZpcmVQ
ZW5kaW5nRXZlbnRzKCk7CisgICAgZGlzcGF0Y2hFdmVudChldmVudCk7Cit9CisKK3ZvaWQgRm9u
dExvYWRlcjo6ZmlyZVBlbmRpbmdFdmVudHMoKQoreworICAgIGlmIChtX3BlbmRpbmdFdmVudHMu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBWZWN0b3I8UmVmUHRyPEV2ZW50PiA+
IHBlbmRpbmdFdmVudHM7CisgICAgbV9wZW5kaW5nRXZlbnRzLnN3YXAocGVuZGluZ0V2ZW50cyk7
CisgICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IHBlbmRpbmdFdmVudHMuc2l6ZSgp
OyArK2luZGV4KQorICAgICAgICBkaXNwYXRjaEV2ZW50KHBlbmRpbmdFdmVudHNbaW5kZXhdLnJl
bGVhc2UoKSk7Cit9CisKK3ZvaWQgRm9udExvYWRlcjo6YmVnaW5Gb250TG9hZGluZyhDU1NGb250
RmFjZVJ1bGUqIHJ1bGUpCit7CisgICAgKyttX2xvYWRpbmdDb3VudDsKKyAgICBpZiAobV9sb2Fk
aW5nQ291bnQgPT0gMSAmJiAhbV9sb2FkaW5nRG9uZUV2ZW50KQorICAgICAgICBzY2hlZHVsZUV2
ZW50KENTU0ZvbnRGYWNlTG9hZEV2ZW50OjpjcmVhdGVGb3JGb250RmFjZVJ1bGUoZXZlbnROYW1l
cygpLmxvYWRpbmdFdmVudCwgcnVsZSkpOworICAgIHNjaGVkdWxlRXZlbnQoQ1NTRm9udEZhY2VM
b2FkRXZlbnQ6OmNyZWF0ZUZvckZvbnRGYWNlUnVsZShldmVudE5hbWVzKCkubG9hZHN0YXJ0RXZl
bnQsIHJ1bGUpKTsKK30KKwordm9pZCBGb250TG9hZGVyOjpmb250TG9hZGVkKENTU0ZvbnRGYWNl
UnVsZSogcnVsZSkKK3sKKyAgICBBU1NFUlQobV9sb2FkaW5nQ291bnQgPiAwKTsKKyAgICBzY2hl
ZHVsZUV2ZW50KENTU0ZvbnRGYWNlTG9hZEV2ZW50OjpjcmVhdGVGb3JGb250RmFjZVJ1bGUoZXZl
bnROYW1lcygpLmxvYWRFdmVudCwgcnVsZSkpOworCisgICAgLS1tX2xvYWRpbmdDb3VudDsKKyAg
ICBpZiAoIW1fbG9hZGluZ0NvdW50KQorICAgICAgICBtX2xvYWRpbmdEb25lRXZlbnQgPSBDU1NG
b250RmFjZUxvYWRFdmVudDo6Y3JlYXRlRm9yRm9udEZhY2VSdWxlKGV2ZW50TmFtZXMoKS5sb2Fk
aW5nZG9uZUV2ZW50LCBydWxlKTsKK30KKwordm9pZCBGb250TG9hZGVyOjpsb2FkRXJyb3IoQ1NT
Rm9udEZhY2VSdWxlKiBydWxlLCBDU1NGb250RmFjZVNvdXJjZSogc291cmNlKQoreworICAgIEFT
U0VSVChtX2xvYWRpbmdDb3VudCA+IDApOworCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCByZXBv
cnQgTmV0d29ya0Vycm9yIGluIGNhc2Ugb2YgdGltZW91dCwgZXRjLgorICAgIFN0cmluZyBlcnJv
ck5hbWUgPSAoc291cmNlICYmIHNvdXJjZS0+aXNEZWNvZGVFcnJvcigpKSA/ICJJbnZhbGlkRm9u
dERhdGFFcnJvciIgOiAiTm90Rm91bmRFcnJvciI7CisgICAgc2NoZWR1bGVFdmVudChDU1NGb250
RmFjZUxvYWRFdmVudDo6Y3JlYXRlRm9yRXJyb3IocnVsZSwgRE9NRXJyb3I6OmNyZWF0ZShlcnJv
ck5hbWUpKSk7CisgICAgLS1tX2xvYWRpbmdDb3VudDsKKyAgICBpZiAoIW1fbG9hZGluZ0NvdW50
KQorICAgICAgICBtX2xvYWRpbmdEb25lRXZlbnQgPSBDU1NGb250RmFjZUxvYWRFdmVudDo6Y3Jl
YXRlRm9yRm9udEZhY2VSdWxlKGV2ZW50TmFtZXMoKS5sb2FkaW5nZG9uZUV2ZW50LCBydWxlKTsK
K30KKwordm9pZCBGb250TG9hZGVyOjpub3RpZnlXaGVuRm9udHNSZWFkeShQYXNzUmVmUHRyPFZv
aWRDYWxsYmFjaz4gY2FsbGJhY2spCit7CisgICAgbV9jYWxsYmFja3MuYXBwZW5kKGNhbGxiYWNr
KTsKKyAgICBsb2FkaW5nRG9uZSgpOworfQorCit2b2lkIEZvbnRMb2FkZXI6OmxvYWRpbmdEb25l
KCkKK3sKKyAgICBpZiAobG9hZGluZygpKQorICAgICAgICByZXR1cm47CisgICAgaWYgKCFtX2xv
YWRpbmdEb25lRXZlbnQgJiYgbV9jYWxsYmFja3MuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gbV9kb2N1bWVudC0+dmlldygpKSB7CisgICAg
ICAgIGlmICh2aWV3LT5pc0luTGF5b3V0KCkgfHwgdmlldy0+bmVlZHNMYXlvdXQoKSkKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgbV9kb2N1bWVudC0+dXBkYXRlU3R5bGVJZk5lZWRlZCgp
OworICAgICAgICBpZiAodmlldy0+bmVlZHNMYXlvdXQoKSkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBpZiAobV9sb2FkaW5nRG9uZUV2ZW50KQorICAgICAgICBkaXNwYXRjaEV2
ZW50KG1fbG9hZGluZ0RvbmVFdmVudC5yZWxlYXNlKCkpOworCisgICAgaWYgKCFtX2NhbGxiYWNr
cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxWb2lkQ2FsbGJhY2s+ID4gY2Fs
bGJhY2tzOworICAgICAgICBtX2NhbGxiYWNrcy5zd2FwKGNhbGxiYWNrcyk7CisgICAgICAgIGZv
ciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBjYWxsYmFja3Muc2l6ZSgpOyArK2luZGV4KQor
ICAgICAgICAgICAgY2FsbGJhY2tzW2luZGV4XS0+aGFuZGxlRXZlbnQoKTsKKyAgICB9Cit9CisK
K3ZvaWQgRm9udExvYWRlcjo6bG9hZEZvbnQoY29uc3QgRGljdGlvbmFyeSYgcGFyYW1zKQorewor
ICAgIC8vIEZJWE1FOiBUaGUgdGV4dCBtZW1iZXIgb2YgcGFyYW1zIGlzIGlnbm9yZWQuCisgICAg
U3RyaW5nIGZvbnRTdHJpbmc7CisgICAgaWYgKCFwYXJhbXMuZ2V0KCJmb250IiwgZm9udFN0cmlu
ZykpCisgICAgICAgIHJldHVybjsKKyAgICBGb250IGZvbnQ7CisgICAgaWYgKCFyZXNvbHZlRm9u
dFN0eWxlKGZvbnRTdHJpbmcsIGZvbnQpKQorICAgICAgICByZXR1cm47CisgICAgUmVmUHRyPExv
YWRGb250Q2FsbGJhY2s+IGNhbGxiYWNrID0gTG9hZEZvbnRDYWxsYmFjazo6Y3JlYXRlRnJvbVBh
cmFtcyhwYXJhbXMpOworICAgIAorICAgIGZvciAoY29uc3QgRm9udEZhbWlseSogZiA9ICZmb250
LmZhbWlseSgpOyBmOyBmID0gZi0+bmV4dCgpKSB7CisgICAgICAgIENTU1NlZ21lbnRlZEZvbnRG
YWNlKiBmYWNlID0gbV9kb2N1bWVudC0+c3R5bGVSZXNvbHZlcigpLT5mb250U2VsZWN0b3IoKS0+
Z2V0Rm9udEZhY2UoZm9udC5mb250RGVzY3JpcHRpb24oKSwgZi0+ZmFtaWx5KCkpOworICAgICAg
ICBpZiAoIWZhY2UpIHsKKyAgICAgICAgICAgIGlmIChjYWxsYmFjaykKKyAgICAgICAgICAgICAg
ICBjYWxsYmFjay0+bm90aWZ5RXJyb3IoKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICB9CisgICAgICAgIGZhY2UtPmxvYWRGb250KGZvbnQuZm9udERlc2NyaXB0aW9uKCksIGNhbGxi
YWNrKTsKKyAgICB9Cit9CisKK2Jvb2wgRm9udExvYWRlcjo6Y2hlY2tGb250KGNvbnN0IFN0cmlu
ZyYgZm9udFN0cmluZywgY29uc3QgU3RyaW5nJikKK3sKKyAgICAvLyBGSVhNRTogVGhlIHNlY29u
ZCBwYXJhbWV0ZXIgKHRleHQpIGlzIGlnbm9yZWQuCisgICAgRm9udCBmb250OworICAgIGlmICgh
cmVzb2x2ZUZvbnRTdHlsZShmb250U3RyaW5nLCBmb250KSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIGZvciAoY29uc3QgRm9udEZhbWlseSogZiA9ICZmb250LmZhbWlseSgpOyBmOyBmID0g
Zi0+bmV4dCgpKSB7CisgICAgICAgIENTU1NlZ21lbnRlZEZvbnRGYWNlKiBmYWNlID0gbV9kb2N1
bWVudC0+c3R5bGVSZXNvbHZlcigpLT5mb250U2VsZWN0b3IoKS0+Z2V0Rm9udEZhY2UoZm9udC5m
b250RGVzY3JpcHRpb24oKSwgZi0+ZmFtaWx5KCkpOworICAgICAgICBpZiAoIWZhY2UgfHwgIWZh
Y2UtPmNoZWNrRm9udCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgYXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxl
KFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIsIENTU1Byb3BlcnR5SUQgaWQsIGNvbnN0IFN0
eWxlUHJvcGVydHlTZXQqIHBhcnNlZFN0eWxlKQoreworICAgIHN0eWxlUmVzb2x2ZXItPmFwcGx5
UHJvcGVydHlUb0N1cnJlbnRTdHlsZShpZCwgcGFyc2VkU3R5bGUtPmdldFByb3BlcnR5Q1NTVmFs
dWUoaWQpLmdldCgpKTsKK30KKworYm9vbCBGb250TG9hZGVyOjpyZXNvbHZlRm9udFN0eWxlKGNv
bnN0IFN0cmluZyYgZm9udFN0cmluZywgRm9udCYgZm9udCkKK3sKKyAgICAvLyBJbnRlcnByZXQg
Zm9udFN0cmluZyBpbiB0aGUgc2FtZSB3YXkgYXMgdGhlICdmb250JyBhdHRyaWJ1dGUgb2YgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELgorICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBwYXJz
ZWRTdHlsZSA9IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOworICAgIENTU1BhcnNlcjo6cGFy
c2VWYWx1ZShwYXJzZWRTdHlsZS5nZXQoKSwgQ1NTUHJvcGVydHlGb250LCBmb250U3RyaW5nLCB0
cnVlLCBDU1NTdHJpY3RNb2RlLCAwKTsKKyAgICBpZiAocGFyc2VkU3R5bGUtPmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIFN0cmluZyBmb250VmFsdWUgPSBwYXJz
ZWRTdHlsZS0+Z2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUZvbnQpOworICAgIGlmIChmb250
VmFsdWUgPT0gImluaGVyaXQiIHx8IGZvbnRWYWx1ZSA9PSAiaW5pdGlhbCIpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBSZW5kZXJTdHls
ZTo6Y3JlYXRlKCk7CisKKyAgICBGb250RmFtaWx5IGZvbnRGYW1pbHk7CisgICAgZm9udEZhbWls
eS5zZXRGYW1pbHkoZGVmYXVsdEZvbnRGYW1pbHkpOworCisgICAgRm9udERlc2NyaXB0aW9uIGRl
ZmF1bHRGb250RGVzY3JpcHRpb247CisgICAgZGVmYXVsdEZvbnREZXNjcmlwdGlvbi5zZXRGYW1p
bHkoZm9udEZhbWlseSk7CisgICAgZGVmYXVsdEZvbnREZXNjcmlwdGlvbi5zZXRTcGVjaWZpZWRT
aXplKGRlZmF1bHRGb250U2l6ZSk7CisgICAgZGVmYXVsdEZvbnREZXNjcmlwdGlvbi5zZXRDb21w
dXRlZFNpemUoZGVmYXVsdEZvbnRTaXplKTsKKworICAgIHN0eWxlLT5zZXRGb250RGVzY3JpcHRp
b24oZGVmYXVsdEZvbnREZXNjcmlwdGlvbik7CisKKyAgICBzdHlsZS0+Zm9udCgpLnVwZGF0ZShz
dHlsZS0+Zm9udCgpLmZvbnRTZWxlY3RvcigpKTsKKworICAgIC8vIE5vdyBtYXAgdGhlIGZvbnQg
cHJvcGVydHkgbG9uZ2hhbmRzIGludG8gdGhlIHN0eWxlLgorICAgIFN0eWxlUmVzb2x2ZXIqIHN0
eWxlUmVzb2x2ZXIgPSBtX2RvY3VtZW50LT5zdHlsZVJlc29sdmVyKCk7CisgICAgc3R5bGVSZXNv
bHZlci0+YXBwbHlQcm9wZXJ0eVRvU3R5bGUoQ1NTUHJvcGVydHlGb250RmFtaWx5LCBwYXJzZWRT
dHlsZS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUZvbnRGYW1pbHkpLmdldCgpLCBz
dHlsZS5nZXQoKSk7CisgICAgYXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKHN0eWxlUmVzb2x2
ZXIsIENTU1Byb3BlcnR5Rm9udFN0eWxlLCBwYXJzZWRTdHlsZSk7CisgICAgYXBwbHlQcm9wZXJ0
eVRvQ3VycmVudFN0eWxlKHN0eWxlUmVzb2x2ZXIsIENTU1Byb3BlcnR5Rm9udFZhcmlhbnQsIHBh
cnNlZFN0eWxlKTsKKyAgICBhcHBseVByb3BlcnR5VG9DdXJyZW50U3R5bGUoc3R5bGVSZXNvbHZl
ciwgQ1NTUHJvcGVydHlGb250V2VpZ2h0LCBwYXJzZWRTdHlsZSk7CisKKyAgICAvLyBBcyBkZXNj
cmliZWQgaW4gQlVHNjYyOTEsIHNldHRpbmcgZm9udC1zaXplIGFuZCBsaW5lLWhlaWdodCBvbiBh
IGZvbnQgbWF5IGVudGFpbCBhIENTU1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlTGVuZ3RoRG91Ymxl
IGNhbGwsCisgICAgLy8gd2hpY2ggYXNzdW1lcyB0aGUgZm9udE1ldHJpY3MgYXJlIGF2YWlsYWJs
ZSBmb3IgdGhlIGFmZmVjdGVkIGZvbnQsIG90aGVyd2lzZSBhIGNyYXNoIG9jY3VycyAoc2VlIGh0
dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0Lzk2MTIyKS4KKyAgICAvLyBUaGUgdXBkYXRl
Rm9udCgpIGNhbGxzIGJlbG93IHVwZGF0ZSB0aGUgZm9udE1ldHJpY3MgYW5kIGVuc3VyZSB0aGUg
cHJvcGVyIHNldHRpbmcgb2YgZm9udC1zaXplIGFuZCBsaW5lLWhlaWdodC4KKyAgICBzdHlsZVJl
c29sdmVyLT51cGRhdGVGb250KCk7CisgICAgYXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKHN0
eWxlUmVzb2x2ZXIsIENTU1Byb3BlcnR5Rm9udFNpemUsIHBhcnNlZFN0eWxlKTsKKyAgICBzdHls
ZVJlc29sdmVyLT51cGRhdGVGb250KCk7CisgICAgYXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxl
KHN0eWxlUmVzb2x2ZXIsIENTU1Byb3BlcnR5TGluZUhlaWdodCwgcGFyc2VkU3R5bGUpOworCisg
ICAgZm9udCA9IHN0eWxlLT5mb250KCk7CisgICAgZm9udC51cGRhdGUoc3R5bGVSZXNvbHZlci0+
Zm9udFNlbGVjdG9yKCkpOworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9u
dExvYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1YjM1ZjNhM2MwNDgyNGEyOWY0MzVmZjcwN2QzMGFhNDAx
ZDBlMDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5o
CkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
IG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQK
KyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSAorICogREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VW
RU5UUykKKworI2lmbmRlZiBGb250TG9hZGVyX2gKKyNkZWZpbmUgRm9udExvYWRlcl9oCisKKyNp
bmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCisj
aW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVk
ZSAiVm9pZENhbGxiYWNrLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBDYWNoZWRGb250OworY2xhc3MgQ1NTRm9udEZhY2VSdWxlOwor
Y2xhc3MgQ1NTRm9udEZhY2VTb3VyY2U7CitjbGFzcyBEaWN0aW9uYXJ5OworY2xhc3MgRG9jdW1l
bnQ7CitjbGFzcyBFdmVudDsKK2NsYXNzIEZvbnQ7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OworCitjbGFzcyBGb250TG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8Rm9udExvYWRlcj4s
IHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBFdmVudFRhcmdldCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8Rm9udExvYWRlcj4gY3JlYXRlKERvY3VtZW50KiBkb2N1bWVu
dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZjxGb250TG9hZGVyPihuZXcgRm9udExv
YWRlcihkb2N1bWVudCkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5Gb250TG9hZGVyKCk7CisKKyAg
ICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGxvYWRpbmcpOworICAgIERFRklORV9B
VFRSSUJVVEVfRVZFTlRfTElTVEVORVIobG9hZGluZ2RvbmUpOworICAgIERFRklORV9BVFRSSUJV
VEVfRVZFTlRfTElTVEVORVIobG9hZHN0YXJ0KTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5U
X0xJU1RFTkVSKGxvYWQpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZXJy
b3IpOworCisgICAgYm9vbCBjaGVja0ZvbnQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7
CisgICAgdm9pZCBsb2FkRm9udChjb25zdCBEaWN0aW9uYXJ5Jik7CisgICAgdm9pZCBub3RpZnlX
aGVuRm9udHNSZWFkeShQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4pOworCisgICAgYm9vbCBsb2Fk
aW5nKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkaW5nQ291bnQgPiAwOyB9CisKKyAgICB2aXJ0dWFs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0Owor
CisgICAgdXNpbmcgUmVmQ291bnRlZDxGb250TG9hZGVyPjo6cmVmOworICAgIHVzaW5nIFJlZkNv
dW50ZWQ8Rm9udExvYWRlcj46OmRlcmVmOworCisgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29u
c3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfQorCisgICAgdm9pZCBkaWRMYXlvdXQoKTsKKyAgICB2
b2lkIGJlZ2luRm9udExvYWRpbmcoQ1NTRm9udEZhY2VSdWxlKik7CisgICAgdm9pZCBmb250TG9h
ZGVkKENTU0ZvbnRGYWNlUnVsZSopOworICAgIHZvaWQgbG9hZEVycm9yKENTU0ZvbnRGYWNlUnVs
ZSosIENTU0ZvbnRGYWNlU291cmNlKik7CisgICAgdm9pZCBsb2FkaW5nRG9uZSgpOworCitwcml2
YXRlOgorICAgIEZvbnRMb2FkZXIoRG9jdW1lbnQqKTsKKworICAgIHZpcnR1YWwgdm9pZCByZWZF
dmVudFRhcmdldCgpIHsgcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdl
dCgpIHsgZGVyZWYoKTsgfQorICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdl
dERhdGEoKTsKKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJnZXRE
YXRhKCk7CisKKyAgICB2b2lkIHNjaGVkdWxlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOworICAg
IHZvaWQgZmlyZVBlbmRpbmdFdmVudHMoKTsKKyAgICBib29sIHJlc29sdmVGb250U3R5bGUoY29u
c3QgU3RyaW5nJiwgRm9udCYpOworCisgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CisgICAgRXZl
bnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOworICAgIHVuc2lnbmVkIG1fbG9hZGluZ0Nv
dW50OworICAgIFZlY3RvcjxSZWZQdHI8RXZlbnQ+ID4gbV9wZW5kaW5nRXZlbnRzOworICAgIFZl
Y3RvcjxSZWZQdHI8Vm9pZENhbGxiYWNrPiA+IG1fY2FsbGJhY2tzOworICAgIFJlZlB0cjxFdmVu
dD4gbV9sb2FkaW5nRG9uZUV2ZW50OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRm9udExvYWRlcl9oCisjZW5kaWYgLy8gRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRm9udExvYWRlci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2IxZjhhMjRhNjlkODJhM2Vj
MTE1NzdiNTExNTk3MGZhMzQ0YjI4MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9Gb250TG9hZGVyLmlkbApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPUZP
TlRfTE9BRF9FVkVOVFMsCisgICAgVjhFbmFibGVkQXRSdW50aW1lPWZvbnRMb2FkRXZlbnRzLAor
ICAgIEFjdGl2ZURPTU9iamVjdCwKKyAgICBFdmVudFRhcmdldCwKKyAgICBHZW5lcmF0ZUlzUmVh
Y2hhYmxlPUltcGxEb2N1bWVudCwKK10gaW50ZXJmYWNlIEZvbnRMb2FkZXIgeworCisgICAgYXR0
cmlidXRlIEV2ZW50TGlzdGVuZXIgb25sb2FkaW5nOworICAgIGF0dHJpYnV0ZSBFdmVudExpc3Rl
bmVyIG9ubG9hZGluZ2RvbmU7CisgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25sb2Fkc3Rh
cnQ7CisgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25sb2FkOworICAgIGF0dHJpYnV0ZSBF
dmVudExpc3RlbmVyIG9uZXJyb3I7CisKKyAgICBib29sZWFuIGNoZWNrRm9udChpbiBET01TdHJp
bmcgZm9udCwgaW4gW09wdGlvbmFsPURlZmF1bHRJc051bGxTdHJpbmddIERPTVN0cmluZyB0ZXh0
KTsKKyAgICB2b2lkIGxvYWRGb250KGluIERpY3Rpb25hcnkgcGFyYW1zKTsKKyAgICB2b2lkIG5v
dGlmeVdoZW5Gb250c1JlYWR5KGluIFtDYWxsYmFja10gVm9pZENhbGxiYWNrIGNhbGxiYWNrKTsK
KyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBsb2FkaW5nOworCisgICAgdm9pZCBhZGRF
dmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgdm9pZCByZW1vdmVFdmVudExp
c3RlbmVyKGluIERPTVN0cmluZyB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgYm9vbGVhbiBkaXNwYXRjaEV2
ZW50KGluIEV2ZW50IGV2dCkKKyAgICAgICAgcmFpc2VzKEV2ZW50RXhjZXB0aW9uKTsKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBmY2VkZTJkNzk5YmQ5Y2QwNjQyNDY5MzFlZTYyNGNh
MWMzNzBmYjY5Li5kNDU4YjY2ZTczNzQxODcxZjA1MjcxODJhMDAyYTg3ZjA1OGRkNGJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTc0LDYgKzc0LDcgQEAKICNpbmNsdWRlICJFeGNlcHRp
b25Db2RlUGxhY2Vob2xkZXIuaCIKICNpbmNsdWRlICJGbG93VGhyZWFkQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZvbnRMb2FkZXIuaCIKICNp
bmNsdWRlICJGb3JtQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKQEAgLTQ4Nyw2ICs0ODgsOSBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJh
bWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAj
aWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCiAgICAgLCBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0
KDApCiAjZW5kaWYKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKKyAgICAsIG1fZm9udGxv
YWRlcigwKQorI2VuZGlmCiB7CiAgICAgbV9wcmludGluZyA9IGZhbHNlOwogICAgIG1fcGFnaW5h
dGVkRm9yU2NyZWVuID0gZmFsc2U7CkBAIC02MDgwLDQgKzYwODQsMTMgQEAgRG9jdW1lbnQqIERv
Y3VtZW50OjplbnN1cmVUZW1wbGF0ZURvY3VtZW50KCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxF
KEZPTlRfTE9BRF9FVkVOVFMpCitQYXNzUmVmUHRyPEZvbnRMb2FkZXI+IERvY3VtZW50Ojpmb250
bG9hZGVyKCkKK3sKKyAgICBpZiAoIW1fZm9udGxvYWRlcikKKyAgICAgICAgbV9mb250bG9hZGVy
ID0gRm9udExvYWRlcjo6Y3JlYXRlKHRoaXMpOworICAgIHJldHVybiBtX2ZvbnRsb2FkZXI7Cit9
CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRl
eCAzZjVkYzIwMThiMDI5ZWExODA4OTYzYWQwOGRhY2Y1OTg2MTM3NGFjLi5hNTEwMjNkM2RmZGVh
OGVmOTBiZTE1YjNiNmZjY2NiMzQ2YjQ5MjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTkw
LDYgKzE5MCwxMCBAQCBjbGFzcyBUZXh0QXV0b3NpemVyOwogY2xhc3MgRE9NU2VjdXJpdHlQb2xp
Y3k7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQorY2xhc3MgRm9udExv
YWRlcjsKKyNlbmRpZgorCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCiBlbnVtIFBhZ2Vz
aG93RXZlbnRQZXJzaXN0ZW5jZSB7CkBAIC0xMTkzLDYgKzExOTcsMTAgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKCkgY29uc3QgT1ZFUlJJ
REU7CiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKKyAgICBQYXNzUmVmUHRyPEZvbnRM
b2FkZXI+IGZvbnRsb2FkZXIoKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnQo
RnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCk7CiAKQEAgLTE1
NTksNiArMTU2NywxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxEb2N1bWVudD4gbV90ZW1wbGF0
ZURvY3VtZW50OwogICAgIERvY3VtZW50KiBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0OyAvLyBNYW51
YWxseSBtYW5hZ2VkIHdlYWtyZWYgKGJhY2twb2ludGVyIGZyb20gbV90ZW1wbGF0ZURvY3VtZW50
KS4KICNlbmRpZgorCisjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisgICAgUmVmUHRyPEZv
bnRMb2FkZXI+IG1fZm9udGxvYWRlcjsKKyNlbmRpZgogfTsKIAogaW5saW5lIHZvaWQgRG9jdW1l
bnQ6Om5vdGlmeVJlbW92ZVBlbmRpbmdTaGVldElmTmVlZGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aWRsCmluZGV4IDBlMDZmYzdmMmQ4MTkxNmY4NTI1NTAwOGIyNzliY2M1NWNkM2MwOGUuLmNhYTU4
Y2YzMDBiYzM5YzhkNTAxNzYxODE0YmM0ZTcyY2NiMDVjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmlkbApAQCAtMjYyLDYgKzI2MiwxMCBAQAogCiAgICAgW0NvbmRpdGlvbmFsPUNTU19SRUdJT05T
LCBWOEVuYWJsZWRBdFJ1bnRpbWU9Y3NzUmVnaW9uc10gRE9NTmFtZWRGbG93Q29sbGVjdGlvbiB3
ZWJraXRHZXROYW1lZEZsb3dzKCk7CiAKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQp
ICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKKyAgICBbQ29uZGl0aW9uYWw9Rk9OVF9MT0FEX0VWRU5U
UywgVjhFbmFibGVkQXRSdW50aW1lPWZvbnRMb2FkRXZlbnRzXSByZWFkb25seSBhdHRyaWJ1dGUg
Rm9udExvYWRlciBmb250bG9hZGVyOworI2VuZGlmCisKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9P
QkpFQ1RJVkVfQykgfHwgIUxBTkdVQUdFX09CSkVDVElWRV9DCiAgICAgLy8gRXZlbnQgaGFuZGxl
ciBET00gYXR0cmlidXRlcwogICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbmFib3J0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggMjJhN2IzMmJhYjc5YmM1
MjYwMDc2NDFhM2I5MWNjNDBjNTFiNGM2ZC4uM2I1ZjIzMjIyNGUzOWNiY2FkMTNhMzk3OTc0Mjdi
NjkwOWNkMmNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC04NCw2ICs4NCw4IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhrZXl1cCkgXAogICAgIG1hY3JvKGxldmVsY2hh
bmdlKSBcCiAgICAgbWFjcm8obG9hZCkgXAorICAgIG1hY3JvKGxvYWRpbmcpIFwKKyAgICBtYWNy
byhsb2FkaW5nZG9uZSkgXAogICAgIG1hY3JvKGxvYWRzdGFydCkgXAogICAgIG1hY3JvKG1lc3Nh
Z2UpIFwKICAgICBtYWNybyhtb3VzZWRvd24pIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudE5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KaW5k
ZXggYzA0YjAyNWNlYzQwNzA0NzJjMzIyZWFlMGZhNjdhOGVmNmRkYzYwZi4uZmI3NGVmNjllODFl
NDY3MmYyODQwZGI3OTdkNzAxOGRjMDQ2YzJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4K
QEAgLTU2LDMgKzU2LDQgQEAgTWVkaWFLZXlNZXNzYWdlRXZlbnQgY29uZGl0aW9uYWw9RU5DUllQ
VEVEX01FRElBX1YyCiBNZWRpYUtleU5lZWRlZEV2ZW50IGNvbmRpdGlvbmFsPUVOQ1JZUFRFRF9N
RURJQV9WMgogVHJhY2tFdmVudCBjb25kaXRpb25hbD1WSURFT19UUkFDSwogQXV0b2NvbXBsZXRl
RXJyb3JFdmVudCBjb25kaXRpb25hbD1SRVFVRVNUX0FVVE9DT01QTEVURQorQ1NTRm9udEZhY2VM
b2FkRXZlbnQgY29uZGl0aW9uYWw9Rk9OVF9MT0FEX0VWRU5UUwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudFRhcmdldEZhY3RvcnkuaW4KaW5kZXggY2Y1YWNmNzVjM2JlNDkwMzBkMzg3MTIzOTMwMzg0
ZTE4MDA0ZjRjOC4uYTBjMDE0NDBjY2ZiZjc4YTVlOTI5YmJhZjM2YTAzNTllOTUzMjQyNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCkBAIC04LDYgKzgsNyBAQCBE
T01XaW5kb3cKIEV2ZW50U291cmNlCiBGaWxlUmVhZGVyIGNvbmRpdGlvbmFsPUJMT0IKIEZpbGVX
cml0ZXIgY29uZGl0aW9uYWw9RklMRV9TWVNURU0KK0ZvbnRMb2FkZXIgY29uZGl0aW9uYWw9Rk9O
VF9MT0FEX0VWRU5UUwogSURCRGF0YWJhc2UgY29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQog
SURCT3BlbkRCUmVxdWVzdCBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCiBJREJSZXF1ZXN0
IGNvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApp
bmRleCAxZjU3ZTBjMjc0YzdmM2I5MDNhN2M2YzY0MTk4MDFmYWU1NTc2OTNiLi5lMDA3NmUyYjQx
YWU1MmJkNDZkNWFlNzI3Y2ZiMGQ4ZDYxMWJlYWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAi
Rm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCisjaW5jbHVkZSAiRm9u
dExvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVBY3Rpb25TY2hl
ZHVsZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpAQCAtMjY0MSw2ICsyNjQyLDEwIEBA
IHZvaWQgRnJhbWVWaWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tzKCkKICAgICB9CiAKICAgICBt
X2ZyYW1lLT5sb2FkZXIoKS0+ZGlkTGF5b3V0KG1pbGVzdG9uZXNBY2hpZXZlZCk7CisjaWYgRU5B
QkxFKEZPTlRfTE9BRF9FVkVOVFMpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmZv
bnRMb2FkRXZlbnRzRW5hYmxlZCgpKQorICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5mb250
bG9hZGVyKCktPmRpZExheW91dCgpOworI2VuZGlmCiAgICAgCiAgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBjb25zaWRlciBhZGRpbmcgRGlkTGF5b3V0IGFzIGEgTGF5b3V0TWlsZXN0b25lLiBUaGF0
IHdvdWxkIGxldCB1cyBtZXJnZSB0aGlzCiAgICAgLy8gd2l0aCBkaWRMYXlvdXQoTGF5b3V0TWls
ZXN0b25lcykuCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggZDdlZWFmNzAyMjBlN2Y4YjU0YjYxYjhjMDI0OTQ2MTU0ODQ5ZDVhZS4uNjNkOWIwYzUx
OTE4OTMzZTc4NTg3M2QwN2EwN2I1ZGYyMTBhMzhkOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAzLTExICBL
dW5paGlrbyBTYWthbW90byAgPGtzYWthbW90b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1w
bGVtZW50IEZvbnRMb2FkZXIgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05ODM5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEVuYWJsZSBGb250TG9hZEV2ZW50cyBydW50aW1lIGZsYWcgZm9y
IFRlc3RTaGVsbC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJ
bnRlcmZhY2VzOjpUZXN0SW50ZXJmYWNlcyk6CisKIDIwMTMtMDMtMTEgIEpvY2hlbiBFaXNpbmdl
ciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSByZW1vdmUgb2Jz
b2xldGUgdXNlciBnZXN0dXJlIG1ldGhvZHMgZnJvbSBXZWJGcmFtZQpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMu
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdElu
dGVyZmFjZXMuY3BwCmluZGV4IDEyNGQ3MjJiMWI3MmJiZmUwOTcxMjBiNzQxMDY0NmI3M2IyNDk1
MjkuLjRkOGEwMGM5NmNmYzlhY2IzZDBjNzM2YzIzNmYxNmRhNzlmNjIzYzQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZh
Y2VzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3Ny
Yy9UZXN0SW50ZXJmYWNlcy5jcHAKQEAgLTY5LDYgKzY5LDcgQEAgVGVzdEludGVyZmFjZXM6OlRl
c3RJbnRlcmZhY2VzKCkKICAgICBXZWJSdW50aW1lRmVhdHVyZXM6OmVuYWJsZUlucHV0VHlwZVRp
bWUodHJ1ZSk7CiAgICAgV2ViUnVudGltZUZlYXR1cmVzOjplbmFibGVJbnB1dFR5cGVXZWVrKHRy
dWUpOwogICAgIFdlYlJ1bnRpbWVGZWF0dXJlczo6ZW5hYmxlRmlsZVN5c3RlbSh0cnVlKTsKKyAg
ICBXZWJSdW50aW1lRmVhdHVyZXM6OmVuYWJsZUZvbnRMb2FkRXZlbnRzKHRydWUpOwogICAgIFdl
YlJ1bnRpbWVGZWF0dXJlczo6ZW5hYmxlSmF2YVNjcmlwdEkxOE5BUEkodHJ1ZSk7CiAgICAgV2Vi
UnVudGltZUZlYXR1cmVzOjplbmFibGVNZWRpYVNvdXJjZSh0cnVlKTsKICAgICBXZWJSdW50aW1l
RmVhdHVyZXM6OmVuYWJsZUVuY3J5cHRlZE1lZGlhKHRydWUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGIyYWZjNmNhNmIy
ZDMwOWFlYzBiMzRlOGFkOTc0ZDI2MzM3MzQyZWQuLmU0YTVhOTA4NGZjZDkxZmMzZDQ1OTBlNjQx
Yzk4YzdlMDY1N2JkNTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMy0wMy0xMSAgS3VuaWhp
a28gU2FrYW1vdG8gIDxrc2FrYW1vdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVu
dCBGb250TG9hZGVyIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTgzOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgdGVzdHMgZm9yIGRvY3VtZW50LmZvbnRsb2FkZXIuIFNpbmNlIHRo
ZSBmZWF0dXJlIGlzIGN1cnJlbnRseSBlbmFibGVkCisgICAgICAgIG9ubHkgZm9yIGNocm9taXVt
LCB0aGUgdGVzdHMgYXJlIGV4cGVjdGVkIHRvIGZhaWwgb24gdGhlIG90aGVyIHBvcnRzLgorCisg
ICAgICAgICogZmFzdC9jc3MvZm9udGxvYWRlci1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3IuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvZm9udGxvYWRlci1ldmVudHMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9mb250bG9hZGVyLWV2ZW50cy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9mb250bG9hZGVyLWxvYWRpbmdkb25lLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvZm9udGxvYWRlci1sb2FkaW5nZG9uZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2Vz
LWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mv
Zm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1kb3dubG9hZC1lcnJvci5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhbWlsaWVz
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0
aXBsZS1mYW1pbGllcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmZvbnQv
Zm9udGxvYWRlci1sb2FkaW5nLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXIt
ZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbG9hZGluZ2Rv
bmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRl
ci1tdWx0aXBsZS1mYWNlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFtaWxpZXMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3dlYmZv
bnQvZm9udGxvYWRlci1sb2FkaW5nLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAy
MDEzLTAzLTExICBBbGFuIEN1dHRlciAgPGFsYW5jdXR0ZXJAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFtDaHJvbWl1bV0gTWFyayBMYXlvdXRUZXN0cy9odG1sNWxpYi9nZW5lcmF0ZWQvcnVuLXRl
c3RzMTYtZGF0YS5odG1sIGFzIHNsb3cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvZm9udGxvYWRlci1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjE0NTgwMTFjOTQ2ODJmNWExM2FlZjQ2MzU2MjQ1ZjUxOWI2ODkyNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3ItZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3QgZG93bmxvYWQgZXJyb3IgY2FzZXMuICJsb2Fk
IiBvciAiZXJyb3IiIGV2ZW50cyBzaG91bGQgYmUgZmlyZWQgZXhhY3RseSBvbmNlIGZvciBlYWNo
IEBmb250LWZhY2UgcnVsZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ZBSUwg
ZG9jdW1lbnQuZm9udGxvYWRlciBkb2VzIG5vdCBleGlzdAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitmb250MQorZm9udDIKK2ZvbnQzCitmb250NAor
Zm9udDUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZG93bmxv
YWQtZXJyb3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZG93bmxvYWQt
ZXJyb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wN2JhZjgxYjBmOWQxM2Y0NTNiNjkwMWExZjNiZDgzYTU5
YTMyZWJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRl
ci1kb3dubG9hZC1lcnJvci5odG1sCkBAIC0wLDAgKzEsODAgQEAKKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
dHlsZT4KKy8qIFRlc3QgMTogSW52YWxpZCBmb250IGRhdGEgKi8KK0Bmb250LWZhY2UgeworICAg
IGZvbnQtZmFtaWx5OiBteWZvbnQxOworICAgIHNyYzogdXJsKCdyZXNvdXJjZXMvaW52YWxpZGZv
bnQucG5nJykgZm9ybWF0KG9wZW50eXBlKTsKK30KKworLyogVGVzdCAyOiBEb3dubG9hZCBlcnJv
ciAqLworQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6IG15Zm9udDI7CisgICAgc3JjOiB1
cmwoJ3Jlc291cmNlcy9Eb3duTG9hZEVycm9yQWhlbS5vdGYnKTsKK30KKworLyogVGVzdCAzOiBF
bXB0eSBkYXRhIHVybCAqLworQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6IG15Zm9udDM7
CisgICAgc3JjOiB1cmwoZGF0YTphcHBsaWNhdGlvbi94LXRydWV0eXBlLWZvbnQsKSBmb3JtYXQo
dHJ1ZXR5cGUpOworfQorCisvKiBUZXN0IDQ6IERvd25sb2FkIGVycm9yIGZvbGxvd2VkIGJ5IGV4
aXN0aW5nIGxvY2FsIGZvbnQgKi8KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiBteWZv
bnQ0OworICAgIHNyYzogdXJsKCdyZXNvdXJjZXMvRG93bkxvYWRFcnJvckFoZW0ub3RmJyksIGxv
Y2FsKCdDb3VyaWVyIE5ldycpOworfQorCisvKiBUZXN0IDU6IE11bHRpcGxlIGVycm9ycyAqLwor
QGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6IG15Zm9udDU7CisgICAgc3JjOiB1cmwoJ3Jl
c291cmNlcy9Eb3duTG9hZEVycm9yQWhlbS5vdGYnKSwgdXJsKGRhdGE6YXBwbGljYXRpb24veC10
cnVldHlwZS1mb250LCkgZm9ybWF0KHRydWV0eXBlKTsKK30KKzwvc3R5bGU+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oJ1Rlc3QgZG93bmxvYWQgZXJyb3IgY2FzZXMuICJsb2FkIiBvciAiZXJyb3Ii
IGV2ZW50cyBzaG91bGQgYmUgZmlyZWQgZXhhY3RseSBvbmNlIGZvciBlYWNoIEBmb250LWZhY2Ug
cnVsZS4nKTsKKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgZXZlbnRzID0g
e307CisKK2Z1bmN0aW9uIGxvZ0V2ZW50KGUpIHsKKyAgICB2YXIgZmFtaWx5ID0gZS5mb250ZmFj
ZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdmb250LWZhbWlseScpOworICAgIGlmICghZXZlbnRz
W2ZhbWlseV0pCisgICAgICAgIGV2ZW50c1tmYW1pbHldID0gW107CisgICAgZXZlbnRzW2ZhbWls
eV0ucHVzaChlLnR5cGUpOworfQorCitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAgICBkb2N1bWVu
dC5mb250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRzdGFydCcsIGxvZ0V2ZW50KTsKKyAg
ICBkb2N1bWVudC5mb250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBsb2dFdmVudCk7
CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGxvZ0V2
ZW50KTsKKworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIubm90aWZ5V2hlbkZvbnRzUmVhZHkoZnVu
Y3Rpb24oKSB7CisgICAgICAgIHNob3VsZEJlKCJldmVudHNbJ215Zm9udDEnXSIsICJbJ2xvYWRz
dGFydCcsICdlcnJvciddIik7CisgICAgICAgIHNob3VsZEJlKCJldmVudHNbJ215Zm9udDInXSIs
ICJbJ2xvYWRzdGFydCcsICdlcnJvciddIik7CisgICAgICAgIHNob3VsZEJlKCJldmVudHNbJ215
Zm9udDMnXSIsICJbJ2xvYWRzdGFydCcsICdlcnJvciddIik7CisgICAgICAgIHNob3VsZEJlKCJl
dmVudHNbJ215Zm9udDQnXSIsICJbJ2xvYWRzdGFydCcsICdsb2FkJ10iKTsKKyAgICAgICAgc2hv
dWxkQmUoImV2ZW50c1snbXlmb250NSddIiwgIlsnbG9hZHN0YXJ0JywgJ2Vycm9yJ10iKTsKKyAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7Cit9CisKK2lmIChkb2N1bWVudC5mb250bG9h
ZGVyKQorICAgIHJ1blRlc3RzKCk7CitlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKCdkb2N1bWVudC5m
b250bG9hZGVyIGRvZXMgbm90IGV4aXN0Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogbXlmb250
MSI+Zm9udDE8L2Rpdj4KKyAgPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IG15Zm9udDIiPmZvbnQy
PC9kaXY+CisgIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBteWZvbnQzIj5mb250MzwvZGl2Pgor
ICA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogbXlmb250NCI+Zm9udDQ8L2Rpdj4KKyAgPGRpdiBz
dHlsZT0iZm9udC1mYW1pbHk6IG15Zm9udDUiPmZvbnQ1PC9kaXY+CisgIDxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZXZlbnRzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZXZlbnRzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40MDdlZWJjYjU1YTQxNWI3ODk1ODhmYTAyY2QwZjlkYjQzYTI5
NmVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1l
dmVudHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgdGhhdCB0aGUgZXZlbnQg
aGFuZGxlcnMgb2YgRm9udExvYWRlciBhcmUgY2FsbGVkIGluIHRoZSBjb3JyZWN0IG9yZGVyLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRkFJTCBkb2N1bWVudC5mb250bG9hZGVy
IGRvZXMgbm90IGV4aXN0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKK0hlbGxvLCB3b3JsZCEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2ZvbnRsb2FkZXItZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVy
LWV2ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjMjk1MDBkN2UyYTk2MDYxNWQ3NjYxMDcxMjUwY2Iy
NWU5MjFlZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9h
ZGVyLWV2ZW50cy5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4K
K0Bmb250LWZhY2UgeworICBmb250LWZhbWlseTogJ2FoZW0nOworICBzcmM6IHVybCguLi8uLi9y
ZXNvdXJjZXMvQWhlbS50dGYpOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbign
VGVzdCB0aGF0IHRoZSBldmVudCBoYW5kbGVycyBvZiBGb250TG9hZGVyIGFyZSBjYWxsZWQgaW4g
dGhlIGNvcnJlY3Qgb3JkZXIuJyk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
dmFyIGV2ZW50OwordmFyIG51bWJlck9mRXZlbnRzID0gMDsKKworZnVuY3Rpb24gaGFuZGxlRXZl
bnQoZSkgeworICAgIGV2ZW50ID0gZTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2V2ZW50
LnR5cGUnLCBbJ2xvYWRpbmcnLCAnbG9hZHN0YXJ0JywgJ2xvYWQnLCAnbG9hZGluZ2RvbmUnXVtu
dW1iZXJPZkV2ZW50c10pOworICAgIG51bWJlck9mRXZlbnRzKys7Cit9CisKK2Z1bmN0aW9uIHJ1
blRlc3RzKCkgeworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIub25sb2FkaW5nID0gaGFuZGxlRXZl
bnQ7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5vbmxvYWRpbmdkb25lID0gaGFuZGxlRXZlbnQ7
CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5vbmxvYWRzdGFydCA9IGhhbmRsZUV2ZW50OworICAg
IGRvY3VtZW50LmZvbnRsb2FkZXIub25sb2FkID0gaGFuZGxlRXZlbnQ7CisgICAgZG9jdW1lbnQu
Zm9udGxvYWRlci5vbmVycm9yID0gaGFuZGxlRXZlbnQ7CisKKyAgICBkb2N1bWVudC5mb250bG9h
ZGVyLm5vdGlmeVdoZW5Gb250c1JlYWR5KGZ1bmN0aW9uKCkgeworICAgICAgICBzaG91bGRCZSgn
bnVtYmVyT2ZFdmVudHMnLCAnNCcpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsK
K30KKworaWYgKGRvY3VtZW50LmZvbnRsb2FkZXIpCisgICAgcnVuVGVzdHMoKTsKK2Vsc2Ugewor
ICAgIHRlc3RGYWlsZWQoJ2RvY3VtZW50LmZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QnKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYg
c3R5bGU9ImZvbnQtZmFtaWx5OiBhaGVtIj5IZWxsbywgd29ybGQhPC9kaXY+CisgIDxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbG9h
ZGluZ2RvbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1s
b2FkaW5nZG9uZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGJhOTY4ZTIwMjE2NzZmNjY2YWZj
ZWRjNzUyMTlhYmQ2ZmM4Y2JiZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2ZvbnRsb2FkZXItbG9hZGluZ2RvbmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAK
K1Rlc3QgdGhhdCBvbmxvYWRpbmdkb25lIGlzIGZpcmVkIGFmdGVyIHN0eWxlIHJlY2FsY3VsYXRp
b24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitGQUlMIGRvY3VtZW50LmZvbnRs
b2FkZXIgZG9lcyBub3QgZXhpc3QKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorYWFhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250
bG9hZGVyLWxvYWRpbmdkb25lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVy
LWxvYWRpbmdkb25lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjNiMDY1NzE5MTNlY2VhNDAyMjc4ZjhlYWY3
NzVjMDE3MmZhZjU1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Zv
bnRsb2FkZXItbG9hZGluZ2RvbmUuaHRtbApAQCAtMCwwICsxLDU0IEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c3R5bGU+Citib2R5IHsKKyAgZm9udC1mYW1pbHk6IHNlcmlmOworfQorQGZvbnQtZmFjZSB7
CisgIGZvbnQtZmFtaWx5OiAnYWhlbSc7CisgIHNyYzogdXJsKC4uLy4uL3Jlc291cmNlcy9BaGVt
LnR0Zik7Cit9CisjdGVzdCB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZQorfQorI3Rlc3Qgc3BhbiB7
CisgIGZvbnQtZmFtaWx5OiBhaGVtOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bignVGVzdCB0aGF0IG9ubG9hZGluZ2RvbmUgaXMgZmlyZWQgYWZ0ZXIgc3R5bGUgcmVjYWxjdWxh
dGlvbi4nKTsKKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitmdW5jdGlvbiBydW5U
ZXN0cygpIHsKKyAgICBkb2N1bWVudC5mb250bG9hZGVyLm9ubG9hZGluZ2RvbmUgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgZGVidWcoJ2xvYWRpbmdkb25lJyk7CisgICAgICAgIHRlc3REaXYgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3REaXYsIDApLndpZHRoJywgJzQ4cHgn
KTsKKyAgICB9OworCisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5ub3RpZnlXaGVuRm9udHNSZWFk
eShmdW5jdGlvbigpIHsKKyAgICAgICAgZGVidWcoJ25vdGlmeVdoZW5Gb250c1JlYWR5KCkgY2Fs
bGJhY2snKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZSh0ZXN0RGl2LCAwKS53aWR0aCcsICc0OHB4Jyk7CisgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgIH0pOworfQorCitpZiAoZG9jdW1lbnQuZm9udGxvYWRlcikKKyAgICBydW5UZXN0
cygpOworZWxzZSB7CisgICAgdGVzdEZhaWxlZCgnZG9jdW1lbnQuZm9udGxvYWRlciBkb2VzIG5v
dCBleGlzdCcpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgPGRpdiBpZD10ZXN0PgorICAgIDxhIGhyZWY9IiMiPgorICAgICAgPHNwYW4+YWFh
PC9zcGFuPgorICAgIDwvYT4KKyAgPC9kaXY+CisgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93bmxv
YWQtZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1t
dWx0aXBsZS1mYWNlcy1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTIx
NzM5YzY1YTEwMzkxYWUxNWY0M2ZiNDI0MDUyNzAyYThlZGM1NgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93bmxvYWQt
ZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgbG9hZCBldmVudHMgZm9y
IGEgZm9udCBmYW1pbHkgY29uc2lzdHMgb2YgbXVsdGlwbGUgQGZvbnQtZmFjZXMsIGluY2x1ZGlu
ZyBkb3dubG9hZCBlcnJvci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ZBSUwg
ZG9jdW1lbnQuZm9udGxvYWRlciBkb2VzIG5vdCBleGlzdAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93bmxvYWQtZXJyb3IuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93bmxvYWQtZXJy
b3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43MWU2YjhlZjY1MThhODMwZjM0OWJjMDJlOWM5MTZiOThkNTI4
NDk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1t
dWx0aXBsZS1mYWNlcy1kb3dubG9hZC1lcnJvci5odG1sCkBAIC0wLDAgKzEsNzAgQEAKKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiBUZXN0Rm9u
dDsKKyAgICBzcmM6IHVybCguLi8uLi9yZXNvdXJjZXMvQWhlbS50dGYpOworfQorCitAZm9udC1m
YWNlIHsKKyAgICBmb250LWZhbWlseTogVGVzdEZvbnQ7CisgICAgc3JjOiB1cmwoJ3Jlc291cmNl
cy9Eb3duTG9hZEVycm9yQWhlbS5vdGYnKTsKKyAgICB1bmljb2RlLXJhbmdlOiB1KzYxLTdhOyAv
KiAnYSctJ3onICovCit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGxv
YWQgZXZlbnRzIGZvciBhIGZvbnQgZmFtaWx5IGNvbnNpc3RzIG9mIG11bHRpcGxlIEBmb250LWZh
Y2VzLCBpbmNsdWRpbmcgZG93bmxvYWQgZXJyb3IuJyk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKwordmFyIGV2ZW50cyA9IHt9OworCitmdW5jdGlvbiBjb3VudEV2ZW50KGUpIHsK
KyAgICBpZiAoIWV2ZW50c1tlLnR5cGVdKQorICAgICAgICBldmVudHNbZS50eXBlXSA9IDA7Cisg
ICAgZXZlbnRzW2UudHlwZV0gKz0gMTsKK30KKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAg
ZG9jdW1lbnQuZm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkaW5nJywgY291bnRFdmVu
dCk7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2Fkc3RhcnQn
LCBjb3VudEV2ZW50KTsKKyAgICBkb2N1bWVudC5mb250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIo
J2xvYWQnLCBjb3VudEV2ZW50KTsKKyAgICBkb2N1bWVudC5mb250bG9hZGVyLmFkZEV2ZW50TGlz
dGVuZXIoJ2Vycm9yJywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5hZGRF
dmVudExpc3RlbmVyKCdsb2FkaW5nZG9uZScsIGNvdW50RXZlbnQpOworCisgICAgZG9jdW1lbnQu
Zm9udGxvYWRlci5sb2FkRm9udCh7IGZvbnQ6ICcxMHB4IFRlc3RGb250Jywgb25zdWNjZXNzOiBv
bnN1Y2Nlc3MsIG9uZXJyb3I6IG9uZXJyb3IgfSk7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5u
b3RpZnlXaGVuRm9udHNSZWFkeSh2ZXJpZnkpOworfQorCitmdW5jdGlvbiBvbnN1Y2Nlc3MoKSB7
CisgICAgdGVzdEZhaWxlZCgiRXhwZWN0ZWQgZXJyb3IsIGJ1dCBvbnN1Y2Nlc3MoKSBjYWxsZWQi
KTsKKyAgICBvbmVycm9yKCk7Cit9CisKK2Z1bmN0aW9uIG9uZXJyb3IoKSB7CisgICAgc2hvdWxk
QmUoImV2ZW50c1snbG9hZGluZyddIiwgIjEiKTsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydsb2Fk
c3RhcnQnXSIsICIyIik7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZCddIiwgIjEiKTsKKyAg
ICBzaG91bGRCZSgiZXZlbnRzWydlcnJvciddIiwgIjEiKTsKKyAgICBzaG91bGRCZSgiZXZlbnRz
Wydsb2FkaW5nZG9uZSddIiwgInVuZGVmaW5lZCIpOworICAgIHNob3VsZEJlKCJkb2N1bWVudC5m
b250bG9hZGVyLmNoZWNrRm9udCgnMTBweCBUZXN0Rm9udCcpIiwgImZhbHNlIik7Cit9CisKK2Z1
bmN0aW9uIHZlcmlmeSgpIHsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydsb2FkaW5nZG9uZSddIiwg
IjEiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworaWYgKGRvY3VtZW50LmZvbnRsb2FkZXIp
CisgICAgcnVuVGVzdHMoKTsKK2Vsc2UgeworICAgIHRlc3RGYWlsZWQoJ2RvY3VtZW50LmZvbnRs
b2FkZXIgZG9lcyBub3QgZXhpc3QnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+CisgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uN2VkN2E2MjI4YmY2ODEyMjlkYWQ5ZDUxMzIwMmJjNjg3OTE4OTRkOAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlw
bGUtZmFjZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgbG9hZCBldmVudHMg
Zm9yIGEgZm9udCBmYW1pbHkgY29uc2lzdHMgb2YgbXVsdGlwbGUgQGZvbnQtZmFjZXMuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitGQUlMIGRvY3VtZW50LmZvbnRsb2FkZXIgZG9l
cyBub3QgZXhpc3QKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRp
cGxlLWZhY2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxl
LWZhY2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDFmZDBiYTE3NTdmZGY4NTg1OTcyMjQ3ZTcyMmQ3MWIw
MTAzZWNiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2Fk
ZXItbXVsdGlwbGUtZmFjZXMuaHRtbApAQCAtMCwwICsxLDcwIEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogVGVzdEZvbnQ7CisgICAgc3Jj
OiBsb2NhbCgnQ291cmllciBOZXcnKTsKK30KKworQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1p
bHk6IFRlc3RGb250OworICAgIHNyYzogdXJsKC4uLy4uL3Jlc291cmNlcy9BaGVtLnR0Zik7Cisg
ICAgdW5pY29kZS1yYW5nZTogdSs2MS03YTsgLyogJ2EnLSd6JyAqLworfQorPC9zdHlsZT4KKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBsb2FkIGV2ZW50cyBmb3IgYSBmb250IGZhbWlseSBj
b25zaXN0cyBvZiBtdWx0aXBsZSBAZm9udC1mYWNlcy4nKTsKKword2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworCit2YXIgZXZlbnRzID0ge307CisKK2Z1bmN0aW9uIGNvdW50RXZlbnQoZSkg
eworICAgIGlmICghZXZlbnRzW2UudHlwZV0pCisgICAgICAgIGV2ZW50c1tlLnR5cGVdID0gMDsK
KyAgICBldmVudHNbZS50eXBlXSArPSAxOworfQorCitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAg
ICBkb2N1bWVudC5mb250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRpbmcnLCBjb3VudEV2
ZW50KTsKKyAgICBkb2N1bWVudC5mb250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRzdGFy
dCcsIGNvdW50RXZlbnQpOworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5l
cignbG9hZCcsIGNvdW50RXZlbnQpOworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIuYWRkRXZlbnRM
aXN0ZW5lcignZXJyb3InLCBjb3VudEV2ZW50KTsKKyAgICBkb2N1bWVudC5mb250bG9hZGVyLmFk
ZEV2ZW50TGlzdGVuZXIoJ2xvYWRpbmdkb25lJywgY291bnRFdmVudCk7CisKKyAgICBkb2N1bWVu
dC5mb250bG9hZGVyLmxvYWRGb250KHsgZm9udDogJzEwcHggVGVzdEZvbnQnLCBvbnN1Y2Nlc3M6
IG9uc3VjY2Vzcywgb25lcnJvcjogb25lcnJvciB9KTsKKyAgICBkb2N1bWVudC5mb250bG9hZGVy
Lm5vdGlmeVdoZW5Gb250c1JlYWR5KHZlcmlmeSk7Cit9CisKK2Z1bmN0aW9uIG9uc3VjY2Vzcygp
IHsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydsb2FkaW5nJ10iLCAiMSIpOworICAgIHNob3VsZEJl
KCJldmVudHNbJ2xvYWRzdGFydCddIiwgIjIiKTsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydsb2Fk
J10iLCAiMiIpOworICAgIHNob3VsZEJlKCJldmVudHNbJ2Vycm9yJ10iLCAidW5kZWZpbmVkIik7
CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZGluZ2RvbmUnXSIsICJ1bmRlZmluZWQiKTsKKyAg
ICBzaG91bGRCZSgiZG9jdW1lbnQuZm9udGxvYWRlci5jaGVja0ZvbnQoJzEwcHggVGVzdEZvbnQn
KSIsICJ0cnVlIik7Cit9CisKK2Z1bmN0aW9uIG9uZXJyb3IoKSB7CisgICAgdGVzdEZhaWxlZCgi
RXhwZWN0ZWQgc3VjY2VzcywgYnV0IG9uZXJyb3IoKSBjYWxsZWQiKTsKKyAgICBvbnN1Y2Nlc3Mo
KTsKK30KKworZnVuY3Rpb24gdmVyaWZ5KCkgeworICAgIHNob3VsZEJlKCJldmVudHNbJ2xvYWRp
bmdkb25lJ10iLCAiMSIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitpZiAoZG9jdW1lbnQu
Zm9udGxvYWRlcikKKyAgICBydW5UZXN0cygpOworZWxzZSB7CisgICAgdGVzdEZhaWxlZCgnZG9j
dW1lbnQuZm9udGxvYWRlciBkb2VzIG5vdCBleGlzdCcpOworICAgIGZpbmlzaEpTVGVzdCgpOwor
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYW1pbGllcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZh
bWlsaWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjAwYjA0MmRmNjAyZWFkYzBkYzNlYWUy
ZTYyNjcyZGQ4NTM1YmM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Zm9udGxvYWRlci1tdWx0aXBsZS1mYW1pbGllcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBA
QAorVGVzdCBsb2FkIGV2ZW50cyBmb3IgZm9udGxvYWRlci5sb2FkRm9udCgpIHdpdGggbXVsdGlw
bGUgZm9udCBmYW1pbGllcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ZBSUwg
ZG9jdW1lbnQuZm9udGxvYWRlciBkb2VzIG5vdCBleGlzdAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFtaWxpZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFtaWxpZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZTUx
YWJkZmRlOWZkYWYzYTFkZjIwZTY3YTA1MmZlMDZmMDQyYTdhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYW1pbGllcy5odG1sCkBA
IC0wLDAgKzEsNjkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAg
IGZvbnQtZmFtaWx5OiBUZXN0Rm9udDE7CisgICAgc3JjOiBsb2NhbCgnQ291cmllciBOZXcnKTsK
K30KKworQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6IFRlc3RGb250MjsKKyAgICBzcmM6
IHVybCguLi8uLi9yZXNvdXJjZXMvQWhlbS50dGYpOworICAgIHVuaWNvZGUtcmFuZ2U6IHUrNjEt
N2E7IC8qICdhJy0neicgKi8KK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rl
c3QgbG9hZCBldmVudHMgZm9yIGZvbnRsb2FkZXIubG9hZEZvbnQoKSB3aXRoIG11bHRpcGxlIGZv
bnQgZmFtaWxpZXMuJyk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV2
ZW50cyA9IHt9OworCitmdW5jdGlvbiBjb3VudEV2ZW50KGUpIHsKKyAgICBpZiAoIWV2ZW50c1tl
LnR5cGVdKQorICAgICAgICBldmVudHNbZS50eXBlXSA9IDA7CisgICAgZXZlbnRzW2UudHlwZV0g
Kz0gMTsKK30KKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgZG9jdW1lbnQuZm9udGxvYWRl
ci5hZGRFdmVudExpc3RlbmVyKCdsb2FkaW5nJywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQu
Zm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2Fkc3RhcnQnLCBjb3VudEV2ZW50KTsKKyAg
ICBkb2N1bWVudC5mb250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBjb3VudEV2ZW50
KTsKKyAgICBkb2N1bWVudC5mb250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgY291
bnRFdmVudCk7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2Fk
aW5nZG9uZScsIGNvdW50RXZlbnQpOworCisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5sb2FkRm9u
dCh7IGZvbnQ6ICcxMHB4IFRlc3RGb250MSwgVGVzdEZvbnQyJywgb25zdWNjZXNzOiBvbnN1Y2Nl
c3MsIG9uZXJyb3I6IG9uZXJyb3IgfSk7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5ub3RpZnlX
aGVuRm9udHNSZWFkeSh2ZXJpZnkpOworfQorCitmdW5jdGlvbiBvbnN1Y2Nlc3MoKSB7CisgICAg
c2hvdWxkQmUoImV2ZW50c1snbG9hZGluZyddIiwgIjEiKTsKKyAgICBzaG91bGRCZSgiZXZlbnRz
Wydsb2Fkc3RhcnQnXSIsICIyIik7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZCddIiwgIjIi
KTsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydlcnJvciddIiwgInVuZGVmaW5lZCIpOworICAgIHNo
b3VsZEJlKCJldmVudHNbJ2xvYWRpbmdkb25lJ10iLCAidW5kZWZpbmVkIik7CisgICAgc2hvdWxk
QmUoImRvY3VtZW50LmZvbnRsb2FkZXIuY2hlY2tGb250KCcxMHB4IFRlc3RGb250MSwgVGVzdEZv
bnQyJykiLCAidHJ1ZSIpOworfQorCitmdW5jdGlvbiBvbmVycm9yKCkgeworICAgIHRlc3RGYWls
ZWQoIkV4cGVjdGVkIHN1Y2Nlc3MsIGJ1dCBvbmVycm9yKCkgY2FsbGVkIik7Cit9CisKK2Z1bmN0
aW9uIHZlcmlmeSgpIHsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydsb2FkaW5nZG9uZSddIiwgIjEi
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworaWYgKGRvY3VtZW50LmZvbnRsb2FkZXIpCisg
ICAgcnVuVGVzdHMoKTsKK2Vsc2UgeworICAgIHRlc3RGYWlsZWQoJ2RvY3VtZW50LmZvbnRsb2Fk
ZXIgZG9lcyBub3QgZXhpc3QnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+CisgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxvYWRp
bmctYXR0cmlidXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNTczNTg4Y2I3Mzk0YzZmNzIw
Yjg5NDk3MmQ2OWQ4ZmQyYzVlMWI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJmb250L2ZvbnRsb2FkZXItbG9hZGluZy1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgZm9yIEZvbnRMb2FkZXIubG9hZGluZyBhdHRyaWJ1dGUK
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ZBSUwgZG9jdW1lbnQuZm9udGxvYWRl
ciBkb2VzIG5vdCBleGlzdAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZm9udC9m
b250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmZvbnQvZm9udGxvYWRlci1sb2FkaW5nLWF0dHJpYnV0ZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3
Y2E2ZTgwYWJkNjRlMDY3YWJhMmQ2YjQ1MjY0MTU5MDMwNjI2MjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmZvbnQvZm9udGxvYWRlci1sb2FkaW5nLWF0dHJp
YnV0ZS5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxl
PgorICBAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogJ1Rlc3RGb250JzsKKyAgICBzcmM6
IHVybChzbG93LWFoZW0tbG9hZGluZy5jZ2kpOworICB9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCdUZXN0IGZvciBGb250TG9hZGVyLmxvYWRpbmcgYXR0cmlidXRlJyk7CisKK3dp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAg
c2hvdWxkQmUoImRvY3VtZW50LmZvbnRsb2FkZXIuY2hlY2tGb250KCcxMHB4IFRlc3RGb250Jyki
LCAiZmFsc2UiKTsKKyAgICBzaG91bGRCZSgiZG9jdW1lbnQuZm9udGxvYWRlci5sb2FkaW5nIiwg
ImZhbHNlIik7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5sb2FkRm9udCh7IGZvbnQ6ICcxMHB4
IFRlc3RGb250Jywgb25zdWNjZXNzOiBvbnN1Y2Nlc3MgfSk7CisgICAgc2hvdWxkQmUoImRvY3Vt
ZW50LmZvbnRsb2FkZXIubG9hZGluZyIsICJ0cnVlIik7Cit9CisKK2Z1bmN0aW9uIG9uc3VjY2Vz
cygpIHsKKyAgICBzaG91bGRCZSgiZG9jdW1lbnQuZm9udGxvYWRlci5jaGVja0ZvbnQoJzEwcHgg
VGVzdEZvbnQnKSIsICJ0cnVlIik7CisgICAgc2hvdWxkQmUoImRvY3VtZW50LmZvbnRsb2FkZXIu
bG9hZGluZyIsICJmYWxzZSIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitpZiAoZG9jdW1l
bnQuZm9udGxvYWRlcikKKyAgICBydW5UZXN0cygpOworZWxzZSB7CisgICAgdGVzdEZhaWxlZCgn
ZG9jdW1lbnQuZm9udGxvYWRlciBkb2VzIG5vdCBleGlzdCcpOworICAgIGZpbmlzaEpTVGVzdCgp
OworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9m
b250bG9hZGVyLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM2OTdiNTgyM2YyYTMxNjY3ZDI5NzVhMDUyYmJmNTU0ODlmNjEwNjEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nz
cy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBA
CitUZXN0IGRvd25sb2FkIGVycm9yIGNhc2VzLiAibG9hZCIgb3IgImVycm9yIiBldmVudHMgc2hv
dWxkIGJlIGZpcmVkIGV4YWN0bHkgb25jZSBmb3IgZWFjaCBAZm9udC1mYWNlIHJ1bGUuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGV2ZW50c1snbXlmb250MSddIGlzIFsn
bG9hZHN0YXJ0JywgJ2Vycm9yJ10KK1BBU1MgZXZlbnRzWydteWZvbnQyJ10gaXMgWydsb2Fkc3Rh
cnQnLCAnZXJyb3InXQorUEFTUyBldmVudHNbJ215Zm9udDMnXSBpcyBbJ2xvYWRzdGFydCcsICdl
cnJvciddCitQQVNTIGV2ZW50c1snbXlmb250NCddIGlzIFsnbG9hZHN0YXJ0JywgJ2xvYWQnXQor
UEFTUyBldmVudHNbJ215Zm9udDUnXSBpcyBbJ2xvYWRzdGFydCcsICdlcnJvciddCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK2ZvbnQxCitmb250Mgor
Zm9udDMKK2ZvbnQ0Citmb250NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1ldmVudHMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc4NjU4NzEwNzU5YmJjODU5NjIwNWExYjI4NWQwMjM3OGJjODI5NmEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nz
cy9mb250bG9hZGVyLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCB0
aGF0IHRoZSBldmVudCBoYW5kbGVycyBvZiBGb250TG9hZGVyIGFyZSBjYWxsZWQgaW4gdGhlIGNv
cnJlY3Qgb3JkZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGV2ZW50
LnR5cGUgaXMgImxvYWRpbmciCitQQVNTIGV2ZW50LnR5cGUgaXMgImxvYWRzdGFydCIKK1BBU1Mg
ZXZlbnQudHlwZSBpcyAibG9hZCIKK1BBU1MgZXZlbnQudHlwZSBpcyAibG9hZGluZ2RvbmUiCitQ
QVNTIG51bWJlck9mRXZlbnRzIGlzIDQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorSGVsbG8sIHdvcmxkIQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1sb2FkaW5nZG9uZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVy
LWxvYWRpbmdkb25lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjZjNTllYzQ5Nzk2YWI4NzFh
NDEwNzQyZGY3MzgzNTQyNWY5ZDJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1sb2FkaW5nZG9uZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdCB0aGF0IG9ubG9hZGluZ2RvbmUgaXMgZmlyZWQgYWZ0
ZXIgc3R5bGUgcmVjYWxjdWxhdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K2xvYWRpbmdkb25lCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3REaXYsIDApLndp
ZHRoIGlzICI0OHB4Igorbm90aWZ5V2hlbkZvbnRzUmVhZHkoKSBjYWxsYmFjaworUEFTUyB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RGl2LCAwKS53aWR0aCBpcyAiNDhweCIKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorYWFhCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRp
cGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93bmxvYWQt
ZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0ODQ0NmFhMjFmZGI2ZTk2ODVjNGQ1NGM3
MmE2OWRiMWZiZWJmMTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9y
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitUZXN0IGxvYWQgZXZlbnRzIGZvciBhIGZv
bnQgZmFtaWx5IGNvbnNpc3RzIG9mIG11bHRpcGxlIEBmb250LWZhY2VzLCBpbmNsdWRpbmcgZG93
bmxvYWQgZXJyb3IuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGV2ZW50
c1snbG9hZGluZyddIGlzIDEKK1BBU1MgZXZlbnRzWydsb2Fkc3RhcnQnXSBpcyAyCitQQVNTIGV2
ZW50c1snbG9hZCddIGlzIDEKK1BBU1MgZXZlbnRzWydlcnJvciddIGlzIDEKK1BBU1MgZXZlbnRz
Wydsb2FkaW5nZG9uZSddIGlzIHVuZGVmaW5lZAorUEFTUyBkb2N1bWVudC5mb250bG9hZGVyLmNo
ZWNrRm9udCgnMTBweCBUZXN0Rm9udCcpIGlzIGZhbHNlCitQQVNTIGV2ZW50c1snbG9hZGluZ2Rv
bmUnXSBpcyAxCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3Mv
Zm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kZjMwMTU3NGFhMjE1MzkzZTE1ZmE3MzI5YTQ3NjA0ZWE4OWI1Y2Y0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9j
c3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBA
QAorVGVzdCBsb2FkIGV2ZW50cyBmb3IgYSBmb250IGZhbWlseSBjb25zaXN0cyBvZiBtdWx0aXBs
ZSBAZm9udC1mYWNlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZXZl
bnRzWydsb2FkaW5nJ10gaXMgMQorUEFTUyBldmVudHNbJ2xvYWRzdGFydCddIGlzIDIKK1BBU1Mg
ZXZlbnRzWydsb2FkJ10gaXMgMgorUEFTUyBldmVudHNbJ2Vycm9yJ10gaXMgdW5kZWZpbmVkCitQ
QVNTIGV2ZW50c1snbG9hZGluZ2RvbmUnXSBpcyB1bmRlZmluZWQKK1BBU1MgZG9jdW1lbnQuZm9u
dGxvYWRlci5jaGVja0ZvbnQoJzEwcHggVGVzdEZvbnQnKSBpcyB0cnVlCitQQVNTIGV2ZW50c1sn
bG9hZGluZ2RvbmUnXSBpcyAxCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYW1pbGllcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZh
bWlsaWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZGMxMzZkYmE5OTNiOWRjZmY4ZTA5NjM2
ZDI5MTVlNjExYjRiNzYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYW1pbGllcy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNiBAQAorVGVzdCBsb2FkIGV2ZW50cyBmb3IgZm9udGxvYWRlci5sb2Fk
Rm9udCgpIHdpdGggbXVsdGlwbGUgZm9udCBmYW1pbGllcy4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgZXZlbnRzWydsb2FkaW5nJ10gaXMgMQorUEFTUyBldmVudHNbJ2xv
YWRzdGFydCddIGlzIDIKK1BBU1MgZXZlbnRzWydsb2FkJ10gaXMgMgorUEFTUyBldmVudHNbJ2Vy
cm9yJ10gaXMgdW5kZWZpbmVkCitQQVNTIGV2ZW50c1snbG9hZGluZ2RvbmUnXSBpcyB1bmRlZmlu
ZWQKK1BBU1MgZG9jdW1lbnQuZm9udGxvYWRlci5jaGVja0ZvbnQoJzEwcHggVGVzdEZvbnQxLCBU
ZXN0Rm9udDInKSBpcyB0cnVlCitQQVNTIGV2ZW50c1snbG9hZGluZ2RvbmUnXSBpcyAxCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy93ZWJmb250L2ZvbnRs
b2FkZXItbG9hZGluZy1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vaHR0cC90ZXN0cy93ZWJmb250L2ZvbnRsb2FkZXItbG9hZGluZy1hdHRyaWJ1
dGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhNDg5ODBlYWUwZjI3MjNmMGQ1YWIzOTQ1ODFj
ZmJhMDBkN2JjN2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9odHRwL3Rlc3RzL3dlYmZvbnQvZm9udGxvYWRlci1sb2FkaW5nLWF0dHJpYnV0ZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBmb3IgRm9udExvYWRlci5sb2FkaW5nIGF0
dHJpYnV0ZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5m
b250bG9hZGVyLmNoZWNrRm9udCgnMTBweCBUZXN0Rm9udCcpIGlzIGZhbHNlCitQQVNTIGRvY3Vt
ZW50LmZvbnRsb2FkZXIubG9hZGluZyBpcyBmYWxzZQorUEFTUyBkb2N1bWVudC5mb250bG9hZGVy
LmxvYWRpbmcgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5mb250bG9hZGVyLmNoZWNrRm9udCgnMTBw
eCBUZXN0Rm9udCcpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQuZm9udGxvYWRlci5sb2FkaW5nIGlz
IGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
Kwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192442</attachid>
            <date>2013-03-11 05:05:19 -0700</date>
            <delta_ts>2013-03-12 02:40:27 -0700</delta_ts>
            <desc>Updated patch, fix build error</desc>
            <filename>bug-98395-20130311210118.patch</filename>
            <type>text/plain</type>
            <size>126578</size>
            <attacher name="Kunihiko Sakamoto">ksakamoto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDc1ZTUwMDYyZDc1YmEx
OGYzNmYwYzAzYzMwNTUyNzg3ZTMyYmFhNi4uMWVmNGFkNDUyNzAzNGFjZDExMzM0MmRiYWUyYjM1
OGY4ZDU3OTJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMiBAQAorMjAxMy0wMy0xMSAgS3Vu
aWhpa28gU2FrYW1vdG8gIDxrc2FrYW1vdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxl
bWVudCBGb250TG9hZGVyIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTgzOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIEZvbnRMb2FkZXIgaW50
ZXJmYWNlIGRlZmluZWQgaW4gQ1NTIEZvbnQKKyAgICAgICAgTG9hZCBFdmVudHMgTW9kdWxlIExl
dmVsIDMuWzFdIEl0IGFkZHMgZm9udGxvYWRlciBhdHRyaWJ1dGUgdG8KKyAgICAgICAgRG9jdW1l
bnQsIGFuZCBhZGRzIHR3byBpbnRlcmZhY2VzLCBGb250TG9hZGVyIGFuZAorICAgICAgICBDU1NG
b250RmFjZUxvYWRFdmVudCB0byBXZWJDb3JlLgorCisgICAgICAgIFsxXTogaHR0cDovL2Rldi53
My5vcmcvY3Nzd2cvY3NzLWZvbnQtbG9hZC1ldmVudHMtMy8KKworICAgICAgICBUaGlzIGZlYXR1
cmUgaXMgZ3VhcmRlZCBieSBGT05UX0xPQURfRVZFTlRTIGNvbXBpbGVyIGZsYWcgYW5kCisgICAg
ICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmZvbnRMb2FkRXZlbnRzRW5hYmxlZCgpIHJ1bnRp
bWUgZmxhZy4KKworICAgICAgICBUZXN0czogZmFzdC9jc3MvZm9udGxvYWRlci1kb3dubG9hZC1l
cnJvci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9mb250bG9hZGVyLWV2ZW50cy5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2Nzcy9mb250bG9hZGVyLWxvYWRpbmdkb25lLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93bmxvYWQt
ZXJyb3IuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1m
YWNlcy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZh
bWlsaWVzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVy
LWxvYWRpbmctYXR0cmlidXRlLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGRp
bmcgRm9udExvYWRlci9DU1NGb250RmFjZUxvYWRFdmVudCBmaWxlcy4KKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5jcHA6IERpdHRvLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IERp
dHRvLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLnByaTogRGl0dG8uCisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbTogRGl0dG8uCisgICAgICAgICogVGFyZ2V0LnByaTogRGl0dG8uCisg
ICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ai5maWx0ZXJzOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZSk6IEFkZCBjb252ZXJ0
VmFsdWUoKSBmb3IgQ1NTRm9udEZhY2VSdWxlLCBET01FcnJvciwgYW5kIFZvaWRDYWxsYmFjay4K
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaDogRGl0dG8uCisgICAgICAgICog
YmluZGluZ3MvdjgvRGljdGlvbmFyeS5jcHA6IEFkZCBnZXQoKSBmb3IgQ1NTRm9udEZhY2VSdWxl
LCBET01FcnJvciwgYW5kIFZvaWRDYWxsYmFjay4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25h
cnk6OmdldCk6CisgICAgICAgICogYmluZGluZ3MvdjgvRGljdGlvbmFyeS5oOiBEaXR0by4KKyAg
ICAgICAgKERpY3Rpb25hcnkpOgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZS5jcHA6IE5vdGlm
aWVzIEZvbnRMb2FkZXIgYXMgbG9hZCBwcm9ncmVzc2VzLgorICAgICAgICAoV2ViQ29yZTo6Q1NT
Rm9udEZhY2U6OmZvbnRMb2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2U6Omdl
dEZvbnREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpub3RpZnlGb250TG9h
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpub3RpZnlMb2FkaW5nRG9uZSk6
CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlLmg6IEFkZCB0d28gbWVtYmVyIHZhcmlhYmxlcy4g
bV9ydWxlIHN0b3JlcyBDU1NGb250RmFjZVJ1bGUgZm9yIHRoZSBmb250ZmFjZS4gbV9sb2FkU3Rh
dGUgaG9sZHMgY3VycmVudCBzdGF0ZSBvZiB0aGUgZm9udGZhY2UgaW4gdGVybXMgb2YgRm9udExv
YWRlci4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpjcmVhdGUpOiBUYWtlcyBhZGRp
dGlvbmFsIHBhcmFtZXRlciBvZiB0eXBlIENTU0ZvbnRGYWNlUnVsZS4KKyAgICAgICAgKFdlYkNv
cmU6OkNTU0ZvbnRGYWNlOjpsb2FkU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZh
Y2U6OkNTU0ZvbnRGYWNlKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlTG9hZEV2ZW50OjpDU1NGb250
RmFjZUxvYWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZUxvYWRFdmVudDo6
fkNTU0ZvbnRGYWNlTG9hZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlTG9h
ZEV2ZW50OjppbnRlcmZhY2VOYW1lKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VMb2FkRXZl
bnQuaDogQWRkZWQuCisgICAgICAgIChDU1NGb250RmFjZUxvYWRFdmVudEluaXQpOgorICAgICAg
ICAoQ1NTRm9udEZhY2VMb2FkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VM
b2FkRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZUxvYWRFdmVu
dDo6Y3JlYXRlRm9yRm9udEZhY2VSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNl
TG9hZEV2ZW50OjpjcmVhdGVGb3JFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFj
ZUxvYWRFdmVudDo6Zm9udGZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VMb2Fk
RXZlbnQ6OmVycm9yKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VSdWxlLmlkbDogQWRkIEpTR2VuZXJhdGVU
b0pTT2JqZWN0IGFuZCBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QgYXMgSlNDIGJpbmRpbmcgbmVl
ZHMgdGhlbS4KKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTRm9udEZhY2VTb3VyY2U6OmlzRGVjb2RlRXJyb3IpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU291cmNlOjplbnN1cmVGb250RGF0YSk6IEFkZGVkLgor
ICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNvdXJjZS5oOgorICAgICAgICAoQ1NTRm9udEZhY2VT
b3VyY2UpOgorICAgICAgICAqIGNzcy9DU1NGb250U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1bGUpOiBQYXNzIGEgQ1NTRm9udEZh
Y2VSdWxlIHRvIENTU0ZvbnRGYWNlOjpjcmVhdGUoKS4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0Zv
bnRTZWxlY3Rvcjo6Z2V0Rm9udERhdGEpOiBNb3ZlZCBsb2dpYyBmb3IgY3JlYXRpbmcgYSBDU1NT
ZWdtZW50ZWRGb250RmFjZSB0byBhIGhlbHBlciBmdW5jdGlvbiBnZXRGb250RmFjZSgpLgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTRm9udFNlbGVjdG9yOjpnZXRGb250RmFjZSk6IEFkZGVkLgorICAg
ICAgICAqIGNzcy9DU1NGb250U2VsZWN0b3IuaDoKKyAgICAgICAgKiBjc3MvQ1NTU2VnbWVudGVk
Rm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VnbWVudGVkRm9udEZhY2U6OmZv
bnRMb2FkZWQpOiBGaXJlcyBjYWxsYmFja3Mgd2hlbiBsb2FkIGlzIGNvbXBsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1NlZ21lbnRlZEZvbnRGYWNlOjppc0xvYWRpbmcpOiBSZXR1cm5zIHRy
dWUgaWYgYW55IGZvbnRzIGFyZSBzdGlsbCBsb2FkaW5nLgorICAgICAgICAoV2ViQ29yZTo6Q1NT
U2VnbWVudGVkRm9udEZhY2U6OmNoZWNrRm9udCk6IFJldHVybnMgdHJ1ZSBpZiBhbGwgZm9udHMg
YXJlIGxvYWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlZ21lbnRlZEZvbnRGYWNlOjpsb2Fk
Rm9udCk6IFN0YXJ0cyBsb2FkIGJ5IGNhbGxpbmcgZ2V0Rm9udERhdGEoKS4KKyAgICAgICAgKiBj
c3MvQ1NTU2VnbWVudGVkRm9udEZhY2UuaDoKKyAgICAgICAgKENTU1NlZ21lbnRlZEZvbnRGYWNl
KTogRGVjbGFyZXMgbmV3IGZ1bmN0aW9ucyBhbmQgYSB2ZWN0b3IgdG8gc3RvcmUgY2FsbGJhY2tz
LgorICAgICAgICAoTG9hZEZvbnRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWdt
ZW50ZWRGb250RmFjZTo6TG9hZEZvbnRDYWxsYmFjazo6fkxvYWRGb250Q2FsbGJhY2spOgorICAg
ICAgICAqIGNzcy9Gb250TG9hZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChMb2FkRm9udENhbGxi
YWNrKTogSG9sZHMgY2FsbGJhY2sgZnVuY3Rpb25zIG9mIEZvbnRMb2FkZXIubG9hZEZvbnQoKS4K
KyAgICAgICAgKFdlYkNvcmU6OkxvYWRGb250Q2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpMb2FkRm9udENhbGxiYWNrOjpjcmVhdGVGcm9tUGFyYW1zKToKKyAgICAgICAgKFdl
YkNvcmU6OkxvYWRGb250Q2FsbGJhY2s6OkxvYWRGb250Q2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6TG9hZEZvbnRDYWxsYmFjazo6bm90aWZ5TG9hZGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkxvYWRGb250Q2FsbGJhY2s6Om5vdGlmeUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRM
b2FkZXI6OkZvbnRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udExvYWRlcjo6fkZvbnRM
b2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udExvYWRlcjo6ZXZlbnRUYXJnZXREYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OkZvbnRMb2FkZXI6OmVuc3VyZUV2ZW50VGFyZ2V0RGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGb250TG9hZGVyOjppbnRlcmZhY2VOYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRMb2FkZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udExvYWRlcjo6ZGlkTGF5b3V0KTogRmlyZXMgcGVuZGluZyBldmVudHMgYW5kIGNh
bGxiYWNrcy4gVGhpcyBpcyBjYWxsZWQgd2hlbiBsYXlvdXQgaGF2ZSBjb21wbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpGb250TG9hZGVyOjpzY2hlZHVsZUV2ZW50KTogRGVmZXJzIGV2ZW50IGRp
c3BhdGNoaW5nIHVudGlsIGxheW91dCBjb21wbGV0ZXMuCisgICAgICAgIChXZWJDb3JlOjpGb250
TG9hZGVyOjpmaXJlUGVuZGluZ0V2ZW50cyk6IERpc3BhdGNoZXMgcGVuZGluZyBldmVudHMuCisg
ICAgICAgIChXZWJDb3JlOjpGb250TG9hZGVyOjpiZWdpbkZvbnRMb2FkaW5nKTogU2NoZWR1bGVz
IGxvYWRpbmcvbG9hZHN0YXJ0IGV2ZW50cy4gVGhpcyBpcyBjYWxsZWQgZnJvbSBDU1NGb250RmFj
ZS4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRMb2FkZXI6OmZvbnRMb2FkZWQpOiBTY2hlZHVsZXMg
bG9hZC9sb2FkaW5nZG9uZSBldmVudHMuIFRoaXMgaXMgY2FsbGVkIGZyb20gQ1NTRm9udEZhY2Uu
CisgICAgICAgIChXZWJDb3JlOjpGb250TG9hZGVyOjpsb2FkRXJyb3IpOiBTY2hlZHVsZXMgZXJy
b3IvbG9hZGluZ2RvbmUgZXZlbnRzLiBUaGlzIGlzIGNhbGxlZCBmcm9tIENTU0ZvbnRGYWNlLgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udExvYWRlcjo6bm90aWZ5V2hlbkZvbnRzUmVhZHkpOiBJbXBs
ZW1lbnRzIGZvbnRsb2FkZXIubm90aWZ5V2hlbkZvbnRzUmVhZHkoKS4KKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRMb2FkZXI6OmxvYWRpbmdEb25lKTogRmlyZXMgY2FsbGJhY2tzIG9mIG5vdGlmeVdo
ZW5Gb250c1JlYWR5LgorICAgICAgICAoV2ViQ29yZTo6Rm9udExvYWRlcjo6bG9hZEZvbnQpOiBJ
bXBsZW1lbnRzIGZvbnRsb2FkZXIubG9hZEZvbnQoKS4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRM
b2FkZXI6OmNoZWNrRm9udCk6IEltcGxlbWVudHMgZm9udGxvYWRlci5jaGVja0ZvbnQoKS4KKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnRMb2FkZXI6OnJlc29sdmVGb250U3R5bGUpOiBQYXJzZXMgdGhl
IGdpdmVuIGZvbnQgcGFyYW1ldGVyIHVzaW5nIHRoZSBzeW50YXggb2YgQ1NTICdmb250JyBwcm9w
ZXJ0eSBhbmQgY3JlYXRlcyBGb250IG9iamVjdC4gVGhlIGxvZ2ljIGlzIHRha2VuIGZyb20gQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRGb250KCkuCisgICAgICAgICogY3NzL0ZvbnRMb2Fk
ZXIuaDogQWRkZWQuCisgICAgICAgIChGb250TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250TG9hZGVyOjpsb2FkaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRMb2FkZXI6OmRvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRMb2FkZXI6OnJlZkV2ZW50VGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRMb2FkZXI6OmRlcmVmRXZlbnRUYXJnZXQpOgorICAgICAgICAqIGNzcy9Gb250TG9hZGVyLmlk
bDogQWRkZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Zm9udGxv
YWRlcik6IEFkZGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1l
bnQpOiBBZGQgbV9mb250bG9hZGVyIGFuZCBmb250bG9hZGVyKCkuCisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmlkbDogQWRkIGZvbnRsb2FkZXIgYXR0cmlidXRlLgorICAgICAgICAqIGRvbS9FdmVu
dE5hbWVzLmg6IEFkZCBsb2FkaW5nIGFuZCBsb2FkaW5nZG9uZSBldmVudHMuCisgICAgICAgICog
ZG9tL0V2ZW50TmFtZXMuaW46IEFkZCBDU1NGb250RmFjZUxvYWRFdmVudC4KKyAgICAgICAgKiBk
b20vRXZlbnRUYXJnZXRGYWN0b3J5LmluOiBBZGQgRm9udExvYWRlci4KKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnBlcmZvcm1Qb3N0
TGF5b3V0VGFza3MpOiBDYWxscyBGb250TG9hZGVyOjpkaWRMYXlvdXQoKS4KKwogMjAxMy0wMy0x
MSAgTWFyamEgSMO2bHR0w6QgIDxtYXJqYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBG
aXggVjhJbmplY3RlZFNjcmlwdE1hbmFnZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNDVhNjI1
ODI5OGFlOTBjMTgyOTEzZWE3MGQ3YjZmM2VmNTFkZTU5MC4uZTQwYTRmNDJiMjhlOTllZTk0NDYw
MGFkNjkyOTkwZTYxMGJiNDhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTMwMyw2ICszMDMs
NyBAQCBzZXQoV2ViQ29yZV9JRExfRklMRVMKIAogICAgIGNzcy9Db3VudGVyLmlkbAogICAgIGNz
cy9DU1NDaGFyc2V0UnVsZS5pZGwKKyAgICBjc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsCiAg
ICAgY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwKICAgICBjc3MvQ1NTSG9zdFJ1bGUuaWRsCiAgICAg
Y3NzL0NTU0ltcG9ydFJ1bGUuaWRsCkBAIC0zMTgsNiArMzE5LDcgQEAgc2V0KFdlYkNvcmVfSURM
X0ZJTEVTCiAgICAgY3NzL0NTU1ZhbHVlLmlkbAogICAgIGNzcy9DU1NWYWx1ZUxpc3QuaWRsCiAg
ICAgY3NzL0RPTVdpbmRvd0NTUy5pZGwKKyAgICBjc3MvRm9udExvYWRlci5pZGwKICAgICBjc3Mv
TWVkaWFMaXN0LmlkbAogICAgIGNzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwKICAgICBjc3MvUkdCQ29s
b3IuaWRsCkBAIC0xMDI4LDYgKzEwMzAsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgY3Nz
L0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCiAgICAgY3NzL0NTU0RlZmF1bHRTdHlsZVNoZWV0cy5j
cHAKICAgICBjc3MvQ1NTRm9udEZhY2UuY3BwCisgICAgY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50
LmNwcAogICAgIGNzcy9DU1NGb250RmFjZVJ1bGUuY3BwCiAgICAgY3NzL0NTU0ZvbnRGYWNlU291
cmNlLmNwcAogICAgIGNzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcApAQCAtMTA3MCw2ICsxMDcz
LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGNzcy9Eb2N1bWVudFJ1bGVTZXRzLmNwcAog
ICAgIGNzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKICAgICBjc3MvRm9udEZlYXR1cmVWYWx1
ZS5jcHAKKyAgICBjc3MvRm9udExvYWRlci5jcHAKICAgICBjc3MvRm9udFZhbHVlLmNwcAogICAg
IGNzcy9JbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmNwcAogICAgIGNzcy9MZW5ndGhGdW5jdGlvbnMu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKaW5kZXggMTk1YmVhY2Q1YmZmYzMxNjJmMTE5
YWE0NTJhYmU0YTNhNDc3MzU5MS4uOTlmMDc5MWMyYTg0Y2E3MTVkNjQ4YmZhMTY3YTJiMTA3NjA1
MDNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAtNTQsNiArNTQsOSBAQAogI2lu
Y2x1ZGUgIkpTQ291bnRlci5jcHAiCiAjaW5jbHVkZSAiSlNDcnlwdG8uY3BwIgogI2luY2x1ZGUg
IkpTQ1NTQ2hhcnNldFJ1bGUuY3BwIgorI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQorI2lu
Y2x1ZGUgIkpTQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIgorI2VuZGlmCiAjaW5jbHVkZSAiSlND
U1NGb250RmFjZVJ1bGUuY3BwIgogI2luY2x1ZGUgIkpTQ1NTSG9zdFJ1bGUuY3BwIgogI2luY2x1
ZGUgIkpTQ1NTSW1wb3J0UnVsZS5jcHAiCkBAIC0xMzgsNiArMTQxLDkgQEAKICNpbmNsdWRlICJK
U0Zsb2F0MzJBcnJheS5jcHAiCiAjaW5jbHVkZSAiSlNGbG9hdDY0QXJyYXkuY3BwIgogI2luY2x1
ZGUgIkpTRm9jdXNFdmVudC5jcHAiCisjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisjaW5j
bHVkZSAiSlNGb250TG9hZGVyLmNwcCIKKyNlbmRpZgogI2luY2x1ZGUgIkpTR2VvbG9jYXRpb24u
Y3BwIgogI2luY2x1ZGUgIkpTR2VvcG9zaXRpb24uY3BwIgogI2luY2x1ZGUgIkpTSGFzaENoYW5n
ZUV2ZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGVmMTUzY2I4N2E5
Y2ViMGRkMTIzYWMxNjhiZWMxZTcyYzEyYjI2NjYuLjAzOWFhMTQ3MzBiNTE2ODhlOTY1NzdiYTJh
ODk1MDE1MjNmN2U4NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTc3LDYg
KzE3Nyw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9X
b3JrZXJDb250ZXh0V2ViU29ja2V0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NTQ2hhcnNl
dFJ1bGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2Nzcy9DU1NGb250RmFjZUxvYWRFdmVudC5pZGwg
XAogICAgICQoV2ViQ29yZSkvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvY3NzL0NTU0hvc3RSdWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NTSW1wb3J0UnVs
ZS5pZGwgXApAQCAtMTk0LDYgKzE5NSw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNv
cmUpL2Nzcy9DU1NWYWx1ZUxpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9Db3VudGVyLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9jc3MvRE9NV2luZG93Q1NTLmlkbCBcCisgICAgJChXZWJDb3Jl
KS9jc3MvRm9udExvYWRlci5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL01lZGlhTGlzdC5pZGwg
XAogICAgICQoV2ViQ29yZSkvY3NzL01lZGlhUXVlcnlMaXN0LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
cHJpCmluZGV4IDI3OWNjMGUwYzA5Mjc3NGQ1MDhiYWI3M2NhODFkMjQ3YjFjNWI0MWUuLjg2NGEx
Y2NlYWY5ZDcwMTAxZDY0N2QyYzVmOWE2ODc2ZTJjMzI5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5wcmkKQEAgLTE4OCw2ICsxODgsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgICQkUFdE
L01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJDb250ZXh0V2ViU29ja2V0LmlkbCBcCiAgICAgJCRQ
V0QvY3NzL0NvdW50ZXIuaWRsIFwKICAgICAkJFBXRC9jc3MvQ1NTQ2hhcnNldFJ1bGUuaWRsIFwK
KyAgICAkJFBXRC9jc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsIFwKICAgICAkJFBXRC9jc3Mv
Q1NTRm9udEZhY2VSdWxlLmlkbCBcCiAgICAgJCRQV0QvY3NzL0NTU0hvc3RSdWxlLmlkbCBcCiAg
ICAgJCRQV0QvY3NzL0NTU0ltcG9ydFJ1bGUuaWRsIFwKQEAgLTIwMyw2ICsyMDQsNyBAQCBJRExf
QklORElOR1MgKz0gXAogICAgICQkUFdEL2Nzcy9DU1NWYWx1ZS5pZGwgXAogICAgICQkUFdEL2Nz
cy9DU1NWYWx1ZUxpc3QuaWRsIFwKICAgICAkJFBXRC9jc3MvRE9NV2luZG93Q1NTLmlkbCBcCisg
ICAgJCRQV0QvY3NzL0ZvbnRMb2FkZXIuaWRsIFwKICAgICAkJFBXRC9jc3MvTWVkaWFMaXN0Lmlk
bCBcCiAgICAgJCRQV0QvY3NzL01lZGlhUXVlcnlMaXN0LmlkbCBcCiAgICAgJCRQV0QvY3NzL1Jl
Y3QuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDA3NjA3NGIxNDMzZTA3
MTlhNzU3M2I0MGMzYmI4NTg4ZWZjZWQ3MDUuLjA0NmY0ZGRjOTBlYzFmODAzODUwOGRjNTUwZjg4
ZmM1NzVjNGRkZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTEzLDYgKzEx
Myw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0NyeXB0by5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTQ2hhcnNldFJ1bGUu
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTQ2hhcnNldFJ1bGUuaCBcCisJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmggXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNDU1NGb250RmFjZVJ1bGUuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTQ1NTRm9udEZhY2VSdWxlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NI
b3N0UnVsZS5jcHAgXApAQCAtMjkyLDYgKzI5NCw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyAr
PSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Zsb2F0NjRBcnJheS5oIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTRm9jdXNFdmVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNGb2N1c0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGb250TG9hZGVy
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZvbnRMb2FkZXIuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0dhbWVwYWQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTR2FtZXBhZC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2FtZXBhZExpc3QuY3Bw
IFwKQEAgLTEzMjksNiArMTMzMyw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29y
ZSkvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJzb2NrZXRzL1dvcmtlckNvbnRleHRXZWJTb2NrZXQuaWRsIFwKIAkkKFdlYkNvcmUpL2Nz
cy9DU1NDaGFyc2V0UnVsZS5pZGwgXAorCSQoV2ViQ29yZSkvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2
ZW50LmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBcCiAJJChXZWJD
b3JlKS9jc3MvQ1NTSG9zdFJ1bGUuaWRsIFwKIAkkKFdlYkNvcmUpL2Nzcy9DU1NJbXBvcnRSdWxl
LmlkbCBcCkBAIC0xMzQ1LDYgKzEzNTAsNyBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdl
YkNvcmUpL2Nzcy9DU1NWYWx1ZUxpc3QuaWRsIFwKIAkkKFdlYkNvcmUpL2Nzcy9Db3VudGVyLmlk
bCBcCiAJJChXZWJDb3JlKS9jc3MvRE9NV2luZG93Q1NTLmlkbCBcCisJJChXZWJDb3JlKS9jc3Mv
Rm9udExvYWRlci5pZGwgXAogCSQoV2ViQ29yZSkvY3NzL01lZGlhTGlzdC5pZGwgXAogCSQoV2Vi
Q29yZSkvY3NzL01lZGlhUXVlcnlMaXN0LmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvUkdCQ29sb3Iu
aWRsIFwKQEAgLTI1NjcsNiArMjU3Myw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvY3NzL0NTU0RlZmF1bHRTdHlsZVNoZWV0cy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udEZhY2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuaCBc
CisJU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCBcCisJU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZVJ1bGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VS
dWxlLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAgXApAQCAt
MjY1OSw2ICsyNjY3LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9j
c3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGZWF0
dXJlVmFsdWUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZlYXR1cmVWYWx1ZS5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2Nz
cy9Gb250TG9hZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250VmFsdWUuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9jc3MvRm9udFZhbHVlLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9JbnNw
ZWN0b3JDU1NPTVdyYXBwZXJzLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAyMjkzNDE3YzU2NzAxMWYx
MzhkZjZhM2Y0NDBhZWI3OGIyMTNlYjRjLi5kMTMzOWE1OTEzYTcxM2UyMTM3NTUyOTQyYTdhYWRm
YTdhMGUxNDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTI2NSw2ICsyNjUsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBjc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAgXAogICAgIGNzcy9DU1NGb250RmFjZS5j
cHAgXAogICAgIGNzcy9DU1NEZWZhdWx0U3R5bGVTaGVldHMuY3BwIFwKKyAgICBjc3MvQ1NTRm9u
dEZhY2VMb2FkRXZlbnQuY3BwIFwKICAgICBjc3MvQ1NTRm9udEZhY2VSdWxlLmNwcCBcCiAgICAg
Y3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwIFwKICAgICBjc3MvQ1NTRm9udFNlbGVjdG9yLmNw
cCBcCkBAIC0zMDcsNiArMzA4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgY3NzL0RvY3VtZW50UnVs
ZVNldHMuY3BwIFwKICAgICBjc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIFwKICAgICBjc3Mv
Rm9udEZlYXR1cmVWYWx1ZS5jcHAgXAorICAgIGNzcy9Gb250TG9hZGVyLmNwcCBcCiAgICAgY3Nz
L0ZvbnRWYWx1ZS5jcHAgXAogICAgIGNzcy9JbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmNwcCBcCiAg
ICAgY3NzL0xlbmd0aEZ1bmN0aW9ucy5jcHAgXApAQCAtMTUxMyw2ICsxNTE1LDcgQEAgSEVBREVS
UyArPSBcCiAgICAgY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmggXAogICAgIGNzcy9DU1NDdXJzb3JJ
bWFnZVZhbHVlLmggXAogICAgIGNzcy9DU1NGb250RmFjZS5oIFwKKyAgICBjc3MvQ1NTRm9udEZh
Y2VMb2FkRXZlbnQuaCBcCiAgICAgY3NzL0NTU0ZvbnRGYWNlUnVsZS5oIFwKICAgICBjc3MvQ1NT
Rm9udEZhY2VTb3VyY2UuaCBcCiAgICAgY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuaCBcCkBAIC0x
NTU0LDYgKzE1NTcsNyBAQCBIRUFERVJTICs9IFwKICAgICBjc3MvQ1NTVmFyaWFibGVWYWx1ZS5o
IFwKICAgICBjc3MvRE9NV2luZG93Q1NTLmggXAogICAgIGNzcy9Gb250RmVhdHVyZVZhbHVlLmgg
XAorICAgIGNzcy9Gb250TG9hZGVyLmggXAogICAgIGNzcy9Gb250VmFsdWUuaCBcCiAgICAgY3Nz
L0xlbmd0aEZ1bmN0aW9ucy5oIFwKICAgICBjc3MvTWVkaWFGZWF0dXJlTmFtZXMuaCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKaW5kZXggZmRkMTJkNTcyYjFhYzI5NDNhZjZlOTRmZTY4NWY2MDZiYjNjMTg2Ni4u
MWZhYzQ1OGVlZmE4OTEzZWJkMjQzNzI2ZWVkY2EyZWI2ZmUxOWQ4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQpAQCAtMjQzLDYgKzI0Myw3IEBACiAgICAgICAgICAgICAnTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJDb250
ZXh0V2ViU29ja2V0LmlkbCcsCiAgICAgICAgICAgICAnY3NzL0NTU0NoYXJzZXRSdWxlLmlkbCcs
CisgICAgICAgICAgICAnY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbCcsCiAgICAgICAgICAg
ICAnY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9DU1NIb3N0UnVs
ZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9DU1NJbXBvcnRSdWxlLmlkbCcsCkBAIC0yNjAsNiAr
MjYxLDcgQEAKICAgICAgICAgICAgICdjc3MvQ1NTVmFsdWVMaXN0LmlkbCcsCiAgICAgICAgICAg
ICAnY3NzL0NvdW50ZXIuaWRsJywKICAgICAgICAgICAgICdjc3MvRE9NV2luZG93Q1NTLmlkbCcs
CisgICAgICAgICAgICAnY3NzL0ZvbnRMb2FkZXIuaWRsJywKICAgICAgICAgICAgICdjc3MvTWVk
aWFMaXN0LmlkbCcsCiAgICAgICAgICAgICAnY3NzL01lZGlhUXVlcnlMaXN0LmlkbCcsCiAgICAg
ICAgICAgICAnY3NzL1JlY3QuaWRsJywKQEAgLTE1NzQsNiArMTU3Niw4IEBACiAgICAgICAgICAg
ICAnY3NzL0NTU0RlZmF1bHRTdHlsZVNoZWV0cy5oJywKICAgICAgICAgICAgICdjc3MvQ1NTRm9u
dEZhY2UuY3BwJywKICAgICAgICAgICAgICdjc3MvQ1NTRm9udEZhY2UuaCcsCisgICAgICAgICAg
ICAnY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCcsCisgICAgICAgICAgICAnY3NzL0NTU0Zv
bnRGYWNlTG9hZEV2ZW50LmgnLAogICAgICAgICAgICAgJ2Nzcy9DU1NGb250RmFjZVJ1bGUuY3Bw
JywKICAgICAgICAgICAgICdjc3MvQ1NTRm9udEZhY2VSdWxlLmgnLAogICAgICAgICAgICAgJ2Nz
cy9DU1NGb250RmFjZVNvdXJjZS5jcHAnLApAQCAtMTY1Miw2ICsxNjU2LDggQEAKICAgICAgICAg
ICAgICdjc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaCcsCiAgICAgICAgICAgICAnY3NzL0ZvbnRG
ZWF0dXJlVmFsdWUuY3BwJywKICAgICAgICAgICAgICdjc3MvRm9udEZlYXR1cmVWYWx1ZS5oJywK
KyAgICAgICAgICAgICdjc3MvRm9udExvYWRlci5oJywKKyAgICAgICAgICAgICdjc3MvRm9udExv
YWRlci5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9Gb250VmFsdWUuY3BwJywKICAgICAgICAgICAg
ICdjc3MvRm9udFZhbHVlLmgnLAogICAgICAgICAgICAgJ2Nzcy9JbnNwZWN0b3JDU1NPTVdyYXBw
ZXJzLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CmluZGV4IGM2NGJlYTk2NjIwODk3YWJlNTE3MmZmM2U2ZjNiM2NmNjJhMTA3OGQuLjA5NDYyN2Yz
NGI0MDAwMmZkODVlYzAxMmQ1OTRmNjAzOWI2YTg2MmMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0xODAzLDYgKzE4MDMsNjIgQEAKIAkJCQk+
CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NTU0ZvbnRGYWNl
TG9hZEV2ZW50LmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9
IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJ
CQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxl
YXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19D
YWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+
CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9
IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJ
CVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmgiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NGb250RmFjZVJ1bGUuY3Bw
IgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTU3MDMsNiArNTc1OSw2MiBAQAog
CQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRm9udExv
YWRlci5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1
Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9f
Q0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJ
CQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxl
YXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJ
CQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxh
dGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXNcSlNGb250TG9hZGVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
IAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNHZW9sb2NhdGlvbi5jcHAiCiAJCQkJPgogCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgpAQCAtMzYxMTksNiArMzYyMzEsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXENTU0ZvbnRGYWNlTG9hZEV2ZW50
LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
Y3NzXENTU0ZvbnRGYWNlTG9hZEV2ZW50LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xDU1NGb250RmFjZVJ1bGUuY3BwIgogCQkJCT4KIAkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTM4MTU1LDYgKzM4Mjc1LDE0IEBACiAJCQkJPgogCQkJ
PC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xGb250TG9hZGVyLmNw
cCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3Nz
XEZvbnRMb2FkZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZl
UGF0aD0iLi5cY3NzXEZvbnRWYWx1ZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggZWM0ODIxNzkz
YTM1MmQzZTk2MzJhMjFkODM2M2YzYzNiODEzN2QxOC4uM2RmZjU2ZjZmYTJlYjkwZWY4MDY1OTM4
ZThhYzcxNDE2YmRkZmQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qCkBAIC0yNTQsNiArMjU0LDEyIEBACiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIj4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21w
aWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NTU0ZvbnRGYWNlUnVsZS5jcHAiPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC02
NjEsNiArNjY3LDEyIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTRm9udExvYWRlci5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTR2VvbG9jYXRpb24uY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMzg2MCw2ICszODcyLDEyIEBACiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIj4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwv
Q2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cY3NzXENTU0ZvbnRGYWNlUnVs
ZS5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CkBAIC00MDY4LDYgKzQwODYsNyBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cY3NzXEZvbnRGZWF0dXJlVmFsdWUuY3BwIiAvPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cY3NzXEZvbnRMb2FkZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cY3NzXEZvbnRWYWx1ZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
Llxjc3NcTGVuZ3RoRnVuY3Rpb25zLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGNzc1xNZWRpYUFsbEluT25lLmNwcCI+CkBAIC04MjM3LDYgKzgyNTYsNyBAQAogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU0NvdW50ZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNDcnlwdG8uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NDaGFyc2V0
UnVsZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NTU0ZvbnRGYWNlTG9hZEV2
ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQ1NTRm9udEZhY2VSdWxlLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2Jq
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQ1NTSG9zdFJ1bGUuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NJbXBvcnRSdWxlLmgiIC8+CkBAIC04MzE0LDYgKzgz
MzQsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0ZpbGVXcml0ZXIuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNGaWxlV3JpdGVyQ2FsbGJhY2suaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNGaWxlV3JpdGVyU3luYy5oIiAvPgorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0ZvbnRMb2FkZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNHZW9sb2NhdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0dlb3Bv
c2l0aW9uLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSGFzaENoYW5nZUV2ZW50
LmgiIC8+CkBAIC05NjE1LDYgKzk2MzYsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
Y3NzXENTU0Nyb3NzZmFkZVZhbHVlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxj
c3NcQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
Y3NzXENTU0ZvbnRGYWNlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcQ1NT
Rm9udEZhY2VMb2FkRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xD
U1NGb250RmFjZVJ1bGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xDU1NG
b250RmFjZVNvdXJjZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXENTU0Zv
bnRGYWNlU3JjVmFsdWUuaCIgLz4KQEAgLTk2NjAsNiArOTY4Miw3IEBACiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxjc3NcQ1NTVmFyaWFibGVWYWx1ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cY3NzXERhc2hib2FyZFJlZ2lvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cY3NzXEZvbnRGZWF0dXJlVmFsdWUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGNzc1xGb250TG9hZGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxj
c3NcRm9udFZhbHVlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcTGVuZ3Ro
RnVuY3Rpb25zLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcTWVkaWFGZWF0
dXJlTmFtZXMuaCIgLz4KQEAgLTExMTQxLDQgKzExMTY0LDQgQEAKICAgPEltcG9ydCBQcm9qZWN0
PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KICAgPEltcG9ydEdy
b3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KICAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVj
dD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5k
ZXggNmJjZjY0OWJhNDZhMmE3NjVkMWU4YjBlOTc3MmQwZTY0OTNlY2ViZC4uYzgyYjhiY2EwMGEx
OGFjNjAzMDQ3MDAxYzJiMDMwNDQwZWIyNThkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMzg3LDYgKzM4
Nyw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQ1NTQ2hhcnNldFJ1bGUuY3BwIj4K
ICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4K
KyAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NGb250RmFjZUxvYWRFdmVudC5jcHAiPgor
ICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NTU0ZvbnRGYWNlUnVsZS5jcHAiPgogICAgICAg
PEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtNjE4
LDYgKzYyMSw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRmlsZVdyaXRlclN5bmMu
Y3BwIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29t
cGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxv
YmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNGb250TG9hZGVyLmNwcCI+CisgICAg
ICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTR2VvbG9jYXRpb24uY3BwIj4KICAgICAgIDxGaWx0ZXI+
RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM1NzksNiArMzU4
NSw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcQ1NTRm9udEZhY2UuY3BwIj4K
ICAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxjc3NcQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIj4KKyAgICAgIDxG
aWx0ZXI+Y3NzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxjc3NcQ1NTRm9udEZhY2VSdWxlLmNwcCI+CiAgICAgICA8RmlsdGVyPmNzczwvRmls
dGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMzY5Myw2ICszNzAyLDkgQEAKICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGNzc1xGb250RmVhdHVyZVZhbHVlLmNwcCI+CiAgICAgICA8RmlsdGVy
PmNzczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cY3NzXEZvbnRMb2FkZXIuY3BwIj4KKyAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CisgICAg
PC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcRm9udFZhbHVlLmNw
cCI+CiAgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtNjk0
Miw2ICs2OTU0LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NDaGFyc2V0UnVs
ZS5oIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5j
bHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxv
YmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NGb250RmFjZUxvYWRFdmVudC5o
Ij4KKyAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVk
ZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NGb250RmFjZVJ1bGUuaCI+CiAgICAg
ICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC03
MTczLDYgKzcxODgsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0ZpbGVXcml0ZXJT
eW5jLmgiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xJ
bmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0ZvbnRMb2FkZXIuaCI+CisgICAg
ICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTR2VvbG9jYXRpb24uaCI+CiAgICAgICA8RmlsdGVyPkRl
cml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDMyMyw2ICsxMDM0
MSw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcQ1NTRm9udEZhY2UuaCI+CiAg
ICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cY3NzXENTU0ZvbnRGYWNlTG9hZEV2ZW50LmgiPgorICAgICAgPEZpbHRl
cj5jc3M8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGNzc1xDU1NGb250RmFjZVJ1bGUuaCI+CiAgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgog
ICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA0NTgsNiArMTA0NzksOSBAQAogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cY3NzXEZvbnRGZWF0dXJlVmFsdWUuaCI+CiAgICAgICA8RmlsdGVyPmNzczwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3Nz
XEZvbnRMb2FkZXIuaCI+CisgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgorICAgIDwvQ2xJbmNs
dWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXEZvbnRWYWx1ZS5oIj4KICAgICAg
IDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzY3MGU2MDZkM2E0
ZmI0M2JjNWFiY2Q3NTY1ZjNhNWIzMWE1ZDdlYi4uNjBjYTRjNGJjMGU3Y2RkY2UyNmE2NTBmMDc4
ZmI4NTU2MDVmNzk1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTA1MSw2ICsxMDUxLDE2IEBACiAJCTNGRkZGOUE5MTU5RDlB
NTUwMDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGRkZGOUE3MTU5RDlBNTUwMDIwQkJENSAvKiBX
ZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCAqLzsgfTsKIAkJM0ZGRkY5QUQxNTlEOUIwNjAwMjBCQkQ1
IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzRkZGRjlBQjE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRT
dHlsZVJlc29sdmVyLmNwcCAqLzsgfTsKIAkJM0ZGRkY5QUUxNTlEOUIwNjAwMjBCQkQ1IC8qIFZp
ZXdwb3J0U3R5bGVSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gM0ZGRkY5QUMxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNv
bHZlci5oICovOyB9OworCQk0MDlFQkRCMTE2QjdFRTcxMDBDQkEzRkMgLyogQ1NTRm9udEZhY2VM
b2FkRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQwOUVCREFFMTZCN0VFMjgwMENCQTNGQyAvKiBDU1NGb250RmFjZUxvYWRFdmVudC5oICovOyB9
OworCQk0MDlFQkRCMjE2QjdFRTc0MDBDQkEzRkMgLyogQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5RUJEQUMx
NkI3RUUxQzAwQ0JBM0ZDIC8qIENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCAqLzsgfTsKKwkJNDA5
RUJEQjQxNkI3RUU4NzAwQ0JBM0ZDIC8qIEZvbnRMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5RUJEQjMxNkI3RUU4NzAwQ0JBM0ZDIC8q
IEZvbnRMb2FkZXIuY3BwICovOyB9OworCQk0MDlFQkRCNjE2QjdFRUEzMDBDQkEzRkMgLyogRm9u
dExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDA5RUJEQjUxNkI3RUVBMzAwQ0JBM0ZDIC8qIEZvbnRMb2FkZXIuaCAqLzsgfTsKKwkJNDA5RUJE
QkExNkI3RjA0NTAwQ0JBM0ZDIC8qIEpTRm9udExvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MDlFQkRCOTE2QjdGMDQ1MDBDQkEzRkMgLyog
SlNGb250TG9hZGVyLmNwcCAqLzsgfTsKKwkJNDA5RUJEQzAxNkI3RjM4RTAwQ0JBM0ZDIC8qIEpT
Rm9udExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDA5RUJEQkYxNkI3RjM4RTAwQ0JBM0ZDIC8qIEpTRm9udExvYWRlci5oICovOyB9OworCQk0
MDlFQkRDMzE2QjdGM0E2MDBDQkEzRkMgLyogSlNDU1NGb250RmFjZUxvYWRFdmVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5RUJEQzIxNkI3RjNB
NjAwQ0JBM0ZDIC8qIEpTQ1NTRm9udEZhY2VMb2FkRXZlbnQuaCAqLzsgfTsKKwkJNDA5RUJEQzUx
NkI3RjNDQTAwQ0JBM0ZDIC8qIEpTQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5RUJEQzQxNkI3RjNDQTAwQ0JB
M0ZDIC8qIEpTQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwICovOyB9OworCQk0MEVDQUU3RTE2QjhC
NjcyMDBDMzYxMDMgLyogSlNET01FcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDBFQ0FFN0QxNkI4QjY3MjAwQzM2MTAzIC8qIEpTRE9NRXJyb3Iu
aCAqLzsgfTsKKwkJNDBFQ0FFODExNkI4QjY4QTAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDBFQ0FFODAxNkI4
QjY4QTAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuY3BwICovOyB9OwogCQk0MTAwMkNDRDBGNjZFREVG
MDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwMkNDQjBGNjZFREVGMDA5RTY2MEQgLyogU2NyaXB0
RnVuY3Rpb25DYWxsLmggKi87IH07CiAJCTQxMDAyQ0NFMEY2NkVERUYwMDlFNjYwRCAvKiBTY3Jp
cHRGdW5jdGlvbkNhbGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEwMDJDQ0MwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5j
cHAgKi87IH07CiAJCTQxMEI3RTcyMTA0NUZBQjAwMEQ4MjI0RiAvKiBKU01lc3NhZ2VFdmVudEN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovOyB9
OwpAQCAtODQ1OSw2ICs4NDY5LDE4IEBACiAJCTNGRkZGOUE3MTU5RDlBNTUwMDIwQkJENSAvKiBX
ZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViS2l0Q1NTVmlld3BvcnRSdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNG
RkZGOUFCMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlld3BvcnRTdHlsZVJlc29sdmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0ZGRkY5QUMxNTlEOUIwNjAwMjBCQkQ1
IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDA5RUJEQUMxNkI3RUUxQzAwQ0JBM0ZDIC8qIENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0ZvbnRGYWNlTG9hZEV2ZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQUUxNkI3RUUyODAwQ0JB
M0ZDIC8qIENTU0ZvbnRGYWNlTG9hZEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENTU0ZvbnRGYWNlTG9hZEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQwOUVCREFGMTZCN0VFNTcwMENCQTNGQyAvKiBDU1NGb250RmFjZUxvYWRFdmVudC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MDlFQkRCMzE2QjdFRTg3MDBDQkEzRkMgLyogRm9udExv
YWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb250TG9hZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQjUxNkI3RUVBMzAwQ0JB
M0ZDIC8qIEZvbnRMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9u
dExvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MDlFQkRCNzE2QjdFRUJB
MDBDQkEzRkMgLyogRm9udExvYWRlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRm9udExv
YWRlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQwOUVCREI5MTZCN0YwNDUw
MENCQTNGQyAvKiBKU0ZvbnRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNGb250TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDA5RUJEQkYxNkI3RjM4RTAwQ0JBM0ZDIC8qIEpTRm9udExvYWRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0ZvbnRMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNDA5RUJEQzIxNkI3RjNBNjAwQ0JBM0ZDIC8qIEpTQ1NTRm9udEZhY2VMb2FkRXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NGb250RmFjZUxvYWRF
dmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MDlFQkRDNDE2QjdGM0NBMDBD
QkEzRkMgLyogSlNDU1NGb250RmFjZUxvYWRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDBFQ0FFN0QxNkI4QjY3MjAwQzM2MTAzIC8qIEpTRE9NRXJyb3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01FcnJvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MEVDQUU4MDE2QjhCNjhBMDBDMzYxMDMgLyogSlNET01F
cnJvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUVycm9y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwMDJDQ0IwRjY2RURFRjAwOUU2
NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTY3JpcHRGdW5jdGlvbkNhbGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDEwMDJDQ0MwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRGdW5jdGlvbkNhbGwuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyog
SlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTYxODEsMTAgKzE2MjAzLDE2IEBACiAJCQkJQThEMDZCMzcwQTI2NURDRDAwNUU3MjAz
IC8qIEhUTUxOYW1lcy5oICovLAogCQkJCTUzRTI5RTVDMTY3QThBMTkwMDU4NkQzRCAvKiBJbnRl
cm5hbFNldHRpbmdzR2VuZXJhdGVkLmNwcCAqLywKIAkJCQk1M0UyOUU1RDE2N0E4QTE5MDA1ODZE
M0QgLyogSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5oICovLAorCQkJCTQwRUNBRTgwMTZCOEI2
OEEwMEMzNjEwMyAvKiBKU0RPTUVycm9yLmNwcCAqLywKKwkJCQk0MEVDQUU3RDE2QjhCNjcyMDBD
MzYxMDMgLyogSlNET01FcnJvci5oICovLAogCQkJCTkzOEU2NUY2MDlGMDk4NUQwMDhBNDhFQyAv
KiBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwICovLAogCQkJCTkzOEU2NUYwMDlGMDk4
NDAwMDhBNDhFQyAvKiBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCAqLywKIAkJCQk4NTc0
RDFGMTBBREU2MTIyMDA0Q0JBMTEgLyogSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwICov
LAogCQkJCTg1NzREMUYyMEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR0VsZW1lbnRXcmFwcGVyRmFj
dG9yeS5oICovLAorCQkJCTQwOUVCREM0MTZCN0YzQ0EwMENCQTNGQyAvKiBKU0NTU0ZvbnRGYWNl
TG9hZEV2ZW50LmNwcCAqLywKKwkJCQk0MDlFQkRDMjE2QjdGM0E2MDBDQkEzRkMgLyogSlNDU1NG
b250RmFjZUxvYWRFdmVudC5oICovLAorCQkJCTQwOUVCREI5MTZCN0YwNDUwMENCQTNGQyAvKiBK
U0ZvbnRMb2FkZXIuY3BwICovLAorCQkJCTQwOUVCREJGMTZCN0YzOEUwMENCQTNGQyAvKiBKU0Zv
bnRMb2FkZXIuaCAqLywKIAkJCQlGQUJFNzJGQjEwNTlDMjExMDBEOTk5REQgLyogTWF0aE1MRWxl
bWVudEZhY3RvcnkuY3BwICovLAogCQkJCTQ0QTI4QUFCMTJERkI4QUMwMEFFOTIzQiAvKiBNYXRo
TUxFbGVtZW50RmFjdG9yeS5oICovLAogCQkJCUZBQkU3MkZDMTA1OUMyMTEwMEQ5OTlERCAvKiBN
YXRoTUxOYW1lcy5jcHAgKi8sCkBAIC0yMjAzNSw2ICsyMjA2Myw5IEBACiAJCQkJNEE5Q0M4MTYx
NkJCOUFDNjAwRUM2NDVBIC8qIENTU0RlZmF1bHRTdHlsZVNoZWV0cy5oICovLAogCQkJCUJDNjRC
NENEMENCNDI5OEEwMDVGMkI2MiAvKiBDU1NGb250RmFjZS5jcHAgKi8sCiAJCQkJQkM2NEI0Q0Uw
Q0I0Mjk4QTAwNUYyQjYyIC8qIENTU0ZvbnRGYWNlLmggKi8sCisJCQkJNDA5RUJEQUMxNkI3RUUx
QzAwQ0JBM0ZDIC8qIENTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCAqLywKKwkJCQk0MDlFQkRBRTE2
QjdFRTI4MDBDQkEzRkMgLyogQ1NTRm9udEZhY2VMb2FkRXZlbnQuaCAqLywKKwkJCQk0MDlFQkRB
RjE2QjdFRTU3MDBDQkEzRkMgLyogQ1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsICovLAogCQkJCUE4
MEU2Q0JEMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NGb250RmFjZVJ1bGUuY3BwICovLAogCQkJCUE4
MEU2Q0QzMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NGb250RmFjZVJ1bGUuaCAqLywKIAkJCQk4NUM1
NkNBMzBBQTg5Q0E0MDBEOTU3NTUgLyogQ1NTRm9udEZhY2VSdWxlLmlkbCAqLywKQEAgLTIyMTQ3
LDYgKzIyMTc4LDkgQEAKIAkJCQlGQkRCNjE5RTE2RDYwMzY1MDBCQjMzOTQgLyogRWxlbWVudFJ1
bGVDb2xsZWN0b3IuaCAqLywKIAkJCQlGQkRCNjE5QTE2RDYwMzJBMDBCQjMzOTQgLyogRWxlbWVu
dFJ1bGVDb2xsZWN0b3IuY3BwICovLAogCQkJCTRBNkU5RkMyMTNDMTdEMUQwMDQ2QTdGOCAvKiBG
b250RmVhdHVyZVZhbHVlLmggKi8sCisJCQkJNDA5RUJEQjMxNkI3RUU4NzAwQ0JBM0ZDIC8qIEZv
bnRMb2FkZXIuY3BwICovLAorCQkJCTQwOUVCREI1MTZCN0VFQTMwMENCQTNGQyAvKiBGb250TG9h
ZGVyLmggKi8sCisJCQkJNDA5RUJEQjcxNkI3RUVCQTAwQ0JBM0ZDIC8qIEZvbnRMb2FkZXIuaWRs
ICovLAogCQkJCUE4MEU2Q0M3MEExOTg5Q0EwMDdGQjhDNSAvKiBGb250VmFsdWUuY3BwICovLAog
CQkJCUE4MEU2Q0MzMEExOTg5Q0EwMDdGQjhDNSAvKiBGb250VmFsdWUuaCAqLywKIAkJCQlDRDRF
MEFGQTExRjdCQzI3MDA5RDM4MTEgLyogZnVsbHNjcmVlbi5jc3MgKi8sCkBAIC0yMzU4Myw2ICsy
MzYxNyw3IEBACiAJCQkJQUEyMUVDQ0QwQUJGMEZDNjAwMkI4MzRDIC8qIENTU0N1cnNvckltYWdl
VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBOUNDODE4MTZCQjlBQzYwMEVDNjQ1QSAvKiBD
U1NEZWZhdWx0U3R5bGVTaGVldHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjRCNEQ2MENCNDI5
OEEwMDVGMkI2MiAvKiBDU1NGb250RmFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDA5RUJEQjEx
NkI3RUU3MTAwQ0JBM0ZDIC8qIENTU0ZvbnRGYWNlTG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBODBFNkNGRDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTRm9udEZhY2VSdWxlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzY0QjREODBDQjQyOThBMDA1RjJCNjIgLyogQ1NTRm9udEZhY2VTb3Vy
Y2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjRCNERBMENCNDI5OEEwMDVGMkI2MiAvKiBDU1NG
b250RmFjZVNyY1ZhbHVlLmggaW4gSGVhZGVycyAqLywKQEAgLTI0NTM5LDYgKzI0NTc0LDcgQEAK
IAkJCQlCMkMzREE2QTBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udEZhbWlseS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNEE2RTlGQzgxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3Mu
aCBpbiBIZWFkZXJzICovLAogCQkJCTRBNkU5RkM0MTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVh
dHVyZVZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MDlFQkRCNjE2QjdFRUEzMDBDQkEzRkMg
LyogRm9udExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg0NTY4MDgxMkI5MERBNjAwOTYw
QTlGIC8qIEZvbnRNZXRyaWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGN0EwMzRDNDEyNkJGNkJF
MDA3REMxOUUgLyogRm9udE9yaWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNTMyMEQ2
QjEyMkEyNEU5MDAyRDE0NDAgLyogRm9udFBsYXRmb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNDkzOSw2ICsyNDk3NSw3IEBACiAJCQkJOTMwNzA1REEwOUUwQzlCRjAwQjE3RkU0IC8qIEpT
Q291bnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc1Q0EyQTIxMzAzNjc5RDAwRTk5QUQ5IC8q
IEpTQ3J5cHRvLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQ2QzFGQjBDMEREQzhGMDAyMENGQzMg
LyogSlNDU1NDaGFyc2V0UnVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDA5RUJEQzMxNkI3RjNB
NjAwQ0JBM0ZDIC8qIEpTQ1NTRm9udEZhY2VMb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDNDZDMUZEMEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU0ZvbnRGYWNlUnVsZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM0NkMxRkYwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTSW1wb3J0UnVsZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0NkMyMDEwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTTWVk
aWFSdWxlLmggaW4gSGVhZGVycyAqLywKQEAgLTI0OTczLDYgKzI1MDEwLDcgQEAKIAkJCQkxQUMy
MjYwRDBEQjY5RjE5MDA4OUI2NjkgLyogSlNET01BcHBsaWNhdGlvbkNhY2hlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0I3MEQ2NDA5RUIwQzdDMDA5RDg0NjggLyogSlNET01CaW5kaW5nLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzYwRDdDMTBEMjlBNDYzMDBCOTkxOEYgLyogSlNET01Db3JlRXhj
ZXB0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MEVDQUU3RTE2QjhCNjcyMDBDMzYxMDMgLyog
SlNET01FcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODk4Nzg1QTUxMjJDQTJBNzAwM0FBQkRB
IC8qIEpTRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODkzQzQ4MzcxMjQ5NTQ3
MjAwMkIzRDg2IC8qIEpTRE9NRmlsZVN5c3RlbVN5bmMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJF
MDg4OEQ1MTE0ODg0OEEwMEFGNDI2NSAvKiBKU0RPTUZvcm1EYXRhLmggaW4gSGVhZGVycyAqLywK
QEAgLTI1MDMyLDYgKzI1MDcwLDcgQEAKIAkJCQk0OUVFQ0YwMzEwNTA3MEM0MDAwOTlGQUIgLyog
SlNGbG9hdDMyQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTZFQkM1RUIwMTM4QjUwRjIwMEEw
Q0Y4QSAvKiBKU0Zsb2F0NjRBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjZEOUQyN0IxNEVB
QzA4NjAwOTBENzVFIC8qIEpTRm9jdXNFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDA5RUJE
QzAxNkI3RjM4RTAwQ0JBM0ZDIC8qIEpTRm9udExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkRBMTVFQUMxMkIwM0VFMTAwM0E1ODNBIC8qIEpTR2Fpbk5vZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZFODBEQTY0MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGRTgwREE2NjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNzI4Myw2ICsyNzMyMiw3IEBACiAJCQkJQUEyMUVDQ0EwQUJGMEZC
QTAwMkI4MzRDIC8qIENTU0N1cnNvckltYWdlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NEE5Q0M4MTcxNkJCOUFDNjAwRUM2NDVBIC8qIENTU0RlZmF1bHRTdHlsZVNoZWV0cy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzY0QjRENTBDQjQyOThBMDA1RjJCNjIgLyogQ1NTRm9udEZhY2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDA5RUJEQjIxNkI3RUU3NDAwQ0JBM0ZDIC8qIENTU0Zv
bnRGYWNlTG9hZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU2Q0U3MEExOTg5Q0Ew
MDdGQjhDNSAvKiBDU1NGb250RmFjZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2NEI0
RDcwQ0I0Mjk4QTAwNUYyQjYyIC8qIENTU0ZvbnRGYWNlU291cmNlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDNjRCNEQ5MENCNDI5OEEwMDVGMkI2MiAvKiBDU1NGb250RmFjZVNyY1ZhbHVlLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjc4ODgsNiArMjc5MjgsNyBAQAogCQkJCTcyNjI2RTAyMEVG
MDIyRkUwMEEwN0UyMCAvKiBGb250RmFzdFBhdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEE2
RTlGQzcxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNEE2RTlGQzMxM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDA5RUJEQjQxNkI3RUU4NzAwQ0JBM0ZDIC8qIEZvbnRM
b2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBRkZDODAwRDAwQTVDMTAwMzAwNzREIC8q
IEZvbnRNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NEI2MjY4NTEzMzEzOEY5MDA5NUE0ODkg
LyogRm9udFBsYXRmb3JtRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNTMyMEQ2QzEyMkEy
NEU5MDAyRDE0NDAgLyogRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCkBA
IC0yODI1NSw2ICsyODI5Niw3IEBACiAJCQkJOTc1Q0EyQTExMzAzNjc5RDAwRTk5QUQ5IC8qIEpT
Q3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTIwOUI0NTZCMTY3OTZBN0UwMEU1NEU0RSAv
KiBKU0NyeXB0b0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQ2QzFGQTBDMEREQzhG
MDAyMENGQzMgLyogSlNDU1NDaGFyc2V0UnVsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MDlF
QkRDNTE2QjdGM0NBMDBDQkEzRkMgLyogSlNDU1NGb250RmFjZUxvYWRFdmVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQzQ2QzFGQzBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NGb250RmFjZVJ1
bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFBRDE0OTExMjk3MzM3NDAwQUNBOTg5IC8qIEpT
Q1NTRm9udEZhY2VSdWxlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDZDMUZFMEMw
RERDOEYwMDIwQ0ZDMyAvKiBKU0NTU0ltcG9ydFJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
ODMwNCw2ICsyODM0Niw3IEBACiAJCQkJMUFDMjI2MEMwREI2OUYxOTAwODlCNjY5IC8qIEpTRE9N
QXBwbGljYXRpb25DYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0I3MEQ2MzA5RUIwQzdD
MDA5RDg0NjggLyogSlNET01CaW5kaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNjBEN0Mw
MEQyOUE0NjMwMEI5OTE4RiAvKiBKU0RPTUNvcmVFeGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJNDBFQ0FFODExNkI4QjY4QTAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODk4Nzg1QTQxMjJDQTJBNzAwM0FBQkRBIC8qIEpTRE9NRmlsZVN5c3RlbS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTNDNDgzNjEyNDk1NDcyMDAyQjNEODYgLyogSlNET01G
aWxlU3lzdGVtU3luYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRTA4ODhENDExNDg4NDhBMDBB
RjQyNjUgLyogSlNET01Gb3JtRGF0YS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4MzgwLDYgKzI4
NDIzLDcgQEAKIAkJCQk0OUVFQ0YwMjEwNTA3MEM0MDAwOTlGQUIgLyogSlNGbG9hdDMyQXJyYXku
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkVCQzVFQUYxMzhCNTBGMjAwQTBDRjhBIC8qIEpTRmxv
YXQ2NEFycmF5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI2RDlEMjdDMTRFQUMwODYwMDkwRDc1
RSAvKiBKU0ZvY3VzRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDA5RUJEQkExNkI3RjA0
NTAwQ0JBM0ZDIC8qIEpTRm9udExvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREExNUVB
QjEyQjAzRUUxMDAzQTU4M0EgLyogSlNHYWluTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
RTgwREE2MzBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlGRTgwRDdBQjBFOUMxRUQyMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbkN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRGljdGlvbmFyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25h
cnkuY3BwCmluZGV4IGY5ODA0ZGY2YTIxYWQ1YzJlOTFlZjAxMTAyMTVhZjA2NGU3YzliNmIuLmY4
ZTU4Y2I0N2VlN2ZjZmI0MDFiOGEwN2ExYTgxODljMGEzNzZkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiAjaW5j
bHVkZSAiQXJyYXlWYWx1ZS5oIgogI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJK
U0NTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIkpTRE9NRXJyb3IuaCIKICNpbmNsdWRlICJK
U0RPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJKU01l
c3NhZ2VQb3J0Q3VzdG9tLmgiCkBAIC0zNSw2ICszNyw3IEBACiAjaW5jbHVkZSAiSlNTdG9yYWdl
LmgiCiAjaW5jbHVkZSAiSlNUcmFja0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTVWludDhBcnJheS5o
IgorI2luY2x1ZGUgIkpTVm9pZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIK
ICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgpAQCAtMjI2LDYgKzIyOSwyNiBAQCB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVl
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8TWVkaQogfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKK3ZvaWQgSlNEaWN0aW9uYXJ5Ojpj
b252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxD
U1NGb250RmFjZVJ1bGU+JiByZXN1bHQpCit7CisgICAgcmVzdWx0ID0gdG9DU1NGb250RmFjZVJ1
bGUodmFsdWUpOworfQorCit2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8RE9NRXJyb3I+JiByZXN1bHQpCit7
CisgICAgcmVzdWx0ID0gdG9ET01FcnJvcih2YWx1ZSk7Cit9CisKK3ZvaWQgSlNEaWN0aW9uYXJ5
Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSB2YWx1ZSwg
UmVmUHRyPFZvaWRDYWxsYmFjaz4mIHJlc3VsdCkKK3sKKyAgICBpZiAoIXZhbHVlLmlzRnVuY3Rp
b24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVzdWx0ID0gSlNWb2lkQ2FsbGJhY2s6OmNy
ZWF0ZShhc09iamVjdCh2YWx1ZSksIGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKSkpOworfQorI2VuZGlmCisKIGJvb2wgSlNEaWN0aW9uYXJ5Ojpn
ZXRXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIFN0
cmluZyYgcmVzdWx0KSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbGlkKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaAppbmRleCA3MjkyNzY0YjFmMzNkMThlYTRi
YWUyYWI0YWM3ZDkyYTQwOWMxNjA5Li4yYmUxMGVlN2QwMjBjNTg5OTk2NWVlZTVhNmUzMzU1M2Y2
MjI3YzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25h
cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaApAQCAt
MzYsNyArMzYsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcnJheVZhbHVlOwor
Y2xhc3MgQ1NTRm9udEZhY2VSdWxlOwogY2xhc3MgRGljdGlvbmFyeTsKK2NsYXNzIERPTUVycm9y
OwogY2xhc3MgRE9NV2luZG93OwogY2xhc3MgRXZlbnRUYXJnZXQ7CiBjbGFzcyBNZWRpYUtleUVy
cm9yOwpAQCAtNDYsNiArNDgsNyBAQCBjbGFzcyBTY3JpcHRWYWx1ZTsKIGNsYXNzIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFN0b3JhZ2U7CiBjbGFzcyBUcmFja0Jhc2U7CitjbGFzcyBW
b2lkQ2FsbGJhY2s7CiAKIGNsYXNzIEpTRGljdGlvbmFyeSB7CiBwdWJsaWM6CkBAIC0xMTksNiAr
MTIyLDExIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBzdGF0aWMg
dm9pZCBjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIFJlZlB0cjxN
ZWRpYVN0cmVhbT4mIHJlc3VsdCk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5U
UykKKyAgICBzdGF0aWMgdm9pZCBjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
VmFsdWUsIFJlZlB0cjxDU1NGb250RmFjZVJ1bGU+JiByZXN1bHQpOworICAgIHN0YXRpYyB2b2lk
IGNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgUmVmUHRyPERPTUVy
cm9yPiYgcmVzdWx0KTsKKyAgICBzdGF0aWMgdm9pZCBjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTVmFsdWUsIFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiByZXN1bHQpOworI2VuZGlm
CiAKICAgICBKU0M6OkV4ZWNTdGF0ZSogbV9leGVjOwogICAgIEpTQzo6U3Ryb25nPEpTQzo6SlNP
YmplY3Q+IG1faW5pdGlhbGl6ZXJPYmplY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9EaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0Rp
Y3Rpb25hcnkuY3BwCmluZGV4IGIxODYyZmJiMjBjODZiNTZjY2MxYWNlMjk5OTc1NjcwNjJhNTJm
MGIuLmIzYjcwMjJhMDkzNTc0MDg2YjhjYWZlM2I5YjQ5OTVlZjlmNDQxZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuY3BwCkBAIC02NCw2ICs2NCwxMiBAQAogI2lu
Y2x1ZGUgIlY4TWVkaWFTdHJlYW0uaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKEZPTlRfTE9BRF9F
VkVOVFMpCisjaW5jbHVkZSAiVjhDU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJWOERPTUVy
cm9yLmgiCisjaW5jbHVkZSAiVjhWb2lkQ2FsbGJhY2suaCIKKyNlbmRpZgorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIERpY3Rpb25hcnk6OkRpY3Rpb25hcnkoKQpAQCAtNDk4LDYgKzUwNCw1NSBA
QCBib29sIERpY3Rpb25hcnk6OmdldChjb25zdCBTdHJpbmcmIGtleSwgQXJyYXlWYWx1ZSYgdmFs
dWUpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VW
RU5UUykKK2Jvb2wgRGljdGlvbmFyeTo6Z2V0KGNvbnN0IFN0cmluZyYga2V5LCBSZWZQdHI8Q1NT
Rm9udEZhY2VSdWxlPiYgdmFsdWUpIGNvbnN0Cit7CisgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4g
djhWYWx1ZTsKKyAgICBpZiAoIWdldEtleShrZXksIHY4VmFsdWUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBDU1NGb250RmFjZVJ1bGUqIHNvdXJjZSA9IDA7CisgICAgaWYgKHY4VmFs
dWUtPklzT2JqZWN0KCkpIHsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVy
ID0gdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2OFZhbHVlKTsKKyAgICAgICAgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiBmb250ZmFjZSA9IHdyYXBwZXItPkZpbmRJbnN0YW5jZUluUHJvdG90
eXBlQ2hhaW4oVjhDU1NGb250RmFjZVJ1bGU6OkdldFRlbXBsYXRlKG1faXNvbGF0ZSwgd29ybGRU
eXBlKG1faXNvbGF0ZSkpKTsKKyAgICAgICAgaWYgKCFmb250ZmFjZS5Jc0VtcHR5KCkpCisgICAg
ICAgICAgICBzb3VyY2UgPSBWOENTU0ZvbnRGYWNlUnVsZTo6dG9OYXRpdmUoZm9udGZhY2UpOwor
ICAgIH0KKyAgICB2YWx1ZSA9IHNvdXJjZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBE
aWN0aW9uYXJ5OjpnZXQoY29uc3QgU3RyaW5nJiBrZXksIFJlZlB0cjxET01FcnJvcj4mIHZhbHVl
KSBjb25zdAoreworICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHY4VmFsdWU7CisgICAgaWYgKCFn
ZXRLZXkoa2V5LCB2OFZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRE9NRXJy
b3IqIGVycm9yID0gMDsKKyAgICBpZiAodjhWYWx1ZS0+SXNPYmplY3QoKSkgeworICAgICAgICB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpD
YXN0KHY4VmFsdWUpOworICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGRvbUVycm9yID0g
d3JhcHBlci0+RmluZEluc3RhbmNlSW5Qcm90b3R5cGVDaGFpbihWOERPTUVycm9yOjpHZXRUZW1w
bGF0ZShtX2lzb2xhdGUsIHdvcmxkVHlwZShtX2lzb2xhdGUpKSk7CisgICAgICAgIGlmICghZG9t
RXJyb3IuSXNFbXB0eSgpKQorICAgICAgICAgICAgZXJyb3IgPSBWOERPTUVycm9yOjp0b05hdGl2
ZShkb21FcnJvcik7CisgICAgfQorICAgIHZhbHVlID0gZXJyb3I7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK2Jvb2wgRGljdGlvbmFyeTo6Z2V0KGNvbnN0IFN0cmluZyYga2V5LCBSZWZQdHI8Vm9p
ZENhbGxiYWNrPiYgdmFsdWUpIGNvbnN0Cit7CisgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdjhW
YWx1ZTsKKyAgICBpZiAoIWdldEtleShrZXksIHY4VmFsdWUpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBpZiAoIXY4VmFsdWUtPklzRnVuY3Rpb24oKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgdmFsdWUgPSBWOFZvaWRDYWxsYmFjazo6Y3JlYXRlKHY4VmFsdWUsIGdldFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYKKwog
Ym9vbCBEaWN0aW9uYXJ5OjpnZXRPd25Qcm9wZXJ0aWVzQXNTdHJpbmdIYXNoTWFwKEhhc2hNYXA8
U3RyaW5nLCBTdHJpbmc+JiBoYXNoTWFwKSBjb25zdAogewogICAgIGlmICghaXNPYmplY3QoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuaAppbmRleCA3NjUwMjk1YzMyMWZi
NGZkODU2ZTQ3NGJiOWJhZmQ5MzNkMGQ3N2Y2Li5kNGY2NDcyODFmZjY2NWQ4MjE0NWQ3ZjFmOTAy
YWFjZWJiMGVjMDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EaWN0
aW9uYXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFyeS5oCkBA
IC0zOSw2ICszOSw4IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFycmF5VmFsdWU7
CitjbGFzcyBDU1NGb250RmFjZVJ1bGU7CitjbGFzcyBET01FcnJvcjsKIGNsYXNzIERPTVdpbmRv
dzsKIGNsYXNzIElEQktleVJhbmdlOwogY2xhc3MgTWVkaWFLZXlFcnJvcjsKQEAgLTQ4LDYgKzUw
LDcgQEAgY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ7CiBjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3Q7CiBjbGFzcyBTdG9yYWdlOwogY2xhc3MgVHJhY2tCYXNlOworY2xhc3Mg
Vm9pZENhbGxiYWNrOwogCiBjbGFzcyBEaWN0aW9uYXJ5IHsKIHB1YmxpYzoKQEAgLTkzLDYgKzk2
LDExIEBAIHB1YmxpYzoKICAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBEaWN0aW9uYXJ5Jikg
Y29uc3Q7CiAgICAgYm9vbCBnZXQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKSBjb25z
dDsKICAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBBcnJheVZhbHVlJikgY29uc3Q7CisjaWYg
RU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisgICAgYm9vbCBnZXQoY29uc3QgU3RyaW5nJiwgUmVm
UHRyPENTU0ZvbnRGYWNlUnVsZT4mKSBjb25zdDsKKyAgICBib29sIGdldChjb25zdCBTdHJpbmcm
LCBSZWZQdHI8RE9NRXJyb3I+JikgY29uc3Q7CisgICAgYm9vbCBnZXQoY29uc3QgU3RyaW5nJiwg
UmVmUHRyPFZvaWRDYWxsYmFjaz4mKSBjb25zdDsKKyNlbmRpZgogCiAgICAgYm9vbCBnZXRPd25Q
cm9wZXJ0aWVzQXNTdHJpbmdIYXNoTWFwKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JikgY29uc3Q7
CiAgICAgYm9vbCBnZXRPd25Qcm9wZXJ0eU5hbWVzKFZlY3RvcjxTdHJpbmc+JikgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcAppbmRleCAyNzdmYmQ5Mjg5ZjZkNzc4MWY4MWFjMzQ5
NDllNzJmMjg2NDMwNWFkLi45OWFjNDEyZWRkZDBjZWFhZjQyMDA4NTUyNDkzYzAyYTViMDUwMzI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKQEAgLTI5LDcgKzI5LDEwIEBACiAjaW5j
bHVkZSAiQ1NTRm9udEZhY2VTb3VyY2UuaCIKICNpbmNsdWRlICJDU1NGb250U2VsZWN0b3IuaCIK
ICNpbmNsdWRlICJDU1NTZWdtZW50ZWRGb250RmFjZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiRm9udExvYWRlci5oIgor
I2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTaW1wbGVGb250
RGF0YS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04MSwxNCArODQsMjggQEAgdm9pZCBD
U1NGb250RmFjZTo6Zm9udExvYWRlZChDU1NGb250RmFjZVNvdXJjZSogc291cmNlKQogICAgIGlm
IChtX3NlZ21lbnRlZEZvbnRGYWNlcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IEhhc2hTZXQ8Q1NTU2VnbWVudGVkRm9udEZhY2UqPjo6aXRlcmF0b3IgZW5kID0gbV9zZWdtZW50
ZWRGb250RmFjZXMuZW5kKCk7Ci0gICAgZm9yIChIYXNoU2V0PENTU1NlZ21lbnRlZEZvbnRGYWNl
Kj46Oml0ZXJhdG9yIGl0ID0gbV9zZWdtZW50ZWRGb250RmFjZXMuYmVnaW4oKTsgaXQgIT0gZW5k
OyArK2l0KQotICAgICAgICAoKml0KS0+Zm9udExvYWRlZCh0aGlzKTsKLQogICAgIC8vIFVzZSBv
bmUgb2YgdGhlIENTU1NlZ21lbnRlZEZvbnRGYWNlcycgZm9udCBzZWxlY3Rvci4gVGhleSBhbGwg
aGF2ZQogICAgIC8vIHRoZSBzYW1lIGZvbnQgc2VsZWN0b3IsIHNvIGl0J3Mgd2FzdGVmdWwgdG8g
c3RvcmUgaXQgaW4gdGhlIENTU0ZvbnRGYWNlLgogICAgIENTU0ZvbnRTZWxlY3RvciogZm9udFNl
bGVjdG9yID0gKCptX3NlZ21lbnRlZEZvbnRGYWNlcy5iZWdpbigpKS0+Zm9udFNlbGVjdG9yKCk7
CiAgICAgZm9udFNlbGVjdG9yLT5mb250TG9hZGVkKCk7CisKKyNpZiBFTkFCTEUoRk9OVF9MT0FE
X0VWRU5UUykKKyAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6Zm9udExvYWRFdmVudHNF
bmFibGVkKCkgJiYgbV9sb2FkU3RhdGUgPT0gTG9hZGluZykgeworICAgICAgICBpZiAoc291cmNl
LT5lbnN1cmVGb250RGF0YSgpKQorICAgICAgICAgICAgbm90aWZ5Rm9udExvYWRlcihMb2FkZWQp
OworICAgICAgICBlbHNlIGlmICghaXNWYWxpZCgpKQorICAgICAgICAgICAgbm90aWZ5Rm9udExv
YWRlcihFcnJvcik7CisgICAgfQorI2VuZGlmCisKKyAgICBIYXNoU2V0PENTU1NlZ21lbnRlZEZv
bnRGYWNlKj46Oml0ZXJhdG9yIGVuZCA9IG1fc2VnbWVudGVkRm9udEZhY2VzLmVuZCgpOworICAg
IGZvciAoSGFzaFNldDxDU1NTZWdtZW50ZWRGb250RmFjZSo+OjppdGVyYXRvciBpdCA9IG1fc2Vn
bWVudGVkRm9udEZhY2VzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgKCppdCkt
PmZvbnRMb2FkZWQodGhpcyk7CisKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKKyAgICBp
ZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6Zm9udExvYWRFdmVudHNFbmFibGVkKCkpCisgICAg
ICAgIG5vdGlmeUxvYWRpbmdEb25lKCk7CisjZW5kaWYKIH0KIAogUGFzc1JlZlB0cjxTaW1wbGVG
b250RGF0YT4gQ1NTRm9udEZhY2U6OmdldEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGlj
KQpAQCAtMTAwLDE3ICsxMTcsNjYgQEAgUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gQ1NTRm9u
dEZhY2U6OmdldEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udEQKICAgICBBU1NF
UlQoIW1fc2VnbWVudGVkRm9udEZhY2VzLmlzRW1wdHkoKSk7CiAgICAgQ1NTRm9udFNlbGVjdG9y
KiBmb250U2VsZWN0b3IgPSAoKm1fc2VnbWVudGVkRm9udEZhY2VzLmJlZ2luKCkpLT5mb250U2Vs
ZWN0b3IoKTsKIAorI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQorICAgIGlmIChSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpmb250TG9hZEV2ZW50c0VuYWJsZWQoKSAmJiBtX2xvYWRTdGF0ZSA9
PSBOb3RMb2FkZWQpCisgICAgICAgIG5vdGlmeUZvbnRMb2FkZXIoTG9hZGluZyk7CisjZW5kaWYK
KwogICAgIHNpemVfdCBzaXplID0gbV9zb3VyY2VzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICBpZiAoUmVmUHRyPFNpbXBsZUZvbnREYXRh
PiByZXN1bHQgPSBtX3NvdXJjZXNbaV0tPmdldEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgc3lu
dGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250U2VsZWN0b3IpKSB7CiAgICAgICAgICAg
ICBtX2FjdGl2ZVNvdXJjZSA9IG1fc291cmNlc1tpXS5nZXQoKTsKKyNpZiBFTkFCTEUoRk9OVF9M
T0FEX0VWRU5UUykKKyAgICAgICAgICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpmb250
TG9hZEV2ZW50c0VuYWJsZWQoKSAmJiBtX2xvYWRTdGF0ZSA9PSBMb2FkaW5nICYmIG1fc291cmNl
c1tpXS0+aXNMb2FkZWQoKSkgeworICAgICAgICAgICAgICAgIG5vdGlmeUZvbnRMb2FkZXIoTG9h
ZGVkKTsKKyAgICAgICAgICAgICAgICBub3RpZnlMb2FkaW5nRG9uZSgpOworICAgICAgICAgICAg
fQorI2VuZGlmCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKICAgICAgICAg
fQogICAgIH0KIAorI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQorICAgIGlmIChSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpmb250TG9hZEV2ZW50c0VuYWJsZWQoKSAmJiBtX2xvYWRTdGF0ZSA9
PSBMb2FkaW5nKSB7CisgICAgICAgIG5vdGlmeUZvbnRMb2FkZXIoRXJyb3IpOworICAgICAgICBu
b3RpZnlMb2FkaW5nRG9uZSgpOworICAgIH0KKyNlbmRpZgogICAgIHJldHVybiAwOwogfQogCisj
aWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCit2b2lkIENTU0ZvbnRGYWNlOjpub3RpZnlGb250
TG9hZGVyKExvYWRTdGF0ZSBuZXdTdGF0ZSkKK3sKKyAgICBtX2xvYWRTdGF0ZSA9IG5ld1N0YXRl
OworCisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gKCptX3NlZ21lbnRlZEZvbnRGYWNlcy5iZWdp
bigpKS0+Zm9udFNlbGVjdG9yKCktPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgc3dpdGNoIChuZXdTdGF0ZSkgeworICAgIGNhc2UgTG9hZGlu
ZzoKKyAgICAgICAgZG9jdW1lbnQtPmZvbnRsb2FkZXIoKS0+YmVnaW5Gb250TG9hZGluZyhtX3J1
bGUuZ2V0KCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWRlZDoKKyAgICAgICAgZG9j
dW1lbnQtPmZvbnRsb2FkZXIoKS0+Zm9udExvYWRlZChtX3J1bGUuZ2V0KCkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEVycm9yOgorICAgICAgICBkb2N1bWVudC0+Zm9udGxvYWRlcigpLT5s
b2FkRXJyb3IobV9ydWxlLmdldCgpLCBtX2FjdGl2ZVNvdXJjZSk7CisgICAgICAgIGJyZWFrOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordm9pZCBDU1NGb250RmFj
ZTo6bm90aWZ5TG9hZGluZ0RvbmUoKQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9ICgqbV9z
ZWdtZW50ZWRGb250RmFjZXMuYmVnaW4oKSktPmZvbnRTZWxlY3RvcigpLT5kb2N1bWVudCgpOwor
ICAgIGlmIChkb2N1bWVudCkKKyAgICAgICAgZG9jdW1lbnQtPmZvbnRsb2FkZXIoKS0+bG9hZGlu
Z0RvbmUoKTsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKFNWR19GT05UUykKIGJvb2wgQ1NTRm9u
dEZhY2U6Omhhc1NWR0ZvbnRGYWNlU291cmNlKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
YWNlLmgKaW5kZXggZTNmNjQ4MTA3YzYxN2U4YWYyMzU1ZDhmMTE0MTBhMWE3NzE4NzRlNy4uNGVk
OTQ2Zjk3OThlYzA0NzI4Mjk1ZjlhMGY4MjdlYTYzMjMyOWU2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Zv
bnRGYWNlLmgKQEAgLTI2LDYgKzI2LDggQEAKICNpZm5kZWYgQ1NTRm9udEZhY2VfaAogI2RlZmlu
ZSBDU1NGb250RmFjZV9oCiAKKyNpbmNsdWRlICJDU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRl
ICJDU1NGb250RmFjZVNvdXJjZS5oIgogI2luY2x1ZGUgIkZvbnRUcmFpdHNNYXNrLmgiCiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtMzYsMTQg
KzM4LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ1NTRm9udEZhY2VTb3Vy
Y2U7CiBjbGFzcyBDU1NTZWdtZW50ZWRGb250RmFjZTsKIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsK
IGNsYXNzIFNpbXBsZUZvbnREYXRhOwogCiBjbGFzcyBDU1NGb250RmFjZSA6IHB1YmxpYyBSZWZD
b3VudGVkPENTU0ZvbnRGYWNlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NT
Rm9udEZhY2U+IGNyZWF0ZShGb250VHJhaXRzTWFzayB0cmFpdHNNYXNrLCBib29sIGlzTG9jYWxG
YWxsYmFjayA9IGZhbHNlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTRm9udEZhY2UodHJhaXRz
TWFzaywgaXNMb2NhbEZhbGxiYWNrKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NGb250
RmFjZT4gY3JlYXRlKEZvbnRUcmFpdHNNYXNrIHRyYWl0c01hc2ssIFBhc3NSZWZQdHI8Q1NTRm9u
dEZhY2VSdWxlPiBydWxlLCBib29sIGlzTG9jYWxGYWxsYmFjayA9IGZhbHNlKSB7IHJldHVybiBh
ZG9wdFJlZihuZXcgQ1NTRm9udEZhY2UodHJhaXRzTWFzaywgcnVsZSwgaXNMb2NhbEZhbGxiYWNr
KSk7IH0KIAogICAgIEZvbnRUcmFpdHNNYXNrIHRyYWl0c01hc2soKSBjb25zdCB7IHJldHVybiBt
X3RyYWl0c01hc2s7IH0KIApAQCAtODUsMTIgKzg2LDIyIEBAIHB1YmxpYzoKICAgICBib29sIGhh
c1NWR0ZvbnRGYWNlU291cmNlKCkgY29uc3Q7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGT05UX0xP
QURfRVZFTlRTKQorICAgIGVudW0gTG9hZFN0YXRlIHsgTm90TG9hZGVkLCBMb2FkaW5nLCBMb2Fk
ZWQsIEVycm9yIH07CisgICAgTG9hZFN0YXRlIGxvYWRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bG9hZFN0YXRlOyB9CisjZW5kaWYKKwogcHJpdmF0ZToKLSAgICBDU1NGb250RmFjZShGb250VHJh
aXRzTWFzayB0cmFpdHNNYXNrLCBib29sIGlzTG9jYWxGYWxsYmFjaykKKyAgICBDU1NGb250RmFj
ZShGb250VHJhaXRzTWFzayB0cmFpdHNNYXNrLCBQYXNzUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4g
cnVsZSwgYm9vbCBpc0xvY2FsRmFsbGJhY2spCiAgICAgICAgIDogbV90cmFpdHNNYXNrKHRyYWl0
c01hc2spCiAgICAgICAgICwgbV9hY3RpdmVTb3VyY2UoMCkKICAgICAgICAgLCBtX2lzTG9jYWxG
YWxsYmFjayhpc0xvY2FsRmFsbGJhY2spCisjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisg
ICAgICAgICwgbV9sb2FkU3RhdGUoaXNMb2NhbEZhbGxiYWNrID8gTG9hZGVkIDogTm90TG9hZGVk
KQorICAgICAgICAsIG1fcnVsZShydWxlKQorI2VuZGlmCiAgICAgeworICAgICAgICBVTlVTRURf
UEFSQU0ocnVsZSk7CiAgICAgfQogCiAgICAgRm9udFRyYWl0c01hc2sgbV90cmFpdHNNYXNrOwpA
QCAtOTksNiArMTEwLDEyIEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPE93blB0cjxDU1NGb250RmFj
ZVNvdXJjZT4gPiBtX3NvdXJjZXM7CiAgICAgQ1NTRm9udEZhY2VTb3VyY2UqIG1fYWN0aXZlU291
cmNlOwogICAgIGJvb2wgbV9pc0xvY2FsRmFsbGJhY2s7CisjaWYgRU5BQkxFKEZPTlRfTE9BRF9F
VkVOVFMpCisgICAgTG9hZFN0YXRlIG1fbG9hZFN0YXRlOworICAgIFJlZlB0cjxDU1NGb250RmFj
ZVJ1bGU+IG1fcnVsZTsKKyAgICB2b2lkIG5vdGlmeUZvbnRMb2FkZXIoTG9hZFN0YXRlKTsKKyAg
ICB2b2lkIG5vdGlmeUxvYWRpbmdEb25lKCk7CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZUxvYWRFdmVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkMWI1M2IyZTFl
MmM5OTMxYTI3ZWZlYmM2NDczZjE0ZTM4ZmRhOWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ1NTRm9udEZhY2VMb2FkRXZlbnQuaCIKKworI2lm
IEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0NTU0Zv
bnRGYWNlTG9hZEV2ZW50OjpDU1NGb250RmFjZUxvYWRFdmVudCgpCit7Cit9CisKK0NTU0ZvbnRG
YWNlTG9hZEV2ZW50OjpDU1NGb250RmFjZUxvYWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIFBhc3NSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiBmb250ZmFjZSwgUGFzc1JlZlB0cjxET01F
cnJvcj4gZXJyb3IpCisgICAgOiBFdmVudCh0eXBlLCBmYWxzZSwgZmFsc2UpCisgICAgLCBtX2Zv
bnRmYWNlKGZvbnRmYWNlKQorICAgICwgbV9lcnJvcihlcnJvcikKK3sKK30KKworQ1NTRm9udEZh
Y2VMb2FkRXZlbnQ6OkNTU0ZvbnRGYWNlTG9hZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgY29uc3QgQ1NTRm9udEZhY2VMb2FkRXZlbnRJbml0JiBpbml0aWFsaXplcikKKyAgICA6IEV2
ZW50KHR5cGUsIGluaXRpYWxpemVyKQorICAgICwgbV9mb250ZmFjZShpbml0aWFsaXplci5mb250
ZmFjZSkKKyAgICAsIG1fZXJyb3IoaW5pdGlhbGl6ZXIuZXJyb3IpCit7Cit9CisKK0NTU0ZvbnRG
YWNlTG9hZEV2ZW50Ojp+Q1NTRm9udEZhY2VMb2FkRXZlbnQoKQoreworfQorCitjb25zdCBBdG9t
aWNTdHJpbmcmIENTU0ZvbnRGYWNlTG9hZEV2ZW50OjppbnRlcmZhY2VOYW1lKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZvckNTU0ZvbnRGYWNlTG9hZEV2ZW50
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRk9OVF9M
T0FEX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZUxv
YWRFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDA4NDIzZmZkNDdjYjg4MTQ1NGY2MzI3MDBlN2M4YjgyOTJmZTJiMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZUxvYWRFdmVudC5oCkBA
IC0wLDAgKzEsOTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisKKyNpZm5kZWYgQ1NT
Rm9udEZhY2VMb2FkRXZlbnRfaAorI2RlZmluZSBDU1NGb250RmFjZUxvYWRFdmVudF9oCisKKyNp
bmNsdWRlICJDU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgorI2luY2x1
ZGUgIkRPTUVycm9yLmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IENTU0ZvbnRGYWNlTG9hZEV2ZW50SW5p
dCA6IHB1YmxpYyBFdmVudEluaXQgeworICAgIFJlZlB0cjxDU1NGb250RmFjZVJ1bGU+IGZvbnRm
YWNlOworICAgIFJlZlB0cjxET01FcnJvcj4gZXJyb3I7Cit9OworCitjbGFzcyBDU1NGb250RmFj
ZUxvYWRFdmVudCA6IHB1YmxpYyBFdmVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8Q1NTRm9udEZhY2VMb2FkRXZlbnQ+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWY8Q1NTRm9udEZhY2VMb2FkRXZlbnQ+KG5ldyBDU1NGb250RmFjZUxvYWRFdmVudCgp
KTsKKyAgICB9CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NGb250RmFjZUxvYWRFdmVudD4g
Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgQ1NTRm9udEZhY2VMb2FkRXZl
bnRJbml0JiBpbml0aWFsaXplcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZjxDU1NG
b250RmFjZUxvYWRFdmVudD4obmV3IENTU0ZvbnRGYWNlTG9hZEV2ZW50KHR5cGUsIGluaXRpYWxp
emVyKSk7CisgICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTRm9udEZhY2VMb2FkRXZl
bnQ+IGNyZWF0ZUZvckZvbnRGYWNlUnVsZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIFBhc3NS
ZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiBydWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmPENTU0ZvbnRGYWNlTG9hZEV2ZW50PihuZXcgQ1NTRm9udEZhY2VMb2FkRXZlbnQodHlwZSwg
cnVsZSwgMCkpOworICAgIH0KKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0ZvbnRGYWNlTG9h
ZEV2ZW50PiBjcmVhdGVGb3JFcnJvcihQYXNzUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4gcnVsZSwg
UGFzc1JlZlB0cjxET01FcnJvcj4gZXJyb3IpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWY8Q1NTRm9udEZhY2VMb2FkRXZlbnQ+KG5ldyBDU1NGb250RmFjZUxvYWRFdmVudChldmVudE5h
bWVzKCkuZXJyb3JFdmVudCwgcnVsZSwgZXJyb3IpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5D
U1NGb250RmFjZUxvYWRFdmVudCgpOworCisgICAgQ1NTRm9udEZhY2VSdWxlKiBmb250ZmFjZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZm9udGZhY2UuZ2V0KCk7IH0KKyAgICBET01FcnJvciogZXJyb3Io
KSBjb25zdCB7IHJldHVybiBtX2Vycm9yLmdldCgpOyB9CisKKyAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0OworCitwcml2YXRlOgorICAgIENTU0Zv
bnRGYWNlTG9hZEV2ZW50KCk7CisgICAgQ1NTRm9udEZhY2VMb2FkRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiwgUGFzc1JlZlB0cjxDU1NGb250RmFjZVJ1bGU+LCBQYXNzUmVmUHRyPERPTUVycm9y
Pik7CisgICAgQ1NTRm9udEZhY2VMb2FkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3Qg
Q1NTRm9udEZhY2VMb2FkRXZlbnRJbml0Jik7CisKKyAgICBSZWZQdHI8Q1NTRm9udEZhY2VSdWxl
PiBtX2ZvbnRmYWNlOworICAgIFJlZlB0cjxET01FcnJvcj4gbV9lcnJvcjsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIENTU0ZvbnRGYWNlTG9hZEV2ZW50X2gKKyNl
bmRpZiAvLyBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmFjZUxvYWRFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udEZhY2VMb2FkRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyZGNlZTA4YTUwMTZjMDNkNzc4NmMx
Y2Q0Y2RkMTc1YjVjODY1ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9u
YWw9Rk9OVF9MT0FEX0VWRU5UUywKKyAgICBWOEVuYWJsZWRBdFJ1bnRpbWU9Zm9udExvYWRFdmVu
dHMsCisgICAgSlNOb1N0YXRpY1RhYmxlcywKKyAgICBDb25zdHJ1Y3RvclRlbXBsYXRlPUV2ZW50
CitdIGludGVyZmFjZSBDU1NGb250RmFjZUxvYWRFdmVudCA6IEV2ZW50IHsKKyAgICByZWFkb25s
eSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSBDU1NGb250RmFjZVJ1
bGUgZm9udGZhY2U7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRD
b25zdHJ1Y3Rvcl0gRE9NRXJyb3IgZXJyb3I7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZh
Y2VSdWxlLmlkbAppbmRleCBmMTM0OTdjNDM3ZjZhZWUxZDY2MjcwNjNmMzA1NGNiYjZhOTIxYzBi
Li5iYTk3YTdiN2Y0ODI2MGI2YzMzMTc1MTQxMzNkM2Q2NWMxMTRmYWNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbApAQCAtMTksNyArMTksMTAgQEAKICAqLwogCiAvLyBJ
bnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotaW50ZXJmYWNlIENTU0ZvbnRGYWNlUnVsZSA6IENT
U1J1bGUgeworaW50ZXJmYWNlIFsKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKKyAgICBKU0dl
bmVyYXRlVG9OYXRpdmVPYmplY3QsCitdIENTU0ZvbnRGYWNlUnVsZSA6IENTU1J1bGUgewogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uIHN0eWxlOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAKaW5kZXggYTU5NTIxN2YzNzc0OTU2
MWQzMTYyMDMyNmVhZjU1Zjg1MjI2ZTg1OC4uODMzNGIxODM2OGE2YWIyMDBhNjQ0NDc0Y2IxOTRi
YzZlMGIxMmYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCkBA
IC0yMDUsNCArMjA1LDI0IEBAIGJvb2wgQ1NTRm9udEZhY2VTb3VyY2U6OmlzU1ZHRm9udEZhY2VT
b3VyY2UoKSBjb25zdAogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykK
K2Jvb2wgQ1NTRm9udEZhY2VTb3VyY2U6OmlzRGVjb2RlRXJyb3IoKSBjb25zdAoreworICAgIGlm
IChtX2ZvbnQpCisgICAgICAgIHJldHVybiBtX2ZvbnQtPnN0YXR1cygpID09IENhY2hlZFJlc291
cmNlOjpEZWNvZGVFcnJvcjsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQ1NTRm9udEZh
Y2VTb3VyY2U6OmVuc3VyZUZvbnREYXRhKCkKK3sKKyAgICBpZiAoIW1fZm9udCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworI2lmIEVOQUJMRShTVkdfRk9OVFMpCisgICAgaWYgKG1faGFzRXh0ZXJu
YWxTVkdGb250KQorICAgICAgICByZXR1cm4gbV9mb250LT5lbnN1cmVTVkdGb250RGF0YSgpOwor
I2VuZGlmCisgICAgcmV0dXJuIG1fZm9udC0+ZW5zdXJlQ3VzdG9tRm9udERhdGEoKTsKK30KKyNl
bmRpZgorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3Vy
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5oCmluZGV4IDA0ODhk
MTBkMzI2MDBlNDdkZWRkMGY3MjhjMDAzNGNhMDRhZGYxNWMuLmYwOTA2OTVjMWQwZjY5ZGNkODRl
Y2Y5MmNiZDI1NWQ4MzRhYTM5ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250RmFjZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJj
ZS5oCkBAIC03MCw2ICs3MCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRIYXNFeHRlcm5hbFNW
R0ZvbnQoYm9vbCB2YWx1ZSkgeyBtX2hhc0V4dGVybmFsU1ZHRm9udCA9IHZhbHVlOyB9CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQorICAgIGJvb2wgaXNEZWNvZGVFcnJv
cigpIGNvbnN0OworICAgIGJvb2wgZW5zdXJlRm9udERhdGEoKTsKKyNlbmRpZgorCiBwcml2YXRl
OgogICAgIHZvaWQgc3RhcnRMb2FkaW5nVGltZXJGaXJlZChUaW1lcjxDU1NGb250RmFjZVNvdXJj
ZT4qKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcAppbmRleCA0NGM2MmE3
ZmJjNWM3YmNlNjBhNzZiNjJiMWIwNjM1MTg4ZjQwNTFlLi40YTMwMjA5MGZjMDU3NjIzNzY2ZDZj
MWQ1NTZhODZlYTI1N2JlNjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dFNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNw
cApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkRm9udC5oIgogI2luY2x1ZGUg
IkNTU0ZvbnRGYWNlLmgiCisjaW5jbHVkZSAiQ1NTRm9udEZhY2VSdWxlLmgiCiAjaW5jbHVkZSAi
Q1NTRm9udEZhY2VTb3VyY2UuaCIKICNpbmNsdWRlICJDU1NGb250RmFjZVNyY1ZhbHVlLmgiCiAj
aW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKQEAgLTIyNSw4ICsyMjYsMTUgQEAgdm9pZCBD
U1NGb250U2VsZWN0b3I6OmFkZEZvbnRGYWNlUnVsZShjb25zdCBTdHlsZVJ1bGVGb250RmFjZSog
Zm9udEZhY2VSdWxlKQogICAgICAgICAgICAgc291cmNlID0gYWRvcHRQdHIobmV3IENTU0ZvbnRG
YWNlU291cmNlKGl0ZW0tPnJlc291cmNlKCkpKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmICgh
Zm9udEZhY2UpCi0gICAgICAgICAgICBmb250RmFjZSA9IENTU0ZvbnRGYWNlOjpjcmVhdGUoc3Rh
dGljX2Nhc3Q8Rm9udFRyYWl0c01hc2s+KHRyYWl0c01hc2spKTsKKyAgICAgICAgaWYgKCFmb250
RmFjZSkgeworICAgICAgICAgICAgUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4gcnVsZTsKKyNpZiBF
TkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKKyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIENTU0Zv
bnRGYWNlUnVsZSBoYXMgbm8gcGFyZW50LgorICAgICAgICAgICAgaWYgKFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OmZvbnRMb2FkRXZlbnRzRW5hYmxlZCgpKQorICAgICAgICAgICAgICAgIHJ1bGUg
PSBzdGF0aWNfcG9pbnRlcl9jYXN0PENTU0ZvbnRGYWNlUnVsZT4oZm9udEZhY2VSdWxlLT5jcmVh
dGVDU1NPTVdyYXBwZXIoKSk7CisjZW5kaWYKKyAgICAgICAgICAgIGZvbnRGYWNlID0gQ1NTRm9u
dEZhY2U6OmNyZWF0ZShzdGF0aWNfY2FzdDxGb250VHJhaXRzTWFzaz4odHJhaXRzTWFzayksIHJ1
bGUpOworICAgICAgICB9CiAKICAgICAgICAgaWYgKHNvdXJjZSkgewogI2lmIEVOQUJMRShTVkdf
Rk9OVFMpCkBAIC0yOTgsNyArMzA2LDcgQEAgdm9pZCBDU1NGb250U2VsZWN0b3I6OmFkZEZvbnRG
YWNlUnVsZShjb25zdCBTdHlsZVJ1bGVGb250RmFjZSogZm9udEZhY2VSdWxlKQogICAgICAgICAg
ICAgICAgIE93blB0cjxWZWN0b3I8UmVmUHRyPENTU0ZvbnRGYWNlPiA+ID4gZmFtaWx5TG9jYWxs
eUluc3RhbGxlZEZhY2VzID0gYWRvcHRQdHIobmV3IFZlY3RvcjxSZWZQdHI8Q1NTRm9udEZhY2U+
ID4pOwogCiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bUxvY2Fs
bHlJbnN0YWxsZWRGYWNlczsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgIFJlZlB0cjxDU1NG
b250RmFjZT4gbG9jYWxseUluc3RhbGxlZEZvbnRGYWNlID0gQ1NTRm9udEZhY2U6OmNyZWF0ZShz
dGF0aWNfY2FzdDxGb250VHJhaXRzTWFzaz4obG9jYWxseUluc3RhbGxlZEZvbnRzVHJhaXRzTWFz
a3NbaV0pLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgUmVmUHRyPENTU0ZvbnRGYWNlPiBs
b2NhbGx5SW5zdGFsbGVkRm9udEZhY2UgPSBDU1NGb250RmFjZTo6Y3JlYXRlKHN0YXRpY19jYXN0
PEZvbnRUcmFpdHNNYXNrPihsb2NhbGx5SW5zdGFsbGVkRm9udHNUcmFpdHNNYXNrc1tpXSksIDAs
IHRydWUpOwogICAgICAgICAgICAgICAgICAgICBsb2NhbGx5SW5zdGFsbGVkRm9udEZhY2UtPmFk
ZFNvdXJjZShhZG9wdFB0cihuZXcgQ1NTRm9udEZhY2VTb3VyY2UoZmFtaWx5TmFtZSkpKTsKICAg
ICAgICAgICAgICAgICAgICAgQVNTRVJUKGxvY2FsbHlJbnN0YWxsZWRGb250RmFjZS0+aXNWYWxp
ZCgpKTsKICAgICAgICAgICAgICAgICAgICAgZmFtaWx5TG9jYWxseUluc3RhbGxlZEZhY2VzLT5h
cHBlbmQobG9jYWxseUluc3RhbGxlZEZvbnRGYWNlKTsKQEAgLTQ3NiwxMSArNDg0LDkgQEAgUGFz
c1JlZlB0cjxGb250RGF0YT4gQ1NTRm9udFNlbGVjdG9yOjpnZXRGb250RGF0YShjb25zdCBGb250
RGVzY3JpcHRpb24mIGZvbnREZXMKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgU3Ry
aW5nIGZhbWlseSA9IGZhbWlseU5hbWUuc3RyaW5nKCk7Ci0KLSAgICBWZWN0b3I8UmVmUHRyPENT
U0ZvbnRGYWNlPiA+KiBmYW1pbHlGb250RmFjZXMgPSBtX2ZvbnRGYWNlcy5nZXQoZmFtaWx5KTsK
KyAgICBDU1NTZWdtZW50ZWRGb250RmFjZSogZmFjZSA9IGdldEZvbnRGYWNlKGZvbnREZXNjcmlw
dGlvbiwgZmFtaWx5TmFtZSk7CiAgICAgLy8gSWYgbm8gZmFjZSB3YXMgZm91bmQsIHRoZW4gcmV0
dXJuIDAgYW5kIGxldCB0aGUgT1MgY29tZSB1cCB3aXRoIGl0cyBiZXN0IG1hdGNoIGZvciB0aGUg
bmFtZS4KLSAgICBpZiAoIWZhbWlseUZvbnRGYWNlcyB8fCBmYW1pbHlGb250RmFjZXMtPmlzRW1w
dHkoKSkgeworICAgIGlmICghZmFjZSkgewogICAgICAgICAvLyBJZiB3ZSB3ZXJlIGhhbmRlZCBh
IGdlbmVyaWMgZmFtaWx5LCBidXQgdGhlcmUgd2FzIG5vIG1hdGNoLCBnbyBhaGVhZCBhbmQgcmV0
dXJuIHRoZSBjb3JyZWN0IGZvbnQgYmFzZWQgb2ZmIG91cgogICAgICAgICAvLyBzZXR0aW5ncy4K
ICAgICAgICAgaWYgKGZvbnREZXNjcmlwdGlvbi5nZW5lcmljRmFtaWx5KCkgPT0gRm9udERlc2Ny
aXB0aW9uOjpTdGFuZGFyZEZhbWlseSAmJiAhZm9udERlc2NyaXB0aW9uLmlzU3BlY2lmaWVkRm9u
dCgpKQpAQCAtNDg4LDYgKzQ5NCwxOCBAQCBQYXNzUmVmUHRyPEZvbnREYXRhPiBDU1NGb250U2Vs
ZWN0b3I6OmdldEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlcwogICAgICAg
ICByZXR1cm4gZm9udERhdGFGb3JHZW5lcmljRmFtaWx5KG1fZG9jdW1lbnQsIGZvbnREZXNjcmlw
dGlvbiwgZmFtaWx5TmFtZSk7CiAgICAgfQogCisgICAgLy8gV2UgaGF2ZSBhIGZhY2UuIEFzayBp
dCBmb3IgYSBmb250IGRhdGEuIElmIGl0IGNhbm5vdCBwcm9kdWNlIG9uZSwgaXQgd2lsbCBmYWls
LCBhbmQgdGhlIE9TIHdpbGwgdGFrZSBvdmVyLgorICAgIHJldHVybiBmYWNlLT5nZXRGb250RGF0
YShmb250RGVzY3JpcHRpb24pOworfQorCitDU1NTZWdtZW50ZWRGb250RmFjZSogQ1NTRm9udFNl
bGVjdG9yOjpnZXRGb250RmFjZShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlv
biwgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHlOYW1lKQoreworICAgIFN0cmluZyBmYW1pbHkg
PSBmYW1pbHlOYW1lLnN0cmluZygpOworCisgICAgVmVjdG9yPFJlZlB0cjxDU1NGb250RmFjZT4g
PiogZmFtaWx5Rm9udEZhY2VzID0gbV9mb250RmFjZXMuZ2V0KGZhbWlseSk7CisgICAgaWYgKCFm
YW1pbHlGb250RmFjZXMgfHwgZmFtaWx5Rm9udEZhY2VzLT5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybiAwOworCiAgICAgT3duUHRyPEhhc2hNYXA8dW5zaWduZWQsIFJlZlB0cjxDU1NTZWdtZW50
ZWRGb250RmFjZT4gPiA+JiBzZWdtZW50ZWRGb250RmFjZUNhY2hlID0gbV9mb250cy5hZGQoZmFt
aWx5LCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CiAgICAgaWYgKCFzZWdtZW50ZWRGb250RmFj
ZUNhY2hlKQogICAgICAgICBzZWdtZW50ZWRGb250RmFjZUNhY2hlID0gYWRvcHRQdHIobmV3IEhh
c2hNYXA8dW5zaWduZWQsIFJlZlB0cjxDU1NTZWdtZW50ZWRGb250RmFjZT4gPik7CkBAIC01MzUs
OSArNTUzLDcgQEAgUGFzc1JlZlB0cjxGb250RGF0YT4gQ1NTRm9udFNlbGVjdG9yOjpnZXRGb250
RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXMKICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG51bUNhbmRpZGF0ZXM7ICsraSkKICAgICAgICAgICAgIGZhY2UtPmFwcGVu
ZEZvbnRGYWNlKGNhbmRpZGF0ZUZvbnRGYWNlc1tpXSk7CiAgICAgfQotCi0gICAgLy8gV2UgaGF2
ZSBhIGZhY2UuICBBc2sgaXQgZm9yIGEgZm9udCBkYXRhLiAgSWYgaXQgY2Fubm90IHByb2R1Y2Ug
b25lLCBpdCB3aWxsIGZhaWwsIGFuZCB0aGUgT1Mgd2lsbCB0YWtlIG92ZXIuCi0gICAgcmV0dXJu
IGZhY2UtPmdldEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbik7CisgICAgcmV0dXJuIGZhY2UuZ2V0
KCk7CiB9CiAKIHZvaWQgQ1NTRm9udFNlbGVjdG9yOjpjbGVhckRvY3VtZW50KCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250U2VsZWN0b3IuaAppbmRleCBkMDIxMDBjMzI2MjBmODg1NjE1MmQ5ZTAxNmVi
YmU4YTJiZDA4MDJmLi44ZmNlNGM0NGRjOTgwYjdjMzA4N2ZhM2Q5MzY0YTJjZGVlNThjMmFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5oCkBAIC01Niw2ICs1Niw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHVuc2lnbmVkIHZlcnNpb24oKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biBtX3ZlcnNpb247IH0KIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGb250RGF0YT4gZ2V0Rm9u
dERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbWljU3RyaW5nJik7CisgICAg
Q1NTU2VnbWVudGVkRm9udEZhY2UqIGdldEZvbnRGYWNlKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYs
IGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5TmFtZSk7CiAKICAgICB2b2lkIGNsZWFyRG9jdW1l
bnQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21lbnRlZEZvbnRG
YWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWdtZW50ZWRGb250RmFjZS5jcHAKaW5k
ZXggOWU5MDgzZjIwNTMzNGYwMTY0YTZhZTAyNTA1M2EyYTlkNjg3MjUyMi4uNDJhMjk4NzY5OGEx
NWJmOWE3NTJlOGFmMWUyY2MxNzg3NmI4ZmYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U2VnbWVudGVkRm9udEZhY2UuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ1NTRm9u
dFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGb250RGVzY3Jp
cHRpb24uaCIKKyNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAi
U2VnbWVudGVkRm9udERhdGEuaCIKICNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgogCkBAIC03
Miw2ICs3MywxOSBAQCBib29sIENTU1NlZ21lbnRlZEZvbnRGYWNlOjppc1ZhbGlkKCkgY29uc3QK
IHZvaWQgQ1NTU2VnbWVudGVkRm9udEZhY2U6OmZvbnRMb2FkZWQoQ1NTRm9udEZhY2UqKQogewog
ICAgIHBydW5lVGFibGUoKTsKKworI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQorICAgIGlm
IChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpmb250TG9hZEV2ZW50c0VuYWJsZWQoKSAmJiAhaXNM
b2FkaW5nKCkpIHsKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxMb2FkRm9udENhbGxiYWNrPiA+IGNh
bGxiYWNrczsKKyAgICAgICAgbV9jYWxsYmFja3Muc3dhcChjYWxsYmFja3MpOworICAgICAgICBm
b3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgY2FsbGJhY2tzLnNpemUoKTsgKytpbmRleCkg
eworICAgICAgICAgICAgaWYgKGNoZWNrRm9udCgpKQorICAgICAgICAgICAgICAgIGNhbGxiYWNr
c1tpbmRleF0tPm5vdGlmeUxvYWRlZCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIGNhbGxiYWNrc1tpbmRleF0tPm5vdGlmeUVycm9yKCk7CisgICAgICAgIH0KKyAgICB9Cisj
ZW5kaWYKIH0KIAogdm9pZCBDU1NTZWdtZW50ZWRGb250RmFjZTo6YXBwZW5kRm9udEZhY2UoUGFz
c1JlZlB0cjxDU1NGb250RmFjZT4gZm9udEZhY2UpCkBAIC0xMzUsNCArMTQ5LDM5IEBAIFBhc3NS
ZWZQdHI8Rm9udERhdGE+IENTU1NlZ21lbnRlZEZvbnRGYWNlOjpnZXRGb250RGF0YShjb25zdCBG
b250RGVzY3JpcHRpb24mIGZvCiAgICAgcmV0dXJuIDA7CiB9CiAKKyNpZiBFTkFCTEUoRk9OVF9M
T0FEX0VWRU5UUykKK2Jvb2wgQ1NTU2VnbWVudGVkRm9udEZhY2U6OmlzTG9hZGluZygpIGNvbnN0
Cit7CisgICAgdW5zaWduZWQgc2l6ZSA9IG1fZm9udEZhY2VzLnNpemUoKTsKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgIGlmIChtX2ZvbnRGYWNlc1tp
XS0+bG9hZFN0YXRlKCkgPT0gQ1NTRm9udEZhY2U6OkxvYWRpbmcpCisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIENTU1NlZ21lbnRl
ZEZvbnRGYWNlOjpjaGVja0ZvbnQoKSBjb25zdAoreworICAgIHVuc2lnbmVkIHNpemUgPSBtX2Zv
bnRGYWNlcy5zaXplKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7IGkrKykg
eworICAgICAgICBpZiAobV9mb250RmFjZXNbaV0tPmxvYWRTdGF0ZSgpICE9IENTU0ZvbnRGYWNl
OjpMb2FkZWQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0
cnVlOworfQorCit2b2lkIENTU1NlZ21lbnRlZEZvbnRGYWNlOjpsb2FkRm9udChjb25zdCBGb250
RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgUGFzc1JlZlB0cjxMb2FkRm9udENhbGxiYWNr
PiBjYWxsYmFjaykKK3sKKyAgICBnZXRGb250RGF0YShmb250RGVzY3JpcHRpb24pOworICAgIGlm
IChjYWxsYmFjaykgeworICAgICAgICBpZiAoaXNMb2FkaW5nKCkpCisgICAgICAgICAgICBtX2Nh
bGxiYWNrcy5hcHBlbmQoY2FsbGJhY2spOworICAgICAgICBlbHNlIGlmIChjaGVja0ZvbnQoKSkK
KyAgICAgICAgICAgIGNhbGxiYWNrLT5ub3RpZnlMb2FkZWQoKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgY2FsbGJhY2stPm5vdGlmeUVycm9yKCk7CisgICAgfQorfQorI2VuZGlmCisKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWdtZW50ZWRGb250RmFjZS5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmgKaW5kZXggZjE4M2Y0OTk1
ZTA4MjllZTE2OGEzODkyZDZmOWVmM2ZhZGVlMDhmNy4uZWMzOWMxN2QxN2QyZmJjOTY2YjE5MmRh
NzUzMDUyOGI4OTIyNDNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21l
bnRlZEZvbnRGYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlZ21lbnRlZEZvbnRG
YWNlLmgKQEAgLTUzLDE1ICs1MywzMyBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPEZvbnRE
YXRhPiBnZXRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mKTsKIAorI2lmIEVOQUJMRShG
T05UX0xPQURfRVZFTlRTKQorICAgIGNsYXNzIExvYWRGb250Q2FsbGJhY2sgOiBwdWJsaWMgUmVm
Q291bnRlZDxMb2FkRm9udENhbGxiYWNrPiB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFs
IH5Mb2FkRm9udENhbGxiYWNrKCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBub3RpZnlMb2Fk
ZWQoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBub3RpZnlFcnJvcigpID0gMDsKKyAgICB9
OworCisgICAgYm9vbCBjaGVja0ZvbnQoKSBjb25zdDsKKyAgICB2b2lkIGxvYWRGb250KGNvbnN0
IEZvbnREZXNjcmlwdGlvbiYsIFBhc3NSZWZQdHI8TG9hZEZvbnRDYWxsYmFjaz4gbG9hZENhbGxi
YWNrKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIENTU1NlZ21lbnRlZEZvbnRGYWNlKENTU0Zv
bnRTZWxlY3RvciopOwogCiAgICAgdm9pZCBwcnVuZVRhYmxlKCk7CiAgICAgYm9vbCBpc1ZhbGlk
KCkgY29uc3Q7CisjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisgICAgYm9vbCBpc0xvYWRp
bmcoKSBjb25zdDsKKyNlbmRpZgogCiAgICAgQ1NTRm9udFNlbGVjdG9yKiBtX2ZvbnRTZWxlY3Rv
cjsKICAgICBIYXNoTWFwPHVuc2lnbmVkLCBSZWZQdHI8U2VnbWVudGVkRm9udERhdGE+ID4gbV9m
b250RGF0YVRhYmxlOwogICAgIFZlY3RvcjxSZWZQdHI8Q1NTRm9udEZhY2U+LCAxPiBtX2ZvbnRG
YWNlczsKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKKyAgICBWZWN0b3I8UmVmUHRyPExv
YWRGb250Q2FsbGJhY2s+ID4gbV9jYWxsYmFja3M7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzQ3MzU5
ZTk2NmE5YjhjY2JmNzJjY2U1ZWI4ZmQ4MzBkMWIwODFmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIuY3BwCkBAIC0wLDAgKzEsMzE3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAor
ICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QK
KyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGb250TG9hZGVyLmgiCisKKyNp
ZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKKworI2luY2x1ZGUgIkNTU0ZvbnRGYWNlTG9hZEV2
ZW50LmgiCisjaW5jbHVkZSAiQ1NTRm9udEZhY2VTb3VyY2UuaCIKKyNpbmNsdWRlICJDU1NGb250
U2VsZWN0b3IuaCIKKyNpbmNsdWRlICJDU1NQYXJzZXIuaCIKKyNpbmNsdWRlICJDU1NTZWdtZW50
ZWRGb250RmFjZS5oIgorI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQu
aCIKKyNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
c3RhdGljIGNvbnN0IGludCBkZWZhdWx0Rm9udFNpemUgPSAxMDsKK3N0YXRpYyBjb25zdCBjaGFy
KiBjb25zdCBkZWZhdWx0Rm9udEZhbWlseSA9ICJzYW5zLXNlcmlmIjsKKworY2xhc3MgTG9hZEZv
bnRDYWxsYmFjayA6IHB1YmxpYyBDU1NTZWdtZW50ZWRGb250RmFjZTo6TG9hZEZvbnRDYWxsYmFj
ayB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TG9hZEZvbnRDYWxsYmFjaz4gY3Jl
YXRlKGludCBudW1Mb2FkaW5nLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gbG9hZENhbGxiYWNr
LCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZjxMb2FkRm9udENhbGxiYWNrPihuZXcgTG9hZEZvbnRDYWxsYmFjayhu
dW1Mb2FkaW5nLCBsb2FkQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsKKyAgICB9CisKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxMb2FkRm9udENhbGxiYWNrPiBjcmVhdGVGcm9tUGFyYW1zKGNvbnN0
IERpY3Rpb25hcnkmIHBhcmFtcywgY29uc3QgRm9udEZhbWlseSYgZmFtaWx5KQorICAgIHsKKyAg
ICAgICAgUmVmUHRyPFZvaWRDYWxsYmFjaz4gb25zdWNjZXNzOworICAgICAgICBSZWZQdHI8Vm9p
ZENhbGxiYWNrPiBvbmVycm9yOworICAgICAgICBwYXJhbXMuZ2V0KCJvbnN1Y2Nlc3MiLCBvbnN1
Y2Nlc3MpOworICAgICAgICBwYXJhbXMuZ2V0KCJvbmVycm9yIiwgb25lcnJvcik7CisgICAgICAg
IGlmICghb25zdWNjZXNzICYmICFvbmVycm9yKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAg
ICAgIGludCBudW1GYW1pbGllcyA9IDA7CisgICAgICAgIGZvciAoY29uc3QgRm9udEZhbWlseSog
ZiA9ICZmYW1pbHk7IGY7IGYgPSBmLT5uZXh0KCkpCisgICAgICAgICAgICBudW1GYW1pbGllcysr
OworICAgICAgICByZXR1cm4gTG9hZEZvbnRDYWxsYmFjazo6Y3JlYXRlKG51bUZhbWlsaWVzLCBv
bnN1Y2Nlc3MsIG9uZXJyb3IpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlMb2Fk
ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RXJyb3IoKSBPVkVSUklERTsK
K3ByaXZhdGU6CisgICAgTG9hZEZvbnRDYWxsYmFjayhpbnQgbnVtTG9hZGluZywgUGFzc1JlZlB0
cjxWb2lkQ2FsbGJhY2s+IGxvYWRDYWxsYmFjaywgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IGVy
cm9yQ2FsbGJhY2spCisgICAgICAgIDogbV9udW1Mb2FkaW5nKG51bUxvYWRpbmcpCisgICAgICAg
ICwgbV9lcnJvck9jY3VyZWQoZmFsc2UpCisgICAgICAgICwgbV9sb2FkQ2FsbGJhY2sobG9hZENh
bGxiYWNrKQorICAgICAgICAsIG1fZXJyb3JDYWxsYmFjayhlcnJvckNhbGxiYWNrKQorICAgIHsg
fQorCisgICAgaW50IG1fbnVtTG9hZGluZzsKKyAgICBib29sIG1fZXJyb3JPY2N1cmVkOworICAg
IFJlZlB0cjxWb2lkQ2FsbGJhY2s+IG1fbG9hZENhbGxiYWNrOworICAgIFJlZlB0cjxWb2lkQ2Fs
bGJhY2s+IG1fZXJyb3JDYWxsYmFjazsKK307CisKK3ZvaWQgTG9hZEZvbnRDYWxsYmFjazo6bm90
aWZ5TG9hZGVkKCkKK3sKKyAgICBtX251bUxvYWRpbmctLTsKKyAgICBpZiAobV9udW1Mb2FkaW5n
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9lcnJvck9jY3VyZWQpIHsKKyAgICAgICAg
aWYgKG1fZXJyb3JDYWxsYmFjaykKKyAgICAgICAgICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxl
RXZlbnQoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobV9sb2FkQ2FsbGJhY2spCisgICAg
ICAgICAgICBtX2xvYWRDYWxsYmFjay0+aGFuZGxlRXZlbnQoKTsKKyAgICB9Cit9CisKK3ZvaWQg
TG9hZEZvbnRDYWxsYmFjazo6bm90aWZ5RXJyb3IoKSAKK3sKKyAgICBtX2Vycm9yT2NjdXJlZCA9
IHRydWU7CisgICAgbm90aWZ5TG9hZGVkKCk7Cit9CisKK0ZvbnRMb2FkZXI6OkZvbnRMb2FkZXIo
RG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50LCB0aGlz
KQorICAgICwgbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICAsIG1fbG9hZGluZ0NvdW50KDApCit7
CisgICAgc3VzcGVuZElmTmVlZGVkKCk7Cit9CisKK0ZvbnRMb2FkZXI6On5Gb250TG9hZGVyKCkK
K3sKK30KKworRXZlbnRUYXJnZXREYXRhKiBGb250TG9hZGVyOjpldmVudFRhcmdldERhdGEoKQor
eworICAgIHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7Cit9CisKK0V2ZW50VGFyZ2V0RGF0YSog
Rm9udExvYWRlcjo6ZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkKK3sKKyAgICByZXR1cm4gJm1fZXZl
bnRUYXJnZXREYXRhOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIEZvbnRMb2FkZXI6OmludGVy
ZmFjZU5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBldmVudE5hbWVzKCkuaW50ZXJmYWNlRm9y
Rm9udExvYWRlcjsKK30KKworU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogRm9udExvYWRlcjo6c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEFjdGl2ZURPTU9iamVj
dDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworfQorCit2b2lkIEZvbnRMb2FkZXI6OmRpZExh
eW91dCgpCit7CisgICAgZmlyZVBlbmRpbmdFdmVudHMoKTsKKyAgICBsb2FkaW5nRG9uZSgpOwor
fQorCit2b2lkIEZvbnRMb2FkZXI6OnNjaGVkdWxlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZl
bnQpCit7CisgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IG1fZG9jdW1lbnQtPnZpZXcoKSkgewor
ICAgICAgICBpZiAodmlldy0+aXNJbkxheW91dCgpKSB7CisgICAgICAgICAgICBtX3BlbmRpbmdF
dmVudHMuYXBwZW5kKGV2ZW50KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
IH0KKyAgICBmaXJlUGVuZGluZ0V2ZW50cygpOworICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQpOwor
fQorCit2b2lkIEZvbnRMb2FkZXI6OmZpcmVQZW5kaW5nRXZlbnRzKCkKK3sKKyAgICBpZiAobV9w
ZW5kaW5nRXZlbnRzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgVmVjdG9yPFJl
ZlB0cjxFdmVudD4gPiBwZW5kaW5nRXZlbnRzOworICAgIG1fcGVuZGluZ0V2ZW50cy5zd2FwKHBl
bmRpbmdFdmVudHMpOworICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBwZW5kaW5n
RXZlbnRzLnNpemUoKTsgKytpbmRleCkKKyAgICAgICAgZGlzcGF0Y2hFdmVudChwZW5kaW5nRXZl
bnRzW2luZGV4XS5yZWxlYXNlKCkpOworfQorCit2b2lkIEZvbnRMb2FkZXI6OmJlZ2luRm9udExv
YWRpbmcoQ1NTRm9udEZhY2VSdWxlKiBydWxlKQoreworICAgICsrbV9sb2FkaW5nQ291bnQ7Cisg
ICAgaWYgKG1fbG9hZGluZ0NvdW50ID09IDEgJiYgIW1fbG9hZGluZ0RvbmVFdmVudCkKKyAgICAg
ICAgc2NoZWR1bGVFdmVudChDU1NGb250RmFjZUxvYWRFdmVudDo6Y3JlYXRlRm9yRm9udEZhY2VS
dWxlKGV2ZW50TmFtZXMoKS5sb2FkaW5nRXZlbnQsIHJ1bGUpKTsKKyAgICBzY2hlZHVsZUV2ZW50
KENTU0ZvbnRGYWNlTG9hZEV2ZW50OjpjcmVhdGVGb3JGb250RmFjZVJ1bGUoZXZlbnROYW1lcygp
LmxvYWRzdGFydEV2ZW50LCBydWxlKSk7Cit9CisKK3ZvaWQgRm9udExvYWRlcjo6Zm9udExvYWRl
ZChDU1NGb250RmFjZVJ1bGUqIHJ1bGUpCit7CisgICAgQVNTRVJUKG1fbG9hZGluZ0NvdW50ID4g
MCk7CisgICAgc2NoZWR1bGVFdmVudChDU1NGb250RmFjZUxvYWRFdmVudDo6Y3JlYXRlRm9yRm9u
dEZhY2VSdWxlKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQsIHJ1bGUpKTsKKworICAgIC0tbV9sb2Fk
aW5nQ291bnQ7CisgICAgaWYgKCFtX2xvYWRpbmdDb3VudCkKKyAgICAgICAgbV9sb2FkaW5nRG9u
ZUV2ZW50ID0gQ1NTRm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZUZvckZvbnRGYWNlUnVsZShldmVu
dE5hbWVzKCkubG9hZGluZ2RvbmVFdmVudCwgcnVsZSk7Cit9CisKK3ZvaWQgRm9udExvYWRlcjo6
bG9hZEVycm9yKENTU0ZvbnRGYWNlUnVsZSogcnVsZSwgQ1NTRm9udEZhY2VTb3VyY2UqIHNvdXJj
ZSkKK3sKKyAgICBBU1NFUlQobV9sb2FkaW5nQ291bnQgPiAwKTsKKworICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgcmVwb3J0IE5ldHdvcmtFcnJvciBpbiBjYXNlIG9mIHRpbWVvdXQsIGV0Yy4KKyAg
ICBTdHJpbmcgZXJyb3JOYW1lID0gKHNvdXJjZSAmJiBzb3VyY2UtPmlzRGVjb2RlRXJyb3IoKSkg
PyAiSW52YWxpZEZvbnREYXRhRXJyb3IiIDogIk5vdEZvdW5kRXJyb3IiOworICAgIHNjaGVkdWxl
RXZlbnQoQ1NTRm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZUZvckVycm9yKHJ1bGUsIERPTUVycm9y
OjpjcmVhdGUoZXJyb3JOYW1lKSkpOworICAgIC0tbV9sb2FkaW5nQ291bnQ7CisgICAgaWYgKCFt
X2xvYWRpbmdDb3VudCkKKyAgICAgICAgbV9sb2FkaW5nRG9uZUV2ZW50ID0gQ1NTRm9udEZhY2VM
b2FkRXZlbnQ6OmNyZWF0ZUZvckZvbnRGYWNlUnVsZShldmVudE5hbWVzKCkubG9hZGluZ2RvbmVF
dmVudCwgcnVsZSk7Cit9CisKK3ZvaWQgRm9udExvYWRlcjo6bm90aWZ5V2hlbkZvbnRzUmVhZHko
UGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IGNhbGxiYWNrKQoreworICAgIG1fY2FsbGJhY2tzLmFw
cGVuZChjYWxsYmFjayk7CisgICAgbG9hZGluZ0RvbmUoKTsKK30KKwordm9pZCBGb250TG9hZGVy
Ojpsb2FkaW5nRG9uZSgpCit7CisgICAgaWYgKGxvYWRpbmcoKSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIGlmICghbV9sb2FkaW5nRG9uZUV2ZW50ICYmIG1fY2FsbGJhY2tzLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IG1fZG9jdW1lbnQtPnZp
ZXcoKSkgeworICAgICAgICBpZiAodmlldy0+aXNJbkxheW91dCgpIHx8IHZpZXctPm5lZWRzTGF5
b3V0KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fZG9jdW1lbnQtPnVwZGF0ZVN0
eWxlSWZOZWVkZWQoKTsKKyAgICAgICAgaWYgKHZpZXctPm5lZWRzTGF5b3V0KCkpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fbG9hZGluZ0RvbmVFdmVudCkKKyAgICAg
ICAgZGlzcGF0Y2hFdmVudChtX2xvYWRpbmdEb25lRXZlbnQucmVsZWFzZSgpKTsKKworICAgIGlm
ICghbV9jYWxsYmFja3MuaXNFbXB0eSgpKSB7CisgICAgICAgIFZlY3RvcjxSZWZQdHI8Vm9pZENh
bGxiYWNrPiA+IGNhbGxiYWNrczsKKyAgICAgICAgbV9jYWxsYmFja3Muc3dhcChjYWxsYmFja3Mp
OworICAgICAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgY2FsbGJhY2tzLnNpemUo
KTsgKytpbmRleCkKKyAgICAgICAgICAgIGNhbGxiYWNrc1tpbmRleF0tPmhhbmRsZUV2ZW50KCk7
CisgICAgfQorfQorCit2b2lkIEZvbnRMb2FkZXI6OmxvYWRGb250KGNvbnN0IERpY3Rpb25hcnkm
IHBhcmFtcykKK3sKKyAgICAvLyBGSVhNRTogVGhlIHRleHQgbWVtYmVyIG9mIHBhcmFtcyBpcyBp
Z25vcmVkLgorICAgIFN0cmluZyBmb250U3RyaW5nOworICAgIGlmICghcGFyYW1zLmdldCgiZm9u
dCIsIGZvbnRTdHJpbmcpKQorICAgICAgICByZXR1cm47CisgICAgRm9udCBmb250OworICAgIGlm
ICghcmVzb2x2ZUZvbnRTdHlsZShmb250U3RyaW5nLCBmb250KSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIFJlZlB0cjxMb2FkRm9udENhbGxiYWNrPiBjYWxsYmFjayA9IExvYWRGb250Q2FsbGJhY2s6
OmNyZWF0ZUZyb21QYXJhbXMocGFyYW1zLCBmb250LmZhbWlseSgpKTsKKyAgICAKKyAgICBmb3Ig
KGNvbnN0IEZvbnRGYW1pbHkqIGYgPSAmZm9udC5mYW1pbHkoKTsgZjsgZiA9IGYtPm5leHQoKSkg
eworICAgICAgICBDU1NTZWdtZW50ZWRGb250RmFjZSogZmFjZSA9IG1fZG9jdW1lbnQtPnN0eWxl
UmVzb2x2ZXIoKS0+Zm9udFNlbGVjdG9yKCktPmdldEZvbnRGYWNlKGZvbnQuZm9udERlc2NyaXB0
aW9uKCksIGYtPmZhbWlseSgpKTsKKyAgICAgICAgaWYgKCFmYWNlKSB7CisgICAgICAgICAgICBp
ZiAoY2FsbGJhY2spCisgICAgICAgICAgICAgICAgY2FsbGJhY2stPm5vdGlmeUVycm9yKCk7Cisg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBmYWNlLT5sb2FkRm9udChm
b250LmZvbnREZXNjcmlwdGlvbigpLCBjYWxsYmFjayk7CisgICAgfQorfQorCitib29sIEZvbnRM
b2FkZXI6OmNoZWNrRm9udChjb25zdCBTdHJpbmcmIGZvbnRTdHJpbmcsIGNvbnN0IFN0cmluZyYp
Cit7CisgICAgLy8gRklYTUU6IFRoZSBzZWNvbmQgcGFyYW1ldGVyICh0ZXh0KSBpcyBpZ25vcmVk
LgorICAgIEZvbnQgZm9udDsKKyAgICBpZiAoIXJlc29sdmVGb250U3R5bGUoZm9udFN0cmluZywg
Zm9udCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBmb3IgKGNvbnN0IEZvbnRGYW1pbHkq
IGYgPSAmZm9udC5mYW1pbHkoKTsgZjsgZiA9IGYtPm5leHQoKSkgeworICAgICAgICBDU1NTZWdt
ZW50ZWRGb250RmFjZSogZmFjZSA9IG1fZG9jdW1lbnQtPnN0eWxlUmVzb2x2ZXIoKS0+Zm9udFNl
bGVjdG9yKCktPmdldEZvbnRGYWNlKGZvbnQuZm9udERlc2NyaXB0aW9uKCksIGYtPmZhbWlseSgp
KTsKKyAgICAgICAgaWYgKCFmYWNlIHx8ICFmYWNlLT5jaGVja0ZvbnQoKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyB2b2lk
IGFwcGx5UHJvcGVydHlUb0N1cnJlbnRTdHlsZShTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVy
LCBDU1NQcm9wZXJ0eUlEIGlkLCBjb25zdCBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4mIHBhcnNl
ZFN0eWxlKQoreworICAgIHN0eWxlUmVzb2x2ZXItPmFwcGx5UHJvcGVydHlUb0N1cnJlbnRTdHls
ZShpZCwgcGFyc2VkU3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoaWQpLmdldCgpKTsKK30KKwor
Ym9vbCBGb250TG9hZGVyOjpyZXNvbHZlRm9udFN0eWxlKGNvbnN0IFN0cmluZyYgZm9udFN0cmlu
ZywgRm9udCYgZm9udCkKK3sKKyAgICAvLyBJbnRlcnByZXQgZm9udFN0cmluZyBpbiB0aGUgc2Ft
ZSB3YXkgYXMgdGhlICdmb250JyBhdHRyaWJ1dGUgb2YgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LgorICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBwYXJzZWRTdHlsZSA9IFN0eWxlUHJvcGVy
dHlTZXQ6OmNyZWF0ZSgpOworICAgIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShwYXJzZWRTdHlsZS5n
ZXQoKSwgQ1NTUHJvcGVydHlGb250LCBmb250U3RyaW5nLCB0cnVlLCBDU1NTdHJpY3RNb2RlLCAw
KTsKKyAgICBpZiAocGFyc2VkU3R5bGUtPmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIAorICAgIFN0cmluZyBmb250VmFsdWUgPSBwYXJzZWRTdHlsZS0+Z2V0UHJvcGVydHlW
YWx1ZShDU1NQcm9wZXJ0eUZvbnQpOworICAgIGlmIChmb250VmFsdWUgPT0gImluaGVyaXQiIHx8
IGZvbnRWYWx1ZSA9PSAiaW5pdGlhbCIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFJl
ZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlKCk7CisKKyAgICBG
b250RmFtaWx5IGZvbnRGYW1pbHk7CisgICAgZm9udEZhbWlseS5zZXRGYW1pbHkoZGVmYXVsdEZv
bnRGYW1pbHkpOworCisgICAgRm9udERlc2NyaXB0aW9uIGRlZmF1bHRGb250RGVzY3JpcHRpb247
CisgICAgZGVmYXVsdEZvbnREZXNjcmlwdGlvbi5zZXRGYW1pbHkoZm9udEZhbWlseSk7CisgICAg
ZGVmYXVsdEZvbnREZXNjcmlwdGlvbi5zZXRTcGVjaWZpZWRTaXplKGRlZmF1bHRGb250U2l6ZSk7
CisgICAgZGVmYXVsdEZvbnREZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUoZGVmYXVsdEZvbnRT
aXplKTsKKworICAgIHN0eWxlLT5zZXRGb250RGVzY3JpcHRpb24oZGVmYXVsdEZvbnREZXNjcmlw
dGlvbik7CisKKyAgICBzdHlsZS0+Zm9udCgpLnVwZGF0ZShzdHlsZS0+Zm9udCgpLmZvbnRTZWxl
Y3RvcigpKTsKKworICAgIC8vIE5vdyBtYXAgdGhlIGZvbnQgcHJvcGVydHkgbG9uZ2hhbmRzIGlu
dG8gdGhlIHN0eWxlLgorICAgIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIgPSBtX2RvY3Vt
ZW50LT5zdHlsZVJlc29sdmVyKCk7CisgICAgc3R5bGVSZXNvbHZlci0+YXBwbHlQcm9wZXJ0eVRv
U3R5bGUoQ1NTUHJvcGVydHlGb250RmFtaWx5LCBwYXJzZWRTdHlsZS0+Z2V0UHJvcGVydHlDU1NW
YWx1ZShDU1NQcm9wZXJ0eUZvbnRGYW1pbHkpLmdldCgpLCBzdHlsZS5nZXQoKSk7CisgICAgYXBw
bHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKHN0eWxlUmVzb2x2ZXIsIENTU1Byb3BlcnR5Rm9udFN0
eWxlLCBwYXJzZWRTdHlsZSk7CisgICAgYXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKHN0eWxl
UmVzb2x2ZXIsIENTU1Byb3BlcnR5Rm9udFZhcmlhbnQsIHBhcnNlZFN0eWxlKTsKKyAgICBhcHBs
eVByb3BlcnR5VG9DdXJyZW50U3R5bGUoc3R5bGVSZXNvbHZlciwgQ1NTUHJvcGVydHlGb250V2Vp
Z2h0LCBwYXJzZWRTdHlsZSk7CisKKyAgICAvLyBBcyBkZXNjcmliZWQgaW4gQlVHNjYyOTEsIHNl
dHRpbmcgZm9udC1zaXplIGFuZCBsaW5lLWhlaWdodCBvbiBhIGZvbnQgbWF5IGVudGFpbCBhIENT
U1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlTGVuZ3RoRG91YmxlIGNhbGwsCisgICAgLy8gd2hpY2gg
YXNzdW1lcyB0aGUgZm9udE1ldHJpY3MgYXJlIGF2YWlsYWJsZSBmb3IgdGhlIGFmZmVjdGVkIGZv
bnQsIG90aGVyd2lzZSBhIGNyYXNoIG9jY3VycyAoc2VlIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcv
Y2hhbmdlc2V0Lzk2MTIyKS4KKyAgICAvLyBUaGUgdXBkYXRlRm9udCgpIGNhbGxzIGJlbG93IHVw
ZGF0ZSB0aGUgZm9udE1ldHJpY3MgYW5kIGVuc3VyZSB0aGUgcHJvcGVyIHNldHRpbmcgb2YgZm9u
dC1zaXplIGFuZCBsaW5lLWhlaWdodC4KKyAgICBzdHlsZVJlc29sdmVyLT51cGRhdGVGb250KCk7
CisgICAgYXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKHN0eWxlUmVzb2x2ZXIsIENTU1Byb3Bl
cnR5Rm9udFNpemUsIHBhcnNlZFN0eWxlKTsKKyAgICBzdHlsZVJlc29sdmVyLT51cGRhdGVGb250
KCk7CisgICAgYXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKHN0eWxlUmVzb2x2ZXIsIENTU1By
b3BlcnR5TGluZUhlaWdodCwgcGFyc2VkU3R5bGUpOworCisgICAgZm9udCA9IHN0eWxlLT5mb250
KCk7CisgICAgZm9udC51cGRhdGUoc3R5bGVSZXNvbHZlci0+Zm9udFNlbGVjdG9yKCkpOworICAg
IHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9G
b250TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjI1YjM1ZjNhM2MwNDgyNGEyOWY0MzVmZjcwN2QzMGFhNDAxZDBlMDMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5oCkBAIC0wLDAgKzEsMTA4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFN
QUdFLgorICovCisKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKKworI2lmbmRlZiBGb250
TG9hZGVyX2gKKyNkZWZpbmUgRm9udExvYWRlcl9oCisKKyNpbmNsdWRlICJBY3RpdmVET01PYmpl
Y3QuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5o
IgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCisj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBD
YWNoZWRGb250OworY2xhc3MgQ1NTRm9udEZhY2VSdWxlOworY2xhc3MgQ1NTRm9udEZhY2VTb3Vy
Y2U7CitjbGFzcyBEaWN0aW9uYXJ5OworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBFdmVudDsKK2Ns
YXNzIEZvbnQ7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFzcyBGb250TG9h
ZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8Rm9udExvYWRlcj4sIHB1YmxpYyBBY3RpdmVET01PYmpl
Y3QsIHB1YmxpYyBFdmVudFRhcmdldCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
Rm9udExvYWRlcj4gY3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZjxGb250TG9hZGVyPihuZXcgRm9udExvYWRlcihkb2N1bWVudCkpOworICAg
IH0KKyAgICB2aXJ0dWFsIH5Gb250TG9hZGVyKCk7CisKKyAgICBERUZJTkVfQVRUUklCVVRFX0VW
RU5UX0xJU1RFTkVSKGxvYWRpbmcpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVO
RVIobG9hZGluZ2RvbmUpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIobG9h
ZHN0YXJ0KTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGxvYWQpOworICAg
IERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZXJyb3IpOworCisgICAgYm9vbCBjaGVj
a0ZvbnQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBsb2FkRm9udChj
b25zdCBEaWN0aW9uYXJ5Jik7CisgICAgdm9pZCBub3RpZnlXaGVuRm9udHNSZWFkeShQYXNzUmVm
UHRyPFZvaWRDYWxsYmFjaz4pOworCisgICAgYm9vbCBsb2FkaW5nKCkgY29uc3QgeyByZXR1cm4g
bV9sb2FkaW5nQ291bnQgPiAwOyB9CisKKyAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0OworCisgICAgdXNpbmcgUmVmQ291bnRl
ZDxGb250TG9hZGVyPjo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8Rm9udExvYWRlcj46OmRl
cmVmOworCisgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVu
dDsgfQorCisgICAgdm9pZCBkaWRMYXlvdXQoKTsKKyAgICB2b2lkIGJlZ2luRm9udExvYWRpbmco
Q1NTRm9udEZhY2VSdWxlKik7CisgICAgdm9pZCBmb250TG9hZGVkKENTU0ZvbnRGYWNlUnVsZSop
OworICAgIHZvaWQgbG9hZEVycm9yKENTU0ZvbnRGYWNlUnVsZSosIENTU0ZvbnRGYWNlU291cmNl
Kik7CisgICAgdm9pZCBsb2FkaW5nRG9uZSgpOworCitwcml2YXRlOgorICAgIEZvbnRMb2FkZXIo
RG9jdW1lbnQqKTsKKworICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIHsgcmVmKCk7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIHsgZGVyZWYoKTsgfQorICAg
IHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKTsKKyAgICB2aXJ0dWFs
IEV2ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCk7CisKKyAgICB2b2lkIHNj
aGVkdWxlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOworICAgIHZvaWQgZmlyZVBlbmRpbmdFdmVu
dHMoKTsKKyAgICBib29sIHJlc29sdmVGb250U3R5bGUoY29uc3QgU3RyaW5nJiwgRm9udCYpOwor
CisgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CisgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRU
YXJnZXREYXRhOworICAgIHVuc2lnbmVkIG1fbG9hZGluZ0NvdW50OworICAgIFZlY3RvcjxSZWZQ
dHI8RXZlbnQ+ID4gbV9wZW5kaW5nRXZlbnRzOworICAgIFZlY3RvcjxSZWZQdHI8Vm9pZENhbGxi
YWNrPiA+IG1fY2FsbGJhY2tzOworICAgIFJlZlB0cjxFdmVudD4gbV9sb2FkaW5nRG9uZUV2ZW50
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRm9udExvYWRlcl9o
CisjZW5kaWYgLy8gRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRm9udExvYWRlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRl
ci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2IxZjhhMjRhNjlkODJhM2VjMTE1NzdiNTExNTk3MGZhMzQ0YjI4
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmlkbApA
QCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPUZPTlRfTE9BRF9FVkVOVFMsCisgICAg
VjhFbmFibGVkQXRSdW50aW1lPWZvbnRMb2FkRXZlbnRzLAorICAgIEFjdGl2ZURPTU9iamVjdCwK
KyAgICBFdmVudFRhcmdldCwKKyAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxEb2N1bWVudCwK
K10gaW50ZXJmYWNlIEZvbnRMb2FkZXIgeworCisgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b25sb2FkaW5nOworICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZGluZ2RvbmU7Cisg
ICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25sb2Fkc3RhcnQ7CisgICAgYXR0cmlidXRlIEV2
ZW50TGlzdGVuZXIgb25sb2FkOworICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZXJyb3I7
CisKKyAgICBib29sZWFuIGNoZWNrRm9udChpbiBET01TdHJpbmcgZm9udCwgaW4gW09wdGlvbmFs
PURlZmF1bHRJc051bGxTdHJpbmddIERPTVN0cmluZyB0ZXh0KTsKKyAgICB2b2lkIGxvYWRGb250
KGluIERpY3Rpb25hcnkgcGFyYW1zKTsKKyAgICB2b2lkIG5vdGlmeVdoZW5Gb250c1JlYWR5KGlu
IFtDYWxsYmFja10gVm9pZENhbGxiYWNrIGNhbGxiYWNrKTsKKyAgICByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiBsb2FkaW5nOworCisgICAgdm9pZCBhZGRFdmVudExpc3RlbmVyKGluIERPTVN0
cmluZyB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxp
c3RlbmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4g
dXNlQ2FwdHVyZSk7CisgICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0
eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3Rl
bmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4g
dXNlQ2FwdHVyZSk7CisgICAgYm9vbGVhbiBkaXNwYXRjaEV2ZW50KGluIEV2ZW50IGV2dCkKKyAg
ICAgICAgcmFpc2VzKEV2ZW50RXhjZXB0aW9uKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApp
bmRleCBmY2VkZTJkNzk5YmQ5Y2QwNjQyNDY5MzFlZTYyNGNhMWMzNzBmYjY5Li5kNDU4YjY2ZTcz
NzQxODcxZjA1MjcxODJhMDAyYTg3ZjA1OGRkNGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
QEAgLTc0LDYgKzc0LDcgQEAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIK
ICNpbmNsdWRlICJGbG93VGhyZWFkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJv
bGxlci5oIgorI2luY2x1ZGUgIkZvbnRMb2FkZXIuaCIKICNpbmNsdWRlICJGb3JtQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTQ4
Nyw2ICs0ODgsOSBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJM
JiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAjaWYgRU5BQkxFKFRFTVBMQVRFX0VM
RU1FTlQpCiAgICAgLCBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0KDApCiAjZW5kaWYKKyNpZiBFTkFC
TEUoRk9OVF9MT0FEX0VWRU5UUykKKyAgICAsIG1fZm9udGxvYWRlcigwKQorI2VuZGlmCiB7CiAg
ICAgbV9wcmludGluZyA9IGZhbHNlOwogICAgIG1fcGFnaW5hdGVkRm9yU2NyZWVuID0gZmFsc2U7
CkBAIC02MDgwLDQgKzYwODQsMTMgQEAgRG9jdW1lbnQqIERvY3VtZW50OjplbnN1cmVUZW1wbGF0
ZURvY3VtZW50KCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCitQ
YXNzUmVmUHRyPEZvbnRMb2FkZXI+IERvY3VtZW50Ojpmb250bG9hZGVyKCkKK3sKKyAgICBpZiAo
IW1fZm9udGxvYWRlcikKKyAgICAgICAgbV9mb250bG9hZGVyID0gRm9udExvYWRlcjo6Y3JlYXRl
KHRoaXMpOworICAgIHJldHVybiBtX2ZvbnRsb2FkZXI7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAzZjVkYzIwMThiMDI5ZWExODA4
OTYzYWQwOGRhY2Y1OTg2MTM3NGFjLi5hNTEwMjNkM2RmZGVhOGVmOTBiZTE1YjNiNmZjY2NiMzQ2
YjQ5MjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTkwLDYgKzE5MCwxMCBAQCBjbGFzcyBU
ZXh0QXV0b3NpemVyOwogY2xhc3MgRE9NU2VjdXJpdHlQb2xpY3k7CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShGT05UX0xPQURfRVZFTlRTKQorY2xhc3MgRm9udExvYWRlcjsKKyNlbmRpZgorCiB0eXBl
ZGVmIGludCBFeGNlcHRpb25Db2RlOwogCiBlbnVtIFBhZ2VzaG93RXZlbnRQZXJzaXN0ZW5jZSB7
CkBAIC0xMTkzLDYgKzExOTcsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBjb25zdCBTZWN1
cml0eU9yaWdpbiogdG9wT3JpZ2luKCkgY29uc3QgT1ZFUlJJREU7CiAKKyNpZiBFTkFCTEUoRk9O
VF9MT0FEX0VWRU5UUykKKyAgICBQYXNzUmVmUHRyPEZvbnRMb2FkZXI+IGZvbnRsb2FkZXIoKTsK
KyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBLVVJMJiwg
Ym9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCk7CiAKQEAgLTE1NTksNiArMTU2NywxMCBAQCBwcml2
YXRlOgogICAgIFJlZlB0cjxEb2N1bWVudD4gbV90ZW1wbGF0ZURvY3VtZW50OwogICAgIERvY3Vt
ZW50KiBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0OyAvLyBNYW51YWxseSBtYW5hZ2VkIHdlYWtyZWYg
KGJhY2twb2ludGVyIGZyb20gbV90ZW1wbGF0ZURvY3VtZW50KS4KICNlbmRpZgorCisjaWYgRU5B
QkxFKEZPTlRfTE9BRF9FVkVOVFMpCisgICAgUmVmUHRyPEZvbnRMb2FkZXI+IG1fZm9udGxvYWRl
cjsKKyNlbmRpZgogfTsKIAogaW5saW5lIHZvaWQgRG9jdW1lbnQ6Om5vdGlmeVJlbW92ZVBlbmRp
bmdTaGVldElmTmVlZGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IDBlMDZmYzdmMmQ4
MTkxNmY4NTI1NTAwOGIyNzliY2M1NWNkM2MwOGUuLmNhYTU4Y2YzMDBiYzM5YzhkNTAxNzYxODE0
YmM0ZTcyY2NiMDVjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbApAQCAtMjYyLDYgKzI2Miwx
MCBAQAogCiAgICAgW0NvbmRpdGlvbmFsPUNTU19SRUdJT05TLCBWOEVuYWJsZWRBdFJ1bnRpbWU9
Y3NzUmVnaW9uc10gRE9NTmFtZWRGbG93Q29sbGVjdGlvbiB3ZWJraXRHZXROYW1lZEZsb3dzKCk7
CiAKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJ
UFQKKyAgICBbQ29uZGl0aW9uYWw9Rk9OVF9MT0FEX0VWRU5UUywgVjhFbmFibGVkQXRSdW50aW1l
PWZvbnRMb2FkRXZlbnRzXSByZWFkb25seSBhdHRyaWJ1dGUgRm9udExvYWRlciBmb250bG9hZGVy
OworI2VuZGlmCisKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgfHwgIUxBTkdV
QUdFX09CSkVDVElWRV9DCiAgICAgLy8gRXZlbnQgaGFuZGxlciBET00gYXR0cmlidXRlcwogICAg
IFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmFib3J0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudE5hbWVzLmgKaW5kZXggMjJhN2IzMmJhYjc5YmM1MjYwMDc2NDFhM2I5MWNjNDBjNTFi
NGM2ZC4uM2I1ZjIzMjIyNGUzOWNiY2FkMTNhMzk3OTc0MjdiNjkwOWNkMmNiNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnROYW1lcy5oCkBAIC04NCw2ICs4NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBtYWNybyhrZXl1cCkgXAogICAgIG1hY3JvKGxldmVsY2hhbmdlKSBcCiAgICAgbWFjcm8obG9h
ZCkgXAorICAgIG1hY3JvKGxvYWRpbmcpIFwKKyAgICBtYWNybyhsb2FkaW5nZG9uZSkgXAogICAg
IG1hY3JvKGxvYWRzdGFydCkgXAogICAgIG1hY3JvKG1lc3NhZ2UpIFwKICAgICBtYWNybyhtb3Vz
ZWRvd24pIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KaW5kZXggYzA0YjAyNWNlYzQwNzA0NzJj
MzIyZWFlMGZhNjdhOGVmNmRkYzYwZi4uZmI3NGVmNjllODFlNDY3MmYyODQwZGI3OTdkNzAxOGRj
MDQ2YzJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KQEAgLTU2LDMgKzU2LDQgQEAgTWVk
aWFLZXlNZXNzYWdlRXZlbnQgY29uZGl0aW9uYWw9RU5DUllQVEVEX01FRElBX1YyCiBNZWRpYUtl
eU5lZWRlZEV2ZW50IGNvbmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJQV9WMgogVHJhY2tFdmVudCBj
b25kaXRpb25hbD1WSURFT19UUkFDSwogQXV0b2NvbXBsZXRlRXJyb3JFdmVudCBjb25kaXRpb25h
bD1SRVFVRVNUX0FVVE9DT01QTEVURQorQ1NTRm9udEZhY2VMb2FkRXZlbnQgY29uZGl0aW9uYWw9
Rk9OVF9MT0FEX0VWRU5UUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFy
Z2V0RmFjdG9yeS5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4K
aW5kZXggY2Y1YWNmNzVjM2JlNDkwMzBkMzg3MTIzOTMwMzg0ZTE4MDA0ZjRjOC4uYTBjMDE0NDBj
Y2ZiZjc4YTVlOTI5YmJhZjM2YTAzNTllOTUzMjQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnRUYXJnZXRGYWN0b3J5LmluCkBAIC04LDYgKzgsNyBAQCBET01XaW5kb3cKIEV2ZW50U291cmNl
CiBGaWxlUmVhZGVyIGNvbmRpdGlvbmFsPUJMT0IKIEZpbGVXcml0ZXIgY29uZGl0aW9uYWw9RklM
RV9TWVNURU0KK0ZvbnRMb2FkZXIgY29uZGl0aW9uYWw9Rk9OVF9MT0FEX0VWRU5UUwogSURCRGF0
YWJhc2UgY29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQogSURCT3BlbkRCUmVxdWVzdCBjb25k
aXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCiBJREJSZXF1ZXN0IGNvbmRpdGlvbmFsPUlOREVYRURf
REFUQUJBU0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAxZjU3ZTBjMjc0YzdmM2I5
MDNhN2M2YzY0MTk4MDFmYWU1NTc2OTNiLi5lMDA3NmUyYjQxYWU1MmJkNDZkNWFlNzI3Y2ZiMGQ4
ZDYxMWJlYWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0zNyw2ICszNyw3IEBA
CiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiRm9udENhY2hlLmgiCisjaW5jbHVkZSAiRm9udExvYWRlci5oIgogI2luY2x1ZGUg
IkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVBY3Rpb25TY2hlZHVsZXIuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgpAQCAtMjY0MSw2ICsyNjQyLDEwIEBAIHZvaWQgRnJhbWVWaWV3OjpwZXJm
b3JtUG9zdExheW91dFRhc2tzKCkKICAgICB9CiAKICAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+ZGlk
TGF5b3V0KG1pbGVzdG9uZXNBY2hpZXZlZCk7CisjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMp
CisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmZvbnRMb2FkRXZlbnRzRW5hYmxlZCgp
KQorICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5mb250bG9hZGVyKCktPmRpZExheW91dCgp
OworI2VuZGlmCiAgICAgCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBjb25zaWRlciBhZGRpbmcg
RGlkTGF5b3V0IGFzIGEgTGF5b3V0TWlsZXN0b25lLiBUaGF0IHdvdWxkIGxldCB1cyBtZXJnZSB0
aGlzCiAgICAgLy8gd2l0aCBkaWRMYXlvdXQoTGF5b3V0TWlsZXN0b25lcykuCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDdlZWFmNzAyMjBlN2Y4
YjU0YjYxYjhjMDI0OTQ2MTU0ODQ5ZDVhZS4uNjNkOWIwYzUxOTE4OTMzZTc4NTg3M2QwN2EwN2I1
ZGYyMTBhMzhkOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAzLTExICBLdW5paGlrbyBTYWthbW90byAgPGtz
YWthbW90b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IEZvbnRMb2FkZXIgaW50
ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
ODM5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVu
YWJsZSBGb250TG9hZEV2ZW50cyBydW50aW1lIGZsYWcgZm9yIFRlc3RTaGVsbC4KKworICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2Vz
LmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZhY2VzOjpUZXN0SW50ZXJm
YWNlcyk6CisKIDIwMTMtMDMtMTEgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgW2Nocm9taXVtXSByZW1vdmUgb2Jzb2xldGUgdXNlciBnZXN0dXJlIG1l
dGhvZHMgZnJvbSBXZWJGcmFtZQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuY3BwCmluZGV4IDEy
NGQ3MjJiMWI3MmJiZmUwOTcxMjBiNzQxMDY0NmI3M2IyNDk1MjkuLjRkOGEwMGM5NmNmYzlhY2Iz
ZDBjNzM2YzIzNmYxNmRhNzlmNjIzYzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5jcHAK
QEAgLTY5LDYgKzY5LDcgQEAgVGVzdEludGVyZmFjZXM6OlRlc3RJbnRlcmZhY2VzKCkKICAgICBX
ZWJSdW50aW1lRmVhdHVyZXM6OmVuYWJsZUlucHV0VHlwZVRpbWUodHJ1ZSk7CiAgICAgV2ViUnVu
dGltZUZlYXR1cmVzOjplbmFibGVJbnB1dFR5cGVXZWVrKHRydWUpOwogICAgIFdlYlJ1bnRpbWVG
ZWF0dXJlczo6ZW5hYmxlRmlsZVN5c3RlbSh0cnVlKTsKKyAgICBXZWJSdW50aW1lRmVhdHVyZXM6
OmVuYWJsZUZvbnRMb2FkRXZlbnRzKHRydWUpOwogICAgIFdlYlJ1bnRpbWVGZWF0dXJlczo6ZW5h
YmxlSmF2YVNjcmlwdEkxOE5BUEkodHJ1ZSk7CiAgICAgV2ViUnVudGltZUZlYXR1cmVzOjplbmFi
bGVNZWRpYVNvdXJjZSh0cnVlKTsKICAgICBXZWJSdW50aW1lRmVhdHVyZXM6OmVuYWJsZUVuY3J5
cHRlZE1lZGlhKHRydWUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGIyYWZjNmNhNmIyZDMwOWFlYzBiMzRlOGFkOTc0ZDI2
MzM3MzQyZWQuLmU0YTVhOTA4NGZjZDkxZmMzZDQ1OTBlNjQxYzk4YzdlMDY1N2JkNTYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzNSBAQAorMjAxMy0wMy0xMSAgS3VuaWhpa28gU2FrYW1vdG8gIDxrc2FrYW1v
dG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVudCBGb250TG9hZGVyIGludGVyZmFj
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgzOTUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVz
dHMgZm9yIGRvY3VtZW50LmZvbnRsb2FkZXIuIFNpbmNlIHRoZSBmZWF0dXJlIGlzIGN1cnJlbnRs
eSBlbmFibGVkCisgICAgICAgIG9ubHkgZm9yIGNocm9taXVtLCB0aGUgdGVzdHMgYXJlIGV4cGVj
dGVkIHRvIGZhaWwgb24gdGhlIG90aGVyIHBvcnRzLgorCisgICAgICAgICogZmFzdC9jc3MvZm9u
dGxvYWRlci1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvY3NzL2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3IuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9jc3MvZm9udGxvYWRlci1ldmVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2Nzcy9mb250bG9hZGVyLWV2ZW50cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2Nzcy9mb250bG9hZGVyLWxvYWRpbmdkb25lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9jc3MvZm9udGxvYWRlci1sb2FkaW5nZG9uZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1m
YWNlcy1kb3dubG9hZC1lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9mb250
bG9hZGVyLW11bHRpcGxlLWZhY2VzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhbWlsaWVzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYW1pbGllcy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmZvbnQvZm9udGxvYWRlci1sb2FkaW5nLWF0
dHJpYnV0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZm9u
dC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3ItZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250
bG9hZGVyLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbG9hZGluZ2RvbmUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRp
cGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2Zv
bnRsb2FkZXItbXVsdGlwbGUtZmFtaWxpZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3dlYmZvbnQvZm9udGxvYWRlci1sb2FkaW5n
LWF0dHJpYnV0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEzLTAzLTExICBBbGFuIEN1dHRl
ciAgPGFsYW5jdXR0ZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gTWFyayBM
YXlvdXRUZXN0cy9odG1sNWxpYi9nZW5lcmF0ZWQvcnVuLXRlc3RzMTYtZGF0YS5odG1sIGFzIHNs
b3cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZG93bmxvYWQt
ZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1kb3du
bG9hZC1lcnJvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjE0NTgwMTFjOTQ2ODJmNWExM2Fl
ZjQ2MzU2MjQ1ZjUxOWI2ODkyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQg
QEAKK1Rlc3QgZG93bmxvYWQgZXJyb3IgY2FzZXMuICJsb2FkIiBvciAiZXJyb3IiIGV2ZW50cyBz
aG91bGQgYmUgZmlyZWQgZXhhY3RseSBvbmNlIGZvciBlYWNoIEBmb250LWZhY2UgcnVsZS4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ZBSUwgZG9jdW1lbnQuZm9udGxvYWRlciBk
b2VzIG5vdCBleGlzdAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCitmb250MQorZm9udDIKK2ZvbnQzCitmb250NAorZm9udDUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3IuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3IuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wN2JhZjgxYjBmOWQxM2Y0NTNiNjkwMWExZjNiZDgzYTU5YTMyZWJiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1kb3dubG9hZC1lcnJvci5odG1s
CkBAIC0wLDAgKzEsODAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKy8qIFRlc3QgMTogSW52
YWxpZCBmb250IGRhdGEgKi8KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiBteWZvbnQx
OworICAgIHNyYzogdXJsKCdyZXNvdXJjZXMvaW52YWxpZGZvbnQucG5nJykgZm9ybWF0KG9wZW50
eXBlKTsKK30KKworLyogVGVzdCAyOiBEb3dubG9hZCBlcnJvciAqLworQGZvbnQtZmFjZSB7Cisg
ICAgZm9udC1mYW1pbHk6IG15Zm9udDI7CisgICAgc3JjOiB1cmwoJ3Jlc291cmNlcy9Eb3duTG9h
ZEVycm9yQWhlbS5vdGYnKTsKK30KKworLyogVGVzdCAzOiBFbXB0eSBkYXRhIHVybCAqLworQGZv
bnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6IG15Zm9udDM7CisgICAgc3JjOiB1cmwoZGF0YTph
cHBsaWNhdGlvbi94LXRydWV0eXBlLWZvbnQsKSBmb3JtYXQodHJ1ZXR5cGUpOworfQorCisvKiBU
ZXN0IDQ6IERvd25sb2FkIGVycm9yIGZvbGxvd2VkIGJ5IGV4aXN0aW5nIGxvY2FsIGZvbnQgKi8K
K0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiBteWZvbnQ0OworICAgIHNyYzogdXJsKCdy
ZXNvdXJjZXMvRG93bkxvYWRFcnJvckFoZW0ub3RmJyksIGxvY2FsKCdDb3VyaWVyIE5ldycpOwor
fQorCisvKiBUZXN0IDU6IE11bHRpcGxlIGVycm9ycyAqLworQGZvbnQtZmFjZSB7CisgICAgZm9u
dC1mYW1pbHk6IG15Zm9udDU7CisgICAgc3JjOiB1cmwoJ3Jlc291cmNlcy9Eb3duTG9hZEVycm9y
QWhlbS5vdGYnKSwgdXJsKGRhdGE6YXBwbGljYXRpb24veC10cnVldHlwZS1mb250LCkgZm9ybWF0
KHRydWV0eXBlKTsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgZG93
bmxvYWQgZXJyb3IgY2FzZXMuICJsb2FkIiBvciAiZXJyb3IiIGV2ZW50cyBzaG91bGQgYmUgZmly
ZWQgZXhhY3RseSBvbmNlIGZvciBlYWNoIEBmb250LWZhY2UgcnVsZS4nKTsKKword2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgZXZlbnRzID0ge307CisKK2Z1bmN0aW9uIGxvZ0V2
ZW50KGUpIHsKKyAgICB2YXIgZmFtaWx5ID0gZS5mb250ZmFjZS5zdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKCdmb250LWZhbWlseScpOworICAgIGlmICghZXZlbnRzW2ZhbWlseV0pCisgICAgICAgIGV2
ZW50c1tmYW1pbHldID0gW107CisgICAgZXZlbnRzW2ZhbWlseV0ucHVzaChlLnR5cGUpOworfQor
CitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAgICBkb2N1bWVudC5mb250bG9hZGVyLmFkZEV2ZW50
TGlzdGVuZXIoJ2xvYWRzdGFydCcsIGxvZ0V2ZW50KTsKKyAgICBkb2N1bWVudC5mb250bG9hZGVy
LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBsb2dFdmVudCk7CisgICAgZG9jdW1lbnQuZm9udGxv
YWRlci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGxvZ0V2ZW50KTsKKworICAgIGRvY3VtZW50
LmZvbnRsb2FkZXIubm90aWZ5V2hlbkZvbnRzUmVhZHkoZnVuY3Rpb24oKSB7CisgICAgICAgIHNo
b3VsZEJlKCJldmVudHNbJ215Zm9udDEnXSIsICJbJ2xvYWRzdGFydCcsICdlcnJvciddIik7Cisg
ICAgICAgIHNob3VsZEJlKCJldmVudHNbJ215Zm9udDInXSIsICJbJ2xvYWRzdGFydCcsICdlcnJv
ciddIik7CisgICAgICAgIHNob3VsZEJlKCJldmVudHNbJ215Zm9udDMnXSIsICJbJ2xvYWRzdGFy
dCcsICdlcnJvciddIik7CisgICAgICAgIHNob3VsZEJlKCJldmVudHNbJ215Zm9udDQnXSIsICJb
J2xvYWRzdGFydCcsICdsb2FkJ10iKTsKKyAgICAgICAgc2hvdWxkQmUoImV2ZW50c1snbXlmb250
NSddIiwgIlsnbG9hZHN0YXJ0JywgJ2Vycm9yJ10iKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgfSk7Cit9CisKK2lmIChkb2N1bWVudC5mb250bG9hZGVyKQorICAgIHJ1blRlc3RzKCk7
CitlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKCdkb2N1bWVudC5mb250bG9hZGVyIGRvZXMgbm90IGV4
aXN0Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorICA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogbXlmb250MSI+Zm9udDE8L2Rpdj4KKyAgPGRp
diBzdHlsZT0iZm9udC1mYW1pbHk6IG15Zm9udDIiPmZvbnQyPC9kaXY+CisgIDxkaXYgc3R5bGU9
ImZvbnQtZmFtaWx5OiBteWZvbnQzIj5mb250MzwvZGl2PgorICA8ZGl2IHN0eWxlPSJmb250LWZh
bWlseTogbXlmb250NCI+Zm9udDQ8L2Rpdj4KKyAgPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IG15
Zm9udDUiPmZvbnQ1PC9kaXY+CisgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZXZlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
MDdlZWJjYjU1YTQxNWI3ODk1ODhmYTAyY2QwZjlkYjQzYTI5NmVhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1ldmVudHMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTAgQEAKK1Rlc3QgdGhhdCB0aGUgZXZlbnQgaGFuZGxlcnMgb2YgRm9udExvYWRl
ciBhcmUgY2FsbGVkIGluIHRoZSBjb3JyZWN0IG9yZGVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworRkFJTCBkb2N1bWVudC5mb250bG9hZGVyIGRvZXMgbm90IGV4aXN0CitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK0hlbGxvLCB3b3Js
ZCEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZXZlbnRzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWV2ZW50cy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmVjMjk1MDBkN2UyYTk2MDYxNWQ3NjYxMDcxMjUwY2IyNWU5MjFlZjkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWV2ZW50cy5odG1sCkBAIC0w
LDAgKzEsNDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICBmb250
LWZhbWlseTogJ2FoZW0nOworICBzcmM6IHVybCguLi8uLi9yZXNvdXJjZXMvQWhlbS50dGYpOwor
fQorPC9zdHlsZT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCB0aGF0IHRoZSBldmVudCBo
YW5kbGVycyBvZiBGb250TG9hZGVyIGFyZSBjYWxsZWQgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuJyk7
CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV2ZW50OwordmFyIG51bWJl
ck9mRXZlbnRzID0gMDsKKworZnVuY3Rpb24gaGFuZGxlRXZlbnQoZSkgeworICAgIGV2ZW50ID0g
ZTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2V2ZW50LnR5cGUnLCBbJ2xvYWRpbmcnLCAn
bG9hZHN0YXJ0JywgJ2xvYWQnLCAnbG9hZGluZ2RvbmUnXVtudW1iZXJPZkV2ZW50c10pOworICAg
IG51bWJlck9mRXZlbnRzKys7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICAgIGRvY3Vt
ZW50LmZvbnRsb2FkZXIub25sb2FkaW5nID0gaGFuZGxlRXZlbnQ7CisgICAgZG9jdW1lbnQuZm9u
dGxvYWRlci5vbmxvYWRpbmdkb25lID0gaGFuZGxlRXZlbnQ7CisgICAgZG9jdW1lbnQuZm9udGxv
YWRlci5vbmxvYWRzdGFydCA9IGhhbmRsZUV2ZW50OworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIu
b25sb2FkID0gaGFuZGxlRXZlbnQ7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5vbmVycm9yID0g
aGFuZGxlRXZlbnQ7CisKKyAgICBkb2N1bWVudC5mb250bG9hZGVyLm5vdGlmeVdoZW5Gb250c1Jl
YWR5KGZ1bmN0aW9uKCkgeworICAgICAgICBzaG91bGRCZSgnbnVtYmVyT2ZFdmVudHMnLCAnNCcp
OworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKK30KKworaWYgKGRvY3VtZW50LmZv
bnRsb2FkZXIpCisgICAgcnVuVGVzdHMoKTsKK2Vsc2UgeworICAgIHRlc3RGYWlsZWQoJ2RvY3Vt
ZW50LmZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBh
aGVtIj5IZWxsbywgd29ybGQhPC9kaXY+CisgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbG9hZGluZ2RvbmUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1sb2FkaW5nZG9uZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZGJhOTY4ZTIwMjE2NzZmNjY2YWZjZWRjNzUyMTlhYmQ2ZmM4Y2JiZgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbG9hZGlu
Z2RvbmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgdGhhdCBvbmxvYWRpbmdk
b25lIGlzIGZpcmVkIGFmdGVyIHN0eWxlIHJlY2FsY3VsYXRpb24uCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitGQUlMIGRvY3VtZW50LmZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorYWFhCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWxvYWRpbmdkb25lLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWxvYWRpbmdkb25lLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjNiMDY1NzE5MTNlY2VhNDAyMjc4ZjhlYWY3NzVjMDE3MmZhZjU1YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbG9hZGluZ2RvbmUu
aHRtbApAQCAtMCwwICsxLDU0IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Citib2R5IHsKKyAg
Zm9udC1mYW1pbHk6IHNlcmlmOworfQorQGZvbnQtZmFjZSB7CisgIGZvbnQtZmFtaWx5OiAnYWhl
bSc7CisgIHNyYzogdXJsKC4uLy4uL3Jlc291cmNlcy9BaGVtLnR0Zik7Cit9CisjdGVzdCB7Cisg
IHBvc2l0aW9uOiBhYnNvbHV0ZQorfQorI3Rlc3Qgc3BhbiB7CisgIGZvbnQtZmFtaWx5OiBhaGVt
OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCB0aGF0IG9ubG9hZGlu
Z2RvbmUgaXMgZmlyZWQgYWZ0ZXIgc3R5bGUgcmVjYWxjdWxhdGlvbi4nKTsKKword2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworCitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAgICBkb2N1bWVu
dC5mb250bG9hZGVyLm9ubG9hZGluZ2RvbmUgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgZGVidWco
J2xvYWRpbmdkb25lJyk7CisgICAgICAgIHRlc3REaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGVzdCcpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKHRlc3REaXYsIDApLndpZHRoJywgJzQ4cHgnKTsKKyAgICB9OworCisgICAgZG9j
dW1lbnQuZm9udGxvYWRlci5ub3RpZnlXaGVuRm9udHNSZWFkeShmdW5jdGlvbigpIHsKKyAgICAg
ICAgZGVidWcoJ25vdGlmeVdoZW5Gb250c1JlYWR5KCkgY2FsbGJhY2snKTsKKyAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RGl2LCAwKS53
aWR0aCcsICc0OHB4Jyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworfQorCitp
ZiAoZG9jdW1lbnQuZm9udGxvYWRlcikKKyAgICBydW5UZXN0cygpOworZWxzZSB7CisgICAgdGVz
dEZhaWxlZCgnZG9jdW1lbnQuZm9udGxvYWRlciBkb2VzIG5vdCBleGlzdCcpOworICAgIGZpbmlz
aEpTVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD10ZXN0
PgorICAgIDxhIGhyZWY9IiMiPgorICAgICAgPHNwYW4+YWFhPC9zcGFuPgorICAgIDwvYT4KKyAg
PC9kaXY+CisgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1kb3dubG9h
ZC1lcnJvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTIxNzM5YzY1YTEwMzkxYWUxNWY0M2Zi
NDI0MDUyNzAyYThlZGM1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTAgQEAKK1Rlc3QgbG9hZCBldmVudHMgZm9yIGEgZm9udCBmYW1pbHkgY29uc2lz
dHMgb2YgbXVsdGlwbGUgQGZvbnQtZmFjZXMsIGluY2x1ZGluZyBkb3dubG9hZCBlcnJvci4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ZBSUwgZG9jdW1lbnQuZm9udGxvYWRlciBk
b2VzIG5vdCBleGlzdAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVs
dGlwbGUtZmFjZXMtZG93bmxvYWQtZXJyb3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Zv
bnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93bmxvYWQtZXJyb3IuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
MWU2YjhlZjY1MThhODMwZjM0OWJjMDJlOWM5MTZiOThkNTI4NDk1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1kb3dubG9h
ZC1lcnJvci5odG1sCkBAIC0wLDAgKzEsNzAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK0Bm
b250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiBUZXN0Rm9udDsKKyAgICBzcmM6IHVybCguLi8u
Li9yZXNvdXJjZXMvQWhlbS50dGYpOworfQorCitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWls
eTogVGVzdEZvbnQ7CisgICAgc3JjOiB1cmwoJ3Jlc291cmNlcy9Eb3duTG9hZEVycm9yQWhlbS5v
dGYnKTsKKyAgICB1bmljb2RlLXJhbmdlOiB1KzYxLTdhOyAvKiAnYSctJ3onICovCit9Cis8L3N0
eWxlPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGxvYWQgZXZlbnRzIGZvciBhIGZvbnQg
ZmFtaWx5IGNvbnNpc3RzIG9mIG11bHRpcGxlIEBmb250LWZhY2VzLCBpbmNsdWRpbmcgZG93bmxv
YWQgZXJyb3IuJyk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV2ZW50
cyA9IHt9OworCitmdW5jdGlvbiBjb3VudEV2ZW50KGUpIHsKKyAgICBpZiAoIWV2ZW50c1tlLnR5
cGVdKQorICAgICAgICBldmVudHNbZS50eXBlXSA9IDA7CisgICAgZXZlbnRzW2UudHlwZV0gKz0g
MTsKK30KKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5h
ZGRFdmVudExpc3RlbmVyKCdsb2FkaW5nJywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQuZm9u
dGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2Fkc3RhcnQnLCBjb3VudEV2ZW50KTsKKyAgICBk
b2N1bWVudC5mb250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBjb3VudEV2ZW50KTsK
KyAgICBkb2N1bWVudC5mb250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgY291bnRF
dmVudCk7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkaW5n
ZG9uZScsIGNvdW50RXZlbnQpOworCisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5sb2FkRm9udCh7
IGZvbnQ6ICcxMHB4IFRlc3RGb250Jywgb25zdWNjZXNzOiBvbnN1Y2Nlc3MsIG9uZXJyb3I6IG9u
ZXJyb3IgfSk7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5ub3RpZnlXaGVuRm9udHNSZWFkeSh2
ZXJpZnkpOworfQorCitmdW5jdGlvbiBvbnN1Y2Nlc3MoKSB7CisgICAgdGVzdEZhaWxlZCgiRXhw
ZWN0ZWQgZXJyb3IsIGJ1dCBvbnN1Y2Nlc3MoKSBjYWxsZWQiKTsKKyAgICBvbmVycm9yKCk7Cit9
CisKK2Z1bmN0aW9uIG9uZXJyb3IoKSB7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZGluZydd
IiwgIjEiKTsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydsb2Fkc3RhcnQnXSIsICIyIik7CisgICAg
c2hvdWxkQmUoImV2ZW50c1snbG9hZCddIiwgIjEiKTsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydl
cnJvciddIiwgIjEiKTsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydsb2FkaW5nZG9uZSddIiwgInVu
ZGVmaW5lZCIpOworICAgIHNob3VsZEJlKCJkb2N1bWVudC5mb250bG9hZGVyLmNoZWNrRm9udCgn
MTBweCBUZXN0Rm9udCcpIiwgImZhbHNlIik7Cit9CisKK2Z1bmN0aW9uIHZlcmlmeSgpIHsKKyAg
ICBzaG91bGRCZSgiZXZlbnRzWydsb2FkaW5nZG9uZSddIiwgIjEiKTsKKyAgICBmaW5pc2hKU1Rl
c3QoKTsKK30KKworaWYgKGRvY3VtZW50LmZvbnRsb2FkZXIpCisgICAgcnVuVGVzdHMoKTsKK2Vs
c2UgeworICAgIHRlc3RGYWlsZWQoJ2RvY3VtZW50LmZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3Qn
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cisg
IDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRs
b2FkZXItbXVsdGlwbGUtZmFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Zm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VkN2E2
MjI4YmY2ODEyMjlkYWQ5ZDUxMzIwMmJjNjg3OTE4OTRkOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgbG9hZCBldmVudHMgZm9yIGEgZm9udCBmYW1pbHkgY29u
c2lzdHMgb2YgbXVsdGlwbGUgQGZvbnQtZmFjZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitGQUlMIGRvY3VtZW50LmZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDFmZDBiYTE3NTdmZGY4NTg1OTcyMjQ3ZTcyMmQ3MWIwMTAzZWNiMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMuaHRt
bApAQCAtMCwwICsxLDcwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsK
KyAgICBmb250LWZhbWlseTogVGVzdEZvbnQ7CisgICAgc3JjOiBsb2NhbCgnQ291cmllciBOZXcn
KTsKK30KKworQGZvbnQtZmFjZSB7CisgICAgZm9udC1mYW1pbHk6IFRlc3RGb250OworICAgIHNy
YzogdXJsKC4uLy4uL3Jlc291cmNlcy9BaGVtLnR0Zik7CisgICAgdW5pY29kZS1yYW5nZTogdSs2
MS03YTsgLyogJ2EnLSd6JyAqLworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbign
VGVzdCBsb2FkIGV2ZW50cyBmb3IgYSBmb250IGZhbWlseSBjb25zaXN0cyBvZiBtdWx0aXBsZSBA
Zm9udC1mYWNlcy4nKTsKKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgZXZl
bnRzID0ge307CisKK2Z1bmN0aW9uIGNvdW50RXZlbnQoZSkgeworICAgIGlmICghZXZlbnRzW2Uu
dHlwZV0pCisgICAgICAgIGV2ZW50c1tlLnR5cGVdID0gMDsKKyAgICBldmVudHNbZS50eXBlXSAr
PSAxOworfQorCitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAgICBkb2N1bWVudC5mb250bG9hZGVy
LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRpbmcnLCBjb3VudEV2ZW50KTsKKyAgICBkb2N1bWVudC5m
b250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRzdGFydCcsIGNvdW50RXZlbnQpOworICAg
IGRvY3VtZW50LmZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGNvdW50RXZlbnQp
OworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBjb3Vu
dEV2ZW50KTsKKyAgICBkb2N1bWVudC5mb250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRp
bmdkb25lJywgY291bnRFdmVudCk7CisKKyAgICBkb2N1bWVudC5mb250bG9hZGVyLmxvYWRGb250
KHsgZm9udDogJzEwcHggVGVzdEZvbnQnLCBvbnN1Y2Nlc3M6IG9uc3VjY2Vzcywgb25lcnJvcjog
b25lcnJvciB9KTsKKyAgICBkb2N1bWVudC5mb250bG9hZGVyLm5vdGlmeVdoZW5Gb250c1JlYWR5
KHZlcmlmeSk7Cit9CisKK2Z1bmN0aW9uIG9uc3VjY2VzcygpIHsKKyAgICBzaG91bGRCZSgiZXZl
bnRzWydsb2FkaW5nJ10iLCAiMSIpOworICAgIHNob3VsZEJlKCJldmVudHNbJ2xvYWRzdGFydCdd
IiwgIjIiKTsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydsb2FkJ10iLCAiMiIpOworICAgIHNob3Vs
ZEJlKCJldmVudHNbJ2Vycm9yJ10iLCAidW5kZWZpbmVkIik7CisgICAgc2hvdWxkQmUoImV2ZW50
c1snbG9hZGluZ2RvbmUnXSIsICJ1bmRlZmluZWQiKTsKKyAgICBzaG91bGRCZSgiZG9jdW1lbnQu
Zm9udGxvYWRlci5jaGVja0ZvbnQoJzEwcHggVGVzdEZvbnQnKSIsICJ0cnVlIik7Cit9CisKK2Z1
bmN0aW9uIG9uZXJyb3IoKSB7CisgICAgdGVzdEZhaWxlZCgiRXhwZWN0ZWQgc3VjY2VzcywgYnV0
IG9uZXJyb3IoKSBjYWxsZWQiKTsKKyAgICBvbnN1Y2Nlc3MoKTsKK30KKworZnVuY3Rpb24gdmVy
aWZ5KCkgeworICAgIHNob3VsZEJlKCJldmVudHNbJ2xvYWRpbmdkb25lJ10iLCAiMSIpOworICAg
IGZpbmlzaEpTVGVzdCgpOworfQorCitpZiAoZG9jdW1lbnQuZm9udGxvYWRlcikKKyAgICBydW5U
ZXN0cygpOworZWxzZSB7CisgICAgdGVzdEZhaWxlZCgnZG9jdW1lbnQuZm9udGxvYWRlciBkb2Vz
IG5vdCBleGlzdCcpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKyAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYW1pbGllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhbWlsaWVzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41MjAwYjA0MmRmNjAyZWFkYzBkYzNlYWUyZTYyNjcyZGQ4NTM1YmM3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1m
YW1pbGllcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBsb2FkIGV2ZW50cyBm
b3IgZm9udGxvYWRlci5sb2FkRm9udCgpIHdpdGggbXVsdGlwbGUgZm9udCBmYW1pbGllcy4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ZBSUwgZG9jdW1lbnQuZm9udGxvYWRlciBk
b2VzIG5vdCBleGlzdAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVs
dGlwbGUtZmFtaWxpZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVs
dGlwbGUtZmFtaWxpZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZTUxYWJkZmRlOWZkYWYzYTFkZjIwZTY3
YTA1MmZlMDZmMDQyYTdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Zm9udGxvYWRlci1tdWx0aXBsZS1mYW1pbGllcy5odG1sCkBAIC0wLDAgKzEsNjkgQEAKKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzdHlsZT4KK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiBUZXN0Rm9u
dDE7CisgICAgc3JjOiBsb2NhbCgnQ291cmllciBOZXcnKTsKK30KKworQGZvbnQtZmFjZSB7Cisg
ICAgZm9udC1mYW1pbHk6IFRlc3RGb250MjsKKyAgICBzcmM6IHVybCguLi8uLi9yZXNvdXJjZXMv
QWhlbS50dGYpOworICAgIHVuaWNvZGUtcmFuZ2U6IHUrNjEtN2E7IC8qICdhJy0neicgKi8KK30K
Kzwvc3R5bGU+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgbG9hZCBldmVudHMgZm9yIGZv
bnRsb2FkZXIubG9hZEZvbnQoKSB3aXRoIG11bHRpcGxlIGZvbnQgZmFtaWxpZXMuJyk7CisKK3dp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV2ZW50cyA9IHt9OworCitmdW5jdGlv
biBjb3VudEV2ZW50KGUpIHsKKyAgICBpZiAoIWV2ZW50c1tlLnR5cGVdKQorICAgICAgICBldmVu
dHNbZS50eXBlXSA9IDA7CisgICAgZXZlbnRzW2UudHlwZV0gKz0gMTsKK30KKworZnVuY3Rpb24g
cnVuVGVzdHMoKSB7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCds
b2FkaW5nJywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5hZGRFdmVudExp
c3RlbmVyKCdsb2Fkc3RhcnQnLCBjb3VudEV2ZW50KTsKKyAgICBkb2N1bWVudC5mb250bG9hZGVy
LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBjb3VudEV2ZW50KTsKKyAgICBkb2N1bWVudC5mb250
bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgY291bnRFdmVudCk7CisgICAgZG9jdW1l
bnQuZm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkaW5nZG9uZScsIGNvdW50RXZlbnQp
OworCisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5sb2FkRm9udCh7IGZvbnQ6ICcxMHB4IFRlc3RG
b250MSwgVGVzdEZvbnQyJywgb25zdWNjZXNzOiBvbnN1Y2Nlc3MsIG9uZXJyb3I6IG9uZXJyb3Ig
fSk7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5ub3RpZnlXaGVuRm9udHNSZWFkeSh2ZXJpZnkp
OworfQorCitmdW5jdGlvbiBvbnN1Y2Nlc3MoKSB7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9h
ZGluZyddIiwgIjEiKTsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydsb2Fkc3RhcnQnXSIsICIyIik7
CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZCddIiwgIjIiKTsKKyAgICBzaG91bGRCZSgiZXZl
bnRzWydlcnJvciddIiwgInVuZGVmaW5lZCIpOworICAgIHNob3VsZEJlKCJldmVudHNbJ2xvYWRp
bmdkb25lJ10iLCAidW5kZWZpbmVkIik7CisgICAgc2hvdWxkQmUoImRvY3VtZW50LmZvbnRsb2Fk
ZXIuY2hlY2tGb250KCcxMHB4IFRlc3RGb250MSwgVGVzdEZvbnQyJykiLCAidHJ1ZSIpOworfQor
CitmdW5jdGlvbiBvbmVycm9yKCkgeworICAgIHRlc3RGYWlsZWQoIkV4cGVjdGVkIHN1Y2Nlc3Ms
IGJ1dCBvbmVycm9yKCkgY2FsbGVkIik7Cit9CisKK2Z1bmN0aW9uIHZlcmlmeSgpIHsKKyAgICBz
aG91bGRCZSgiZXZlbnRzWydsb2FkaW5nZG9uZSddIiwgIjEiKTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKK30KKworaWYgKGRvY3VtZW50LmZvbnRsb2FkZXIpCisgICAgcnVuVGVzdHMoKTsKK2Vsc2Ug
eworICAgIHRlc3RGYWlsZWQoJ2RvY3VtZW50LmZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QnKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxz
Y3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZm9u
dC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yNTczNTg4Y2I3Mzk0YzZmNzIwYjg5NDk3MmQ2OWQ4ZmQyYzVlMWI4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJmb250L2ZvbnRs
b2FkZXItbG9hZGluZy1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rl
c3QgZm9yIEZvbnRMb2FkZXIubG9hZGluZyBhdHRyaWJ1dGUKKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK0ZBSUwgZG9jdW1lbnQuZm9udGxvYWRlciBkb2VzIG5vdCBleGlzdAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxvYWRpbmctYXR0
cmlidXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmZvbnQvZm9udGxvYWRlci1s
b2FkaW5nLWF0dHJpYnV0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3Y2E2ZTgwYWJkNjRlMDY3YWJhMmQ2
YjQ1MjY0MTU5MDMwNjI2MjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYmZvbnQvZm9udGxvYWRlci1sb2FkaW5nLWF0dHJpYnV0ZS5odG1sCkBAIC0wLDAgKzEs
MzkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICBAZm9udC1mYWNlIHsKKyAg
ICBmb250LWZhbWlseTogJ1Rlc3RGb250JzsKKyAgICBzcmM6IHVybChzbG93LWFoZW0tbG9hZGlu
Zy5jZ2kpOworICB9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGZvciBG
b250TG9hZGVyLmxvYWRpbmcgYXR0cmlidXRlJyk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgc2hvdWxkQmUoImRvY3VtZW50LmZv
bnRsb2FkZXIuY2hlY2tGb250KCcxMHB4IFRlc3RGb250JykiLCAiZmFsc2UiKTsKKyAgICBzaG91
bGRCZSgiZG9jdW1lbnQuZm9udGxvYWRlci5sb2FkaW5nIiwgImZhbHNlIik7CisgICAgZG9jdW1l
bnQuZm9udGxvYWRlci5sb2FkRm9udCh7IGZvbnQ6ICcxMHB4IFRlc3RGb250Jywgb25zdWNjZXNz
OiBvbnN1Y2Nlc3MgfSk7CisgICAgc2hvdWxkQmUoImRvY3VtZW50LmZvbnRsb2FkZXIubG9hZGlu
ZyIsICJ0cnVlIik7Cit9CisKK2Z1bmN0aW9uIG9uc3VjY2VzcygpIHsKKyAgICBzaG91bGRCZSgi
ZG9jdW1lbnQuZm9udGxvYWRlci5jaGVja0ZvbnQoJzEwcHggVGVzdEZvbnQnKSIsICJ0cnVlIik7
CisgICAgc2hvdWxkQmUoImRvY3VtZW50LmZvbnRsb2FkZXIubG9hZGluZyIsICJmYWxzZSIpOwor
ICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitpZiAoZG9jdW1lbnQuZm9udGxvYWRlcikKKyAgICBy
dW5UZXN0cygpOworZWxzZSB7CisgICAgdGVzdEZhaWxlZCgnZG9jdW1lbnQuZm9udGxvYWRlciBk
b2VzIG5vdCBleGlzdCcpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLWRvd25sb2FkLWVy
cm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3Nz
L2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2OTdi
NTgyM2YyYTMxNjY3ZDI5NzVhMDUyYmJmNTU0ODlmNjEwNjEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLWRvd25sb2Fk
LWVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0IGRvd25sb2FkIGVycm9y
IGNhc2VzLiAibG9hZCIgb3IgImVycm9yIiBldmVudHMgc2hvdWxkIGJlIGZpcmVkIGV4YWN0bHkg
b25jZSBmb3IgZWFjaCBAZm9udC1mYWNlIHJ1bGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIGV2ZW50c1snbXlmb250MSddIGlzIFsnbG9hZHN0YXJ0JywgJ2Vycm9yJ10K
K1BBU1MgZXZlbnRzWydteWZvbnQyJ10gaXMgWydsb2Fkc3RhcnQnLCAnZXJyb3InXQorUEFTUyBl
dmVudHNbJ215Zm9udDMnXSBpcyBbJ2xvYWRzdGFydCcsICdlcnJvciddCitQQVNTIGV2ZW50c1sn
bXlmb250NCddIGlzIFsnbG9hZHN0YXJ0JywgJ2xvYWQnXQorUEFTUyBldmVudHNbJ215Zm9udDUn
XSBpcyBbJ2xvYWRzdGFydCcsICdlcnJvciddCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKK2ZvbnQxCitmb250MgorZm9udDMKK2ZvbnQ0Citmb250NQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxv
YWRlci1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9jc3MvZm9udGxvYWRlci1ldmVudHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4NjU4
NzEwNzU5YmJjODU5NjIwNWExYjI4NWQwMjM3OGJjODI5NmEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLWV2ZW50cy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCB0aGF0IHRoZSBldmVudCBoYW5kbGVy
cyBvZiBGb250TG9hZGVyIGFyZSBjYWxsZWQgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGV2ZW50LnR5cGUgaXMgImxvYWRpbmciCitQ
QVNTIGV2ZW50LnR5cGUgaXMgImxvYWRzdGFydCIKK1BBU1MgZXZlbnQudHlwZSBpcyAibG9hZCIK
K1BBU1MgZXZlbnQudHlwZSBpcyAibG9hZGluZ2RvbmUiCitQQVNTIG51bWJlck9mRXZlbnRzIGlz
IDQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorSGVs
bG8sIHdvcmxkIQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9jc3MvZm9udGxvYWRlci1sb2FkaW5nZG9uZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLWxvYWRpbmdkb25lLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42NjZjNTllYzQ5Nzk2YWI4NzFhNDEwNzQyZGY3MzgzNTQyNWY5ZDJl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9j
c3MvZm9udGxvYWRlci1sb2FkaW5nZG9uZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAor
VGVzdCB0aGF0IG9ubG9hZGluZ2RvbmUgaXMgZmlyZWQgYWZ0ZXIgc3R5bGUgcmVjYWxjdWxhdGlv
bi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2xvYWRpbmdkb25lCitQQVNTIHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKHRlc3REaXYsIDApLndpZHRoIGlzICI0OHB4Igorbm90aWZ5
V2hlbkZvbnRzUmVhZHkoKSBjYWxsYmFjaworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0
ZXN0RGl2LCAwKS53aWR0aCBpcyAiNDhweCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorYWFhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVy
cm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3Nz
L2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM0ODQ0NmFhMjFmZGI2ZTk2ODVjNGQ1NGM3MmE2OWRiMWZiZWJmMTkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250
bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE2IEBACitUZXN0IGxvYWQgZXZlbnRzIGZvciBhIGZvbnQgZmFtaWx5IGNvbnNpc3RzIG9m
IG11bHRpcGxlIEBmb250LWZhY2VzLCBpbmNsdWRpbmcgZG93bmxvYWQgZXJyb3IuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGV2ZW50c1snbG9hZGluZyddIGlzIDEKK1BB
U1MgZXZlbnRzWydsb2Fkc3RhcnQnXSBpcyAyCitQQVNTIGV2ZW50c1snbG9hZCddIGlzIDEKK1BB
U1MgZXZlbnRzWydlcnJvciddIGlzIDEKK1BBU1MgZXZlbnRzWydsb2FkaW5nZG9uZSddIGlzIHVu
ZGVmaW5lZAorUEFTUyBkb2N1bWVudC5mb250bG9hZGVyLmNoZWNrRm9udCgnMTBweCBUZXN0Rm9u
dCcpIGlzIGZhbHNlCitQQVNTIGV2ZW50c1snbG9hZGluZ2RvbmUnXSBpcyAxCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1m
YWNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Nz
cy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjMw
MTU3NGFhMjE1MzkzZTE1ZmE3MzI5YTQ3NjA0ZWE4OWI1Y2Y0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBs
ZS1mYWNlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorVGVzdCBsb2FkIGV2ZW50cyBm
b3IgYSBmb250IGZhbWlseSBjb25zaXN0cyBvZiBtdWx0aXBsZSBAZm9udC1mYWNlcy4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZXZlbnRzWydsb2FkaW5nJ10gaXMgMQor
UEFTUyBldmVudHNbJ2xvYWRzdGFydCddIGlzIDIKK1BBU1MgZXZlbnRzWydsb2FkJ10gaXMgMgor
UEFTUyBldmVudHNbJ2Vycm9yJ10gaXMgdW5kZWZpbmVkCitQQVNTIGV2ZW50c1snbG9hZGluZ2Rv
bmUnXSBpcyB1bmRlZmluZWQKK1BBU1MgZG9jdW1lbnQuZm9udGxvYWRlci5jaGVja0ZvbnQoJzEw
cHggVGVzdEZvbnQnKSBpcyB0cnVlCitQQVNTIGV2ZW50c1snbG9hZGluZ2RvbmUnXSBpcyAxCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1t
dWx0aXBsZS1mYW1pbGllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhbWlsaWVzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xZGMxMzZkYmE5OTNiOWRjZmY4ZTA5NjM2ZDI5MTVlNjExYjRiNzYyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9u
dGxvYWRlci1tdWx0aXBsZS1mYW1pbGllcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAor
VGVzdCBsb2FkIGV2ZW50cyBmb3IgZm9udGxvYWRlci5sb2FkRm9udCgpIHdpdGggbXVsdGlwbGUg
Zm9udCBmYW1pbGllcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZXZl
bnRzWydsb2FkaW5nJ10gaXMgMQorUEFTUyBldmVudHNbJ2xvYWRzdGFydCddIGlzIDIKK1BBU1Mg
ZXZlbnRzWydsb2FkJ10gaXMgMgorUEFTUyBldmVudHNbJ2Vycm9yJ10gaXMgdW5kZWZpbmVkCitQ
QVNTIGV2ZW50c1snbG9hZGluZ2RvbmUnXSBpcyB1bmRlZmluZWQKK1BBU1MgZG9jdW1lbnQuZm9u
dGxvYWRlci5jaGVja0ZvbnQoJzEwcHggVGVzdEZvbnQxLCBUZXN0Rm9udDInKSBpcyB0cnVlCitQ
QVNTIGV2ZW50c1snbG9hZGluZ2RvbmUnXSBpcyAxCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vaHR0cC90ZXN0cy93ZWJmb250L2ZvbnRsb2FkZXItbG9hZGluZy1hdHRyaWJ1
dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0
cy93ZWJmb250L2ZvbnRsb2FkZXItbG9hZGluZy1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBhNDg5ODBlYWUwZjI3MjNmMGQ1YWIzOTQ1ODFjZmJhMDBkN2JjN2MKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3dlYmZv
bnQvZm9udGxvYWRlci1sb2FkaW5nLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NCBAQAorVGVzdCBmb3IgRm9udExvYWRlci5sb2FkaW5nIGF0dHJpYnV0ZQorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5mb250bG9hZGVyLmNoZWNrRm9udCgn
MTBweCBUZXN0Rm9udCcpIGlzIGZhbHNlCitQQVNTIGRvY3VtZW50LmZvbnRsb2FkZXIubG9hZGlu
ZyBpcyBmYWxzZQorUEFTUyBkb2N1bWVudC5mb250bG9hZGVyLmxvYWRpbmcgaXMgdHJ1ZQorUEFT
UyBkb2N1bWVudC5mb250bG9hZGVyLmNoZWNrRm9udCgnMTBweCBUZXN0Rm9udCcpIGlzIHRydWUK
K1BBU1MgZG9jdW1lbnQuZm9udGxvYWRlci5sb2FkaW5nIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192681</attachid>
            <date>2013-03-12 02:33:19 -0700</date>
            <delta_ts>2013-03-13 23:02:16 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-98395-20130312182917.patch</filename>
            <type>text/plain</type>
            <size>126411</size>
            <attacher name="Kunihiko Sakamoto">ksakamoto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY2YjcxZjM0OTJmMzg2
OTk2NTkwODFiNGE5ZmNhZmJjZjVmYjY0OS4uZWEzMDU4ZmI1YTM1NGY1YWQ4ODQyNjQ5NDYyMjZj
MGI1ZGNiM2ZhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMiBAQAorMjAxMy0wMy0xMiAgS3Vu
aWhpa28gU2FrYW1vdG8gIDxrc2FrYW1vdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxl
bWVudCBGb250TG9hZGVyIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTgzOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIEZvbnRMb2FkZXIgaW50
ZXJmYWNlIGRlZmluZWQgaW4gQ1NTIEZvbnQKKyAgICAgICAgTG9hZCBFdmVudHMgTW9kdWxlIExl
dmVsIDMuWzFdIEl0IGFkZHMgZm9udGxvYWRlciBhdHRyaWJ1dGUgdG8KKyAgICAgICAgRG9jdW1l
bnQsIGFuZCBhZGRzIHR3byBpbnRlcmZhY2VzLCBGb250TG9hZGVyIGFuZAorICAgICAgICBDU1NG
b250RmFjZUxvYWRFdmVudCB0byBXZWJDb3JlLgorCisgICAgICAgIFsxXTogaHR0cDovL2Rldi53
My5vcmcvY3Nzd2cvY3NzLWZvbnQtbG9hZC1ldmVudHMtMy8KKworICAgICAgICBUaGlzIGZlYXR1
cmUgaXMgZ3VhcmRlZCBieSBGT05UX0xPQURfRVZFTlRTIGNvbXBpbGVyIGZsYWcgYW5kCisgICAg
ICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmZvbnRMb2FkRXZlbnRzRW5hYmxlZCgpIHJ1bnRp
bWUgZmxhZy4KKworICAgICAgICBUZXN0czogZmFzdC9jc3MvZm9udGxvYWRlci1kb3dubG9hZC1l
cnJvci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9mb250bG9hZGVyLWV2ZW50cy5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2Nzcy9mb250bG9hZGVyLWxvYWRpbmdkb25lLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93bmxvYWQt
ZXJyb3IuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1m
YWNlcy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZh
bWlsaWVzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVy
LWxvYWRpbmctYXR0cmlidXRlLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGRp
bmcgRm9udExvYWRlci9DU1NGb250RmFjZUxvYWRFdmVudCBmaWxlcy4KKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5jcHA6IERpdHRvLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IERp
dHRvLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLnByaTogRGl0dG8uCisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbTogRGl0dG8uCisgICAgICAgICogVGFyZ2V0LnByaTogRGl0dG8uCisg
ICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ai5maWx0ZXJzOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZSk6IEFkZCBjb252ZXJ0
VmFsdWUoKSBmb3IgQ1NTRm9udEZhY2VSdWxlLCBET01FcnJvciwgYW5kIFZvaWRDYWxsYmFjay4K
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaDogRGl0dG8uCisgICAgICAgICog
YmluZGluZ3MvdjgvRGljdGlvbmFyeS5jcHA6IEFkZCBnZXQoKSBmb3IgQ1NTRm9udEZhY2VSdWxl
LCBET01FcnJvciwgYW5kIFZvaWRDYWxsYmFjay4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25h
cnk6OmdldCk6CisgICAgICAgICogYmluZGluZ3MvdjgvRGljdGlvbmFyeS5oOiBEaXR0by4KKyAg
ICAgICAgKERpY3Rpb25hcnkpOgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZS5jcHA6IE5vdGlm
aWVzIEZvbnRMb2FkZXIgYXMgbG9hZCBwcm9ncmVzc2VzLgorICAgICAgICAoV2ViQ29yZTo6Q1NT
Rm9udEZhY2U6OmZvbnRMb2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2U6Omdl
dEZvbnREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpub3RpZnlGb250TG9h
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpub3RpZnlMb2FkaW5nRG9uZSk6
CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlLmg6IEFkZCB0d28gbWVtYmVyIHZhcmlhYmxlcy4g
bV9ydWxlIHN0b3JlcyBDU1NGb250RmFjZVJ1bGUgZm9yIHRoZSBmb250ZmFjZS4gbV9sb2FkU3Rh
dGUgaG9sZHMgY3VycmVudCBzdGF0ZSBvZiB0aGUgZm9udGZhY2UgaW4gdGVybXMgb2YgRm9udExv
YWRlci4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpjcmVhdGUpOiBUYWtlcyBhZGRp
dGlvbmFsIHBhcmFtZXRlciBvZiB0eXBlIENTU0ZvbnRGYWNlUnVsZS4KKyAgICAgICAgKFdlYkNv
cmU6OkNTU0ZvbnRGYWNlOjpsb2FkU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZh
Y2U6OkNTU0ZvbnRGYWNlKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlTG9hZEV2ZW50OjpDU1NGb250
RmFjZUxvYWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZUxvYWRFdmVudDo6
fkNTU0ZvbnRGYWNlTG9hZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlTG9h
ZEV2ZW50OjppbnRlcmZhY2VOYW1lKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VMb2FkRXZl
bnQuaDogQWRkZWQuCisgICAgICAgIChDU1NGb250RmFjZUxvYWRFdmVudEluaXQpOgorICAgICAg
ICAoQ1NTRm9udEZhY2VMb2FkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VM
b2FkRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZUxvYWRFdmVu
dDo6Y3JlYXRlRm9yRm9udEZhY2VSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNl
TG9hZEV2ZW50OjpjcmVhdGVGb3JFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFj
ZUxvYWRFdmVudDo6Zm9udGZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VMb2Fk
RXZlbnQ6OmVycm9yKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VSdWxlLmlkbDogQWRkIEpTR2VuZXJhdGVU
b0pTT2JqZWN0IGFuZCBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QgYXMgSlNDIGJpbmRpbmcgbmVl
ZHMgdGhlbS4KKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTRm9udEZhY2VTb3VyY2U6OmlzRGVjb2RlRXJyb3IpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU291cmNlOjplbnN1cmVGb250RGF0YSk6IEFkZGVkLgor
ICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNvdXJjZS5oOgorICAgICAgICAoQ1NTRm9udEZhY2VT
b3VyY2UpOgorICAgICAgICAqIGNzcy9DU1NGb250U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1bGUpOiBQYXNzIGEgQ1NTRm9udEZh
Y2VSdWxlIHRvIENTU0ZvbnRGYWNlOjpjcmVhdGUoKS4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0Zv
bnRTZWxlY3Rvcjo6Z2V0Rm9udERhdGEpOiBNb3ZlZCBsb2dpYyBmb3IgY3JlYXRpbmcgYSBDU1NT
ZWdtZW50ZWRGb250RmFjZSB0byBhIGhlbHBlciBmdW5jdGlvbiBnZXRGb250RmFjZSgpLgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTRm9udFNlbGVjdG9yOjpnZXRGb250RmFjZSk6IEFkZGVkLgorICAg
ICAgICAqIGNzcy9DU1NGb250U2VsZWN0b3IuaDoKKyAgICAgICAgKiBjc3MvQ1NTU2VnbWVudGVk
Rm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VnbWVudGVkRm9udEZhY2U6OmZv
bnRMb2FkZWQpOiBGaXJlcyBjYWxsYmFja3Mgd2hlbiBsb2FkIGlzIGNvbXBsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1NlZ21lbnRlZEZvbnRGYWNlOjppc0xvYWRpbmcpOiBSZXR1cm5zIHRy
dWUgaWYgYW55IGZvbnRzIGFyZSBzdGlsbCBsb2FkaW5nLgorICAgICAgICAoV2ViQ29yZTo6Q1NT
U2VnbWVudGVkRm9udEZhY2U6OmNoZWNrRm9udCk6IFJldHVybnMgdHJ1ZSBpZiBhbGwgZm9udHMg
YXJlIGxvYWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlZ21lbnRlZEZvbnRGYWNlOjpsb2Fk
Rm9udCk6IFN0YXJ0cyBsb2FkIGJ5IGNhbGxpbmcgZ2V0Rm9udERhdGEoKS4KKyAgICAgICAgKiBj
c3MvQ1NTU2VnbWVudGVkRm9udEZhY2UuaDoKKyAgICAgICAgKENTU1NlZ21lbnRlZEZvbnRGYWNl
KTogRGVjbGFyZXMgbmV3IGZ1bmN0aW9ucyBhbmQgYSB2ZWN0b3IgdG8gc3RvcmUgY2FsbGJhY2tz
LgorICAgICAgICAoTG9hZEZvbnRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWdt
ZW50ZWRGb250RmFjZTo6TG9hZEZvbnRDYWxsYmFjazo6fkxvYWRGb250Q2FsbGJhY2spOgorICAg
ICAgICAqIGNzcy9Gb250TG9hZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChMb2FkRm9udENhbGxi
YWNrKTogSG9sZHMgY2FsbGJhY2sgZnVuY3Rpb25zIG9mIEZvbnRMb2FkZXIubG9hZEZvbnQoKS4K
KyAgICAgICAgKFdlYkNvcmU6OkxvYWRGb250Q2FsbGJhY2s6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpMb2FkRm9udENhbGxiYWNrOjpjcmVhdGVGcm9tUGFyYW1zKToKKyAgICAgICAgKFdl
YkNvcmU6OkxvYWRGb250Q2FsbGJhY2s6OkxvYWRGb250Q2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6TG9hZEZvbnRDYWxsYmFjazo6bm90aWZ5TG9hZGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkxvYWRGb250Q2FsbGJhY2s6Om5vdGlmeUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRM
b2FkZXI6OkZvbnRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udExvYWRlcjo6fkZvbnRM
b2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udExvYWRlcjo6ZXZlbnRUYXJnZXREYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OkZvbnRMb2FkZXI6OmVuc3VyZUV2ZW50VGFyZ2V0RGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGb250TG9hZGVyOjppbnRlcmZhY2VOYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRMb2FkZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udExvYWRlcjo6ZGlkTGF5b3V0KTogRmlyZXMgcGVuZGluZyBldmVudHMgYW5kIGNh
bGxiYWNrcy4gVGhpcyBpcyBjYWxsZWQgd2hlbiBsYXlvdXQgaGF2ZSBjb21wbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpGb250TG9hZGVyOjpzY2hlZHVsZUV2ZW50KTogRGVmZXJzIGV2ZW50IGRp
c3BhdGNoaW5nIHVudGlsIGxheW91dCBjb21wbGV0ZXMuCisgICAgICAgIChXZWJDb3JlOjpGb250
TG9hZGVyOjpmaXJlUGVuZGluZ0V2ZW50cyk6IERpc3BhdGNoZXMgcGVuZGluZyBldmVudHMuCisg
ICAgICAgIChXZWJDb3JlOjpGb250TG9hZGVyOjpiZWdpbkZvbnRMb2FkaW5nKTogU2NoZWR1bGVz
IGxvYWRpbmcvbG9hZHN0YXJ0IGV2ZW50cy4gVGhpcyBpcyBjYWxsZWQgZnJvbSBDU1NGb250RmFj
ZS4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRMb2FkZXI6OmZvbnRMb2FkZWQpOiBTY2hlZHVsZXMg
bG9hZC9sb2FkaW5nZG9uZSBldmVudHMuIFRoaXMgaXMgY2FsbGVkIGZyb20gQ1NTRm9udEZhY2Uu
CisgICAgICAgIChXZWJDb3JlOjpGb250TG9hZGVyOjpsb2FkRXJyb3IpOiBTY2hlZHVsZXMgZXJy
b3IvbG9hZGluZ2RvbmUgZXZlbnRzLiBUaGlzIGlzIGNhbGxlZCBmcm9tIENTU0ZvbnRGYWNlLgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udExvYWRlcjo6bm90aWZ5V2hlbkZvbnRzUmVhZHkpOiBJbXBs
ZW1lbnRzIGZvbnRsb2FkZXIubm90aWZ5V2hlbkZvbnRzUmVhZHkoKS4KKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRMb2FkZXI6OmxvYWRpbmdEb25lKTogRmlyZXMgY2FsbGJhY2tzIG9mIG5vdGlmeVdo
ZW5Gb250c1JlYWR5LgorICAgICAgICAoV2ViQ29yZTo6Rm9udExvYWRlcjo6bG9hZEZvbnQpOiBJ
bXBsZW1lbnRzIGZvbnRsb2FkZXIubG9hZEZvbnQoKS4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRM
b2FkZXI6OmNoZWNrRm9udCk6IEltcGxlbWVudHMgZm9udGxvYWRlci5jaGVja0ZvbnQoKS4KKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnRMb2FkZXI6OnJlc29sdmVGb250U3R5bGUpOiBQYXJzZXMgdGhl
IGdpdmVuIGZvbnQgcGFyYW1ldGVyIHVzaW5nIHRoZSBzeW50YXggb2YgQ1NTICdmb250JyBwcm9w
ZXJ0eSBhbmQgY3JlYXRlcyBGb250IG9iamVjdC4gVGhlIGxvZ2ljIGlzIHRha2VuIGZyb20gQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRGb250KCkuCisgICAgICAgICogY3NzL0ZvbnRMb2Fk
ZXIuaDogQWRkZWQuCisgICAgICAgIChGb250TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250TG9hZGVyOjpsb2FkaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRMb2FkZXI6OmRvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRMb2FkZXI6OnJlZkV2ZW50VGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRMb2FkZXI6OmRlcmVmRXZlbnRUYXJnZXQpOgorICAgICAgICAqIGNzcy9Gb250TG9hZGVyLmlk
bDogQWRkZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Zm9udGxv
YWRlcik6IEFkZGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1l
bnQpOiBBZGQgbV9mb250bG9hZGVyIGFuZCBmb250bG9hZGVyKCkuCisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmlkbDogQWRkIGZvbnRsb2FkZXIgYXR0cmlidXRlLgorICAgICAgICAqIGRvbS9FdmVu
dE5hbWVzLmg6IEFkZCBsb2FkaW5nIGFuZCBsb2FkaW5nZG9uZSBldmVudHMuCisgICAgICAgICog
ZG9tL0V2ZW50TmFtZXMuaW46IEFkZCBDU1NGb250RmFjZUxvYWRFdmVudC4KKyAgICAgICAgKiBk
b20vRXZlbnRUYXJnZXRGYWN0b3J5LmluOiBBZGQgRm9udExvYWRlci4KKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnBlcmZvcm1Qb3N0
TGF5b3V0VGFza3MpOiBDYWxscyBGb250TG9hZGVyOjpkaWRMYXlvdXQoKS4KKwogMjAxMy0wMy0x
MiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBhZGQgbWVtb3J5IGluc3RydW1lbnRhdGlvbiBmb3IgSW1hZ2VMb2FkZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggOTYxOTk3N2QxYWQ0NTczMzUwYzg0OWNjZDM3YmQxOWQ4NDlj
OTRmMi4uNDVmZWVmOTdlMGViMjk5ODk4NGQ1MDkyYWUwOTkxYzU3OTIwZmM0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTMwMyw2ICszMDMsNyBAQCBzZXQoV2ViQ29yZV9JRExfRklMRVMKIAog
ICAgIGNzcy9Db3VudGVyLmlkbAogICAgIGNzcy9DU1NDaGFyc2V0UnVsZS5pZGwKKyAgICBjc3Mv
Q1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsCiAgICAgY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwKICAg
ICBjc3MvQ1NTSG9zdFJ1bGUuaWRsCiAgICAgY3NzL0NTU0ltcG9ydFJ1bGUuaWRsCkBAIC0zMTgs
NiArMzE5LDcgQEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgY3NzL0NTU1ZhbHVlLmlkbAog
ICAgIGNzcy9DU1NWYWx1ZUxpc3QuaWRsCiAgICAgY3NzL0RPTVdpbmRvd0NTUy5pZGwKKyAgICBj
c3MvRm9udExvYWRlci5pZGwKICAgICBjc3MvTWVkaWFMaXN0LmlkbAogICAgIGNzcy9NZWRpYVF1
ZXJ5TGlzdC5pZGwKICAgICBjc3MvUkdCQ29sb3IuaWRsCkBAIC0xMDI4LDYgKzEwMzAsNyBAQCBz
ZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCiAgICAg
Y3NzL0NTU0RlZmF1bHRTdHlsZVNoZWV0cy5jcHAKICAgICBjc3MvQ1NTRm9udEZhY2UuY3BwCisg
ICAgY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcAogICAgIGNzcy9DU1NGb250RmFjZVJ1bGUu
Y3BwCiAgICAgY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcAogICAgIGNzcy9DU1NGb250RmFjZVNy
Y1ZhbHVlLmNwcApAQCAtMTA2OSw2ICsxMDcyLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAg
IGNzcy9ET01XaW5kb3dDU1MuY3BwCiAgICAgY3NzL0RvY3VtZW50UnVsZVNldHMuY3BwCiAgICAg
Y3NzL0ZvbnRGZWF0dXJlVmFsdWUuY3BwCisgICAgY3NzL0ZvbnRMb2FkZXIuY3BwCiAgICAgY3Nz
L0ZvbnRWYWx1ZS5jcHAKICAgICBjc3MvSW5zcGVjdG9yQ1NTT01XcmFwcGVycy5jcHAKICAgICBj
c3MvTGVuZ3RoRnVuY3Rpb25zLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IDE5
NWJlYWNkNWJmZmMzMTYyZjExOWFhNDUyYWJlNGEzYTQ3NzM1OTEuLjk5ZjA3OTFjMmE4NGNhNzE1
ZDY0OGJmYTE2N2EyYjEwNzYwNTAzYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKQEAg
LTU0LDYgKzU0LDkgQEAKICNpbmNsdWRlICJKU0NvdW50ZXIuY3BwIgogI2luY2x1ZGUgIkpTQ3J5
cHRvLmNwcCIKICNpbmNsdWRlICJKU0NTU0NoYXJzZXRSdWxlLmNwcCIKKyNpZiBFTkFCTEUoRk9O
VF9MT0FEX0VWRU5UUykKKyNpbmNsdWRlICJKU0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCIKKyNl
bmRpZgogI2luY2x1ZGUgIkpTQ1NTRm9udEZhY2VSdWxlLmNwcCIKICNpbmNsdWRlICJKU0NTU0hv
c3RSdWxlLmNwcCIKICNpbmNsdWRlICJKU0NTU0ltcG9ydFJ1bGUuY3BwIgpAQCAtMTM4LDYgKzE0
MSw5IEBACiAjaW5jbHVkZSAiSlNGbG9hdDMyQXJyYXkuY3BwIgogI2luY2x1ZGUgIkpTRmxvYXQ2
NEFycmF5LmNwcCIKICNpbmNsdWRlICJKU0ZvY3VzRXZlbnQuY3BwIgorI2lmIEVOQUJMRShGT05U
X0xPQURfRVZFTlRTKQorI2luY2x1ZGUgIkpTRm9udExvYWRlci5jcHAiCisjZW5kaWYKICNpbmNs
dWRlICJKU0dlb2xvY2F0aW9uLmNwcCIKICNpbmNsdWRlICJKU0dlb3Bvc2l0aW9uLmNwcCIKICNp
bmNsdWRlICJKU0hhc2hDaGFuZ2VFdmVudC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCBlZjE1M2NiODdhOWNlYjBkZDEyM2FjMTY4YmVjMWU3MmMxMmIyNjY2Li4wMzlhYTE0
NzMwYjUxNjg4ZTk2NTc3YmEyYTg5NTAxNTIzZjdlODYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTE3Nyw2ICsxNzcsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYnNvY2tldHMvV29ya2VyQ29udGV4dFdlYlNvY2tldC5pZGwgXAogICAgICQoV2Vi
Q29yZSkvY3NzL0NTU0NoYXJzZXRSdWxlLmlkbCBcCisgICAgJChXZWJDb3JlKS9jc3MvQ1NTRm9u
dEZhY2VMb2FkRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NGb250RmFjZVJ1bGUu
aWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NIb3N0UnVsZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvY3NzL0NTU0ltcG9ydFJ1bGUuaWRsIFwKQEAgLTE5NCw2ICsxOTUsNyBAQCBCSU5ESU5HX0lE
TFMgPSBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NTVmFsdWVMaXN0LmlkbCBcCiAgICAgJChXZWJD
b3JlKS9jc3MvQ291bnRlci5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL0RPTVdpbmRvd0NTUy5p
ZGwgXAorICAgICQoV2ViQ29yZSkvY3NzL0ZvbnRMb2FkZXIuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2Nzcy9NZWRpYUxpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaSBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLnByaQppbmRleCAyNzljYzBlMGMwOTI3NzRkNTA4YmFiNzNjYTgx
ZDI0N2IxYzViNDFlLi44NjRhMWNjZWFmOWQ3MDEwMWQ2NDdkMmM1ZjlhNjg3NmUyYzMyOWNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKKysrIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCkBAIC0xODgsNiArMTg4LDcgQEAgSURMX0JJTkRJ
TkdTICs9IFwKICAgICAkJFBXRC9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyQ29udGV4dFdlYlNv
Y2tldC5pZGwgXAogICAgICQkUFdEL2Nzcy9Db3VudGVyLmlkbCBcCiAgICAgJCRQV0QvY3NzL0NT
U0NoYXJzZXRSdWxlLmlkbCBcCisgICAgJCRQV0QvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50Lmlk
bCBcCiAgICAgJCRQV0QvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgXAogICAgICQkUFdEL2Nzcy9D
U1NIb3N0UnVsZS5pZGwgXAogICAgICQkUFdEL2Nzcy9DU1NJbXBvcnRSdWxlLmlkbCBcCkBAIC0y
MDMsNiArMjA0LDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICAkJFBXRC9jc3MvQ1NTVmFsdWUu
aWRsIFwKICAgICAkJFBXRC9jc3MvQ1NTVmFsdWVMaXN0LmlkbCBcCiAgICAgJCRQV0QvY3NzL0RP
TVdpbmRvd0NTUy5pZGwgXAorICAgICQkUFdEL2Nzcy9Gb250TG9hZGVyLmlkbCBcCiAgICAgJCRQ
V0QvY3NzL01lZGlhTGlzdC5pZGwgXAogICAgICQkUFdEL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwg
XAogICAgICQkUFdEL2Nzcy9SZWN0LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCBmNWZjYzIyNjRiOTZlOGIxYzhmYjNlODZiN2UwNmFiMzg2MzcyZGFkLi5mZDUzNTc3MTcy
NGZlOTY3YzEzMWJkNjdjZjQ4NTQ5ZTgwZDUwYjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTExMyw2ICsxMTMsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDcnlwdG8uaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0NTU0NoYXJzZXRSdWxlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU0No
YXJzZXRSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NGb250RmFjZUxvYWRF
dmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NGb250RmFjZUxvYWRFdmVu
dC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTRm9udEZhY2VSdWxlLmNwcCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU0ZvbnRGYWNlUnVsZS5oIFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTQ1NTSG9zdFJ1bGUuY3BwIFwKQEAgLTI5Miw2ICsyOTQsOCBAQCB3ZWJj
b3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGbG9hdDY0
QXJyYXkuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZvY3VzRXZlbnQuY3BwIFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRm9jdXNFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTRm9udExvYWRlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGb250
TG9hZGVyLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHYW1lcGFkLmNwcCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dhbWVwYWQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0dhbWVwYWRMaXN0LmNwcCBcCkBAIC0xMzI5LDYgKzEzMzMsNyBAQCBkb21fYmluZGluZ19p
ZGxzICs9IFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsIFwK
IAkkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJDb250ZXh0V2ViU29ja2V0Lmlk
bCBcCiAJJChXZWJDb3JlKS9jc3MvQ1NTQ2hhcnNldFJ1bGUuaWRsIFwKKwkkKFdlYkNvcmUpL2Nz
cy9DU1NGb250RmFjZUxvYWRFdmVudC5pZGwgXAogCSQoV2ViQ29yZSkvY3NzL0NTU0ZvbnRGYWNl
UnVsZS5pZGwgXAogCSQoV2ViQ29yZSkvY3NzL0NTU0hvc3RSdWxlLmlkbCBcCiAJJChXZWJDb3Jl
KS9jc3MvQ1NTSW1wb3J0UnVsZS5pZGwgXApAQCAtMTM0NSw2ICsxMzUwLDcgQEAgZG9tX2JpbmRp
bmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9jc3MvQ1NTVmFsdWVMaXN0LmlkbCBcCiAJJChXZWJD
b3JlKS9jc3MvQ291bnRlci5pZGwgXAogCSQoV2ViQ29yZSkvY3NzL0RPTVdpbmRvd0NTUy5pZGwg
XAorCSQoV2ViQ29yZSkvY3NzL0ZvbnRMb2FkZXIuaWRsIFwKIAkkKFdlYkNvcmUpL2Nzcy9NZWRp
YUxpc3QuaWRsIFwKIAkkKFdlYkNvcmUpL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwgXAogCSQoV2Vi
Q29yZSkvY3NzL1JHQkNvbG9yLmlkbCBcCkBAIC0yNTY3LDYgKzI1NzMsOCBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NEZWZhdWx0U3R5bGVTaGVldHMuaCBc
CiAJU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRGYWNlLmggXAorCVNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZUxvYWRF
dmVudC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZUxvYWRFdmVudC5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZh
Y2VTb3VyY2UuY3BwIFwKQEAgLTI2NTcsNiArMjY2NSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvY3NzL0RvY3VtZW50UnVsZVNldHMuaCBcCiAJU291cmNlL1dlYkNv
cmUvY3NzL0ZvbnRGZWF0dXJlVmFsdWUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZl
YXR1cmVWYWx1ZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250
VmFsdWUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvRm9udFZhbHVlLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2Nzcy9JbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA3
OGZhNTgwMWMyZDhjOWIzODQwMGIzNDAxZTY3NGNlM2NiNjFiMjNiLi5iNDA1ZTQyMDRlZTQ0ZTM0
ZjdjYWU4NTc5NmY5YjcyMjVjZTg3ZTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTI2NSw2ICsyNjUsNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBjc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAgXAogICAgIGNz
cy9DU1NGb250RmFjZS5jcHAgXAogICAgIGNzcy9DU1NEZWZhdWx0U3R5bGVTaGVldHMuY3BwIFwK
KyAgICBjc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIFwKICAgICBjc3MvQ1NTRm9udEZhY2VS
dWxlLmNwcCBcCiAgICAgY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwIFwKICAgICBjc3MvQ1NT
Rm9udFNlbGVjdG9yLmNwcCBcCkBAIC0zMDYsNiArMzA3LDcgQEAgU09VUkNFUyArPSBcCiAgICAg
Y3NzL0RPTVdpbmRvd0NTUy5jcHAgXAogICAgIGNzcy9Eb2N1bWVudFJ1bGVTZXRzLmNwcCBcCiAg
ICAgY3NzL0ZvbnRGZWF0dXJlVmFsdWUuY3BwIFwKKyAgICBjc3MvRm9udExvYWRlci5jcHAgXAog
ICAgIGNzcy9Gb250VmFsdWUuY3BwIFwKICAgICBjc3MvSW5zcGVjdG9yQ1NTT01XcmFwcGVycy5j
cHAgXAogICAgIGNzcy9MZW5ndGhGdW5jdGlvbnMuY3BwIFwKQEAgLTE1MTMsNiArMTUxNSw3IEBA
IEhFQURFUlMgKz0gXAogICAgIGNzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5oIFwKICAgICBjc3MvQ1NT
Q3Vyc29ySW1hZ2VWYWx1ZS5oIFwKICAgICBjc3MvQ1NTRm9udEZhY2UuaCBcCisgICAgY3NzL0NT
U0ZvbnRGYWNlTG9hZEV2ZW50LmggXAogICAgIGNzcy9DU1NGb250RmFjZVJ1bGUuaCBcCiAgICAg
Y3NzL0NTU0ZvbnRGYWNlU291cmNlLmggXAogICAgIGNzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmgg
XApAQCAtMTU1NCw2ICsxNTU3LDcgQEAgSEVBREVSUyArPSBcCiAgICAgY3NzL0NTU1ZhcmlhYmxl
VmFsdWUuaCBcCiAgICAgY3NzL0RPTVdpbmRvd0NTUy5oIFwKICAgICBjc3MvRm9udEZlYXR1cmVW
YWx1ZS5oIFwKKyAgICBjc3MvRm9udExvYWRlci5oIFwKICAgICBjc3MvRm9udFZhbHVlLmggXAog
ICAgIGNzcy9MZW5ndGhGdW5jdGlvbnMuaCBcCiAgICAgY3NzL01lZGlhRmVhdHVyZU5hbWVzLmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IGQ3M2FlMWVjYTY2ZjE0OGFmOTA5MGVlNTRlOGI0NzI3OWRm
ZmEyN2IuLjAwMGMyYjJiNWVlY2E5ODQyNDM0YjcxMGRmODdiMGYyMzE1ZjA0NDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTI0Myw2ICsyNDMsNyBAQAogICAgICAgICAgICAgJ01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL3dlYnNvY2tldHMvV29y
a2VyQ29udGV4dFdlYlNvY2tldC5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9DU1NDaGFyc2V0UnVs
ZS5pZGwnLAorICAgICAgICAgICAgJ2Nzcy9DU1NGb250RmFjZUxvYWRFdmVudC5pZGwnLAogICAg
ICAgICAgICAgJ2Nzcy9DU1NGb250RmFjZVJ1bGUuaWRsJywKICAgICAgICAgICAgICdjc3MvQ1NT
SG9zdFJ1bGUuaWRsJywKICAgICAgICAgICAgICdjc3MvQ1NTSW1wb3J0UnVsZS5pZGwnLApAQCAt
MjYwLDYgKzI2MSw3IEBACiAgICAgICAgICAgICAnY3NzL0NTU1ZhbHVlTGlzdC5pZGwnLAogICAg
ICAgICAgICAgJ2Nzcy9Db3VudGVyLmlkbCcsCiAgICAgICAgICAgICAnY3NzL0RPTVdpbmRvd0NT
Uy5pZGwnLAorICAgICAgICAgICAgJ2Nzcy9Gb250TG9hZGVyLmlkbCcsCiAgICAgICAgICAgICAn
Y3NzL01lZGlhTGlzdC5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwn
LAogICAgICAgICAgICAgJ2Nzcy9SZWN0LmlkbCcsCkBAIC0xNTc0LDYgKzE1NzYsOCBAQAogICAg
ICAgICAgICAgJ2Nzcy9DU1NEZWZhdWx0U3R5bGVTaGVldHMuaCcsCiAgICAgICAgICAgICAnY3Nz
L0NTU0ZvbnRGYWNlLmNwcCcsCiAgICAgICAgICAgICAnY3NzL0NTU0ZvbnRGYWNlLmgnLAorICAg
ICAgICAgICAgJ2Nzcy9DU1NGb250RmFjZUxvYWRFdmVudC5jcHAnLAorICAgICAgICAgICAgJ2Nz
cy9DU1NGb250RmFjZUxvYWRFdmVudC5oJywKICAgICAgICAgICAgICdjc3MvQ1NTRm9udEZhY2VS
dWxlLmNwcCcsCiAgICAgICAgICAgICAnY3NzL0NTU0ZvbnRGYWNlUnVsZS5oJywKICAgICAgICAg
ICAgICdjc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwJywKQEAgLTE2NTAsNiArMTY1NCw4IEBACiAg
ICAgICAgICAgICAnY3NzL0RvY3VtZW50UnVsZVNldHMuaCcsCiAgICAgICAgICAgICAnY3NzL0Zv
bnRGZWF0dXJlVmFsdWUuY3BwJywKICAgICAgICAgICAgICdjc3MvRm9udEZlYXR1cmVWYWx1ZS5o
JywKKyAgICAgICAgICAgICdjc3MvRm9udExvYWRlci5oJywKKyAgICAgICAgICAgICdjc3MvRm9u
dExvYWRlci5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9Gb250VmFsdWUuY3BwJywKICAgICAgICAg
ICAgICdjc3MvRm9udFZhbHVlLmgnLAogICAgICAgICAgICAgJ2Nzcy9JbnNwZWN0b3JDU1NPTVdy
YXBwZXJzLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCmluZGV4IDg4Yzg0YTdkNjg2ZGNlZGM5ZTU5NGUyMmNmMThiMmE1M2M5ODNjMzEuLmNkNmIx
NjkyY2QyNDM5YzRhYWYxNWViMGJiNzYwZjRhOWI5NGU0NzIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0xODAzLDYgKzE4MDMsNjIgQEAKIAkJ
CQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NTU0ZvbnRG
YWNlTG9hZEV2ZW50LmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJS
ZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJ
CQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1
Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmgiCisJCQkJPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NGb250RmFjZVJ1bGUu
Y3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTU3MDMsNiArNTc1OSw2MiBA
QAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZp
Z3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRm9u
dExvYWRlci5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJE
ZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJ
PFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFz
ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fp
cm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJS
ZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJ
CS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJ
CQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
Lz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJ
CQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
Lz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNGb250TG9hZGVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZp
bGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNHZW9sb2NhdGlvbi5jcHAiCiAJCQkJPgogCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgpAQCAtMzYxMzUsNiArMzYyNDcsMTQgQEAKIAkJCQk+CiAJCQk8L0Zp
bGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXENTU0ZvbnRGYWNlTG9hZEV2
ZW50LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cY3NzXENTU0ZvbnRGYWNlTG9hZEV2ZW50LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZp
bGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xDU1NGb250RmFjZVJ1bGUuY3BwIgogCQkJCT4K
IAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTM4MTcxLDYgKzM4MjkxLDE0IEBACiAJCQkJPgog
CQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xGb250TG9hZGVy
LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
Y3NzXEZvbnRMb2FkZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5cY3NzXEZvbnRWYWx1ZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggZWM0ODIx
NzkzYTM1MmQzZTk2MzJhMjFkODM2M2YzYzNiODEzN2QxOC4uYTlmN2U2MWUyZDZmMjIyMjUxZjIx
NDNhZDZiNWJjODQ0MmQ0YTJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0yNTQsNiArMjU0LDEyIEBACiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIj4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xD
b21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NTU0ZvbnRGYWNlUnVsZS5jcHAi
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBA
IC02NjEsNiArNjY3LDEyIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTRm9udExvYWRlci5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTR2VvbG9jYXRpb24uY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMzg2MCw2ICszODcyLDEyIEBACiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9k
dWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+
CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3Bw
Ij4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cY3NzXENTU0ZvbnRGYWNl
UnVsZS5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CkBAIC00MDY4LDYgKzQwODYsNyBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cY3NzXEZvbnRGZWF0dXJlVmFsdWUuY3BwIiAvPgorICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cY3NzXEZvbnRMb2FkZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cY3NzXEZvbnRWYWx1ZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxjc3NcTGVuZ3RoRnVuY3Rpb25zLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGNzc1xNZWRpYUFsbEluT25lLmNwcCI+CkBAIC04MjM3LDYgKzgyNTYsNyBAQAogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU0NvdW50ZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNDcnlwdG8uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NDaGFy
c2V0UnVsZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NTU0ZvbnRGYWNlTG9h
ZEV2ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQ1NTRm9udEZhY2VSdWxl
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQ1NTSG9zdFJ1bGUuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDU1NJbXBvcnRSdWxlLmgiIC8+CkBAIC04MzE0LDYg
KzgzMzQsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0ZpbGVXcml0ZXIuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNGaWxlV3JpdGVyQ2FsbGJhY2suaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNGaWxlV3JpdGVyU3luYy5oIiAvPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU0ZvbnRMb2FkZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNHZW9sb2NhdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0dl
b3Bvc2l0aW9uLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSGFzaENoYW5nZUV2
ZW50LmgiIC8+CkBAIC05NjE1LDYgKzk2MzYsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cY3NzXENTU0Nyb3NzZmFkZVZhbHVlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llxjc3NcQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cY3NzXENTU0ZvbnRGYWNlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3Nc
Q1NTRm9udEZhY2VMb2FkRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNz
c1xDU1NGb250RmFjZVJ1bGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNzc1xD
U1NGb250RmFjZVNvdXJjZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXENT
U0ZvbnRGYWNlU3JjVmFsdWUuaCIgLz4KQEAgLTk2NjAsNiArOTY4Miw3IEBACiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxjc3NcQ1NTVmFyaWFibGVWYWx1ZS5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cY3NzXERhc2hib2FyZFJlZ2lvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cY3NzXEZvbnRGZWF0dXJlVmFsdWUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGNzc1xGb250TG9hZGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llxjc3NcRm9udFZhbHVlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcTGVu
Z3RoRnVuY3Rpb25zLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcTWVkaWFG
ZWF0dXJlTmFtZXMuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA2YmNmNjQ5YmE0NmEyYTc2NWQxZThi
MGU5NzcyZDBlNjQ5M2VjZWJkLi5jODJiOGJjYTAwYTE4YWM2MDMwNDcwMDFjMmIwMzA0NDBlYjI1
OGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCkBAIC0zODcsNiArMzg3LDkgQEAKICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNDU1NDaGFyc2V0UnVsZS5jcHAiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291
cmNlczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNl
c1xKU0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCI+CisgICAgICA8RmlsdGVyPkRlcml2ZWRTb3Vy
Y2VzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTQ1NTRm9udEZhY2VSdWxlLmNwcCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9G
aWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC02MTgsNiArNjIxLDkgQEAKICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNGaWxlV3JpdGVyU3luYy5jcHAiPgogICAgICAgPEZpbHRlcj5EZXJp
dmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0ZvbnRMb2FkZXIuY3BwIj4KKyAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8
L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNH
ZW9sb2NhdGlvbi5jcHAiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgog
ICAgIDwvQ2xDb21waWxlPgpAQCAtMzU3OSw2ICszNTg1LDkgQEAKICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGNzc1xDU1NGb250RmFjZS5jcHAiPgogICAgICAgPEZpbHRlcj5jc3M8L0ZpbHRl
cj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGNzc1xDU1NG
b250RmFjZUxvYWRFdmVudC5jcHAiPgorICAgICAgPEZpbHRlcj5jc3M8L0ZpbHRlcj4KKyAgICA8
L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGNzc1xDU1NGb250RmFjZVJ1
bGUuY3BwIj4KICAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBA
IC0zNjkzLDYgKzM3MDIsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cY3NzXEZvbnRG
ZWF0dXJlVmFsdWUuY3BwIj4KICAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CiAgICAgPC9DbENv
bXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjc3NcRm9udExvYWRlci5jcHAiPgor
ICAgICAgPEZpbHRlcj5jc3M8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGNzc1xGb250VmFsdWUuY3BwIj4KICAgICAgIDxGaWx0ZXI+Y3NzPC9G
aWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC02OTQyLDYgKzY5NTQsOSBAQAogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU0NTU0NoYXJzZXRSdWxlLmgiPgogICAgICAgPEZpbHRlcj5EZXJp
dmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmgiPgorICAgICAgPEZpbHRlcj5EZXJpdmVk
U291cmNlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU0NTU0ZvbnRGYWNlUnVsZS5oIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTcxNzMsNiArNzE4OCw5IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTRmlsZVdyaXRlclN5bmMuaCI+CiAgICAgICA8RmlsdGVyPkRl
cml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEpTRm9udExvYWRlci5oIj4KKyAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8
L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNH
ZW9sb2NhdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KQEAgLTEwMzIzLDYgKzEwMzQxLDkgQEAKICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGNzc1xDU1NGb250RmFjZS5oIj4KICAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+
CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcQ1NTRm9u
dEZhY2VMb2FkRXZlbnQuaCI+CisgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgorICAgIDwvQ2xJ
bmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY3NzXENTU0ZvbnRGYWNlUnVsZS5o
Ij4KICAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDQ1
OCw2ICsxMDQ3OSw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcRm9udEZlYXR1
cmVWYWx1ZS5oIj4KICAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+
CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjc3NcRm9udExvYWRlci5oIj4KKyAgICAgIDxG
aWx0ZXI+Y3NzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxjc3NcRm9udFZhbHVlLmgiPgogICAgICAgPEZpbHRlcj5jc3M8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAwMWY5MjRkMDhhYWFjYjA3OTNkZTA0MDA1YTgyOWE1ZWE3ZWIz
ZGIyLi42OGU4MjYyMzYzNDFlMDdkMzczNmExZDdlZTYyZTI4OGYxMGM0MzExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDUz
LDYgKzEwNTMsMTYgQEAKIAkJM0ZGRkY5QTkxNTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1Zp
ZXdwb3J0UnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gM0ZGRkY5QTcxNTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5oICov
OyB9OwogCQkzRkZGRjlBRDE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGRkZG
OUFCMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwICovOyB9Owog
CQkzRkZGRjlBRTE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkZGRjlBQzE1OUQ5
QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmggKi87IH07CisJCTQwOUVCREIx
MTZCN0VFNzEwMENCQTNGQyAvKiBDU1NGb250RmFjZUxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDA5RUJEQUUxNkI3RUUyODAwQ0JBM0ZD
IC8qIENTU0ZvbnRGYWNlTG9hZEV2ZW50LmggKi87IH07CisJCTQwOUVCREIyMTZCN0VFNzQwMENC
QTNGQyAvKiBDU1NGb250RmFjZUxvYWRFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MDlFQkRBQzE2QjdFRTFDMDBDQkEzRkMgLyogQ1NTRm9u
dEZhY2VMb2FkRXZlbnQuY3BwICovOyB9OworCQk0MDlFQkRCNDE2QjdFRTg3MDBDQkEzRkMgLyog
Rm9udExvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MDlFQkRCMzE2QjdFRTg3MDBDQkEzRkMgLyogRm9udExvYWRlci5jcHAgKi87IH07CisJ
CTQwOUVCREI2MTZCN0VFQTMwMENCQTNGQyAvKiBGb250TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MDlFQkRCNTE2QjdFRUEzMDBDQkEzRkMg
LyogRm9udExvYWRlci5oICovOyB9OworCQk0MDlFQkRCQTE2QjdGMDQ1MDBDQkEzRkMgLyogSlNG
b250TG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQwOUVCREI5MTZCN0YwNDUwMENCQTNGQyAvKiBKU0ZvbnRMb2FkZXIuY3BwICovOyB9Owor
CQk0MDlFQkRDMDE2QjdGMzhFMDBDQkEzRkMgLyogSlNGb250TG9hZGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MDlFQkRCRjE2QjdGMzhFMDBDQkEz
RkMgLyogSlNGb250TG9hZGVyLmggKi87IH07CisJCTQwOUVCREMzMTZCN0YzQTYwMENCQTNGQyAv
KiBKU0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MDlFQkRDMjE2QjdGM0E2MDBDQkEzRkMgLyogSlNDU1NGb250RmFj
ZUxvYWRFdmVudC5oICovOyB9OworCQk0MDlFQkRDNTE2QjdGM0NBMDBDQkEzRkMgLyogSlNDU1NG
b250RmFjZUxvYWRFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MDlFQkRDNDE2QjdGM0NBMDBDQkEzRkMgLyogSlNDU1NGb250RmFjZUxvYWRF
dmVudC5jcHAgKi87IH07CisJCTQwRUNBRTdFMTZCOEI2NzIwMEMzNjEwMyAvKiBKU0RPTUVycm9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MEVDQUU3
RDE2QjhCNjcyMDBDMzYxMDMgLyogSlNET01FcnJvci5oICovOyB9OworCQk0MEVDQUU4MTE2QjhC
NjhBMDBDMzYxMDMgLyogSlNET01FcnJvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MEVDQUU4MDE2QjhCNjhBMDBDMzYxMDMgLyogSlNET01FcnJv
ci5jcHAgKi87IH07CiAJCTQxMDAyQ0NEMEY2NkVERUYwMDlFNjYwRCAvKiBTY3JpcHRGdW5jdGlv
bkNhbGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
MDAyQ0NCMEY2NkVERUYwMDlFNjYwRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuaCAqLzsgfTsKIAkJ
NDEwMDJDQ0UwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwMkNDQzBGNjZFREVG
MDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmNwcCAqLzsgfTsKIAkJNDEwQjdFNzIxMDQ1
RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMEI3RTcxMTA0NUZBQjAwMEQ4MjI0RiAv
KiBKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgKi87IH07CkBAIC04NDYyLDYgKzg0NzIsMTggQEAK
IAkJM0ZGRkY5QTcxNTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0ZGRkY5QUIxNTlEOUIwNjAwMjBCQkQ1IC8q
IFZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzRkZGRjlBQzE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZXdwb3J0U3R5bGVSZXNvbHZl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MDlFQkRBQzE2QjdFRTFDMDBDQkEz
RkMgLyogQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0MDlFQkRBRTE2QjdFRTI4MDBDQkEzRkMgLyogQ1NTRm9udEZhY2VMb2FkRXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTRm9udEZhY2VMb2FkRXZl
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQUYxNkI3RUU1NzAwQ0JB
M0ZDIC8qIENTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBD
U1NGb250RmFjZUxvYWRFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQw
OUVCREIzMTZCN0VFODcwMENCQTNGQyAvKiBGb250TG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvbnRMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0MDlFQkRCNTE2QjdFRUEzMDBDQkEzRkMgLyogRm9udExvYWRlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250TG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQwOUVCREI3MTZCN0VFQkEwMENCQTNGQyAvKiBGb250TG9hZGVyLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBGb250TG9hZGVyLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDA5RUJEQjkxNkI3RjA0NTAwQ0JBM0ZDIC8qIEpTRm9udExvYWRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZvbnRMb2FkZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MDlFQkRCRjE2QjdGMzhFMDBDQkEzRkMg
LyogSlNGb250TG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRm9u
dExvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MDlFQkRDMjE2QjdGM0E2
MDBDQkEzRkMgLyogSlNDU1NGb250RmFjZUxvYWRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0NTU0ZvbnRGYWNlTG9hZEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQwOUVCREM0MTZCN0YzQ0EwMENCQTNGQyAvKiBKU0NTU0ZvbnRGYWNlTG9h
ZEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1NTRm9u
dEZhY2VMb2FkRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MEVDQUU3
RDE2QjhCNjcyMDBDMzYxMDMgLyogSlNET01FcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0RPTUVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQw
RUNBRTgwMTZCOEI2OEEwMEMzNjEwMyAvKiBKU0RPTUVycm9yLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NRXJyb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTAwMkNDQjBGNjZFREVGMDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdEZ1bmN0aW9uQ2FsbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAwMkNDQzBGNjZFREVGMDA5RTY2MEQg
LyogU2NyaXB0RnVuY3Rpb25DYWxsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNjcmlwdEZ1bmN0aW9uQ2FsbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxMEI3RTcxMTA0NUZBQjAwMEQ4MjI0RiAvKiBKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lc3NhZ2VFdmVudEN1c3Rv
bS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjE4NiwxMCArMTYyMDgsMTYg
QEAKIAkJCQlBOEQwNkIzNzBBMjY1RENEMDA1RTcyMDMgLyogSFRNTE5hbWVzLmggKi8sCiAJCQkJ
NTNFMjlFNUMxNjdBOEExOTAwNTg2RDNEIC8qIEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuY3Bw
ICovLAogCQkJCTUzRTI5RTVEMTY3QThBMTkwMDU4NkQzRCAvKiBJbnRlcm5hbFNldHRpbmdzR2Vu
ZXJhdGVkLmggKi8sCisJCQkJNDBFQ0FFODAxNkI4QjY4QTAwQzM2MTAzIC8qIEpTRE9NRXJyb3Iu
Y3BwICovLAorCQkJCTQwRUNBRTdEMTZCOEI2NzIwMEMzNjEwMyAvKiBKU0RPTUVycm9yLmggKi8s
CiAJCQkJOTM4RTY1RjYwOUYwOTg1RDAwOEE0OEVDIC8qIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFj
dG9yeS5jcHAgKi8sCiAJCQkJOTM4RTY1RjAwOUYwOTg0MDAwOEE0OEVDIC8qIEpTSFRNTEVsZW1l
bnRXcmFwcGVyRmFjdG9yeS5oICovLAogCQkJCTg1NzREMUYxMEFERTYxMjIwMDRDQkExMSAvKiBK
U1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgKi8sCiAJCQkJODU3NEQxRjIwQURFNjEyMjAw
NENCQTExIC8qIEpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggKi8sCisJCQkJNDA5RUJEQzQx
NkI3RjNDQTAwQ0JBM0ZDIC8qIEpTQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwICovLAorCQkJCTQw
OUVCREMyMTZCN0YzQTYwMENCQTNGQyAvKiBKU0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmggKi8sCisJ
CQkJNDA5RUJEQjkxNkI3RjA0NTAwQ0JBM0ZDIC8qIEpTRm9udExvYWRlci5jcHAgKi8sCisJCQkJ
NDA5RUJEQkYxNkI3RjM4RTAwQ0JBM0ZDIC8qIEpTRm9udExvYWRlci5oICovLAogCQkJCUZBQkU3
MkZCMTA1OUMyMTEwMEQ5OTlERCAvKiBNYXRoTUxFbGVtZW50RmFjdG9yeS5jcHAgKi8sCiAJCQkJ
NDRBMjhBQUIxMkRGQjhBQzAwQUU5MjNCIC8qIE1hdGhNTEVsZW1lbnRGYWN0b3J5LmggKi8sCiAJ
CQkJRkFCRTcyRkMxMDU5QzIxMTAwRDk5OUREIC8qIE1hdGhNTE5hbWVzLmNwcCAqLywKQEAgLTIy
MDQyLDYgKzIyMDcwLDkgQEAKIAkJCQk0QTlDQzgxNjE2QkI5QUM2MDBFQzY0NUEgLyogQ1NTRGVm
YXVsdFN0eWxlU2hlZXRzLmggKi8sCiAJCQkJQkM2NEI0Q0QwQ0I0Mjk4QTAwNUYyQjYyIC8qIENT
U0ZvbnRGYWNlLmNwcCAqLywKIAkJCQlCQzY0QjRDRTBDQjQyOThBMDA1RjJCNjIgLyogQ1NTRm9u
dEZhY2UuaCAqLywKKwkJCQk0MDlFQkRBQzE2QjdFRTFDMDBDQkEzRkMgLyogQ1NTRm9udEZhY2VM
b2FkRXZlbnQuY3BwICovLAorCQkJCTQwOUVCREFFMTZCN0VFMjgwMENCQTNGQyAvKiBDU1NGb250
RmFjZUxvYWRFdmVudC5oICovLAorCQkJCTQwOUVCREFGMTZCN0VFNTcwMENCQTNGQyAvKiBDU1NG
b250RmFjZUxvYWRFdmVudC5pZGwgKi8sCiAJCQkJQTgwRTZDQkQwQTE5ODlDQTAwN0ZCOEM1IC8q
IENTU0ZvbnRGYWNlUnVsZS5jcHAgKi8sCiAJCQkJQTgwRTZDRDMwQTE5ODlDQTAwN0ZCOEM1IC8q
IENTU0ZvbnRGYWNlUnVsZS5oICovLAogCQkJCTg1QzU2Q0EzMEFBODlDQTQwMEQ5NTc1NSAvKiBD
U1NGb250RmFjZVJ1bGUuaWRsICovLApAQCAtMjIxNTIsNiArMjIxODMsOSBAQAogCQkJCUZDOUEw
RjcyMTY0MDk0Q0YwMDNENkI4RCAvKiBET01XaW5kb3dDU1MuaCAqLywKIAkJCQlGQzlBMEY3MzE2
NDA5NENGMDAzRDZCOEQgLyogRE9NV2luZG93Q1NTLmlkbCAqLywKIAkJCQk0QTZFOUZDMjEzQzE3
RDFEMDA0NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5oICovLAorCQkJCTQwOUVCREIzMTZCN0VF
ODcwMENCQTNGQyAvKiBGb250TG9hZGVyLmNwcCAqLywKKwkJCQk0MDlFQkRCNTE2QjdFRUEzMDBD
QkEzRkMgLyogRm9udExvYWRlci5oICovLAorCQkJCTQwOUVCREI3MTZCN0VFQkEwMENCQTNGQyAv
KiBGb250TG9hZGVyLmlkbCAqLywKIAkJCQlBODBFNkNDNzBBMTk4OUNBMDA3RkI4QzUgLyogRm9u
dFZhbHVlLmNwcCAqLywKIAkJCQlBODBFNkNDMzBBMTk4OUNBMDA3RkI4QzUgLyogRm9udFZhbHVl
LmggKi8sCiAJCQkJQ0Q0RTBBRkExMUY3QkMyNzAwOUQzODExIC8qIGZ1bGxzY3JlZW4uY3NzICov
LApAQCAtMjM1ODcsNiArMjM2MjEsNyBAQAogCQkJCUFBMjFFQ0NEMEFCRjBGQzYwMDJCODM0QyAv
KiBDU1NDdXJzb3JJbWFnZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QTlDQzgxODE2QkI5
QUM2MDBFQzY0NUEgLyogQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzY0QjRENjBDQjQyOThBMDA1RjJCNjIgLyogQ1NTRm9udEZhY2UuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQwOUVCREIxMTZCN0VFNzEwMENCQTNGQyAvKiBDU1NGb250RmFjZUxvYWRFdmVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRkQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRG
YWNlUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2NEI0RDgwQ0I0Mjk4QTAwNUYyQjYyIC8q
IENTU0ZvbnRGYWNlU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzY0QjREQTBDQjQyOThB
MDA1RjJCNjIgLyogQ1NTRm9udEZhY2VTcmNWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDU0
Myw2ICsyNDU3OCw3IEBACiAJCQkJQjJDM0RBNkEwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRGYW1p
bHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNkU5RkM4MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250
RmVhdHVyZVNldHRpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QTZFOUZDNDEzQzE3RDFEMDA0
NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDA5RUJEQjYx
NkI3RUVBMzAwQ0JBM0ZDIC8qIEZvbnRMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4NDU2
ODA4MTJCOTBEQTYwMDk2MEE5RiAvKiBGb250TWV0cmljcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RjdBMDM0QzQxMjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmllbnRhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjUzMjBENkIxMjJBMjRFOTAwMkQxNDQwIC8qIEZvbnRQbGF0Zm9ybURhdGEuaCBp
biBIZWFkZXJzICovLApAQCAtMjQ5NDMsNiArMjQ5NzksNyBAQAogCQkJCTkzMDcwNURBMDlFMEM5
QkYwMEIxN0ZFNCAvKiBKU0NvdW50ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NUNBMkEyMTMw
MzY3OUQwMEU5OUFEOSAvKiBKU0NyeXB0by5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0NkMxRkIw
QzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTQ2hhcnNldFJ1bGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQwOUVCREMzMTZCN0YzQTYwMENCQTNGQyAvKiBKU0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzQ2QzFGRDBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NGb250RmFj
ZVJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDZDMUZGMEMwRERDOEYwMDIwQ0ZDMyAvKiBK
U0NTU0ltcG9ydFJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDZDMjAxMEMwRERDOEYwMDIw
Q0ZDMyAvKiBKU0NTU01lZGlhUnVsZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDk3Nyw2ICsyNTAx
NCw3IEBACiAJCQkJMUFDMjI2MEQwREI2OUYxOTAwODlCNjY5IC8qIEpTRE9NQXBwbGljYXRpb25D
YWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNCNzBENjQwOUVCMEM3QzAwOUQ4NDY4IC8qIEpT
RE9NQmluZGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MEQ3QzEwRDI5QTQ2MzAwQjk5MThG
IC8qIEpTRE9NQ29yZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDBFQ0FFN0UxNkI4
QjY3MjAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTg5ODc4NUE1
MTIyQ0EyQTcwMDNBQUJEQSAvKiBKU0RPTUZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg5M0M0ODM3MTI0OTU0NzIwMDJCM0Q4NiAvKiBKU0RPTUZpbGVTeXN0ZW1TeW5jLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyRTA4ODhENTExNDg4NDhBMDBBRjQyNjUgLyogSlNET01Gb3JtRGF0YS5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNTAzNiw2ICsyNTA3NCw3IEBACiAJCQkJNDlFRUNGMDMxMDUw
NzBDNDAwMDk5RkFCIC8qIEpTRmxvYXQzMkFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RUJD
NUVCMDEzOEI1MEYyMDBBMENGOEEgLyogSlNGbG9hdDY0QXJyYXkuaCBpbiBIZWFkZXJzICovLAog
CQkJCUI2RDlEMjdCMTRFQUMwODYwMDkwRDc1RSAvKiBKU0ZvY3VzRXZlbnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQwOUVCREMwMTZCN0YzOEUwMENCQTNGQyAvKiBKU0ZvbnRMb2FkZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZEQTE1RUFDMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0dhaW5Ob2RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRTgwREE2NDBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9sb2Nh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU4MERBNjYwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpT
R2VvcG9zaXRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjcyODYsNiArMjczMjUsNyBAQAogCQkJ
CUFBMjFFQ0NBMEFCRjBGQkEwMDJCODM0QyAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTRBOUNDODE3MTZCQjlBQzYwMEVDNjQ1QSAvKiBDU1NEZWZhdWx0U3R5
bGVTaGVldHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2NEI0RDUwQ0I0Mjk4QTAwNUYyQjYy
IC8qIENTU0ZvbnRGYWNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQwOUVCREIyMTZCN0VFNzQw
MENCQTNGQyAvKiBDU1NGb250RmFjZUxvYWRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
ODBFNkNFNzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTRm9udEZhY2VSdWxlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDNjRCNEQ3MENCNDI5OEEwMDVGMkI2MiAvKiBDU1NGb250RmFjZVNvdXJjZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzY0QjREOTBDQjQyOThBMDA1RjJCNjIgLyogQ1NTRm9u
dEZhY2VTcmNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3ODkxLDYgKzI3OTMxLDcgQEAK
IAkJCQk3MjYyNkUwMjBFRjAyMkZFMDBBMDdFMjAgLyogRm9udEZhc3RQYXRoLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTRBNkU5RkM3MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVNldHRp
bmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTRBNkU5RkMzMTNDMTdEMUQwMDQ2QTdGOCAvKiBG
b250RmVhdHVyZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQwOUVCREI0MTZCN0VFODcw
MENCQTNGQyAvKiBGb250TG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzgwMEQw
MEE1QzEwMDMwMDc0RCAvKiBGb250TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODRCNjI2ODUx
MzMxMzhGOTAwOTVBNDg5IC8qIEZvbnRQbGF0Zm9ybURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjUzMjBENkMxMjJBMjRFOTAwMkQxNDQwIC8qIEZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbSBp
biBTb3VyY2VzICovLApAQCAtMjgyNTgsNiArMjgyOTksNyBAQAogCQkJCTk3NUNBMkExMTMwMzY3
OUQwMEU5OUFEOSAvKiBKU0NyeXB0by5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyMDlCNDU2QjE2
Nzk2QTdFMDBFNTRFNEUgLyogSlNDcnlwdG9DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkM0NkMxRkEwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTQ2hhcnNldFJ1bGUuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDA5RUJEQzUxNkI3RjNDQTAwQ0JBM0ZDIC8qIEpTQ1NTRm9udEZhY2VMb2Fk
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0NkMxRkMwQzBEREM4RjAwMjBDRkMzIC8q
IEpTQ1NTRm9udEZhY2VSdWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQUQxNDkxMTI5NzMz
NzQwMEFDQTk4OSAvKiBKU0NTU0ZvbnRGYWNlUnVsZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzQ2QzFGRTBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NJbXBvcnRSdWxlLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMjgzMDcsNiArMjgzNDksNyBAQAogCQkJCTFBQzIyNjBDMERCNjlGMTkw
MDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTNCNzBENjMwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTRE9NQmluZGluZy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzYwRDdDMDBEMjlBNDYzMDBCOTkxOEYgLyogSlNET01Db3JlRXhjZXB0aW9uLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTQwRUNBRTgxMTZCOEI2OEEwMEMzNjEwMyAvKiBKU0RPTUVy
cm9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5ODc4NUE0MTIyQ0EyQTcwMDNBQUJEQSAvKiBK
U0RPTUZpbGVTeXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODkzQzQ4MzYxMjQ5NTQ3MjAw
MkIzRDg2IC8qIEpTRE9NRmlsZVN5c3RlbVN5bmMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkUw
ODg4RDQxMTQ4ODQ4QTAwQUY0MjY1IC8qIEpTRE9NRm9ybURhdGEuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yODM4Myw2ICsyODQyNiw3IEBACiAJCQkJNDlFRUNGMDIxMDUwNzBDNDAwMDk5RkFCIC8q
IEpTRmxvYXQzMkFycmF5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFQkM1RUFGMTM4QjUwRjIw
MEEwQ0Y4QSAvKiBKU0Zsb2F0NjRBcnJheS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNkQ5RDI3
QzE0RUFDMDg2MDA5MEQ3NUUgLyogSlNGb2N1c0V2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTQwOUVCREJBMTZCN0YwNDUwMENCQTNGQyAvKiBKU0ZvbnRMb2FkZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRkRBMTVFQUIxMkIwM0VFMTAwM0E1ODNBIC8qIEpTR2Fpbk5vZGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRkU4MERBNjMwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU4MEQ3QUIwRTlDMUVEMjAwMEQ2Rjc1IC8qIEpTR2Vv
bG9jYXRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNEaWN0aW9uYXJ5LmNwcAppbmRleCBmOTgwNGRmNmEyMWFkNWMyZTkxZWYwMTEwMjE1
YWYwNjRlN2M5YjZiLi5mOGU1OGNiNDdlZTdmY2ZiNDAxYjhhMDdhMWE4MTg5YzBhMzc2ZDYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKQEAgLTI4LDYg
KzI4LDggQEAKIAogI2luY2x1ZGUgIkFycmF5VmFsdWUuaCIKICNpbmNsdWRlICJEaWN0aW9uYXJ5
LmgiCisjaW5jbHVkZSAiSlNDU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJKU0RPTUVycm9y
LmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIKICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0Lmgi
CiAjaW5jbHVkZSAiSlNNZXNzYWdlUG9ydEN1c3RvbS5oIgpAQCAtMzUsNiArMzcsNyBAQAogI2lu
Y2x1ZGUgIkpTU3RvcmFnZS5oIgogI2luY2x1ZGUgIkpTVHJhY2tDdXN0b20uaCIKICNpbmNsdWRl
ICJKU1VpbnQ4QXJyYXkuaCIKKyNpbmNsdWRlICJKU1ZvaWRDYWxsYmFjay5oIgogI2luY2x1ZGUg
IlNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTIyNiw2ICsyMjksMjYgQEAgdm9pZCBKU0RpY3Rpb25h
cnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVm
UHRyPE1lZGkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCit2b2lk
IEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVl
IHZhbHVlLCBSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiYgcmVzdWx0KQoreworICAgIHJlc3VsdCA9
IHRvQ1NTRm9udEZhY2VSdWxlKHZhbHVlKTsKK30KKwordm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZl
cnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPERPTUVy
cm9yPiYgcmVzdWx0KQoreworICAgIHJlc3VsdCA9IHRvRE9NRXJyb3IodmFsdWUpOworfQorCit2
b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6
OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiByZXN1bHQpCit7CisgICAgaWYg
KCF2YWx1ZS5pc0Z1bmN0aW9uKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHJlc3VsdCA9IEpT
Vm9pZENhbGxiYWNrOjpjcmVhdGUoYXNPYmplY3QodmFsdWUpLCBqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpKTsKK30KKyNlbmRpZgorCiBib29s
IEpTRGljdGlvbmFyeTo6Z2V0V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKGNvbnN0IFN0cmluZyYg
cHJvcGVydHlOYW1lLCBTdHJpbmcmIHJlc3VsdCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWxp
ZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFy
eS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmgKaW5kZXggNzI5
Mjc2NGIxZjMzZDE4ZWE0YmFlMmFiNGFjN2Q5MmE0MDljMTYwOS4uMmJlMTBlZTdkMDIwYzU4OTk5
NjVlZWU1YTZlMzM1NTNmNjIyN2M2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNEaWN0aW9uYXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
aWN0aW9uYXJ5LmgKQEAgLTM2LDcgKzM2LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQXJyYXlWYWx1ZTsKK2NsYXNzIENTU0ZvbnRGYWNlUnVsZTsKIGNsYXNzIERpY3Rpb25hcnk7
CitjbGFzcyBET01FcnJvcjsKIGNsYXNzIERPTVdpbmRvdzsKIGNsYXNzIEV2ZW50VGFyZ2V0Owog
Y2xhc3MgTWVkaWFLZXlFcnJvcjsKQEAgLTQ2LDYgKzQ4LDcgQEAgY2xhc3MgU2NyaXB0VmFsdWU7
CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBTdG9yYWdlOwogY2xhc3MgVHJh
Y2tCYXNlOworY2xhc3MgVm9pZENhbGxiYWNrOwogCiBjbGFzcyBKU0RpY3Rpb25hcnkgewogcHVi
bGljOgpAQCAtMTE5LDYgKzEyMiwxMSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCiAgICAgc3RhdGljIHZvaWQgY29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U1ZhbHVlLCBSZWZQdHI8TWVkaWFTdHJlYW0+JiByZXN1bHQpOwogI2VuZGlmCisjaWYgRU5BQkxF
KEZPTlRfTE9BRF9FVkVOVFMpCisgICAgc3RhdGljIHZvaWQgY29udmVydFZhbHVlKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiYgcmVzdWx0KTsK
KyAgICBzdGF0aWMgdm9pZCBjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFs
dWUsIFJlZlB0cjxET01FcnJvcj4mIHJlc3VsdCk7CisgICAgc3RhdGljIHZvaWQgY29udmVydFZh
bHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYg
cmVzdWx0KTsKKyNlbmRpZgogCiAgICAgSlNDOjpFeGVjU3RhdGUqIG1fZXhlYzsKICAgICBKU0M6
OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiBtX2luaXRpYWxpemVyT2JqZWN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFyeS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmNwcAppbmRleCBiMTg2MmZiYjIwYzg2YjU2Y2NjMWFj
ZTI5OTk3NTY3MDYyYTUyZjBiLi5iM2I3MDIyYTA5MzU3NDA4NmI4Y2FmZTNiOWI0OTk1ZWY5ZjQ0
MWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmNwcApAQCAtNjQs
NiArNjQsMTIgQEAKICNpbmNsdWRlICJWOE1lZGlhU3RyZWFtLmgiCiAjZW5kaWYKIAorI2lmIEVO
QUJMRShGT05UX0xPQURfRVZFTlRTKQorI2luY2x1ZGUgIlY4Q1NTRm9udEZhY2VSdWxlLmgiCisj
aW5jbHVkZSAiVjhET01FcnJvci5oIgorI2luY2x1ZGUgIlY4Vm9pZENhbGxiYWNrLmgiCisjZW5k
aWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBEaWN0aW9uYXJ5OjpEaWN0aW9uYXJ5KCkKQEAg
LTQ5OCw2ICs1MDQsNTUgQEAgYm9vbCBEaWN0aW9uYXJ5OjpnZXQoY29uc3QgU3RyaW5nJiBrZXks
IEFycmF5VmFsdWUmIHZhbHVlKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCisjaWYgRU5B
QkxFKEZPTlRfTE9BRF9FVkVOVFMpCitib29sIERpY3Rpb25hcnk6OmdldChjb25zdCBTdHJpbmcm
IGtleSwgUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4mIHZhbHVlKSBjb25zdAoreworICAgIHY4OjpM
b2NhbDx2ODo6VmFsdWU+IHY4VmFsdWU7CisgICAgaWYgKCFnZXRLZXkoa2V5LCB2OFZhbHVlKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQ1NTRm9udEZhY2VSdWxlKiBzb3VyY2UgPSAw
OworICAgIGlmICh2OFZhbHVlLT5Jc09iamVjdCgpKSB7CisgICAgICAgIHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gd3JhcHBlciA9IHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QodjhWYWx1ZSk7
CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gZm9udGZhY2UgPSB3cmFwcGVyLT5GaW5k
SW5zdGFuY2VJblByb3RvdHlwZUNoYWluKFY4Q1NTRm9udEZhY2VSdWxlOjpHZXRUZW1wbGF0ZSht
X2lzb2xhdGUsIHdvcmxkVHlwZShtX2lzb2xhdGUpKSk7CisgICAgICAgIGlmICghZm9udGZhY2Uu
SXNFbXB0eSgpKQorICAgICAgICAgICAgc291cmNlID0gVjhDU1NGb250RmFjZVJ1bGU6OnRvTmF0
aXZlKGZvbnRmYWNlKTsKKyAgICB9CisgICAgdmFsdWUgPSBzb3VyY2U7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK2Jvb2wgRGljdGlvbmFyeTo6Z2V0KGNvbnN0IFN0cmluZyYga2V5LCBSZWZQdHI8
RE9NRXJyb3I+JiB2YWx1ZSkgY29uc3QKK3sKKyAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiB2OFZh
bHVlOworICAgIGlmICghZ2V0S2V5KGtleSwgdjhWYWx1ZSkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIERPTUVycm9yKiBlcnJvciA9IDA7CisgICAgaWYgKHY4VmFsdWUtPklzT2JqZWN0
KCkpIHsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2OFZhbHVlKTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiBkb21FcnJvciA9IHdyYXBwZXItPkZpbmRJbnN0YW5jZUluUHJvdG90eXBlQ2hhaW4oVjhE
T01FcnJvcjo6R2V0VGVtcGxhdGUobV9pc29sYXRlLCB3b3JsZFR5cGUobV9pc29sYXRlKSkpOwor
ICAgICAgICBpZiAoIWRvbUVycm9yLklzRW1wdHkoKSkKKyAgICAgICAgICAgIGVycm9yID0gVjhE
T01FcnJvcjo6dG9OYXRpdmUoZG9tRXJyb3IpOworICAgIH0KKyAgICB2YWx1ZSA9IGVycm9yOwor
ICAgIHJldHVybiB0cnVlOworfQorCitib29sIERpY3Rpb25hcnk6OmdldChjb25zdCBTdHJpbmcm
IGtleSwgUmVmUHRyPFZvaWRDYWxsYmFjaz4mIHZhbHVlKSBjb25zdAoreworICAgIHY4OjpMb2Nh
bDx2ODo6VmFsdWU+IHY4VmFsdWU7CisgICAgaWYgKCFnZXRLZXkoa2V5LCB2OFZhbHVlKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCF2OFZhbHVlLT5Jc0Z1bmN0aW9uKCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHZhbHVlID0gVjhWb2lkQ2FsbGJhY2s6OmNyZWF0
ZSh2OFZhbHVlLCBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIHJldHVybiB0cnVl
OworfQorI2VuZGlmCisKIGJvb2wgRGljdGlvbmFyeTo6Z2V0T3duUHJvcGVydGllc0FzU3RyaW5n
SGFzaE1hcChIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgaGFzaE1hcCkgY29uc3QKIHsKICAgICBp
ZiAoIWlzT2JqZWN0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9E
aWN0aW9uYXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmgKaW5k
ZXggNzY1MDI5NWMzMjFmYjRmZDg1NmU0NzRiYjliYWZkOTMzZDBkNzdmNi4uZDRmNjQ3MjgxZmY2
NjVkODIxNDVkN2YxZjkwMmFhY2ViYjBlYzAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvRGljdGlvbmFyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L0RpY3Rpb25hcnkuaApAQCAtMzksNiArMzksOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBBcnJheVZhbHVlOworY2xhc3MgQ1NTRm9udEZhY2VSdWxlOworY2xhc3MgRE9NRXJyb3I7
CiBjbGFzcyBET01XaW5kb3c7CiBjbGFzcyBJREJLZXlSYW5nZTsKIGNsYXNzIE1lZGlhS2V5RXJy
b3I7CkBAIC00OCw2ICs1MCw3IEBAIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0OwogY2xh
c3MgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0OwogY2xhc3MgU3RvcmFnZTsKIGNsYXNzIFRy
YWNrQmFzZTsKK2NsYXNzIFZvaWRDYWxsYmFjazsKIAogY2xhc3MgRGljdGlvbmFyeSB7CiBwdWJs
aWM6CkBAIC05Myw2ICs5NiwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBnZXQoY29uc3QgU3RyaW5n
JiwgRGljdGlvbmFyeSYpIGNvbnN0OwogICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIFZlY3Rv
cjxTdHJpbmc+JikgY29uc3Q7CiAgICAgYm9vbCBnZXQoY29uc3QgU3RyaW5nJiwgQXJyYXlWYWx1
ZSYpIGNvbnN0OworI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQorICAgIGJvb2wgZ2V0KGNv
bnN0IFN0cmluZyYsIFJlZlB0cjxDU1NGb250RmFjZVJ1bGU+JikgY29uc3Q7CisgICAgYm9vbCBn
ZXQoY29uc3QgU3RyaW5nJiwgUmVmUHRyPERPTUVycm9yPiYpIGNvbnN0OworICAgIGJvb2wgZ2V0
KGNvbnN0IFN0cmluZyYsIFJlZlB0cjxWb2lkQ2FsbGJhY2s+JikgY29uc3Q7CisjZW5kaWYKIAog
ICAgIGJvb2wgZ2V0T3duUHJvcGVydGllc0FzU3RyaW5nSGFzaE1hcChIYXNoTWFwPFN0cmluZywg
U3RyaW5nPiYpIGNvbnN0OwogICAgIGJvb2wgZ2V0T3duUHJvcGVydHlOYW1lcyhWZWN0b3I8U3Ry
aW5nPiYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKaW5kZXggMjc3ZmJkOTI4
OWY2ZDc3ODFmODFhYzM0OTQ5ZTcyZjI4NjQzMDVhZC4uOTlhYzQxMmVkZGQwY2VhYWY0MjAwODU1
MjQ5M2MwMmE1YjA1MDMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
YWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCkBAIC0yOSw3
ICsyOSwxMCBAQAogI2luY2x1ZGUgIkNTU0ZvbnRGYWNlU291cmNlLmgiCiAjaW5jbHVkZSAiQ1NT
Rm9udFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiQ1NTU2VnbWVudGVkRm9udEZhY2UuaCIKKyNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUg
IkZvbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5j
bHVkZSAiU2ltcGxlRm9udERhdGEuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODEsMTQg
Kzg0LDI4IEBAIHZvaWQgQ1NTRm9udEZhY2U6OmZvbnRMb2FkZWQoQ1NTRm9udEZhY2VTb3VyY2Uq
IHNvdXJjZSkKICAgICBpZiAobV9zZWdtZW50ZWRGb250RmFjZXMuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBIYXNoU2V0PENTU1NlZ21lbnRlZEZvbnRGYWNlKj46Oml0ZXJhdG9y
IGVuZCA9IG1fc2VnbWVudGVkRm9udEZhY2VzLmVuZCgpOwotICAgIGZvciAoSGFzaFNldDxDU1NT
ZWdtZW50ZWRGb250RmFjZSo+OjppdGVyYXRvciBpdCA9IG1fc2VnbWVudGVkRm9udEZhY2VzLmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgKCppdCktPmZvbnRMb2FkZWQodGhpcyk7
Ci0KICAgICAvLyBVc2Ugb25lIG9mIHRoZSBDU1NTZWdtZW50ZWRGb250RmFjZXMnIGZvbnQgc2Vs
ZWN0b3IuIFRoZXkgYWxsIGhhdmUKICAgICAvLyB0aGUgc2FtZSBmb250IHNlbGVjdG9yLCBzbyBp
dCdzIHdhc3RlZnVsIHRvIHN0b3JlIGl0IGluIHRoZSBDU1NGb250RmFjZS4KICAgICBDU1NGb250
U2VsZWN0b3IqIGZvbnRTZWxlY3RvciA9ICgqbV9zZWdtZW50ZWRGb250RmFjZXMuYmVnaW4oKSkt
PmZvbnRTZWxlY3RvcigpOwogICAgIGZvbnRTZWxlY3Rvci0+Zm9udExvYWRlZCgpOworCisjaWYg
RU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OmZvbnRMb2FkRXZlbnRzRW5hYmxlZCgpICYmIG1fbG9hZFN0YXRlID09IExvYWRpbmcpIHsKKyAg
ICAgICAgaWYgKHNvdXJjZS0+ZW5zdXJlRm9udERhdGEoKSkKKyAgICAgICAgICAgIG5vdGlmeUZv
bnRMb2FkZXIoTG9hZGVkKTsKKyAgICAgICAgZWxzZSBpZiAoIWlzVmFsaWQoKSkKKyAgICAgICAg
ICAgIG5vdGlmeUZvbnRMb2FkZXIoRXJyb3IpOworICAgIH0KKyNlbmRpZgorCisgICAgSGFzaFNl
dDxDU1NTZWdtZW50ZWRGb250RmFjZSo+OjppdGVyYXRvciBlbmQgPSBtX3NlZ21lbnRlZEZvbnRG
YWNlcy5lbmQoKTsKKyAgICBmb3IgKEhhc2hTZXQ8Q1NTU2VnbWVudGVkRm9udEZhY2UqPjo6aXRl
cmF0b3IgaXQgPSBtX3NlZ21lbnRlZEZvbnRGYWNlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
CisgICAgICAgICgqaXQpLT5mb250TG9hZGVkKHRoaXMpOworCisjaWYgRU5BQkxFKEZPTlRfTE9B
RF9FVkVOVFMpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmZvbnRMb2FkRXZlbnRz
RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlMb2FkaW5nRG9uZSgpOworI2VuZGlmCiB9CiAKIFBh
c3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IENTU0ZvbnRGYWNlOjpnZXRGb250RGF0YShjb25zdCBG
b250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29s
IHN5bnRoZXRpY0l0YWxpYykKQEAgLTEwMCwxNyArMTE3LDY2IEBAIFBhc3NSZWZQdHI8U2ltcGxl
Rm9udERhdGE+IENTU0ZvbnRGYWNlOjpnZXRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24m
IGZvbnRECiAgICAgQVNTRVJUKCFtX3NlZ21lbnRlZEZvbnRGYWNlcy5pc0VtcHR5KCkpOwogICAg
IENTU0ZvbnRTZWxlY3RvciogZm9udFNlbGVjdG9yID0gKCptX3NlZ21lbnRlZEZvbnRGYWNlcy5i
ZWdpbigpKS0+Zm9udFNlbGVjdG9yKCk7CiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykK
KyAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6Zm9udExvYWRFdmVudHNFbmFibGVkKCkg
JiYgbV9sb2FkU3RhdGUgPT0gTm90TG9hZGVkKQorICAgICAgICBub3RpZnlGb250TG9hZGVyKExv
YWRpbmcpOworI2VuZGlmCisKICAgICBzaXplX3Qgc2l6ZSA9IG1fc291cmNlcy5zaXplKCk7CiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgaWYgKFJlZlB0
cjxTaW1wbGVGb250RGF0YT4gcmVzdWx0ID0gbV9zb3VyY2VzW2ldLT5nZXRGb250RGF0YShmb250
RGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgZm9udFNlbGVjdG9y
KSkgewogICAgICAgICAgICAgbV9hY3RpdmVTb3VyY2UgPSBtX3NvdXJjZXNbaV0uZ2V0KCk7Cisj
aWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisgICAgICAgICAgICBpZiAoUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6Zm9udExvYWRFdmVudHNFbmFibGVkKCkgJiYgbV9sb2FkU3RhdGUgPT0gTG9h
ZGluZyAmJiBtX3NvdXJjZXNbaV0tPmlzTG9hZGVkKCkpIHsKKyAgICAgICAgICAgICAgICBub3Rp
ZnlGb250TG9hZGVyKExvYWRlZCk7CisgICAgICAgICAgICAgICAgbm90aWZ5TG9hZGluZ0RvbmUo
KTsKKyAgICAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxl
YXNlKCk7CiAgICAgICAgIH0KICAgICB9CiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykK
KyAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6Zm9udExvYWRFdmVudHNFbmFibGVkKCkg
JiYgbV9sb2FkU3RhdGUgPT0gTG9hZGluZykgeworICAgICAgICBub3RpZnlGb250TG9hZGVyKEVy
cm9yKTsKKyAgICAgICAgbm90aWZ5TG9hZGluZ0RvbmUoKTsKKyAgICB9CisjZW5kaWYKICAgICBy
ZXR1cm4gMDsKIH0KIAorI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQordm9pZCBDU1NGb250
RmFjZTo6bm90aWZ5Rm9udExvYWRlcihMb2FkU3RhdGUgbmV3U3RhdGUpCit7CisgICAgbV9sb2Fk
U3RhdGUgPSBuZXdTdGF0ZTsKKworICAgIERvY3VtZW50KiBkb2N1bWVudCA9ICgqbV9zZWdtZW50
ZWRGb250RmFjZXMuYmVnaW4oKSktPmZvbnRTZWxlY3RvcigpLT5kb2N1bWVudCgpOworICAgIGlm
ICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIHN3aXRjaCAobmV3U3RhdGUpIHsK
KyAgICBjYXNlIExvYWRpbmc6CisgICAgICAgIGRvY3VtZW50LT5mb250bG9hZGVyKCktPmJlZ2lu
Rm9udExvYWRpbmcobV9ydWxlLmdldCgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMb2Fk
ZWQ6CisgICAgICAgIGRvY3VtZW50LT5mb250bG9hZGVyKCktPmZvbnRMb2FkZWQobV9ydWxlLmdl
dCgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBFcnJvcjoKKyAgICAgICAgZG9jdW1lbnQt
PmZvbnRsb2FkZXIoKS0+bG9hZEVycm9yKG1fcnVsZS5nZXQoKSwgbV9hY3RpdmVTb3VyY2UpOwor
ICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9Cit9CisK
K3ZvaWQgQ1NTRm9udEZhY2U6Om5vdGlmeUxvYWRpbmdEb25lKCkKK3sKKyAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSAoKm1fc2VnbWVudGVkRm9udEZhY2VzLmJlZ2luKCkpLT5mb250U2VsZWN0b3Io
KS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoZG9jdW1lbnQpCisgICAgICAgIGRvY3VtZW50LT5mb250
bG9hZGVyKCktPmxvYWRpbmdEb25lKCk7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShTVkdfRk9O
VFMpCiBib29sIENTU0ZvbnRGYWNlOjpoYXNTVkdGb250RmFjZVNvdXJjZSgpIGNvbnN0CiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmFjZS5oCmluZGV4IGUzZjY0ODEwN2M2MTdlOGFmMjM1NWQ4ZjExNDEw
YTFhNzcxODc0ZTcuLjRlZDk0NmY5Nzk4ZWMwNDcyODI5NWY5YTBmODI3ZWE2MzIzMjllNmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5oCkBAIC0yNiw2ICsyNiw4IEBACiAjaWZuZGVmIENTU0Zv
bnRGYWNlX2gKICNkZWZpbmUgQ1NTRm9udEZhY2VfaAogCisjaW5jbHVkZSAiQ1NTRm9udEZhY2VS
dWxlLmgiCisjaW5jbHVkZSAiQ1NTRm9udEZhY2VTb3VyY2UuaCIKICNpbmNsdWRlICJGb250VHJh
aXRzTWFzay5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KQEAgLTM2LDE0ICszOCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNz
IENTU0ZvbnRGYWNlU291cmNlOwogY2xhc3MgQ1NTU2VnbWVudGVkRm9udEZhY2U7CiBjbGFzcyBG
b250RGVzY3JpcHRpb247CiBjbGFzcyBTaW1wbGVGb250RGF0YTsKIAogY2xhc3MgQ1NTRm9udEZh
Y2UgOiBwdWJsaWMgUmVmQ291bnRlZDxDU1NGb250RmFjZT4gewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPENTU0ZvbnRGYWNlPiBjcmVhdGUoRm9udFRyYWl0c01hc2sgdHJhaXRzTWFz
aywgYm9vbCBpc0xvY2FsRmFsbGJhY2sgPSBmYWxzZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENT
U0ZvbnRGYWNlKHRyYWl0c01hc2ssIGlzTG9jYWxGYWxsYmFjaykpOyB9CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8Q1NTRm9udEZhY2U+IGNyZWF0ZShGb250VHJhaXRzTWFzayB0cmFpdHNNYXNrLCBQ
YXNzUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4gcnVsZSwgYm9vbCBpc0xvY2FsRmFsbGJhY2sgPSBm
YWxzZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENTU0ZvbnRGYWNlKHRyYWl0c01hc2ssIHJ1bGUs
IGlzTG9jYWxGYWxsYmFjaykpOyB9CiAKICAgICBGb250VHJhaXRzTWFzayB0cmFpdHNNYXNrKCkg
Y29uc3QgeyByZXR1cm4gbV90cmFpdHNNYXNrOyB9CiAKQEAgLTg1LDEyICs4NiwyMiBAQCBwdWJs
aWM6CiAgICAgYm9vbCBoYXNTVkdGb250RmFjZVNvdXJjZSgpIGNvbnN0OwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKKyAgICBlbnVtIExvYWRTdGF0ZSB7IE5vdExvYWRl
ZCwgTG9hZGluZywgTG9hZGVkLCBFcnJvciB9OworICAgIExvYWRTdGF0ZSBsb2FkU3RhdGUoKSBj
b25zdCB7IHJldHVybiBtX2xvYWRTdGF0ZTsgfQorI2VuZGlmCisKIHByaXZhdGU6Ci0gICAgQ1NT
Rm9udEZhY2UoRm9udFRyYWl0c01hc2sgdHJhaXRzTWFzaywgYm9vbCBpc0xvY2FsRmFsbGJhY2sp
CisgICAgQ1NTRm9udEZhY2UoRm9udFRyYWl0c01hc2sgdHJhaXRzTWFzaywgUGFzc1JlZlB0cjxD
U1NGb250RmFjZVJ1bGU+IHJ1bGUsIGJvb2wgaXNMb2NhbEZhbGxiYWNrKQogICAgICAgICA6IG1f
dHJhaXRzTWFzayh0cmFpdHNNYXNrKQogICAgICAgICAsIG1fYWN0aXZlU291cmNlKDApCiAgICAg
ICAgICwgbV9pc0xvY2FsRmFsbGJhY2soaXNMb2NhbEZhbGxiYWNrKQorI2lmIEVOQUJMRShGT05U
X0xPQURfRVZFTlRTKQorICAgICAgICAsIG1fbG9hZFN0YXRlKGlzTG9jYWxGYWxsYmFjayA/IExv
YWRlZCA6IE5vdExvYWRlZCkKKyAgICAgICAgLCBtX3J1bGUocnVsZSkKKyNlbmRpZgogICAgIHsK
KyAgICAgICAgVU5VU0VEX1BBUkFNKHJ1bGUpOwogICAgIH0KIAogICAgIEZvbnRUcmFpdHNNYXNr
IG1fdHJhaXRzTWFzazsKQEAgLTk5LDYgKzExMCwxMiBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxP
d25QdHI8Q1NTRm9udEZhY2VTb3VyY2U+ID4gbV9zb3VyY2VzOwogICAgIENTU0ZvbnRGYWNlU291
cmNlKiBtX2FjdGl2ZVNvdXJjZTsKICAgICBib29sIG1faXNMb2NhbEZhbGxiYWNrOworI2lmIEVO
QUJMRShGT05UX0xPQURfRVZFTlRTKQorICAgIExvYWRTdGF0ZSBtX2xvYWRTdGF0ZTsKKyAgICBS
ZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiBtX3J1bGU7CisgICAgdm9pZCBub3RpZnlGb250TG9hZGVy
KExvYWRTdGF0ZSk7CisgICAgdm9pZCBub3RpZnlMb2FkaW5nRG9uZSgpOworI2VuZGlmCiB9Owog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mZDFiNTNiMmUxZTJjOTkzMWEyN2VmZWJjNjQ3M2YxNGUzOGZkYTlmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcApAQCAt
MCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNTU0ZvbnRGYWNlTG9h
ZEV2ZW50LmgiCisKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitDU1NGb250RmFjZUxvYWRFdmVudDo6Q1NTRm9udEZhY2VMb2FkRXZlbnQoKQor
eworfQorCitDU1NGb250RmFjZUxvYWRFdmVudDo6Q1NTRm9udEZhY2VMb2FkRXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlLCBQYXNzUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4gZm9udGZhY2Us
IFBhc3NSZWZQdHI8RE9NRXJyb3I+IGVycm9yKQorICAgIDogRXZlbnQodHlwZSwgZmFsc2UsIGZh
bHNlKQorICAgICwgbV9mb250ZmFjZShmb250ZmFjZSkKKyAgICAsIG1fZXJyb3IoZXJyb3IpCit7
Cit9CisKK0NTU0ZvbnRGYWNlTG9hZEV2ZW50OjpDU1NGb250RmFjZUxvYWRFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IENTU0ZvbnRGYWNlTG9hZEV2ZW50SW5pdCYgaW5pdGlh
bGl6ZXIpCisgICAgOiBFdmVudCh0eXBlLCBpbml0aWFsaXplcikKKyAgICAsIG1fZm9udGZhY2Uo
aW5pdGlhbGl6ZXIuZm9udGZhY2UpCisgICAgLCBtX2Vycm9yKGluaXRpYWxpemVyLmVycm9yKQor
eworfQorCitDU1NGb250RmFjZUxvYWRFdmVudDo6fkNTU0ZvbnRGYWNlTG9hZEV2ZW50KCkKK3sK
K30KKworY29uc3QgQXRvbWljU3RyaW5nJiBDU1NGb250RmFjZUxvYWRFdmVudDo6aW50ZXJmYWNl
TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5pbnRlcmZhY2VGb3JDU1NG
b250RmFjZUxvYWRFdmVudDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFj
ZUxvYWRFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwODQyM2ZmZDQ3Y2I4ODE0NTRmNjMyNzAwZTdjOGI4
MjkyZmUyYjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZh
Y2VMb2FkRXZlbnQuaApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRT
KQorCisjaWZuZGVmIENTU0ZvbnRGYWNlTG9hZEV2ZW50X2gKKyNkZWZpbmUgQ1NTRm9udEZhY2VM
b2FkRXZlbnRfaAorCisjaW5jbHVkZSAiQ1NTRm9udEZhY2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NT
VmFsdWUuaCIKKyNpbmNsdWRlICJET01FcnJvci5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5j
bHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBDU1NGb250
RmFjZUxvYWRFdmVudEluaXQgOiBwdWJsaWMgRXZlbnRJbml0IHsKKyAgICBSZWZQdHI8Q1NTRm9u
dEZhY2VSdWxlPiBmb250ZmFjZTsKKyAgICBSZWZQdHI8RE9NRXJyb3I+IGVycm9yOworfTsKKwor
Y2xhc3MgQ1NTRm9udEZhY2VMb2FkRXZlbnQgOiBwdWJsaWMgRXZlbnQgeworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPENTU0ZvbnRGYWNlTG9hZEV2ZW50PiBjcmVhdGUoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmPENTU0ZvbnRGYWNlTG9hZEV2ZW50PihuZXcgQ1NTRm9u
dEZhY2VMb2FkRXZlbnQoKSk7CisgICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTRm9u
dEZhY2VMb2FkRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IENT
U0ZvbnRGYWNlTG9hZEV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWY8Q1NTRm9udEZhY2VMb2FkRXZlbnQ+KG5ldyBDU1NGb250RmFjZUxvYWRFdmVu
dCh0eXBlLCBpbml0aWFsaXplcikpOworICAgIH0KKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPENT
U0ZvbnRGYWNlTG9hZEV2ZW50PiBjcmVhdGVGb3JGb250RmFjZVJ1bGUoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBQYXNzUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4gcnVsZSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZjxDU1NGb250RmFjZUxvYWRFdmVudD4obmV3IENTU0ZvbnRGYWNl
TG9hZEV2ZW50KHR5cGUsIHJ1bGUsIDApKTsKKyAgICB9CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxDU1NGb250RmFjZUxvYWRFdmVudD4gY3JlYXRlRm9yRXJyb3IoUGFzc1JlZlB0cjxDU1NGb250
RmFjZVJ1bGU+IHJ1bGUsIFBhc3NSZWZQdHI8RE9NRXJyb3I+IGVycm9yKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmPENTU0ZvbnRGYWNlTG9hZEV2ZW50PihuZXcgQ1NTRm9udEZhY2VM
b2FkRXZlbnQoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIHJ1bGUsIGVycm9yKSk7CisgICAgfQor
CisgICAgdmlydHVhbCB+Q1NTRm9udEZhY2VMb2FkRXZlbnQoKTsKKworICAgIENTU0ZvbnRGYWNl
UnVsZSogZm9udGZhY2UoKSBjb25zdCB7IHJldHVybiBtX2ZvbnRmYWNlLmdldCgpOyB9CisgICAg
RE9NRXJyb3IqIGVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvci5nZXQoKTsgfQorCisgICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGludGVyZmFjZU5hbWUoKSBjb25zdDsKKworcHJp
dmF0ZToKKyAgICBDU1NGb250RmFjZUxvYWRFdmVudCgpOworICAgIENTU0ZvbnRGYWNlTG9hZEV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIFBhc3NSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiwgUGFz
c1JlZlB0cjxET01FcnJvcj4pOworICAgIENTU0ZvbnRGYWNlTG9hZEV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYsIGNvbnN0IENTU0ZvbnRGYWNlTG9hZEV2ZW50SW5pdCYpOworCisgICAgUmVmUHRy
PENTU0ZvbnRGYWNlUnVsZT4gbV9mb250ZmFjZTsKKyAgICBSZWZQdHI8RE9NRXJyb3I+IG1fZXJy
b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDU1NGb250RmFj
ZUxvYWRFdmVudF9oCisjZW5kaWYgLy8gRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaWRsIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMmRjZWUw
OGE1MDE2YzAzZDc3ODZjMWNkNGNkZDE3NWI1Yzg2NWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbApAQCAtMCwwICsxLDM5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
WworICAgIENvbmRpdGlvbmFsPUZPTlRfTE9BRF9FVkVOVFMsCisgICAgVjhFbmFibGVkQXRSdW50
aW1lPWZvbnRMb2FkRXZlbnRzLAorICAgIEpTTm9TdGF0aWNUYWJsZXMsCisgICAgQ29uc3RydWN0
b3JUZW1wbGF0ZT1FdmVudAorXSBpbnRlcmZhY2UgQ1NTRm9udEZhY2VMb2FkRXZlbnQgOiBFdmVu
dCB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rv
cl0gQ1NTRm9udEZhY2VSdWxlIGZvbnRmYWNlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW5p
dGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIERPTUVycm9yIGVycm9yOworfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuaWRsIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwKaW5kZXggZjEzNDk3YzQzN2Y2YWVlMWQ2NjI3MDYz
ZjMwNTRjYmI2YTkyMWMwYi4uYmE5N2E3YjdmNDgyNjBiNmMzMzE3NTE0MTMzZDNkNjVjMTE0ZmFj
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwKQEAgLTE5LDcgKzE5LDEw
IEBACiAgKi8KIAogLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLWludGVyZmFjZSBDU1NG
b250RmFjZVJ1bGUgOiBDU1NSdWxlIHsKK2ludGVyZmFjZSBbCisgICAgSlNHZW5lcmF0ZVRvSlNP
YmplY3QsCisgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAorXSBDU1NGb250RmFjZVJ1bGUg
OiBDU1NSdWxlIHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVEZWNsYXJhdGlvbiBz
dHlsZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCmluZGV4
IGE1OTUyMTdmMzc3NDk1NjFkMzE2MjAzMjZlYWY1NWY4NTIyNmU4NTguLjgzMzRiMTgzNjhhNmFi
MjAwYTY0NDQ3NGNiMTk0YmM2ZTBiMTJmMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
YWNlU291cmNlLmNwcApAQCAtMjA1LDQgKzIwNSwyNCBAQCBib29sIENTU0ZvbnRGYWNlU291cmNl
Ojppc1NWR0ZvbnRGYWNlU291cmNlKCkgY29uc3QKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEZP
TlRfTE9BRF9FVkVOVFMpCitib29sIENTU0ZvbnRGYWNlU291cmNlOjppc0RlY29kZUVycm9yKCkg
Y29uc3QKK3sKKyAgICBpZiAobV9mb250KQorICAgICAgICByZXR1cm4gbV9mb250LT5zdGF0dXMo
KSA9PSBDYWNoZWRSZXNvdXJjZTo6RGVjb2RlRXJyb3I7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIENTU0ZvbnRGYWNlU291cmNlOjplbnN1cmVGb250RGF0YSgpCit7CisgICAgaWYgKCFt
X2ZvbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAg
IGlmIChtX2hhc0V4dGVybmFsU1ZHRm9udCkKKyAgICAgICAgcmV0dXJuIG1fZm9udC0+ZW5zdXJl
U1ZHRm9udERhdGEoKTsKKyNlbmRpZgorICAgIHJldHVybiBtX2ZvbnQtPmVuc3VyZUN1c3RvbUZv
bnREYXRhKCk7Cit9CisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRGYWNlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3Vy
Y2UuaAppbmRleCAwNDg4ZDEwZDMyNjAwZTQ3ZGVkZDBmNzI4YzAwMzRjYTA0YWRmMTVjLi5mMDkw
Njk1YzFkMGY2OWRjZDg0ZWNmOTJjYmQyNTVkODM0YWEzOWRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2VTb3VyY2UuaApAQCAtNzAsNiArNzAsMTEgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0SGFzRXh0ZXJuYWxTVkdGb250KGJvb2wgdmFsdWUpIHsgbV9oYXNFeHRlcm5hbFNWR0ZvbnQg
PSB2YWx1ZTsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKKyAgICBi
b29sIGlzRGVjb2RlRXJyb3IoKSBjb25zdDsKKyAgICBib29sIGVuc3VyZUZvbnREYXRhKCk7Cisj
ZW5kaWYKKwogcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0TG9hZGluZ1RpbWVyRmlyZWQoVGltZXI8
Q1NTRm9udEZhY2VTb3VyY2U+Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGb250U2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5j
cHAKaW5kZXggNDRjNjJhN2ZiYzVjN2JjZTYwYTc2YjYyYjFiMDYzNTE4OGY0MDUxZS4uMzMwMmRl
NWRmYmQ4ZWUxMGY3MWU3Mzk1YjEzZDUzNjQyYTA4OGNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRTZWxlY3Rvci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZEZv
bnQuaCIKICNpbmNsdWRlICJDU1NGb250RmFjZS5oIgorI2luY2x1ZGUgIkNTU0ZvbnRGYWNlUnVs
ZS5oIgogI2luY2x1ZGUgIkNTU0ZvbnRGYWNlU291cmNlLmgiCiAjaW5jbHVkZSAiQ1NTRm9udEZh
Y2VTcmNWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCkBAIC0yMjUsOCAr
MjI2LDE1IEBAIHZvaWQgQ1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1bGUoY29uc3QgU3R5
bGVSdWxlRm9udEZhY2UqIGZvbnRGYWNlUnVsZSkKICAgICAgICAgICAgIHNvdXJjZSA9IGFkb3B0
UHRyKG5ldyBDU1NGb250RmFjZVNvdXJjZShpdGVtLT5yZXNvdXJjZSgpKSk7CiAgICAgICAgIH0K
IAotICAgICAgICBpZiAoIWZvbnRGYWNlKQotICAgICAgICAgICAgZm9udEZhY2UgPSBDU1NGb250
RmFjZTo6Y3JlYXRlKHN0YXRpY19jYXN0PEZvbnRUcmFpdHNNYXNrPih0cmFpdHNNYXNrKSk7Cisg
ICAgICAgIGlmICghZm9udEZhY2UpIHsKKyAgICAgICAgICAgIFJlZlB0cjxDU1NGb250RmFjZVJ1
bGU+IHJ1bGU7CisjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisgICAgICAgICAgICAvLyBG
SVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjExNiAtIFRo
aXMgQ1NTRm9udEZhY2VSdWxlIGhhcyBubyBwYXJlbnQuCisgICAgICAgICAgICBpZiAoUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6Zm9udExvYWRFdmVudHNFbmFibGVkKCkpCisgICAgICAgICAgICAg
ICAgcnVsZSA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8Q1NTRm9udEZhY2VSdWxlPihmb250RmFjZVJ1
bGUtPmNyZWF0ZUNTU09NV3JhcHBlcigpKTsKKyNlbmRpZgorICAgICAgICAgICAgZm9udEZhY2Ug
PSBDU1NGb250RmFjZTo6Y3JlYXRlKHN0YXRpY19jYXN0PEZvbnRUcmFpdHNNYXNrPih0cmFpdHNN
YXNrKSwgcnVsZSk7CisgICAgICAgIH0KIAogICAgICAgICBpZiAoc291cmNlKSB7CiAjaWYgRU5B
QkxFKFNWR19GT05UUykKQEAgLTI5OCw3ICszMDYsNyBAQCB2b2lkIENTU0ZvbnRTZWxlY3Rvcjo6
YWRkRm9udEZhY2VSdWxlKGNvbnN0IFN0eWxlUnVsZUZvbnRGYWNlKiBmb250RmFjZVJ1bGUpCiAg
ICAgICAgICAgICAgICAgT3duUHRyPFZlY3RvcjxSZWZQdHI8Q1NTRm9udEZhY2U+ID4gPiBmYW1p
bHlMb2NhbGx5SW5zdGFsbGVkRmFjZXMgPSBhZG9wdFB0cihuZXcgVmVjdG9yPFJlZlB0cjxDU1NG
b250RmFjZT4gPik7CiAKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bnVtTG9jYWxseUluc3RhbGxlZEZhY2VzOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgUmVm
UHRyPENTU0ZvbnRGYWNlPiBsb2NhbGx5SW5zdGFsbGVkRm9udEZhY2UgPSBDU1NGb250RmFjZTo6
Y3JlYXRlKHN0YXRpY19jYXN0PEZvbnRUcmFpdHNNYXNrPihsb2NhbGx5SW5zdGFsbGVkRm9udHNU
cmFpdHNNYXNrc1tpXSksIHRydWUpOworICAgICAgICAgICAgICAgICAgICBSZWZQdHI8Q1NTRm9u
dEZhY2U+IGxvY2FsbHlJbnN0YWxsZWRGb250RmFjZSA9IENTU0ZvbnRGYWNlOjpjcmVhdGUoc3Rh
dGljX2Nhc3Q8Rm9udFRyYWl0c01hc2s+KGxvY2FsbHlJbnN0YWxsZWRGb250c1RyYWl0c01hc2tz
W2ldKSwgMCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgIGxvY2FsbHlJbnN0YWxsZWRGb250
RmFjZS0+YWRkU291cmNlKGFkb3B0UHRyKG5ldyBDU1NGb250RmFjZVNvdXJjZShmYW1pbHlOYW1l
KSkpOwogICAgICAgICAgICAgICAgICAgICBBU1NFUlQobG9jYWxseUluc3RhbGxlZEZvbnRGYWNl
LT5pc1ZhbGlkKCkpOwogICAgICAgICAgICAgICAgICAgICBmYW1pbHlMb2NhbGx5SW5zdGFsbGVk
RmFjZXMtPmFwcGVuZChsb2NhbGx5SW5zdGFsbGVkRm9udEZhY2UpOwpAQCAtNDc2LDExICs0ODQs
OSBAQCBQYXNzUmVmUHRyPEZvbnREYXRhPiBDU1NGb250U2VsZWN0b3I6OmdldEZvbnREYXRhKGNv
bnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlcwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAK
LSAgICBTdHJpbmcgZmFtaWx5ID0gZmFtaWx5TmFtZS5zdHJpbmcoKTsKLQotICAgIFZlY3RvcjxS
ZWZQdHI8Q1NTRm9udEZhY2U+ID4qIGZhbWlseUZvbnRGYWNlcyA9IG1fZm9udEZhY2VzLmdldChm
YW1pbHkpOworICAgIENTU1NlZ21lbnRlZEZvbnRGYWNlKiBmYWNlID0gZ2V0Rm9udEZhY2UoZm9u
dERlc2NyaXB0aW9uLCBmYW1pbHlOYW1lKTsKICAgICAvLyBJZiBubyBmYWNlIHdhcyBmb3VuZCwg
dGhlbiByZXR1cm4gMCBhbmQgbGV0IHRoZSBPUyBjb21lIHVwIHdpdGggaXRzIGJlc3QgbWF0Y2gg
Zm9yIHRoZSBuYW1lLgotICAgIGlmICghZmFtaWx5Rm9udEZhY2VzIHx8IGZhbWlseUZvbnRGYWNl
cy0+aXNFbXB0eSgpKSB7CisgICAgaWYgKCFmYWNlKSB7CiAgICAgICAgIC8vIElmIHdlIHdlcmUg
aGFuZGVkIGEgZ2VuZXJpYyBmYW1pbHksIGJ1dCB0aGVyZSB3YXMgbm8gbWF0Y2gsIGdvIGFoZWFk
IGFuZCByZXR1cm4gdGhlIGNvcnJlY3QgZm9udCBiYXNlZCBvZmYgb3VyCiAgICAgICAgIC8vIHNl
dHRpbmdzLgogICAgICAgICBpZiAoZm9udERlc2NyaXB0aW9uLmdlbmVyaWNGYW1pbHkoKSA9PSBG
b250RGVzY3JpcHRpb246OlN0YW5kYXJkRmFtaWx5ICYmICFmb250RGVzY3JpcHRpb24uaXNTcGVj
aWZpZWRGb250KCkpCkBAIC00ODgsNiArNDk0LDE2IEBAIFBhc3NSZWZQdHI8Rm9udERhdGE+IENT
U0ZvbnRTZWxlY3Rvcjo6Z2V0Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVz
CiAgICAgICAgIHJldHVybiBmb250RGF0YUZvckdlbmVyaWNGYW1pbHkobV9kb2N1bWVudCwgZm9u
dERlc2NyaXB0aW9uLCBmYW1pbHlOYW1lKTsKICAgICB9CiAKKyAgICAvLyBXZSBoYXZlIGEgZmFj
ZS4gQXNrIGl0IGZvciBhIGZvbnQgZGF0YS4gSWYgaXQgY2Fubm90IHByb2R1Y2Ugb25lLCBpdCB3
aWxsIGZhaWwsIGFuZCB0aGUgT1Mgd2lsbCB0YWtlIG92ZXIuCisgICAgcmV0dXJuIGZhY2UtPmdl
dEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbik7Cit9CisKK0NTU1NlZ21lbnRlZEZvbnRGYWNlKiBD
U1NGb250U2VsZWN0b3I6OmdldEZvbnRGYWNlKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERl
c2NyaXB0aW9uLCBjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSkKK3sKKyAgICBWZWN0b3I8UmVm
UHRyPENTU0ZvbnRGYWNlPiA+KiBmYW1pbHlGb250RmFjZXMgPSBtX2ZvbnRGYWNlcy5nZXQoZmFt
aWx5KTsKKyAgICBpZiAoIWZhbWlseUZvbnRGYWNlcyB8fCBmYW1pbHlGb250RmFjZXMtPmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBPd25QdHI8SGFzaE1hcDx1bnNpZ25lZCwg
UmVmUHRyPENTU1NlZ21lbnRlZEZvbnRGYWNlPiA+ID4mIHNlZ21lbnRlZEZvbnRGYWNlQ2FjaGUg
PSBtX2ZvbnRzLmFkZChmYW1pbHksIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKICAgICBpZiAo
IXNlZ21lbnRlZEZvbnRGYWNlQ2FjaGUpCiAgICAgICAgIHNlZ21lbnRlZEZvbnRGYWNlQ2FjaGUg
PSBhZG9wdFB0cihuZXcgSGFzaE1hcDx1bnNpZ25lZCwgUmVmUHRyPENTU1NlZ21lbnRlZEZvbnRG
YWNlPiA+KTsKQEAgLTUzNSw5ICs1NTEsNyBAQCBQYXNzUmVmUHRyPEZvbnREYXRhPiBDU1NGb250
U2VsZWN0b3I6OmdldEZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlcwogICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtQ2FuZGlkYXRlczsgKytpKQogICAgICAg
ICAgICAgZmFjZS0+YXBwZW5kRm9udEZhY2UoY2FuZGlkYXRlRm9udEZhY2VzW2ldKTsKICAgICB9
Ci0KLSAgICAvLyBXZSBoYXZlIGEgZmFjZS4gIEFzayBpdCBmb3IgYSBmb250IGRhdGEuICBJZiBp
dCBjYW5ub3QgcHJvZHVjZSBvbmUsIGl0IHdpbGwgZmFpbCwgYW5kIHRoZSBPUyB3aWxsIHRha2Ug
b3Zlci4KLSAgICByZXR1cm4gZmFjZS0+Z2V0Rm9udERhdGEoZm9udERlc2NyaXB0aW9uKTsKKyAg
ICByZXR1cm4gZmFjZS5nZXQoKTsKIH0KIAogdm9pZCBDU1NGb250U2VsZWN0b3I6OmNsZWFyRG9j
dW1lbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5oCmluZGV4IGQwMjEwMGMzMjYy
MGY4ODU2MTUyZDllMDE2ZWJiZThhMmJkMDgwMmYuLjVhZGU1NTY5N2Y2NzBiNTViNTMzMDAxMmFj
MzE1YmJjNzExYzdiMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2Vs
ZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgKQEAgLTU2
LDYgKzU2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdW5zaWduZWQgdmVyc2lvbigpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIG1fdmVyc2lvbjsgfQogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PEZvbnREYXRhPiBnZXRGb250RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBBdG9t
aWNTdHJpbmcmKTsKKyAgICBDU1NTZWdtZW50ZWRGb250RmFjZSogZ2V0Rm9udEZhY2UoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHkpOwogCiAgICAgdm9p
ZCBjbGVhckRvY3VtZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
ZWdtZW50ZWRGb250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VnbWVudGVkRm9u
dEZhY2UuY3BwCmluZGV4IDllOTA4M2YyMDUzMzRmMDE2NGE2YWUwMjUwNTNhMmE5ZDY4NzI1MjIu
LjlkYjdkNTU5MGU1NDdjZTFmN2Q1NmFkMjkzMjVmMjAyZTIwODBhNTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWdtZW50ZWRGb250RmFjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgIkNTU0ZvbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiRm9udERlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
IgogI2luY2x1ZGUgIlNlZ21lbnRlZEZvbnREYXRhLmgiCiAjaW5jbHVkZSAiU2ltcGxlRm9udERh
dGEuaCIKIApAQCAtNzIsNiArNzMsMTkgQEAgYm9vbCBDU1NTZWdtZW50ZWRGb250RmFjZTo6aXNW
YWxpZCgpIGNvbnN0CiB2b2lkIENTU1NlZ21lbnRlZEZvbnRGYWNlOjpmb250TG9hZGVkKENTU0Zv
bnRGYWNlKikKIHsKICAgICBwcnVuZVRhYmxlKCk7CisKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VW
RU5UUykKKyAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6Zm9udExvYWRFdmVudHNFbmFi
bGVkKCkgJiYgIWlzTG9hZGluZygpKSB7CisgICAgICAgIFZlY3RvcjxSZWZQdHI8TG9hZEZvbnRD
YWxsYmFjaz4gPiBjYWxsYmFja3M7CisgICAgICAgIG1fY2FsbGJhY2tzLnN3YXAoY2FsbGJhY2tz
KTsKKyAgICAgICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IGNhbGxiYWNrcy5zaXpl
KCk7ICsraW5kZXgpIHsKKyAgICAgICAgICAgIGlmIChjaGVja0ZvbnQoKSkKKyAgICAgICAgICAg
ICAgICBjYWxsYmFja3NbaW5kZXhdLT5ub3RpZnlMb2FkZWQoKTsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBjYWxsYmFja3NbaW5kZXhdLT5ub3RpZnlFcnJvcigpOworICAgICAg
ICB9CisgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgQ1NTU2VnbWVudGVkRm9udEZhY2U6OmFwcGVu
ZEZvbnRGYWNlKFBhc3NSZWZQdHI8Q1NTRm9udEZhY2U+IGZvbnRGYWNlKQpAQCAtMTM1LDQgKzE0
OSw0MCBAQCBQYXNzUmVmUHRyPEZvbnREYXRhPiBDU1NTZWdtZW50ZWRGb250RmFjZTo6Z2V0Rm9u
dERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmbwogICAgIHJldHVybiAwOwogfQogCisjaWYg
RU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCitib29sIENTU1NlZ21lbnRlZEZvbnRGYWNlOjppc0xv
YWRpbmcoKSBjb25zdAoreworICAgIHVuc2lnbmVkIHNpemUgPSBtX2ZvbnRGYWNlcy5zaXplKCk7
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICBpZiAo
bV9mb250RmFjZXNbaV0tPmxvYWRTdGF0ZSgpID09IENTU0ZvbnRGYWNlOjpMb2FkaW5nKQorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9v
bCBDU1NTZWdtZW50ZWRGb250RmFjZTo6Y2hlY2tGb250KCkgY29uc3QKK3sKKyAgICB1bnNpZ25l
ZCBzaXplID0gbV9mb250RmFjZXMuc2l6ZSgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBzaXplOyBpKyspIHsKKyAgICAgICAgaWYgKG1fZm9udEZhY2VzW2ldLT5sb2FkU3RhdGUoKSAh
PSBDU1NGb250RmFjZTo6TG9hZGVkKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBDU1NTZWdtZW50ZWRGb250RmFjZTo6bG9hZEZv
bnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIFBhc3NSZWZQdHI8TG9h
ZEZvbnRDYWxsYmFjaz4gY2FsbGJhY2spCit7CisgICAgZ2V0Rm9udERhdGEoZm9udERlc2NyaXB0
aW9uKTsgLy8gS2ljayBvZmYgdGhlIGxvYWQuCisKKyAgICBpZiAoY2FsbGJhY2spIHsKKyAgICAg
ICAgaWYgKGlzTG9hZGluZygpKQorICAgICAgICAgICAgbV9jYWxsYmFja3MuYXBwZW5kKGNhbGxi
YWNrKTsKKyAgICAgICAgZWxzZSBpZiAoY2hlY2tGb250KCkpCisgICAgICAgICAgICBjYWxsYmFj
ay0+bm90aWZ5TG9hZGVkKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNhbGxiYWNrLT5u
b3RpZnlFcnJvcigpOworICAgIH0KK30KKyNlbmRpZgorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU2VnbWVudGVkRm9udEZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTZWdtZW50ZWRGb250RmFjZS5oCmluZGV4IGYxODNmNDk5NWUwODI5ZWUxNjhhMzg5MmQ2Zjll
ZjNmYWRlZTA4ZjcuLmVjMzljMTdkMTdkMmZiYzk2NmIxOTJkYTc1MzA1MjhiODkyMjQzYzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWdtZW50ZWRGb250RmFjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWdtZW50ZWRGb250RmFjZS5oCkBAIC01MywxNSArNTMs
MzMgQEAgcHVibGljOgogCiAgICAgUGFzc1JlZlB0cjxGb250RGF0YT4gZ2V0Rm9udERhdGEoY29u
c3QgRm9udERlc2NyaXB0aW9uJik7CiAKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKKyAg
ICBjbGFzcyBMb2FkRm9udENhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8TG9hZEZvbnRDYWxs
YmFjaz4geworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+TG9hZEZvbnRDYWxsYmFjaygp
IHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5TG9hZGVkKCkgPSAwOworICAgICAgICB2
aXJ0dWFsIHZvaWQgbm90aWZ5RXJyb3IoKSA9IDA7CisgICAgfTsKKworICAgIGJvb2wgY2hlY2tG
b250KCkgY29uc3Q7CisgICAgdm9pZCBsb2FkRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mLCBQ
YXNzUmVmUHRyPExvYWRGb250Q2FsbGJhY2s+IGxvYWRDYWxsYmFjayk7CisjZW5kaWYKKwogcHJp
dmF0ZToKICAgICBDU1NTZWdtZW50ZWRGb250RmFjZShDU1NGb250U2VsZWN0b3IqKTsKIAogICAg
IHZvaWQgcHJ1bmVUYWJsZSgpOwogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OworI2lmIEVOQUJM
RShGT05UX0xPQURfRVZFTlRTKQorICAgIGJvb2wgaXNMb2FkaW5nKCkgY29uc3Q7CisjZW5kaWYK
IAogICAgIENTU0ZvbnRTZWxlY3RvciogbV9mb250U2VsZWN0b3I7CiAgICAgSGFzaE1hcDx1bnNp
Z25lZCwgUmVmUHRyPFNlZ21lbnRlZEZvbnREYXRhPiA+IG1fZm9udERhdGFUYWJsZTsKICAgICBW
ZWN0b3I8UmVmUHRyPENTU0ZvbnRGYWNlPiwgMT4gbV9mb250RmFjZXM7CisjaWYgRU5BQkxFKEZP
TlRfTE9BRF9FVkVOVFMpCisgICAgVmVjdG9yPFJlZlB0cjxMb2FkRm9udENhbGxiYWNrPiA+IG1f
Y2FsbGJhY2tzOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvRm9udExvYWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdkN2Q5NjcwMmFmMTRmMDcxMzU4ZWEzOTcx
MWNlODA5MDJjYTliMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250
TG9hZGVyLmNwcApAQCAtMCwwICsxLDMxNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
CisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
CisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiRm9udExvYWRlci5oIgorCisjaWYgRU5BQkxFKEZPTlRfTE9BRF9F
VkVOVFMpCisKKyNpbmNsdWRlICJDU1NGb250RmFjZUxvYWRFdmVudC5oIgorI2luY2x1ZGUgIkNT
U0ZvbnRGYWNlU291cmNlLmgiCisjaW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCisjaW5jbHVk
ZSAiQ1NTUGFyc2VyLmgiCisjaW5jbHVkZSAiQ1NTU2VnbWVudGVkRm9udEZhY2UuaCIKKyNpbmNs
dWRlICJEaWN0aW9uYXJ5LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIKKyNpbmNsdWRlICJTdHlsZVByb3BlcnR5U2V0LmgiCisjaW5jbHVkZSAiU3R5bGVS
ZXNvbHZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBjb25zdCBpbnQgZGVm
YXVsdEZvbnRTaXplID0gMTA7CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZGVmYXVsdEZvbnRG
YW1pbHkgPSAic2Fucy1zZXJpZiI7CisKK2NsYXNzIExvYWRGb250Q2FsbGJhY2sgOiBwdWJsaWMg
Q1NTU2VnbWVudGVkRm9udEZhY2U6OkxvYWRGb250Q2FsbGJhY2sgeworcHVibGljOgorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPExvYWRGb250Q2FsbGJhY2s+IGNyZWF0ZShpbnQgbnVtTG9hZGluZywg
UGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IGxvYWRDYWxsYmFjaywgUGFzc1JlZlB0cjxWb2lkQ2Fs
bGJhY2s+IGVycm9yQ2FsbGJhY2spCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWY8TG9h
ZEZvbnRDYWxsYmFjaz4obmV3IExvYWRGb250Q2FsbGJhY2sobnVtTG9hZGluZywgbG9hZENhbGxi
YWNrLCBlcnJvckNhbGxiYWNrKSk7CisgICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8TG9h
ZEZvbnRDYWxsYmFjaz4gY3JlYXRlRnJvbVBhcmFtcyhjb25zdCBEaWN0aW9uYXJ5JiBwYXJhbXMs
IGNvbnN0IEZvbnRGYW1pbHkmIGZhbWlseSkKKyAgICB7CisgICAgICAgIFJlZlB0cjxWb2lkQ2Fs
bGJhY2s+IG9uc3VjY2VzczsKKyAgICAgICAgUmVmUHRyPFZvaWRDYWxsYmFjaz4gb25lcnJvcjsK
KyAgICAgICAgcGFyYW1zLmdldCgib25zdWNjZXNzIiwgb25zdWNjZXNzKTsKKyAgICAgICAgcGFy
YW1zLmdldCgib25lcnJvciIsIG9uZXJyb3IpOworICAgICAgICBpZiAoIW9uc3VjY2VzcyAmJiAh
b25lcnJvcikKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBpbnQgbnVtRmFtaWxpZXMg
PSAwOworICAgICAgICBmb3IgKGNvbnN0IEZvbnRGYW1pbHkqIGYgPSAmZmFtaWx5OyBmOyBmID0g
Zi0+bmV4dCgpKQorICAgICAgICAgICAgbnVtRmFtaWxpZXMrKzsKKyAgICAgICAgcmV0dXJuIExv
YWRGb250Q2FsbGJhY2s6OmNyZWF0ZShudW1GYW1pbGllcywgb25zdWNjZXNzLCBvbmVycm9yKTsK
KyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5TG9hZGVkKCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUVycm9yKCkgT1ZFUlJJREU7Citwcml2YXRlOgorICAgIExvYWRG
b250Q2FsbGJhY2soaW50IG51bUxvYWRpbmcsIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBsb2Fk
Q2FsbGJhY2ssIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQorICAgICAg
ICA6IG1fbnVtTG9hZGluZyhudW1Mb2FkaW5nKQorICAgICAgICAsIG1fZXJyb3JPY2N1cmVkKGZh
bHNlKQorICAgICAgICAsIG1fbG9hZENhbGxiYWNrKGxvYWRDYWxsYmFjaykKKyAgICAgICAgLCBt
X2Vycm9yQ2FsbGJhY2soZXJyb3JDYWxsYmFjaykKKyAgICB7IH0KKworICAgIGludCBtX251bUxv
YWRpbmc7CisgICAgYm9vbCBtX2Vycm9yT2NjdXJlZDsKKyAgICBSZWZQdHI8Vm9pZENhbGxiYWNr
PiBtX2xvYWRDYWxsYmFjazsKKyAgICBSZWZQdHI8Vm9pZENhbGxiYWNrPiBtX2Vycm9yQ2FsbGJh
Y2s7Cit9OworCit2b2lkIExvYWRGb250Q2FsbGJhY2s6Om5vdGlmeUxvYWRlZCgpCit7CisgICAg
bV9udW1Mb2FkaW5nLS07CisgICAgaWYgKG1fbnVtTG9hZGluZykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKG1fZXJyb3JPY2N1cmVkKSB7CisgICAgICAgIGlmIChtX2Vycm9yQ2FsbGJhY2sp
CisgICAgICAgICAgICBtX2Vycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KCk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgaWYgKG1fbG9hZENhbGxiYWNrKQorICAgICAgICAgICAgbV9sb2FkQ2FsbGJh
Y2stPmhhbmRsZUV2ZW50KCk7CisgICAgfQorfQorCit2b2lkIExvYWRGb250Q2FsbGJhY2s6Om5v
dGlmeUVycm9yKCkgCit7CisgICAgbV9lcnJvck9jY3VyZWQgPSB0cnVlOworICAgIG5vdGlmeUxv
YWRlZCgpOworfQorCitGb250TG9hZGVyOjpGb250TG9hZGVyKERvY3VtZW50KiBkb2N1bWVudCkK
KyAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCwgdGhpcykKKyAgICAsIG1fZG9jdW1lbnQo
ZG9jdW1lbnQpCisgICAgLCBtX2xvYWRpbmdDb3VudCgwKQoreworICAgIHN1c3BlbmRJZk5lZWRl
ZCgpOworfQorCitGb250TG9hZGVyOjp+Rm9udExvYWRlcigpCit7Cit9CisKK0V2ZW50VGFyZ2V0
RGF0YSogRm9udExvYWRlcjo6ZXZlbnRUYXJnZXREYXRhKCkKK3sKKyAgICByZXR1cm4gJm1fZXZl
bnRUYXJnZXREYXRhOworfQorCitFdmVudFRhcmdldERhdGEqIEZvbnRMb2FkZXI6OmVuc3VyZUV2
ZW50VGFyZ2V0RGF0YSgpCit7CisgICAgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsKK30KKwor
Y29uc3QgQXRvbWljU3RyaW5nJiBGb250TG9hZGVyOjppbnRlcmZhY2VOYW1lKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZvckZvbnRMb2FkZXI7Cit9CisKK1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIEZvbnRMb2FkZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSBjb25zdAoreworICAgIHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKK30KKwordm9pZCBGb250TG9hZGVyOjpkaWRMYXlvdXQoKQoreworICAgIGZpcmVQ
ZW5kaW5nRXZlbnRzKCk7CisgICAgbG9hZGluZ0RvbmUoKTsKK30KKwordm9pZCBGb250TG9hZGVy
OjpzY2hlZHVsZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQoreworICAgIGlmIChGcmFt
ZVZpZXcqIHZpZXcgPSBtX2RvY3VtZW50LT52aWV3KCkpIHsKKyAgICAgICAgaWYgKHZpZXctPmlz
SW5MYXlvdXQoKSkgeworICAgICAgICAgICAgbV9wZW5kaW5nRXZlbnRzLmFwcGVuZChldmVudCk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgZmlyZVBlbmRpbmdF
dmVudHMoKTsKKyAgICBkaXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KKwordm9pZCBGb250TG9hZGVy
OjpmaXJlUGVuZGluZ0V2ZW50cygpCit7CisgICAgaWYgKG1fcGVuZGluZ0V2ZW50cy5pc0VtcHR5
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFZlY3RvcjxSZWZQdHI8RXZlbnQ+ID4gcGVuZGlu
Z0V2ZW50czsKKyAgICBtX3BlbmRpbmdFdmVudHMuc3dhcChwZW5kaW5nRXZlbnRzKTsKKyAgICBm
b3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgcGVuZGluZ0V2ZW50cy5zaXplKCk7ICsraW5k
ZXgpCisgICAgICAgIGRpc3BhdGNoRXZlbnQocGVuZGluZ0V2ZW50c1tpbmRleF0ucmVsZWFzZSgp
KTsKK30KKwordm9pZCBGb250TG9hZGVyOjpiZWdpbkZvbnRMb2FkaW5nKENTU0ZvbnRGYWNlUnVs
ZSogcnVsZSkKK3sKKyAgICArK21fbG9hZGluZ0NvdW50OworICAgIGlmIChtX2xvYWRpbmdDb3Vu
dCA9PSAxICYmICFtX2xvYWRpbmdEb25lRXZlbnQpCisgICAgICAgIHNjaGVkdWxlRXZlbnQoQ1NT
Rm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZUZvckZvbnRGYWNlUnVsZShldmVudE5hbWVzKCkubG9h
ZGluZ0V2ZW50LCBydWxlKSk7CisgICAgc2NoZWR1bGVFdmVudChDU1NGb250RmFjZUxvYWRFdmVu
dDo6Y3JlYXRlRm9yRm9udEZhY2VSdWxlKGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRFdmVudCwgcnVs
ZSkpOworfQorCit2b2lkIEZvbnRMb2FkZXI6OmZvbnRMb2FkZWQoQ1NTRm9udEZhY2VSdWxlKiBy
dWxlKQoreworICAgIEFTU0VSVChtX2xvYWRpbmdDb3VudCA+IDApOworICAgIHNjaGVkdWxlRXZl
bnQoQ1NTRm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZUZvckZvbnRGYWNlUnVsZShldmVudE5hbWVz
KCkubG9hZEV2ZW50LCBydWxlKSk7CisKKyAgICAtLW1fbG9hZGluZ0NvdW50OworICAgIGlmICgh
bV9sb2FkaW5nQ291bnQpCisgICAgICAgIG1fbG9hZGluZ0RvbmVFdmVudCA9IENTU0ZvbnRGYWNl
TG9hZEV2ZW50OjpjcmVhdGVGb3JGb250RmFjZVJ1bGUoZXZlbnROYW1lcygpLmxvYWRpbmdkb25l
RXZlbnQsIHJ1bGUpOworfQorCit2b2lkIEZvbnRMb2FkZXI6OmxvYWRFcnJvcihDU1NGb250RmFj
ZVJ1bGUqIHJ1bGUsIENTU0ZvbnRGYWNlU291cmNlKiBzb3VyY2UpCit7CisgICAgQVNTRVJUKG1f
bG9hZGluZ0NvdW50ID4gMCk7CisKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlcG9ydCBOZXR3
b3JrRXJyb3IgaW4gY2FzZSBvZiB0aW1lb3V0LCBldGMuCisgICAgU3RyaW5nIGVycm9yTmFtZSA9
IChzb3VyY2UgJiYgc291cmNlLT5pc0RlY29kZUVycm9yKCkpID8gIkludmFsaWRGb250RGF0YUVy
cm9yIiA6IEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbihOT1RfRk9VTkRfRVJSKS5uYW1lOworICAg
IHNjaGVkdWxlRXZlbnQoQ1NTRm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZUZvckVycm9yKHJ1bGUs
IERPTUVycm9yOjpjcmVhdGUoZXJyb3JOYW1lKSkpOworICAgIC0tbV9sb2FkaW5nQ291bnQ7Cisg
ICAgaWYgKCFtX2xvYWRpbmdDb3VudCkKKyAgICAgICAgbV9sb2FkaW5nRG9uZUV2ZW50ID0gQ1NT
Rm9udEZhY2VMb2FkRXZlbnQ6OmNyZWF0ZUZvckZvbnRGYWNlUnVsZShldmVudE5hbWVzKCkubG9h
ZGluZ2RvbmVFdmVudCwgcnVsZSk7Cit9CisKK3ZvaWQgRm9udExvYWRlcjo6bm90aWZ5V2hlbkZv
bnRzUmVhZHkoUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IGNhbGxiYWNrKQoreworICAgIG1fY2Fs
bGJhY2tzLmFwcGVuZChjYWxsYmFjayk7CisgICAgbG9hZGluZ0RvbmUoKTsKK30KKwordm9pZCBG
b250TG9hZGVyOjpsb2FkaW5nRG9uZSgpCit7CisgICAgaWYgKGxvYWRpbmcoKSkKKyAgICAgICAg
cmV0dXJuOworICAgIGlmICghbV9sb2FkaW5nRG9uZUV2ZW50ICYmIG1fY2FsbGJhY2tzLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IG1fZG9j
dW1lbnQtPnZpZXcoKSkgeworICAgICAgICBpZiAodmlldy0+aXNJbkxheW91dCgpIHx8IHZpZXct
Pm5lZWRzTGF5b3V0KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fZG9jdW1lbnQt
PnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICAgICAgaWYgKHZpZXctPm5lZWRzTGF5b3V0KCkp
CisgICAgICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fbG9hZGluZ0RvbmVFdmVu
dCkKKyAgICAgICAgZGlzcGF0Y2hFdmVudChtX2xvYWRpbmdEb25lRXZlbnQucmVsZWFzZSgpKTsK
KworICAgIGlmICghbV9jYWxsYmFja3MuaXNFbXB0eSgpKSB7CisgICAgICAgIFZlY3RvcjxSZWZQ
dHI8Vm9pZENhbGxiYWNrPiA+IGNhbGxiYWNrczsKKyAgICAgICAgbV9jYWxsYmFja3Muc3dhcChj
YWxsYmFja3MpOworICAgICAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgY2FsbGJh
Y2tzLnNpemUoKTsgKytpbmRleCkKKyAgICAgICAgICAgIGNhbGxiYWNrc1tpbmRleF0tPmhhbmRs
ZUV2ZW50KCk7CisgICAgfQorfQorCit2b2lkIEZvbnRMb2FkZXI6OmxvYWRGb250KGNvbnN0IERp
Y3Rpb25hcnkmIHBhcmFtcykKK3sKKyAgICAvLyBGSVhNRTogVGhlIHRleHQgbWVtYmVyIG9mIHBh
cmFtcyBpcyBpZ25vcmVkLgorICAgIFN0cmluZyBmb250U3RyaW5nOworICAgIGlmICghcGFyYW1z
LmdldCgiZm9udCIsIGZvbnRTdHJpbmcpKQorICAgICAgICByZXR1cm47CisgICAgRm9udCBmb250
OworICAgIGlmICghcmVzb2x2ZUZvbnRTdHlsZShmb250U3RyaW5nLCBmb250KSkKKyAgICAgICAg
cmV0dXJuOworICAgIFJlZlB0cjxMb2FkRm9udENhbGxiYWNrPiBjYWxsYmFjayA9IExvYWRGb250
Q2FsbGJhY2s6OmNyZWF0ZUZyb21QYXJhbXMocGFyYW1zLCBmb250LmZhbWlseSgpKTsKKyAgICAK
KyAgICBmb3IgKGNvbnN0IEZvbnRGYW1pbHkqIGYgPSAmZm9udC5mYW1pbHkoKTsgZjsgZiA9IGYt
Pm5leHQoKSkgeworICAgICAgICBDU1NTZWdtZW50ZWRGb250RmFjZSogZmFjZSA9IG1fZG9jdW1l
bnQtPnN0eWxlUmVzb2x2ZXIoKS0+Zm9udFNlbGVjdG9yKCktPmdldEZvbnRGYWNlKGZvbnQuZm9u
dERlc2NyaXB0aW9uKCksIGYtPmZhbWlseSgpKTsKKyAgICAgICAgaWYgKCFmYWNlKSB7CisgICAg
ICAgICAgICBpZiAoY2FsbGJhY2spCisgICAgICAgICAgICAgICAgY2FsbGJhY2stPm5vdGlmeUVy
cm9yKCk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBmYWNlLT5s
b2FkRm9udChmb250LmZvbnREZXNjcmlwdGlvbigpLCBjYWxsYmFjayk7CisgICAgfQorfQorCiti
b29sIEZvbnRMb2FkZXI6OmNoZWNrRm9udChjb25zdCBTdHJpbmcmIGZvbnRTdHJpbmcsIGNvbnN0
IFN0cmluZyYpCit7CisgICAgLy8gRklYTUU6IFRoZSBzZWNvbmQgcGFyYW1ldGVyICh0ZXh0KSBp
cyBpZ25vcmVkLgorICAgIEZvbnQgZm9udDsKKyAgICBpZiAoIXJlc29sdmVGb250U3R5bGUoZm9u
dFN0cmluZywgZm9udCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBmb3IgKGNvbnN0IEZv
bnRGYW1pbHkqIGYgPSAmZm9udC5mYW1pbHkoKTsgZjsgZiA9IGYtPm5leHQoKSkgeworICAgICAg
ICBDU1NTZWdtZW50ZWRGb250RmFjZSogZmFjZSA9IG1fZG9jdW1lbnQtPnN0eWxlUmVzb2x2ZXIo
KS0+Zm9udFNlbGVjdG9yKCktPmdldEZvbnRGYWNlKGZvbnQuZm9udERlc2NyaXB0aW9uKCksIGYt
PmZhbWlseSgpKTsKKyAgICAgICAgaWYgKCFmYWNlIHx8ICFmYWNlLT5jaGVja0ZvbnQoKSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0
YXRpYyB2b2lkIGFwcGx5UHJvcGVydHlUb0N1cnJlbnRTdHlsZShTdHlsZVJlc29sdmVyKiBzdHls
ZVJlc29sdmVyLCBDU1NQcm9wZXJ0eUlEIGlkLCBjb25zdCBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNl
dD4mIHBhcnNlZFN0eWxlKQoreworICAgIHN0eWxlUmVzb2x2ZXItPmFwcGx5UHJvcGVydHlUb0N1
cnJlbnRTdHlsZShpZCwgcGFyc2VkU3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoaWQpLmdldCgp
KTsKK30KKworYm9vbCBGb250TG9hZGVyOjpyZXNvbHZlRm9udFN0eWxlKGNvbnN0IFN0cmluZyYg
Zm9udFN0cmluZywgRm9udCYgZm9udCkKK3sKKyAgICAvLyBJbnRlcnByZXQgZm9udFN0cmluZyBp
biB0aGUgc2FtZSB3YXkgYXMgdGhlICdmb250JyBhdHRyaWJ1dGUgb2YgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELgorICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBwYXJzZWRTdHlsZSA9IFN0
eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOworICAgIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShwYXJz
ZWRTdHlsZS5nZXQoKSwgQ1NTUHJvcGVydHlGb250LCBmb250U3RyaW5nLCB0cnVlLCBDU1NTdHJp
Y3RNb2RlLCAwKTsKKyAgICBpZiAocGFyc2VkU3R5bGUtPmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIAorICAgIFN0cmluZyBmb250VmFsdWUgPSBwYXJzZWRTdHlsZS0+Z2V0
UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUZvbnQpOworICAgIGlmIChmb250VmFsdWUgPT0gImlu
aGVyaXQiIHx8IGZvbnRWYWx1ZSA9PSAiaW5pdGlhbCIpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlKCk7
CisKKyAgICBGb250RmFtaWx5IGZvbnRGYW1pbHk7CisgICAgZm9udEZhbWlseS5zZXRGYW1pbHko
ZGVmYXVsdEZvbnRGYW1pbHkpOworCisgICAgRm9udERlc2NyaXB0aW9uIGRlZmF1bHRGb250RGVz
Y3JpcHRpb247CisgICAgZGVmYXVsdEZvbnREZXNjcmlwdGlvbi5zZXRGYW1pbHkoZm9udEZhbWls
eSk7CisgICAgZGVmYXVsdEZvbnREZXNjcmlwdGlvbi5zZXRTcGVjaWZpZWRTaXplKGRlZmF1bHRG
b250U2l6ZSk7CisgICAgZGVmYXVsdEZvbnREZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUoZGVm
YXVsdEZvbnRTaXplKTsKKworICAgIHN0eWxlLT5zZXRGb250RGVzY3JpcHRpb24oZGVmYXVsdEZv
bnREZXNjcmlwdGlvbik7CisKKyAgICBzdHlsZS0+Zm9udCgpLnVwZGF0ZShzdHlsZS0+Zm9udCgp
LmZvbnRTZWxlY3RvcigpKTsKKworICAgIC8vIE5vdyBtYXAgdGhlIGZvbnQgcHJvcGVydHkgbG9u
Z2hhbmRzIGludG8gdGhlIHN0eWxlLgorICAgIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIg
PSBtX2RvY3VtZW50LT5zdHlsZVJlc29sdmVyKCk7CisgICAgc3R5bGVSZXNvbHZlci0+YXBwbHlQ
cm9wZXJ0eVRvU3R5bGUoQ1NTUHJvcGVydHlGb250RmFtaWx5LCBwYXJzZWRTdHlsZS0+Z2V0UHJv
cGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUZvbnRGYW1pbHkpLmdldCgpLCBzdHlsZS5nZXQoKSk7
CisgICAgYXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKHN0eWxlUmVzb2x2ZXIsIENTU1Byb3Bl
cnR5Rm9udFN0eWxlLCBwYXJzZWRTdHlsZSk7CisgICAgYXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0
eWxlKHN0eWxlUmVzb2x2ZXIsIENTU1Byb3BlcnR5Rm9udFZhcmlhbnQsIHBhcnNlZFN0eWxlKTsK
KyAgICBhcHBseVByb3BlcnR5VG9DdXJyZW50U3R5bGUoc3R5bGVSZXNvbHZlciwgQ1NTUHJvcGVy
dHlGb250V2VpZ2h0LCBwYXJzZWRTdHlsZSk7CisKKyAgICAvLyBBcyBkZXNjcmliZWQgaW4gQlVH
NjYyOTEsIHNldHRpbmcgZm9udC1zaXplIGFuZCBsaW5lLWhlaWdodCBvbiBhIGZvbnQgbWF5IGVu
dGFpbCBhIENTU1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlTGVuZ3RoRG91YmxlIGNhbGwsCisgICAg
Ly8gd2hpY2ggYXNzdW1lcyB0aGUgZm9udE1ldHJpY3MgYXJlIGF2YWlsYWJsZSBmb3IgdGhlIGFm
ZmVjdGVkIGZvbnQsIG90aGVyd2lzZSBhIGNyYXNoIG9jY3VycyAoc2VlIGh0dHA6Ly90cmFjLndl
YmtpdC5vcmcvY2hhbmdlc2V0Lzk2MTIyKS4KKyAgICAvLyBUaGUgdXBkYXRlRm9udCgpIGNhbGxz
IGJlbG93IHVwZGF0ZSB0aGUgZm9udE1ldHJpY3MgYW5kIGVuc3VyZSB0aGUgcHJvcGVyIHNldHRp
bmcgb2YgZm9udC1zaXplIGFuZCBsaW5lLWhlaWdodC4KKyAgICBzdHlsZVJlc29sdmVyLT51cGRh
dGVGb250KCk7CisgICAgYXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKHN0eWxlUmVzb2x2ZXIs
IENTU1Byb3BlcnR5Rm9udFNpemUsIHBhcnNlZFN0eWxlKTsKKyAgICBzdHlsZVJlc29sdmVyLT51
cGRhdGVGb250KCk7CisgICAgYXBwbHlQcm9wZXJ0eVRvQ3VycmVudFN0eWxlKHN0eWxlUmVzb2x2
ZXIsIENTU1Byb3BlcnR5TGluZUhlaWdodCwgcGFyc2VkU3R5bGUpOworCisgICAgZm9udCA9IHN0
eWxlLT5mb250KCk7CisgICAgZm9udC51cGRhdGUoc3R5bGVSZXNvbHZlci0+Zm9udFNlbGVjdG9y
KCkpOworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9Gb250TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjI1YjM1ZjNhM2MwNDgyNGEyOWY0MzVmZjcwN2QzMGFhNDAxZDBlMDMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5oCkBAIC0wLDAgKzEs
MTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
CisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SAorICogREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKKworI2lm
bmRlZiBGb250TG9hZGVyX2gKKyNkZWZpbmUgRm9udExvYWRlcl9oCisKKyNpbmNsdWRlICJBY3Rp
dmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiRXZl
bnROYW1lcy5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiVm9pZENhbGxi
YWNrLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBDYWNoZWRGb250OworY2xhc3MgQ1NTRm9udEZhY2VSdWxlOworY2xhc3MgQ1NTRm9u
dEZhY2VTb3VyY2U7CitjbGFzcyBEaWN0aW9uYXJ5OworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBF
dmVudDsKK2NsYXNzIEZvbnQ7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFz
cyBGb250TG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8Rm9udExvYWRlcj4sIHB1YmxpYyBBY3Rp
dmVET01PYmplY3QsIHB1YmxpYyBFdmVudFRhcmdldCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8Rm9udExvYWRlcj4gY3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZjxGb250TG9hZGVyPihuZXcgRm9udExvYWRlcihkb2N1bWVu
dCkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5Gb250TG9hZGVyKCk7CisKKyAgICBERUZJTkVfQVRU
UklCVVRFX0VWRU5UX0xJU1RFTkVSKGxvYWRpbmcpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZF
TlRfTElTVEVORVIobG9hZGluZ2RvbmUpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElT
VEVORVIobG9hZHN0YXJ0KTsKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGxv
YWQpOworICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZXJyb3IpOworCisgICAg
Ym9vbCBjaGVja0ZvbnQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBs
b2FkRm9udChjb25zdCBEaWN0aW9uYXJ5Jik7CisgICAgdm9pZCBub3RpZnlXaGVuRm9udHNSZWFk
eShQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4pOworCisgICAgYm9vbCBsb2FkaW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9sb2FkaW5nQ291bnQgPiAwOyB9CisKKyAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0OworCisgICAgdXNpbmcg
UmVmQ291bnRlZDxGb250TG9hZGVyPjo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8Rm9udExv
YWRlcj46OmRlcmVmOworCisgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4g
bV9kb2N1bWVudDsgfQorCisgICAgdm9pZCBkaWRMYXlvdXQoKTsKKyAgICB2b2lkIGJlZ2luRm9u
dExvYWRpbmcoQ1NTRm9udEZhY2VSdWxlKik7CisgICAgdm9pZCBmb250TG9hZGVkKENTU0ZvbnRG
YWNlUnVsZSopOworICAgIHZvaWQgbG9hZEVycm9yKENTU0ZvbnRGYWNlUnVsZSosIENTU0ZvbnRG
YWNlU291cmNlKik7CisgICAgdm9pZCBsb2FkaW5nRG9uZSgpOworCitwcml2YXRlOgorICAgIEZv
bnRMb2FkZXIoRG9jdW1lbnQqKTsKKworICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgp
IHsgcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIHsgZGVyZWYo
KTsgfQorICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKTsKKyAg
ICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCk7CisKKyAg
ICB2b2lkIHNjaGVkdWxlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOworICAgIHZvaWQgZmlyZVBl
bmRpbmdFdmVudHMoKTsKKyAgICBib29sIHJlc29sdmVGb250U3R5bGUoY29uc3QgU3RyaW5nJiwg
Rm9udCYpOworCisgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CisgICAgRXZlbnRUYXJnZXREYXRh
IG1fZXZlbnRUYXJnZXREYXRhOworICAgIHVuc2lnbmVkIG1fbG9hZGluZ0NvdW50OworICAgIFZl
Y3RvcjxSZWZQdHI8RXZlbnQ+ID4gbV9wZW5kaW5nRXZlbnRzOworICAgIFZlY3RvcjxSZWZQdHI8
Vm9pZENhbGxiYWNrPiA+IG1fY2FsbGJhY2tzOworICAgIFJlZlB0cjxFdmVudD4gbV9sb2FkaW5n
RG9uZUV2ZW50OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRm9u
dExvYWRlcl9oCisjZW5kaWYgLy8gRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Rm9udExvYWRlci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2IxZjhhMjRhNjlkODJhM2VjMTE1NzdiNTExNTk3
MGZhMzQ0YjI4MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9h
ZGVyLmlkbApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPUZPTlRfTE9BRF9FVkVO
VFMsCisgICAgVjhFbmFibGVkQXRSdW50aW1lPWZvbnRMb2FkRXZlbnRzLAorICAgIEFjdGl2ZURP
TU9iamVjdCwKKyAgICBFdmVudFRhcmdldCwKKyAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxE
b2N1bWVudCwKK10gaW50ZXJmYWNlIEZvbnRMb2FkZXIgeworCisgICAgYXR0cmlidXRlIEV2ZW50
TGlzdGVuZXIgb25sb2FkaW5nOworICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZGlu
Z2RvbmU7CisgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25sb2Fkc3RhcnQ7CisgICAgYXR0
cmlidXRlIEV2ZW50TGlzdGVuZXIgb25sb2FkOworICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVy
IG9uZXJyb3I7CisKKyAgICBib29sZWFuIGNoZWNrRm9udChpbiBET01TdHJpbmcgZm9udCwgaW4g
W09wdGlvbmFsPURlZmF1bHRJc051bGxTdHJpbmddIERPTVN0cmluZyB0ZXh0KTsKKyAgICB2b2lk
IGxvYWRGb250KGluIERpY3Rpb25hcnkgcGFyYW1zKTsKKyAgICB2b2lkIG5vdGlmeVdoZW5Gb250
c1JlYWR5KGluIFtDYWxsYmFja10gVm9pZENhbGxiYWNrIGNhbGxiYWNrKTsKKyAgICByZWFkb25s
eSBhdHRyaWJ1dGUgYm9vbGVhbiBsb2FkaW5nOworCisgICAgdm9pZCBhZGRFdmVudExpc3RlbmVy
KGluIERPTVN0cmluZyB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExp
c3RlbmVyIGxpc3RlbmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxd
IGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKGluIERP
TVN0cmluZyB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3Rl
bmVyIGxpc3RlbmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxd
IGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgYm9vbGVhbiBkaXNwYXRjaEV2ZW50KGluIEV2ZW50
IGV2dCkKKyAgICAgICAgcmFpc2VzKEV2ZW50RXhjZXB0aW9uKTsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAppbmRleCBjNTg0N2FmZDgyMGEyMTdkNDgxMTQwOTk5MDQwYWJlOTdiMGY3ZWU2Li5j
YTU1OTRjNjA2MmI4OWEyMGVlZDdlMDg5ODNjYTYxNmUzNjcwNWY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKQEAgLTc0LDYgKzc0LDcgQEAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vo
b2xkZXIuaCIKICNpbmNsdWRlICJGbG93VGhyZWFkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZv
Y3VzQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZvbnRMb2FkZXIuaCIKICNpbmNsdWRlICJGb3Jt
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIu
aCIKQEAgLTQ4OCw2ICs0ODksOSBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBj
b25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAjaWYgRU5BQkxFKFRF
TVBMQVRFX0VMRU1FTlQpCiAgICAgLCBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0KDApCiAjZW5kaWYK
KyNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKKyAgICAsIG1fZm9udGxvYWRlcigwKQorI2Vu
ZGlmCiB7CiAgICAgbV9wcmludGluZyA9IGZhbHNlOwogICAgIG1fcGFnaW5hdGVkRm9yU2NyZWVu
ID0gZmFsc2U7CkBAIC02MDg2LDQgKzYwOTAsMTMgQEAgRG9jdW1lbnQqIERvY3VtZW50OjplbnN1
cmVUZW1wbGF0ZURvY3VtZW50KCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEZPTlRfTE9BRF9F
VkVOVFMpCitQYXNzUmVmUHRyPEZvbnRMb2FkZXI+IERvY3VtZW50Ojpmb250bG9hZGVyKCkKK3sK
KyAgICBpZiAoIW1fZm9udGxvYWRlcikKKyAgICAgICAgbV9mb250bG9hZGVyID0gRm9udExvYWRl
cjo6Y3JlYXRlKHRoaXMpOworICAgIHJldHVybiBtX2ZvbnRsb2FkZXI7Cit9CisjZW5kaWYKKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBhNDFhMDVkZTEz
NDgxMmE4NTNkY2Y1MGFhMjA5YWYzYWVkYTA3ZmViLi5kZDFiMTgxMjUwMjRkNDkwYjc5ZDlmZTcx
NjEyOTcxZTY3Y2VkYWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTkwLDYgKzE5MCwxMCBA
QCBjbGFzcyBUZXh0QXV0b3NpemVyOwogY2xhc3MgRE9NU2VjdXJpdHlQb2xpY3k7CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQorY2xhc3MgRm9udExvYWRlcjsKKyNlbmRp
ZgorCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCiBlbnVtIFBhZ2VzaG93RXZlbnRQZXJz
aXN0ZW5jZSB7CkBAIC0xMTk2LDYgKzEyMDAsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBj
b25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKCkgY29uc3QgT1ZFUlJJREU7CiAKKyNpZiBF
TkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKKyAgICBQYXNzUmVmUHRyPEZvbnRMb2FkZXI+IGZvbnRs
b2FkZXIoKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25z
dCBLVVJMJiwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCk7CiAKQEAgLTE1NjQsNiArMTU3Miwx
MCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxEb2N1bWVudD4gbV90ZW1wbGF0ZURvY3VtZW50Owog
ICAgIERvY3VtZW50KiBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0OyAvLyBNYW51YWxseSBtYW5hZ2Vk
IHdlYWtyZWYgKGJhY2twb2ludGVyIGZyb20gbV90ZW1wbGF0ZURvY3VtZW50KS4KICNlbmRpZgor
CisjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCisgICAgUmVmUHRyPEZvbnRMb2FkZXI+IG1f
Zm9udGxvYWRlcjsKKyNlbmRpZgogfTsKIAogaW5saW5lIHZvaWQgRG9jdW1lbnQ6Om5vdGlmeVJl
bW92ZVBlbmRpbmdTaGVldElmTmVlZGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IDBl
MDZmYzdmMmQ4MTkxNmY4NTI1NTAwOGIyNzliY2M1NWNkM2MwOGUuLmNhYTU4Y2YzMDBiYzM5Yzhk
NTAxNzYxODE0YmM0ZTcyY2NiMDVjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbApAQCAtMjYy
LDYgKzI2MiwxMCBAQAogCiAgICAgW0NvbmRpdGlvbmFsPUNTU19SRUdJT05TLCBWOEVuYWJsZWRB
dFJ1bnRpbWU9Y3NzUmVnaW9uc10gRE9NTmFtZWRGbG93Q29sbGVjdGlvbiB3ZWJraXRHZXROYW1l
ZEZsb3dzKCk7CiAKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdF
X0pBVkFTQ1JJUFQKKyAgICBbQ29uZGl0aW9uYWw9Rk9OVF9MT0FEX0VWRU5UUywgVjhFbmFibGVk
QXRSdW50aW1lPWZvbnRMb2FkRXZlbnRzXSByZWFkb25seSBhdHRyaWJ1dGUgRm9udExvYWRlciBm
b250bG9hZGVyOworI2VuZGlmCisKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykg
fHwgIUxBTkdVQUdFX09CSkVDVElWRV9DCiAgICAgLy8gRXZlbnQgaGFuZGxlciBET00gYXR0cmli
dXRlcwogICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmFib3J0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggMjJhN2IzMmJhYjc5YmM1MjYwMDc2NDFhM2I5
MWNjNDBjNTFiNGM2ZC4uM2I1ZjIzMjIyNGUzOWNiY2FkMTNhMzk3OTc0MjdiNjkwOWNkMmNiNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC04NCw2ICs4NCw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBtYWNybyhrZXl1cCkgXAogICAgIG1hY3JvKGxldmVsY2hhbmdlKSBcCiAgICAg
bWFjcm8obG9hZCkgXAorICAgIG1hY3JvKGxvYWRpbmcpIFwKKyAgICBtYWNybyhsb2FkaW5nZG9u
ZSkgXAogICAgIG1hY3JvKGxvYWRzdGFydCkgXAogICAgIG1hY3JvKG1lc3NhZ2UpIFwKICAgICBt
YWNybyhtb3VzZWRvd24pIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5h
bWVzLmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KaW5kZXggYzA0YjAyNWNl
YzQwNzA0NzJjMzIyZWFlMGZhNjdhOGVmNmRkYzYwZi4uZmI3NGVmNjllODFlNDY3MmYyODQwZGI3
OTdkNzAxOGRjMDQ2YzJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFt
ZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KQEAgLTU2LDMgKzU2
LDQgQEAgTWVkaWFLZXlNZXNzYWdlRXZlbnQgY29uZGl0aW9uYWw9RU5DUllQVEVEX01FRElBX1Yy
CiBNZWRpYUtleU5lZWRlZEV2ZW50IGNvbmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJQV9WMgogVHJh
Y2tFdmVudCBjb25kaXRpb25hbD1WSURFT19UUkFDSwogQXV0b2NvbXBsZXRlRXJyb3JFdmVudCBj
b25kaXRpb25hbD1SRVFVRVNUX0FVVE9DT01QTEVURQorQ1NTRm9udEZhY2VMb2FkRXZlbnQgY29u
ZGl0aW9uYWw9Rk9OVF9MT0FEX0VWRU5UUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50VGFyZ2V0RmFjdG9yeS5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZh
Y3RvcnkuaW4KaW5kZXggY2Y1YWNmNzVjM2JlNDkwMzBkMzg3MTIzOTMwMzg0ZTE4MDA0ZjRjOC4u
YTBjMDE0NDBjY2ZiZjc4YTVlOTI5YmJhZjM2YTAzNTllOTUzMjQyNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCkBAIC04LDYgKzgsNyBAQCBET01XaW5kb3cKIEV2
ZW50U291cmNlCiBGaWxlUmVhZGVyIGNvbmRpdGlvbmFsPUJMT0IKIEZpbGVXcml0ZXIgY29uZGl0
aW9uYWw9RklMRV9TWVNURU0KK0ZvbnRMb2FkZXIgY29uZGl0aW9uYWw9Rk9OVF9MT0FEX0VWRU5U
UwogSURCRGF0YWJhc2UgY29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQogSURCT3BlbkRCUmVx
dWVzdCBjb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCiBJREJSZXF1ZXN0IGNvbmRpdGlvbmFs
PUlOREVYRURfREFUQUJBU0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAxZjU3ZTBj
Mjc0YzdmM2I5MDNhN2M2YzY0MTk4MDFmYWU1NTc2OTNiLi5lMDA3NmUyYjQxYWU1MmJkNDZkNWFl
NzI3Y2ZiMGQ4ZDYxMWJlYWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0zNyw2
ICszNyw3IEBACiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCisjaW5jbHVkZSAiRm9udExvYWRlci5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVBY3Rpb25TY2hlZHVsZXIuaCIKICNp
bmNsdWRlICJGcmFtZUxvYWRlci5oIgpAQCAtMjY0MSw2ICsyNjQyLDEwIEBAIHZvaWQgRnJhbWVW
aWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tzKCkKICAgICB9CiAKICAgICBtX2ZyYW1lLT5sb2Fk
ZXIoKS0+ZGlkTGF5b3V0KG1pbGVzdG9uZXNBY2hpZXZlZCk7CisjaWYgRU5BQkxFKEZPTlRfTE9B
RF9FVkVOVFMpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmZvbnRMb2FkRXZlbnRz
RW5hYmxlZCgpKQorICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5mb250bG9hZGVyKCktPmRp
ZExheW91dCgpOworI2VuZGlmCiAgICAgCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBjb25zaWRl
ciBhZGRpbmcgRGlkTGF5b3V0IGFzIGEgTGF5b3V0TWlsZXN0b25lLiBUaGF0IHdvdWxkIGxldCB1
cyBtZXJnZSB0aGlzCiAgICAgLy8gd2l0aCBkaWRMYXlvdXQoTGF5b3V0TWlsZXN0b25lcykuCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZThjZGFk
ZjljODVkODdkMjlkZDU0OWY1YzgwNjc0ZTZlZWY1Njc4Ny4uMzYzM2ExNDMxYzc1OTNjMjlhODUx
ZWYyY2Q2OWQwODVjNTg3ODI3YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAzLTEyICBLdW5paGlrbyBTYWth
bW90byAgPGtzYWthbW90b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IEZvbnRM
b2FkZXIgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05ODM5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEVuYWJsZSBGb250TG9hZEV2ZW50cyBydW50aW1lIGZsYWcgZm9yIFRlc3RTaGVsbC4K
KworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJ
bnRlcmZhY2VzLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RJbnRlcmZhY2VzOjpU
ZXN0SW50ZXJmYWNlcyk6CisKIDIwMTMtMDMtMTEgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBw
bGUuY29tPgogCiAgICAgICAgIFtNYWNdW1dLMV0gQWRkIHN1cHBvcnQgZm9yIGFsZXJ0KCkgaW4g
TWluaUJyb3dzZXIuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5jcHAKaW5kZXggMTI0ZDcyMmIx
YjcyYmJmZTA5NzEyMGI3NDEwNjQ2YjczYjI0OTUyOS4uNGQ4YTAwYzk2Y2ZjOWFjYjNkMGM3MzZj
MjM2ZjE2ZGE3OWY2MjNjNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmNwcApAQCAtNjks
NiArNjksNyBAQCBUZXN0SW50ZXJmYWNlczo6VGVzdEludGVyZmFjZXMoKQogICAgIFdlYlJ1bnRp
bWVGZWF0dXJlczo6ZW5hYmxlSW5wdXRUeXBlVGltZSh0cnVlKTsKICAgICBXZWJSdW50aW1lRmVh
dHVyZXM6OmVuYWJsZUlucHV0VHlwZVdlZWsodHJ1ZSk7CiAgICAgV2ViUnVudGltZUZlYXR1cmVz
OjplbmFibGVGaWxlU3lzdGVtKHRydWUpOworICAgIFdlYlJ1bnRpbWVGZWF0dXJlczo6ZW5hYmxl
Rm9udExvYWRFdmVudHModHJ1ZSk7CiAgICAgV2ViUnVudGltZUZlYXR1cmVzOjplbmFibGVKYXZh
U2NyaXB0STE4TkFQSSh0cnVlKTsKICAgICBXZWJSdW50aW1lRmVhdHVyZXM6OmVuYWJsZU1lZGlh
U291cmNlKHRydWUpOwogICAgIFdlYlJ1bnRpbWVGZWF0dXJlczo6ZW5hYmxlRW5jcnlwdGVkTWVk
aWEodHJ1ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMTMxYjdkMDA0MDMxNmQwZTFhOTMwNTljYzQxZTkxYzhlYjU0NjJi
MS4uYzZhZThlZmMzYWFhNjkyOGUyOGMwYjUwNTMxM2Y0MWZjMTQwMjE4YyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM1IEBACisyMDEzLTAzLTEyICBLdW5paGlrbyBTYWthbW90byAgPGtzYWthbW90b0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IEZvbnRMb2FkZXIgaW50ZXJmYWNlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODM5NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyBmb3Ig
ZG9jdW1lbnQuZm9udGxvYWRlci4gU2luY2UgdGhlIGZlYXR1cmUgaXMgY3VycmVudGx5IGVuYWJs
ZWQKKyAgICAgICAgb25seSBmb3IgY2hyb21pdW0sIHRoZSB0ZXN0cyBhcmUgZXhwZWN0ZWQgdG8g
ZmFpbCBvbiB0aGUgb3RoZXIgcG9ydHMuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9mb250bG9hZGVy
LWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mv
Zm9udGxvYWRlci1kb3dubG9hZC1lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nz
cy9mb250bG9hZGVyLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
Y3NzL2ZvbnRsb2FkZXItZXZlbnRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2Zv
bnRsb2FkZXItbG9hZGluZ2RvbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2Nzcy9mb250bG9hZGVyLWxvYWRpbmdkb25lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
Y3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRv
d25sb2FkLWVycm9yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2ZvbnRsb2FkZXIt
bXVsdGlwbGUtZmFjZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9m
b250bG9hZGVyLW11bHRpcGxlLWZhY2VzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3Nz
L2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFtaWxpZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhbWlsaWVzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJmb250L2ZvbnRs
b2FkZXItbG9hZGluZy1hdHRyaWJ1dGUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXIt
ZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9jc3MvZm9udGxvYWRlci1sb2FkaW5nZG9uZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFj
ZXMtZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRl
ci1tdWx0aXBsZS1mYW1pbGllcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmli
dXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTMtMDMtMTIgIFZzZXZvbG9kIFZsYXNvdiAg
PHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogU2V2ZXJhbCBp
bnNwZWN0b3IgdGVzdHMgYXJlIGZsYWt5IGJlYWN1c2Ugb2YgYmVmb3Jlb25sb2FkIGV2ZW50IGhh
bmRsZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWRvd25s
b2FkLWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXIt
ZG93bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxNDU4MDExYzk0NjgyZjVh
MTNhZWY0NjM1NjI0NWY1MTliNjg5MjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE0IEBACitUZXN0IGRvd25sb2FkIGVycm9yIGNhc2VzLiAibG9hZCIgb3IgImVycm9yIiBldmVu
dHMgc2hvdWxkIGJlIGZpcmVkIGV4YWN0bHkgb25jZSBmb3IgZWFjaCBAZm9udC1mYWNlIHJ1bGUu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitGQUlMIGRvY3VtZW50LmZvbnRsb2Fk
ZXIgZG9lcyBub3QgZXhpc3QKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorZm9udDEKK2ZvbnQyCitmb250MworZm9udDQKK2ZvbnQ1CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9yLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9yLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDdiYWY4MWIwZjlkMTNmNDUzYjY5MDFhMWYzYmQ4M2E1OWEzMmViYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZG93bmxvYWQtZXJyb3Iu
aHRtbApAQCAtMCwwICsxLDgwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisvKiBUZXN0IDE6
IEludmFsaWQgZm9udCBkYXRhICovCitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogbXlm
b250MTsKKyAgICBzcmM6IHVybCgncmVzb3VyY2VzL2ludmFsaWRmb250LnBuZycpIGZvcm1hdChv
cGVudHlwZSk7Cit9CisKKy8qIFRlc3QgMjogRG93bmxvYWQgZXJyb3IgKi8KK0Bmb250LWZhY2Ug
eworICAgIGZvbnQtZmFtaWx5OiBteWZvbnQyOworICAgIHNyYzogdXJsKCdyZXNvdXJjZXMvRG93
bkxvYWRFcnJvckFoZW0ub3RmJyk7Cit9CisKKy8qIFRlc3QgMzogRW1wdHkgZGF0YSB1cmwgKi8K
K0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiBteWZvbnQzOworICAgIHNyYzogdXJsKGRh
dGE6YXBwbGljYXRpb24veC10cnVldHlwZS1mb250LCkgZm9ybWF0KHRydWV0eXBlKTsKK30KKwor
LyogVGVzdCA0OiBEb3dubG9hZCBlcnJvciBmb2xsb3dlZCBieSBleGlzdGluZyBsb2NhbCBmb250
ICovCitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogbXlmb250NDsKKyAgICBzcmM6IHVy
bCgncmVzb3VyY2VzL0Rvd25Mb2FkRXJyb3JBaGVtLm90ZicpLCBsb2NhbCgnQ291cmllciBOZXcn
KTsKK30KKworLyogVGVzdCA1OiBNdWx0aXBsZSBlcnJvcnMgKi8KK0Bmb250LWZhY2UgeworICAg
IGZvbnQtZmFtaWx5OiBteWZvbnQ1OworICAgIHNyYzogdXJsKCdyZXNvdXJjZXMvRG93bkxvYWRF
cnJvckFoZW0ub3RmJyksIHVybChkYXRhOmFwcGxpY2F0aW9uL3gtdHJ1ZXR5cGUtZm9udCwpIGZv
cm1hdCh0cnVldHlwZSk7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0
IGRvd25sb2FkIGVycm9yIGNhc2VzLiAibG9hZCIgb3IgImVycm9yIiBldmVudHMgc2hvdWxkIGJl
IGZpcmVkIGV4YWN0bHkgb25jZSBmb3IgZWFjaCBAZm9udC1mYWNlIHJ1bGUuJyk7CisKK3dpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV2ZW50cyA9IHt9OworCitmdW5jdGlvbiBs
b2dFdmVudChlKSB7CisgICAgdmFyIGZhbWlseSA9IGUuZm9udGZhY2Uuc3R5bGUuZ2V0UHJvcGVy
dHlWYWx1ZSgnZm9udC1mYW1pbHknKTsKKyAgICBpZiAoIWV2ZW50c1tmYW1pbHldKQorICAgICAg
ICBldmVudHNbZmFtaWx5XSA9IFtdOworICAgIGV2ZW50c1tmYW1pbHldLnB1c2goZS50eXBlKTsK
K30KKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5hZGRF
dmVudExpc3RlbmVyKCdsb2Fkc3RhcnQnLCBsb2dFdmVudCk7CisgICAgZG9jdW1lbnQuZm9udGxv
YWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgbG9nRXZlbnQpOworICAgIGRvY3VtZW50LmZv
bnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBsb2dFdmVudCk7CisKKyAgICBkb2N1
bWVudC5mb250bG9hZGVyLm5vdGlmeVdoZW5Gb250c1JlYWR5KGZ1bmN0aW9uKCkgeworICAgICAg
ICBzaG91bGRCZSgiZXZlbnRzWydteWZvbnQxJ10iLCAiWydsb2Fkc3RhcnQnLCAnZXJyb3InXSIp
OworICAgICAgICBzaG91bGRCZSgiZXZlbnRzWydteWZvbnQyJ10iLCAiWydsb2Fkc3RhcnQnLCAn
ZXJyb3InXSIpOworICAgICAgICBzaG91bGRCZSgiZXZlbnRzWydteWZvbnQzJ10iLCAiWydsb2Fk
c3RhcnQnLCAnZXJyb3InXSIpOworICAgICAgICBzaG91bGRCZSgiZXZlbnRzWydteWZvbnQ0J10i
LCAiWydsb2Fkc3RhcnQnLCAnbG9hZCddIik7CisgICAgICAgIHNob3VsZEJlKCJldmVudHNbJ215
Zm9udDUnXSIsICJbJ2xvYWRzdGFydCcsICdlcnJvciddIik7CisgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgIH0pOworfQorCitpZiAoZG9jdW1lbnQuZm9udGxvYWRlcikKKyAgICBydW5UZXN0
cygpOworZWxzZSB7CisgICAgdGVzdEZhaWxlZCgnZG9jdW1lbnQuZm9udGxvYWRlciBkb2VzIG5v
dCBleGlzdCcpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IG15Zm9udDEiPmZvbnQxPC9kaXY+Cisg
IDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBteWZvbnQyIj5mb250MjwvZGl2PgorICA8ZGl2IHN0
eWxlPSJmb250LWZhbWlseTogbXlmb250MyI+Zm9udDM8L2Rpdj4KKyAgPGRpdiBzdHlsZT0iZm9u
dC1mYW1pbHk6IG15Zm9udDQiPmZvbnQ0PC9kaXY+CisgIDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5
OiBteWZvbnQ1Ij5mb250NTwvZGl2PgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWV2ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDA3ZWViY2I1NWE0MTViNzg5NTg4ZmEwMmNkMGY5ZGI0M2EyOTZlYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZXZlbnRzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACitUZXN0IHRoYXQgdGhlIGV2ZW50IGhhbmRsZXJzIG9mIEZvbnRM
b2FkZXIgYXJlIGNhbGxlZCBpbiB0aGUgY29ycmVjdCBvcmRlci4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK0ZBSUwgZG9jdW1lbnQuZm9udGxvYWRlciBkb2VzIG5vdCBleGlzdAor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitIZWxsbywg
d29ybGQhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWV2ZW50
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1ldmVudHMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lYzI5NTAwZDdlMmE5NjA2MTVkNzY2MTA3MTI1MGNiMjVlOTIxZWY5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1ldmVudHMuaHRtbApA
QCAtMCwwICsxLDQ5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAg
Zm9udC1mYW1pbHk6ICdhaGVtJzsKKyAgc3JjOiB1cmwoLi4vLi4vcmVzb3VyY2VzL0FoZW0udHRm
KTsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCB0aGUgZXZl
bnQgaGFuZGxlcnMgb2YgRm9udExvYWRlciBhcmUgY2FsbGVkIGluIHRoZSBjb3JyZWN0IG9yZGVy
LicpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBldmVudDsKK3ZhciBu
dW1iZXJPZkV2ZW50cyA9IDA7CisKK2Z1bmN0aW9uIGhhbmRsZUV2ZW50KGUpIHsKKyAgICBldmVu
dCA9IGU7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdldmVudC50eXBlJywgWydsb2FkaW5n
JywgJ2xvYWRzdGFydCcsICdsb2FkJywgJ2xvYWRpbmdkb25lJ11bbnVtYmVyT2ZFdmVudHNdKTsK
KyAgICBudW1iZXJPZkV2ZW50cysrOworfQorCitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAgICBk
b2N1bWVudC5mb250bG9hZGVyLm9ubG9hZGluZyA9IGhhbmRsZUV2ZW50OworICAgIGRvY3VtZW50
LmZvbnRsb2FkZXIub25sb2FkaW5nZG9uZSA9IGhhbmRsZUV2ZW50OworICAgIGRvY3VtZW50LmZv
bnRsb2FkZXIub25sb2Fkc3RhcnQgPSBoYW5kbGVFdmVudDsKKyAgICBkb2N1bWVudC5mb250bG9h
ZGVyLm9ubG9hZCA9IGhhbmRsZUV2ZW50OworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIub25lcnJv
ciA9IGhhbmRsZUV2ZW50OworCisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5ub3RpZnlXaGVuRm9u
dHNSZWFkeShmdW5jdGlvbigpIHsKKyAgICAgICAgc2hvdWxkQmUoJ251bWJlck9mRXZlbnRzJywg
JzQnKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7Cit9CisKK2lmIChkb2N1bWVu
dC5mb250bG9hZGVyKQorICAgIHJ1blRlc3RzKCk7CitlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKCdk
b2N1bWVudC5mb250bG9hZGVyIGRvZXMgbm90IGV4aXN0Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IHN0eWxlPSJmb250LWZhbWls
eTogYWhlbSI+SGVsbG8sIHdvcmxkITwvZGl2PgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWxvYWRpbmdkb25lLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbG9hZGluZ2RvbmUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRiYTk2OGUyMDIxNjc2ZjY2NmFmY2VkYzc1MjE5YWJkNmZjOGNi
YmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWxv
YWRpbmdkb25lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IHRoYXQgb25sb2Fk
aW5nZG9uZSBpcyBmaXJlZCBhZnRlciBzdHlsZSByZWNhbGN1bGF0aW9uLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworRkFJTCBkb2N1bWVudC5mb250bG9hZGVyIGRvZXMgbm90IGV4
aXN0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK2Fh
YQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1sb2FkaW5nZG9u
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1sb2FkaW5nZG9uZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIzYjA2NTcxOTEzZWNlYTQwMjI3OGY4ZWFmNzc1YzAxNzJmYWY1NWMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLWxvYWRpbmdk
b25lLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorYm9keSB7
CisgIGZvbnQtZmFtaWx5OiBzZXJpZjsKK30KK0Bmb250LWZhY2UgeworICBmb250LWZhbWlseTog
J2FoZW0nOworICBzcmM6IHVybCguLi8uLi9yZXNvdXJjZXMvQWhlbS50dGYpOworfQorI3Rlc3Qg
eworICBwb3NpdGlvbjogYWJzb2x1dGUKK30KKyN0ZXN0IHNwYW4geworICBmb250LWZhbWlseTog
YWhlbTsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCBvbmxv
YWRpbmdkb25lIGlzIGZpcmVkIGFmdGVyIHN0eWxlIHJlY2FsY3VsYXRpb24uJyk7CisKK3dpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgZG9j
dW1lbnQuZm9udGxvYWRlci5vbmxvYWRpbmdkb25lID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGRl
YnVnKCdsb2FkaW5nZG9uZScpOworICAgICAgICB0ZXN0RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3QnKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZSh0ZXN0RGl2LCAwKS53aWR0aCcsICc0OHB4Jyk7CisgICAgfTsKKworICAg
IGRvY3VtZW50LmZvbnRsb2FkZXIubm90aWZ5V2hlbkZvbnRzUmVhZHkoZnVuY3Rpb24oKSB7Cisg
ICAgICAgIGRlYnVnKCdub3RpZnlXaGVuRm9udHNSZWFkeSgpIGNhbGxiYWNrJyk7CisgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygnd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdERpdiwg
MCkud2lkdGgnLCAnNDhweCcpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKK30K
KworaWYgKGRvY3VtZW50LmZvbnRsb2FkZXIpCisgICAgcnVuVGVzdHMoKTsKK2Vsc2UgeworICAg
IHRlc3RGYWlsZWQoJ2RvY3VtZW50LmZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QnKTsKKyAgICBm
aW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9
dGVzdD4KKyAgICA8YSBocmVmPSIjIj4KKyAgICAgIDxzcGFuPmFhYTwvc3Bhbj4KKyAgICA8L2E+
CisgIDwvZGl2PgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93
bmxvYWQtZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyMTczOWM2NWExMDM5MWFlMTVm
NDNmYjQyNDA1MjcwMmE4ZWRjNTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGxvYWQgZXZlbnRzIGZvciBhIGZvbnQgZmFtaWx5IGNv
bnNpc3RzIG9mIG11bHRpcGxlIEBmb250LWZhY2VzLCBpbmNsdWRpbmcgZG93bmxvYWQgZXJyb3Iu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitGQUlMIGRvY3VtZW50LmZvbnRsb2Fk
ZXIgZG9lcyBub3QgZXhpc3QKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVy
LW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzFlNmI4ZWY2NTE4YTgzMGYzNDliYzAyZTljOTE2Yjk4ZDUyODQ5NQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZG93
bmxvYWQtZXJyb3IuaHRtbApAQCAtMCwwICsxLDcwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+
CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogVGVzdEZvbnQ7CisgICAgc3JjOiB1cmwo
Li4vLi4vcmVzb3VyY2VzL0FoZW0udHRmKTsKK30KKworQGZvbnQtZmFjZSB7CisgICAgZm9udC1m
YW1pbHk6IFRlc3RGb250OworICAgIHNyYzogdXJsKCdyZXNvdXJjZXMvRG93bkxvYWRFcnJvckFo
ZW0ub3RmJyk7CisgICAgdW5pY29kZS1yYW5nZTogdSs2MS03YTsgLyogJ2EnLSd6JyAqLworfQor
PC9zdHlsZT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBsb2FkIGV2ZW50cyBmb3IgYSBm
b250IGZhbWlseSBjb25zaXN0cyBvZiBtdWx0aXBsZSBAZm9udC1mYWNlcywgaW5jbHVkaW5nIGRv
d25sb2FkIGVycm9yLicpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBl
dmVudHMgPSB7fTsKKworZnVuY3Rpb24gY291bnRFdmVudChlKSB7CisgICAgaWYgKCFldmVudHNb
ZS50eXBlXSkKKyAgICAgICAgZXZlbnRzW2UudHlwZV0gPSAwOworICAgIGV2ZW50c1tlLnR5cGVd
ICs9IDE7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICAgIGRvY3VtZW50LmZvbnRsb2Fk
ZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGluZycsIGNvdW50RXZlbnQpOworICAgIGRvY3VtZW50
LmZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZHN0YXJ0JywgY291bnRFdmVudCk7Cisg
ICAgZG9jdW1lbnQuZm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgY291bnRFdmVu
dCk7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGNv
dW50RXZlbnQpOworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9h
ZGluZ2RvbmUnLCBjb3VudEV2ZW50KTsKKworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIubG9hZEZv
bnQoeyBmb250OiAnMTBweCBUZXN0Rm9udCcsIG9uc3VjY2Vzczogb25zdWNjZXNzLCBvbmVycm9y
OiBvbmVycm9yIH0pOworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIubm90aWZ5V2hlbkZvbnRzUmVh
ZHkodmVyaWZ5KTsKK30KKworZnVuY3Rpb24gb25zdWNjZXNzKCkgeworICAgIHRlc3RGYWlsZWQo
IkV4cGVjdGVkIGVycm9yLCBidXQgb25zdWNjZXNzKCkgY2FsbGVkIik7CisgICAgb25lcnJvcigp
OworfQorCitmdW5jdGlvbiBvbmVycm9yKCkgeworICAgIHNob3VsZEJlKCJldmVudHNbJ2xvYWRp
bmcnXSIsICIxIik7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZHN0YXJ0J10iLCAiMiIpOwor
ICAgIHNob3VsZEJlKCJldmVudHNbJ2xvYWQnXSIsICIxIik7CisgICAgc2hvdWxkQmUoImV2ZW50
c1snZXJyb3InXSIsICIxIik7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZGluZ2RvbmUnXSIs
ICJ1bmRlZmluZWQiKTsKKyAgICBzaG91bGRCZSgiZG9jdW1lbnQuZm9udGxvYWRlci5jaGVja0Zv
bnQoJzEwcHggVGVzdEZvbnQnKSIsICJmYWxzZSIpOworfQorCitmdW5jdGlvbiB2ZXJpZnkoKSB7
CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZGluZ2RvbmUnXSIsICIxIik7CisgICAgZmluaXNo
SlNUZXN0KCk7Cit9CisKK2lmIChkb2N1bWVudC5mb250bG9hZGVyKQorICAgIHJ1blRlc3RzKCk7
CitlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKCdkb2N1bWVudC5mb250bG9hZGVyIGRvZXMgbm90IGV4
aXN0Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9m
b250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFjZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdl
ZDdhNjIyOGJmNjgxMjI5ZGFkOWQ1MTMyMDJiYzY4NzkxODk0ZDgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGxvYWQgZXZlbnRzIGZvciBhIGZvbnQgZmFtaWx5
IGNvbnNpc3RzIG9mIG11bHRpcGxlIEBmb250LWZhY2VzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworRkFJTCBkb2N1bWVudC5mb250bG9hZGVyIGRvZXMgbm90IGV4aXN0CitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjAxZmQwYmExNzU3ZmRmODU4NTk3MjI0N2U3MjJkNzFiMDEwM2VjYjMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2Vz
Lmh0bWwKQEAgLTAsMCArMSw3MCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorQGZvbnQtZmFj
ZSB7CisgICAgZm9udC1mYW1pbHk6IFRlc3RGb250OworICAgIHNyYzogbG9jYWwoJ0NvdXJpZXIg
TmV3Jyk7Cit9CisKK0Bmb250LWZhY2UgeworICAgIGZvbnQtZmFtaWx5OiBUZXN0Rm9udDsKKyAg
ICBzcmM6IHVybCguLi8uLi9yZXNvdXJjZXMvQWhlbS50dGYpOworICAgIHVuaWNvZGUtcmFuZ2U6
IHUrNjEtN2E7IC8qICdhJy0neicgKi8KK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZGVzY3JpcHRp
b24oJ1Rlc3QgbG9hZCBldmVudHMgZm9yIGEgZm9udCBmYW1pbHkgY29uc2lzdHMgb2YgbXVsdGlw
bGUgQGZvbnQtZmFjZXMuJyk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFy
IGV2ZW50cyA9IHt9OworCitmdW5jdGlvbiBjb3VudEV2ZW50KGUpIHsKKyAgICBpZiAoIWV2ZW50
c1tlLnR5cGVdKQorICAgICAgICBldmVudHNbZS50eXBlXSA9IDA7CisgICAgZXZlbnRzW2UudHlw
ZV0gKz0gMTsKK30KKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgZG9jdW1lbnQuZm9udGxv
YWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkaW5nJywgY291bnRFdmVudCk7CisgICAgZG9jdW1l
bnQuZm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2Fkc3RhcnQnLCBjb3VudEV2ZW50KTsK
KyAgICBkb2N1bWVudC5mb250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBjb3VudEV2
ZW50KTsKKyAgICBkb2N1bWVudC5mb250bG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywg
Y291bnRFdmVudCk7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCds
b2FkaW5nZG9uZScsIGNvdW50RXZlbnQpOworCisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5sb2Fk
Rm9udCh7IGZvbnQ6ICcxMHB4IFRlc3RGb250Jywgb25zdWNjZXNzOiBvbnN1Y2Nlc3MsIG9uZXJy
b3I6IG9uZXJyb3IgfSk7CisgICAgZG9jdW1lbnQuZm9udGxvYWRlci5ub3RpZnlXaGVuRm9udHNS
ZWFkeSh2ZXJpZnkpOworfQorCitmdW5jdGlvbiBvbnN1Y2Nlc3MoKSB7CisgICAgc2hvdWxkQmUo
ImV2ZW50c1snbG9hZGluZyddIiwgIjEiKTsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydsb2Fkc3Rh
cnQnXSIsICIyIik7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZCddIiwgIjIiKTsKKyAgICBz
aG91bGRCZSgiZXZlbnRzWydlcnJvciddIiwgInVuZGVmaW5lZCIpOworICAgIHNob3VsZEJlKCJl
dmVudHNbJ2xvYWRpbmdkb25lJ10iLCAidW5kZWZpbmVkIik7CisgICAgc2hvdWxkQmUoImRvY3Vt
ZW50LmZvbnRsb2FkZXIuY2hlY2tGb250KCcxMHB4IFRlc3RGb250JykiLCAidHJ1ZSIpOworfQor
CitmdW5jdGlvbiBvbmVycm9yKCkgeworICAgIHRlc3RGYWlsZWQoIkV4cGVjdGVkIHN1Y2Nlc3Ms
IGJ1dCBvbmVycm9yKCkgY2FsbGVkIik7CisgICAgb25zdWNjZXNzKCk7Cit9CisKK2Z1bmN0aW9u
IHZlcmlmeSgpIHsKKyAgICBzaG91bGRCZSgiZXZlbnRzWydsb2FkaW5nZG9uZSddIiwgIjEiKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworaWYgKGRvY3VtZW50LmZvbnRsb2FkZXIpCisgICAg
cnVuVGVzdHMoKTsKK2Vsc2UgeworICAgIHRlc3RGYWlsZWQoJ2RvY3VtZW50LmZvbnRsb2FkZXIg
ZG9lcyBub3QgZXhpc3QnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+CisgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFtaWxpZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYW1pbGllcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTIwMGIwNDJkZjYwMmVhZGMwZGMzZWFlMmU2MjY3MmRkODUzNWJjNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlw
bGUtZmFtaWxpZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgbG9hZCBldmVu
dHMgZm9yIGZvbnRsb2FkZXIubG9hZEZvbnQoKSB3aXRoIG11bHRpcGxlIGZvbnQgZmFtaWxpZXMu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitGQUlMIGRvY3VtZW50LmZvbnRsb2Fk
ZXIgZG9lcyBub3QgZXhpc3QKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVy
LW11bHRpcGxlLWZhbWlsaWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVy
LW11bHRpcGxlLWZhbWlsaWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGU1MWFiZGZkZTlmZGFmM2ExZGYy
MGU2N2EwNTJmZTA2ZjA0MmE3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFtaWxpZXMuaHRtbApAQCAtMCwwICsxLDY5IEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250LWZhbWlseTogVGVz
dEZvbnQxOworICAgIHNyYzogbG9jYWwoJ0NvdXJpZXIgTmV3Jyk7Cit9CisKK0Bmb250LWZhY2Ug
eworICAgIGZvbnQtZmFtaWx5OiBUZXN0Rm9udDI7CisgICAgc3JjOiB1cmwoLi4vLi4vcmVzb3Vy
Y2VzL0FoZW0udHRmKTsKKyAgICB1bmljb2RlLXJhbmdlOiB1KzYxLTdhOyAvKiAnYSctJ3onICov
Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGxvYWQgZXZlbnRzIGZv
ciBmb250bG9hZGVyLmxvYWRGb250KCkgd2l0aCBtdWx0aXBsZSBmb250IGZhbWlsaWVzLicpOwor
Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBldmVudHMgPSB7fTsKKworZnVu
Y3Rpb24gY291bnRFdmVudChlKSB7CisgICAgaWYgKCFldmVudHNbZS50eXBlXSkKKyAgICAgICAg
ZXZlbnRzW2UudHlwZV0gPSAwOworICAgIGV2ZW50c1tlLnR5cGVdICs9IDE7Cit9CisKK2Z1bmN0
aW9uIHJ1blRlc3RzKCkgeworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5l
cignbG9hZGluZycsIGNvdW50RXZlbnQpOworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIuYWRkRXZl
bnRMaXN0ZW5lcignbG9hZHN0YXJ0JywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQuZm9udGxv
YWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgY291bnRFdmVudCk7CisgICAgZG9jdW1lbnQu
Zm9udGxvYWRlci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGNvdW50RXZlbnQpOworICAgIGRv
Y3VtZW50LmZvbnRsb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGluZ2RvbmUnLCBjb3VudEV2
ZW50KTsKKworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIubG9hZEZvbnQoeyBmb250OiAnMTBweCBU
ZXN0Rm9udDEsIFRlc3RGb250MicsIG9uc3VjY2Vzczogb25zdWNjZXNzLCBvbmVycm9yOiBvbmVy
cm9yIH0pOworICAgIGRvY3VtZW50LmZvbnRsb2FkZXIubm90aWZ5V2hlbkZvbnRzUmVhZHkodmVy
aWZ5KTsKK30KKworZnVuY3Rpb24gb25zdWNjZXNzKCkgeworICAgIHNob3VsZEJlKCJldmVudHNb
J2xvYWRpbmcnXSIsICIxIik7CisgICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZHN0YXJ0J10iLCAi
MiIpOworICAgIHNob3VsZEJlKCJldmVudHNbJ2xvYWQnXSIsICIyIik7CisgICAgc2hvdWxkQmUo
ImV2ZW50c1snZXJyb3InXSIsICJ1bmRlZmluZWQiKTsKKyAgICBzaG91bGRCZSgiZXZlbnRzWyds
b2FkaW5nZG9uZSddIiwgInVuZGVmaW5lZCIpOworICAgIHNob3VsZEJlKCJkb2N1bWVudC5mb250
bG9hZGVyLmNoZWNrRm9udCgnMTBweCBUZXN0Rm9udDEsIFRlc3RGb250MicpIiwgInRydWUiKTsK
K30KKworZnVuY3Rpb24gb25lcnJvcigpIHsKKyAgICB0ZXN0RmFpbGVkKCJFeHBlY3RlZCBzdWNj
ZXNzLCBidXQgb25lcnJvcigpIGNhbGxlZCIpOworfQorCitmdW5jdGlvbiB2ZXJpZnkoKSB7Cisg
ICAgc2hvdWxkQmUoImV2ZW50c1snbG9hZGluZ2RvbmUnXSIsICIxIik7CisgICAgZmluaXNoSlNU
ZXN0KCk7Cit9CisKK2lmIChkb2N1bWVudC5mb250bG9hZGVyKQorICAgIHJ1blRlc3RzKCk7Citl
bHNlIHsKKyAgICB0ZXN0RmFpbGVkKCdkb2N1bWVudC5mb250bG9hZGVyIGRvZXMgbm90IGV4aXN0
Jyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
ICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YmZvbnQvZm9udGxvYWRlci1sb2FkaW5nLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmZvbnQvZm9udGxvYWRlci1sb2FkaW5nLWF0dHJpYnV0ZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU3MzU4OGNiNzM5NGM2ZjcyMGI4OTQ5NzJkNjlkOGZkMmM1
ZTFiOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViZm9udC9m
b250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBA
CitUZXN0IGZvciBGb250TG9hZGVyLmxvYWRpbmcgYXR0cmlidXRlCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitGQUlMIGRvY3VtZW50LmZvbnRsb2FkZXIgZG9lcyBub3QgZXhpc3QK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmZvbnQvZm9udGxvYWRlci1sb2FkaW5n
LWF0dHJpYnV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJmb250L2ZvbnRsb2Fk
ZXItbG9hZGluZy1hdHRyaWJ1dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41N2NhNmU4MGFiZDY0ZTA2N2Fi
YTJkNmI0NTI2NDE1OTAzMDYyNjI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJmb250L2ZvbnRsb2FkZXItbG9hZGluZy1hdHRyaWJ1dGUuaHRtbApAQCAtMCww
ICsxLDM5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyAgQGZvbnQtZmFjZSB7
CisgICAgZm9udC1mYW1pbHk6ICdUZXN0Rm9udCc7CisgICAgc3JjOiB1cmwoc2xvdy1haGVtLWxv
YWRpbmcuY2dpKTsKKyAgfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdCBm
b3IgRm9udExvYWRlci5sb2FkaW5nIGF0dHJpYnV0ZScpOworCit3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICAgIHNob3VsZEJlKCJkb2N1bWVu
dC5mb250bG9hZGVyLmNoZWNrRm9udCgnMTBweCBUZXN0Rm9udCcpIiwgImZhbHNlIik7CisgICAg
c2hvdWxkQmUoImRvY3VtZW50LmZvbnRsb2FkZXIubG9hZGluZyIsICJmYWxzZSIpOworICAgIGRv
Y3VtZW50LmZvbnRsb2FkZXIubG9hZEZvbnQoeyBmb250OiAnMTBweCBUZXN0Rm9udCcsIG9uc3Vj
Y2Vzczogb25zdWNjZXNzIH0pOworICAgIHNob3VsZEJlKCJkb2N1bWVudC5mb250bG9hZGVyLmxv
YWRpbmciLCAidHJ1ZSIpOworfQorCitmdW5jdGlvbiBvbnN1Y2Nlc3MoKSB7CisgICAgc2hvdWxk
QmUoImRvY3VtZW50LmZvbnRsb2FkZXIuY2hlY2tGb250KCcxMHB4IFRlc3RGb250JykiLCAidHJ1
ZSIpOworICAgIHNob3VsZEJlKCJkb2N1bWVudC5mb250bG9hZGVyLmxvYWRpbmciLCAiZmFsc2Ui
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworaWYgKGRvY3VtZW50LmZvbnRsb2FkZXIpCisg
ICAgcnVuVGVzdHMoKTsKK2Vsc2UgeworICAgIHRlc3RGYWlsZWQoJ2RvY3VtZW50LmZvbnRsb2Fk
ZXIgZG9lcyBub3QgZXhpc3QnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1kb3dubG9h
ZC1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L2Nzcy9mb250bG9hZGVyLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
Njk3YjU4MjNmMmEzMTY2N2QyOTc1YTA1MmJiZjU1NDg5ZjYxMDYxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1kb3du
bG9hZC1lcnJvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorVGVzdCBkb3dubG9hZCBl
cnJvciBjYXNlcy4gImxvYWQiIG9yICJlcnJvciIgZXZlbnRzIHNob3VsZCBiZSBmaXJlZCBleGFj
dGx5IG9uY2UgZm9yIGVhY2ggQGZvbnQtZmFjZSBydWxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBldmVudHNbJ215Zm9udDEnXSBpcyBbJ2xvYWRzdGFydCcsICdlcnJv
ciddCitQQVNTIGV2ZW50c1snbXlmb250MiddIGlzIFsnbG9hZHN0YXJ0JywgJ2Vycm9yJ10KK1BB
U1MgZXZlbnRzWydteWZvbnQzJ10gaXMgWydsb2Fkc3RhcnQnLCAnZXJyb3InXQorUEFTUyBldmVu
dHNbJ215Zm9udDQnXSBpcyBbJ2xvYWRzdGFydCcsICdsb2FkJ10KK1BBU1MgZXZlbnRzWydteWZv
bnQ1J10gaXMgWydsb2Fkc3RhcnQnLCAnZXJyb3InXQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitmb250MQorZm9udDIKK2ZvbnQzCitmb250NAorZm9u
dDUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2Zv
bnRsb2FkZXItZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItZXZlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
ODY1ODcxMDc1OWJiYzg1OTYyMDVhMWIyODVkMDIzNzhiYzgyOTZhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1ldmVu
dHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3QgdGhhdCB0aGUgZXZlbnQgaGFu
ZGxlcnMgb2YgRm9udExvYWRlciBhcmUgY2FsbGVkIGluIHRoZSBjb3JyZWN0IG9yZGVyLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBldmVudC50eXBlIGlzICJsb2FkaW5n
IgorUEFTUyBldmVudC50eXBlIGlzICJsb2Fkc3RhcnQiCitQQVNTIGV2ZW50LnR5cGUgaXMgImxv
YWQiCitQQVNTIGV2ZW50LnR5cGUgaXMgImxvYWRpbmdkb25lIgorUEFTUyBudW1iZXJPZkV2ZW50
cyBpcyA0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
K0hlbGxvLCB3b3JsZCEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2Zhc3QvY3NzL2ZvbnRsb2FkZXItbG9hZGluZ2RvbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1sb2FkaW5nZG9uZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjY2YzU5ZWM0OTc5NmFiODcxYTQxMDc0MmRmNzM4MzU0MjVm
OWQyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zh
c3QvY3NzL2ZvbnRsb2FkZXItbG9hZGluZ2RvbmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMg
QEAKK1Rlc3QgdGhhdCBvbmxvYWRpbmdkb25lIGlzIGZpcmVkIGFmdGVyIHN0eWxlIHJlY2FsY3Vs
YXRpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitsb2FkaW5nZG9uZQorUEFT
UyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RGl2LCAwKS53aWR0aCBpcyAiNDhweCIKK25v
dGlmeVdoZW5Gb250c1JlYWR5KCkgY2FsbGJhY2sKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5
bGUodGVzdERpdiwgMCkud2lkdGggaXMgIjQ4cHgiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK2FhYQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1kb3dubG9h
ZC1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L2Nzcy9mb250bG9hZGVyLW11bHRpcGxlLWZhY2VzLWRvd25sb2FkLWVycm9yLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zNDg0NDZhYTIxZmRiNmU5Njg1YzRkNTRjNzJhNjlkYjFmYmViZjE5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9jc3Mv
Zm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1kb3dubG9hZC1lcnJvci1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNiBAQAorVGVzdCBsb2FkIGV2ZW50cyBmb3IgYSBmb250IGZhbWlseSBjb25zaXN0
cyBvZiBtdWx0aXBsZSBAZm9udC1mYWNlcywgaW5jbHVkaW5nIGRvd25sb2FkIGVycm9yLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBldmVudHNbJ2xvYWRpbmcnXSBpcyAx
CitQQVNTIGV2ZW50c1snbG9hZHN0YXJ0J10gaXMgMgorUEFTUyBldmVudHNbJ2xvYWQnXSBpcyAx
CitQQVNTIGV2ZW50c1snZXJyb3InXSBpcyAxCitQQVNTIGV2ZW50c1snbG9hZGluZ2RvbmUnXSBp
cyB1bmRlZmluZWQKK1BBU1MgZG9jdW1lbnQuZm9udGxvYWRlci5jaGVja0ZvbnQoJzEwcHggVGVz
dEZvbnQnKSBpcyBmYWxzZQorUEFTUyBldmVudHNbJ2xvYWRpbmdkb25lJ10gaXMgMQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVsdGlw
bGUtZmFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYWNlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGYzMDE1NzRhYTIxNTM5M2UxNWZhNzMyOWE0NzYwNGVhODliNWNmNAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2FkZXItbXVs
dGlwbGUtZmFjZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1Rlc3QgbG9hZCBldmVu
dHMgZm9yIGEgZm9udCBmYW1pbHkgY29uc2lzdHMgb2YgbXVsdGlwbGUgQGZvbnQtZmFjZXMuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGV2ZW50c1snbG9hZGluZyddIGlz
IDEKK1BBU1MgZXZlbnRzWydsb2Fkc3RhcnQnXSBpcyAyCitQQVNTIGV2ZW50c1snbG9hZCddIGlz
IDIKK1BBU1MgZXZlbnRzWydlcnJvciddIGlzIHVuZGVmaW5lZAorUEFTUyBldmVudHNbJ2xvYWRp
bmdkb25lJ10gaXMgdW5kZWZpbmVkCitQQVNTIGRvY3VtZW50LmZvbnRsb2FkZXIuY2hlY2tGb250
KCcxMHB4IFRlc3RGb250JykgaXMgdHJ1ZQorUEFTUyBldmVudHNbJ2xvYWRpbmdkb25lJ10gaXMg
MQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3NzL2ZvbnRsb2Fk
ZXItbXVsdGlwbGUtZmFtaWxpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9jc3MvZm9udGxvYWRlci1tdWx0aXBsZS1mYW1pbGllcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMWRjMTM2ZGJhOTkzYjlkY2ZmOGUwOTYzNmQyOTE1ZTYxMWI0Yjc2Mgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvY3Nz
L2ZvbnRsb2FkZXItbXVsdGlwbGUtZmFtaWxpZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYg
QEAKK1Rlc3QgbG9hZCBldmVudHMgZm9yIGZvbnRsb2FkZXIubG9hZEZvbnQoKSB3aXRoIG11bHRp
cGxlIGZvbnQgZmFtaWxpZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IGV2ZW50c1snbG9hZGluZyddIGlzIDEKK1BBU1MgZXZlbnRzWydsb2Fkc3RhcnQnXSBpcyAyCitQ
QVNTIGV2ZW50c1snbG9hZCddIGlzIDIKK1BBU1MgZXZlbnRzWydlcnJvciddIGlzIHVuZGVmaW5l
ZAorUEFTUyBldmVudHNbJ2xvYWRpbmdkb25lJ10gaXMgdW5kZWZpbmVkCitQQVNTIGRvY3VtZW50
LmZvbnRsb2FkZXIuY2hlY2tGb250KCcxMHB4IFRlc3RGb250MSwgVGVzdEZvbnQyJykgaXMgdHJ1
ZQorUEFTUyBldmVudHNbJ2xvYWRpbmdkb25lJ10gaXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxvYWRpbmctYXR0
cmlidXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAv
dGVzdHMvd2ViZm9udC9mb250bG9hZGVyLWxvYWRpbmctYXR0cmlidXRlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wYTQ4OTgwZWFlMGYyNzIzZjBkNWFiMzk0NTgxY2ZiYTAwZDdiYzdjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy93
ZWJmb250L2ZvbnRsb2FkZXItbG9hZGluZy1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTQgQEAKK1Rlc3QgZm9yIEZvbnRMb2FkZXIubG9hZGluZyBhdHRyaWJ1dGUKKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQuZm9udGxvYWRlci5jaGVja0Zv
bnQoJzEwcHggVGVzdEZvbnQnKSBpcyBmYWxzZQorUEFTUyBkb2N1bWVudC5mb250bG9hZGVyLmxv
YWRpbmcgaXMgZmFsc2UKK1BBU1MgZG9jdW1lbnQuZm9udGxvYWRlci5sb2FkaW5nIGlzIHRydWUK
K1BBU1MgZG9jdW1lbnQuZm9udGxvYWRlci5jaGVja0ZvbnQoJzEwcHggVGVzdEZvbnQnKSBpcyB0
cnVlCitQQVNTIGRvY3VtZW50LmZvbnRsb2FkZXIubG9hZGluZyBpcyBmYWxzZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
</data>

          </attachment>
      

    </bug>

</bugzilla>